![](/img/trans.png)
[英]How `poly()` generates orthogonal polynomials? How to understand the “coefs” returned?
[英]poly() and orthogonal polynomials
我在R中搜索了poly()
,我認為它應該產生正交多項式,因此當我們在lm(y~poly(x,2))
等回歸模型中使用它時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
? 那么,這種不相關的回歸預測因子又如何呢?
您的主要問題是您缺少e
或“ E表示法”的含義:如上述@MamounBenghezal所述, fff
e 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
或使用示例,正確放置小數點:
-0.707*0.408-(7.85e-17)*(-0.82)+(0.707)*0.408
## [1] 5.551115e-17
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.