PDF-Version

d1_2 <- tibble(
  Männer = c(1, 3, "4*", 10, 12, 18),
  Frauen = c(1, "3*", 6, 10, 11, "12*")
) 

d1_2 %>%
  gather(sex, survtime) %>%
  mutate(
    censored = str_detect(survtime, "\\*"),
    indicator = ifelse(censored, "C", "D"),
    survtime = str_extract(survtime, "\\d+") %>% as.numeric()
  ) %>%
  arrange(survtime) %>%
  mutate(id = seq_along(survtime)) -> d1_2_long

d1_2_long %>%
  filter(sex == "Frauen") %>%
  mutate(
    n = rev(seq_len(n())),
    d = ifelse(censored, 0, 1),
    ndt = (n - d) / n,
    surv = cumprod(ndt)
  ) %>%
  select(t = survtime, n, d, S  = surv) %>%
  arrange(t) -> survtab_f

d1_2_long %>%
  filter(sex == "Männer") %>%
  mutate(
    n = rev(seq_len(n())),
    d = ifelse(censored, 0, 1),
    ndt = (n - d) / n,
    surv = cumprod(ndt)
  ) %>%
  select(t = survtime, n, d, S  = surv) %>%
  arrange(t) -> survtab_m

Aufgabe 2-1

In der Tabelle finden Sie noch einmal die Ereigniszeiten aus Aufgabe 1-2. Rechtszensierte Zeiten sind mit einem “∗” gekennzeichnet. Lösen Sie folgende Aufgaben per Hand:

d1_2 %>%
  t() %>%
  kable(booktabs = TRUE) %>%
  kable_styling(position = "center")
Männer 1 3 4* 10 12 18
Frauen 1 3* 6 10 11 12*

a)

Ergänzen Sie für die Kaplan-Meier-Schätzungen in der Gruppe der Frauen aus Aufgabe 1-2 den Standardfehler und das punktweise 95%-Konfidenzintervall (basierend auf der Normalverteilungsannahme für S(t)).

Es gilt unter der Normalverteilungsanname:

\[\begin{aligned} \mathrm{SE}(\widehat{S}(t)) &= \widehat{S}(t) \left[\sum_{j=1}^k \frac{d_j}{n_j(n_j - d_j)} \right]^{\frac{1}{2}} \end{aligned}\]

Für das KI:

\[\begin{aligned} \widehat{S}(t) \pm \mathrm{SE}(\widehat{S}(t)) \cdot u_{1-\frac{\alpha}{2}} \end{aligned}\]

Auf den Folien ist \(u\) nicht explizit benannt (oder ich hab’s übersehen), aber wegen der Normalverteilunsannahme vermute ich mal es ist \(u_{1-\frac{\alpha}{2}} \approx 1.96\) gemeint (für \(\alpha = 0.05\)).

survtab_f %>%
  mutate(
    SE = S * sqrt(cumsum(d / (n * (n - d)))),
    ci_lower = S - SE * qnorm(1 - 0.025),
    ci_upper = S + SE * qnorm(1 - 0.025),
    ci_lower = ifelse(ci_lower < 0, 0, ci_lower),
    ci_upper = ifelse(ci_upper > 1, 1, ci_upper)
  ) %>%
  mutate_all(round, 3) %>%
  mutate(ci = glue::glue("[{ci_lower}, {ci_upper}]")) %>%
  select(-ci_lower, -ci_upper) %>%
  kable(
    booktabs = TRUE, escape = FALSE,
    #caption = "Ergänzung der K-M Schätzungen der Frauen aus A1-1",
    col.names = c(
      "$t$", "$n_j$", "$d_j$", "$\\widehat{S}(t)$", "$\\mathrm{SE}(\\widehat{S}(t))$",
      "$\\mathrm{CI}_{95\\%}$"
    )
  ) %>%
  kable_styling2(protect_latex = TRUE)
\(t\) \(n_j\) \(d_j\) \(\widehat{S}(t)\) \(\mathrm{SE}(\widehat{S}(t))\) \(\mathrm{CI}_{95\%}\)
1 6 1 0.833 0.152 [0.535, 1]
3 5 0 0.833 0.152 [0.535, 1]
6 4 1 0.625 0.213 [0.207, 1]
10 3 1 0.417 0.222 [0, 0.851]
11 2 1 0.208 0.184 [0, 0.57]
12 1 0 0.208 0.184 [0, 0.57]

Mir scheint, ein symmetrisches KI ist hier wenig sinvoll, da die oberen Grenzen für \(t \leq 6\) und die unteren Grenzen für \(t > 6\) außerhalb \([0, 1]\) liegen. Die Werte wurden entsprechend ab- bzw. aufgerundet.

b)

Berechnen Sie das approximative 95%-Konfidenzintervall für den Median in der Gruppe der Frauen

Unser Kriterium zur Bestimmung der Menge der \(t\) im KI ist, mit \(p = 0.5\) und \(z_{1 - \frac{\alpha}{2}} \approx 1.96\):

\[\begin{aligned} \underbrace{\left|\frac{\widehat{S}(t) - 0.5}{\sqrt{\widehat{\mathbb{V}}(\widehat{S}(t))}}\right|}_{=:\ b} \leq 1.96 \end{aligned}\]

survtab_f %>%
  mutate(
    SE = S * sqrt(cumsum(d / (n * (n - d)))),
    bound = abs((S - 0.5) / SE),
  ) %>%
  select(t, bound) %>%
  kable2(
    escape = FALSE, col.names = c("$t$", "$b$")
  ) %>%
  kable_styling2(protect_latex = TRUE)
\(t\) \(b\)
1 2.191
3 2.191
6 0.586
10 0.376
11 1.582
12 1.582

Damit ist unser approximatives KI für den Median \(\{t \ |\ 6 \leq t < \infty \}\).

c)

Betrachten Sie noch einmal Ihr Kaplan-Meier-Diagramm aus Aufgabe 1-2. Sehen Sie einen Unterschied in den Survivalkurven zwischen Frauen und Männern? Wenn ja, beschreiben Sie den Unterschied qualitativ.

bind_rows(
  survtab_m %>% 
    add_row(t = 0, n = 6, d = 0, S = 1) %>%
    mutate(Gruppe = "Männer"),
  survtab_f %>% 
    add_row(t = 0, n = 6, d = 0, S = 1) %>%
    mutate(Gruppe = "Frauen")
  ) %>% {
    ggplot(., aes(x = t, y = S, color = Gruppe)) +
    geom_step() +
    geom_point(data = filter(., d == 0, t > 0), shape = 8, size = 3) +
    scale_y_percent(limits = c(0, 1)) +
    scale_color_brewer(palette = "Dark2") +
    labs(
      title = "Kaplan-Meier-Diagramm",
      subtitle = "Markierung: Zensierung",
      x = expression(t), y = expression(widehat(S)(t))
    ) +
      theme(legend.position = "bottom")
  }

Die Männer überleben insgesamt etwas länger, wobei sie aber auch anfangs etwas früher sterben. Aufgrund der kleinen Stichprobe lässt sich das allerdings kaum von Zufälligkeit unterscheiden – insgesamt sind sich beide Verläufe sehr änhlich.

d)

Führen Sie einen Log-Rank-Test durch, um festzustellen, ob es einen Survival-Unterschied zwischen Frauen und Männern gibt.

tab1 <- tribble(
  ~t, ~d1j, ~dj, ~n1j, ~n2j, ~nj,
  1,  1,    2,   6,    6,    12,   
  3,  1,    1,   5,    5,    10,
  6,  0,    1,   3,    4,    7,
  10, 1,    2,   3,    3,    6,
  11, 0,    1,   2,    2,    4,     
  12, 1,    1,   2,    1,    3,
  18, 1,    1,   1,    0,    1,
)

# ~`dj/nj`, ~`nj-dj`, ~e1j, ~v1j,
tab2 <- tab1 %>%
  mutate(
    `dj/nj` = dj / nj,
    `nj-dj` = nj - dj,
    e1j = n1j * (dj/nj),
    v1j = (n1j * n2j * dj * (nj - dj)) / (nj^2 * (nj - 1)) 
  ) %>%
  mutate(v1j = ifelse(is.nan(v1j), 0, v1j))

tab2 %>%
  kable2(
    #caption = "Zwischenschritte, mit Gruppe 1 = Männer",
    col.names = c(
      "$t$", "$d_{1j}$", "$d_j$", "$n_{1j}$", "$n_{2j}$", "$n_j$",
      "$\\frac{d_j}{n_j}$", "$n_j - d_j$", "$e_{1j}$", "$v_{1j}$"
    ),
    escape = FALSE
  ) %>%
  kable_styling(
    position = "center",
    protect_latex = TRUE,
    latex_options = c("striped"),
    bootstrap_options = "striped"
  )
\(t\) \(d_{1j}\) \(d_j\) \(n_{1j}\) \(n_{2j}\) \(n_j\) \(\frac{d_j}{n_j}\) \(n_j - d_j\) \(e_{1j}\) \(v_{1j}\)
1 1 2 6 6 12 0.167 10 1.000 0.455
3 1 1 5 5 10 0.100 9 0.500 0.250
6 0 1 3 4 7 0.143 6 0.429 0.245
10 1 2 3 3 6 0.333 4 1.000 0.400
11 0 1 2 2 4 0.250 3 0.500 0.250
12 1 1 2 1 3 0.333 2 0.667 0.222
18 1 1 1 0 1 1.000 0 1.000 0.000

\[\begin{aligned} U_L &= \sum_{j=1}^r (d_{1j} - e_{1j}) \approx -0.595 \\ V_L &= \sum_{j=1}^r v_{1j} \approx 2.1 \\ T_L &= \frac{U_L^2}{V_L} \approx 0.168 \\ \Rightarrow p &\approx 0.68 \end{aligned}\]

Wir erhalten kein signifikantes Ergebnis (ausgehend von \(\alpha = 0.05\)), laut Log-Rank-Test unterscheiden sich beide Gruppen also nicht hinsichtlich ihrer Überlebenszeit.

e)

Führen Sie außerdem zur selben Fragestellung einen Wilcoxon-Test durch.

Unter der Verwendung der Werte aus Tabelle 1:

\[\begin{aligned} U_W &= \sum_{j=1}^r n_j (d_{1j} - e_{1j}) = -4 \\ V_W &= \sum_{j=1}^r n_j^2 v_{1j} \approx 142.3 \\ T_W &= \frac{U_W^2}{V_W} \approx 0.112 \\ \Rightarrow p &\approx 0.737 \end{aligned}\]

Wir erhalten wieder kein signifikantes Ergebnis.

Aufgabe 2-2

a)

Geben Sie jeweils zwei anschauliche Beispiele für informative und uninformative Rechtszensierung.

Uninformative Rechtszensierung läge vor, wenn Teilnehmende im Verlauf einer Studie etwa durch Wegzug aus der Studie austreten (i.e. Followup-Verlust). Dieser Ausfall wäre zufällig und hätte daher keine Einfluss auf bzw. würde keine zusätzliche Information für die Überlebenszeitschätzung liefern, das heißt die Überlebenszeit und die Zensierungszeit wären unabhängig.

Aus Übung:

  • Patient zieht um
  • Fragebögen gehen verloren
  • Festgelegtes Studienende

Informative Rechtszensierung bestünde analog, wenn Teilnehmende mit einer generell niedrigeren Überlebenswahrscheinlichkeit frühzeitig aus der Studie austreten, z.B. weil sie Teil des des Behandlungsarms mit weniger effektiver Behandlung sind und aufgrund mangelnden Treatmenterfolgs (und demnach schlechterem Gesundheitszustand) die Studie abbrechen. Diese Teilnehmenden hätten eine niedrigere Überlebenswahrscheinlichkeit, und ihre Zensierungszeit würde mit ihrer Überlebenszeit (aber auch mit einer bekannten Variable (Treatment)) zusammenhängen.

Aus Übung

  • Abbruch wegen Krankheitsstatus
  • Verlegung auf/von Intensivstation (ergo assoziiert mit Prognose)
  • “Competing risks” (Andere Risiken / andere events, die verhindern, dass das event stattfindet, e.g. Tod durch Ursache A bevor eigentliches Zielereignis B eintreten kann)

b)

Erläutern Sie, warum es für uninformative Zensierung nicht notwendig ist, dass Ereigniszeit und Zensierungszeit unabhängig sind. Betrachten Sie dafür folgendes Studiendesign: Eine Studie habe eine zweimonatige Rekrutierungsphase und danach ein einjähriges Follow-up. Nach den 14 Monaten wird die Studie beendet. Das Studienende ist der einzige Grund für Zensierungen.

Die Zensierung ist in diesem Fall zufällig auf alle Untersuchungsgruppen verteilt, das heißt also, dass es keinen systematischen Unterschied zwischen den Vergleichsgruppen gibt, der auf die Zensierung zurückzuführen ist. Die Zensierung an sich steht also in keinem Zusammenhang mit anderen Kovariablen oder der Überlebenszeit.

Aus Übung: Bsp: Cut-off bei Studienende:

  • Zensiert werden nur die, die lange leben
  • Lange Überlebenszeit nicht beobachtbar

2-3

Zeigen Sie die Gedächtnislosigkeit der Exponentialverteilung. (Hinweis: Vergleichen Sie dazu \(\mathrm{P}(T \geq t)\) und \(\mathrm{P}(T \geq t^* + t \ |\ T \geq t^*)\))

Für die Exponentialverteilung mit

\[\begin{aligned} F(t) &= 1 - \exp(-\lambda t) \\ \Rightarrow S(t) &= 1 - F(t) = \exp(-\lambda t) \end{aligned}\]

gilt:

\[ \mathrm{P}(T \geq t^* + t \ |\ T \geq t^*) = \mathrm{P}(T \geq t) \]

\[\begin{aligned} \mathrm{P}(T \geq t^* + t \ |\ T \geq t^*) &= \frac{\mathrm{P}(\{T \geq t^* + t\} \cap \{T \geq t^*\})}{\mathrm{P}(T \geq t^*)} \\ &= \frac{\mathrm{P}(T \geq t^* + t)}{\mathrm{P}(T \geq t^*)} \\ &= \frac{S(t^* + t)}{S(t^*)} \\ &= \frac{\exp(-\lambda (t^* + t))}{\exp(-\lambda t^*)} \\ &= \frac{\exp(-\lambda t^* + -\lambda t)}{\exp(-\lambda t^*)} \\ &= \frac{\exp(-\lambda t^*) \exp(-\lambda t)}{\exp(-\lambda t^*)} \\ &= \exp(-\lambda t) \\ \Longrightarrow \mathrm{P}(T \geq t^* + t \ |\ T \geq t^*) &= \mathrm{P}(T \geq t) \\&&\Box \end{aligned}\]