使用 glmet 包对 GLM 进行惩罚

Penalized GLM using the glmet - package

由于我有很多解释变量,我想对多项式logit模型进行惩罚估计。使用 glmnet 包,我将按如下方式进行:

library(glmnet)
data(MultinomialExample)

cvfit=cv.glmnet(x, y, family="multinomial", type.multinomial = "grouped", parallel = TRUE)
plot(cvfit)
coef(cvfit, s = "lambda.min")

从执行多项式 logit 回归的其他包中,我知道输出 K-1 个因变量的 K-1 系数,因为其中一个是所谓的参考类别。

然而,coef(cvfit, s = "lambda.min") 给出了每个类别的系数,这让我很困惑:

$`1`
31 x 1 sparse Matrix of class "dgCMatrix"
                       1
(Intercept)  0.015885341
V1           0.051848049
V2          -0.340036374
V3           0.421616900
....

$`2`
31 x 1 sparse Matrix of class "dgCMatrix"
                       1
(Intercept) -0.017214370
V1          -0.329369991
V2          -0.145053512
V3          -0.160609561
.......

$`3`
31 x 1 sparse Matrix of class "dgCMatrix"
                       1
(Intercept)  0.001329029
V1           0.277521942
.......

所以基本上:

  1. 你知道如何解释输出吗?

  2. 你知道我如何获得类别 2 和 3 的系数吗?假设 1 是参考类别?

查看 KH Kim here 的回答。 His/her 代码显示了如何在 glmnet 的输出和更常见的格式之间切换,例如multinom() 来自 nnet