我想做一个多项式回归R中有一个因变量y和两个自变量x1和x2.在我看来,模型应如下所示,
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,因此你必须调整你的公式.
注意:polym是poly的包装器,因此您可以将后者与同一个调用一起使用.