从glm输出计算优势比

时间:2018-01-07 18:51:50

标签: r statistics logistic-regression glm

这是我第一次做逻辑回归,而我正在努力教自己如何找到优势比。我从r得到了系数,如下所示。

    (Intercept)   totalmins 
       0.2239254    1.2424020 

为了对回归系数进行取幂,我做了以下几点:

exp1.242/exp1.242+1   = 0.77

真的不确定这是否是正确的过程。

关于我如何计算优势比的任何建议都将非常感谢

如果在现场检测到动物,则检测-1/0数据 在现场花费的总动物时间

这里是输出

    glm(formula = detection ~ totalmins, family = binomial(link = "logit"), 
    data = data)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-2.81040  -0.63571   0.00972   0.37355   1.16771  

Coefficients:
             Estimate Std. Error z value Pr(>|z|)  
(Intercept)  -1.49644    0.81818  -1.829   0.0674 .
totalmins  0.21705    0.08565   2.534   0.0113 
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 41.194  on 33  degrees of freedom
Residual deviance: 21.831  on 32  degrees of freedom
  (1 observation deleted due to missingness)
AIC: 25.831

Number of Fisher Scoring iterations: 8

1 个答案:

答案 0 :(得分:1)

该模型根据动物在该站点上花费的时间(分钟)来评估在该站点检测动物的对数几率。模型输出表明:

suspend fun

要转换为比值比,我们对系数进行取幂:

log odds(animal detected | time on site) = -1.49644 + 0.21705 * minutes animal on site

因此,如果动物在现场花费0分钟,检测的几率和概率为e(-1.49644)或0.2239。如果动物在现场X分钟,检测的优势比计算如下。我们将分数0到10的优势比建模,并计算相关的检测概率。

odds(animal detected) = exp(-1.49644) * exp(0.21705 * minutes animal on site) 

...和输出:

# odds of detection if animal on site for X minutes
coef_df <- data.frame(intercept=rep(-1.49644,11),
                   slopeMinutes=rep(0.21705,11),
                   minutesOnSite=0:10)
coef_df$minuteValue <- coef_df$minutesOnSite * coef_df$slopeMinutes
coef_df$intercept_exp <- exp(coef_df$intercept)
coef_df$slope_exp <- exp(coef_df$minuteValue)
coef_df$odds <- coef_df$intercept_exp * coef_df$slope_exp
coef_df$probability <- coef_df$odds / (1 + coef_df$odds)

另请参阅How to get probability from GLM output,了解使用MASS包中的航天飞机自动人数据的另一个例子。