selfStart
位于 stats
包(package)。 说明
构建self-starting非线性模型,用于nls
等。通过函数initial
从数据计算近似参数值,此类模型是“self-starting”,即不需要start
参数,例如, nls()
。
用法
selfStart(model, initial, parameters, template)
参数
model |
定义非线性模型的函数对象或 |
initial |
一个函数对象,接受参数 |
parameters |
一个字符向量,指定 |
template |
返回对象的调用序列的可选原型,作为 |
细节
nls()
为这些self-starting 模型调用getInitial
和initial
函数。
这个函数是通用的;可以编写方法函数来处理特定类的对象。
值
类 "selfStart"
的 function
对象,用于通过将 deriv
应用于 model
公式的右侧而获得的 formula
方法。将 initial
属性(由 initial
参数定义)添加到函数中,以自动计算模型中参数的起始估计值。
例子
## self-starting logistic model
## The "initializer" (finds initial values for parameters from data):
initLogis <- function(mCall, data, LHS, ...) {
xy <- sortedXyData(mCall[["x"]], LHS, data)
if(nrow(xy) < 4)
stop("too few distinct input values to fit a logistic model")
z <- xy[["y"]]
## transform to proportion, i.e. in (0,1) :
rng <- range(z); dz <- diff(rng)
z <- (z - rng[1L] + 0.05 * dz)/(1.1 * dz)
xy[["z"]] <- log(z/(1 - z)) # logit transformation
aux <- coef(lm(x ~ z, xy))
pars <- coef(nls(y ~ 1/(1 + exp((xmid - x)/scal)),
data = xy,
start = list(xmid = aux[[1L]], scal = aux[[2L]]),
algorithm = "plinear", ...))
setNames(pars [c(".lin", "xmid", "scal")],
mCall[c("Asym", "xmid", "scal")])
}
mySSlogis <- selfStart(~ Asym/(1 + exp((xmid - x)/scal)),
initial = initLogis,
parameters = c("Asym", "xmid", "scal"))
getInitial(weight ~ mySSlogis(Time, Asym, xmid, scal),
data = subset(ChickWeight, Chick == 1))
# 'first.order.log.model' is a function object defining a first order
# compartment model
# 'first.order.log.initial' is a function object which calculates initial
# values for the parameters in 'first.order.log.model'
#
# self-starting first order compartment model
## Not run:
SSfol <- selfStart(first.order.log.model, first.order.log.initial)
## End(Not run)
## Explore the self-starting models already available in R's "stats":
pos.st <- which("package:stats" == search())
mSS <- apropos("^SS..", where = TRUE, ignore.case = FALSE)
(mSS <- unname(mSS[names(mSS) == pos.st]))
fSS <- sapply(mSS, get, pos = pos.st, mode = "function")
all(sapply(fSS, inherits, "selfStart")) # -> TRUE
## Show the argument list of each self-starting function:
str(fSS, give.attr = FALSE)
作者
José Pinheiro and Douglas Bates
也可以看看
以下每个都是"selfStart"
模型(带示例)SSasymp
, SSasympOff
, SSasympOrig
, SSbiexp
, SSfol
, SSfpl
, SSgompertz
, SSlogis
, SSmicmen
, SSweibull
。
相关用法
- R setNames 设置对象中的名称
- R se.contrast 模型术语对比的标准误差
- R stlmethods STL 对象的方法
- R summary.nls 总结非线性最小二乘模型拟合
- R summary.manova 多元方差分析的汇总方法
- R summary.lm 总结线性模型拟合
- R smooth Tukey 的(运行中值)平滑
- R screeplot 屏幕图
- R sortedXyData 创建一个sortedXyData对象
- R sigma 提取残余标准差“Sigma”
- R stat.anova GLM 方差分析统计
- R scatter.smooth 黄土拟合的平滑曲线散点图
- R splinefun 插值样条曲线
- R spec.taper 通过余弦钟锥化时间序列
- R summary.princomp 主成分分析的汇总方法
- R symnum 符号数字编码
- R summary.aov 方差模型分析总结
- R stepfun Step Functions - 创建和类
- R shapiro.test 夏皮罗-威尔克正态性检验
- R spec.pgram 通过平滑周期图估计时间序列的谱密度
- R spec.ar 通过 AR Fit 估计时间序列的频谱密度
- R smooth.spline 拟合平滑样条曲线
- R supsmu 弗里德曼的超级平滑
- R stl Loess 时间序列的季节分解
- R summary.glm 广义线性模型拟合总结
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Construct Self-starting Nonlinear Models。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。