如何计算以下数据的逻辑回归的优势比和 95% 置信区间?

机器算法验证 r 回归 物流 置信区间 优势比
2022-03-05 07:17:02

我从一篇研究论文中获得了以下数据:

S1 : n = 30 / Rest : n = 66

SH      11  /      8

为了计算 p 值,我做了如下操作:

library(MASS)
x = matrix(c(19,11,58,8), nrow=2, byrow=T)
D = factor(c("S1","SH"), levels=c("S1","SH"))
m = glm(x~D, family=binomial)
summary(m)

Call:
glm(formula = x ~ D, family = binomial)

Deviance Residuals: 
[1]  0  0

Coefficients:
        Estimate Std. Error z value Pr(>|z|)   
(Intercept)   0.5465     0.3789   1.443  0.14914   
DSH           1.4345     0.5346   2.683  0.00729 **
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

Null deviance:  7.3387e+00  on 1  degrees of freedom
Residual deviance: -8.8818e-16  on 0  degrees of freedom
AIC: 11.607

Number of Fisher Scoring iterations: 3

p 值为 0.007。这和我在研究论文中看到的一样。优势比为 4.20,95% CI 为 (1.47-11.97)

我想知道如何为此计算优势比和 95% 置信区间?谁能告诉我如何在R中计算这个?有什么功能吗?

3个回答
  • exp(1.4345)4.20
  • exp(1.4345+1.96×0.5346)11.97
  • exp(1.43451.96×0.5346)1.472

在 R 中

> exp(summary(m)$coefficients["DSH",1] + 
+     qnorm(c(0.025,0.5,0.975)) * summary(m)$coefficients["DSH",2])
[1]  1.472098  4.197368 11.967884

您还可以使用confint.default基于渐近正态性的函数。

exp(cbind("Odds ratio" = coef(m), confint.default(m, level = 0.95)))

使用您的模型“m”计算优势比的另一种可能方法如下:

# For odds ratio
m$coefficients
exp(m$coefficients)

为了找到置信区间,您可以简单地使用:

# for confidence intervals
exp(confint(m))

仅供参考,还可以计算逻辑回归的整体 p 值(不仅仅是每个预测变量的 p 值):

summary(m)
(modelChi = m$null.deviance - m$deviance)  # for chi sq statistic
(chiDF = m$df.null - m$df.residual)        # for DF
(chisq_prob = 1 - pchisq(modelChi, chiDF)) # for hypothesis testing probability