r - 使用 glmulti() 在详尽的所有子集回归中一次可以使用的最大变量数是多少

标签 r linear-regression glm

我正在使用 glmulti() R 中的包尝试对某些数据运行全子集回归。我有 51 个预测变量,全部都有最多 276 个观察值。我意识到详尽的遗传算法方法无法计算这么多变量,因为我收到以下信息:

Warning message:
In glmulti(y = "Tons_N", data = MDatEB1_TonsN, level = 1, method = "h",  :
  !Too many predictors.

有了这些类型的要求(即有很多观察值的许多变量),我可以在单次运行所有子集回归中使用多少个?我正在研究变量消除技术,但我想在分析的这个阶段使用尽可能多的变量。也就是说,我想用这个分析的结果来做出变量消除决策。是否有另一个包可以一次处理更多变量?

这是我正在使用的代码。不幸的是,由于与项目相关的 secret 性,我无法附加数据集。
TonsN_AllSubset <- glmulti(Tons_N ~ ., data = MDatEB1_TonsN, level = 1, method = "h",crit = "aic", confsetsize = 20, plotty = T, report = T,fitfunction = "glm")
总的来说,我对这个包和建模比较陌生。任何方向或建议将不胜感激。谢谢!

最佳答案

glmulti 不受预测变量数量的限制,而是受候选模型数量的限制。
通过设置参数 method = "d",glmulti 将计算候选模型的数量。计算这比在 method = "h"或 method = "g"上运行 glmulti 花费的时间要少得多。
如果预测变量的数量太多,您将收到相同的错误消息。因此,您可以在合理的计算时间内尝试由 glmulti 处理的最大数量的预测变量。
但是,请记住,可能的预测变量的最大数量很大程度上取决于您是否允许交互。
此外,您可以通过指定模型中的预测变量数(例如 minsize = 0、maxsize = 1)或通过排除 (exclude = c()) 特定预测变量或通过排除模型公式中的预测变量来限制候选模型的数量(y~a+b+ca:b-1;这不包括拦截和交互 a:b)。您可以在包文档 glmulti.pdf 中找到更多用于限制候选模型数量的选项

关于r - 使用 glmulti() 在详尽的所有子集回归中一次可以使用的最大变量数是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18343696/

相关文章:

python - 使用scikit-learn(sklearn),如何处理线性回归的缺失数据?

r - 如何在一个循环中拟合多个交互模型?

python - Python 中改进的负二项式 GLM

r - 检查计数器变量中的步骤是否丢失

r - 在Knitr中使用布局

r - Shiny:如何增加tabsetPanel的宽度以覆盖sidebarPanel右侧的整个区域?

R:强制回归系数加起来为 1

r - 如何使用 R 中的 markdown 抑制 knitr block 选项中的 dev.off() 消息

python - 用枢轴点 Python 拟合曲线

r - R 的 GLMER 输出,.sig01、.sig02、.sig03 的含义