lm(y~poly(x1,x2,x3,degree = 2,raw = TRUE),数据)

时间:2017-10-19 06:10:22

标签: r lm

removeButton

等于

lm(y~poly(x1, x2,x3, degree=2, raw=TRUE), data)

如果是,我们为什么需要设置lm(y~x1 + x2 + x3 + x1*x2 + x1*x3 + x2*x3 + x1^2 + x2^2 + x3^2 , data)

1 个答案:

答案 0 :(得分:0)

您可以轻松地自行测试:

DF <- data.frame(x1 = 1:2, x2 = 3:4, x3 = 5:6)
with(DF, poly(x1, x2, x3, degree = 2, raw = TRUE))
#     1.0.0 2.0.0 0.1.0 1.1.0 0.2.0 0.0.1 1.0.1 0.1.1 0.0.2
#[1,]     1     1     3     3     9     5     5    15    25
#[2,]     2     4     4     8    16     6    12    24    36
#attr(,"degree")
#[1] 1 2 1 2 2 1 2 2 2
#attr(,"class")
#[1] "poly"   "matrix"

列名显示三个变量的乘积以及每个变量在此产品中的度数。例如,1.1.0表示x1^1 + x2^1 + x3^0

当然,您也会在回归模型的输出中看到这一点。

如果希望系数与原始多项式相对应,则需要raw = TRUE,即alpha0 + alpha11 * x1^1 + alpha12 * x1^2 + ...。如果您不需要,设置raw = TRUE,因为orthogonal polynomials具有一些理想的回归分析属性。