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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。