R中的多项式回归与多个自变量

Jas*_*els 13 r

我想做一个多项式回归R中有一个因变量y和两个自变量x1x2.在我看来,模型应如下所示,

y=b0 + b1x1+ b2x2+ b3x1^2+ b4x2^2+ b5x1x2

lm(y~x1+x2+poly(x1,2,raw=TRUE)+poly(x2,2,raw=TRUE))也试过了lm(y~x1+x2+I(x1^2)+I(x2^2)).但这只给出了正方形,而不是两个变量的乘积.

我能做到的lm(y~x1+ x2+ x1^2+ x2^2+ x1x2).但我想知道是否有一个比写出整个方程更容易的方法.我也想做3和4模型的力量,这是更长的.

Mam*_*zal 14

你可以使用polym

y ~ polym(x1, x2, degree=2, raw=TRUE) # is equivalent to
y ~ x1 + x2 + I(x1^2) + I(x2^2) + x1:x2
Run Code Online (Sandbox Code Playgroud)

但要注意系数的顺序,它们与第二个公式不同.

如果你使用degree = 3,那么它将添加更高阶的交互,如I(x1 ^ 2):x2 + I(x2 ^ 2):x1,因此你必须调整你的公式.

注意:polympoly的包装器,因此您可以将后者与同一个调用一起使用.