Kamis

Model Cox Donor Darah Bagian 4

#bg1 Infografis Komik Sains: Analisis Survival Python

SIMULASI ANALISIS
PYTHON LIFELINES

UDD PMI Kota Cirebon - Data Donor 18-25 Tahun

PENGANTAR TEKNIS

Pustaka Lifelines adalah standar industri global untuk implementasi Cox Proportional Hazards (Cox PH). Mampu melakukan diagnostik asumsi hingga visualisasi survival tingkat lanjut.

LIFELINES v0.27+
4.1. PERSIAPAN LINGKUNGAN

Gunakan distribusi Anaconda pada workstation UDD PMI Cirebon. Instalasi dilakukan via terminal untuk menjamin semua dependensi matematika terpenuhi.

pip install pandas numpy matplotlib seaborn lifelines
> installing packages...
4.2. LANGKAH 1: MEMUAT DATA

Mengimpor mesin utama analisis data. Kita memanggil Pandas untuk struktur tabel dan Lifelines untuk model statistika survival.

import pandas as pd
import numpy as np
from lifelines import CoxPHFitter, KaplanMeierFitter

# Memuat data donor Cirebon
df = pd.read_csv('donor_cirebon_1825.csv')
.CSV
KONVERSI & USIA PRESISI

Data mentah seringkali berupa string. Kita mengubahnya menjadi objek Datetime untuk menghitung usia donor hingga hitungan desimal (365.25 hari/tahun).

df['TglLahir'] = pd.to_datetime(df['TglLahir'])
df['Usia_Presisi'] = (df['TglDonasi'] - df['TglLahir']).dt.days / 365.25
18.52 Yrs
CLEANING: FILTER & KATEGORI

Memastikan data berada dalam rentang 18-25 tahun dan menyeragamkan label Jenis Kelamin demi konsistensi mesin pembelajaran.

# Filter usia
df = df[(df.Usia >= 18) & (df.Usia < 26)]

# Normalisasi Gender
df['Gender'] = df['Gender'].replace({'Laki-laki': 'L', 'Pria': 'L', 'Wanita': 'P'})
DATA MENTAH DATA BERSIH (18-25)

Analisis Berbasis Standar ISBT 128 & Protokol PMI

PYTHON 3.10 UDD PMI CIREBON
#bg2 Sains Komik: Rahasia Gap Time & Kaplan-Meier

TRANSFORMASI DATA &
KURVA SURVIVAL!

Misi: Menghitung Detak Retensi Donor
4.3. KONSTRUKSI VARIABEL
Ini adalah tahap krusial! Kita tidak hanya melihat angka, tapi menghitung "Waktu Tunggu" (Gap Time). Kita membandingkan tanggal donasi hari ini dengan donasi berikutnya untuk menentukan siapa yang kembali dan siapa yang "hilang" (censored).
DONASI #1 (Jan 2023) DONASI #2 (Mei 2023) SHIFT(-1)
# Menghitung Jeda Waktu
df = df.sort_values(by=['DonorID', 'TglDonasi'])
df['Next_Donasi'] = df.groupby('DonorID')['TglDonasi'].shift(-1)

# Menetapkan Batas Akhir Studi
end_of_study = pd.to_datetime('2024-12-31')

LOGIKA T (DURASI) & E (EVENT)

Jika donor kembali, kita dapat durasi eksak (Event=1). Jika tidak kembali hingga akhir studi, mereka dianggap Censored (Event=0).
ADA DATA BERIKUTNYA? EVENT (1) Kembali Mendonor CENSORED (0) Hanya Sampai Cut-Off
# Logika Seleksi Durasi
df['T'] = np.where(df.Next_Donasi.notna(),
           (df.Next_Donasi - df.TglDonasi).dt.days,
           (end_of_study - df.TglDonasi).dt.days)
df['E'] = np.where(df.Next_Donasi.notna(), 1, 0)
4.4. EKSPLORASI KAPLAN-MEIER
Sekarang kita memplot Probabilitas Survival. Semakin cepat kurva jatuh ke bawah, semakin baik! Itu artinya donor sangat loyal dan cepat kembali mendonor.
Probabilitas Survival (Y) Waktu - Hari (X) Kurva Turun = Donor Kembali!
kmf = KaplanMeierFitter()
kmf.fit(df['T'], event_observed=df['E'], label='Donor 18-25 Tahun')
kmf.plot_survival_function()
plt.title('Berapa Lama Donor Kembali?')

⚡ KURVA CURAM

Menandakan Retensi Tinggi. Donor tidak butuh waktu lama untuk kembali ke UDD PMI Cirebon.

🐢 KURVA LANDAI

Menandakan Risiko Lapse. Banyak donor yang "menggantung" dan belum kembali dalam waktu 100+ hari.

Referensi Global: Survival Analysis in Healthcare (Cox & Oakes)

SCIENCE IS POW! 💥

Visualized for UDD PMI Kota Cirebon - Data Science Project 2024

#bg3 Komik Sains: Mesin Prediksi Cox PH

MESIN PREDIKSI
COX HAZARDS!

MENGUNGKAP MISTERI RETENSI DONOR

4.5. FITTING MODEL COX
Waktunya mengubah data mentah menjadi wawasan! Kita menggunakan One-Hot Encoding untuk menerjemahkan variabel teks (seperti "Pria" atau "Mobile") menjadi angka biner yang dipahami komputer. Kemudian, CoxPHFitter akan mencari pola hubungan antara faktor-faktor ini dengan durasi donasi.
KATEGORIK: "MOBILE" ENCODING 1 COX PH ENGINE
# Transformasi & Fitting
df_model = pd.get_dummies(df[cols], drop_first=True)
cph = CoxPHFitter()
cph.fit(df_model, duration_col='Duration', event_col='Event')
cph.print_summary()
4.6. INTERPRETASI OUTPUT
Hasil dari model memberikan angka ajaib bernama Hazard Ratio (HR). Ini memberi tahu kita seberapa besar pengaruh sebuah faktor terhadap kecepatan donor untuk kembali.
HR = 0.75 (MOBILE UNIT)

Analisis: Donor di lokasi Mobile (Kampus/Instansi) memiliki laju kembali 25% lebih lambat. Mereka pasif, menunggu "jemput bola"!

GEDUNG 0.75x SLOWER
HR = 0.80 (PEREMPUAN)

Analisis: Laju pengembalian perempuan lebih lambat 20%. Dipengaruhi faktor medis (interval menstruasi & regulasi Hb).

LAMA KEMBALI
HR = 1.10 (FREKUENSI)

Analisis: Setiap 1 kali donasi tambahan, probabilitas kembali naik 10%. Kebiasaan (Habit) adalah faktor terkuat retensi!

+10%

💡 GLOBAL INSIGHT: THE HABIT LOOP

Studi di UDD PMI Cirebon sejalan dengan riset global dari Mayo Clinic. Retensi donor bukan soal satu kampanye besar, tapi soal membangun jembatan antara donasi pertama menuju donasi ketiga. Begitu donor mencapai titik "Lulus" donasi ke-3, mereka memiliki probabilitas survival 80% lebih tinggi untuk menjadi donor rutin seumur hidup.

DATA SCIENCE IS THE NEW SUPERPOWER! 💥

© 2024 UDD PMI Kota Cirebon | Powered by Python Lifelines

Infaq Imam Ahmad Rahimahullah

Widget Komik Sedekah ...