2015-02-25 5 views
9

Я хочу сделать полиномиальную регрессию в R с одной зависимой переменной y и двумя независимыми переменными x1 и x2. На мой взгляд, модель должна выглядеть следующим образом,Полиномиальная регрессия в R с несколькими независимыми переменными

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 модели были более длинными.

+2

Вы можете добавить взаимодействие с: 'lm (y ~ poly (x1,2) + poly (x2,2) + x1: x2, dd)'. Это то, что вам нужно? – MrFlick

ответ

10

вы можете использовать Polym

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

Но будьте осторожны с порядком коэффициентов они не являются такими же, как второй формуле.

Если вы используете степень = 3 то это добавит взаимодействия более высокого порядка, как этот I (x1^2): x2 + I (x2^2): x1, таким образом, вы должны адаптировать формулу.

NB: Polym является оболочкой для поли, так что вы можете использовать этот последний с таким же вызовом.

Смежные вопросы