Pemodelan Regresi Logistik: Multinomial, Ordinal, Poisson & Biner

Analisis Empat Dataset Berbeda & Simulator Interaktif

2026-06-01

Pemodelan Regresi Logistik

Analisis Komprehensif Empat Dataset β€” Multinomial, Ordinal, Poisson & Logistik Biner dengan R & Simulator Interaktif

πŸ“¦ Multinomial Β· Wholesale πŸ“Š Ordinal Β· Cardiotokografi πŸ“ˆ Poisson Β· Student Awards πŸ«€ Biner Β· Liver Patient India

πŸ“–
0

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).

Model 1
Multinomial
Variabel respons nominal kategori jamak (>2) tanpa urutan intrinsik.
Model 2
Ordinal
Variabel respons kategorik berurutan (tingkatan abnormalitas ASTV).
Model 3
Poisson
Respons berupa data hitung (count data/diskrit non-negatif).
Model 4
Logistik Biner
Variabel respons kategorik dikotomis (0/1) biner dikotomi klinis.
πŸ“Œ Paket R yang Digunakan

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.

βš™οΈ
1

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.

R Syntax
# 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
πŸ“¦
2

Regresi Logistik Multinomial β€” Wholesale Customers

ℹ️ Tentang Model Multinomial

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.

R Syntax
# 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.

R Syntax
# 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

πŸ” Hasil Analisis & Makna Koefisien
  • 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

🏨 Horeca (Acuan) 0.00%

πŸ›’ Retail 0.00%

Menghitung…

πŸ“Š
3

Regresi Logistik Ordinal β€” Cardiotocography

ℹ️ Tentang Model Ordinal

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%]).

ASTV_Class 1 (Rendah)
301 Janin
Persentase variabilitas abnormal ≀ 25% (Aman).
ASTV_Class 2 (Sedang)
823 Janin
Persentase variabilitas abnormal 26-50% (Hati-hati).
ASTV_Class 3 (Tinggi)
1.002 Janin
Persentase variabilitas abnormal > 50% (Risiko Patologis).

3.2 Eksplorasi Data

Inspeksi prediktor kontinu, pendefinisian faktor terurut, dan fiting model proportional odds melalui fungsi polr dari paket MASS.

R Syntax
# 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

R Syntax
# 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

πŸ” Makna Threshold Koefisien Ordinal
  • 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

🟒 Rendah (≀ 25% abnormalitas - Aman) 0.00%

🟑 Sedang (26-50% abnormalitas - Waspada) 0.00%

πŸ”΄ Tinggi (> 50% abnormalitas - Bahaya) 0.00%

Menghitung…

πŸ“ˆ
4

Regresi Poisson β€” Student Awards Count

ℹ️ Tentang Regresi Poisson

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).

Siswa Teramati
200 Siswa
n = 200 dari berbagai program akademik.
Ekspektasi Penghargaan
0.63 Piagam
Rata-rata piagam penghargaan per siswa (nilai 0 - 6).
Distribusi Varian
0.88 Varian
Varian β‰ˆ Rata-rata bersyarat.

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.

R Syntax
# 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”.

R Syntax
# 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

πŸ” Analisis Signifikansi & Pengujian Goodness-of-Fit
  • 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

Program Studi Siswa (prog):

Nilai Ujian Matematika (math): 60

πŸ“Š Rata-rata Laju Prediksi (Ξ»)

Siswa diproyeksikan memperoleh rata-rata 0.00 piagam penghargaan per tahun.

Probabilitas Distribusi Kejadian (Poisson)

Peluang siswa mendapat tepat k-penghargaan, P(Y = k)

0%
0%
0%
0%
0%
0%
0%

k = 0 k = 1 k = 2 k = 3 k = 4 k = 5 k β‰₯ 6

Menghitung…

πŸ«€
5

Regresi Logistik Biner β€” Indian Liver Patient

ℹ️ Tentang Model Logistik Biner

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.

R Syntax
# 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”).

R Syntax
# 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

πŸ” Analisis Signifikansi & Parameter Fisiologis Liver
  • 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

βš–οΈ
6

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
πŸ“š
7

Referensi Akademis

Untuk pendalaman teoretis pemodelan regresi kategorikal, disarankan merujuk pada literatur standar berikut:

  1. Agresti, A. (2013). Categorical Data Analysis (3rd Edition). Wiley-Interscience.
  2. McCullagh, P., & Nelder, J. A. (1989). Generalized Linear Models (2nd Edition). Chapman and Hall/CRC.
  3. Venables, W. N., & Ripley, B. D. (2002). Modern Applied Statistics with S (4th Edition). Springer.