我想估算emax模型的e50 e0 emax 方程式为Y = E0 +((DOSE * EMAX)/(DOSE + ED50)) 我想使用默认算法 如何估算E0 EMAX和E50?
我发现示例代码是:
args(nls)
function (formula, data = parent.frame(), start, control = nls.control(),
algorithm = c("default", "plinear", "port"), trace = FALSE,
subset, weights, na.action, model = FALSE, lower = -Inf,
upper = Inf, ...)
NULL
由于
答案 0 :(得分:1)
您的示例数据似乎没有名字,所以我假装我没有看到它。制作一个名为dose
的矢量,其中包含您的剂量信息,以及一个名为Y
的矢量,其中包含Y变量。显然它们应该是相同的长度。我只是使用rnorm()
作为我的例子。然后用一些合理的起始值调用nls。我会突然挑选一些。
> dose <- rnorm(400)
> Y <- rnorm(400)
> nls(formula=Y~e0+((dose*emax)/(dose+ed50)),start=c(e0=1,emax=10,ed50=2))
Nonlinear regression model
model: Y ~ e0 + ((dose * emax)/(dose + ed50))
data: parent.frame()
e0 emax ed50
0.036105 0.005475 1.991276
residual sum-of-squares: 373.8
Number of iterations to convergence: 21
Achieved convergence tolerance: 9.759e-06