vglm()和multinomial()在mlogit中结果差异很大

7

我正在为鸢尾花数据集做多项式逻辑回归模型。

library(VGAM)
mlog1 <- vglm(Species ~ ., data=iris, family=multinomial())
coef(mlog1)

系数如下:

 (Intercept):1  (Intercept):2 Sepal.Length:1 Sepal.Length:2  Sepal.Width:1 
     34.243397      42.637804      10.746723       2.465220      12.815353 
 Sepal.Width:2 Petal.Length:1 Petal.Length:2  Petal.Width:1  Petal.Width:2 
      6.680887     -25.042636      -9.429385     -36.060294     -18.286137 

接下来我使用multinom()函数并进行相同的操作:

library(nnet)
mlog2 <- multinom(Species ~ ., data=iris)

系数:

Coefficients:
           (Intercept) Sepal.Length Sepal.Width Petal.Length Petal.Width
versicolor    18.69037    -5.458424   -8.707401     14.24477   -3.097684
virginica    -23.83628    -7.923634  -15.370769     23.65978   15.135301

这两个结果之间似乎存在很大的差距?我哪里做错了?如何修复它们并获得类似的结果?
1个回答

10

这个间隔是由两个因素造成的: (1) VGAM 中的 multinomial() 簇族默认选择响应因子的最后一级作为参考水平,而 nnet 中的 multinom() 总是使用第一级作为参考。 (2) 鸢尾数据中的物种类别可以被线性分离,因此导致非常大的系数和巨大的标准误差。当对数似然虚拟上不再变化时,数值优化确切地停止的位置可能因实现而异,但在实践中并不重要。

作为一个没有分离的例子,考虑基于德国社会经济面板(1994-2002)数据的学校选择回归模型,该数据包含在 AER 包中:

data("GSOEP9402", package = "AER")
library("nnet")
m1 <- multinom(school ~ meducation + memployment + log(income) + log(size),
  data = GSOEP9402)
m2 <- vglm(school ~ meducation + memployment + log(income) + log(size),
  data = GSOEP9402, family = multinomial(refLevel = 1))

接下来,这两个模型得出的系数基本相同:

coef(m1)
##                (Intercept) meducation memploymentparttime memploymentnone
## Realschule   -6.366449  0.3232377           0.4422277       0.7322972
## Gymnasium   -22.476933  0.6664295           0.8964440       1.0581122
##            log(income) log(size)
## Realschule   0.3877988 -1.297537
## Gymnasium    1.5347946 -1.757441

coef(m2, matrix = TRUE)
##                     log(mu[,2]/mu[,1]) log(mu[,3]/mu[,1])
## (Intercept)                 -6.3666257        -22.4778081
## meducation                   0.3232500          0.6664550
## memploymentparttime          0.4422720          0.8964986
## memploymentnone              0.7323156          1.0581625
## log(income)                  0.3877985          1.5348495
## log(size)                   -1.2975203         -1.7574912

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接