glmmLasso 错误和警告
glmmLasso error and warning
我正在尝试使用 glmmLasso 在广义线性混合模型中执行变量选择,但出现错误和警告,我无法解决。数据集不平衡,一些参与者 (PTNO) 的样本比其他参与者多;没有丢失的数据。我的因变量是二进制的,所有其他变量(除了 ID 变量 PTNO)都是连续的。
我怀疑发生了一些非常普遍的事情,但显然没有看到它并且没有在文档或网络上找到任何解决方案。
基本上只是改编自 glmmLasso 足球示例的代码是:
glm8 <- glmmLasso(Group~NDUFV2_dCTABL+GPER1_dCTABL+ ESR1_dCTABL+ESR2_dCTABL+KLF12_dCTABL+SP4_dCTABL+SP1_dCTABL+ PGAM1_dCTABL+ANK3_dCTABL+RASGRP1_dCTABL+AKT1_dCTABL+NUDT1_dCTABL+ POLG_dCTABL+ ADARB1_dCTABL+OGG_dCTABL+ PDE4B_dCTABL+ GSK3B_dCTABL+ APOE_dCTABL+ MAPK6_dCTABL, rnd = list(PTNO=~1),
family = poisson(link = log), data = stackdata, lambda=100,
control = list(print.iter=TRUE,start=c(1,rep(0,29)),q.start=0.7))
错误信息显示如下。具体来说,我不相信数据集中有任何 NA,我不确定关于因子变量的警告的含义。
Iteration 1
Error in grad.lasso[b.is.0] <- score.beta[b.is.0] - lambda.b * sign(score.beta[b.is.0]) :
NAs are not allowed in subscripted assignments
In addition: Warning message:
In Ops.factor(y, Mu) : ‘-’ not meaningful for factors
包含必要变量的简化数据集以 R 格式提供,可以下载 here。
我希望我能得到一些关于如何继续分析的指导。如果数据集有任何问题或者您无法下载,请告诉我。非常感谢任何帮助。
只是为了跟进@Kristofersen 上面的评论。确实是 start
向量扰乱了您的分析。
如果我运行
glm8 <- glmmLasso(Group~NDUFV2_dCTABL+GPER1_dCTABL+ ESR1_dCTABL+ESR2_dCTABL+KLF12_dCTABL+SP4_dCTABL+SP1_dCTABL+ PGAM1_dCTABL+ANK3_dCTABL+RASGRP1_dCTABL+AKT1_dCTABL+NUDT1_dCTABL+ POLG_dCTABL+ ADARB1_dCTABL+OGG_dCTABL+ PDE4B_dCTABL+ GSK3B_dCTABL+ APOE_dCTABL+ MAPK6_dCTABL,
rnd = list(PTNO=~1),
family = binomial(),
data = stackdata,
lambda=100,
control = list(print.iter=TRUE))
然后一切都很好而且花花公子(即,它收敛并产生一个解决方案)。您已经复制了带有泊松回归的示例,您需要根据您的情况调整代码。我不知道输出是否有意义。
快速说明:我 运行 使用上面代码中的二项分布,因为你的结果是二进制的。如果估计相对风险有意义,那么泊松可能是合理的(并且它也会收敛),但是您需要重新编码您的结果,因为这两个组被定义为 1
和 2
,这肯定会一团糟泊松回归。
换句话说做一个
stackdata$Group <- stackdata$Group-1
在你运行分析之前。
我正在尝试使用 glmmLasso 在广义线性混合模型中执行变量选择,但出现错误和警告,我无法解决。数据集不平衡,一些参与者 (PTNO) 的样本比其他参与者多;没有丢失的数据。我的因变量是二进制的,所有其他变量(除了 ID 变量 PTNO)都是连续的。 我怀疑发生了一些非常普遍的事情,但显然没有看到它并且没有在文档或网络上找到任何解决方案。 基本上只是改编自 glmmLasso 足球示例的代码是:
glm8 <- glmmLasso(Group~NDUFV2_dCTABL+GPER1_dCTABL+ ESR1_dCTABL+ESR2_dCTABL+KLF12_dCTABL+SP4_dCTABL+SP1_dCTABL+ PGAM1_dCTABL+ANK3_dCTABL+RASGRP1_dCTABL+AKT1_dCTABL+NUDT1_dCTABL+ POLG_dCTABL+ ADARB1_dCTABL+OGG_dCTABL+ PDE4B_dCTABL+ GSK3B_dCTABL+ APOE_dCTABL+ MAPK6_dCTABL, rnd = list(PTNO=~1),
family = poisson(link = log), data = stackdata, lambda=100,
control = list(print.iter=TRUE,start=c(1,rep(0,29)),q.start=0.7))
错误信息显示如下。具体来说,我不相信数据集中有任何 NA,我不确定关于因子变量的警告的含义。
Iteration 1 Error in grad.lasso[b.is.0] <- score.beta[b.is.0] - lambda.b * sign(score.beta[b.is.0]) : NAs are not allowed in subscripted assignments In addition: Warning message: In Ops.factor(y, Mu) : ‘-’ not meaningful for factors
包含必要变量的简化数据集以 R 格式提供,可以下载 here。 我希望我能得到一些关于如何继续分析的指导。如果数据集有任何问题或者您无法下载,请告诉我。非常感谢任何帮助。
只是为了跟进@Kristofersen 上面的评论。确实是 start
向量扰乱了您的分析。
如果我运行
glm8 <- glmmLasso(Group~NDUFV2_dCTABL+GPER1_dCTABL+ ESR1_dCTABL+ESR2_dCTABL+KLF12_dCTABL+SP4_dCTABL+SP1_dCTABL+ PGAM1_dCTABL+ANK3_dCTABL+RASGRP1_dCTABL+AKT1_dCTABL+NUDT1_dCTABL+ POLG_dCTABL+ ADARB1_dCTABL+OGG_dCTABL+ PDE4B_dCTABL+ GSK3B_dCTABL+ APOE_dCTABL+ MAPK6_dCTABL,
rnd = list(PTNO=~1),
family = binomial(),
data = stackdata,
lambda=100,
control = list(print.iter=TRUE))
然后一切都很好而且花花公子(即,它收敛并产生一个解决方案)。您已经复制了带有泊松回归的示例,您需要根据您的情况调整代码。我不知道输出是否有意义。
快速说明:我 运行 使用上面代码中的二项分布,因为你的结果是二进制的。如果估计相对风险有意义,那么泊松可能是合理的(并且它也会收敛),但是您需要重新编码您的结果,因为这两个组被定义为 1
和 2
,这肯定会一团糟泊松回归。
换句话说做一个
stackdata$Group <- stackdata$Group-1
在你运行分析之前。