多项式模型可以使用广义线性模型进行估计吗?

24
在分析分类数据时,我们通常使用逻辑回归来估计二项结果和一个或多个协变量之间的关系。我理解这是广义线性模型(GLM)的一种类型。在R中,可以使用glm函数并使用参数family=binomial来实现这一点。另一方面,在分类数据分析中,还有多项式模型。这些不是GLMs吗?它们不能使用glm函数在R中进行估计吗?
(在Multinomial Logistic Regression中作者使用了外部包mlogit,该软件似乎过时)
为什么GLMs类别受到二元结果的限制?这是因为多类分类可以被视为多个二进制分类模型吗?

关于R语言的工作原理、为什么存在某些函数而不存在其他函数等问题,不属于本站的讨论范围。请注意,由于这不是一个编程问题,因此在[SO]上也不适合讨论,并且不应该将其迁移到那里。 - gung - Reinstate Monica
(实际上,考虑到下面@AdamO的出色答案包含了大量统计内容,我正在考虑撤回我的关闭投票。) - gung - Reinstate Monica
@gung 我提出了一个编辑建议,使问题更相关一些。 - AdamO
这很好,@AdamO,但最好让OP进行编辑以改变问题的实质。 - gung - Reinstate Monica
@ashkan 我会试着编辑一下,看看能否将其迁移回去。 - hxd1011
显示剩余4条评论
1个回答

39

R中的GLMs是用Fisher Scoring估计的。对于多类别logit来说,有两种方法:比例几率模型和对数线性模型或多项式回归。

比例几率模型是累积链接模型的一种特殊类型,实现在 MASS 包中。它不是用Fisher scoring估计的,所以默认的 glm.fit 工具将不能估计这样的模型。然而,值得注意的是,累积链接模型是 GLMs,并且在McCullogh和Nelder的同名文本中进行了讨论。负二项式GLMs也存在类似的问题:它们在链接函数和概率模型的严格意义上是GLMs,但需要专门的估计程序。至于R函数glm,人们不应将其视为每种GLM的详尽估计器。

nnet有一个对数线性模型估计器的实现。它符合更复杂的神经网络估计器,使用软最大熵,这是一个等价的公式(理论上可以证明这一点)。事实证明,如果你足够熟练,可以在默认的R中用glm估计对数线性模型。关键在于看到逻辑回归和泊松回归之间的联系。将计数模型的交互项(对数相对率差异)识别为结果(log odds ratio)的逻辑模型中的一阶项,可以通过“条件”的方式估计多类别结果的$K \times 2$列联表的边际值来估计相同的参数和标准误差。关于此背景的相关SE问题,请参见此处

以从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不同,因为loglinear模型是一个概率模型,即表格的边际是通过模型中的其他参数而被条件化的,但就预测和推断而言,这两种方法产生相同的结果。

所以简而言之,这是个骗人的问题!glm 处理多类别 logistic 回归,只需要更深入地了解这些模型的构成即可。


很棒的答案,附带代码演示,让我对事物有了不同的见解,从未知道泊松分布和多类分类之间的联系! - hxd1011
在这里,celltreat都是分类变量;注意到可以将nnetmultinom公式化为GLM,那么当因子变量是数值时,与泊松回归的类比自然地扩展吗? - fuglede
@fuglede 不是因为只有OR(x,y) = OR(y,x)才会出现这种情况。这反映在交互项中:x:y= y:x。当x是连续值时,对数线性模型中的关联度量是不同的。 - AdamO
嗯,在搜索同样的东西时,我发现了http://data.princeton.edu/wws509/notes/c6.pdf,其第6.2.5节似乎表明如果交互保持在特定形式中,则可以做一些事情。 - fuglede
如果将单独的逻辑/二项模型拟合到模型中,以模拟结果为1/所有其他类别、2/所有其他类别等的概率,然后重新调整这些系数,使得结果属于每个类别的总概率之和为1,那么这不就相当于一个多项式分布吗? - Tom Wenseleers
问题是在单独的逻辑回归模型中,会拟合不同的截距项,而在正确的多项式模型中,将只有一个截距/基线。我看到这里有一个类似的问题:https://stats.stackexchange.com/questions/52104/multinomial-logistic-regression-vs-one-vs-rest-binary-logistic-regression - Tom Wenseleers

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