正确估计 glmmLasso 函数的参数

机器算法验证 r 混合模式 套索 咕噜咕噜
2022-03-16 07:18:18

我正在使用glmmLasso变量选择。就我而言,n略小于p并且p是不同时间段的生物气候变量,因此高度相关。

如何为参数选择正确的值:lambdacontrol. 我尝试了不同的值lambdamaxIter(甚至到 10,000)和controlstartsteps)。但是,算法永远不会收敛。所有选定变量的 p.values 都是 0,这让我想知道不收敛是否是原因。什么因素可以帮助在合理数量的迭代中实现收敛?

在选择的变量中,由于 p.values 都为 0(其余变量为 NA),我可以根据 估计相对变量重要性StdErr吗?

此外,lambda产生最低BIC值的结果选择了太多变量作为重要变量。在这种情况下可以吗(因为我只是为建模做一个粗略的变量选择)不用担心 BIC,而是选择给我合理数量的变量的 lambda,这些变量在我的数据下也有意义。

start无论如何,其中的论点是什么control所有零都是不可接受的,低于特定长度的向量也是如此。值和向量长度取决于什么?抱歉,如果这表明对混合模型背后的数学一无所知......

有关数据的详细信息,请参阅使用混合模型进行变量选择(lme4)

GMMBoost也通过了 Groll,但在这种情况下没有找到可以指导我的东西。有没有人使用 glmmLasso 进行分析并遇到过类似的情况?很高兴听到任何建议

1个回答

glmmLasso软件包包含一个演示文件,其中显示了几种策略,如何优化调整参数lambda我建议从 的高值开始lambda,这样所有协变量都设置为零,然后逐步减少它。如果将对应于 a 的最终系数估计lambda用作下一个较小的 的起始值,它会提高速度lambda

列表的参数startcontrol所有模型参数的起始值向量,即所有固定效应(通常包括截距),然后是所有随机效应(因此取决于你的组合因子的长度和随机项的结构),请参阅 的文档glmmLassoControl例如,如果您使用简单的随机截距拟合以下 GLMM:

fit <- glmmLasso(y ~ x1 + ... + x10, rnd = list(id=~1), data = ..., ... )

并假设您的分组因子id包含 80 个人,那么start向量的长度必须为 1(截距)+10(固定效应)+80(随机效应)=91。

根据我的经验,与最低 BIC 对应的模型lambda通常非常稀疏。所以我建议首先检查一下,如果真的所有协变量都已经被标准化以具有方差一个。此外,查看您的lambda值序列的系数路径,以检查它们是否按照 LASSO 的通常期望建立。