Survival Analysis
Pendahuluan
Survival Analysis muncul karena faktor banyaknya kekhawatiran terhadap suatu hal yang mungkin bisa saja terjadi dan merugikan kehidupan. Melalui survival analysis ini, kita pastinya akan mempersiapkan perencanaan yang sangat matang hanya jika kita tahu kapan kemungkinan terburuk itu terjadi. Selain itu, kita juga ingin tahu faktor apa saja yang paling berkorelasi dengan bahaya tersebut. Pertanyaan pertama yang selalu akan muncul adalah seberapa lama sebuah objek akan bertahan? Jika saya mengetahui umur dari objek yang saya miliki, adakah kemungkinan untuk saya mengukur seberapa berharga atau bernilainya objek tersebut?
Survival Analysis diartikan sebagai metode statistika yang digunakan untuk menganalisis data-data longitudinal mengenai kejadian atau peristiwa, seperti:
- Berapa kemungkinan pasien akan selamat setelah pernyataan diagnosa dari seorang dokter?
- Berapa lama seorang pelanggan akan bertahan dengan produk yang kita hasilkan? Seberapa lama dari ia bergabung sampai pelanggan akan churn?
- Seberapa lama sebuah mesin produksi dapat bertahan, apakah setelah 3 tahun pemakaian?
- Berapa tingkat retensi yang dihasilkan dari channel pemasaran yang berbeda-beda?
Contoh di atas sangat menarik untuk dibahas lebih lanjut. Untuk pemahaman yang lebih mendalam, di bawah ini akan dijelaskan konsep dasar dan cara kerja dari Survival Analysis dan bagaimana penerapannya di berbagai macam industri.
Konsep Peristiwa dan Waktu pada Survival Analysis
Survival Analysis lebih dikenal sebagai analisis waktu ke sebuah kejadian atau peristiwa (time to event). Dari definisi tersebut, kita dapat menyimpulkan bahwa kejadian atau peristiwa adalah sesuatu yang menarik untuk diperhatikan dan unsur waktu ditempatkan sebagai sesuatu yang vital pada Survival Analysis. Untuk memahami konsep kejadian/peristiwa dan waktu, berikut gambaran penerapan Survival Analysis di berbagai macam industri:
- Marketing Analysis: Evaluasi tingkat retensi pada setiap channel pemasaran. Seperti yang kita ketahui, sebuah perusahaan pasti memiliki beberapa layanan yang ditawarkan untuk pelanggan sesuai dengan target pemasaraan yang telah dibuat sebelumnya. Dalam kasus ini, peristiwa didefinisikan sebagai waktu di mana pelanggan berhenti berlangganan channel pemasaran. Waktu didefinisikan sebagai kapan pelanggan memulai layanan / langganan channel pemasaran. Skala waktu bisa berupa bulan ataupun minggu.
- Predictive Maintenance: Analisis digunakan untuk mengetahui masa berlaku untuk suku cadang/mesin mekanis. Hal ini tentunya sangat penting dilakukan mengingat penggunaan mesin pada sebuah produksi pasti memiliki masa untuk rusak. Peristiwa didefinisikan sebagai kejadian saat mesin rusak. Waktu didefinisikan sebagai kapan mesin dapat beroperasi secara berkelanjutan pada proses produksi. Skala waktu bisa berupa minggu, bulan, maupun tahun.
Censoring
Metode Survival Analysis sangat mirip dengan regresi. Lantas, mengapa menggunakan teknik pemodelan yang berbeda? Mengapa tidak menggunakan regresi linier saja?
Metode Survival Analysis secara eksplisit dirancang untuk menangani data tentang peristiwa terminal di mana beberapa pengamatan dapat mengalami peristiwa tersebut dan yang lainnya kemungkinan tidak. Pengamatan semacam itu disebut "censored observation". Misalnya, variabel target mewakili waktu menuju peristiwa terminal, dan durasi studi dibatasi waktunya. Oleh karena itu, beberapa observasi tidak akan mengalami kejadian tersebut. Beberapa peralatan kemungkinan akan gagal selama pemantauan kinerja, tetapi beberapa tidak mengalami kegagalan tersebut. Berikut penjelasan yang dapat memudahkan Anda untuk memahami censoring lebih lanjut.
Ada dua jenis censoring, yaitu right censor dan left censor:
- Right censor merupakan jenis sensor yang paling umum terjadi saat pengamatan berakhir atau individu dihapus dari pengamatan sebelum peristiwa terjadi. Misalnya, beberapa individu mungkin masih hidup pada akhir uji pengamatan, atau mungkin keluar dari penelitian karena berbagai alasan selain kematian sebelum penelitian dihentikan.
- Left censor jika waktu awalnya dalam risiko tidak diketahui. Ini akan terjadi jika kita tidak tahu kapan individu pertama kali mengalami peristiwa yang diamati. Misalnya saat individu tersebut terjangkit suatu penyakit.
Censoring sedikit mempersulit estimasi fungsi survival. Oleh karenanya, kita membutuhkan teknik yang berbeda dari regresi linier. Dengan demikian, selain variabel target pada survival analysis kita memerlukan variabel status yang menunjukkan untuk setiap observasi apakah peristiwa tersebut telah terjadi atau tidak terjadi saat penyensoran dilakukan.
Mathematical Concept
PDF dan CDF
Misalkan $T$ adalah variabel acak kontinu positif yang merepresentasikan waktu sampai sebuah event terjadi. Probability density function (PDF) $f_T(t)$ menyatakan nilai probabilitas sebuah event terjadi pada setiap waktu $t$ untuk variabel acak $T$. Cumulative distribution function (CDF) $F_T(t)$ adalah fungsi yang menjumlahkan nilai probabilitas sebuah event terjadi sampai dengan waktu $t$ untuk variabel acak $T$. Secara matematis dapat ditulis sebagai $F_T(t) = P(T < t) = \int_0^t f_T(s)\ ds$
Survival Function
Fungsi survival $S(t)$ mendefinisikan probabilitas event belum terjadi atau objek dapat bertahan sampai dengan waktu $t$. Secara matematis dapat ditulis sebagai $S(t) = P(T \geq t)$, dengan sifat:
- $0 \leq S(t) \leq 1$
- $S(t) = 1 - F_T(t)$ dimana $F_T(t)$ adalah CDF untuk $T$
- $F_T(t)$ adalah fungsi monoton naik, maka $S(t)$ adalah fungsi monoton turun
Hazard Function
Fungsi hazard $h(t)$ mendefinisikan probabilitas bersyarat bahwa event akan terjadi pada interval $[t, t+dt)$ diketahui bahwa objek masih bertahan hidup. Secara matematis dapat ditulis sebagai:
$h(t) = \displaystyle{\lim_{dt \to 0} \frac{P(t \leq T < t+dt\ |\ T \geq t)}{dt}}$
Dapat dibuktikan secara matematis (terlampir) bahwa:
$h(t) = \dfrac{f_T(t)}{S(t)} = - \dfrac{d}{dt} \ln S(t)$
Jadi, fungsi survival dan hazard dapat dihubungkan melalui formula:
$S(t) = e^{-\int_0^t h(s)\ ds}$
Didefinisikan $H(t) = \int_0^t h(s)\ ds$ sebagai cumulative hazard function.
Risk Score
Namun, fungsi hazard sangat jarang digunakan dalam bentuk aslinya. Biasanya, sumbu $t$ didiskritisasi menjadi $J$ bagian dan dihitung skor resiko $r(x)$ untuk masing-masing sampel $x$:
$r(x) = \displaystyle{\sum_{j=1}^J H(t_j, x)}$
Semakin cepat sebuah objek mengalami event, maka semakin tinggi skor risiko yang dimiliki.
Predictive Maintenance
Predictive maintenance adalah sebuah strategi maintenance untuk memprediksi peluang kapan sebuah mesin akan rusak, hal ini dapat digunakan untuk membantu teknisi dalam melakukan perbaikan sebagai tindakan preventif atas kerusakan sebuah mesin. Menurut survey yang dilakukan oleh Deloitte, dengan adanya predictive maintenance analysis dapat mengurangi biaya maintenance peralatan pabrik hingga sebesar 40%.
Bagaimana cara kerja predictive maintenance?
Predictive maintenance dibangun berdasarkan analisa pada sebuah kondisi peralatan mesin yang dipantau secara real-time. Proses pemantauan dibantu oleh sensor pada mesin yang dapat menangkap informasi tekanan, kelembapan, dan temperature pada mesin, di mana beberapa faktor tersebut dapat digunakan untuk mengukur preforma sebuah mesin.
Real-time data yang ditangkap oleh beberapa sensor dikumpulkan yang kemudian disimpan ke dalam sebuah cloud. Data tersebut dapat kemudian dianalisis dan divisualisasikan ke dalam sebuah dashboard untuk ditampilkan kepada teknisi. Sampai disini, teknisi hanya mengetahui keadaan sebuah mesin saja. Lalu bagaimana dengan proses analisa prediksinya?
Untuk melakukan analisa predictive, dari data yang ada dilakukan analisis dan diterapkan algoritma machine learning yaitu survival analysis yang dapat menghasilkan sebuah model. Model tersebutlah yang dapat dijadikan parameter decision untuk menentukan peluang kerusakan sebuah mesin. Setelah model berhasil dibuat dan menghasilkan hasil yang tepat sesuai business question, seorang maintenance specialist dapat menentukan action plan selanjutnya untuk melakukan tindakan preventif pada kerusakan mesin.
Dataset Maintenance
Data Loading
Dengan adanya teknologi Internet of Things (IoT), data maintenance
dapat dihasilkan oleh berbagai sumber sensor pada mesin, komponen mekanis dan listrik, seperti tekanan, kelembapan, maupun temperatur.
Berikut adalah deskripsi data untuk maintenance
:
- Komponen Time
lifetime
: waktu aktif mesin, dalam satuan minggu
- Komponen Event
broken
: apakah mesin sudah rusak atau belum
- Komponen Feature
pressureInd
: indeks tekanan, pengukuran dari aliran cairan melalui pipa. Penurunan tekanan secara tiba-tiba dapat mengindikasikan kebocoranmoistureInd
: indeks kelembapan udara. Kelembapan yang berlebihan dapat menyebabkan jamur dan merusak peralatantemperatureInd
: indeks temperatur dari alat thermocouple. Temperatur yang tidak tepat dapat menyebabkan kerusakan sirkuit listrik, kebakaran, atau bahkan ledakanteam
: tim yang mengoperasikan mesinprovider
: nama produsen mesin
Exploratory Data Analysis
Sebelum dilakukannya modeling, alangkah lebih baik kita mengeksplorasi data maintenance
dalam bentuk visualisasi.
Machine Record
Pertama, mari kita lihat berapa banyak data yang telah direkam untuk masing-masing team
dan provider
.
Tidak banyak perbedaan observasi yang direkam antara masing-masing team
dan provider
, dengan kata lain distribusinya cukup seragam. Selanjutnya, mari kita plot distribusi pressureInd
, moistureInd
, dan temperatureInd
untuk masing-masing provider
dan status broken
.
Secara sekilas dapat disimpulkan bahwa plot berbentuk kurva lonceng menunjukkan ketiga variabel tersebut berdistribusi normal, dan distribusinya kurang lebih mirip untuk broken
maupun tidak broken
.
Kita dapat melakukan pengujian hipotesis untuk menguji apakah kedua distribusi tersebut secara statistik sama atau tidak.
Mann-Whitney U: Menguji apakah distribusi dua sampel independen sama atau tidak.
Asumsi:
- Pengamatan di setiap sampel bersifat independen dan terdistribusi secara identik.
- Pengamatan di setiap sampel dapat diberi peringkat.
Hipotesis:
- $H_0$: distribusi kedua sampel sama.
- $H_1$: distribusi kedua sampel tidak sama.
Menggunakan alpha 5%, mayoritas distribusi adalah sama kecuali untuk pressureInd
dari Provider4.
Hal ini mengindikasikan bahwa artinya kita tidak bisa hanya mengandalkan variabel numerik dan provider
saja dalam tahap pemodelan. Kita harus melibatkan juga komponen waktu lifetime
ketika ingin memprediksi status broken
suatu mesin.
Correlation Heatmap
Di sini, kita tertarik untuk melihat korelasi antara variabel numerik dalam data maintenance
. Dari koefisien korelasi, ternyata tidak terdapat korelasi yang kuat yang menunjukkan tidak adanya hubungan linier antara semua variabel numerik.
Machine Status (Time to Event)
Mari kita gunakan komponen waktu lifetime
untuk mengamati kapan mesin rusak.
Ternyata kerusakan mesin mulai terjadi ketika mesin telah aktif setidaknya selama 60 minggu. Lalu, bagaimana jika kita plot di atas secara mendetail untuk masing-masing team
dan provider
?
Kita dapat dengan jelas melihat waktu awal kapan terjadi kegagalan mesin untuk masing-masing provider
. Kita dapat mengurutkan provider
nya berdasarkan kerusakan mesin yang paling cepat: Provider3, Provider1, Provider4, diikuti oleh Provider2.
Di sisi lain, apabila didetailkan untuk masing-masing team
, terlihat bahwa waktu awal kegagalan mesin untuk team
C lebih cepat dibandingkan dua team
lainnya.
Agar lebih yakin dengan kedua visualisasi di atas, mari lakukan pengujian hipotesis sebagai berikut:
Chi-Squared: Menguji apakah dua variabel kategori terkait atau independen.
Asumsi:
- Pengamatan yang digunakan dalam perhitungan tabel kontingensi bersifat independen.
- 25 atau lebih data di setiap nilai pada tabel kontingensi.
Hipotesis:
- $H_0$: dua sampel saling independen.
- $H_1$: dua sampel saling dependen.
Dengan menggunakan alpha 5%, kita dapat menyimpulkan bahwa provider
dependen dengan statusbroken
mesin, sedangkan team
independen.
Kaplan-Meier
Kaplan-Meier menjadi metode yang paling sederhana dalam mengestimasi ketahanan hidup (fungsi survival) dari waktu ke waktu untuk masing-masing kategori pada sebuah populasi. Perhitungan estimasi dalam metode Kaplan-Meier melibatkan probabilitas terjadinya event sampai waktu tertentu, kemudian berturut-turut dikalikan probabilitas sebelumnya untuk menghasilkan estimasi terakhir. Secara matematis dapat dituliskan sebagai berikut:
$S(t) = \displaystyle{\prod_{j=1}^k \frac{n_j - d_j}{d_j}}$
dengan $n_j$ menyatakan banyaknya individu pada waktu $t$ dan $d_j$ adalah banyaknya individu yang mengalami event pada waktu $t$.
Plot di atas sejalan dengan temuan kita sebelumnya di mana mesin tercepat yang mengalami kegagalan adalah dari Provider3 dan yang paling lambat adalah Provider2.
Kita dapat melakukan uji hipotesis agar lebih yakin apakah masing-masing provider
memiliki survival function yang berbeda.
Log-Rank: Menguji apakah dua proses intensitas berbeda. Artinya, diberikan dua rangkaian peristiwa, uji apakah proses menghasilkan data berbeda secara statistik.
Hipotesis:
- $H_0$: dua fungsi survival sama.
- $H_1$: dua fungsi survival berbeda.
Ternyata semua fungsi survival berbeda signifikan secara statistik. Kami dapat memberi tahu tim maintenance untuk lebih memperhatikan mesin dari Provider2, karena memerlukan perawatan lebih awal untuk mencegah kegagalan yang tak terduga.
Plot di atas juga selaras dengan temuan sebelumnya di mana fungsi survival mesin yang dioperasikan oleh team
C berbeda dengan A dan B.
Mari kita lakukan log-rank test untuk visualisasi di atas:
Ternyata fungsi survival mesin yang dioperasikan oleh TeamC sangat berbeda dengan TeamA dan TeamB. Tim maintenance dapat mengawasi apakah tim C sudah mengoperasikan mesin dengan benar atau belum, kemudian dapat mengadakan pelatihan tentang pengoperasian mesin untuk mencegah kegagalan yang terlalu cepat.
Pre-processing
Pada tahap ini, kita akan mempersiapkan data sebelum modeling sebagai berikut:
- One-hot encoding untuk kolom kategorikal
- Cross-validation, train-test splitting
- Membagi data menjadi tiga komponen: feature, time, event
Lakukan one-hot encoding untuk kolom provider
dan team
dengan pd.get_dummies()
.
Train-test splitting dengan proporsi 80-20:
Berbeda dari model machine learning pada umumnya, yang hanya membagi data menjadi feature X
dan target y
.
Pada survival analysis kita membagi data menjadi tiga komponen:
- Feature
X
berisi kolom-kolom prediktor numerikal maupun kategorikal - Time
T
berisi kolom waktu kejadianE
terjadi - Event
E
berisi kelas kejadian, pada kasus ini apakah mesin rusak atau tidak
Modelling
Cox Proportional Hazard (CoxPH) Model
Model CoxPH banyak digunakan dalam statistik untuk multivariat survival function karena implementasinya yang relatif mudah dan interpretabilitas yang tinggi. CoxPH menggambarkan hubungan antara distribusi survival function dan kovariat. Variabel predictor diekspresikan oleh fungsi hazard sebagai berikut:
$$\lambda(t|x) = \lambda_0(t)\ e^{\beta_1x_1 + ... + \beta_nx_n}$$
Metode CoxPH merupakan model yang semi-parametrik karena terdiri dari 2 komponen:
- Komponen non-parametrik $$\lambda_0(t)$$ yang disebut sebagai baseline hazard, yaitu hazard bila semua kovariat bernilai nol.
- Komponen parametrik $$e^{\beta_1x_1 + ... + \beta_nx_n}$$ disebut sebagai partial hazard yang tidak bergantung dengan waktu.
- Secara umum, model Cox membuat estimasi fungsi log-risk $$\lambda(t|x)$$ sebagai kombinasi linier dari kovariat statis dan baseline hazard.
Berikut di bawah ini adalah implementasi dari model CoxPH pada survival analysis:
Interpretasi Model CoxPH
Nilai coef
pada hasil summary model dapat diinterpretasi layaknya model regresi.
Nilai positif meningkatkan nilai baseline hazard $$\lambda_0(t)$$ apabila nilainya diperbesar dan menyatakan bahwa predictor tersebut meningkatkan resiko terjadinya event, dalam kasus ini broken
.
Sebaliknya, nilai negatif akan memperkecil resiko terjadinya event apabila nilainya diperbesar.
Asumsi pada model CoxPH adalah asumsi proporsionalitas, yaitu fungsi hazard untuk dua objek akan selalu proporsional dalam waktu yang sama dan rasionya tidak berubah dari awal hingga akhir waktu.
Contohnya: jika mesin A memiliki resiko broken
sebesar 2x dibandingkan mesin B, maka untuk di waktu selanjutnya perbandingan resiko tetaplah 2x lipatnya.
Sifat model CoxPH:
- Independence of observation: Waktu terjadinya sebuah event pada satu objek akan independent dengan objek yang lain.
- Tidak ada kurva hazard tidak berpotongan satu sama lain.
- Adanya efek perkalian linier dari perkiraan nilai kovariat pada fungsi hazard.
Performance Metric
Pengukuran tingkat kebaikan model survival analysis dapat menggunakan 2 macam cara, yaitu menggunakan Concordance index (C-index) dan Integrated Brier Score (IBS).
C-index adalah nilai yang menunjukkan kemampuan model untuk memberikan peringkat survival time dengan benar berdasarkan skor resiko individu. C-index adalah generalisasi dari nilai AUC. Semakin C-index mendekati nilai satu menunjukkan model semakin baik dalam memprediksi, sedangkan ketika nilainya 0.5 maka mewakili prediksi yang acak.
IBS digunakan untuk mengukur rata-rata perbedaan antara label event dengan probabilitas survival yang diprediksi. Sebagai tolak ukur, model yang baik akan memiliki skor Brier di bawah 0.25. Nilai IBS selalu memiliki rentang antara 0-1, dengan 0 sebagai nilai terbaik.
Multi Task Logistic Regression Models
Model Multi Task Logistic Regression (MTLR) pertama kali dikenalkan oleh Chun-Nam Yu pada tahun 2011 untuk memprediksi waktu kelangsungan hidup pada pasien penderita cancer (survival analysis). Model ini merupakan alternative dari model Cox Proportional Hazard yang masih memiliki beberapa kekurangan salah satunya yaitu, model Cox bekerja menggunakan hazard function daripada survival function, sehingga model tersebut kurang dapat memberikan prediksi yang tepat untuk menganalisa tingkat harapan hidup. Selain itu, apabila dibandingkan dengan model Cox, MTLR dapat menghasilkan akurasi yang signifikan lebih baik.
MTLR memiliki 2 macam pendekatan untuk proses implementasinya dalam melakukan survival analysis modelling. Model yang pertama yaitu Linear-Multi Task Logistic Regression dan model yang kedua adalah Neural-Multi Task Logistic Regression. Berikut di bawah ini adalah implementasi dari kedua model tersebut:
Linear-Multi Task Logistic Regression
Linear-Multi Task Logistic Regression adalah sekumpulan model logistic regression yang dibangun pada interval waktu berbeda untuk melakukan estimasi kemungkinan kejadian terjadi di rentang waktu tersebut.
Beberapa tahapan untuk proses Linear MTLR dapat didefinisikan sebagai berikut :
Melakukan pembagian variable waktu menjadi beberapa interval tertentu
Membangun model logistic regression pada setiap interval waktu
Menghitung loss function untuk menentukan model yang optimum
Modelling Linear-Multi Task Logistic Regression
Pada tahap modelling ini, dibuat sebuah model MLTR dengan jumlah bins logistic regression sebanyak 100 model. Optimizer yang digunakan adalah adamax dengan jumlah iterasi epoch sebanyak 50 kali perulangan.
Performance Metric
Result di atas menunjukkan bahwa model Linear MTLR memiliki nilai c-index=0.938 dan nilai ibs=0.04. Dimana ketika nilai c-index semakin mendekati 1 dan nilai ibs semakin mendekati 0, maka model dapat dikatakan memiliki hasil prediksi yang sangat baik.
Neural-Multi Task Logistic Regression
Neural-Multi task Logistic Regression (N-MTLR) merupakan model yang dikembangkan dari model MTLR sebelumnya dengan alasan bahwa model terdahulu (CoxPH dan MTLR biasa) gagal menangkap elemen nonlinier dari data dan akibatnya berhenti menghasilkan performa yang memuaskan. Model ini didukung oleh arsitektur deep learning. N-MTLR cukup baik digunakan dan bisa mengatasi kekurangan dari model sebelumnya.
Pada model N-MTLR ditambahkan 2 fitur yang merupakan peningkatan dari model MTLR sebelumnya, yaitu:
N-MTLR menggunakan kerangka kerja pembelajaran yang mendalam melalui multi-layer perceptron (MLP). Dengan mengganti inti linear, maka model ini lebih fleksibel karena tidak akan bergantung pada asumsi seperti model CoxPH.
Model diimplementasikan dengan Python menggunakan library open-source TensorFlow dan Keras sehingga memungkinkan pengguna untuk mengkombinasikan dengan banyak teknik dalam deep learning seperti:
- Initialization Scheme : Xavier uniform, Xavier gaussian, dll
- Optimization Scheme : Adam, RMSprop, dll
- Activation function : SeLU, ReLU, Softplus, tanh, dll
- Miscellaneous Operation : Batch Normalization, Dropout, dll
Model Comparison
Sampai pada tahap ini, kita telah membangun 3 model, yaitu model CoxPH, L-MTLR, dan N-MTLR. Performa dari masing-masing model tersebut dapat dijelaskan pada tabel di bawah ini.
Mengacu pada nilai C-index, kita bisa melihat bahwa model CoxPH memiliki performa tertinggi dibanding model lain yaitu sebesar 0.96. Akan tetapi jika dilihat dari errornya, ternyata model ini justru memiliki nilai RMSE tertinggi dibanding model lainnya. Jadi kita bisa mengatakan bahwa model CoxPH tidak terlalu baik dalam memprediksi karena bias yang tinggi ini bisa mengindikasikan adanya overvitting pada model. Sama halnya seperti model CoxPH, model L-MTLR juga memiliki performa C-Index yang cukup baik akan tetapi error yang dihasilkan masih lebih besar dari model N-MTLR. Sehingga pada kasus ini, kita menggunakan model N-MTLR sebagai model terbaik karena dilihat dari segi nilai C-Index yang cukup bagus yaitu 0.85 dan nilai error yang paling kecil yaitu 2.275 dibanding model prediktif lainnya.
Results
Risk Score
Pada tahap evaluasi model, kita telah mendapat model yang terbaik yaitu N-MTLR. Model ini akan digunakan untuk prediksi secara individual dan pengelompokan individu berdasarkan nilai risk score mereka.
Langkah pertama, kita akan menghitung risk score dari masing masing individu/mesin. Nilai risk score ini nantinya akan digunakan untuk mrlakukan pengelompokan baik melihat dari distribusi score ataupun metode pengelompokan lainnya.
Pada kasus ini, kita mengelompokkan risk score menggunakan K-Means. Dari hasil pengelompokan, diperoleh 3 cluster yaitu low, medium, dan high. Karena nilai C-index cukup tinggi dan error model rendah, model bisa dikatakan cukup baik dan sempurna dalam menentukan peringkat waktu kelangsungan hidup dari individu acak pada setiap kelompok, sehingga didapatkan bahwa $t{high}<t{medium}<t_{low}$
Predicted Survival Function
Berikut adalah fungsi survival untuk semua record dengan status broken
pada X_test
untuk masing-masing risk group:
Plot di atas menunjukkan fungsi survival untuk ketiga risk group dengan mengambil 1 random record mesin.
Seperti yang dapat dilihat, model berhasil memprediksi kejadian broken
dengan sempurna, terjadi penurunan nilai survival secara tiba-tiba, sesuai dengan garis vertikal yang merupakan waktu broken
sesungguhnya.
Lampiran
Pembuktian matematis untuk hazard function
Didefinisikan bahwa $h(t) = \displaystyle{\lim_{dt \to 0} \frac{P(t \leq T < t+dt\ |\ T \geq t)}{dt}}$
Sesuai dengan aturan probabilitas bersyarat $P(A|B) = \dfrac{P(A \cap B)}{P(B)}$ maka:
$h(t) = \displaystyle{\lim_{dt \to 0} \frac{P({t \leq T < t+dt} \cap {T \geq t})}{P(T \geq t)\ dt}}$
- Dikarenakan $T \geq t$ adalah subset interval dari $t \leq T < t+dt$ maka $P({t \leq T < t+dt} \cap {T \geq t}) = P(t \leq T < t+dt)$
- Berdasarkan definisi dari CDF: $P(t \leq T < t+dt) = F_T(t+dt) - F_T(t)$
- Secara definsi: $P(T \geq t) = S(t)$
Dari ketiga hal di atas dapat ditulis: $h(t) = \dfrac{1}{S(t)}\ \displaystyle{\lim_{dt \to 0} \frac{F_T(t+dt) - F_T(t)}{dt}}$
Sesuai dengan definisi fungsi turunan: $h(t) = \dfrac{1}{S(t)}\ \dfrac{d}{dt}F_T(t)$
Menggunakan hubungan PDF dan CDF didapatkan persamaan pertama: $h(t) = \dfrac{f_T(t)}{S(t)}$
Menggunakan hubungan CDF dan fungsi survival didapatkan: $h(t) = \dfrac{1}{S(t)}\ \dfrac{d}{dt}1 - S(t) = -\dfrac{S'(t)}{S(t)}$
Sesuai dengan turunan fungsi logaritma $\dfrac{d}{dx} \ln f(x) = \dfrac{f'(x)}{f(x)}$, maka diperoleh persamaan kedua: $h(t) = - \dfrac{d}{dt} \ln S(t)$
References
- PySurvival package
- Lifelines: Introduction to Survival Analysis
- Deep Learning for Survival Analysis. Laura Löschmann, Daria Smorodina. (2020)
- Deep Neural Networks for Survival Analysis Based on a Multi-Task Framework. Fotso, S. (2018). arXiv:1801.05512.
- Multi-Task Logistic Regression (MTLR) model created by Yu, Chun-Nam, et al. in 2011
Present material (5W + 1H):
- What
- Apa itu Survival Analysis? (intinya memprediksi survival function, bukan hanya waktunya)
- Why
- Kenapa butuh Survival Analysis, tidak regresi atau klasifikasi aja? (censoring)
- Who
- Siapa yang membutuhkan Survival Analysis (implementasinya: Marketing Analysis, Predictive Maintenance)
- When
- Kapan Survival Analysis dapat digunakan? (refer ke dataset yang harus ada X, T, E)
- Where
- Di bidang mana saja Survival Analysis bisa diimplementasikan?
- How
- Bagaimana cara Survival Analysis bekerja? (Math concept -> Kaplan-Meier -> CoxPH -> MTLR)