Email:
RPubs: https://rpubs.com/abgylrchmn/


1 Apa Itu Survival Analysis?

Survival analysis merupakan suatu pendekatan statistik yang dapat kita gunakan untuk menganalisis suatu peristiwa yg merupakan akibat dari data yang kita analisis dan bisa juga kita sebut time to event data (data dari waktu mulai peristiwa ke data waktu akhir peristiwa yang terjadi), seperti angka kematian, timbulnya penyakit cancer,dll.

1.1 Contoh Kasus Survival Analysis

  • Waktu dari Infeksi HIV terjadi sampai berkembang menjadi AIDS
  • Waktu saat terjadinya serangan jantung
  • Waktu mulai penyalahgunaan zat
  • Waktu kerusakan mesin

1.2 Alias untuk Survival Analysis

Survival Analysis banyak digunakan oleh berbagai bidang, karena itu banyak juga yang menyebut Survival Analysis dengan nama lain seperti : - Analisis reliabilitas - Analisis durasi - Analisis riwayat peristiwa - Analisis waktu-ke-peristiwa - Model Bertahan Hidup

1.3 Tujuan Survival Analysis

Tujuan dari bab ini adalah untuk mendeskripsikan konsep dasar dari analisis kelangsungan hidup. Dalam studi kanker, sebagian besar analisis kelangsungan hidup menggunakan metode berikut:

  • Plot Kaplan-Meier untuk memvisualisasikan kurva kelangsungan hidup
  • Tes log-rank untuk membandingkan kurva kelangsungan hidup dari dua atau lebih kelompok
  • Regresi bahaya proporsional Cox untuk menggambarkan pengaruh variabel terhadap kelangsungan hidup. Model Cox dibahas dalam bab berikutnya: Model bahaya proporsional Cox.

Bab ini akan dimulai dengan menjelaskan konsep penting dari analisis kelangsungan hidup, termasuk:

Bagaimana menghasilkan dan menafsirkan kurva kelangsungan hidup, dan Bagaimana mengukur dan menguji perbedaan kelangsungan hidup antara dua atau lebih kelompok pasien. Kemudian, akan dilanjutkan dengan mendeskripsikan analisis multivariat menggunakan model proporsional hazard Cox.

1.4 Library yang diperlukan

library(survival)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tibble)
library(lubridate)
## 
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union
library(ggplot2)
library(survminer)
## Loading required package: ggpubr
library(githubinstall)
library(kableExtra)
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows

2 Komponen dari Survival Analysis

Untuk subjek i Waktu acara (T_i) Menyensor waktu (C_i) Indikator acara (_i) 1 jika peristiwa diamati (yaitu T_i C_i) 0 jika disensor (yaitu T_i > C_i) Waktu pengamatan Y_i = (T_i, C_i) Waktu yang diamati dan indikator kejadian disediakan dalam data ‘lung’ waktu: Waktu bertahan dalam beberapa hari (Y_i) status: menyensor status 1 = disensor, 2 = mati (_i)

Kumpulan data ‘paru-paru’ tersedia dari paket bertahan hidup di R. Data tersebut mengandung subjek dengan kanker paru-paru stadium lanjut dari North Central Cancer Treatment Group. Beberapa variabel yang akan kami gunakan untuk menunjukkan metode hari ini termasuk

waktu: Waktu bertahan hidup dalam beberapa hari status: status penyensoran 1=disensor, 2=mati jenis kelamin: Male=1 Perempuan=2

lung
##     inst time status age sex ph.ecog ph.karno pat.karno meal.cal wt.loss
## 1      3  306      2  74   1       1       90       100     1175      NA
## 2      3  455      2  68   1       0       90        90     1225      15
## 3      3 1010      1  56   1       0       90        90       NA      15
## 4      5  210      2  57   1       1       90        60     1150      11
## 5      1  883      2  60   1       0      100        90       NA       0
## 6     12 1022      1  74   1       1       50        80      513       0
## 7      7  310      2  68   2       2       70        60      384      10
## 8     11  361      2  71   2       2       60        80      538       1
## 9      1  218      2  53   1       1       70        80      825      16
## 10     7  166      2  61   1       2       70        70      271      34
## 11     6  170      2  57   1       1       80        80     1025      27
## 12    16  654      2  68   2       2       70        70       NA      23
## 13    11  728      2  68   2       1       90        90       NA       5
## 14    21   71      2  60   1      NA       60        70     1225      32
## 15    12  567      2  57   1       1       80        70     2600      60
## 16     1  144      2  67   1       1       80        90       NA      15
## 17    22  613      2  70   1       1       90       100     1150      -5
## 18    16  707      2  63   1       2       50        70     1025      22
## 19     1   61      2  56   2       2       60        60      238      10
## 20    21   88      2  57   1       1       90        80     1175      NA
## 21    11  301      2  67   1       1       80        80     1025      17
## 22     6   81      2  49   2       0      100        70     1175      -8
## 23    11  624      2  50   1       1       70        80       NA      16
## 24    15  371      2  58   1       0       90       100      975      13
## 25    12  394      2  72   1       0       90        80       NA       0
## 26    12  520      2  70   2       1       90        80      825       6
## 27     4  574      2  60   1       0      100       100     1025     -13
## 28    13  118      2  70   1       3       60        70     1075      20
## 29    13  390      2  53   1       1       80        70      875      -7
## 30     1   12      2  74   1       2       70        50      305      20
## 31    12  473      2  69   2       1       90        90     1025      -1
## 32     1   26      2  73   1       2       60        70      388      20
## 33     7  533      2  48   1       2       60        80       NA     -11
## 34    16  107      2  60   2       2       50        60      925     -15
## 35    12   53      2  61   1       2       70       100     1075      10
## 36     1  122      2  62   2       2       50        50     1025      NA
## 37    22  814      2  65   1       2       70        60      513      28
## 38    15  965      1  66   2       1       70        90      875       4
## 39     1   93      2  74   1       2       50        40     1225      24
## 40     1  731      2  64   2       1       80       100     1175      15
## 41     5  460      2  70   1       1       80        60      975      10
## 42    11  153      2  73   2       2       60        70     1075      11
## 43    10  433      2  59   2       0       90        90      363      27
## 44    12  145      2  60   2       2       70        60       NA      NA
## 45     7  583      2  68   1       1       60        70     1025       7
## 46     7   95      2  76   2       2       60        60      625     -24
## 47     1  303      2  74   1       0       90        70      463      30
## 48     3  519      2  63   1       1       80        70     1025      10
## 49    13  643      2  74   1       0       90        90     1425       2
## 50    22  765      2  50   2       1       90       100     1175       4
## 51     3  735      2  72   2       1       90        90       NA       9
## 52    12  189      2  63   1       0       80        70       NA       0
## 53    21   53      2  68   1       0       90       100     1025       0
## 54     1  246      2  58   1       0      100        90     1175       7
## 55     6  689      2  59   1       1       90        80     1300      15
## 56     1   65      2  62   1       0       90        80      725      NA
## 57     5    5      2  65   2       0      100        80      338       5
## 58    22  132      2  57   1       2       70        60       NA      18
## 59     3  687      2  58   2       1       80        80     1225      10
## 60     1  345      2  64   2       1       90        80     1075      -3
## 61    22  444      2  75   2       2       70        70      438       8
## 62    12  223      2  48   1       1       90        80     1300      68
## 63    21  175      2  73   1       1       80       100     1025      NA
## 64    11   60      2  65   2       1       90        80     1025       0
## 65     3  163      2  69   1       1       80        60     1125       0
## 66     3   65      2  68   1       2       70        50      825       8
## 67    16  208      2  67   2       2       70        NA      538       2
## 68     5  821      1  64   2       0       90        70     1025       3
## 69    22  428      2  68   1       0      100        80     1039       0
## 70     6  230      2  67   1       1       80       100      488      23
## 71    13  840      1  63   1       0       90        90     1175      -1
## 72     3  305      2  48   2       1       80        90      538      29
## 73     5   11      2  74   1       2       70       100     1175       0
## 74     2  132      2  40   1       1       80        80       NA       3
## 75    21  226      2  53   2       1       90        80      825       3
## 76    12  426      2  71   2       1       90        90     1075      19
## 77     1  705      2  51   2       0      100        80     1300       0
## 78     6  363      2  56   2       1       80        70     1225      -2
## 79     3   11      2  81   1       0       90        NA      731      15
## 80     1  176      2  73   1       0       90        70      169      30
## 81     4  791      2  59   1       0      100        80      768       5
## 82    13   95      2  55   1       1       70        90     1500      15
## 83    11  196      1  42   1       1       80        80     1425       8
## 84    21  167      2  44   2       1       80        90      588      -1
## 85    16  806      1  44   1       1       80        80     1025       1
## 86     6  284      2  71   1       1       80        90     1100      14
## 87    22  641      2  62   2       1       80        80     1150       1
## 88    21  147      2  61   1       0      100        90     1175       4
## 89    13  740      1  44   2       1       90        80      588      39
## 90     1  163      2  72   1       2       70        70      910       2
## 91    11  655      2  63   1       0      100        90      975      -1
## 92    22  239      2  70   1       1       80       100       NA      23
## 93     5   88      2  66   1       1       90        80      875       8
## 94    10  245      2  57   2       1       80        60      280      14
## 95     1  588      1  69   2       0      100        90       NA      13
## 96    12   30      2  72   1       2       80        60      288       7
## 97     3  179      2  69   1       1       80        80       NA      25
## 98    12  310      2  71   1       1       90       100       NA       0
## 99    11  477      2  64   1       1       90       100      910       0
## 100    3  166      2  70   2       0       90        70       NA      10
## 101    1  559      1  58   2       0      100       100      710      15
## 102    6  450      2  69   2       1       80        90     1175       3
## 103   13  364      2  56   1       1       70        80       NA       4
## 104    6  107      2  63   1       1       90        70       NA       0
## 105   13  177      2  59   1       2       50        NA       NA      32
## 106   12  156      2  66   1       1       80        90      875      14
## 107   26  529      1  54   2       1       80       100      975      -3
## 108    1   11      2  67   1       1       90        90      925      NA
## 109   21  429      2  55   1       1      100        80      975       5
## 110    3  351      2  75   2       2       60        50      925      11
## 111   13   15      2  69   1       0       90        70      575      10
## 112    1  181      2  44   1       1       80        90     1175       5
## 113   10  283      2  80   1       1       80       100     1030       6
## 114    3  201      2  75   2       0       90       100       NA       1
## 115    6  524      2  54   2       1       80       100       NA      15
## 116    1   13      2  76   1       2       70        70      413      20
## 117    3  212      2  49   1       2       70        60      675      20
## 118    1  524      2  68   1       2       60        70     1300      30
## 119   16  288      2  66   1       2       70        60      613      24
## 120   15  363      2  80   1       1       80        90      346      11
## 121   22  442      2  75   1       0       90        90       NA       0
## 122   26  199      2  60   2       2       70        80      675      10
## 123    3  550      2  69   2       1       70        80      910       0
## 124   11   54      2  72   1       2       60        60      768      -3
## 125    1  558      2  70   1       0       90        90     1025      17
## 126   22  207      2  66   1       1       80        80      925      20
## 127    7   92      2  50   1       1       80        60     1075      13
## 128   12   60      2  64   1       1       80        90      993       0
## 129   16  551      1  77   2       2       80        60      750      28
## 130   12  543      1  48   2       0       90        60       NA       4
## 131    4  293      2  59   2       1       80        80      925      52
## 132   16  202      2  53   1       1       80        80       NA      20
## 133    6  353      2  47   1       0      100        90     1225       5
## 134   13  511      1  55   2       1       80        70       NA      49
## 135    1  267      2  67   1       0       90        70      313       6
## 136   22  511      1  74   2       2       60        40       96      37
## 137   12  371      2  58   2       1       80        70       NA       0
## 138   13  387      2  56   1       2       80        60     1075      NA
## 139    1  457      2  54   1       1       90        90      975      -5
## 140    5  337      2  56   1       0      100       100     1500      15
## 141   21  201      2  73   2       2       70        60     1225     -16
## 142    3  404      1  74   1       1       80        70      413      38
## 143   26  222      2  76   1       2       70        70     1500       8
## 144    1   62      2  65   2       1       80        90     1075       0
## 145   11  458      1  57   1       1       80       100      513      30
## 146   26  356      1  53   2       1       90        90       NA       2
## 147   16  353      2  71   1       0      100        80      775       2
## 148   16  163      2  54   1       1       90        80     1225      13
## 149   12   31      2  82   1       0      100        90      413      27
## 150   13  340      2  59   2       0      100        90       NA       0
## 151   13  229      2  70   1       1       70        60     1175      -2
## 152   22  444      1  60   1       0       90       100       NA       7
## 153    5  315      1  62   2       0       90        90       NA       0
## 154   16  182      2  53   2       1       80        60       NA       4
## 155   32  156      2  55   1       2       70        30     1025      10
## 156   NA  329      2  69   1       2       70        80      713      20
## 157   26  364      1  68   2       1       90        90       NA       7
## 158    4  291      2  62   1       2       70        60      475      27
## 159   12  179      2  63   1       1       80        70      538      -2
## 160    1  376      1  56   2       1       80        90      825      17
## 161   32  384      1  62   2       0       90        90      588       8
## 162   10  268      2  44   2       1       90       100     2450       2
## 163   11  292      1  69   1       2       60        70     2450      36
## 164    6  142      2  63   1       1       90        80      875       2
## 165    7  413      1  64   1       1       80        70      413      16
## 166   16  266      1  57   2       0       90        90     1075       3
## 167   11  194      2  60   2       1       80        60       NA      33
## 168   21  320      2  46   1       0      100       100      860       4
## 169    6  181      2  61   1       1       90        90      730       0
## 170   12  285      2  65   1       0      100        90     1025       0
## 171   13  301      1  61   1       1       90       100      825       2
## 172    2  348      2  58   2       0       90        80     1225      10
## 173    2  197      2  56   1       1       90        60      768      37
## 174   16  382      1  43   2       0      100        90      338       6
## 175    1  303      1  53   1       1       90        80     1225      12
## 176   13  296      1  59   2       1       80       100     1025       0
## 177    1  180      2  56   1       2       60        80     1225      -2
## 178   13  186      2  55   2       1       80        70       NA      NA
## 179    1  145      2  53   2       1       80        90      588      13
## 180    7  269      1  74   2       0      100       100      588       0
## 181   13  300      1  60   1       0      100       100      975       5
## 182    1  284      1  39   1       0      100        90     1225      -5
## 183   16  350      2  66   2       0       90       100     1025      NA
## 184   32  272      1  65   2       1       80        90       NA      -1
## 185   12  292      1  51   2       0       90        80     1225       0
## 186   12  332      1  45   2       0       90       100      975       5
## 187    2  285      2  72   2       2       70        90      463      20
## 188    3  259      1  58   1       0       90        80     1300       8
## 189   15  110      2  64   1       1       80        60     1025      12
## 190   22  286      2  53   1       0       90        90     1225       8
## 191   16  270      2  72   1       1       80        90      488      14
## 192   16   81      2  52   1       2       60        70     1075      NA
## 193   12  131      2  50   1       1       90        80      513      NA
## 194    1  225      1  64   1       1       90        80      825      33
## 195   22  269      2  71   1       1       90        90     1300      -2
## 196   12  225      1  70   1       0      100       100     1175       6
## 197   32  243      1  63   2       1       80        90      825       0
## 198   21  279      1  64   1       1       90        90       NA       4
## 199    1  276      1  52   2       0      100        80      975       0
## 200   32  135      2  60   1       1       90        70     1275       0
## 201   15   79      2  64   2       1       90        90      488      37
## 202   22   59      2  73   1       1       60        60     2200       5
## 203   32  240      1  63   2       0       90       100     1025       0
## 204    3  202      1  50   2       0      100       100      635       1
## 205   26  235      1  63   2       0      100        90      413       0
## 206   33  105      2  62   1       2       NA        70       NA      NA
## 207    5  224      1  55   2       0       80        90       NA      23
## 208   13  239      2  50   2       2       60        60     1025      -3
## 209   21  237      1  69   1       1       80        70       NA      NA
## 210   33  173      1  59   2       1       90        80       NA      10
## 211    1  252      1  60   2       0      100        90      488      -2
## 212    6  221      1  67   1       1       80        70      413      23
## 213   15  185      1  69   1       1       90        70     1075       0
## 214   11   92      1  64   2       2       70       100       NA      31
## 215   11   13      2  65   1       1       80        90       NA      10
## 216   11  222      1  65   1       1       90        70     1025      18
## 217   13  192      1  41   2       1       90        80       NA     -10
## 218   21  183      2  76   1       2       80        60      825       7
## 219   11  211      1  70   2       2       70        30      131       3
## 220    2  175      1  57   2       0       80        80      725      11
## 221   22  197      1  67   1       1       80        90     1500       2
## 222   11  203      1  71   2       1       80        90     1025       0
## 223    1  116      2  76   1       1       80        80       NA       0
## 224    1  188      1  77   1       1       80        60       NA       3
## 225   13  191      1  39   1       0       90        90     2350      -5
## 226   32  105      1  75   2       2       60        70     1025       5
## 227    6  174      1  66   1       1       90       100     1075       1
## 228   22  177      1  58   2       1       80        90     1060       0

3 Apa itu Censoring ( Penyensoran) ?

Penyensoran terjadi jika subjek belum mengalami kejadian yang menarik pada akhir pengumpulan data.

Berdasarkan referensi dari RICH JT, NEELY JG, PANIELLO RC, VOELKER CCJ, NUSSENBAUM B, WANG EW. A PRACTICAL GUIDE TO UNDERSTANDING KAPLAN-MEIER CURVES. Otolaryngology head and neck surgery: official journal of American Academy of Otolaryngology Head and Neck Surgery.

Penyensoran terdiri dari beberapa tahapan :

  • Begin Trial (awal percobaan) dari data start up selama 6 bulan periode
  • Enrollment yang dibagi menjadi dua tahapan yaitu awal enrollment dan akhir enrollment yg periode akrual nya selama 2 tahun sehingga mendapatkan data ter update
  • Akhir dari pengumpulan data yang kemudian di analisis data dari proses sebelum nya selama 6 bulan
  • End Trial (akhir percobaan)

3.1 Tipe - tipe dari Censoring (Penyensoran)

Subjek dapat disensor karena:

  • Kehilangan data yang dapat ditindaklanjuti
  • Tidak ada nya kesimpulan dari suatu percobaan/study
  • Tidak terjadinya kesimpulan yang tepat pada akhir periode percobaan/study

Secara khusus ini adalah contoh penyensoran yang tepat.

Penyensoran kiri dan sensor interval juga dimungkinkan, dan metode ada untuk menganalisis jenis data ini, tetapi pelatihan ini akan terbatas pada sensor kanan.

3.2 Penyensoran data Survival

knitr::include_graphics("csd.png")

Dalam contoh ini, bagaimana kita menghitung proporsi siapa yang bebas acara pada 10 tahun?

Subyek 6 dan 7 bebas acara pada usia 10 tahun. Subyek 2, 9, dan 10 memiliki acara sebelum 10 tahun. Subjek 1, 3, 4, 5, dan 8 disensor sebelum 10 tahun, jadi kita tidak tahu apakah mereka memiliki acara atau tidak dengan 10 tahun - bagaimana kita memasukkan subjek ini ke dalam perkiraan kita?

3.3 Distribusi dari Follow-up

  • Subjek yang disensor masih memberikan informasi sehingga harus dimasukkan dengan tepat dalam analisis
  • Distribusi waktu tindak lanjut miring, dan mungkin berbeda antara pasien yang disensor dan mereka yang memiliki acara
  • Waktu tindak lanjut selalu positif
knitr::include_graphics("csd2.png")

4 Menangani Tanggal di R

Data akan sering datang dengan tanggal mulai dan berakhir daripada waktu bertahan hidup yang telah dihitung sebelumnya. Langkah pertama adalah memastikan ini diformat sebagai tanggal dalam R.

Mari kita buat contoh set data dengan variabel sx_date untuk tanggal operasi last_fup_date untuk tanggal terupdate menggunakan library tibble.

date_ex <- tibble(
    sx_date = c("2007-06-22", "2004-02-13", "2010-10-27"), 
    last_fup_date = c("2017-04-15", "2018-07-04", "2016-10-31")
    )

date_ex
## # A tibble: 3 x 2
##   sx_date    last_fup_date
##   <chr>      <chr>        
## 1 2007-06-22 2017-04-15   
## 2 2004-02-13 2018-07-04   
## 3 2010-10-27 2016-10-31

Kita dapat melihat bahwa kedua variabel diatas merupakan variabel karakter sedangkan kita mau variabel tersebut berformat sebagai tanggal. Cara lain untuk memformat karakter tersebut menjadi tanggal menggunakan R adalah sbb :

date_ex %>% 
  mutate(
    sx_date = as.Date(sx_date, format = "%Y-%m-%d"), 
    last_fup_date = as.Date(last_fup_date, format = "%Y-%m-%d") 
    )
## # A tibble: 3 x 2
##   sx_date    last_fup_date
##   <date>     <date>       
## 1 2007-06-22 2017-04-15   
## 2 2004-02-13 2018-07-04   
## 3 2010-10-27 2016-10-31
  • Perhatikan bahwa di basis R format harus menyertakan pemisah serta simbol. misalnya jika tanggal Anda dalam format m / d / Y maka Anda memerlukan format = “% m /% d /% Y”
  • Lihat daftar lengkap simbol format tanggal di https://www.statmethods.net/input/dates.html

Kita juga dapat menggunakan paket Lubridate untuk memformat tanggal. Dalam kasus ini, gunakan fungsi ymd

date_ex %>% 
  mutate(
    sx_date = ymd(sx_date), 
    last_fup_date = ymd(last_fup_date)
    )
## # A tibble: 3 x 2
##   sx_date    last_fup_date
##   <date>     <date>       
## 1 2007-06-22 2017-04-15   
## 2 2004-02-13 2018-07-04   
## 3 2010-10-27 2016-10-31
  • Perhatikan bahwa tidak seperti opsi dasar R, pemisah tidak perlu ditentukan
  • Halaman bantuan untuk? Dmy akan menampilkan semua opsi format.

4.1 Mengkalkulasi Waktu Survival

Setelah tanggalnya sudah berformat tanggal, kita perlu mengkalkulasi bedanya awal dan akhir waktu pada beberapa unit, biasanya dalam periode bulanan atau tahunan. Dalam R, kita dapat menggunakan difftime untuk mengkalkulasi berapa hari antara dua tanggal yang kita miliki dan kita konversi kedalam nilai numeric dengan koding as.numeric lalu. Lalu di konversi per tahunan dengan koding 362.25, rata-rata jumlah hari dalam setahun.

date_ex %>% 
  mutate(
    os_yrs = 
      as.numeric(
        difftime(last_fup_date, 
                 sx_date, 
                 units = "days")) / 365.25
    )
## # A tibble: 3 x 3
##   sx_date    last_fup_date os_yrs
##   <chr>      <chr>          <dbl>
## 1 2007-06-22 2017-04-15      9.82
## 2 2004-02-13 2018-07-04     14.4 
## 3 2010-10-27 2016-10-31      6.01

kita gunakan package lubridate, dengan operator %–% sebagai interval waktu yang kemudian di konversi kedalam angka dari detik yang berlalu menggunakan koding as.duration dan akhirnya di konversi ke tahunan dengan koding dyears(1) membagi per 1 tahun, yang memberikan detik dalam setahun.

date_ex %>% 
  mutate(
    os_yrs = 
      as.duration(sx_date %--% last_fup_date) / dyears(1)
    )
## # A tibble: 3 x 3
##   sx_date    last_fup_date os_yrs
##   <chr>      <chr>          <dbl>
## 1 2007-06-22 2017-04-15      9.82
## 2 2004-02-13 2018-07-04     14.4 
## 3 2010-10-27 2016-10-31      6.01

4.2 Indikator Kejadian

Untuk komponen-komponen survival data, dapat di sebutkan indikator dari suatu kejadian (_i) :

1 jika peristiwa diamati (yaitu T_i C_i) 0 jika disensor (yaitu T_i > C_i)

Bagaimanapun, dalam R, fungsi Surv dapat di terima TRUE/FALSE (TRUE = event) atau 1/2 dimana (2 = event).

Dalam data lung, kita mempunyai status : status penyensoran dimana 1=tersensor, 2=mati

4.3 Fungsi Survival

Probabilitas dari suatu subjek akan bertahan pada waktu yang diberikan dapat dihitung dengan rumus berikut :

                S(t) = Pr(T>t) = 1 - F(t)

Dimana S(t) merupakan fungsi survival F(t) = Pr(T>t) : merupakan fungsi distribusi kumulatif

Dalam teori, survival fungsi sangatlah mulus namun dalam latihan kita dapat melihat bahwa suatu kejadian terjadi pada skala waktu diskrit.

4.4 Probabilitas Survival

Probabilitas kelangsungan hidup pada waktu tertentu, S (t), adalah probabilitas bersyarat untuk bertahan hidup setelah waktu tersebut, mengingat bahwa seseorang telah bertahan sebelum waktu itu. Dapat diperkirakan sebagai jumlah pasien yang hidup tanpa mangkir pada saat itu, dibagi dengan jumlah pasien yang hidup sebelum waktu itu Estimasi Kaplan-Meier dari probabilitas kelangsungan hidup adalah produk dari probabilitas bersyarat hingga saat itu Pada waktu 0, probabilitas kelangsungan hidup adalah 1, yaitu S (t0) = 1

4.5 Membuat Objek Survival

Metode Kaplan-Meier adalah cara paling umum untuk memperkirakan waktu kelangsungan hidup dan probabilitas. Ini adalah pendekatan non-parametrik yang menghasilkan fungsi langkah, di mana ada penurunan setiap kali suatu peristiwa terjadi.

Fungsi Surv dari paket survival membuat objek survival untuk digunakan sebagai respons dalam rumus model. Akan ada satu entri untuk setiap subjek yaitu survival time, yang diikuti dengan + jika subjek disensor. Mari kita lihat 10 observasi pertama:

Surv(lung$time, lung$status)[1:10]
##  [1]  306   455  1010+  210   883  1022+  310   361   218   166

4.6 Kurva Estimasi Survival

Fungsi survfit menciptakan kurva kelangsungan hidup berdasarkan rumus. Mari buat kurva kelangsungan hidup keseluruhan untuk seluruh kelompok, tetapkan ke objek f1, dan lihat nama objek itu:

f1 <- survfit(Surv(time, status) ~ 1, data = lung)
names(f1)
##  [1] "n"         "time"      "n.risk"    "n.event"   "n.censor"  "surv"     
##  [7] "std.err"   "cumhaz"    "std.chaz"  "type"      "logse"     "conf.int" 
## [13] "conf.type" "lower"     "upper"     "call"

Beberapa kunci komponen dari survfit objek ini dapat digunakan untuk membuat kurva survival yang terdiri dari : time, yang berisikan titik awal dan akhir dari setiap interval waktu surv, berisikan probabilitas survival koresponden untuk setiap time

4.7 Plot Survival Kaplan-Meier

Sekarang kita plot kan objek survfit di R untuk mendapatkan plot Kaplan-Meiernya.

plot(survfit(Surv(time, status) ~ 1, data = lung), 
     xlab = "Days", 
     ylab = "Overall survival probability")

Plot default di basis R menunjukkan fungsi langkah (garis penuh) dengan interval kepercayaan terkait (garis putus-putus) Garis horizontal mewakili durasi kelangsungan hidup untuk interval tersebut Interval diakhiri oleh suatu peristiwa Ketinggian garis vertikal menunjukkan perubahan probabilitas kumulatif Pengamatan yang disensor, ditunjukkan dengan tanda centang, mengurangi kelangsungan hidup kumulatif di antara interval. (Perhatikan tanda centang untuk pasien yang disensor tidak ditampilkan secara default, tetapi dapat ditambahkan menggunakan opsi mark.time = TRUE)

Sebagai alternatif, fungsi ggsurvplot dari paket survminer dibangun di atas ggplot2, dan dapat digunakan untuk membuat plot Kaplan-Meier. Lihat lembar contekan untuk paket survminer.

ggsurvplot(
    fit = survfit(Surv(time, status) ~ 1, data = lung), 
    xlab = "Days", 
    ylab = "Overall survival probability")

Plot default menggunakan ggsurvplot menunjukkan fungsi langkah (garis solid) dengan pita kepercayaan terkait (area berbayang). Tanda centang untuk pasien yang disensor ditampilkan secara default, agak mengaburkan garis itu sendiri dalam contoh ini, dan dapat ditekan menggunakan opsi censor = FALSE

4.8 Estimasi Survival x-tahun

Satu kuantitas yang sering menjadi perhatian dalam analisis kelangsungan hidup adalah probabilitas untuk bertahan hidup melebihi jumlah (x) tahun tertentu.

Misalnya, untuk mengestimasi probabilitas bertahan hingga 1 tahun, gunakan ringkasan dengan argumen waktu (Perhatikan variabel waktu di data paru-paru sebenarnya dalam hari, jadi kita perlu menggunakan times = 365.25)

summary(survfit(Surv(time, status) ~ 1, data = lung), times = 365.25)
## Call: survfit(formula = Surv(time, status) ~ 1, data = lung)
## 
##  time n.risk n.event survival std.err lower 95% CI upper 95% CI
##   365     65     121    0.409  0.0358        0.345        0.486

Kami menemukan bahwa probabilitas kelangsungan hidup 1 tahun dalam penelitian ini adalah 41%.

Batas bawah dan atas yang terkait dari interval kepercayaan 95% juga ditampilkan.

4.9 Probabilitas Survival pada x-tahun

Probabilitas kelangsungan hidup 1 tahun adalah titik pada sumbu y yang sesuai dengan 1 tahun pada sumbu x untuk kurva kelangsungan hidup.

knitr::include_graphics("csd3.png")

Apa yang terjadi jika Anda menggunakan perkiraan “naif”?

121 dari 228 pasien meninggal dalam 1 tahun jadi:

                    \Big(1 - \frac{121}{228}\Big) \times 100 = 47\%

Anda mendapatkan perkiraan yang salah tentang kemungkinan bertahan hidup 1 tahun ketika Anda mengabaikan fakta bahwa 42 pasien disensor sebelum 1 tahun.

Ingat perkiraan yang benar dari kemungkinan 1 tahun untuk bertahan hidup adalah 41%.

5 Mengecek Abaikan Sensor

Bayangkan dua studi, masing-masing dengan 228 subjek. Ada 165 kematian di setiap penelitian. Tidak ada sensor di satu (garis oranye), 63 pasien disensor di satu (garis biru) Mengabaikan penyensoran mengarah pada perkiraan yang terlalu tinggi dari probabilitas kelangsungan hidup secara keseluruhan, karena subjek yang disensor hanya menyumbangkan informasi untuk sebagian dari waktu tindak lanjut, dan kemudian keluar dari set risiko, sehingga menurunkan probabilitas kumulatif untuk bertahan hidup

knitr::include_graphics("csd4.png")

6 Mengestimasi Median Survival

Kuantitas lain yang sering menarik dalam analisis kelangsungan hidup adalah waktu bertahan hidup rata-rata, yang kami ukur menggunakan median. Waktu bertahan tidak diharapkan terdistribusi secara normal sehingga meannya bukan ringkasan yang tepat.

Kami dapat memperoleh ini langsung dari objek survfit kami

survfit(Surv(time, status) ~ 1, data = lung)
## Call: survfit(formula = Surv(time, status) ~ 1, data = lung)
## 
##       n  events  median 0.95LCL 0.95UCL 
##     228     165     310     285     363

Kami melihat median waktu bertahan hidup adalah 310 hari Batas bawah dan atas dari interval kepercayaan 95% juga ditampilkan.

6.1 Waktu dan Probabilitas

Kelangsungan hidup median adalah waktu yang sesuai dengan probabilitas kelangsungan hidup 0,5:

knitr::include_graphics("csd5.png")

6.2 Dampak dari Mengabaikan Censoring

Apa yang terjadi jika anda menggunakan sebuah estimasi “naive”? Simpulkan median dari survival waktu saat dalam 165 pasien yang meninggal.

lung %>% 
  filter(status == 2) %>% 
  summarize(median_surv = median(time))
##   median_surv
## 1         226

Anda mendapatkan perkiraan waktu kelangsungan hidup rata-rata yang salah yaitu 226 hari ketika Anda mengabaikan fakta bahwa pasien yang disensor juga berkontribusi pada waktu tindak lanjut.

Ingat perkiraan yang benar dari waktu bertahan hidup rata-rata adalah 310 hari.

Mengabaikan penyensoran menciptakan kurva kelangsungan hidup yang diturunkan secara artifisial karena waktu tindak lanjut yang berkontribusi pada pasien yang disensor tidak termasuk (garis ungu)

Kurva kelangsungan hidup sebenarnya untuk data paru-paru ditampilkan dengan warna biru untuk perbandingan

knitr::include_graphics("csd6.png")

7 Membandingkan Waktu Survival

Kita dapat melakukan uji signifikansi antarkelompok menggunakan uji log-rank Tes log-rank sama-sama membobotkan pengamatan selama seluruh waktu tindak lanjut dan merupakan cara paling umum untuk membandingkan waktu bertahan hidup antar kelompok Ada versi yang lebih membebani tindak lanjut awal atau akhir yang bisa lebih sesuai tergantung pada pertanyaan penelitian (lihat? Survdiff untuk opsi tes yang berbeda)

Kami mendapatkan nilai p log-rank menggunakan fungsi survdiff. Misalnya, kami dapat menguji apakah ada perbedaan waktu bertahan hidup menurut jenis kelamin di data lung

survdiff(Surv(time, status) ~ sex, data = lung)
## Call:
## survdiff(formula = Surv(time, status) ~ sex, data = lung)
## 
##         N Observed Expected (O-E)^2/E (O-E)^2/V
## sex=1 138      112     91.6      4.55      10.3
## sex=2  90       53     73.4      5.68      10.3
## 
##  Chisq= 10.3  on 1 degrees of freedom, p= 0.001

8 Mengekstrak Informasi

Sebenarnya agak rumit untuk mengekstrak nilai-p dari hasil survdiff. Berikut adalah baris kode untuk melakukannya

sd <- survdiff(Surv(time, status) ~ sex, data = lung)
1 - pchisq(sd$chisq, length(sd$n) - 1)
## [1] 0.001311165

Atau ada fungsi sdp di paket ezfun, yang dapat Anda instal menggunakan devtools :: install_github (“zabore / ezfun”) atau githubinstall :: githubinstall(“zabore / ezfun”). Ini mengembalikan nilai p yang diformat

ezfun::sdp(sd)
## [1] 0.001

9 Model Regresi Cox

Kami mungkin ingin mengukur ukuran efek untuk satu variabel, atau menyertakan lebih dari satu variabel ke dalam model regresi untuk memperhitungkan efek beberapa variabel.

Model regresi Cox merupakan model semi parametrik yang dapat digunakan untuk menyesuaikan model regresi univariabel dan multivariabel yang memiliki hasil survival. h(t|X_i) = h_0(t) (1 X{i1} + + p X{ip})

h (t): bahaya, atau kecepatan sesaat di mana peristiwa terjadi h0 (t): bahaya dasar yang mendasari

Beberapa asumsi utama model:

sensor non-informatif bahaya proporsional

Catatan: model regresi parametrik untuk hasil kelangsungan hidup juga tersedia, tetapi model tersebut tidak akan dibahas dalam pelatihan ini

Kita dapat menyesuaikan model regresi untuk data survival menggunakan fungsi coxph, yang mengambil objek Surv di sisi kiri dan memiliki sintaks standar untuk rumus regresi di R di sisi kanan.

coxph(Surv(time, status) ~ sex, data = lung)
## Call:
## coxph(formula = Surv(time, status) ~ sex, data = lung)
## 
##        coef exp(coef) se(coef)      z       p
## sex -0.5310    0.5880   0.1672 -3.176 0.00149
## 
## Likelihood ratio test=10.63  on 1 df, p=0.001111
## n= 228, number of events= 165

10 Memformat Regresi Cox

Kita dapat melihat versi keluaran yang rapi menggunakan fungsi rapi dari paket sapu:

broom::tidy(
  coxph(Surv(time, status) ~ sex, data = lung), 
  exp = TRUE
  ) %>% 
  kable()
term estimate std.error statistic p.value
sex 0.5880028 0.1671786 -3.176385 0.0014912

Or use tbl_regression from the gtsummary package

11 Rasio Bahaya

Kuantitas yang menarik dari model regresi Cox adalah rasio bahaya (HR). HR mewakili rasio bahaya antara dua kelompok pada titik waktu tertentu.

HR diartikan sebagai tingkat kejadian sesaat dari kejadian yang menarik bagi mereka yang masih berisiko untuk acara tersebut. Ini bukan risiko, meskipun secara umum ditafsirkan seperti itu.

Jika Anda memiliki parameter regresi β (dari estimasi kolom di coxph kami) maka HR = exp (β).

HR <1 menunjukkan pengurangan bahaya kematian sedangkan HR> 1 menunjukkan peningkatan bahaya kematian.

Jadi HR kami = 0,59 menyiratkan bahwa sekitar 0,6 kali lebih banyak wanita yang meninggal daripada pria, pada waktu tertentu.

knitr::include_graphics("csd7.png")