我想使用step()函数(或类似的函数,如果你认为它会更好)来计算最佳模型并计算交互。 我创建了虚拟数据集。
pos.neg<- c(1,0,1,1,0,0,0,0,0,1,0,0,0,0,0)
var1<- c(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE)
var2<- c(TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE)
var3<- c(FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE)
var4<- c(FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE)
var5<- c(TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE)
var6<- c(TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE)
var7<- c(TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE)
fin.bin<- data.frame(pos.neg,var1,var2,var3,var4,var5,var6)
这就是我所做的:
base.bin<- glm(pos.neg~1, data=fin.bin, family=binomial)
var<- names(fin.bin)
var<- var[var!="pos.neg"]
text<- paste( 'pos.neg ~ ', paste(var, collapse= "+"))
text2<- paste(var,collapse="*")
text3<- paste(text,"+",text2)
f<- as.formula(text3)
bestmodel.bin<- step(base.bin,scope=list(upper=f,lower=~1), direction="both",data=fin.bin)
summary(bestmodel.bin)
虽然我明白所有变量都包含在“文本”中,但我不确定是否在步骤()中检查了6个解释变量之间的所有可能的相互作用,我定义了“text2”(这些应该是阶乘的(6) =我猜是720次互动?)。
是否有更整洁的方法来编写这个或另一个函数,找到最适合结果变量的模型pos.neg验证哪些变量及其相互作用最好被包括在内?
非常感谢 马可