上下文 理想情况下,我想运行一个模型列表,同时考虑所有的模型一次。由于我一直无法做到这一点,所以我运行了三组分别处理1,2和3个变量的模型。AICcmodavg lm不会运行2变量添加剂模型
问题 虽然图1个3变量模型运行良好,线性回归不会运行添加剂的2变量模型,但将运行一个相互作用项(我不想)。线性回归将在包裹之外运行,所以它不是一个自由度或负值问题,但我很难过。有没有人有任何想法?
数据
lre<-c(0.398,0,0.9298,1.470,0)
imm1<-c(-0.54,-1.67,0.07.96,-0.862,1.02)
imm2<-c(-0.033,4.3798,0.0358,-1.045,0.592)
met1<-c(-1.689,-1.06,1.156,-1.574,1.632)
met2<-c(-1.980,1.349,1.538,0.6303,-0.310)
phy1<-c(0.202,0.368,-0.643,2.274259,0.847)
phy2<-c(1.079,-0.068,-1.438,-0.716,0.846)
1可变=工作
library(AICcmodavg)
Cand.models <- list()
Cand.models[[1]]<-lm(lre~imm1)
Cand.models[[2]]<-lm(lre~imm2)
Cand.models[[3]]<-lm(lre~met1)
Cand.models[[4]]<-lm(lre~met2)
Cand.models[[5]]<-lm(lre~phy1)
Cand.models[[6]]<-lm(lre~phy2)
Modnames <- paste("mod", 1:length(Cand.models), sep = " ")
aictab(cand.set = Cand.models, modnames = Modnames, sort = TRUE)
2个变量相加模型=不起作用
Cand.models <- list()
Cand.models[[1]]<-lm(lre~imm1+imm2)
Cand.models[[2]]<-lm(lre~imm1+met2)
Cand.models[[3]]<-lm(lre~imm1+phy2)
Modnames <- paste("mod", 1:length(Cand.models), sep = " ")
aictab(cand.set = Cand.models, modnames = Modnames, sort = TRUE)
警告消息: 在aictab.AIClm(cand.set = Cand.models,modnames = Modnames,排序= TRUE):仔细检查 模型结构的某些型号可能是多余的
但是......
2变量与相互作用=工作
Cand.models <- list()
Cand.models[[1]]<-lm(lre~imm1*imm2)
Cand.models[[2]]<-lm(lre~imm1*met2)
Cand.models[[3]]<-lm(lre~imm1*phy2)
Modnames <- paste("mod", 1:length(Cand.models), sep = " ")
aictab(cand.set = Cand.models, modnames = Modnames, sort = TRUE)
3个变量中相加模型=工作
Cand.models <- list()
Cand.models[[1]]<-lm(lre~imm1+imm2+met1)
Cand.models[[2]]<-lm(lre~imm1+imm2+met2)
Cand.models[[3]]<-lm(lre~imm1+imm2+phy1)
Cand.models[[4]]<-lm(lre~imm1+imm2+phy2)
Modnames <- paste("mod", 1:length(Cand.models), sep = " ")
aictab(cand.set = Cand.models, modnames = Modnames, sort = TRUE)