r - 如何将我在 R 中的逐步回归转换为许多因变量的 FOR 循环
问题描述
我目前有对许多 x 和 1 y 使用三阶多项式回归的工作代码。然后,它使用逐步回归来找出 x 的哪个选择使该 y 的 AIC 最小化。
但是,我想添加更多 y 并使用 for 循环来找到每个 y 的最小 AIC,然后让它告诉我哪个 y 具有最小 AIC。
我当前的工作代码:
SPdata <- read.csv(file.choose(), header=T,sep=",")
REG1 <- lm(Y1~poly(X1, 3)+poly(X2, 3)+poly(X3, 3), SPdata)
summary(REG1)
n <- length(resid(REG1))
REG2 = step(REG1, direction = "backward", k = log(n))
summary(REG2)
coefficients(REG2)
我还制作了这个 for 循环,它输出 3 年的多元回归,但我不知道如何包含逐步回归部分:
SPdata <- read.csv(file.choose(), header=T,sep=",")
varnames <- names(SPdata)[1:3]
REG3 <- lapply(varnames,
FUN=function(x) lm(formula(paste(x, "~poly(X1, 3)+poly(X2, 3)")), SPdata))
names (REG3) <- varnames
谢谢您的帮助!
解决方案
您可以创建并命名您的函数,然后在apply
.
myRegression <- function(y){
myReg1 <- lm(formula(paste(y, "~poly(X1, 3)+poly(X2, 3)")), SPdata))
n <- length(resid(myReg1))
myReg2 <- step(MyReg1, direction = "backward", k = log(n))
...
}
myReg3 <- lapply(varnames, FUN = function(x) myRegression(x))
推荐阅读
- javascript - 仅获取单击的按钮的第一个值,该按钮具有多个具有多个值的按钮
- javascript - 在项目之间共享 React 组件,同时将源代码保存在其中一个中
- android - Ionic 3 键盘自动隐藏
- javascript - 如何在每个字符串之间用逗号分割数组?
- php - 无法访问 CodeIgniter 中的自定义视图
- c - C管道多条消息只收到一条
- json - 来自嵌套字典的 Pandas 数据框在单列中
- kubernetes - Cockpit-Kubernetes 中如何在集群之间切换
- c# - 将 AdWords XML 文件转换为 C# 列表
- javascript - 如何在javascript中总结两个对象的属性