[英]R predict() returns only fitted values for nls() model
首先,我想提到我只是R语言的初学者。尝试从nls()生成的模型预测数据时遇到了一个问题。 我将指数衰减函数拟合到我的数据中,一切似乎都很好,例如,我得到了不错的回归线。 但是,当我在新数据集上使用predict()时,它仅返回拟合值。
我的代码是:
df = data.frame(Time = c(0,5,15,30), Value = c(1, 0.38484677,0.18679383, 0.06732328))
model <- nls(Value~a*exp(-b*Time), start=list(a=1, b=0.15), data = df)
plot(Value~Time, data = df)
lines(df$Time, predict(model))
newtime <- data.frame(Time = seq(1,20, by = 1))
pr = predict(model, newdata = newtime$Time)
pr
[1] 0.979457389 0.450112312 0.095058637 0.009225664
有人可以解释一下,我做错了吗? 我知道这里有一些解决该问题的方法,但是没有一个帮助我。
预先感谢您的帮助!
newdata
参数应该是与输入数据名称相同的data.frame。 当您使用newdata = newtime$Time
您实际上传递的是newtime$Time
,它不再是data.frame,因为它被“下拉”为向量。 你可以像这样传递新时间
pr = predict(model, newdata = newtime)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.