[R] confidence interval around Aalen-Johansen if no events
Andreas Leha
@ndre@@@|eh@ @end|ng |rom med@un|-goett|ngen@de
Wed Sep 6 12:05:47 CEST 2023
Hi all,
I'd like to calculate confidence intervals around Aalen-Johansen
estimates at given time points. And later I'd like to be able to
compare the Aalen-Johansen estimates at given time points between
groups.
My problem is, that there are no events recorded.
So my question is:
Does anyone know how to get confidence intervals around Aalen-Johansen
estimates in the absence of (or prior to) events?
(And ideally also how to compare the Aalen-Johansen estimates at given
time points between groups in that situation.)
Note that I can do the same thing for Kaplan-Meier estimates (using
the bpcp package).
Many thanks in advance!
Best,
Andreas
PS: Some code that illustrates my problem:
-------------------------
library("dplyr")
library("survival")
## read data
sdat <- structure(list(time = c(2, 189, 182, 2, 184, 179, 179, 159, 18,
177, 177, 182, 184, 178, 179, 178, 179, 179, 177, 178, 175, 184,
179, 179, 176, 176, 175, 193, 183, 182, 179, 175, 178, 90, 189,
177, 185, 179, 184, 171, 182, 181, 179, 179, 175, 104, 185, 180,
180, 177, 176, 184, 181, 178, 184, 178, 182, 176, 176, 180, 180,
176, 183, 182, 175, 184, 182, 182, 177, 182, 64, 178, 179, 179,
176, 93, 131, 184, 181), event = structure(c(2L, 1L, 1L, 2L,
1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L), .Label = c("censored",
"competing_event", "event_of_interest"), class = "factor"), group = structure(c(2L,
2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L,
2L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L,
1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L,
2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L,
1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 1L), .Label = c("G1",
"G2"), class = "factor")), row.names = c(NA, -79L), class = c("tbl_df",
"tbl", "data.frame"))
sdat
## there are no events of interest:
sdat$event %>% table(exclude = NULL)
## fit works fine
fit <- survfit(Surv(time, event) ~ group, data = sdat)
## the estimate is at 0 (as expected)
fit$pstate[,3]
## but there is no confidence estimate
fit$lower[,3]
fit$upper[,3]
## cmprsk does not event return estimates for the event of interest
library("cmprsk")
fit <- cuminc(ftime = sdat$time,
fstatus = sdat$event,
cencode = "censored",
group = sdat$group)
fit
## note that I can get confidence intervals from a Kaplan-Meier
## estimator:
## censor competing events:
sdat <-
sdat %>%
mutate(event2 = recode(event,
competing_event = "censored")) %>%
mutate(event2 = as.numeric(event2) - 1)
sdat$event2 %>% table(exclude = NULL)
## fit using the survival package
fit <- survfit(Surv(time, event2) ~ 1, data = sdat)
fit
## no (meaningful?) confidence intervals
fit$lower
fit$upper
## but through the bpcp package this is possible
library("bpcp")
sfit2 <- bpcpfit(Surv(time, event2) ~ 1, data = sdat)
sfit2
tidykmciLR(sfit2)
## can further compare between groups:
bpcp2samp(sdat$time, sdat$event2, sdat$group, testtime = 150,
parmtype = "difference")
More information about the R-help
mailing list