2

您好我正在尝试使用套索方法执行变量选择,但我的模型包含随机效应。

我已经使用 glmnet 中的 cv.glmnet 和 optL1 函数运行了没有随机效应的模型并受到惩罚(并得到了结果);但是,当我尝试使用 glmmLasso 运行具有随机效应的模型时,我得到了大部分输出的 NA。

这是我的数据的示例。我已经标准化了所有的预测变量(x1-x5)。随机因素是情节(每个情节有两个观察值)

head(data)
     Plot     y       x1         x2            x3       x4         x5
[1,]    1  33.38637 -0.3778876 -0.6493490 -1.9874184  0.13397776 -0.70846326
[2,]    4 26.75993 -1.9377779 -0.6932049  0.6747408  1.28276574  0.04818805
[3,]    5 29.25769 -0.1512598  0.7053084  1.0550493 -0.66133701 -0.72988495
[4,]    6 26.47273 -0.3711473  1.5288232  0.2944324 -0.83807362 -0.58073941
[5,]    6 24.32503 -0.9079206 -1.0732886  0.6747408  0.04560945  2.48661737
[6,]    7 32.93299 -0.7321292  0.1546743 -0.0858761 -0.13112716 -0.50712361

这是我运行的模型:

mod<-glmmLasso(y~x1+x2+x3+x4+x5, rnd=list(Plot=~1), data=data,lambda=10)

和输出:

    summary(x)
Call:
glmmLasso(fix = y~ x1+x2+X3+X4+x5, rnd = list(Plot = ~1), data = data, lambda = 10)


Fixed Effects:

Coefficients:
               Estimate StdErr z.value p.value
(Intercept)  53.4562879     NA      NA      NA
x1          -32.2591971     NA      NA      NA
x2           -0.7791392     NA      NA      NA
x3           -0.0023207     NA      NA      NA
x4           -0.0148370     NA      NA      NA
x5           -0.1593585     NA      NA      NA

Random Effects:

StdDev:
         Plot
Plot 3.294686

我最初认为它不起作用,因为基于此的预测变量之间的相关性:Getting p-values for all included parameters using glmmLasso

但是在查看相关性时,没有什么太高了。我什至尝试删除 x2,因为它具有最高的相关性,但我仍然在模型输出中得到 NA。

            x1           x2             x3          x4            x5
   x1    1.00000000    0.1632633 -0.08125663   -0.15017421    0.11155284
   x2    0.16326326    1.0000000 -0.31222700    0.30135509    0.14519762
   x3    -0.08125663   -0.3122270  1.00000000   -0.09517447   -0.05023544
   x4    -0.15017421    0.3013551 -0.09517447    1.00000000    0.19224986
   x5    0.11155284    0.1451976 -0.05023544    0.19224986    1.00000000

我想知道为什么我会得到 NA。是因为我的样本量(每个随机效应分组只有 2 个观察值还是总共只有 31 个观察值?)任何想法都将不胜感激。谢谢!

4

1 回答 1

2

设置final.re=TRUE在您的glmmLasso()通话中。

这将执行最终的 Fisher 评分重新估计。

于 2019-04-03T20:33:56.930 回答