我已阅读了手册页?poly(我承认我并未完全理解),并且还阅读了" 统计学习简介"一书中对该功能的描述.
我目前的理解是,呼叫poly(horsepower, 2)应该等同于写作horsepower + I(horsepower^2).但是,这似乎与以下代码的输出相矛盾:
library(ISLR)
summary(lm(mpg~poly(horsepower,2), data=Auto))$coef
# Estimate Std. Error t value Pr(>|t|)
#(Intercept) 23.44592 0.2209163 106.13030 2.752212e-289
#poly(horsepower, 2)1 -120.13774 4.3739206 -27.46683 4.169400e-93
#poly(horsepower, 2)2 44.08953 4.3739206 10.08009 2.196340e-21
summary(lm(mpg~horsepower+I(horsepower^2), data=Auto))$coef
# Estimate Std. Error t value Pr(>|t|)
#(Intercept) 56.900099702 1.8004268063 31.60367 1.740911e-109
#horsepower -0.466189630 0.0311246171 -14.97816 2.289429e-40
#I(horsepower^2) 0.001230536 0.0001220759 10.08009 2.196340e-21
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么输出不匹配,poly真正做的是什么?
r ×1