SSasympOff

0th

Percentile

Self-Starting Nls Asymptotic Regression Model with an Offset

This selfStart model evaluates an alternative parametrization of the asymptotic regression function and the gradient with respect to those parameters. It has an initial attribute that creates initial estimates of the parameters Asym, lrc, and c0.

Keywords
models
Usage
SSasympOff(input, Asym, lrc, c0)
Arguments
input

a numeric vector of values at which to evaluate the model.

Asym

a numeric parameter representing the horizontal asymptote on the right side (very large values of input).

lrc

a numeric parameter representing the natural logarithm of the rate constant.

c0

a numeric parameter representing the input for which the response is zero.

Value

a numeric vector of the same length as input. It is the value of the expression Asym*(1 - exp(-exp(lrc)*(input - c0))). If all of the arguments Asym, lrc, and c0 are names of objects, the gradient matrix with respect to these names is attached as an attribute named gradient.

See Also

nls, selfStart; example(SSasympOff) gives graph showing the SSasympOff parametrization.

Aliases
  • SSasympOff
Examples
library(stats) # NOT RUN { CO2.Qn1 <- CO2[CO2$Plant == "Qn1", ] SSasympOff(CO2.Qn1$conc, 32, -4, 43) # response only local({ Asym <- 32; lrc <- -4; c0 <- 43 SSasympOff(CO2.Qn1$conc, Asym, lrc, c0) # response and gradient }) getInitial(uptake ~ SSasympOff(conc, Asym, lrc, c0), data = CO2.Qn1) ## Initial values are in fact the converged values fm1 <- nls(uptake ~ SSasympOff(conc, Asym, lrc, c0), data = CO2.Qn1) summary(fm1) ## Visualize the SSasympOff() model parametrization : xx <- seq(0.25, 8, by=1/16) yy <- 5 * (1 - exp(-(xx - 3/4)*0.4)) stopifnot( all.equal(yy, SSasympOff(xx, Asym = 5, lrc = log(0.4), c0 = 3/4)) ) require(graphics) op <- par(mar = c(0, 0, 4.0, 0)) plot(xx, yy, type = "l", axes = FALSE, ylim = c(-.5,6), xlim = c(-1, 8), xlab = "", ylab = "", lwd = 2, main = "Parameters in the SSasympOff model") mtext(quote(list(phi[1] == "Asym", phi[2] == "lrc", phi[3] == "c0"))) usr <- par("usr") arrows(usr[1], 0, usr[2], 0, length = 0.1, angle = 25) arrows(0, usr[3], 0, usr[4], length = 0.1, angle = 25) text(usr[2] - 0.2, 0.1, "x", adj = c(1, 0)) text( -0.1, usr[4], "y", adj = c(1, 1)) abline(h = 5, lty = 3) arrows(-0.8, c(2.1, 2.9), -0.8, c(0 , 5 ), length = 0.1, angle = 25) text (-0.8, 2.5, quote(phi[1])) segments(3/4, -.2, 3/4, 1.6, lty = 2) text (3/4, c(-.3, 1.7), quote(phi[3])) arrows(c(1.1, 1.4), -.15, c(3/4, 7/4), -.15, length = 0.07, angle = 25) text (3/4 + 1/2, -.15, quote(1)) segments(c(3/4, 7/4, 7/4), c(0, 0, 2), # 5 * exp(log(0.4)) = 2 c(7/4, 7/4, 3/4), c(0, 2, 0), lty = 2, lwd = 2) text( 7/4 +.1, 2./2, quote(phi[1]*e^phi[2]), adj = c(0, .5)) par(op) # }
Documentation reproduced from package stats, version 3.5.0, License: Part of R 3.5.0

Community examples

Looks like there are no examples yet.