【问题标题】:Can multinomial models be estimated using Generalized Linear model?可以使用广义线性模型估计多项模型吗?
【发布时间】:2017-06-26 03:13:17
【问题描述】:

在分类数据分析中,我们经常使用逻辑回归来估计二项式结果与一个或多个协变量之间的关系。

我知道这是一种广义线性模型 (GLM)。在 R 中,这是通过 glm 函数使用参数 family=binomial 实现的。另一方面,在分类数据分析中是多项模型。这些不是 GLM 吗?并且不能在 R 中使用 glm 函数估计它们吗?

(在这个post for Multinomial Logistic Regression。作者使用了一个外部包mlogit,貌似也过时了)

为什么 GLM 类别仅限于二分类结果?是因为多类分类可以被视为多个二元分类模型吗?

【问题讨论】:

  • 关于 R 是如何工作的、为什么某些函数存在而其他函数不存在等问题,在这里是题外话。请注意,因为这不是一个编程问题,所以它也将在 Stack Overflow 上偏离主题,并且不应迁移到那里。
  • (实际上,鉴于下面@AdamO 的出色回答,其中包含大量统计内容,我正在考虑撤回我的近距离投票。)
  • @gung 我提出了一个编辑建议以使问题更相关。
  • 这很好,@AdamO,但最好让 OP 进行编辑以改变问题的实质。
  • @hxd1011 gung 是对的。您的问题几乎是统计的。您可以对其进行编辑以使其不是关于 R,而是关于 GLM 的组成部分吗?您可以询问同名的 R 函数,但您最终会混淆多类别 logit 模型是否是 GLM。

标签: r logistic-regression glm


【解决方案1】:

R 中的 GLM 是使用 Fisher Scoring 估计的。想到了多类别 logit 的两种方法:比例优势模型和对数线性模型或多项回归。

比例赔率模型是一种特殊类型的累积链接模型,在MASS 包中实现。它不是用 Fisher 评分估计的,因此默认的 glm.fit work-horse 将无法估计这样的模型。然而,有趣的是,累积链接模型 GLM,并且在 McCullogh 和 Nelder 的同名文本中进行了讨论。负二项式 GLM 也存在类似问题:它们是严格意义上的链接函数和概率模型的 GLM,但需要专门的估计例程。至于 R 函数 glm,不应将其视为每种 GLM 的详尽估计器。

nnet 有一个对数线性模型估计器的实现。它符合他们使用 soft-max entropy 的更复杂的神经网络估计器,这是一个等效的公式(有理论可以证明这一点)。事实证明,如果您愿意,可以估计默认 R 中 glm 的对数线性模型。关键在于看到逻辑回归和泊松回归之间的联系。将计数模型的交互项(对数相对率的差异)识别为结果的逻辑模型中的一阶项(对数优势比),您可以通过在边缘上“调节”来估计相同的参数和相同的 SE用于多类别结果的 $K \times 2$ 列联表。 A related SE question on that background is here

以使用 MASS 包中的 VA 肺癌数据为例:

> summary(multinom(cell ~ factor(treat), data=VA))
# weights:  12 (6 variable)
initial  value 189.922327 
iter  10 value 182.240520
final  value 182.240516 
converged
Call:
multinom(formula = cell ~ factor(treat), data = VA)

Coefficients:
    (Intercept) factor(treat)2
2  6.931413e-01     -0.7985009
3 -5.108233e-01      0.4054654
4 -9.538147e-06     -0.5108138

Std. Errors:
  (Intercept) factor(treat)2
2   0.3162274      0.4533822
3   0.4216358      0.5322897
4   0.3651485      0.5163978

Residual Deviance: 364.481 
AIC: 376.481 

相比:

> VA.tab <- table(VA[, c('cell', 'treat')])
> summary(glm(Freq ~ cell * treat, data=VA.tab, family=poisson))

Call:
glm(formula = Freq ~ cell * treat, family = poisson, data = VA.tab)

Deviance Residuals: 
[1]  0  0  0  0  0  0  0  0

Coefficients:
               Estimate Std. Error z value Pr(>|z|)    
(Intercept)   2.708e+00  2.582e-01  10.488   <2e-16 ***
cell2         6.931e-01  3.162e-01   2.192   0.0284 *  
cell3        -5.108e-01  4.216e-01  -1.212   0.2257    
cell4        -1.571e-15  3.651e-01   0.000   1.0000    
treat2        2.877e-01  3.416e-01   0.842   0.3996    
cell2:treat2 -7.985e-01  4.534e-01  -1.761   0.0782 .  
cell3:treat2  4.055e-01  5.323e-01   0.762   0.4462    
cell4:treat2 -5.108e-01  5.164e-01  -0.989   0.3226    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 1.5371e+01  on 7  degrees of freedom
Residual deviance: 4.4409e-15  on 0  degrees of freedom
AIC: 53.066

Number of Fisher Scoring iterations: 3

将第一个模型中的交互参数和主要级别与第二个模型进行比较。也比较截距。 AIC 是不同的,因为对数线性模型是一个概率模型,即使是表格的边缘也受模型中其他参数的影响,但在预测和推理方面,这两种方法产生相同的结果。

简而言之,技巧问题! glm 处理多类别逻辑回归,它只需要对这些模型的构成有更深入的了解。

【讨论】:

  • 代码演示的好答案,让我能够以不同的方式看待事物,永远不知道 possion 和多类分类之间的联系!
  • 这里,celltreat 都是分类的;注意到可以将nnetmultinom 表述为GLM,与泊松回归的类比是否自然扩展到因子变量为数值的情况?
  • @fuglede no b/c 仅适用于 OR 执行 OR(x,y) = OR(y,x)。这反映在交互项中:x:y= y:x。当 x 是连续值时,对数线性模型中的关联度量是不同的,
  • 嗯,浏览相同的东西,我遇到了data.princeton.edu/wws509/notes/c6.pdf,他的第 6.2.5 节似乎建议如果交互保持在特定形式,您可以做一些事情。
  • 如果一个拟合单独的逻辑/二项式模型来模拟结果的概率为 1/所有其他类别、2/所有其他类别等,然后重新调整这些系数,以便总概率属于每个类别的结果总和为 1,但这不等于多项分布吗?
猜你喜欢
  • 2021-06-28
  • 1970-01-01
  • 2017-10-24
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
  • 1970-01-01
  • 2019-06-18
相关资源
最近更新 更多