任何人都可以帮助修复以下glmmLasso R软件包错误吗?

任何人都可以帮助修复以下glmmLasso R软件包错误吗?,r,lasso-regression,R,Lasso Regression,我一直在尝试运行下面的代码,我得到了各种错误。有人知道如何修复当前的吗?我试图运行一个带有调整参数(特别是LASSO)的广义线性混合模型,但试图从基础开始,首先获得固定效果。谢谢大家! y <- rbinom(n = 50, size = 1, prob = .5) x <- rnorm(n = 50, mean = 1, sd = .5) data <- data.frame(x, y) mod1 <- glmmLasso(fix = y ~ x , rnd = N

我一直在尝试运行下面的代码,我得到了各种错误。有人知道如何修复当前的吗?我试图运行一个带有调整参数(特别是LASSO)的广义线性混合模型,但试图从基础开始,首先获得固定效果。谢谢大家!

y <- rbinom(n = 50, size = 1, prob = .5)
x <- rnorm(n = 50, mean = 1, sd = .5)

data <- data.frame(x, y)

mod1 <- glmmLasso(fix = y ~ x , rnd = NULL, family = binomial(link = logit), lambda = 10, data = data)

y我的猜测是,只有一个预测值和没有关系的数据,你的lambda对于一个变量来说太高了,并且抛出了一个奇怪的矩阵解,你可以在这两行查看抛出错误:

finish<-(sqrt(sum((Eta.ma[l,]-Eta.ma[l+1,])^2))/sqrt(sum((Eta.ma[l,])^2))<eps)
finish2<-(sqrt(sum((Eta.ma[l-1,]-Eta.ma[l+1,])^2))/sqrt(sum((Eta.ma[l-1,])^2))<eps)

if(finish ||  finish2) 

finish我想这是R4.0.3的问题。

我使用glmmLasso时没有任何错误,这个错误是在我将基本R从3.6更新到4.0.3时发生的。我给作者写了一封电子邮件。

这行吗<代码>二项式(link=“logit”)
否:(它给出了相同的错误嗯,我试着通过一些lambda,但仍然没有任何运气。我给出的代码是为了模拟我拥有的具有更多预测值的真实数据。我们想看看是否可以让它与假数据一起工作,但我们得到了相同的错误。能否将lambda设置为非常低的值,如0.0001?这不起作用是模拟数据,我的真实数据,还是glmmLasso示例数据。我仍然会遇到这样的错误:条件的长度>1,只有第一个元素会被使用。条件的长度>1,只有第一个元素会被使用。可能是软件或设置造成的吗?当我复制并粘贴你的确切代码时,我仍然得到相同的错误。有一些奇怪的事情。要么你有与glmmLasso冲突的软件包,要么是的,你可能需要重新安装它。但是我在R3.6上。你在R4.0上吗?很高兴知道,我从来没有听说过软件包冲突。我会调查一下。我正在使用R版本4.0.3和R Studio 1.3.1093。我感谢你的帮助!
set.seed(2)

y <- rbinom(n = 50, size = 1, prob = .5)
x <- rnorm(n = 50, mean = 1, sd = .5)

data <- data.frame(x, y)

mod1 <- glmmLasso(fix = y ~ x , rnd = NULL, family = binomial(link = logit), lambda = 10, data = data)

Error in if (finish || finish2) break : 
  missing value where TRUE/FALSE needed

mod1 <- glmmLasso(fix = y ~ x , rnd = NULL, family = binomial(link = logit), lambda = 1, data = data)

mod1
Call:
glmmLasso(fix = y ~ x, rnd = NULL, data = data, lambda = 1, family = binomial(link = logit))

Fixed Effects:

Coefficients:
(Intercept)           x 
 -0.8089034   0.8678967 
set.seed(1)
y <- rbinom(n = 50, size = 1, prob = .5)
x <- rnorm(n = 50, mean = 1, sd = .5)
data <- data.frame(x, y)
    
mod1 <- glmmLasso(fix = y ~ x , rnd = NULL, family = binomial(link = logit), lambda = 10, data = data)

mod1
Call:
glmmLasso(fix = y ~ x, rnd = NULL, data = data, lambda = 10, 
    family = binomial(link = logit))

Fixed Effects:

Coefficients:
(Intercept)           x 
  0.1603426   0.0000000