gpt4 book ai didi

r - R 中 I(x^3) 和 poly(x,3) 之间的差异进行回归

转载 作者:行者123 更新时间:2023-12-03 22:47:39 25 4
gpt4 key购买 nike

我是 R 的初学者,所以请原谅。我对文档没有足够的理解来区分 I() 和 poly() 工作方式的这三种形式之间的区别

使用 mtcars 数据集...

xx=lm(mpg~hp+I(hp^2)+I(hp^3), data=mtcars)
yy=lm(mpg~I(hp^3), data=mtcars)
zz=lm(mpg~poly(hp,3), data=mtcars)
summary(xx)
summary(yy)
summary(zz)

所有返回差异结果。我以为 ZZ 会给我与 XX 甚至 YY 相同的结果,但事实并非如此。再一次,如果有人能向我解释这一点,那就太好了

最佳答案

I(x^3) 生成一个三阶项,其中的系数将由 lm 估计。
poly(x,3) 将生成三阶多项式,因此将为 x 的线性、二阶和三阶项提供系数。但是,默认情况下,这些将是 orthogonal polynomials 到 0 次常数多项式,并且系数不会是您所期望的。为避免这种情况,请使用参数 raw=TRUE

coef(xx) ## All terms
(Intercept) hp I(hp^2) I(hp^3)
4.422493e+01 -2.945289e-01 9.114683e-04 -8.701086e-07
coef(yy) ## Only the intercept and third order term
(Intercept) I(hp^3)
2.241691e+01 -4.312463e-07
coef(zz) ## Orthogonal polynomials
(Intercept) poly(hp, 3)1 poly(hp, 3)2 poly(hp, 3)3
20.090625 -26.045592 13.154568 -2.241893
coef(lm(mpg~poly(hp,3,raw=TRUE),data=mtcars)) ## Same as coef(xx)
(Intercept) poly(hp, 3, raw = TRUE)1 poly(hp, 3, raw = TRUE)2
4.422493e+01 -2.945289e-01 9.114683e-04
poly(hp, 3, raw = TRUE)3
-8.701086e-07

但是,如果您不使用正交多项式,您可能会遇到术语之间的相关性问题,这就是默认设置的原因。

关于r - R 中 I(x^3) 和 poly(x,3) 之间的差异进行回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25161423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com