序数逻辑回归的解释

机器算法验证 r 回归 物流 解释 有序的logit
2022-02-07 17:40:26

我在 R 中运行了这个序数逻辑回归:

mtcars_ordinal <- polr(as.factor(carb) ~ mpg, mtcars)

我得到了这个模型的总结:

summary(mtcars_ordinal)

Re-fitting to get Hessian

Call:
polr(formula = as.factor(carb) ~ mpg, data = mtcars)

Coefficients:
      Value Std. Error t value
mpg -0.2335    0.06855  -3.406

Intercepts:
    Value   Std. Error t value
1|2 -6.4706  1.6443    -3.9352
2|3 -4.4158  1.3634    -3.2388
3|4 -3.8508  1.3087    -2.9425
4|6 -1.2829  1.3254    -0.9679
6|8 -0.5544  1.5018    -0.3692

Residual Deviance: 81.36633 
AIC: 93.36633 

我可以像这样得到系数的对数几率mpg

exp(coef(mtcars_ordinal))
 mpg 
0.7917679 

阈值的对数几率如下:

exp(mtcars_ordinal$zeta)

       1|2         2|3         3|4         4|6         6|8 
0.001548286 0.012084834 0.021262900 0.277242397 0.574406353 

有人可以告诉我我对这个模型的解释是否正确:

随着mpg增加一个单位,从类别 1 移动carb到其他 5 个类别中的任何一个的几率降低 -0.23。如果对数赔率超过 0.0015 的阈值,那么汽车的预测值将是 2 类carb如果对数几率超过 0.0121 的阈值,那么汽车的预测值将是 3 类carb,依此类推。

2个回答

您完全混淆了赔率和对数赔率。对数赔率是系数;几率是指数系数。此外,赔率解释正好相反(我从小就在考虑有限因变量的计量经济学中长大,序数回归的赔率解释……嗯……对我来说很有趣。)所以你的第一个陈述应该是:“随着 mpg 增加一个单位,赔率观察类别 1 carb 与其他 5 个类别相比,增加了 21%。”

就阈值的解释而言,您确实必须绘制所有预测曲线才能说出模态预测是什么:

mpg   <- seq(from=5, to=40, by=1)
xbeta <- mpg*(-0.2335)
logistic_cdf <- function(x) {
  return( 1/(1+exp(-x) ) )
}

p1 <- logistic_cdf( -6.4706 - xbeta )
p2 <- logistic_cdf( -4.4158 - xbeta ) - logistic_cdf( -6.4706 - xbeta )
p3 <- logistic_cdf( -3.8508 - xbeta ) - logistic_cdf( -4.4158 - xbeta )
p4 <- logistic_cdf( -1.2829 - xbeta ) - logistic_cdf( -3.8508 - xbeta )
p6 <- logistic_cdf( -0.5544 - xbeta ) - logistic_cdf( -1.2829 - xbeta )
p8 <- 1 - logistic_cdf( -0.5544 - xbeta )

plot(mpg, p1, type='l', ylab='Prob')
  lines(mpg, p2, col='red')
  lines(mpg, p3, col='blue')
  lines(mpg, p4, col='green')
  lines(mpg, p6, col='purple')
  lines(mpg, p8, col='brown')
  legend("topleft", lty=1, col=c("black", "red", "blue", "green", "purple", "brown"), 
         legend=c("carb 1", "carb 2", "carb 3", "carb 4", "carb 5", "carb 6"))

在此处输入图像描述

第 3 类的蓝色曲线从未上升,第 6 类的紫色曲线也没有。因此,如果我想说的是,对于mpg27 以上的值,最可能的类别是 1;18 至 27 岁,第 2 类;4 至 18 岁,第 4 类;低于 4,第 8 类。(我想知道你在研究什么——商用卡车?现在大多数乘用车的 mpg > 25)。您可能想尝试更准确地确定交点。

我还注意到您有这些奇怪的类别,依次为 1、2、3、4,然后是 6(跳过 5),然后是 8(跳过 7)。如果设计上缺少 5 和 7,那很好。如果这些是carb不属于的有效类别,那就不好了。

在有序 logit 模型中,几率形成低于特定阈值的任何类别的概率与高于相同阈值的类别的概率的比率(例如,具有三个类别:属于 A 类或 B 类的概率与.C,以及属于 A 类与 B 类或 C 类的概率)。

这导致logit P(Y <= k | x) = zeta_k - eta了描述中指定的模型polr()因此,可以为不同的类别或不同的回归量建立优势比。后者,更常见的一种,比较相同类别但不同回归量和等于的赔率

odds(yak|xa)odds(ybk|xb) = exp((ηaηb)).

不同类别的优势比定义为

odds(yik|xi)odds(yim|xi) = exp(ζkζm),

其中该比率与回归变量无关。此属性导致替代名称比例赔率模型。

在这个简单但可能不是很直观的示例中,您可以制定:对于回归量增加一个单位mpg,观察类别 1 与观察任何更高类别的几率(或观察任何低于某个阈值的类别的几率与观察任何高于相同阈值的类别)乘以 1.26 或增加 26%(exp(-(-0.233 - 0)) = 1.263)。如果您想制定不同类别的优势比,例如,您可以说属于类别 1 与上述任何类别的几率与属于类别 1 或 2 与上述任何类别的几率相比等于exp((-6.470) - (-4.415)) = 0.128因此,后一种解释在此特定设置中不是很有帮助。不同类别的优势比的一个例子可能是上大学的几率与上高中的几率相比。

最后,您可能会对解释变量必须改变多少才能达到下一个更高的响应类别感兴趣。为此,您将区间长度与拟合系数进行比较。这给出了一个想法,您各自的回归变量必须有多大的变化才能将响应从类别移动到更高的类别。(ζkζk1)k