跨多个解释变量和响应变量应用多项式回归

Applying polynomial regressions across several explanatory and response variables

假设我有两个数据框,一个有一组解释变量,另一个有一组响应变量。

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' 类型的非(列表或向量)'

提前感谢您的帮助!

您需要使用 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))