% File src/library/stats/man/SSweibull.Rd % Part of the R package, https://www.R-project.org % Copyright 1995-2020 R Core Team % Distributed under GPL 2 or later \name{SSweibull} \title{Self-Starting \code{nls} Weibull Growth Curve Model} \usage{ SSweibull(x, Asym, Drop, lrc, pwr) } \alias{SSweibull} \arguments{ \item{x}{a numeric vector of values at which to evaluate the model.} \item{Asym}{a numeric parameter representing the horizontal asymptote on the right side (very small values of \code{x}).} \item{Drop}{a numeric parameter representing the change from \code{Asym} to the \code{y} intercept.} \item{lrc}{a numeric parameter representing the natural logarithm of the rate constant.} \item{pwr}{a numeric parameter representing the power to which \code{x} is raised.} } \description{ This \code{selfStart} model evaluates the Weibull model for growth curve data and its gradient. It has an \code{initial} attribute that will evaluate initial estimates of the parameters \code{Asym}, \code{Drop}, \code{lrc}, and \code{pwr} for a given set of data. } \value{ a numeric vector of the same length as \code{x}. It is the value of the expression \code{Asym-Drop*exp(-exp(lrc)*x^pwr)}. If all of the arguments \code{Asym}, \code{Drop}, \code{lrc}, and \code{pwr} are names of objects, the gradient matrix with respect to these names is attached as an attribute named \code{gradient}. } \details{ This model is a generalization of the \code{\link{SSasymp}} model in that it reduces to \code{SSasymp} when \code{pwr} is unity. } \author{Douglas Bates} \references{ Ratkowsky, David A. (1983), \emph{Nonlinear Regression Modeling}, Dekker. (section 4.4.5) } \seealso{\code{\link{nls}}, \code{\link{selfStart}}, \code{\link{SSasymp}} } \examples{ Chick.6 <- subset(ChickWeight, (Chick == 6) & (Time > 0)) SSweibull(Chick.6$Time, 160, 115, -5.5, 2.5) # response only local({ Asym <- 160; Drop <- 115; lrc <- -5.5; pwr <- 2.5 SSweibull(Chick.6$Time, Asym, Drop, lrc, pwr) # response _and_ gradient }) \dontdiff{getInitial(weight ~ SSweibull(Time, Asym, Drop, lrc, pwr), data = Chick.6)} ## Initial values are in fact the converged values fm1 <- nls(weight ~ SSweibull(Time, Asym, Drop, lrc, pwr), data = Chick.6) summary(fm1) ## Data and Fit: plot(weight ~ Time, Chick.6, xlim = c(0, 21), main = "SSweibull() fit to Chick.6") ux <- par("usr")[1:2]; x <- seq(ux[1], ux[2], length.out=250) lines(x, do.call(SSweibull, c(list(x=x), coef(fm1))), col = "red", lwd=2) As <- coef(fm1)[["Asym"]]; abline(v = 0, h = c(As, As - coef(fm1)[["Drop"]]), lty = 3) } \keyword{models}