betareg coef的解释

机器算法验证 回归 物流 多重回归 贝塔回归
2022-03-06 20:52:01

我有一个数据,其结果是机器在 2 天内在一个区域内观察到的物种的比例。由于结果是一个比例,包括 0 或 1,我使用 beta 回归来拟合模型。温度用作自变量。这是一些玩具 R 代码:

set.seed(1234)
library(betareg)
d <- data.frame(
  DAY = c(1,1,1,1,2,2,2,2),
  Proportion = c(.4,.1,.25, .25, .5,.3,.1,.1),
  MACHINE = c("A","B","C","D","H","G","K","L"),
  TEMPERATURE = c(rnorm(8)*100)
)
b <- betareg(Proportion ~ TEMPERATURE,
  data= d, link = "logit", link.phi = NULL, type = "ML")
summary(b)
## Call:
## betareg(formula = Proportion ~ TEMPERATURE, data = d, link = "logit", link.phi = NULL, type = "ML")
## 
## Standardized weighted residuals 2:
##     Min      1Q  Median      3Q     Max 
## -1.2803 -1.2012  0.3034  0.6819  1.6494 
## 
## Coefficients (mean model with logit link):
##               Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -1.0881982  0.2620518  -4.153 3.29e-05 ***
## TEMPERATURE  0.0003469  0.0023677   0.147    0.884    
## 
## Phi coefficients (precision model with identity link):
##       Estimate Std. Error z value Pr(>|z|)  
## (phi)    9.305      4.505   2.066   0.0389 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

上面你可以看到TEMPERATURE系数是 0.0003469。求幂,exp(.0003469) = 1.000347

更新合并回复和评论:

您可以在这里看到如何将温度从 -10 增加到 10 增加 1 个单位来增加比例

nd <- data.frame(TEMPERATURE = seq(-10, 10, by = 1))
nd$Proportion <- predict(b, newdata = nd)
nd$proportion_ratio <- nd$Proportion/(1 - nd$Proportion)
plot(Proportion ~ TEMPERATURE, data = nd, type = "b")

解释是: 1 个单位的变化TEMPERATURE导致 1.000347 ≈0.04% 的相对变化Proportion

E(Proportion)1E(Proportion)

关键词有相对变化,所以当你比较时exp(coef(b))[2]nd$proportion_ratio[2] / nd$proportion_ratio[1] 你会发现它们是相同的

## ratio of proportion
nd$proportion_ratio[2] / nd$proportion_ratio[1] 
exp(coef(b))[2]
nd$proportion_ratio[-1] / nd$proportion_ratio[-20]
1个回答

是的,logit 链接可以这样解释。这不是“赔率”(=概率比率)的变化,而是比例比率的变化。更正式地说,期望的模型方程与逻辑回归中的相同:

logit(μi)=xiβ
在哪里μi=E(yi). 对于您的设置,这意味着:
logit(E(Proportion))=1.31+0.004TemperatureE(Proportion)1E(Proportion)=exp(1.31+0.004Temperature)
因此,绝对 1 个单位的变化Temperature导致相对变化exp(0.004)0.4%E(Proportion)/(1E(Proportion)).

通过一些练习,您可以对这在实际预期中的含义有一个合理的感觉Proportion. 如果你还没有那种感觉,你可以很容易地计算出变化的影响Temperature,例如:

nd <- data.frame(TEMPERATURE = seq(-150, 150, by = 50))
nd$Proportion <- predict(b, newdata = nd)
print(nd)
plot(Proportion ~ TEMPERATURE, data = nd, type = "b")

检查 .Proportion中某些绝对变化的绝对变化是什么TEMPERATURE