我正在尝试将二阶曲线添加到散点图。我已经阅读了先前类似问题的答案,这是我想出的:
x<-log2(c(100,500,1000,2000,4000))
y<-c(3.6,1.308,1.065,.960,.908)
plot(x,y,pch=1)
mod_<-lm(y~poly(x,2,raw=TRUE))
lines(x,predict(mod_),col='red',lty=2)
不过,我得到的是线性线段而不是平滑曲线。我在这里没看到什么错误?谢谢 !
您仅predict
通过传递模型进行呼叫。这只会导致根据您在lm
调用中指定的值(即x
)对模型进行评估。
您需要提供一组用于评估模型的新值。
例如,这为您提供了一条流畅的线条:
x<-log2(c(100,500,1000,2000,4000))
y<-c(3.6,1.308,1.065,.960,.908)
plot(x,y,pch=1)
mod_<-lm(y~poly(x,2,raw=TRUE))
# Define the new points at which you want to evaluate your model
new.x <- seq(6, 12, 0.1)
lines(new.x, predict(mod_, newdata = list(x=new.x)),col='red',lty=2)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句