Nama Kelompok :

  1. Lisda Aryanti 16231030
  2. Muhammad Athaya Darussalam 16231035
  3. Nurcahaya Omega 16231044
  4. Ocarosen Simbolon 16231046
  5. Zaira Amalia Putri 16231060

🧩 Pendahuluan

Analisis survival digunakan untuk mempelajari waktu hingga terjadinya suatu peristiwa tertentu, terutama ketika data mengandung censoring. Dalam tugas ini, metode Kaplan–Meier, uji log-rank, dan Cox Proportional Hazards diterapkan pada dataset ovarian untuk memahami perbedaan peluang bertahan hidup serta faktor-faktor yang memengaruhi risiko terjadinya kejadian (event).

Dataset ini berisi data survival dari sebuah uji klinis kecil pada pasien kanker ovarium. Total observasi: 26 pasien. Berikut variabel-variabelnya:

  1. futime → waktu follow-up / durasi pengamatan(Tipe: numeric, Satuan: hari)

  2. fustat → status kejadian / event status(1 = event terjadi (kematian), 0 = censored)

  3. age → umur pasien (Tipe: numeric)

  4. resid.ds → tingkat residual disease/sisa kanker setelah operasi(1 = sisa tumor ≤ 2 cm, 2 = sisa tumor > 2 cm)

  5. rx → jenis treatment / kelompok perlakuan (1 = terapi A,2 = terapi B)

  6. ecog.ps → ingkat kondisi fisik pasien (1 = kondisi baik, 2 = kondisi lebih buruk )

📊 Eksplorasi & Deskriptif

1. Dataset

library(survival)
library(survminer)
## Loading required package: ggplot2
## Loading required package: ggpubr
## 
## Attaching package: 'survminer'
## The following object is masked from 'package:survival':
## 
##     myeloma
data(ovarian)
## Warning in data(ovarian): data set 'ovarian' not found
head(ovarian)
##   futime fustat     age resid.ds rx ecog.ps
## 1     59      1 72.3315        2  1       1
## 2    115      1 74.4932        2  1       1
## 3    156      1 66.4658        2  1       2
## 4    421      0 53.3644        2  2       1
## 5    431      1 50.3397        2  1       1
## 6    448      0 56.4301        1  1       2
print(ovarian)
##    futime fustat     age resid.ds rx ecog.ps
## 1      59      1 72.3315        2  1       1
## 2     115      1 74.4932        2  1       1
## 3     156      1 66.4658        2  1       2
## 4     421      0 53.3644        2  2       1
## 5     431      1 50.3397        2  1       1
## 6     448      0 56.4301        1  1       2
## 7     464      1 56.9370        2  2       2
## 8     475      1 59.8548        2  2       2
## 9     477      0 64.1753        2  1       1
## 10    563      1 55.1781        1  2       2
## 11    638      1 56.7562        1  1       2
## 12    744      0 50.1096        1  2       1
## 13    769      0 59.6301        2  2       2
## 14    770      0 57.0521        2  2       1
## 15    803      0 39.2712        1  1       1
## 16    855      0 43.1233        1  1       2
## 17   1040      0 38.8932        2  1       2
## 18   1106      0 44.6000        1  1       1
## 19   1129      0 53.9068        1  2       1
## 20   1206      0 44.2055        2  2       1
## 21   1227      0 59.5890        1  2       2
## 22    268      1 74.5041        2  1       2
## 23    329      1 43.1370        2  1       1
## 24    353      1 63.2192        1  2       2
## 25    365      1 64.4247        2  2       1
## 26    377      0 58.3096        1  2       1

Dataset varian ini mencakup mengenai kelangsungan hidup dari 26 individu yang terkena kanker ovarium dengan variasi umur dimulai dari 38 - 74 tahun. Serta variabel waktu/futime bervariasi antara 59 dan 1227 hari. Untuk terapi A diberi kode 1 dan terapi B dengan kode 2. Pasien pasien tersebut dibagi berdasarkan tingkat sisa kanker dengan resid.ds kurang dari 2 cm atau >2 cm dan juga kondisi fisik (ecog.ps (lebih baik atau lebih buruk) )

2. Deskripsi Data

summary(ovarian)
##      futime           fustat            age           resid.ds    
##  Min.   :  59.0   Min.   :0.0000   Min.   :38.89   Min.   :1.000  
##  1st Qu.: 368.0   1st Qu.:0.0000   1st Qu.:50.17   1st Qu.:1.000  
##  Median : 476.0   Median :0.0000   Median :56.85   Median :2.000  
##  Mean   : 599.5   Mean   :0.4615   Mean   :56.17   Mean   :1.577  
##  3rd Qu.: 794.8   3rd Qu.:1.0000   3rd Qu.:62.38   3rd Qu.:2.000  
##  Max.   :1227.0   Max.   :1.0000   Max.   :74.50   Max.   :2.000  
##        rx         ecog.ps     
##  Min.   :1.0   Min.   :1.000  
##  1st Qu.:1.0   1st Qu.:1.000  
##  Median :1.5   Median :1.000  
##  Mean   :1.5   Mean   :1.462  
##  3rd Qu.:2.0   3rd Qu.:2.000  
##  Max.   :2.0   Max.   :2.000
table(ovarian$fustat)
## 
##  0  1 
## 14 12

Deskripsi variabel ini berisi variabel waktu/futime bervariasi antara 59 dan 1227 hari, dengan rata-rata mencapai 599,5 hari dan median sebesar 476,0 hari. Dalam jangka waktu ini, terdapat 12 individu yang mengalami peristiwa kematian, sedangkan 14 individu lainnya terhitung censored. Rata-rata usia dari para pasien adalah 56,17 tahun, dengan rentang dari 38,89 hingga 74,50 tahun. Terdapat distribusi yang seimbang antara jenis perlakuan atau terapi, yang mana terapi A diberi kode rx=1 dan terapi B dengan kode rx=2. Selain itu, pasien juga dikelompokkan berdasarkan tingkat sisa penyakit dan keadaan fisik.

📈 Analisis Kaplan–Meier

3. Kurva Kaplan–Meier

library(survival)
library(survminer)

km_fit <- survfit(Surv(futime, fustat) ~ rx, data = ovarian)

ggsurvplot(
  km_fit, 
  data = ovarian,
  pval = TRUE,
  risk.table = TRUE,
  surv.median.line = "hv",
  title = "Kaplan–Meier Curve by Treatment (rx)"
)

Kaplan-Meier membandingkan peluang bertahan hidup di antara dua kelompok yaitu pasien yang menjalani terapi A dengan kode rx=1 dan terapi B dengan kode rx=2. kurva Kaplan-Meier untuk kelompok terapi A dengan kode rx=1 dan terapi B dengan kode rx=2 menunjukkan adanya tumpang tindih. Kurva untuk Terapi A sepertinya menunjukkan tingkat kelangsungan hidup yang sedikit lebih tinggi pada awalnya, tetapi perbedaannya tidak terlihat signifikan secara visual di seluruh jangka waktu yang dibuktikan dengan p-valeu sebesar 0.3.

4. Uji Log-Rank

survdiff(Surv(futime, fustat) ~ rx, data = ovarian)
## Call:
## survdiff(formula = Surv(futime, fustat) ~ rx, data = ovarian)
## 
##       N Observed Expected (O-E)^2/E (O-E)^2/V
## rx=1 13        7     5.23     0.596      1.06
## rx=2 13        5     6.77     0.461      1.06
## 
##  Chisq= 1.1  on 1 degrees of freedom, p= 0.3

Uji log-rank ini menganalisis perbandingan antara dua kelompok yang berbeda, yaitu rx=1 dan rx=2. Chi-square yang diperoleh adalah 1.1 dengan 1 derajat kebebasan, menghasilkan p=0.3. Karena nilai p = 0.3 lebih besar dibanding =0.05, tidak ada cukup bukti untuk menolak hipotesis nol. Artinya, tidak terdapat perbedaan yang signifikan antara pasien yang mendapatkan terapi A dengan kode rx=1 dan terapi B dengan kode rx=2.

⚙️ Pemodelan Cox Proportional Hazards

5. Estimasi Model

fit <- coxph(Surv(futime, fustat) ~ age + rx + resid.ds + ecog.ps,
             data = ovarian)
summary(fit)
## Call:
## coxph(formula = Surv(futime, fustat) ~ age + rx + resid.ds + 
##     ecog.ps, data = ovarian)
## 
##   n= 26, number of events= 12 
## 
##              coef exp(coef) se(coef)      z Pr(>|z|)   
## age       0.12481   1.13294  0.04689  2.662  0.00777 **
## rx       -0.91450   0.40072  0.65332 -1.400  0.16158   
## resid.ds  0.82619   2.28459  0.78961  1.046  0.29541   
## ecog.ps   0.33621   1.39964  0.64392  0.522  0.60158   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##          exp(coef) exp(-coef) lower .95 upper .95
## age         1.1329     0.8827    1.0335     1.242
## rx          0.4007     2.4955    0.1114     1.442
## resid.ds    2.2846     0.4377    0.4861    10.738
## ecog.ps     1.3996     0.7145    0.3962     4.945
## 
## Concordance= 0.807  (se = 0.068 )
## Likelihood ratio test= 17.04  on 4 df,   p=0.002
## Wald test            = 14.25  on 4 df,   p=0.007
## Score (logrank) test = 20.81  on 4 df,   p=3e-04

Berdasarkan hasil analisis menggunakan model Cox Proportional Hazards, diperoleh bahwa dari 26 pasien dengan 12 event kematian, hanya variabel age yang terbukti signifikan mempengaruhi risiko kematian (p = 0.00777). Nilai exp(coef) sebesar 1.13294 menunjukkan bahwa setiap kenaikan satu tahun usia meningkatkan risiko kematian sebesar 13.3%. Sementara itu, variabel rx, resid.ds, dan ecog.ps menunjukkan kecenderungan mempengaruhi risiko tetapi tidak signifikan secara statistik (masing-masing p > 0.05), sehingga efeknya belum dapat disimpulkan secara pasti. Uji kecocokan model secara keseluruhan melalui likelihood ratio, Wald, dan score test menghasilkan nilai p < 0.05, sehingga model Cox secara keseluruhan signifikan dalam menjelaskan variasi risiko kematian. Selain itu, nilai concordance sebesar 0.807 menunjukkan bahwa model memiliki kemampuan prediksi yang baik dalam membedakan pasien dengan risiko tinggi dan rendah.

6. Uji Asumsi Proportional Hazards

ph_test <- cox.zph(fit)
ph_test
##          chisq df     p
## age      0.170  1 0.680
## rx       0.595  1 0.440
## resid.ds 1.155  1 0.282
## ecog.ps  2.928  1 0.087
## GLOBAL   4.455  4 0.348
ggcoxzph(ph_test)

Hasil uji Schoenfeld menunjukkan bahwa seluruh variabel dalam model age (p = 0.680), rx (p = 0.440), resid.ds (p = 0.282), dan ecog.ps (p = 0.087) memiliki p-value lebih besar dari 0.05, yang berarti tidak terdapat pelanggaran terhadap asumsi proportional hazards. Nilai p global sebesar 0.348 juga mengindikasikan bahwa model secara keseluruhan memenuhi asumsi tersebut. Grafik Schoenfeld yang ditampilkan memperkuat hasil ini, di mana garis tren pada setiap variabel tampak relatif datar dan tidak menunjukkan pola meningkat atau menurun secara konsisten seiring waktu, sehingga dapat disimpulkan bahwa efek masing-masing variabel terhadap hazard bersifat konstan. Dengan demikian, model Cox yang digunakan dapat dianggap valid karena memenuhi asumsi proportional hazards.

7. Kurva Survival Terprediksi

ggadjustedcurves(fit, data = ovarian, variable = "rx",
                 legend.title = "Treatment (rx)",
                 title = "Adjusted Survival Curves by Treatment")

Pada grafik Kaplan–Meier terlihat adanya perbedaan pola survival antara kedua kelompok treatment. Secara umum, kurva survival pada treatment 2 (biru) berada di atas kurva treatment 1 (merah), yang menunjukkan bahwa probabilitas bertahan hidup pasien pada kelompok treatment 2 lebih tinggi. Dalam konteks epidemiologi, kurva yang berada lebih tinggi menandakan risiko kejadian (kematian/event) yang lebih rendah. Pada awal waktu pengamatan, kedua kelompok nilai concordance ok memiliki tingkat survival yang relatif serupa, namun mulai sekitar waktu 150 ke atas, penurunan survival pada treatment 1 terlihat lebih cepat dibandingkan treatment 2. Perbedaan ini semakin jelas pada rentang waktu 300 hingga 600, di mana treatment 2 masih mempertahankan survival rate sekitar 0.60, sedangkan treatment 1 turun hingga sekitar 0.40 pada waktu yang sama. Temuan ini mengindikasikan bahwa treatment 1 memiliki risiko event yang lebih tinggi, sehingga treatment 2 dapat dianggap memberikan peluang bertahan hidup yang lebih baik selama periode pengamatan.

🧾 Kesimpulan

Berdasarkan hasil analisis survival pada dataset ovarian, diperoleh bahwa variabel age yang terbukti signifikan mempengaruhi risiko kematian, di mana setiap satu tahun usia meningkatkan hazard sebesar 13,3%. Variabel lain seperti rx, resid.ds, dan ecog.ps menunjukkan arah pengaruh yang konsisten dengan teori misalnya residual disease yang lebih besar dan kondisi fisik yang lebih buruk cenderung meningkatkan risiko namun pengaruhnya tidak signifikan secara statistik. Sementara itu, model regresi cox proportional hazard secara keseluruhan signifikan dan memenuhi asumsi proportional hazards, serta memiliki yang cukup tinggi, sehingga dapat dikatakan memiliki kemampuan prediktif yang baik. Namun, analisis ini memiliki keterbatasan, terutama jumlah sampel yang sangat kecil sebesar 26 sampel dan jumlah event yang terbatas, yang dapat mengurangi kekuatan statistik serta meningkatkan ketidakstabilan estimasi. Selain itu, variabel-variabel dalam dataset bersifat terbatas dan tidak memasukkan faktor klinis penting lain seperti stadium penyakit atau respons terhadap terapi.

📚 Referensi

Therneau, T. M., & Grambsch, P. M. (2000). Modeling Survival Data: Extending the Cox Model. Springer.