1 Pendahuluan

Sepsis merupakan salah satu kondisi klinis paling serius yang sering dijumpai pada pasien yang dirawat di Intensive Care Unit (ICU) dan masih menjadi penyebab utama morbiditas serta mortalitas di berbagai sistem pelayanan kesehatan. Kondisi ini ditandai oleh respons imun yang tidak terkontrol terhadap infeksi, yang dapat berkembang secara cepat dan menyebabkan disfungsi organ hingga kematian apabila tidak ditangani secara tepat waktu [1]. Kompleksitas sepsis semakin meningkat di lingkungan ICU karena kondisi fisiologis pasien dapat berubah secara dinamis dalam hitungan jam, terutama pada fase awal perawatan intensif.

Dalam praktik klinis maupun penelitian, sepsis sering kali dianalisis berdasarkan status akhir pasien, misalnya apakah pasien mengalami sepsis atau tidak selama masa perawatan. Pendekatan semacam ini cenderung menyederhanakan fenomena klinis yang bersifat dinamis dan berpotensi mengabaikan informasi penting terkait waktu terjadinya sepsis. Padahal, dalam konteks perawatan intensif, waktu hingga terjadinya sepsis memiliki implikasi klinis yang signifikan, khususnya dalam menentukan strategi pemantauan, intervensi dini, serta alokasi sumber daya klinis [2].

Analisis yang tidak mempertimbangkan dimensi waktu juga berisiko memberikan gambaran yang kurang lengkap mengenai perjalanan klinis pasien ICU. Pasien yang mengalami sepsis pada jam-jam awal perawatan memiliki karakteristik risiko yang berbeda dibandingkan pasien yang mengalami sepsis setelah periode perawatan yang lebih panjang, atau pasien yang tidak mengalami sepsis sama sekali selama masa observasi. Oleh karena itu, pendekatan analitik yang mampu memodelkan waktu hingga kejadian serta mengakomodasi variasi durasi observasi antar pasien menjadi sangat relevan dalam studi sepsis ICU.

Analisis survival menyediakan kerangka statistik yang secara khusus dirancang untuk memodelkan data time-to-event dan menangani keberadaan data tersensor (censoring), yaitu kondisi ketika kejadian yang diminati belum terjadi hingga akhir periode pengamatan. Dalam studi pasien ICU, censoring merupakan fenomena yang umum, misalnya ketika pasien dipulangkan dari ICU tanpa mengalami sepsis atau ketika periode observasi berakhir sebelum kejadian tersebut terjadi. Kemampuan analisis survival dalam menangani kondisi ini menjadikannya pendekatan yang lebih sesuai dibandingkan analisis statis dalam menggambarkan risiko kejadian klinis sepanjang waktu [3].

Ketersediaan dataset klinis berskala besar dan bersifat longitudinal, seperti PhysioNet Sepsis Challenge 2019, memberikan peluang untuk menerapkan analisis survival secara komprehensif pada studi sepsis ICU. Dataset ini merekam variabel fisiologis pasien ICU secara berkala per jam, sehingga memungkinkan estimasi waktu hingga terjadinya sepsis serta analisis probabilitas pasien tetap bebas dari sepsis sejak awal perawatan intensif [4]. Karakteristik data tersebut sangat mendukung penerapan pendekatan survival untuk memahami dinamika risiko sepsis secara temporal.

Berdasarkan latar belakang tersebut, studi ini menerapkan analisis survival untuk memodelkan waktu hingga terjadinya sepsis pada pasien ICU menggunakan data PhysioNet Sepsis Challenge 2019. Fokus analisis diarahkan pada penggambaran probabilitas bebas sepsis sepanjang waktu perawatan ICU serta evaluasi hubungan antara karakteristik klinis awal pasien dengan risiko terjadinya sepsis. Pendekatan ini tidak ditujukan untuk melakukan klasifikasi biner semata, melainkan untuk memberikan pemahaman yang lebih mendalam mengenai dinamika temporal kejadian sepsis dalam lingkungan perawatan intensif.

2 Tinjauan Pustaka

2.1 Analisis Survival dalam Penelitian Klinis

Analisis survival merupakan pendekatan statistik yang digunakan untuk mempelajari waktu hingga terjadinya suatu kejadian tertentu (time-to-event), dan telah lama diaplikasikan dalam penelitian medis dan epidemiologi untuk menganalisis kejadian klinis seperti kematian, komplikasi, atau kekambuhan penyakit [3]. Keunggulan utama analisis survival terletak pada kemampuannya untuk mengintegrasikan dimensi waktu ke dalam pemodelan risiko kejadian, sehingga tidak hanya memperhatikan apakah suatu kejadian terjadi, tetapi juga kapan kejadian tersebut terjadi.

Dalam penelitian klinis, khususnya pada pasien Intensive Care Unit (ICU), data sering kali mengandung censoring, yaitu kondisi ketika kejadian yang diminati belum terjadi hingga akhir periode observasi. Censoring dapat terjadi karena pasien keluar dari ICU atau masa pengamatan berakhir sebelum kejadian terdeteksi. Analisis survival dirancang secara khusus untuk menangani kondisi ini, sehingga estimasi risiko kejadian tetap valid meskipun tidak seluruh subjek mengalami event selama periode pengamatan [3], [7].

Dalam konteks sepsis ICU, pendekatan survival menjadi relevan karena sepsis merupakan kejadian yang dapat terjadi pada berbagai titik waktu selama perawatan, dengan dinamika risiko yang berubah seiring waktu. Oleh karena itu, analisis survival dinilai lebih sesuai dibandingkan pendekatan statis berbasis status akhir pasien [2], [4].

2.2 Fungsi Survival dan Konsep Time-to-Event

Secara formal, analisis survival berfokus pada variabel acak waktu hingga kejadian \(T\), yang merepresentasikan durasi sejak titik awal pengamatan hingga terjadinya suatu event klinis [3]. Konsep dasar yang digunakan adalah fungsi survival, yang didefinisikan sebagai probabilitas individu tetap bebas dari kejadian hingga waktu tertentu:

\[ S(t) = P(T > t) \]

Fungsi survival memberikan gambaran probabilitas kumulatif bebas kejadian sepanjang waktu dan menjadi fondasi utama dalam analisis time-to-event. Dalam studi klinis, fungsi ini digunakan untuk menggambarkan ketahanan pasien terhadap kejadian tertentu selama masa observasi.

Selain fungsi survival, konsep hazard function juga penting dalam analisis survival. Fungsi hazard menggambarkan laju kejadian sesaat pada waktu \(T\), dengan asumsi individu masih berada dalam kondisi berisiko. Kedua fungsi ini saling berkaitan dan menjadi dasar bagi metode estimasi survival yang digunakan dalam penelitian klinis [3], [7].

2.3 Estimator Kaplan–Meier

Estimator Kaplan–Meier merupakan metode nonparametrik yang digunakan untuk mengestimasi fungsi survival pada data time-to-event yang mengandung right censoring [5]. Metode ini menghitung probabilitas survival sebagai hasil perkalian peluang bertahan pada setiap waktu kejadian yang teramati, dan dirumuskan sebagai:

\[ \hat{S}(t) = \prod_{t_i \le t} \left(1 - \frac{d_i}{n_i}\right) \]

di mana \(d_i\) menyatakan jumlah kejadian pada waktu \(t_i\), dan \(n_i\) adalah jumlah individu yang masih berada dalam kelompok berisiko sesaat sebelum waktu tersebut. Estimator Kaplan–Meier banyak digunakan sebagai analisis deskriptif awal karena mampu memberikan gambaran visual mengenai perubahan probabilitas survival sepanjang waktu, tanpa memerlukan asumsi distribusi tertentu [5].

Dalam penelitian klinis ICU, Kaplan–Meier sering digunakan untuk menggambarkan distribusi waktu hingga kejadian kritis, termasuk sepsis, serta untuk mengevaluasi pola umum kejadian dalam suatu populasi pasien [2], [4].

2.4 Model Cox Proportional Hazards

Untuk mengevaluasi hubungan antara kovariat dan waktu hingga kejadian, model Cox Proportional Hazards merupakan pendekatan semiparametrik yang paling luas digunakan dalam analisis survival [6]. Model ini mendefinisikan fungsi hazard sebagai:

\[ h(t \mid X) = h_0(t)\,\exp(\beta X) \]

di mana \(h_0(t)\) merupakan baseline hazard yang tidak ditentukan secara parametrik, \(X\) adalah vektor kovariat, dan \(\beta\) adalah parameter yang merepresentasikan pengaruh kovariat terhadap risiko kejadian.

Keunggulan utama model Cox terletak pada fleksibilitasnya, karena tidak memerlukan asumsi bentuk distribusi waktu kejadian. Estimasi parameter dilakukan melalui partial likelihood, dan hasilnya dinyatakan dalam bentuk hazard ratio yang merepresentasikan perubahan relatif hazard akibat perubahan kovariat [6].

Namun demikian, model Cox mengasumsikan bahwa rasio hazard antar individu bersifat konstan sepanjang waktu, yang dikenal sebagai asumsi proportional hazards. Validitas interpretasi hazard ratio sangat bergantung pada pemenuhan asumsi ini, sehingga evaluasi asumsi proportional hazards menjadi langkah penting dalam analisis survival [3], [7].

2.5 Relevansi Analisis Survival pada Studi Sepsis ICU

Dalam studi sepsis pada pasien ICU, analisis survival memberikan kerangka metodologis yang lebih sesuai dibandingkan pendekatan analisis statis. Sepsis merupakan kejadian yang bersifat dinamis, dengan risiko yang dapat berubah sepanjang waktu perawatan. Selain itu, tidak seluruh pasien mengalami sepsis selama masa observasi, sehingga keberadaan data tersensor menjadi karakteristik utama data ICU.

Dengan kemampuannya memodelkan waktu hingga kejadian serta menangani censoring secara eksplisit, analisis survival memungkinkan pemahaman yang lebih komprehensif mengenai dinamika risiko sepsis sepanjang waktu perawatan ICU [2], [4]. Oleh karena itu, pendekatan ini banyak digunakan dalam penelitian klinis untuk mengevaluasi kejadian kritis di lingkungan perawatan intensif.

3 Metodologi Penelitian

3.1 Sumber Data dan Deskripsi Dataset

Penelitian ini menggunakan dataset PhysioNet Sepsis Challenge 2019, yang berisi data rekam medis elektronik pasien Intensive Care Unit (ICU) yang dicatat secara longitudinal per jam sejak pasien masuk ICU [4]. Dataset ini dirancang untuk mendukung analisis kejadian sepsis berdasarkan data fisiologis dan klinis yang tersedia secara berkala.

Setiap observasi merepresentasikan kondisi pasien pada satu jam tertentu, dengan variabel waktu yang dinyatakan dalam satuan jam sejak masuk ICU (ICULOS). Struktur longitudinal tersebut memungkinkan identifikasi waktu terjadinya sepsis serta durasi pasien tetap bebas sepsis selama masa observasi ICU, sehingga sesuai untuk analisis time-to-event.

Informasi rinci mengenai struktur data, definisi variabel, serta karakteristik setiap parameter klinis yang digunakan dalam dataset ini didokumentasikan secara resmi oleh penyedia data. Deskripsi lengkap terkait seluruh variabel tanda vital, parameter laboratorium, informasi demografis, serta definisi variabel luaran dapat diakses melalui Link PhysioNet Sepsis Challenge 2019 : https://physionet.org/content/challenge-2019/1.0.0/, yang menjadi rujukan utama dalam pemahaman dan pemanfaatan dataset pada studi ini.

3.2 Variabel Penelitian

3.2.1 Variabel Outcome Survival

Variabel luaran utama dalam penelitian ini adalah kejadian sepsis pertama selama perawatan ICU. Informasi kejadian sepsis diperoleh dari variabel SepsisLabel, yang bernilai 1 apabila pasien teridentifikasi mengalami sepsis pada suatu jam observasi dan 0 jika tidak.

Dalam analisis survival:

  • Event = 1, apabila pasien mengalami setidaknya satu kejadian sepsis selama masa perawatan ICU;

  • Event = 0, apabila pasien tidak pernah mengalami sepsis hingga akhir periode observasi.

Waktu hingga kejadian (time-to-event) didefinisikan sebagai jumlah jam sejak pasien masuk ICU hingga pertama kali SepsisLabel bernilai 1. Bagi pasien tanpa sepsis, waktu observasi ditentukan sebagai lama perawatan ICU terakhir yang tercatat.

3.2.2 Variabel Kovariat

Kovariat yang digunakan dalam analisis merupakan karakteristik klinis awal pasien yang diukur pada 12 jam pertama perawatan ICU. Pembatasan ini dilakukan untuk memastikan kovariat secara temporal mendahului kejadian sepsis serta menghindari information leakage.

Variabel kovariat yang digunakan meliputi:

  • HR_mean_12h, sebagai rerata denyut jantung;

  • MAP_min_12h, sebagai nilai minimum tekanan darah rata-rata;

  • Temp_max_12h, sebagai nilai maksimum suhu tubuh;

  • Resp_mean_12h, sebagai rata-rata laju respirasi;

  • O2Sat_mean_12h, sebagai rata-rata saturasi oksigen;

  • Glucose_mean_12h, sebagai rata-rata kadar glukosa darah.

Seluruh kovariat diperlakukan sebagai baseline covariates dan tidak dimodelkan sebagai variabel waktu-berubah.

3.3 Prapemrosesan dan Pembentukan Dataset Survival

Data awal yang bersifat longitudinal per jam ditransformasikan menjadi dataset survival berbasis pasien. Tahapan prapemrosesan meliputi:

  1. Penghapusan variabel yang tidak relevan atau memiliki proporsi nilai hilang sangat tinggi.

  2. Imputasi nilai hilang pada variabel numerik menggunakan nilai median untuk menjaga stabilitas distribusi data.

  3. Pengurutan data berdasarkan identitas pasien dan waktu observasi (ICULOS).

  4. Identifikasi waktu kejadian sepsis pertama pada tingkat pasien.

  5. Agregasi variabel klinis dalam window 12 jam pertama menggunakan statistik ringkasan (rata-rata, minimum, maksimum).

Hasil dari tahapan ini adalah satu tabel survival akhir dengan satu baris per pasien, yang memuat status event, waktu hingga kejadian atau censoring, serta kovariat baseline.

3.4 Analisis Survival

Analisis survival dalam penelitian ini dilakukan dalam dua tahap utama.

3.4.1 Analisis Deskriptif Kaplan–Meier

Estimator Kaplan–Meier digunakan untuk mengestimasi fungsi survival, yaitu probabilitas pasien tetap bebas dari kejadian sepsis hingga waktu tertentu sejak masuk ICU. Analisis ini bersifat deskriptif dan digunakan untuk menggambarkan distribusi waktu kejadian sepsis pada tingkat populasi pasien ICU [5].

Pasien yang tidak mengalami sepsis selama masa observasi diperlakukan sebagai right-censored, dan tetap berkontribusi pada estimasi fungsi survival hingga waktu censoring.

3.4.2 Pemodelan Cox Proportional Hazards

Untuk mengevaluasi asosiasi antara kovariat baseline dan waktu hingga kejadian sepsis, digunakan model Cox Proportional Hazards [6]. Model ini memungkinkan estimasi pengaruh kovariat terhadap risiko kejadian sepsis tanpa menspesifikasikan bentuk fungsi hazard dasar.

Seluruh kovariat dimasukkan secara simultan ke dalam model. Interpretasi parameter difokuskan pada hazard ratio sebagai ukuran asosiasi statistik rata-rata sepanjang waktu observasi.

3.4.3 Evaluasi Asumsi Proportional Hazards

Pemenuhan asumsi proportional hazards dievaluasi menggunakan residual Schoenfeld. Evaluasi dilakukan baik secara global maupun pada tingkat kovariat individual untuk menilai apakah rasio hazard dapat diasumsikan konstan sepanjang waktu [3], [7].

Apabila asumsi proportional hazards tidak sepenuhnya terpenuhi, hasil estimasi model Cox diinterpretasikan secara terbatas sebagai asosiasi statistik rata-rata, tanpa penarikan kesimpulan kausal atau prediktif.

4 Hasil dan Pembahasan

4.1 Hasil Preprocessing Data dan Pembentukan Dataset Survival

4.1.1 Struktur Awal Dataset

Dataset awal berasal dari PhysioNet Sepsis Challenge 2019, yang terdiri dari 1.552.210 observasi dengan 44 variabel, di mana setiap observasi merepresentasikan kondisi pasien ICU pada satu jam tertentu.

Kode: Library, Pemanggilan, dan Pemeriksaan Struktur Data

# Import Library
library(dplyr)
library(tidyr)
library(caret)
library(survival)
library(survminer)
library(knitr)
library(kableExtra)
library (DT)

# Read Data
df <- read.csv("Dataset Sepsis 2019.csv")

# Mengambil 500 data pertama
df_subset <- head(df, 500)

datatable(df_subset, 
          options = list(pageLength = 25, scrollX = TRUE),
          caption = 'Tabel 500 Data Pertama Pasien Sepsis')
# Struktur Data
str(df)
## 'data.frame':    1552210 obs. of  44 variables:
##  $ X               : int  0 1 2 3 4 5 6 7 8 9 ...
##  $ Hour            : int  0 1 2 3 4 5 6 7 8 9 ...
##  $ HR              : num  NA 65 78 73 70 62 61 68 71 69 ...
##  $ O2Sat           : num  NA 100 100 100 100 100 100 100 100 100 ...
##  $ Temp            : num  NA NA NA NA NA ...
##  $ SBP             : num  NA NA NA NA 129 124 101 142 121 120 ...
##  $ MAP             : num  NA 72 42.5 NA 74 85 75 93.5 74 79 ...
##  $ DBP             : num  NA NA NA NA 69 61 58 78 91 98 ...
##  $ Resp            : num  NA 16.5 NA 17 14 14 14 16 14 14 ...
##  $ EtCO2           : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ BaseExcess      : num  NA NA NA NA NA 6 NA NA 3 NA ...
##  $ HCO3            : num  NA NA NA NA 26 NA NA NA NA NA ...
##  $ FiO2            : num  NA 0.4 NA NA 0.4 0.4 NA NA 0.5 NA ...
##  $ pH              : num  NA NA NA NA NA 7.61 NA NA 7.46 NA ...
##  $ PaCO2           : num  NA NA NA NA NA 27 NA NA 38 NA ...
##  $ SaO2            : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ AST             : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ BUN             : num  NA NA NA NA 23 NA NA NA NA NA ...
##  $ Alkalinephos    : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ Calcium         : num  NA NA NA NA 9.6 NA NA NA NA NA ...
##  $ Chloride        : num  NA NA NA NA 104 NA NA NA NA NA ...
##  $ Creatinine      : num  NA NA NA NA 0.8 NA NA NA NA NA ...
##  $ Bilirubin_direct: num  NA NA NA NA NA NA NA NA NA NA ...
##  $ Glucose         : num  NA NA NA NA 161 NA NA NA NA NA ...
##  $ Lactate         : num  NA NA NA NA NA 1.9 NA NA NA NA ...
##  $ Magnesium       : num  NA NA NA NA 1.6 NA NA NA NA NA ...
##  $ Phosphate       : num  NA NA NA NA 2.1 NA NA NA NA NA ...
##  $ Potassium       : num  NA NA NA NA 3.2 NA NA NA NA NA ...
##  $ Bilirubin_total : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ TroponinI       : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ Hct             : num  NA NA NA NA 29.7 NA NA NA NA NA ...
##  $ Hgb             : num  NA NA NA NA 9.5 NA NA NA NA NA ...
##  $ PTT             : num  NA NA NA NA 30.6 NA NA NA NA NA ...
##  $ WBC             : num  NA NA NA NA 11.3 NA NA NA NA NA ...
##  $ Fibrinogen      : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ Platelets       : num  NA NA NA NA 330 NA NA NA NA NA ...
##  $ Age             : num  68.5 68.5 68.5 68.5 68.5 ...
##  $ Gender          : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ Unit1           : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ Unit2           : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ HospAdmTime     : num  -0.02 -0.02 -0.02 -0.02 -0.02 -0.02 -0.02 -0.02 -0.02 -0.02 ...
##  $ ICULOS          : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ SepsisLabel     : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ Patient_ID      : int  17072 17072 17072 17072 17072 17072 17072 17072 17072 17072 ...
# Statistik Deskriptif
summary(df)
##        X               Hour              HR             O2Sat       
##  Min.   :  0.00   Min.   :  0.00   Min.   : 20.00   Min.   : 20.00  
##  1st Qu.:  9.00   1st Qu.:  9.00   1st Qu.: 72.00   1st Qu.: 96.00  
##  Median : 19.00   Median : 19.00   Median : 83.50   Median : 98.00  
##  Mean   : 25.49   Mean   : 25.49   Mean   : 84.58   Mean   : 97.19  
##  3rd Qu.: 33.00   3rd Qu.: 33.00   3rd Qu.: 95.50   3rd Qu.: 99.50  
##  Max.   :335.00   Max.   :335.00   Max.   :280.00   Max.   :100.00  
##                                    NA's   :153399   NA's   :202736  
##       Temp              SBP              MAP              DBP        
##  Min.   :20.90     Min.   : 20.0    Min.   : 20.0    Min.   : 20.00  
##  1st Qu.:36.50     1st Qu.:107.0    1st Qu.: 71.0    1st Qu.: 54.00  
##  Median :37.00     Median :121.0    Median : 80.0    Median : 62.00  
##  Mean   :36.98     Mean   :123.8    Mean   : 82.4    Mean   : 63.83  
##  3rd Qu.:37.50     3rd Qu.:138.0    3rd Qu.: 92.0    3rd Qu.: 72.00  
##  Max.   :50.00     Max.   :300.0    Max.   :300.0    Max.   :300.00  
##  NA's   :1026984   NA's   :226265   NA's   :193270   NA's   :486554  
##       Resp            EtCO2           BaseExcess           HCO3        
##  Min.   :  1.00   Min.   : 10.00    Min.   :-32.00    Min.   : 0.00    
##  1st Qu.: 15.00   1st Qu.: 28.00    1st Qu.: -3.00    1st Qu.:22.00    
##  Median : 18.00   Median : 33.00    Median :  0.00    Median :24.00    
##  Mean   : 18.73   Mean   : 32.96    Mean   : -0.69    Mean   :24.08    
##  3rd Qu.: 21.50   3rd Qu.: 38.00    3rd Qu.:  1.00    3rd Qu.:26.80    
##  Max.   :100.00   Max.   :100.00    Max.   :100.00    Max.   :55.00    
##  NA's   :238335   NA's   :1494574   NA's   :1468065   NA's   :1487182  
##       FiO2               pH              PaCO2              SaO2        
##  Min.   : -50.00   Min.   :6.62      Min.   : 10.00    Min.   : 23.00   
##  1st Qu.:   0.40   1st Qu.:7.34      1st Qu.: 35.00    1st Qu.: 94.00   
##  Median :   0.50   Median :7.38      Median : 40.00    Median : 97.00   
##  Mean   :   0.55   Mean   :7.38      Mean   : 41.02    Mean   : 92.65   
##  3rd Qu.:   0.60   3rd Qu.:7.43      3rd Qu.: 45.00    3rd Qu.: 98.00   
##  Max.   :4000.00   Max.   :7.93      Max.   :100.00    Max.   :100.00   
##  NA's   :1422845   NA's   :1444637   NA's   :1465909   NA's   :1498649  
##       AST               BUN           Alkalinephos        Calcium       
##  Min.   :   3.0    Min.   :  1.00    Min.   :   7.0    Min.   : 1.00    
##  1st Qu.:  22.0    1st Qu.: 12.00    1st Qu.:  54.0    1st Qu.: 7.70    
##  Median :  41.0    Median : 17.00    Median :  74.0    Median : 8.30    
##  Mean   : 260.2    Mean   : 23.92    Mean   : 102.5    Mean   : 7.56    
##  3rd Qu.: 111.0    3rd Qu.: 28.00    3rd Qu.: 108.0    3rd Qu.: 8.70    
##  Max.   :9961.0    Max.   :268.00    Max.   :3833.0    Max.   :27.90    
##  NA's   :1527027   NA's   :1445642   NA's   :1527269   NA's   :1460879  
##     Chloride         Creatinine      Bilirubin_direct     Glucose       
##  Min.   : 26.0     Min.   : 0.10     Min.   : 0.01     Min.   : 10.0    
##  1st Qu.:102.0     1st Qu.: 0.70     1st Qu.: 0.20     1st Qu.:106.0    
##  Median :106.0     Median : 0.94     Median : 0.44     Median :127.0    
##  Mean   :105.8     Mean   : 1.51     Mean   : 1.84     Mean   :136.9    
##  3rd Qu.:109.0     3rd Qu.: 1.43     3rd Qu.: 1.70     3rd Qu.:153.0    
##  Max.   :145.0     Max.   :46.60     Max.   :37.50     Max.   :988.0    
##  NA's   :1481744   NA's   :1457594   NA's   :1549220   NA's   :1286694  
##     Lactate          Magnesium         Phosphate         Potassium      
##  Min.   : 0.20     Min.   :0.20      Min.   : 0.20     Min.   : 1.00    
##  1st Qu.: 1.26     1st Qu.:1.80      1st Qu.: 2.60     1st Qu.: 3.70    
##  Median : 1.80     Median :2.00      Median : 3.30     Median : 4.10    
##  Mean   : 2.65     Mean   :2.05      Mean   : 3.54     Mean   : 4.14    
##  3rd Qu.: 3.00     3rd Qu.:2.20      3rd Qu.: 4.10     3rd Qu.: 4.40    
##  Max.   :31.00     Max.   :9.80      Max.   :18.80     Max.   :27.50    
##  NA's   :1510764   NA's   :1454259   NA's   :1489909   NA's   :1407685  
##  Bilirubin_total     TroponinI            Hct               Hgb         
##  Min.   : 0.10     Min.   :  0.01    Min.   : 5.50     Min.   : 2.20    
##  1st Qu.: 0.50     1st Qu.:  0.04    1st Qu.:27.00     1st Qu.: 9.10    
##  Median : 0.90     Median :  0.30    Median :30.30     Median :10.30    
##  Mean   : 2.11     Mean   :  8.29    Mean   :30.79     Mean   :10.43    
##  3rd Qu.: 1.70     3rd Qu.:  3.98    3rd Qu.:34.10     3rd Qu.:11.70    
##  Max.   :49.60     Max.   :440.00    Max.   :71.70     Max.   :32.00    
##  NA's   :1529069   NA's   :1537429   NA's   :1414777   NA's   :1437619  
##       PTT               WBC            Fibrinogen        Platelets      
##  Min.   : 12.50    Min.   :  0.10    Min.   :  34.0    Min.   :   1     
##  1st Qu.: 27.80    1st Qu.:  7.60    1st Qu.: 184.0    1st Qu.: 126     
##  Median : 32.40    Median : 10.30    Median : 250.0    Median : 181     
##  Mean   : 41.23    Mean   : 11.45    Mean   : 287.4    Mean   : 196     
##  3rd Qu.: 42.80    3rd Qu.: 13.80    3rd Qu.: 349.0    3rd Qu.: 244     
##  Max.   :250.00    Max.   :440.00    Max.   :1760.0    Max.   :2322     
##  NA's   :1506511   NA's   :1452763   NA's   :1541968   NA's   :1460001  
##       Age             Gender           Unit1            Unit2       
##  Min.   : 14.00   Min.   :0.0000   Min.   :0.0      Min.   :0.0     
##  1st Qu.: 51.68   1st Qu.:0.0000   1st Qu.:0.0      1st Qu.:0.0     
##  Median : 64.00   Median :1.0000   Median :0.0      Median :1.0     
##  Mean   : 62.01   Mean   :0.5593   Mean   :0.5      Mean   :0.5     
##  3rd Qu.: 74.00   3rd Qu.:1.0000   3rd Qu.:1.0      3rd Qu.:1.0     
##  Max.   :100.00   Max.   :1.0000   Max.   :1.0      Max.   :1.0     
##                                    NA's   :611960   NA's   :611960  
##   HospAdmTime           ICULOS        SepsisLabel        Patient_ID    
##  Min.   :-5366.86   Min.   :  1.00   Min.   :0.00000   Min.   :     1  
##  1st Qu.:  -47.05   1st Qu.: 11.00   1st Qu.:0.00000   1st Qu.:  9990  
##  Median :   -6.03   Median : 21.00   Median :0.00000   Median : 19965  
##  Mean   :  -56.13   Mean   : 26.99   Mean   :0.01798   Mean   : 59201  
##  3rd Qu.:   -0.04   3rd Qu.: 34.00   3rd Qu.:0.00000   3rd Qu.:109878  
##  Max.   :   23.99   Max.   :336.00   Max.   :1.00000   Max.   :120000  
##  NA's   :8

Struktur awal data menunjukkan bahwa dataset bersifat longitudinal per jam, dengan variabel yang mencakup tanda vital, parameter laboratorium, informasi demografis, waktu observasi ICU (ICULOS), serta label kejadian sepsis.

4.1.2 Pembersihan Awal dan Seleksi Variabel

Beberapa variabel diidentifikasi tidak relevan untuk analisis survival atau memiliki tingkat kelengkapan data yang sangat rendah, sehingga dikeluarkan dari analisis.

Kode: Penghapusan Variabel Tidak Digunakan

df <- df %>%
  select(-any_of(c("Unnamed.0", "Unnamed: 0", "EtCO2", "Unit1", "Unit2")))

Langkah ini bertujuan untuk menghilangkan kolom administratif dan variabel dengan tingkat missing yang ekstrem sejak tahap awal analisis.

4.1.3 Evaluasi Missing Data

Tingkat missingness dihitung untuk seluruh variabel guna menilai kelayakan setiap variabel untuk dianalisis lebih lanjut.

Kode: Perhitungan Missing Rate

missing_rate <- sapply(df, function(x) mean(is.na(x)))
print(sort(missing_rate, decreasing = TRUE))
## Bilirubin_direct       Fibrinogen        TroponinI  Bilirubin_total 
##     9.980737e-01     9.934017e-01     9.904774e-01     9.850916e-01 
##     Alkalinephos              AST          Lactate              PTT 
##     9.839319e-01     9.837760e-01     9.732987e-01     9.705588e-01 
##             SaO2        Phosphate             HCO3         Chloride 
##     9.654937e-01     9.598630e-01     9.581062e-01     9.546028e-01 
##       BaseExcess            PaCO2          Calcium        Platelets 
##     9.457902e-01     9.444012e-01     9.411607e-01     9.405950e-01 
##       Creatinine        Magnesium              WBC              BUN 
##     9.390443e-01     9.368958e-01     9.359320e-01     9.313443e-01 
##               pH              Hgb             FiO2              Hct 
##     9.306969e-01     9.261756e-01     9.166575e-01     9.114598e-01 
##        Potassium          Glucose             Temp              DBP 
##     9.068908e-01     8.289432e-01     6.616270e-01     3.134589e-01 
##             Resp              SBP            O2Sat              MAP 
##     1.535456e-01     1.457696e-01     1.306112e-01     1.245128e-01 
##               HR      HospAdmTime                X             Hour 
##     9.882619e-02     5.153942e-06     0.000000e+00     0.000000e+00 
##              Age           Gender           ICULOS      SepsisLabel 
##     0.000000e+00     0.000000e+00     0.000000e+00     0.000000e+00 
##       Patient_ID 
##     0.000000e+00

Hasil evaluasi menunjukkan bahwa sejumlah variabel laboratorium memiliki proporsi missing lebih dari 90%, yang dinilai tidak memadai untuk dianalisis secara andal.

4.1.4 Eliminasi Variabel dengan Missing Tinggi

Variabel dengan tingkat missing ≥ 90% dikeluarkan dari dataset.

Kode: Drop Variabel Missing > 90%

df <- df %>%
  select(where(~ mean(is.na(.)) < 0.9))

Setelah proses ini, dataset berkurang menjadi 16 variabel, yang sebagian besar terdiri dari tanda vital, informasi demografis, serta variabel waktu dan outcome.

4.1.5 Imputasi Nilai Hilang

Untuk variabel numerik yang tersisa, nilai hilang ditangani menggunakan imputasi median, guna mempertahankan seluruh observasi pasien dan menghindari pengurangan ukuran sampel.

Kode: Imputasi Median

num_cols <- df %>%
  select(where(is.numeric)) %>%
  colnames()

df[num_cols] <- lapply(df[num_cols], function(x) {
  x[is.na(x)] <- median(x, na.rm = TRUE)
  return(x)
})

Setelah imputasi: * Tidak terdapat nilai hilang pada dataset * Distribusi variabel tetap terjaga secara robust terhadap outlier

4.1.6 Pemeriksaan Duplikasi dan Distribusi Outcome

Sebagai bagian dari eksplorasi awal, dilakukan pemeriksaan duplikasi observasi dan distribusi label sepsis.

Kode: Pemeriksaan Duplikasi dan Label

sum(duplicated(df))
## [1] 0
table(df$SepsisLabel)
## 
##       0       1 
## 1524294   27916

Hasil menunjukkan:

  • Tidak terdapat observasi duplikat

  • Kejadian sepsis relatif jarang pada tingkat observasi per jam, yang mengindikasikan ketidakseimbangan distribusi label pada data longitudinal awal

4.1.7 Penyusunan Outcome Survival (Unit Pasien)

Data kemudian disusun ulang dari format longitudinal per jam menjadi format per pasien untuk analisis survival.

Kode: Pembentukan Outcome Survival

df <- df %>%
  arrange(Patient_ID, ICULOS)

event_df <- df %>%
  group_by(Patient_ID) %>%
  summarise(event = max(SepsisLabel))

time_df <- df %>%
  group_by(Patient_ID) %>%
  summarise(
    time_to_event = ifelse(
      any(SepsisLabel == 1),
      min(ICULOS[SepsisLabel == 1]),
      max(ICULOS)
    )
  )

survival_outcome <- event_df %>%
  inner_join(time_df, by = "Patient_ID")

Pendekatan ini memastikan bahwa outcome survival merepresentasikan waktu hingga kejadian sepsis pertama, dengan mekanisme right-censoring bagi pasien tanpa sepsis.

4.1.8 Ekstraksi Kovariat Baseline 12 Jam Pertama ICU

Kovariat baseline diekstraksi dari 12 jam pertama perawatan ICU.

Kode: Feature Engineering

df_12h <- df %>%
  filter(ICULOS <= 12)

features_12h <- df_12h %>%
  group_by(Patient_ID) %>%
  summarise(
    HR_mean_12h       = mean(HR, na.rm = TRUE),
    MAP_min_12h       = min(MAP, na.rm = TRUE),
    Temp_max_12h      = max(Temp, na.rm = TRUE),
    Resp_mean_12h     = mean(Resp, na.rm = TRUE),
    O2Sat_mean_12h    = mean(O2Sat, na.rm = TRUE),
    Glucose_mean_12h  = mean(Glucose, na.rm = TRUE),
    Age               = first(Age),
    Gender            = first(Gender)
  )

4.1.9 Dataset Survival Final

Dataset survival final dibentuk sebagai berikut.

Kode: Dataset Final

survival_df <- survival_outcome %>%
  inner_join(features_12h, by = "Patient_ID")

# Mengambil 500 data pertama
survival_df_subset <- head(df, 500)

datatable(survival_df_subset, 
          options = list(pageLength = 25, scrollX = TRUE),
          caption = 'Tabel 500 Data Pertama Pasien Sepsis')
# Cek Ulang Struktur Data
str (survival_df)
## tibble [40,282 × 11] (S3: tbl_df/tbl/data.frame)
##  $ Patient_ID      : num [1:40282] 1 2 3 4 5 6 7 8 9 10 ...
##  $ event           : num [1:40282] 0 0 0 0 0 0 0 0 1 0 ...
##  $ time_to_event   : num [1:40282] 54 23 48 29 49 19 45 40 249 25 ...
##  $ HR_mean_12h     : num [1:40282] 98.3 65 87.5 99 73.8 ...
##  $ MAP_min_12h     : num [1:40282] 75.3 62 62.7 34 74 ...
##  $ Temp_max_12h    : num [1:40282] 37.2 37 38.6 37 37.3 ...
##  $ Resp_mean_12h   : num [1:40282] 23.9 15.6 27 19.5 17.2 ...
##  $ O2Sat_mean_12h  : num [1:40282] 93.8 98.1 96.4 98.4 97.5 ...
##  $ Glucose_mean_12h: num [1:40282] 127 123 120 129 128 ...
##  $ Age             : num [1:40282] 83.1 75.9 45.8 65.7 28.1 ...
##  $ Gender          : num [1:40282] 0 0 0 0 1 1 1 1 1 0 ...
# Statistik Deskriptif
summary(survival_df)
##    Patient_ID         event         time_to_event     HR_mean_12h    
##  Min.   :     1   Min.   :0.00000   Min.   :  1.00   Min.   : 31.46  
##  1st Qu.: 10085   1st Qu.:0.00000   1st Qu.: 24.00   1st Qu.: 74.56  
##  Median : 20495   Median :0.00000   Median : 39.00   Median : 82.96  
##  Mean   : 59718   Mean   :0.07261   Mean   : 38.36   Mean   : 84.04  
##  3rd Qu.:109926   3rd Qu.:0.00000   3rd Qu.: 47.00   3rd Qu.: 92.50  
##  Max.   :120000   Max.   :1.00000   Max.   :336.00   Max.   :162.41  
##   MAP_min_12h      Temp_max_12h   Resp_mean_12h   O2Sat_mean_12h  
##  Min.   : 20.00   Min.   :35.33   Min.   : 3.70   Min.   : 69.00  
##  1st Qu.: 61.33   1st Qu.:37.00   1st Qu.:16.02   1st Qu.: 96.75  
##  Median : 68.67   Median :37.00   Median :17.83   Median : 98.00  
##  Mean   : 68.34   Mean   :37.32   Mean   :18.07   Mean   : 97.69  
##  3rd Qu.: 78.00   3rd Qu.:37.50   3rd Qu.:19.60   3rd Qu.: 99.04  
##  Max.   :145.50   Max.   :42.22   Max.   :48.88   Max.   :100.00  
##  Glucose_mean_12h      Age             Gender      
##  Min.   : 69.17   Min.   : 14.00   Min.   :0.0000  
##  1st Qu.:124.75   1st Qu.: 51.00   1st Qu.:0.0000  
##  Median :127.00   Median : 63.11   Median :1.0000  
##  Mean   :130.12   Mean   : 61.64   Mean   :0.5594  
##  3rd Qu.:131.08   3rd Qu.: 74.00   3rd Qu.:1.0000  
##  Max.   :431.83   Max.   :100.00   Max.   :1.0000

Karakteristik dataset akhir:

  • Jumlah pasien: 40.282

  • Kejadian sepsis: 2.925 pasien (7,26%)

  • Pasien tersensor: 37.357 pasien (92,74%)

  • Median waktu observasi: 39 jam

  • Rentang waktu: 1–336 jam

Tidak terdapat nilai hilang pada dataset analisis akhir.

4.2 Estimasi Fungsi Survival Menggunakan Kaplan–Meier

Analisis Kaplan–Meier digunakan untuk mengestimasi fungsi survival pasien ICU terhadap kejadian sepsis pertama. Analisis ini bersifat deskriptif, dengan tujuan menggambarkan probabilitas pasien tetap bebas dari sepsis sejak masuk ICU tanpa melibatkan kovariat tambahan.

4.2.1 Estimasi dan Visualisasi Kaplan–Meier

Estimasi fungsi survival dilakukan menggunakan seluruh pasien dalam dataset survival final dengan spesifikasi:

  • Time-to-event: ICULOS (jam sejak masuk ICU)

  • Event: kejadian sepsis pertama

  • Censoring: pasien tanpa sepsis hingga akhir observasi ICU

Kode: Estimasi dan Visualisasi Kaplan–Meier

# Estimasi Model Kaplan-Meier
km_fit <- survfit(
  Surv(time_to_event, event) ~ 1,
  data = survival_df
)

# Visualisasi Kurva Kaplan-Meier
ggsurvplot(
  km_fit,
  conf.int = TRUE,
  risk.table = TRUE,
  xlab = "Jam sejak masuk ICU",
  ylab = "Probabilitas bebas sepsis"
)

Kurva Kaplan–Meier yang dihasilkan merepresentasikan estimasi probabilitas kumulatif pasien ICU untuk tetap bebas dari kejadian sepsis sejak waktu masuk ICU hingga akhir periode observasi.

Pada fase awal perawatan ICU, fungsi survival berada sangat dekat dengan nilai 1. Hal ini menunjukkan bahwa sebagian besar pasien belum mengalami kejadian sepsis pada jam-jam awal perawatan. Seiring bertambahnya waktu observasi, kurva survival menunjukkan penurunan yang konsisten dan bertahap, mencerminkan terjadinya kejadian sepsis secara kumulatif sepanjang masa perawatan ICU.

Pola penurunan fungsi survival tidak menunjukkan adanya lonjakan tajam pada satu interval waktu tertentu. Sebaliknya, kurva menurun secara gradual, yang mengindikasikan bahwa kejadian sepsis tersebar di berbagai titik waktu selama perawatan ICU, bukan terkonsentrasi pada fase awal atau fase akhir saja. Pola ini memperlihatkan bahwa risiko terjadinya sepsis, secara deskriptif, tetap relevan sepanjang periode observasi.

4.2.2 Dinamika Jumlah Pasien Berisiko dan Ketidakpastian Estimasi

Tabel number at risk yang ditampilkan di bawah kurva Kaplan–Meier memberikan informasi tambahan mengenai dinamika jumlah pasien yang masih berada dalam risiko seiring waktu. Pada awal observasi, seluruh 40.282 pasien berada dalam kondisi berisiko. Jumlah ini menurun secara signifikan pada waktu observasi yang lebih panjang, yang disebabkan oleh dua mekanisme utama, yaitu:

  1. Terjadinya kejadian sepsis (event), dan

  2. Mekanisme right-censoring akibat berakhirnya periode observasi ICU.

Pada waktu observasi yang lebih lanjut, jumlah pasien yang tersisa dalam risiko menjadi relatif kecil. Kondisi ini tercermin pada interval kepercayaan yang semakin melebar pada bagian akhir kurva Kaplan–Meier. Pelebaran interval kepercayaan tersebut merupakan konsekuensi statistik dari berkurangnya jumlah observasi yang berkontribusi pada estimasi fungsi survival pada waktu yang lebih panjang, bukan indikasi ketidakstabilan model.

4.2.3 Ringkasan Kuantitatif Estimasi Kaplan–Meier

Ringkasan numerik dari estimasi Kaplan–Meier diperoleh langsung dari objek model sebagai berikut:

km_fit
## Call: survfit(formula = Surv(time_to_event, event) ~ 1, data = survival_df)
## 
##          n events median 0.95LCL 0.95UCL
## [1,] 40282   2925    107     104     111

Berdasarkan output tersebut diperoleh hasil:

  • Jumlah pasien (n): 40.282

  • Jumlah kejadian sepsis: 2.925

  • Median waktu bebas sepsis: 107 jam

  • Interval kepercayaan 95% median: 104–111 jam

Median waktu bebas sepsis sebesar 107 jam menunjukkan bahwa, secara deskriptif, sekitar separuh dari pasien yang dianalisis diperkirakan tetap bebas dari kejadian sepsis hingga lebih dari empat hari sejak masuk ICU. Interval kepercayaan 95% yang relatif sempit mengindikasikan bahwa estimasi median survival memiliki tingkat presisi yang baik, yang didukung oleh ukuran sampel yang besar dan distribusi kejadian yang memadai sepanjang waktu observasi.

4.2.4 Interpretasi Statistik Terbatas (Non-Kausal)

Hasil Kaplan–Meier pada subbab ini memberikan gambaran menyeluruh mengenai distribusi waktu hingga kejadian sepsis dalam populasi pasien ICU yang dianalisis. Estimasi ini bersifat murni deskriptif dan tidak mempertimbangkan pengaruh kovariat atau perbedaan karakteristik antar pasien.

Oleh karena itu, kurva Kaplan–Meier dan median waktu bebas sepsis yang diperoleh tidak diinterpretasikan sebagai ukuran risiko individual atau efek faktor tertentu, melainkan sebagai ringkasan statistik global mengenai pola waktu terjadinya sepsis dalam populasi studi.

4.3 Estimasi Model Cox Proportional Hazards

Analisis ini bertujuan untuk mengevaluasi asosiasi multivariat antara karakteristik baseline pasien ICU yang diukur pada 12 jam pertama perawatan dengan waktu hingga kejadian sepsis pertama. Model yang digunakan adalah Cox proportional hazards, dengan seluruh kovariat diperlakukan sebagai baseline covariates.

4.3.1 Estimasi Model Cox dan Spesifikasi Analisis

Model Cox diestimasi menggunakan skala waktu ICULOS (jam sejak masuk ICU), dengan definisi event dan mekanisme censoring yang konsisten dengan analisis sebelumnya.

Kode: Estimasi Model Cox

cox_fit <- coxph(
  Surv(time_to_event, event) ~
    Age + Gender +
    HR_mean_12h +
    MAP_min_12h +
    Temp_max_12h +
    Resp_mean_12h,
  data = survival_df
)

Seluruh kovariat dimasukkan secara simultan sebagai baseline covariates, dan model diestimasi menggunakan pendekatan partial likelihood, tanpa spesifikasi bentuk fungsi baseline hazard.

4.3.2 Ringkasan Output Estimasi Model Cox

Ringkasan hasil estimasi model Cox diperoleh melalui fungsi summary(cox_fit), yang memberikan informasi mengenai koefisien regresi, hazard ratio (HR), interval kepercayaan 95%, serta ukuran signifikansi statistik untuk masing-masing kovariat yang dimasukkan ke dalam model.

Model diestimasi menggunakan 40.282 pasien, dengan 2.925 kejadian sepsis selama periode observasi. Jumlah kejadian yang relatif memadai ini memungkinkan estimasi parameter model dilakukan secara stabil pada tingkat multivariat.

Kode: Ringkasan Output Model

summary(cox_fit)
## Call:
## coxph(formula = Surv(time_to_event, event) ~ Age + Gender + HR_mean_12h + 
##     MAP_min_12h + Temp_max_12h + Resp_mean_12h, data = survival_df)
## 
##   n= 40282, number of events= 2925 
## 
##                    coef exp(coef)  se(coef)      z Pr(>|z|)    
## Age            0.002065  1.002067  0.001182  1.747  0.08070 .  
## Gender         0.106930  1.112856  0.037789  2.830  0.00466 ** 
## HR_mean_12h    0.007231  1.007258  0.001360  5.317 1.05e-07 ***
## MAP_min_12h   -0.017467  0.982684  0.001759 -9.928  < 2e-16 ***
## Temp_max_12h   0.307105  1.359484  0.030412 10.098  < 2e-16 ***
## Resp_mean_12h  0.038299  1.039042  0.004777  8.017 1.08e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##               exp(coef) exp(-coef) lower .95 upper .95
## Age              1.0021     0.9979    0.9997    1.0044
## Gender           1.1129     0.8986    1.0334    1.1984
## HR_mean_12h      1.0073     0.9928    1.0046    1.0099
## MAP_min_12h      0.9827     1.0176    0.9793    0.9861
## Temp_max_12h     1.3595     0.7356    1.2808    1.4430
## Resp_mean_12h    1.0390     0.9624    1.0294    1.0488
## 
## Concordance= 0.649  (se = 0.007 )
## Likelihood ratio test= 402.6  on 6 df,   p=<2e-16
## Wald test            = 449.7  on 6 df,   p=<2e-16
## Score (logrank) test = 449.9  on 6 df,   p=<2e-16

Estimasi Koefisien dan Hazard Ratio

Hasil estimasi menunjukkan bahwa sebagian besar kovariat baseline memiliki asosiasi statistik yang signifikan dengan waktu hingga kejadian sepsis pertama.

  • Age memiliki estimasi HR sebesar 1.002 (95% CI: 0.999–1.004) dengan nilai p sebesar 0.081. Interval kepercayaan yang melintasi nilai 1 serta nilai p yang berada di atas batas signifikansi konvensional menunjukkan bahwa, dalam model multivariat ini, tidak terdapat bukti statistik yang kuat mengenai asosiasi antara usia dan waktu hingga kejadian sepsis.

  • Gender menunjukkan estimasi HR sebesar 1.113 (95% CI: 1.033–1.198) dengan nilai p 0.0047, yang mengindikasikan adanya asosiasi statistik yang signifikan antara jenis kelamin dan hazard kejadian sepsis secara rata-rata sepanjang waktu observasi.

  • HR_mean_12h memiliki estimasi HR sebesar 1.007 (95% CI: 1.005–1.010) dengan nilai p < 0.001. Interval kepercayaan yang sempit dan tidak melintasi nilai 1 menunjukkan bahwa asosiasi statistik kovariat ini dengan hazard kejadian sepsis terestimasi secara presisi dalam konteks model multivariat.

  • MAP_min_12h menunjukkan estimasi HR sebesar 0.983 (95% CI: 0.979–0.986) dengan nilai p < 0.001. Nilai HR yang berada di bawah 1 mengindikasikan adanya asosiasi statistik terbalik antara nilai MAP minimum pada 12 jam pertama ICU dan hazard kejadian sepsis secara rata-rata.

  • Temp_max_12h memiliki estimasi HR sebesar 1.359 (95% CI: 1.281–1.443) dengan nilai p < 0.001, yang merupakan salah satu asosiasi statistik paling kuat dalam model ini, sebagaimana tercermin dari besarnya nilai HR dan tingkat signifikansi statistiknya.

  • Resp_mean_12h menunjukkan estimasi HR sebesar 1.039 (95% CI: 1.029–1.049) dengan nilai p < 0.001, yang mengindikasikan adanya asosiasi statistik yang konsisten antara rerata laju respirasi pada 12 jam pertama ICU dan waktu hingga kejadian sepsis.

Seluruh estimasi di atas dilaporkan sebagai asosiasi statistik multivariat, tanpa implikasi kausal maupun prediktif.

Ukuran Kesesuaian Model dan Signifikansi Global

Model Cox yang diestimasi memiliki nilai concordance sebesar 0.649 (SE = 0.007), yang menunjukkan kemampuan diskriminasi model pada tingkat moderat dalam membedakan urutan waktu kejadian sepsis antar pasien.

Uji signifikansi global model menunjukkan hasil sebagai berikut:

  1. Likelihood Ratio Test: \(\chi^2 = 402.6, \ p < 2e-16\)

  2. Wald Test: \(\chi^2 = 449.7, \ p < 2e-16\)

  3. Score (logrank) Test: \(\chi^2 = 449.9, \ p < 2e-16\)

Hasil uji-uji tersebut menunjukkan bahwa, secara keseluruhan, model multivariat yang dibentuk memberikan peningkatan kecocokan yang signifikan dibandingkan dengan model tanpa kovariat.

Meskipun sebagian besar kovariat menunjukkan asosiasi statistik yang signifikan dan model secara keseluruhan memiliki signifikansi global yang kuat, interpretasi hasil estimasi hazard ratio perlu dilakukan secara hati-hati. Validitas penuh dari estimasi hazard ratio bergantung pada pemenuhan asumsi proportional hazards, yang pada analisis selanjutnya ditunjukkan tidak sepenuhnya terpenuhi. Oleh karena itu, hasil estimasi pada subbab ini dilaporkan sebagai ringkasan asosiasi statistik rata-rata sepanjang waktu observasi, dan tidak diinterpretasikan sebagai efek yang bersifat konstan atau kausal.

4.3.3 Interpretasi Statistik Estimasi Hazard Ratio (Terbatas)

Secara deskriptif, hasil estimasi menunjukkan bahwa sebagian besar kovariat baseline memiliki asosiasi statistik dengan waktu hingga kejadian sepsis. Kovariat dengan nilai HR lebih besar dari 1 menunjukkan asosiasi dengan hazard kejadian sepsis yang lebih tinggi secara rata-rata sepanjang waktu observasi, sedangkan kovariat dengan HR lebih kecil dari 1 menunjukkan asosiasi sebaliknya.

Namun, interpretasi ini bersifat terbatas, karena validitas penuh dari estimasi hazard ratio bergantung pada pemenuhan asumsi proportional hazards. Oleh karena itu, hasil estimasi pada tabel di atas diperlakukan sebagai ringkasan asosiasi statistik rata-rata, bukan sebagai efek konstan sepanjang waktu.

4.3.4 Pengujian Asumsi Proportional Hazards

Pemenuhan asumsi proportional hazards (PH) merupakan prasyarat utama dalam interpretasi model Cox proportional hazards, karena asumsi ini menyatakan bahwa rasio hazard antar individu bersifat konstan sepanjang waktu observasi. Untuk mengevaluasi asumsi tersebut, dilakukan pengujian menggunakan residual Schoenfeld melalui fungsi cox.zph.

Kode: Uji Asumsi Proportional Hazards

ph_test <- cox.zph(cox_fit)
print(ph_test)
##                chisq df       p
## Age             3.77  1  0.0520
## Gender          7.53  1  0.0061
## HR_mean_12h    35.42  1 2.7e-09
## MAP_min_12h    20.99  1 4.6e-06
## Temp_max_12h   24.98  1 5.8e-07
## Resp_mean_12h  66.25  1 4.0e-16
## GLOBAL        113.79  6 < 2e-16
plot(ph_test)

Interpretasi Hasil Uji Asumsi PH

Hasil uji Schoenfeld residual menunjukkan bahwa asumsi proportional hazards tidak terpenuhi secara keseluruhan, sebagaimana ditunjukkan oleh nilai uji global yang sangat signifikan (χ² = 113.79; p < 2 × 10⁻¹⁶). Hal ini mengindikasikan bahwa, secara kolektif, efek kovariat dalam model Cox tidak bersifat konstan sepanjang waktu observasi.

Pada tingkat kovariat individual, sebagian besar variabel menunjukkan nilai p < 0.05, yang mengindikasikan adanya pelanggaran asumsi PH, antara lain:

  • HR_mean_12h, MAP_min_12h, Temp_max_12h, dan Resp_mean_12h menunjukkan pelanggaran asumsi PH yang kuat, sebagaimana tercermin dari nilai χ² yang besar dan p-value yang sangat kecil.

  • Gender juga menunjukkan pelanggaran asumsi PH secara statistik (p = 0.006), meskipun dengan tingkat signifikansi yang lebih moderat dibandingkan kovariat fisiologis.

  • Age menunjukkan nilai p yang berada pada batas signifikansi (p = 0.052), yang mengindikasikan tidak adanya bukti kuat pelanggaran asumsi PH untuk variabel usia secara individual. Namun demikian, hasil ini tetap perlu dipertimbangkan dalam konteks pelanggaran asumsi secara global.

Implikasi Statistik dari Pelanggaran Asumsi PH

Pelanggaran asumsi proportional hazards, baik secara global maupun pada sebagian besar kovariat, memiliki implikasi langsung terhadap interpretasi hasil model Cox. Secara khusus, temuan ini menunjukkan bahwa rasio hazard yang diestimasi tidak dapat diasumsikan konstan sepanjang waktu observasi, dan bahwa kekuatan asosiasi antara kovariat baseline dan hazard kejadian sepsis bervariasi seiring waktu.

Oleh karena itu, dalam studi ini:

  1. Estimasi hazard ratio dilaporkan sebagai ringkasan asosiasi statistik rata-rata sepanjang periode observasi.

  2. Hasil model Cox tidak diinterpretasikan sebagai estimasi efek waktu-invarian.

  3. Tidak dilakukan penarikan kesimpulan kausal maupun prediktif berdasarkan hasil model.

Pendekatan ini memastikan bahwa pelaporan hasil tetap konsisten dengan karakteristik data dan keterbatasan asumsi model yang digunakan.

4.3.5 Analisis Visual Residual Schoenfeld

Analisis visual residual Schoenfeld dilakukan untuk melengkapi hasil uji statistik pada Subbab 3.3.4 dengan memberikan evaluasi grafis terhadap kestasioneran koefisien regresi sepanjang waktu observasi.

Berdasarkan plot residual Schoenfeld untuk seluruh kovariat dalam model, sebagian besar residual tidak tersebar secara acak di sekitar nol, melainkan menunjukkan pola sistematis atau tren terhadap waktu, yang secara visual mengindikasikan pelanggaran asumsi proportional hazards.

Secara rinci:

  • Kovariat HR_mean_12h, Temp_max_12h, dan Resp_mean_12h memperlihatkan perubahan residual yang jelas terhadap waktu, yang konsisten dengan nilai p yang sangat signifikan pada uji Schoenfeld residual.

  • Kovariat MAP_min_12h dan Gender menunjukkan penyimpangan dari pola acak dengan intensitas yang relatif lebih moderat, sejalan dengan tingkat signifikansi statistik yang lebih rendah dibandingkan kovariat fisiologis utama.

  • Kovariat Age memperlihatkan pola residual yang relatif lebih stabil, yang konsisten dengan hasil uji statistik yang berada pada batas signifikansi.

Dengan demikian, analisis visual residual Schoenfeld menguatkan hasil uji statistik, di mana pelanggaran asumsi proportional hazards teridentifikasi baik secara kuantitatif maupun grafis, baik pada tingkat global maupun pada sebagian besar kovariat individual.

4.4 Sintesis Hasil Analisis Survival

Secara keseluruhan, analisis survival yang dilakukan dalam studi ini menghasilkan tiga temuan utama yang merangkum hasil pada seluruh subbab sebelumnya.

Pertama, distribusi waktu hingga kejadian sepsis menunjukkan pola penurunan probabilitas bebas sepsis yang berlangsung secara gradual sepanjang masa perawatan ICU. Temuan ini menggambarkan bahwa kejadian sepsis terakumulasi secara bertahap selama periode observasi, sebagaimana ditunjukkan oleh estimasi Kaplan–Meier.

Kedua, analisis multivariat menggunakan model Cox proportional hazards mengidentifikasi adanya asosiasi statistik antara kovariat baseline yang diekstraksi dari 12 jam pertama perawatan ICU dan waktu hingga kejadian sepsis. Model ini menunjukkan kemampuan diskriminasi yang berada pada tingkat moderat dalam membedakan urutan waktu kejadian antar pasien, sehingga memberikan gambaran multivariat yang melengkapi analisis deskriptif.

Ketiga, pengujian asumsi proportional hazards mengungkapkan keterbatasan pada model Cox standar, baik secara global maupun pada sebagian besar kovariat individual. Temuan ini menunjukkan bahwa rasio hazard tidak dapat diasumsikan konstan sepanjang waktu observasi, sehingga interpretasi hasil model dibatasi pada asosiasi statistik rata-rata dan dilakukan secara hati-hati.

Sintesis ini menegaskan bahwa seluruh hasil analisis yang disajikan pada Bab 3 bersifat deskriptif dan asosiatif, serta tidak dimaksudkan untuk penarikan kesimpulan kausal atau prediktif. Hasil-hasil tersebut menjadi dasar statistik yang koheren untuk pembahasan lebih lanjut pada bab berikutnya.

5 Kesimpulan

Penelitian ini menerapkan analisis survival untuk mengevaluasi waktu hingga kejadian sepsis pertama pada pasien ICU dengan unit analisis pada tingkat pasien dan waktu kejadian diukur menggunakan ICULOS. Pendekatan Kaplan–Meier digunakan untuk menggambarkan distribusi waktu bebas sepsis secara deskriptif, sementara model Cox proportional hazards digunakan untuk menilai asosiasi statistik antara kovariat baseline yang diukur pada 12 jam pertama perawatan ICU dan waktu kejadian sepsis.

Hasil analisis menunjukkan bahwa kejadian sepsis pertama terjadi secara bertahap sepanjang masa perawatan ICU, mencerminkan heterogenitas waktu risiko antar pasien. Model Cox mengidentifikasi adanya asosiasi statistik antara sejumlah kovariat baseline dan waktu kejadian sepsis, namun pengujian asumsi proportional hazards menunjukkan bahwa asumsi tersebut tidak sepenuhnya terpenuhi. Konsekuensinya, estimasi hazard ratio ditafsirkan sebagai efek rata-rata sepanjang waktu observasi dan tidak merepresentasikan efek yang konstan atau spesifik terhadap waktu tertentu.

Secara metodologis, penelitian ini menegaskan bahwa analisis survival dalam konteks data klinis observasional dapat memberikan gambaran empiris yang bermakna mengenai dinamika waktu kejadian suatu kondisi klinis, selama interpretasi dibatasi pada tingkat deskriptif dan asosiatif. Tidak terdapat dasar untuk penarikan kesimpulan kausal, pengembangan model prediktif, maupun aplikasi klinis langsung dari hasil analisis ini.

Dengan demikian, kontribusi utama penelitian ini terletak pada penyajian kerangka analisis survival yang konsisten, transparan, dan defensible secara statistik untuk mengkaji kejadian sepsis pertama di ICU. Hasil yang diperoleh dapat menjadi dasar metodologis bagi penelitian lanjutan yang dirancang secara khusus untuk mengeksplorasi dinamika waktu yang lebih kompleks atau tujuan inferensial yang berbeda, dengan tetap memperhatikan asumsi dan keterbatasan analisis yang relevan.

6 Daftar Pustaka

[1] M. Singer et al., “The Third International Consensus Definitions for Sepsis and Septic Shock (Sepsis-3),” JAMA, vol. 315, no. 8, pp. 801–810, 2016.

[2] C. S. Seymour et al., “Time to Treatment and Mortality during Mandated Emergency Care for Sepsis,” New England Journal of Medicine, vol. 376, no. 23, pp. 2235–2244, 2017.

[3] D. G. Kleinbaum and M. Klein, Survival Analysis: A Self-Learning Text, 3rd ed. New York: Springer, 2012.

[4] A. E. Johnson et al., “A Comparative Analysis of Sepsis Identification Methods in the ICU,” Critical Care Medicine, vol. 46, no. 4, pp. 494–501, 2018.
PhysioNet Sepsis Challenge 2019 Dataset. Available: https://physionet.org/content/challenge-2019/1.0.0/

[5] E. L. Kaplan and P. Meier, “Nonparametric Estimation from Incomplete Observations,” Journal of the American Statistical Association, vol. 53, no. 282, pp. 457–481, 1958.

[6] D. R. Cox, “Regression Models and Life-Tables,” Journal of the Royal Statistical Society: Series B, vol. 34, no. 2, pp. 187–220, 1972.

[7] J. P. Kleinbaum and M. Klein, Survival Analysis: A Self-Learning Text, 3rd ed. New York: Springer, 2012.

7 Contact Me

7.1 Kontak & Kolaborasi

Laporan ini menyajikan temuan dari Analisis Survival pada Pasien Sepsis, mencakup estimasi probabilitas kelangsungan hidup menggunakan metode Kaplan-Meier serta identifikasi faktor risiko melalui model Cox Proportional Hazards.

Jika Anda memiliki pertanyaan terkait analisis ini dan ingin memberikan masukan terhadap hasil temuan, atau tertarik untuk berdiskusi lebih lanjut mengenai implementasi data science dalam domain kesehatan (bioinformatika) atau di bidang lain nya, silakan hubungi saya melalui kanal berikut:

7.2 Kolaborasi Riset

Saya sangat terbuka untuk diskusi dan kolaborasi dalam pengembangan proyek berbasis Data Science, Machine Learning, dan Analisis Data Statistik untuk kebutuhan riset kesehatan maupun bidang lainnya.

Terima Kasih! Terima kasih telah meluangkan waktu untuk meninjau proyek Sepsis Survival Analysis ini. Semoga wawasan yang dihasilkan dapat memberikan kontribusi positif dalam pemahaman data klinis.