Gå till index

Analys och forskning med R

0% färdig
0/0 Steps
  1. Analys och forskning med R och Posit (Rstudio)
  2. Grunderna i R och Rstudio
    7 Ämnen
  3. Importera, exportera, spara och ladda data
    5 Ämnen
  4. Strängar och regular expressions (regex)
    1 Ämne
  5. Bearbetning av data med dplyr
    12 Ämnen
  6. Visualisera och presentera
    14 Ämnen
  7. Explorerande och deskriptiva analyser
    6 Ämnen
  8. Prediktionsmodeller
    12 Ämnen
  9. Klassisk regressionsanalys
    8 Ämnen
  10. Machine learning (ML) och Artificiell Intelligens (AI)
    9 Ämnen
  11. Skapa prediktionsmodeller med Tidymodels
    6 Ämnen
  12. Hypotestester och epidemiologiska mått
    5 Ämnen
Avsnitt Progress
0% färdig

Överlevnadsfunktion (survival function) och hazard function

Föregående kapitel (Överlevnadsanalys) är en förutsättning för att förstå detta kapitel.

Överlevnad (survival time) är en kontinuerlig variabel som kan beskrivas med två enkla funktioner:

  • \(S(t)\) – Överlevnadsfunktionen (survival function) är sannolikheten för att en person skall vara vid liv efter tidpunkt t.
  • \(h(t)\) – Hazardfunktionen (hazard function) beskriver den omedelbara risken för att händelsen (event) skall inträffa vid tidpunkt t, förutsatt att personen överlevt fram till tidpunkt t.

Alla kontinuerliga variabler (inklusive survival time) kan beskrivas med en kumulativ fördelningsfunktion (cumulative distribution function, CDF). Dessa funktioner är sannolikhetsfördelningar som definieras som följer:

\(F(x) = P(X≤x)\)

Funktionen beskriver sannolikheten för att \(X\) är mindre eller lika med \(x\). Överlevnadstid, \(T\), har också en kumulativ fördelningsfunktion:

\(F(t) = P(T≤t)\)

Denna funktion beskriver sannolikheten för att eventet inträffar på eller innan tidpunkt \(t\), men inte senare än \(t\). Vårt mål är dock att skatta \(S(t)\), vilket är sannolikheten för att individen överlevt tidpunkt \(t\) (dvs inte drabbats av händelsen vid tidpunkt \(t\)). \(S(t)\) är alltså sannolikheten för att överleva tidpunkt \(t\):

\(S(t) = 1 - F(t) = P(T > t)\)

\(S(t)\) har en trappstegsliknande form, vilket framgår av nedanstående graf (Kaplan-Meier kurva). Grafen beskriver hur sannolikheten för överlevnad minskar under tidens gång. Plustecknen (+) på grafen indikerar tidpunkter då personer censurerats. \(S(t)\) påverkas inte av censureringar. \(S(t)\) minskar endast när en eller flera individer drabbas av eventet.

Kaplan-Meier kurva.

I ovanstående graf är värdet på \(S(t)\) 0.952 vid \(t=50\), vilket innebär att sannolikheten att överleva minst 50 dagar är 95.2%, och 4.8% har drabbats vid \(t=50\). Medianöverlevnaden är tidpunkten då 50% i populationen har drabbats av eventet, dvs \(S(t)=0.5\).

Kaplan-Meier estimator (Product Limit Estimator)

Det är alltid viktigt att visualisera överlevnaden med en graf eftersom det förtäljer hur överlevnadsprocessen utvecklas över tid. Den vanligaste metoden för att presentera \(S(t)\) är med hjälp av Kaplan-Meier estimatorn (Kaplan-Meier-kurva, Product Limit Estimator), vilken demonstrerats i figuren ovan.

För att skapa en Kaplan-Meier kurva måste survival time (uppföljningstiden) brytas ner till interavaller. Varje intervall börjar när ett event inträffar. Alla tidpunkter då händelser inträffar (event times) rangordnas, från första till sista event. Vid \(t_1\) inträffar den första händelsen, vid \(t_2\) inträffar den andra händelsen, vid \(t_3\) inträffar den tredje händelsen och så vidare. Studien börjar vid \(t_0\) och då har ännu ingen händelse inträffat. Vid \(t_0\) är \(S(t)=1.0\), vilket innebär att sannolikheten för överlevnad är 100%.

För att beräkna \(S(t)\) vid \(t_1\) så görs följande beräkning:

\(\frac{(n_1 – m_1)}{n_1}\)

\(n_1\) = antal patienter observerade i början av \(t_1\)

\(m_1\) = antal events vid \(t_1\)

Detta är andelen patienter som överlever efter \(t_1\), bland de patienter som överlevde fram till \(t_1\). För att beräkna sannolikheten för att överleva efter \(t_2\), förutsatt att man klarar sig fram till dess görs beräkningen i två steg:

\(\frac{(n_2 – m_2)}{n_2}\)

\(S(t)\) är produkten av sannolikheten att överleva fram till \(t_2\), vilket blir:

\(\frac{(n_1 – m_1)}{n_1} \cdot \frac{(n_2 – m_2)}{n_2}\)

Detta är illustrerat i nedanstående figur.

Tidpunk (x)Antal vid riskAntal eventsAntal censureradeÖverlevnad (y)
0228001.00000000
5228100.99561404
11227300.98245614
12224100.97807018
13223200.96929825
15221100.96491228
26220100.96052632
30219100.95614035
31218100.95175439
53217200.94298246
54215100.93859649
59214100.93421053
60213200.92543860
61211100.92105263
62210100.91666667
65209200.90789474
71207100.90350877

Survival probability är \(S(t)\) på Kaplan-Meier kurvan. Detta är således andelen som fortfarande är vid liv vid varje tidpunkt. Kurvan går gradvis nedåt allteftersom personer drabbas av eventet. Kaplan-Meier kurvan når endast \(S(t) = 0\) om alla deltagare drabbas av eventet. Medianöverlevnaden är helt enkelt andelen som lever vid \(S(t) = 0.5\).

Hypotestest och överlevnadsanalys: log-rank test

Testa skillnad mellan överlevnadskurvor

I följande figur jämförs överlevnaden mellan män och kvinnor.

21.7.1 R kod för ovanstående Kaplan-Meier-kurva

head(colon, 10)
install.packages("survival")
library(survival)
install.packages("survminer")
library(survminer)

# Ladda exempeldata
data(colon)

# Inspektera första 10 raderna
head(colon, 10)
head(colon, 10)
   id study      rx sex age obstruct perfor adhere nodes status differ extent surg node4 time etype
1   1     1 Lev+5FU   1  43        0      0      0     5      1      2      3    0     1 1521     2
2   1     1 Lev+5FU   1  43        0      0      0     5      1      2      3    0     1  968     1
3   2     1 Lev+5FU   1  63        0      0      0     1      0      2      3    0     0 3087     2
4   2     1 Lev+5FU   1  63        0      0      0     1      0      2      3    0     0 3087     1
5   3     1     Obs   0  71        0      0      1     7      1      2      2    0     1  963     2
6   3     1     Obs   0  71        0      0      1     7      1      2      2    0     1  542     1
7   4     1 Lev+5FU   0  66        1      0      0     6      1      2      3    1     1  293     2
8   4     1 Lev+5FU   0  66        1      0      0     6      1      2      3    1     1  245     1
9   5     1     Obs   1  69        0      0      0    22      1      2      3    1     1  659     2
10  5     1     Obs   1  69        0      0      0    22      1      2      3    1     1  523     1

Överlevnadsfunktionen genereras med funktionerna survfit() och Surv(). I Surv() är första argumentet överlevnadstid (time) och andra argumentet är event-variabeln. För event-variabeln kan vi specificera vilken nivå som indikerar att händelsen inträffat. Detta gör vi nedan genom att specificera status==1. Med argumentet pval = TRUE begär vi hypotestestning med log-rank test. Detta test beräknar sannolikheten för att nollhypotesen (\(H_0\) stämmer (nollhypotesen postulerar att det inte finns någon skillnad i överlevnad. Om p-värdet som genereras med log-rank test är < 0.05 förkastats \(H_0\). I detta fall jämförs män med kvinnor genom att inkludera variabeln sex som stratum:

R
# Skapa survfit-objekt. I detta objektet skapas överlevnadsfunktionen
fit <- survfit(Surv(time, status==1) ~ sex, data = lung)

# Rita Kaplan-Meier-kurva
ggsurvplot(fit, data = lung, risk.table = TRUE, pval = TRUE)

Som framgår ovan är kurvorna separerade, vilket innebär att överlevnaden skiljer sig för män (sex=2) och kvinnor (sex=1). Vid varje tidpunkt är \(S(t)\) högre för kvinnor. Det innebär att överlevnaden är bättre för kvinnor och det kan alltså bedömas visuellt. P-värdet är 0.013, vilket också indikerar att skillnaden är statistiskt signifikant. P-värdet är beräkant med log-rank test.

Principen för log-rank test följer principen för hypotestestning. Man utgår från nollhypotesen (\(H_0\)) som postulerar att det inte finns någon skillnad mellan grupperna och därefter beräknas en sannolikhet (p-värde) för att nollhypotesen stämmer. Om sannolikheten är <0.05 så förkastas nollhypotesen. Log-rank test kan användas för att jämföra två eller flera överlevnadskurvor.

Således kan Kaplan-Meier-kurvan användas för att studera överlevnad. Detta kan göras i hela populationen eller subgrupper (t ex män och kvinnor). Man kan dock inte justera för kovariater i en Kaplan-Meier-beräkning; detta kräver regressionsanalys, varav den vanligaste metoden är Cox regression som diskuteras i nästa kapitel.

Logga in för att läsa

Som medlem har du tillgång till allt nuvarande och kommande utbildningsmaterial. Du kan följa din utveckling och få intyg på avklarade moment.