Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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 lm()中的多边形():原始与正交之间的差异_R - Fatal编程技术网

R lm()中的多边形():原始与正交之间的差异

R lm()中的多边形():原始与正交之间的差异,r,R,我有 预测线似乎是相同的,但为什么系数如此不同?如何在raw=T和raw=F中解释它们 我看到用poly(…,raw=T)生成的系数与~age+I(age^2)+I(age^3)+I(age^4)匹配 如果我想使用系数“手动”(不使用predict()函数)获得预测,有什么我应该注意的吗?默认情况下,poly()中的正交多项式的系数应该如何解释,如果raw=FALSE,poly()计算正交多项式。它用原始编码x,x^2,x^3。。。首先缩放列,然后缩放列,使每列与前一列正交。这不会改变拟合值,但

我有

预测线似乎是相同的,但为什么系数如此不同?如何在
raw=T
raw=F
中解释它们

我看到用
poly(…,raw=T)
生成的系数与
~age+I(age^2)+I(age^3)+I(age^4)
匹配


如果我想使用系数“手动”(不使用
predict()
函数)获得预测,有什么我应该注意的吗?默认情况下,
poly()

中的正交多项式的系数应该如何解释,如果
raw=FALSE
poly()
计算正交多项式。它用原始编码x,x^2,x^3。。。首先缩放列,然后缩放列,使每列与前一列正交。这不会改变拟合值,但有一个优点,即您可以看到多项式中的某个阶数是否显著改善了较低阶数的回归

考虑简单的
汽车
数据,其响应停车
距离
距离和驾驶
速度
。从物理上讲,这应该具有二次关系,但在此(旧)数据集中,二次项并不重要:

library(ISLR)
attach(Wage)

# Polynomial Regression and Step Functions

fit=lm(wage~poly(age,4),data=Wage)
coef(summary(fit))

fit2=lm(wage~poly(age,4,raw=T),data=Wage)
coef(summary(fit2))

plot(age, wage)
lines(20:350, predict(fit, newdata = data.frame(age=20:350)), lwd=3, col="darkred")
lines(20:350, predict(fit2, newdata = data.frame(age=20:350)), lwd=3, col="darkred")
这表明存在非常显著的线性效应,而二阶效应不显著。后一个p值(即多项式中的最高阶之一)与原始编码中的相同:

                Estimate Std. Error t value Pr(>|t|)    
(Intercept)       42.980      2.146  20.026  < 2e-16 ***
poly(speed, 2)1  145.552     15.176   9.591 1.21e-12 ***
poly(speed, 2)2   22.996     15.176   1.515    0.136    
但低阶p值变化很大。原因是,在模型
m1
中,回归系数是正交的,而在
m2
中,回归系数是高度相关的:

                            Estimate Std. Error t value Pr(>|t|)
(Intercept)                  2.47014   14.81716   0.167    0.868
poly(speed, 2, raw = TRUE)1  0.91329    2.03422   0.449    0.656
poly(speed, 2, raw = TRUE)2  0.09996    0.06597   1.515    0.136

因此,在原始编码中,如果
speed^2
仍保留在模型中,则只能解释
speed
的p值。由于这两个回归系数高度相关,其中一个可以去掉。然而,在正交编码中,
速度^2
仅捕获未被线性项捕获的二次部分。然后很明显,线性部分是显著的,而二次部分没有额外的显著性。

我相信多项式回归将基于
raw=T
运行的方式是,我们将查看最高幂项,并根据该系数的
pvalue
评估其显著性

如果发现不显著(大
pvalue
),则回归将在没有特定非显著性幂(即下一个较低的幂)的情况下重新运行,并且如果不显著,将一次执行一个步骤


如果在任何时候,更高的程度是重要的,那么该过程将停止并断言,该程度是适当的。

您是否阅读了以下内容:?raw表示是否使用正交多项式。是的,我使用了。可能需要的是一个关于模型构建中正交多项式的小解释,我认为更多的是关于R如何在内部存储模型,在预测时几乎没有区别,只关注数值精度,但我不是一个统计学家,这样的问题可能更适合数学堆栈交换。它会对系数产生显著的影响,所以我认为维基百科内部没有关于它的页面。这有点像你正在改变轴系,你的坐标发生了巨大的变化,但向量将保持不变。(可能不是最好的类比,但我又不是数学家。)答案很好。非常感谢你。只是一个小问题:人们应该如何解释正交多项式的系数?我认为精确的单位很难解释,但我认为这在任何一个多项式中都是正确的。但是在正交的情况下,二次项给出了与线性多项式的偏差;三次项,即与二次多项式的偏差等@ECII@Achim在对的回答中,我给出了一个函数,将正交多项式转换为“常规”幂系数。虽然它似乎能工作,但我不喜欢这个函数,它确实很难看:-0,我希望能得到其他方法的建议。@AchimZeileis因为我会运行dist~speed+I(speed^2),这相当于你的例子中的poly(speed,2,raw=t),我会得出结论,无论是速度还是速度,根据p值0.656或0.136,nor speed ^2似乎在统计上具有显著性。另一方面,模型m1显示速度具有统计意义,但速度^2不具有统计意义。我很难理解这个。。。两条相互矛盾的信息。你能帮我更好地理解这个概念吗?@Rahul这就是正交化的全部要点。在原始编码中,您只能解释模型中保留的速度^2的p值。由于两个回归系数高度相关,其中一个可能会下降。然而,在正交编码中,速度^2仅捕获未被线性项捕获的二次部分。然后很明显,线性部分是显著的,而二次部分没有额外的显著性。
                            Estimate Std. Error t value Pr(>|t|)
(Intercept)                  2.47014   14.81716   0.167    0.868
poly(speed, 2, raw = TRUE)1  0.91329    2.03422   0.449    0.656
poly(speed, 2, raw = TRUE)2  0.09996    0.06597   1.515    0.136
cor(model.matrix(m1)[, 2], model.matrix(m1)[, 3])
## [1] 4.686464e-17
cor(model.matrix(m2)[, 2], model.matrix(m2)[, 3])
## [1] 0.9794765