0

据我所知,在公式中为二阶(和更高阶)项编码有三种可能的方法。

我们可以使用函数I(..),函数poly(..),我们可以构造我们自己的二阶变量。我的问题是:这些功能是如何工作的?

set.seed(23)
A = rnorm(12)
B = 1:12
C = factor(rep(c(1,2,3),4))
B2=B^2

lm(A~poly(B,2)*C)使用I(..)或使用变量时的等价物是什么B2

raw=T在函数中使用poly(..)不会对结果产生任何影响,对吗?

4

2 回答 2

1
lm(A~B2*C)

或者

lm(A~I(B^2)*C)

给你平方列 B 然后做回归的结果。使用

poly(B,2)

做一些完全不同的事情 - 见?poly。

编辑添加: poly()计算正交多项式,这些正交多项式与从简单平方、立方等数字导出的标准多项式不同。

于 2013-08-21T15:55:05.680 回答
1

这是否意味着 poly(B,2,raw=T) 等价于 I(B^2) 或 B+I(B^2)?

尝试:

x = 0:99
df = data.frame(x=x,y=rnorm(100)+0.1*x + 0.04*x*x)
lm(y~poly(x,2),data=df)
lm(y~poly(x,2,raw=TRUE),data=df)
lm(y~x+I(x^2),data=df)
于 2013-08-22T10:21:00.267 回答