条件logistic回归及R实现

条件逻辑回归在匹配研究中的应用与对比分析
条件逻辑回归(CLR)用于处理匹配研究中的偏见问题,如病例-对照研究。它考虑了分层和匹配,避免高估比值比(OR)。在R中,可以通过'survival'包的clogit()函数实现。文章通过实例展示了CLR与非条件逻辑回归(不考虑匹配)的差异,强调在匹配研究中应使用CLR以获得无偏估计。

Logistic回归分析使用Logit模型研究二元因变量和一组独立(解释)变量之间的关联。然而,在匹配研究中,无条件的logistic regression是偏见的(高估了OR)。条件logistic回归是由Norman Breslow, Nicholas Day, Katherine Halvorsen, Ross L. Prentice和C. Sabai在1978年提出,是logistic回归的延伸,允许人们考虑到分层和匹配,通常用于具有特定条件或属性的病例受试者与没有该条件的n个对照受试者相匹配。一般来说,可能有1至m个病例与1至n个对照组相匹配。然而,最常见的设计是1:1匹配,其次是1:n匹配,其中n从1到5不等。 它的主要应用领域是观察性研究,特别是流行病学。比较是在每个层内,没有估计截距,因此没有预测的概率,所以没有ROC或Hosmer-Lemeshow测试。

CLR有以下特点:

1. CLR提供与至少在一个阶层内变化的自变量(通常称为协变量)相关的回归系数的估计值。同样,CLR也不提供与独立变量相关的任何回归系数的估计值,这些独立变量在各阶层内不发生变化。
2. 随着研究样本量的增加,阶层(群组)的数量也以同样的速度增加。
3. 模型中出现了分层指示变量,但没有显示逐层输出。
4. 当匹配组有不同数量的病例和对照组时,可以使用CLR。

在R中可以用‘Survival’包中的clogit()函数,及Epi包中的clogistic()函数实现:

Using survival:clogit()

library(survival)

resp <- levels(logan$occupation)
n <- nrow(logan)
indx <- rep(1:n, length(resp))
logan2 <- data.frame(logan[indx,],
                     id = indx,
                     tocc = factor(rep(resp, each=n)))
logan2$case <- (logan2$occupation == logan2$tocc)
logan2 <- logan2[order(logan2$id),]

## Show dataset for first three strata
logan2[logan2$id %in% c(1,2,3), ]
    occupation         focc education      race id         tocc  case
1        sales professional        14 non-black  1         farm FALSE
1.1      sales professional        14 non-black  1   operatives FALSE
1.2      sales professional        14 non-black  1    craftsmen FALSE
1.3      sales professional        14 non-black  1        sales  TRUE
1.4      sales professional        14 non-black  1 professional FALSE
2    craftsmen        sales        13 non-black  2         farm FALSE
2.1  craftsmen        sales        13 non-black  2   operatives FALSE
2.2  craftsmen        sales        13 non-black  2    craftsmen  TRUE
2.3  craftsmen        sales        13 non-black  2        sales FALSE
2.4  craftsmen        sales        13 non-black  2 professional FALSE
3        sales professional        16 non-black  3         farm FALSE
3.1      sales professional        16 non-black  3   operatives FALSE
3.2      sales professional        16 non-black  3    craftsmen FALSE
3.3      sales professional        16 non-black  3        sales  TRUE
3.4      sales professional        16 non-black  3 professional FALSE

id为每个组别,匹配比例为1:3


## clogit实现
res.clogit <- clogit(case ~ tocc + tocc:education + strata(id), logan2)
summ.clogit <- summary(res.clogit)
summ.clogit
Call:
coxph(formula = Surv(rep(1, 4190L), case) ~ tocc + tocc:education + 
    strata(id), data = logan2, method = "exact")

  n= 4190, number of events= 838 

                                coef exp(coef)  se(coef)      z Pr(>|z|)    
toccfarm                   -1.896463  0.150099  1.380782  -1.37   0.1696    
toccoperatives              1.166750  3.211539  0.565646   2.06   0.0391 *  
toccprofessional           -8.100549  0.000303  0.698724 -11.59  < 2e-16 ***
toccsales                  -5.029230  0.006544  0.770086  -6.53  6.5e-11 ***
tocccraftsmen:education    -0.332284  0.717283  0.056868  -5.84  5.1e-09 ***
toccfarm:education         -0.370286  0.690537  0.116410  -3.18   0.0015 ** 
toccoperatives:education   -0.422219  0.655591  0.058433  -7.23  5.0e-13 ***
toccprofessional:education  0.278247  1.320812  0.051021   5.45  4.9e-08 ***
toccsales:education               NA        NA  0.000000     NA       NA    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

                           exp(coef) exp(-coef) lower .95 upper .95
toccfarm                    0.150099      6.662 0.0100243   2.24750
toccoperatives              3.211539      0.311 1.0598246   9.73178
toccprofessional            0
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值