【问题标题】:Huge difference in result of vglm() and multinomial() for mlogitmlogit 的 vglm() 和 multinomial() 结果的巨大差异
【发布时间】:2015-04-26 12:49:40
【问题描述】:

我正在为iris 数据集做多项逻辑回归模型,

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

这两个结果似乎差距很大?我哪里做错了?我怎样才能修复它们并获得类似的结果?

【问题讨论】:

    标签: r mlogit


    【解决方案1】:

    差距是由于两个因素造成的:(1)VGAM中的multinomial()族默认选择引用作为响应因子的最后一级,而nnet中的multinom()总是使用第一级作为参考。 (2) iris 数据中的物种类别可以线性分离,从而导致非常大的系数和巨大的标准误差。当对数似然实际上没有进一步变化时,数值优化在哪里停止,在不同的实现中可能会有所不同,但实际上是无关紧要的。

    作为一个没有分离的例子,考虑一个基于德国社会经济小组 (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
    

    【讨论】:

      猜你喜欢
      • 2014-11-25
      • 2023-01-26
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      • 2019-03-26
      • 1970-01-01
      相关资源
      最近更新 更多