【发布时间】:2015-08-25 20:34:07
【问题描述】:
我正在尝试使用 R 包 leaps 在单个因变量和超过 50 个可能的预测变量上运行所有可能的回归模型组合——所有可能的大小。每个变量是大约 50 个数值的向量。
这是我尝试过的,但没有成功:
vars <- c("var1", "var2", "var3", ... , "var60")
xs <- as.formula(paste("yvar ~ ", paste(vars, collapse="+")))
model1 <- regsubsets(x=xs, y=yvar, really.big=TRUE,
method="exhaustive", data=data)
summary(model1)
我收到的错误是:
Warning message:
In leaps.setup(x, y, wt = wt, nbest = nbest, nvmax = nvmax, force.in = force.in,:
15 linear dependencies found
【问题讨论】:
-
(1) 这是警告,而不是错误。它不应该阻止您继续进行(但您应该尝试弄清楚它的含义)。 (2) 我看到
regsubsets实际上并不适合所有模型,这很好,因为有 2^50 个可能的模型。你知道这是否真的可行吗? (3) 我们可以有一个可重现的例子吗? -
@nongkrong,你能发布你的可复制示例吗(希望足够短以发表评论,否则作为答案发布并稍后删除)?
-
@BenBolker 当然,我做了
dat <- setNames(data.frame(matrix(rnorm(61*50), 50)), c("yvar", paste0("var", 1:60))); model1 = regsubsets(yvar ~ ., y=yvar, really.big=T, method="exhaustive", data=dat)。运行需要一秒钟,我认为y=yvar是多余的 -
设置
nvmax=50以查看 all 子集的相当长的运行时间。默认最大尺寸为 8。
标签: r regression