Формула для всех предикторов первого и второго порядка, включая взаимодействия в R - PullRequest
7 голосов
/ 07 сентября 2010

На языке программирования статистики R следующая формула (например, в lm() или glm())

z ~ (x+y)^2  

эквивалентна

z ~ x + y + x:y

Предположим, у меня есть тольконепрерывные предикторы, есть ли краткий способ получить

z ~ I(x^2) + I(y^2) + I(x) + I(y) + I(x*y)

Формула, которая делает правильные вещи для факторных предикторов, является плюсом.

Одним из возможных решений является

z ~ (poly(x,2) + poly(y,2))^2

Я ищу что-то более элегантное.

1 Ответ

9 голосов
/ 08 сентября 2010

Не знаю, изящнее это или нет, но функция poly может принимать несколько векторов:

z ~ poly(x, y, degree=2)

Это создаст все комбинации, которые вы просили, без дополнительных. Обратите внимание, что вам нужно указать степень = 2, а не только 2, делая это таким образом.

...