R-多项式线性模型系数不符合模型预测值
我试图将一些模型与一些数据进行拟合,得到的模型预测出了合理的值,图似乎是正确的。但是当分别提取系数和绘制函数时,它们没有意义!。很明显我做错了什么,请有人告诉我错误在哪里吗 数据: 给定函数y=6.49x^3−2.94x^2− 37.72x+1.68 在谷歌上绘图清楚地表明,该函数与R(来自模型)的绘图完全不同R-多项式线性模型系数不符合模型预测值,r,linear-regression,R,Linear Regression,我试图将一些模型与一些数据进行拟合,得到的模型预测出了合理的值,图似乎是正确的。但是当分别提取系数和绘制函数时,它们没有意义!。很明显我做错了什么,请有人告诉我错误在哪里吗 数据: 给定函数y=6.49x^3−2.94x^2− 37.72x+1.68 在谷歌上绘图清楚地表明,该函数与R(来自模型)的绘图完全不同 您遇到的问题与ggplot无关。相反,它是如何定义线性模型的。顺便说一句,我计算出发生了什么的方法是预测0: R> (moddist3b <- lm(meanrat ~ po
您遇到的问题与
ggplot
无关。相反,它是如何定义线性模型的。顺便说一句,我计算出发生了什么的方法是预测0:
R> (moddist3b <- lm(meanrat ~ poly(range, 3), distcur) )
Coefficients:
(Intercept) poly(range, 3)1 poly(range, 3)2 poly(range, 3)3
1.68 -37.72 -2.94 6.49
R> predict(moddist3b, data.frame(range = 0))
1
2.733
这会给你你所期望的。默认情况下,
poly
使用正交多项式。有关更多详细信息,请参阅和帮助页。只是一个猜测,但您可能希望用I(poly(range,degree))
括起独立参数,以便公式的解释符合您的要求。像+
和*
这样的东西在R公式中有不同的含义。@CarlWitthoft添加I
得到了完全相同的模型,但是预测值几乎是一条水平线,距离实验点更远。系数仍然与我的问题中的相同。不知道它为什么会影响预测,但我仍然没有绘制线的函数。谢谢,我会尝试一下,然后再给你回复。我认为这不是ggplot2,而是我创建模型的过程。我发现很难找到好的资源来涵盖除基础知识以外的任何内容。从未遇到过raw
。我会看看你提到的博客。干杯
summary(moddist3b)
Call:
lm(formula = meanrat ~ poly(range, degree), data = distcur)
Residuals:
9 10 11 12 13 14 15 16
-0.20134 0.44939 1.65996 -2.80500 -1.14594 2.98617 -0.92081 -0.02244
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.6770 0.8281 2.025 0.1128
poly(range, degree)1 -37.7155 2.3423 -16.102 8.7e-05 ***
poly(range, degree)2 -2.9435 2.3423 -1.257 0.2773
poly(range, degree)3 6.4888 2.3423 2.770 0.0503 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.342 on 4 degrees of freedom
Multiple R-squared: 0.9853, Adjusted R-squared: 0.9743
F-statistic: 89.51 on 3 and 4 DF, p-value: 0.0004019
R> (moddist3b <- lm(meanrat ~ poly(range, 3), distcur) )
Coefficients:
(Intercept) poly(range, 3)1 poly(range, 3)2 poly(range, 3)3
1.68 -37.72 -2.94 6.49
R> predict(moddist3b, data.frame(range = 0))
1
2.733
(moddist3b <- lm(meanrat ~ poly(range, 3, raw=TRUE), distcur) )
predict(moddist3b, data.frame(range = 0))