Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-多项式线性模型系数不符合模型预测值_R_Linear Regression - Fatal编程技术网

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

我试图将一些模型与一些数据进行拟合,得到的模型预测出了合理的值,图似乎是正确的。但是当分别提取系数和绘制函数时,它们没有意义!。很明显我做错了什么,请有人告诉我错误在哪里吗

数据:

给定函数y=6.49x^3−2.94x^2− 37.72x+1.68

在谷歌上绘图清楚地表明,该函数与R(来自模型)的绘图完全不同


您遇到的问题与
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))