从leaps Regs子集获取所有模型

从leaps Regs子集获取所有模型,r,regression,linear-regression,lm,R,Regression,Linear Regression,Lm,我使用regsubset搜索模型。是否可以从参数选择列表中自动创建所有lm library(leaps) leaps<-regsubsets(y ~ x1 + x2 + x3, data, nbest=1, method="exhaustive") summary(leaps)$which (Intercept) x1 x2 x3

我使用regsubset搜索模型。是否可以从参数选择列表中自动创建所有
lm

library(leaps)
leaps<-regsubsets(y ~ x1 + x2 + x3, data, nbest=1, method="exhaustive")
summary(leaps)$which
  (Intercept)      x1        x2    x3                                                                                   
1        TRUE   FALSE     FALSE  TRUE                                                                                   
2        TRUE   FALSE      TRUE  TRUE                                                                                   
3        TRUE    TRUE      TRUE  TRUE                                                                                   
库(跳跃)

leaps我不知道你为什么想要所有型号的列表
summary
coef
方法应该可以很好地为您服务。但我将首先从纯编程的角度回答您的问题,然后回到这一点


一种简单的方法是通过
重新格式化

reformulate(termlabels, response = NULL, intercept = TRUE)
以下是如何:

## you are masking `leaps` and `data` function!!
leaps <- regsubsets(y ~ x1 + x2 + x3, data, nbest = 1, method = "exhaustive")
X <- summary(leaps)$which

xvars <- dimnames(X)[[2]][-1]  ## column names (all covariates except intercept)
responsevar <- "y"  ## name of response

lst <- vector("list", dim(X)[1])  ## set up an empty model list

## loop through all rows / model specifications
for (i in 1:dim(X)[1]) {
  id <- X[i, ]
  form <- reformulate(xvars[which(id[-1])], responsevar, id[1])
  lst[[i]] <- lm(form, data)
  }

你会得到所有模型的系数和方差-协方差矩阵。

问题是相互作用项…它们在模型中不是明确的变量名称。有没有办法得到所有模型的所有正则子集的MSE?
coef(leaps, 1:dim(X)[1], TRUE)