【发布时间】:2018-03-26 11:58:55
【问题描述】:
我试着在这里搜索了一段时间,但我并没有真正找到解决问题的方法。我想要一种简单的方法来获得拟合模型的方程并将其与我的原始数据一起显示。
这里是目前有效的代码:
#the dataframe:
library(ggplot2)
df<-data.frame(x=c(0,3,5,7,9,14),y=c(1.7,25.4,185.5,303.9,255.9,0.0))
#fitting a third degree polinomial model
fit1<- lm(y~poly(x, 3, raw=TRUE),data = df)
#plotting fitted and original values
ggplot(df, aes(x, y))+
geom_point()+
geom_line(aes(x, y=predict(fit1)), col=2)
以下绘图结果[红色=预测值,黑色=原始数据]:
现在,与原始数据点相比,我试图更好地掌握模型的实际外观,因为我想稍后计算线下的面积。
我尝试通过调用从 fit1 中提取系数
coef(fit1)
并在方程中输入近似系数
x1<-seq(0:14)
eq<- 20.35*x1+6.64*x1^2-0.58*x1^3-10.84
有没有更简单的方法可以从模型中“提取”一个 f(x) = x+x^2+c 等函数,并以高密度(0 到 14 之间的无限 x 值)与原始模型一起显示它价值观?也许使用 geom_line() 或 stat_function()?
感谢您的建议!
【问题讨论】:
-
很好,很好的问题,如果所有的初学者都能清楚地解释事情。顺便说一句,相关文档(
predict())有点隐藏,但你可以通过?predict.lm找到它。