2016-03-08 55 views
0

假設我有兩個數據幀,一個具有一組解釋變量,另一個具有一組響應變量。在多個解釋變量和響應變量之間應用多項式迴歸

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)) 

...我得到這個錯誤消息'poly(。,2)中的錯誤: anyNA()應用於類型'closure'的非(列表或向量)

非常感謝您的幫助!

回答

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))