R 在我的数据集的所有列中运行回归和循环
我正在以以下形式运行回归:R 在我的数据集的所有列中运行回归和循环,r,R,我正在以以下形式运行回归: reg=lm(y ~ a+b+ab,data=mydata) 在“b”的位置,我想循环遍历数据集的所有列。 例如: 第二次,我想循环遍历数据集中“a”和“b”的所有列。 例如: reg=lm(y `~` a+b+ab,data=mydata) reg=lm(y `~` a+c+ac,data=mydata) reg=lm(y `~` b+c+bc,data=mydata) reg=lm(y `~` c+d+cd,data=mydata) reg=lm(y `~`
reg=lm(y ~ a+b+ab,data=mydata)
在“b”的位置,我想循环遍历数据集的所有列。
例如:
第二次,我想循环遍历数据集中“a”和“b”的所有列。例如:
reg=lm(y `~` a+b+ab,data=mydata)
reg=lm(y `~` a+c+ac,data=mydata)
reg=lm(y `~` b+c+bc,data=mydata)
reg=lm(y `~` c+d+cd,data=mydata)
reg=lm(y `~` e+c+ec,data=mydata).....all possibilities
最后,我想保存至少有1个有效p值的任何输出。
我使用R进行统计。这将完成您的第一个循环
lapply(setdiff(names(mydata),c("y","a")),function(x){
lm(paste0("y~a*",x),mydata)
})
这应该是第二步
VariablesToLoop<-expand.grid(setdiff(names(mydata),"y"),setdiff(names(mydata),"y"),stringsAsFactors = FALSE)
VariablesToLoop<-VariablesToLoop[!VariablesToLoop$Var1==VariablesToLoop$Var2,]
Map(function(name1,name2){
lm(paste0("y~",name1,"*",name2),mydata)
},VariablesToLoop$Var1,VariablesToLoop$Var2)
VariablesToLoopIsa+b+ab
表示a+b+I(a*b)
-即-a
乘以b
?是的,我想测试a和b之间的交互作用reg=lm(y~
a+b+a*b,data=mydata),我相信只要使用y~a*b
就可以扩展到y~a+b+a:b
,其中a:b
是交互术语:
是用于显式包含交互的字符。我建议您可能需要阅读R-e的公式规范,例如,您可能应该搜索所有回归子集,但您也应该意识到,大多数著名的统计学家都认为这是惊人的数据挖掘。但是,使用此代码,它是否保存了至少有1个有效p值的任何输出?我想将输出自动保存在外部文件中,您想具体保存什么?保存回归的输出(p值估计…)感谢我在运行脚本的第一部分(进行回归)时所做的修改,r崩溃,可能是因为回归次数(1000次回归)的缘故?我想知道问题是否在于此?如果我在开始时添加“保存”功能,是否可以解决问题?
VariablesToLoop<-expand.grid(setdiff(names(mydata),"y"),setdiff(names(mydata),"y"),stringsAsFactors = FALSE)
VariablesToLoop<-VariablesToLoop[!VariablesToLoop$Var1==VariablesToLoop$Var2,]
Map(function(name1,name2){
lm(paste0("y~",name1,"*",name2),mydata)
},VariablesToLoop$Var1,VariablesToLoop$Var2)
elementsToKeep<-sapply(allmodels,function(x){
pvalues<-summary(x)$coefficients[,4]
ifelse(any(pvalues<0.05),TRUE,FALSE)
})
relevantmodels<-allmodels[elementsToKeep]
relevant.pvalues<-lapply(relevantmodels,function(x){
summary(x)$coefficients[,4]
})
df <- data.frame(matrix(unlist(relevant.pvalues), nrow=length(relevant.pvalues),byrow=T))
write.csv(df,file="pvalues.csv")