【发布时间】:2020-04-14 20:59:43
【问题描述】:
我已经阅读了手册页?poly(我承认我没有完全理解)并阅读了书籍Introduction to Statistical Learning中的函数描述。
我目前的理解是调用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
我的问题是,为什么输出不匹配,poly 到底在做什么?
【问题讨论】:
-
看看这个问题的答案:mathoverflow.net/questions/38864/…
-
我只是看了一下(不完全明白),但我还是想知道,在这种情况下,
poly(horsepower,2)生成的封闭式公式究竟是什么? -
试试
poly(horsepower, degree=2, raw=TRUE);您将 2 作为错误参数传递,raw默认为 FALSE。 -
@baptiste,您的建议可以使
poly生成与显式公式相同的输出,但我仍然想知道poly生成的“正交多项式”的实际形式没有那个参数。另外,根据手册,我将 2 作为度数传递:“虽然应该正式命名 '度'(因为它遵循 '...'),但长度为 1 的未命名的第二个参数将被解释为度数。” -
好点 re
...,在它之后命名参数仍然是个好习惯。
标签: r