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


14

最近,我对实现beta回归模型感兴趣,其结果是成比例的。请注意,此结果将不适合二项式上下文,因为在此上下文中没有有意义的离散“成功”概念。实际上,结果实际上是持续时间的一部分。分子是某个条件处于活动状态时的秒数,在该条件有资格处于活动状态的总秒数。我为这些变化感到抱歉,但我不想过多地关注这个精确的上下文,因为我意识到,除了beta回归外,还有多种方法可以对这种过程进行建模,而现在我对理论更加感兴趣我在尝试实施这种模型时遇到的问题(尽管我当然是,

无论如何,我能够找到的所有资源都表明,使用logit(或probit / cloglog)链接通常适合使用beta回归,并且将参数解释为对数奇数。但是,我还没有找到一个引用,该引用实际上提供了为什么要使用此链接的任何真实理由。

Ferrari&Cribari-Neto(2004)的原始论文没有提供依据。他们仅注意到logit函数“特别有用”,这是因为对指数参数进行了比值比解释。其他来源则暗示了从区间(0,1)到实线的映射的愿望。但是,考虑到我们已经假设了beta分布,我们是否一定需要链接函数来进行这种映射?链接功能除了假设开始使用beta分布所施加的约束之外,还能提供什么好处?我已经进行了几次快速模拟,即使使用概率分布很大程度上集中在0或1附近的beta分布进行模拟,也没有看到具有(identity)链接的(0,1)区间之外的预测。还不够全面,无法捕捉到某些病理。

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

那么,为什么我们将logit链接用于beta回归模型?仅仅是为了方便起见,将其与二项式模型相关联?

Answers:


8

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.01xμ^0.02。但是,在这些情况下,通常会非常草率地对待这一点。因此,我认为对于有限的响应模型,任何链接函数的参数需要仔细解释,并且可能需要一些实践。因此,我通常的建议是(如在您的问题中所链接的其他讨论中所示)查看感兴趣的回归器配置的影响。对于不同的链接功能,它们更易于解释,并且经常(但并非总是)(从实际角度来看)非常相似。


10

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

Logistic回归模型是广义线性模型(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%的配置项


1
我非常感谢您对逻辑回归模型所做的澄清。您是正确的,它是一个比通常假定的模型更通用的模型。我很犹豫,但接受这个作为一个答案,因为它似乎并不十分制定推理足够的线。在我看来,您似乎说我对beta模型中的logit链接的担心是没有根据的,因为logit链接在非二进制数据上可以正常工作。这是一个合理的立场,但是我觉得我为什么要在beta模型中使用logit以及如何解释它的问题并不能完全解决。
瑞安·西蒙斯

1
@RyanSimmons感谢您的反馈。我同意你在这里的推理。我认为,任何“学习的机会”都需要一个答案,因此一个问题可能会以“正确”的程度出现许多可能的答案。我没有提到您的问题,这是一个很好的问题,因此“正确”的答案可能还会出现。我自己对此感到很好奇,因此想尝试进一步阅读该主题。
AdamO
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.