我搜索了R中的poly()
,我认为它应该产生正交多项式,所以当我们在回归模型中使用它时,如lm(y~poly(x,2))
,预测变量是不相关的。但是:
poly(1:3,2)=
[1,] -7.071068e-01 0.4082483
[2,] -7.850462e-17 -0.8164966
[3,] 7.071068e-01 0.4082483
我认为这可能是一个愚蠢的问题,但我不明白的是结果poly(1:3,2)
的列向量没有内积为零?那是-7.07*0.40-7.85*(-0.82)+7.07*0.41=/ 0
?那么这种不相关的回归预测因素怎么样?
答案 0 :(得分:3)
您的主要问题是您错过了e
或"E notation"的含义:正如上面@MamounBenghezal所评论的那样,fff
e {{ 1}}是ggg
我得到略微不同的答案(差异在数值上是微不足道的)因为我在不同的平台上运行它:
fff * 10^(ggg)
更简单的格式:
pp <- poly(1:3,2)
## 1 2
## [1,] -7.071068e-01 0.4082483
## [2,] 4.350720e-18 -0.8164966
## [3,] 7.071068e-01 0.4082483
或者使用您的示例,正确放置小数点:
print(zapsmall(matrix(c(pp),3,2)),digits=3)
## [,1] [,2]
## [1,] -0.707 0.408
## [2,] 0.000 -0.816
## [3,] 0.707 0.408
sum(pp[,1]*pp[,2]) ## 5.196039e-17, effectively zero