2016-03-08 15 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))