我正在对一个包含两个解释变量的数据集进行非线性回归拟合Day
,并使用Treatment
建模响应。我想获取 的预测值以及新数据集的 95% 预测区间。但是,如果我重复使用同一个数据集,也会出现同样的问题。因此,我添加了示例,但没有设置- 参数。Amount
{nls}
Amount
newdata
DS <- data.frame(Day=rep(1:5,t=2),
Amount=c(65,17,11,3.5,1.2,85,23,15,5,1.7),
Treatment=rep(c(0,1),e=5))
Model <- nls(Amount ~ (a+b*Treatment) * exp((c+d*Treatment)*Day) + e,
data=DS, start = list(a=10,b=10,c=-0.1,d=-0.1,e=0.1))
尽管我可以用以及 来预测Amount
每个数据点的值,predict()
investr::predFit()
> predict(Model)
> [1] 64.814965 18.614433 7.150980 4.306624 3.600871 84.626103 25.804353 9.562934 5.078476 3.840261
> predFit(Model)
> [1] 64.814965 18.614433 7.150980 4.306624 3.600871 84.626103 25.804353 9.562934 5.078476 3.840261
当我尝试包含预测区间时,收到以下错误消息。
predFit(Model,interval="prediction",level=0.95)
eval(form[[3]]) 中的错误:未找到对象“Day”此外:警告消息:在assign(xname, newdata[, xname])中:仅第一个元素用作变量名
但是,如果我在公式中仅使用Day
(无)来降低模型的复杂度,则一切正常,并且会得到。我做错了什么?Treatment
{nls}
predFit()
Day