为什么在 beta 回归中使用 logit 链接?

机器算法验证 罗吉特 贝塔回归
2022-01-17 21:16:21

最近,我对实现一个 beta 回归模型感兴趣,以获得一个比例的结果。请注意,此结果不适合二项式上下文,因为在此上下文中没有有意义的离散“成功”概念。实际上,结果实际上是持续时间的比例;分子是特定条件处于活动状态时的秒数,超过该条件有资格处于活动状态的总秒数。我为变幻莫测表示歉意,但我不想过多地关注这个精确的背景,因为我意识到除了 beta 回归之外,还有多种方法可以对这样的过程进行建模,现在我对理论更感兴趣在我尝试实施这样一个模型时出现的问题(当然,我是

在任何情况下,我能够找到的所有资源都表明 beta 回归通常适合使用 logit(或 probit/cloglog)链接,并且参数被解释为对数赔率的变化。但是,我还没有找到一个参考,它实际上提供了任何真正的理由来说明为什么要使用这个链接。

最初的 Ferrari & Cribari-Neto (2004) 论文没有提供理由;他们只注意到 logit 函数“特别有用”,因为对指数参数的优势比解释。其他来源暗示希望从区间 (0,1) 映射到实线。但是,考虑到我们已经假设了一个 beta 分布,我们是否一定需要一个链接函数来进行这样的映射?除了假设 beta 分布所施加的约束之外,链接函数提供了哪些好处?我已经进行了几次快速模拟,并且没有看到具有身份链接的 (0,1) 区间之外的预测,即使从概率质量很大程度上集中在 0 或 1 附近的 beta 分布进行模拟时也是如此,但也许是我的模拟还不够笼统,无法捕捉到一些病状。

在我看来,基于个人在实践中如何解释来自 beta 回归模型的参数估计(即优势比),他们隐含地对“成功”的几率进行推断;也就是说,他们正在使用 beta 回归作为二项式模型的替代品。考虑到 beta 分布和二项分布之间的关系,这在某些情况下可能是合适的,但在我看来,这应该是一种特殊情况,而不是一般情况。这个问题中,提供了一个答案来解释相对于连续比例而不是结果的优势比,但在我看来,尝试以这种方式解释事物似乎是不必要的麻烦,而不是使用例如对数或身份链接并解释百分比变化或单位变化。

那么,为什么我们将 logit 链接用于 beta 回归模型?是否只是为了方便,将其与二项式模型联系起来?

2个回答

链接函数的证明:链接函数确保所有拟合值总是这在某些应用程序中可能无关紧要,例如,因为预测或仅在样本内评估或不太接近 0 或 1。但在某些应用程序中可能很重要,您通常事先不知道它是否重要或不是。我见过的典型问题包括:评估预测新的值(稍微)超出原始学习样本的范围或找到合适的起始值。对于后者,请考虑:g(μ):(0,1)Rμ^=g1(xβ^)(0,1)x

library("betareg")
data("GasolineYield", package = "betareg")
betareg(yield ~ batch + temp, data = GasolineYield, link = make.link("identity"))
## Error in optim(par = start, fn = loglikfun, gr = if (temporary_control$use_gradient) gradfun else NULL,  : 
##   initial value in 'vmmin' is not finite

但是,当然,人们可以简单地尝试这两种选择,看看是否出现了身份链接问题和/或它是否提高了模型的拟合度。

参数的解释:我同意在具有链接功能的模型中解释参数比在具有标识链接的模型中更困难,并且从业者经常弄错。但是,我也经常看到对线性概率模型中参数的误解(具有恒等链接的二元回归,通常是最小二乘法)。如果预测足够接近 0 或 1,那么边际效应不变的假设就无法成立,并且需要非常小心。例如,对于的增加不会导致减少,例如μ^=0.01xμ^0.02. 但在这些情况下,这通常被非常草率地对待。因此,我认为对于有限响应模型,任何链接函数的参数都需要仔细解释,并且可能需要一些练习。因此,我通常的建议是(如您在问题中链接的其他讨论所示)查看感兴趣的回归量配置的影响。对于不同的链接功能,这些更容易解释并且通常(但不总是)非常相似(从实际角度来看)。

逻辑回归只能用于对二元结果数据进行建模是不正确的。逻辑回归模型适用于任何数据,其中 1) 结果的预期值遵循作为预测变量函数的逻辑曲线 2) 结果的方差是预期结果乘以一减去预期结果(或其中的某个比例) 3)(2的结果)数据范围在0到1之间。这些属性当然适用于伯努利数据。但是,在立即将逻辑模型视为回答科学问题的可行(且易于实施/解释)手段之前,应该进行一些探索性统计和绘图。

逻辑回归模型是广义线性模型 (GLM) 的特例,这意味着模型给出了一致的参数估计和推断。逻辑模型用于在文献中的几个地方对比例、序数变量、比率、考试成绩、排名和各种非二元结果进行建模。

很抱歉,此回复并没有将您的问题导向稍后,但陈述先前的推理会带来一个值得解决的误解。

许多 R 用户建议应该禁止使用逻辑模型拟合连续响应而产生的“警告”。“中间道路”的方式是更改family=binomialfamily=quasibinomial. 此处显示了模拟这些数据、拟合模型并获得正确推理的示例:

set.seed(123)
## logistic non-binary response
x <- rep(c(-2, 0, 2), each=50)
n <- length(x)
b0 <- 0
b1 <- 0.3
yhat <- plogis(b0 + b1*x)

do.one <- function(){
  e <- rnorm(n, 0, yhat*(1-yhat))
  y <- yhat + e

  yfixed <- pmin(y, 1)
  yfixed <- pmax(yfixed, 0)

  est <- glm(yfixed ~ x, family=quasibinomial())
  ci <- confint.default(est, level = 0.9)
  cov0 <- b0 > ci[1,1] & b0 < ci[1,2]
  cov1 <- b1 > ci[2,1] & b1 < ci[2,2]
  c(cov0, cov1)
}

reg <- replicate(10000, do.one())
rowMeans(reg)

准确覆盖 90% 的 CI