Применение полиномиальной регрессии для нескольких объясняющих переменных и переменных ответа

Скажем, у меня есть два фрейма данных, один с набором объясняющих переменных, а другой с набором переменных ответа.

Explanatory <- as.data.frame(matrix(sample(0:15, 4*20, replace=TRUE), ncol=4))
Response <- as.data.frame(matrix(sample(0:15, 4*20, replace=TRUE), ncol=4))

Как мне провести несколько полиномиальных регрессий второго порядка между всеми отдельными объясняющими переменными и переменными ответа и вывести матрицу p-значений?

Я могу сделать это для нормальной линейной регрессии ...

Linear <- lapply(Explanatory, function (x) lm(x~., data = Response))
sapply(Linear, function(f) summary(f)$coefficients[,4])

Но когда я проделываю то же самое с многочленом ...

Polynomial <- lapply(Explanatory, function (x) lm(x~poly(.,2), data = Response))

... Я получаю это сообщение об ошибке `` Ошибка в поли (., 2): anyNA () применяется к не- (списку или вектору) типа 'закрытие' '

Спасибо заранее за любую помощь!


person James White    schedule 08.03.2016    source источник


Ответы (1)


Вам нужно будет вручную добавить полиномиальные члены с помощью функции I.

lapply(Explanatory, function (x) lm(x~.+I(V1^2), data = Response))

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

lapply(Explanatory, function (x) lm(x~V1+V2+V3+V4, data = Response))
lapply(Explanatory, function (x) lm(x~V1*V2*V3*V4, data = Response))
person Dave2e    schedule 14.05.2016