繁体   English   中英

R预测()仅返回nls()模型的拟合值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM