Tutorial Kilat: Analisis Regresi Linear Data Medis (Gula Darah vs Penyakit) dengan Python

Sebuah Studi Kasus Sederhana Regresi Linear dalam Sains Data

Halo para pembelajar dan enthusiast Sains Data! Pernahkah terpikir bagaimana kita bisa "ngobrol" dengan data untuk mencari tahu hubungan antar variabel? Nah, kali ini kita akan membahas tuntas sebuah studi kasus sederhana dimana kita mencoba mengungkap apakah ada hubungan antara kadar gula darah seseorang dengan perkembangan suatu penyakit.

Artikel ini akan mengupas tuntas prosesnya, mulai dari persiapan data yang ribet sampai interpretasi hasil yang ternyata cukup mengejutkan! Yuk, kita mulai petualangan data kita!

Dalam studi kasus sains data kali ini, kita akan mencari tahu: "Seberapa besar pengaruh Gula Darah (GLU) terhadap Perkembangan Penyakit (Y)?"

Kita akan menggunakan Python untuk membersihkan data yang "kotor", membuat model regresi linear, dan memvisualisasikannya.

1. Persiapan (Setup)

Pastikan Python sudah terinstall. Buka terminal VS Code dan install library wajib:

pip install pandas matplotlib scikit-learn

2. Kode Python

Simpan kode ini sebagai analisis_dummy.py. Anda tidak perlu download file Excel/CSV apa pun, karena datanya sudah ada di dalam kodingan ini.

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
import numpy as np

# --- 1. MEMBUAT DATA DUMMY (SIMULASI) ---
# Kita masukkan data contoh langsung di sini supaya tidak perlu load file luar
data_kesehatan = {
    'GLU': [91, 100, 85, 84, 76, 96, 71, 90, 101, 117, 97, 80, 89, 88, 109, 94, 92, 103, 83, 98, 110, 87, 75, 95, 105],
    'Y':   [128, 102, 130, 198, 95, 53, 134, 144, 232, 81, 104, 126, 288, 88, 292, 71, 197, 186, 25, 84, 210, 150, 90, 115, 190]
}

# Ubah jadi tabel (DataFrame)
df = pd.DataFrame(data_kesehatan)

# --- 2. BUAT MODEL REGRESI ---
X = df[['GLU']]  # Variabel X (Penyebab/Independen)
y = df['Y']      # Variabel Y (Akibat/Dependen)

model = LinearRegression()
model.fit(X, y)

# --- 3. TAMPILKAN HASIL STATISTIK ---
b0 = model.intercept_       # Titik potong Y
b1 = model.coef_[0]         # Kemiringan garis (pengaruh GLU ke Y)
r2 = model.score(X, y)      # Kekuatan hubungan (0-1)

print(f"=== HASIL ANALISIS (DATA DUMMY) ===")
print(f"Data yang diolah: {len(df)} pasien")
print(f"Persamaan: Y = {b0:.2f} + {b1:.2f} * GLU")
print(f"R-squared: {r2*100:.2f}% (Kekuatan hubungan)")

# --- 4. VISUALISASI DATA ---
plt.figure(figsize=(10, 6))
plt.scatter(X, y, color='blue', alpha=0.6, label='Data Pasien')
plt.plot(X, model.predict(X), color='red', linewidth=2, label='Garis Regresi')

plt.title('Hubungan Gula Darah vs Perkembangan Penyakit')
plt.xlabel('Gula Darah (GLU)')
plt.ylabel('Perkembangan Penyakit (Y)')
plt.legend()
plt.grid(True, linestyle='--', alpha=0.5)

# Simpan gambar
nama_file = 'hasil_plot_dummy.png'
plt.savefig(nama_file)
print(f"Gambar grafik telah disimpan sebagai '{nama_file}'")
plt.show()

3. Penjelasan Kodingan (Cara Kerjanya)

  1. Data Dictionary: Alih-alih pusing dengan read_csv yang sering error formatnya, kita membuat variabel data_kesehatan yang berisi angka-angka contoh (GLU dan Y). Ini jauh lebih stabil untuk latihan.

  2. LinearRegression(): Ini adalah "otak"-nya. Fungsi ini mencari garis lurus terbaik yang bisa membelah titik-titik data tersebut.

  3. Visualisasi: Kita menggunakan matplotlib untuk menggambar titik biru (pasien) dan garis merah (prediksi model) agar dosen bisa melihat hasilnya secara visual.

4. Hasil yang Diharapkan

Setelah kode dijalankan, terminal akan menampilkan hasil hitungan statistik, dan sebuah file gambar bernama hasil_plot_dummy.png akan muncul di folder Anda seperti ini:

  hasil_plot_dummy.png  

Kesimpulan: Dengan metode ini, kita bisa membuktikan secara cepat apakah Gula Darah memiliki korelasi positif dengan penyakit, tanpa harus terjebak masalah teknis pembacaan file.

Komentar