Pendahuluan
Laporan interaktif ini menyajikan analisis mendalam mengenai empat model regresi logistik khusus yang dirancang untuk menangani berbagai bentuk variabel respons non-kontinu. Melalui dataset riil dan simulasi standar industri, setiap model dieksplorasi secara menyeluruh menggunakan bahasa R, lengkap dengan visualisasi, pengujian diagnostik, interpretasi statistik parameter, serta simulator prediktif berbasis waktu nyata (real-time).
Semua analisis model dikonstruksi menggunakan ekosistem R standar yang kokoh: nnet (regresi multinomial), MASS (regresi ordinal / polr), stats (Poisson dan logistik biner / glm), car (pengujian multikolinearitas VIF), pROC (evaluasi kurva ROC), dan ggplot2 untuk visualisasi grafis bermutu tinggi.
Setup R & Memuat Library
Sebelum memulai pemodelan, seluruh paket penunjang diinstalasi dan dimuat ke dalam memori kerja R untuk memastikan fungsionalitas visualisasi dan pengujian diagnostik tersedia sepenuhnya.
# Menyediakan library kerja library(nnet) # Regresi multinomial library(MASS) # Regresi ordinal (polr) library(readxl) # Membaca data library(dplyr) # Manipulasi data library(ggplot2) # Visualisasi library(car) # Diagnostik VIF library(pROC) # ROC Curve
Regresi Logistik Multinomial β Wholesale Customers
Regresi logistik multinomial memodelkan variabel respons kategorik nominal dengan tingkatan lebih dari dua kategori tanpa urutan. Model ini bekerja dengan membagi peluang setiap kategori terhadap satu kategori acuan (baseline reference category) melalui persamaan log-odds.
() = j + {j1}X_1 + {j2}X_2 + + {jp}X_p ( j = 1, , J-1)
2.1 Dataset: Wholesale Customers (n = 440)
Diperoleh dari UCI Machine Learning Repository, dataset ini mencatat total alokasi pengeluaran tahunan (dalam satuan moneter) pelanggan distributor grosir untuk berbagai kategori produk segar, susu, kelontong, beku, pembersih/kertas, serta deli. Variabel target adalah Channel (1 = Horeca, 2 = Retail).
| Variabel | Tipe Data | Definisi Operasional | Min | Max | Rata-rata |
|---|---|---|---|---|---|
| Channel | Kategorik (Target) | Sektor distribusi: 1=Horeca, 2=Retail | β | ||
| Region | Kategorik | Wilayah administratif: 1=Lisbon, 2=Oporto, 3=Other | β | ||
| Fresh | Numerik | Pengeluaran tahunan untuk produk segar (Fresh) | 3 | 112.151 | 12.000 |
| Milk | Numerik | Pengeluaran tahunan untuk produk susu (Milk) | 55 | 73.498 | 5.796 |
| Grocery | Numerik | Pengeluaran tahunan untuk kelontong (Grocery) | 3 | 92.780 | 7.951 |
| Frozen | Numerik | Pengeluaran tahunan untuk makanan beku (Frozen) | 25 | 60.869 | 3.072 |
| Detergents_Paper | Numerik | Pengeluaran deterjen & produk kertas (Detergents) | 3 | 40.827 | 2.881 |
| Delicassen | Numerik | Pengeluaran produk kelezatan/deli (Delicassen) | 3 | 47.943 | 1.525 |
2.2 Eksplorasi Data
Sebelum dilakukan estimasi model, variabel kategorik didefinisikan ke bentuk faktor dan dilakukan inspeksi distribusi data serta visualisasi visual log-pengeluaran per produk.
# Pengondisian tipe data kategorik wholesale <- wholesale %>% mutate( Channel = factor(Channel, levels = c(1, 2), labels = c("Horeca", "Retail")), Region = factor(Region, levels = c(1, 2, 3), labels = c("Lisbon", "Oporto", "Other")) )
> table(wholesale$Channel) Horeca Retail 298 142
2.3 Pemodelan Regresi Multinomial
Menetapkan Horeca sebagai kategori baseline dan
membangun model logit multinomial menggunakan
nnet::multinom.
# Relevel baseline wholesale$Channel <- relevel(wholesale$Channel, ref = "Horeca") model_multi <- nnet::multinom(Channel ~ log_Fresh + log_Milk + log_Grocery + log_Frozen + log_Detp + log_Deli + Region, data = wholesale, trace = FALSE)
Coefficients:
(Intercept) log_Fresh log_Milk log_Grocery log_Frozen log_Detp log_Deli RegionOporto RegionOther
Retail -3.217411 -0.8040775 0.5129486 0.3842103 -0.1273295 1.285449 0.2418342 0.3214588 0.1089201
2.4 Interpretasi Odds Ratio & Simulator Interaktif
- log_Fresh (OR = 0.448, p < 0.001): Signifikan secara statistik. Setiap kenaikan \(1\%\) pengeluaran produk segar menurunkan odds pelanggan untuk tergolong sebagai Retail sebesar \(55.2\%\) dibanding Horeca.
- log_Detp (OR = 3.615, p < 0.001): Signifikan kuat. Peningkatan pengeluaran deterjen & kertas melipatgandakan odds menjadi pelanggan Retail sebesar \(261.5\%\).
- Akurasi Klasifikasi: Model memiliki tingkat akurasi tinggi sebesar 90.45%.
ποΈ Simulator Prediktif Regresi Multinomial
Sesuaikan alokasi pengeluaran tahunan produk (dalam USD) di bawah untuk memprediksi kategori Channel
Fresh (Produk Segar): 12.000
Milk (Produk Susu): 5.700
Grocery (Kelontong): 7.900
Frozen (Makanan Beku): 3.000
Detergents & Paper: 2.800
Delicassen (Camilan Deli): 1.500
Wilayah (Region):
Hasil Estimasi Probabilitas
Menghitungβ¦
Regresi Logistik Ordinal β Cardiotocography
Regresi ordinal digunakan untuk menganalisis data kategorik yang memiliki tingkatan/tinggi-rendah berurutan. Menggunakan metode Cumulative Link Model / Proportional Odds, diasumsikan rasio odds pemisahan threshold cutpoint konstan di setiap jenjang tingkatan variabel target.
() = _j - (_1 X_1 + _2 X_2 + + _p X_p)
3.1 Dataset: Cardiotocography (n = 2.126)
Mencakup detak jantung janin (FHR) berdasarkan sinyal kardiotokografi klinis. Variabel target diturunkan dari persentase waktu variabilitas abnormal jangka pendek (ASTV) menjadi kelas bertingkat ordinal: ASTV_Class (1 = Rendah [β€25%], 2 = Sedang [26-50%], 3 = Tinggi [>50%]).
3.2 Eksplorasi Data
Inspeksi prediktor kontinu, pendefinisian faktor terurut, dan fiting
model proportional odds melalui fungsi polr dari paket
MASS.
# Pembuatan ASTV Class terurut cardio <- cardio %>% mutate( ASTV_Class = case_when( ASTV <= 25 ~ "Rendah", ASTV <= 50 ~ "Sedang", TRUE ~ "Tinggi" ), ASTV_Class = factor(ASTV_Class, levels = c("Rendah", "Sedang", "Tinggi"), ordered = TRUE) )
3.3 Pemodelan Regresi Ordinal
# Fit ordinal model model_ordinal <- MASS::polr(ASTV_Class ~ LB + AC + FM + UC + MSTV + ALTV + MLTV, data = cardio, method = "logistic", Hess = TRUE)
Coefficients:
Value Std. Error t value
LB -0.02509 0.007205 -3.482
AC -0.04358 0.011925 -3.655
FM -0.00730 0.004831 -1.511
UC 0.05441 0.013242 4.109
MSTV -0.38210 0.042709 -8.950
ALTV 0.01941 0.002651 7.321
MLTV -0.08812 0.020182 -4.366
3.4 Interpretasi Ordinal & Simulator Interaktif
- MSTV (OR = 0.682, p < 0.001): Setiap kenaikan \(1\%\) rata-rata variabilitas jangka pendek (MSTV) menurunkan odds janin berada di kelas ASTV patologis sebesar \(31.8\%\).
- UC (OR = 1.056, p < 0.001): Setiap kenaikan frekuensi kontraksi uterus meningkatkan odds tergolong pada risiko variabilitas janin yang abnormal sebesar \(5.6\%\).
ποΈ Simulator Prediktif Regresi Ordinal
Sesuaikan pembacaan instrumen kardiotokografi (CTG) janin di bawah untuk menaksir kelas ASTV abnormal
LB (Fetal Heart Rate Baseline): 120 bpm
AC (Akselerasi per Detik): 4
FM (Gerakan Janin / Detik): 2
UC (Kontraksi Uterus / Detik): 6
MSTV (Rata-rata Variabilitas Jangka Pendek): 1.2%
ALTV (Persentase Variabilitas Jangka Panjang Abnormal): 15%
MLTV (Rata-rata Variabilitas Jangka Panjang): 8 ms
Hasil Estimasi Probabilitas Tingkat
Menghitungβ¦
Regresi Poisson β Student Awards Count
Regresi Poisson digunakan untuk memodelkan data diskrit berupa jumlah kemunculan kejadian dalam interval ruang atau waktu tertentu (data hitung/count data). Model Poisson berlandaskan asumsi equidispersion, yakni nilai rata-rata bersyarat sama dengan nilai varians bersyarat (\(\mu = \sigma^2\)).
(_i) = _0 + 1 X{1i} + 2 X{2i} + + p X{pi} _i = (_i^T )
4.1 Dataset: Student Awards (n = 200)
Dataset ini mendata jumlah piagam penghargaan yang diperoleh siswa di sebuah sekolah menengah. Variabel respons adalah num_awards (jumlah penghargaan), dengan prediktor berupa jenis program studi (prog: General, Academic, Vocational) serta nilai ujian matematika standar siswa (math).
4.2 Eksplorasi Data R Syntax
Dilakukan pemuatan dataset, re-kondisi program sekolah sebagai faktor, pengecekan rata-rata vs varian, serta visualisasi grafik sebaran penghargaan.
# Konversi variabel prog awards <- awards %>% mutate( prog = factor(prog, levels = c(1, 2, 3), labels = c("General", "Academic", "Vocational")) )
> mean(awards$num_awards) [1] 0.63 > var(awards$num_awards) [1] 0.8845226
4.3 Pemodelan Regresi Poisson
Pemodelan Poisson dilakukan menggunakan model linier tergeneralisasi
(GLM) melalui fungsi glm() dengan menspesifikasikan
parameter family = βpoissonβ.
# Fit GLM Poisson model_poisson <- glm(num_awards ~ prog + math, family = "poisson", data = awards) irr_poisson <- exp(coef(model_poisson))
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -5.24712 0.65845 -7.969 1.60e-15 ***
progAcademic 1.08386 0.32105 3.376 0.000736 ***
progVocational 0.36981 0.44109 0.838 0.401833
math 0.07015 0.01020 6.879 6.04e-12 ***
4.4 Interpretasi IRR & Simulator Diskrit Interaktif
- progAcademic (IRR = 2.956, p < 0.001): Siswa dalam program Academic memiliki rata-rata laju (rate) perolehan penghargaan sebanyak 2.96 kali lipat lebih tinggi dibandingkan siswa program General.
- math (IRR = 1.073, p < 0.001): Setiap kenaikan satu poin pada nilai matematika meningkatkan ekspektasi laju perolehan piagam siswa sebesar \(7.3\%\).
ποΈ Simulator Prediktif Regresi Poisson
Pilih program dan nilai matematika untuk memproyeksikan laju penghargaan & sebaran probabilitas diskritnya
Nilai Ujian Matematika (math): 60
Siswa diproyeksikan memperoleh rata-rata 0.00 piagam penghargaan per tahun.
Probabilitas Distribusi Kejadian (Poisson)
Peluang siswa mendapat tepat k-penghargaan, P(Y = k)
k = 0 k = 1 k = 2 k = 3 k = 4 k = 5 k β₯ 6
Menghitungβ¦
Regresi Logistik Biner β Indian Liver Patient
Regresi logistik biner digunakan ketika variabel respons bersifat dikotomis atau biner (misal: Sakit vs Sehat). Melalui transformasi link logit, odds dari probabilitas keberhasilan dimodelkan sebagai kombinasi linier variabel-variabel independen.
(p_i) = () = _0 + 1 X{1i} + + p X{pi} p_i =
5.1 Dataset: Indian Liver Patient (n = 583)
Diperoleh dari UCI Machine Learning Repository, dataset klinis ini merangkum catatan pasien di wilayah India Timur yang diuji untuk mendiagnosis kelainan hati (liver). Mengandung \(583\) sampel, variabel target biner adalah Liver_Disease (1 = Terdiagnosa Sakit Liver, 0 = Kontrol Sehat). Prediktor yang digunakan adalah kombinasi klinis biomarker biokimia hati:
| Variabel | Tipe Data | Indikator Fisiologis | Min | Max | Rata-rata |
|---|---|---|---|---|---|
| Liver_Disease | Biner (Target) | Status patologis: 1=Sakit Liver, 0=Kontrol Sehat | β | ||
| Age | Numerik | Umur biologis pasien (Tahun) | 4 | 90 | 44.7 |
| Gender | Kategorik | Jenis kelamin biologis: Male, Female | β | ||
| Total_Bilirubin | Numerik | Kadar bilirubin total dalam darah (mg/dL) | 0.4 | 75.0 | 3.3 |
| Alkaline_Phosphotase | Numerik | Konsentrasi enzim alkali fosfatase (U/L) | 63 | 2.110 | 290.5 |
| Albumin | Numerik | Konsentrasi protein albumin serum (g/dL) | 0.9 | 5.5 | 3.1 |
5.2 Eksplorasi Data & Persiapan R
Dilakukan pembersihan data, eliminasi data kosong, rekondisi target biner menjadi factor numerik biner (0/1), dan visualisasi kurva evaluasi klinis.
# Pemetaan variabel target biner liver_clean <- liver_data %>% filter(!is.na(Albumin_and_Globulin_Ratio)) %>% mutate( Liver_Disease = ifelse(Dataset == 1, 1, 0), Gender = factor(Gender) )
5.3 Pemodelan Regresi Logistik Biner
Model diestimasi menggunakan fungsi glm() dengan
menspesifikasikan family = binomial(link = βlogitβ).
# Fit GLM Binomial model_biner <- glm(Liver_Disease ~ Age + Gender + Total_Bilirubin + Alkaline_Phosphotase + Albumin, family = binomial(link = "logit"), data = liver_clean) OR_biner <- exp(cbind(OR = coef(model_biner), confint(model_biner)))
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.354121 0.558291 0.634 0.525890
Age 0.015243 0.007198 2.118 0.034182 *
GenderMale 0.452109 0.260193 1.738 0.082291 .
Total_Bilirubin 0.654210 0.134212 4.874 1.09e-06 ***
Alkaline_Phosphotase 0.002842 0.000674 4.217 2.48e-05 ***
Albumin -0.854312 0.258410 -3.306 0.000947 ***
5.4 Interpretasi Hasil Klinis & Simulator Deteksi Risiko
- Albumin (OR = 0.426, p = 0.0009): Albumin bertindak sebagai faktor protektif (pelindung) yang sangat kuat. Setiap peningkatan \(1 \text{ g/dL}\) kadar albumin serum mengurangi odds pasien menderita kelainan liver sebesar \(57.4\%\).
- Total Bilirubin (OR = 1.924, p < 0.001): Setiap kenaikan \(1 \text{ mg/dL}\) bilirubin dalam sirkulasi darah meningkatkan odds pasien mengidap penyakit liver sebesar 92.4%.
ποΈ Simulator Skrining Risiko Penyakit Liver
Masukkan nilai diagnosis biokimia darah pasien di bawah untuk menghitung indeks persentase risiko sakit liver
Umur Pasien (Age): 45 Tahun
Jenis Kelamin:
Total Bilirubin (Kadar Serum): 1.2 mg/dL
Alkaline Phosphotase (Enzim AP): 150 U/L
Albumin Serum (Faktor Protektif): 3.5 g/dL
Hasil Indeks Risiko Probabilitas
0.0% RISIKO
Memuat interpretasi klinisβ¦
Status Pasien Liver: Sedang Dihitung
Perbandingan & Karakteristik Model
Memahami kapan harus memilih salah satu dari keempat model regresi kategori ini merupakan aspek krusial dalam pemodelan data tingkat lanjut. Tabel berikut menyajikan matriks perbandingan dari aspek fungsi link, sifat respons, dan kriteria diagnostik utama.
| Nama Model | Tipe Variabel Target | Fungsi Link Utama | Asumsi Kunci | Paket R / Fungsi Utama | Indikator Kebaikan Model |
|---|---|---|---|---|---|
| 1. Multinomial | Nominal (>2 kategori), tanpa urutan intrinsik. | Generalized Logit | Independensi Alternatif Tidak Relevan (IIA) |
nnet::multinom()
|
Akurasi Klasifikasi, Deviasi Residual, AIC |
| 2. Ordinal | Kategorik Terurut (Tingkatan/Ordinal). | Cumulative Logit | Proportional Odds (Rasio odds konstan per cutpoint) |
MASS::polr()
|
Uji Brant (p > 0.05), Pseudo R-Square, AIC |
| 3. Poisson | Data Hitung (Count), bilangan bulat non-negatif. | Logaritma Natural (\(\ln\)) | Ekuidispersi (Varian = Rata-rata bersyarat) |
stats::glm(family=βpoissonβ)
|
Residual Deviance GOF (p > 0.05), AIC |
| 4. Logistik Biner | Nominal Biner dikotomis (0 atau 1). | Logit | Independensi observasi, linearitas dalam log-odds |
stats::glm(family=βbinomialβ)
|
Area Under Curve (AUC-ROC), Sensitivitas, AIC |
Referensi Akademis
Untuk pendalaman teoretis pemodelan regresi kategorikal, disarankan merujuk pada literatur standar berikut:
- Agresti, A. (2013). Categorical Data Analysis (3rd Edition). Wiley-Interscience.
- McCullagh, P., & Nelder, J. A. (1989). Generalized Linear Models (2nd Edition). Chapman and Hall/CRC.
- Venables, W. N., & Ripley, B. D. (2002). Modern Applied Statistics with S (4th Edition). Springer.