I am working with matched case-control data that used risk-set sampling with replacement (a control can be matched to more than one case). I am trying to figure out the correct syntax for conditional logistic regression with appropriate variance estimation.
This is the syntax I used for the unadjusted OR without cluster robust SEs:
clogit(case_status ~ exposed + strata(match_id), data = data_analysis) |>
broom::tidy(exp=TRUE, conf.int=TRUE)
# OR = 1.134 (95% CI: 0.898, 1.433)
# Got same result with method="exact" (default) as other methods
This is the syntax I used to get cluster robust SEs to account for within-subject correlation. However, the robust SEs were smaller than the original SEs, which is the opposite of what I would expect.
clogit(case_status ~ exposed + strata(match_id), data = data_analysis,
method="breslow", cluster = subject_id) |>
broom::tidy(exp=TRUE, conf.int=TRUE)
# OR = 1.134 (95% CI: 0.931, 1.382)
# method="exact" doesn't work with cluster option
Any help to understand why I may be getting smaller robust SEs or suggestions to modify my analysis would be greatly appreciated.
Thank you!