【问题标题】:GLMNet convergence issue for penalized regression惩罚回归的 GLMNet 收敛问题
【发布时间】:2017-05-27 17:41:20
【问题描述】:

我正在研究政治网络的网络模型。我正在做的一件事是惩罚推理。我通过为 glmnet 设置惩罚因子来使用自适应套索方法。我的模型中有各种参数:alphasphisalphas 是固定效果,所以我想在 phis 受到惩罚时将它们保留在模型中。

我有来自glm() 的 MLE 估计过程的起始系数来计算通过glmnet() 的惩罚因子设置的自适应权重。

这是代码:

# Generate Generalized Linear Model
GenLinMod = glm(y ~ X, family = "poisson")
# Set coefficients
coefficients = coef(GenLinMod)
# Set penalty
penalty = 1/(coefficients[-1])^2
# Protect alphas
penalty[1:(n-1)] = 0

# Generate Generalized Linear Model with adaptive lasso procedure
GenLinModNet = glmnet(XS, y, family = "poisson", penalty.factor = penalty, standardize = FALSE)

对于某些网络,此代码执行得很好,但是我有某些网络会出现以下错误:

Error: Matrices must have same number of columns in rbind2(.Call(dense_to_Csparse, x), y)
In addition: Warning messages:
1: from glmnet Fortran code (error code -1); Convergence for 1th lambda value not reached after maxit=100000 iterations; solutions for larger lambdas returned 
2: In getcoef(fit, nvars, nx, vnames) :
  an empty model has been returned; probably a convergence issue

奇怪的是它们都使用相同的代码,所以我想知道这是否是数据问题。 附加信息:

+在一种情况下,我有超过 500 个alphas 和 21 个phis,并且出现了这些错误,在另一种情况下,我有 200 个alphas 和 28 个phis 不起作用。但另一方面,我有一个超过 600 个 alphas 和 28 个 phis 的案例,并且它收敛得很好。

+我尝试了lambda.min.rationlambda的设置,但无济于事。

附加问题:罚分的第一个条目是否与拦截相关联?还是glmnet()自动添加的?我在glmnet 小插图中没有找到明确的说明。我的想法是我不应该包含拦截的术语,因为据说惩罚在内部重新调整为 sum nvars,我认为拦截不是我的变量之一。

【问题讨论】:

    标签: r social-networking glmnet convergence


    【解决方案1】:

    我对此不是 100% 确定,但我想我已经找到了问题的根源。

    我尝试使用各种手动 lambda 序列,甚至尝试使用非常大的起始 lambda(1000 个)。这一切似乎都没有什么好处。但是,当我尝试不惩罚 alpha 时,一切都会很好地收敛。所以它可能与未惩罚变量的数量有关。也许将所有 alpha 的不受惩罚的力量 glmnet 保持在某种不同的状态。也许存在某种共线性。我的“解决方案”,基本上只是在做其他事情,是用与 phi 之一相同的重量来惩罚 alpha。这是在假设某些 phi 很重要并且 alpha 可以同样重要,而不是固定的(这使得它们无限重要)的假设下起作用的。我并不完全满意,因为这只是一种不同的方法,但有趣的是,它可能与未惩罚变量的数量有关。

    另外,回答我的另一个问题:在 glmnet 小插图中,它说惩罚项在内部重新调整为总和到 nvars。由于截距不是变量之一,我的猜测是在惩罚项中不需要它。虽然,我尝试过包括和排除这个词,结果似乎是一样的。因此,如果 glmnet 检测到长度为应有长度的 +1,则可能会自动将其删除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-16
      • 2015-03-05
      • 1970-01-01
      • 1970-01-01
      • 2020-12-31
      • 2016-10-19
      • 2017-11-29
      • 2023-02-03
      相关资源
      最近更新 更多