1 Kata Pengantar

Dalam ilmu statistika, tidak semua data dapat dianalisis dengan regresi linear biasa. Ketika variabel respon berbentuk kategori (misalnya β€œlulus/tidak lulus”), lebih dari dua kelompok tanpa urutan (misalnya pilihan moda transportasi), kategori berjenjang (misalnya tingkat kepuasan), atau berupa data cacah/hitungan (misalnya jumlah kecelakaan), maka dibutuhkan pendekatan model yang berbeda. Di sinilah Generalized Linear Model (GLM) berperan penting sebagai kerangka umum yang menaungi keempat model yang dibahas dalam ebook ini.

Secara garis besar, ebook ini membahas empat model utama:

1. Regresi Logistik Biner (Binary Logistic Regression)

Digunakan ketika variabel respon hanya memiliki dua kategori, misalnya β€œberhasil/gagal” atau β€œya/tidak”. Model ini menghubungkan peluang kejadian dengan variabel prediktor melalui fungsi link logit, dan hasilnya dapat diinterpretasikan melalui Odds Ratio (OR).

2. Regresi Logistik Multinomial (Multinomial Logistic Regression)

Merupakan perluasan dari regresi logistik biner untuk kasus respon dengan lebih dari dua kategori yang bersifat nominal (tidak memiliki urutan), misalnya pemilihan moda transportasi (mobil, motor, kereta). Model ini membandingkan setiap kategori terhadap satu kategori acuan (reference category).

3. Regresi Logistik Ordinal (Ordinal Logistic Regression)

Digunakan ketika kategori pada variabel respon memiliki urutan atau tingkatan, misalnya tingkat kepuasan pelanggan (tidak puas, cukup, puas, sangat puas). Model yang umum digunakan adalah Proportional Odds Model.

4. Regresi Poisson (Poisson Regression)

Digunakan untuk memodelkan data cacah (count data), yaitu jumlah kejadian dalam suatu interval waktu atau ruang tertentu, misalnya jumlah kecelakaan lalu lintas. Model ini mengasumsikan bahwa variabel respon mengikuti distribusi Poisson.

Tujuan Ebook: Membantu mahasiswa dan pembaca umum memahami konsep dasar, asumsi, interpretasi, hingga implementasi keempat model analisis data kategori tersebut menggunakan bahasa pemrograman R, sebelum diterapkan pada studi kasus nyata.

Semoga ebook ini bermanfaat dan memudahkan proses belajar mengenai analisis data kategori.

2 Pendahuluan

2.1 Apa itu Analisis Data Kategori?

Analisis data kategori adalah cabang statistika yang berfokus pada pemodelan data ketika variabel respon (variabel dependen) berskala kategorik (nominal atau ordinal) atau berupa data cacah (count), bukan data kontinu. Karena asumsi normalitas dan homogenitas ragam pada regresi linear klasik tidak terpenuhi untuk jenis data ini, digunakanlah pendekatan Generalized Linear Model (GLM).

GLM memperluas regresi linear biasa dengan tiga komponen utama:

  1. Komponen Acak (Random Component): distribusi dari variabel respon (misalnya Bernoulli, Multinomial, atau Poisson).
  2. Komponen Sistematik (Systematic Component): kombinasi linear dari variabel prediktor (\(\eta = \beta_0 + \beta_1 X_1 + \dots + \beta_k X_k\)).
  3. Fungsi Link (Link Function): fungsi yang menghubungkan nilai harapan respon dengan komponen sistematik.

2.2 Mengapa Tidak Menggunakan Regresi Linear Biasa?

Jika variabel respon berupa kategori (misalnya 0 dan 1) dipaksakan menggunakan regresi linear biasa (Linear Probability Model), akan muncul beberapa masalah:

  • Nilai prediksi dapat berada di luar rentang \[0,1\], padahal peluang harus berada pada rentang tersebut.
  • Heteroskedastisitas ragam error tidak konstan.
  • Hubungan antara prediktor dan peluang kejadian pada kenyataannya tidak linear, melainkan berbentuk S (sigmoid).

2.3 Klasifikasi Model Berdasarkan Jenis Variabel Respon

Jenis Respon Skala Data Contoh Model yang Digunakan
Biner (2 kategori) Nominal Lulus / Tidak Lulus Binary Logistic Regression
Nominal (>2 kategori, tanpa urutan) Nominal Mobil / Motor / Kereta Multinomial Logistic Regression
Ordinal (>2 kategori, berurutan) Ordinal Tidak Puas / Cukup / Puas / Sangat Puas Ordinal Logistic Regression
Cacah (jumlah kejadian) Rasio (diskret) Jumlah kecelakaan per bulan Poisson Regression

2.4 Tahapan Umum dalam Analisis Data Kategori

  1. Eksplorasi data – memeriksa distribusi variabel respon dan prediktor.
  2. Pemilihan model – berdasarkan skala data respon (lihat tabel klasifikasi di atas).
  3. Pendugaan parameter – umumnya menggunakan metode Maximum Likelihood Estimation (MLE).
  4. Uji signifikansi – uji parsial (Wald) dan uji simultan (Likelihood Ratio Test).
  5. Uji kesesuaian model (goodness of fit) – misalnya deviance, AIC, atau uji Hosmer-Lemeshow untuk model logistik.
  6. Interpretasi koefisien – melalui Odds Ratio (OR) atau Incidence Rate Ratio (IRR).
  7. Validasi model – menilai akurasi klasifikasi atau prediksi model.

3 Binary Logistic Regression

3.1 Konsep

Regresi logistik biner digunakan ketika variabel respon \(Y\) terdiri dari dua kategori, biasanya dikodekan sebagai 0 (gagal/tidak) dan 1 (berhasil/ya). Model ini menduga peluang \(p = P(Y=1|X)\) menggunakan fungsi link logit:

\[ \log\left(\frac{p}{1-p}\right)=\beta_0+\beta_1X_1+\beta_2X_2+\dots+\beta_kX_k \]

Bentuk peluangnya dapat dituliskan kembali sebagai:

\[ p=\frac{e^{\beta_0+\beta_1X}}{1+e^{\beta_0+\beta_1X}} \]

3.2 Asumsi Model

  • Variabel respon bersifat biner (dikotomus).
  • Observasi bersifat independen satu sama lain.
  • Tidak ada multikolinearitas yang tinggi antar variabel prediktor.
  • Hubungan antara logit dari peluang dengan variabel prediktor bersifat linear.
  • Ukuran sampel yang cukup besar untuk estimasi yang stabil.

3.3 Interpretasi Koefisien: Odds Ratio

Karena koefisien \(\beta\) berada dalam skala logit, interpretasinya dilakukan melalui Odds Ratio (OR):

\[ OR=e^{\beta} \]

  • Jika \(OR > 1\): peningkatan satu satuan pada \(X\) akan meningkatkan peluang kejadian \(Y=1\).
  • Jika \(OR < 1\): peningkatan satu satuan pada \(X\) akan menurunkan peluang kejadian \(Y=1\).
  • Jika \(OR = 1\): variabel \(X\) tidak berpengaruh terhadap peluang kejadian \(Y=1\).

Studi Kasus: Prediksi Nasabah Berlangganan Deposito Berjangka

Data yang digunakan adalah Bank Marketing Dataset (bank.csv), berisi 4.521 data hasil kampanye pemasaran telepon sebuah bank di Portugal. Variabel respon \(Y\) adalah y, yaitu apakah nasabah berlangganan deposito berjangka (β€œyes”) atau tidak (β€œno”). Beberapa variabel prediktor yang digunakan:

Variabel Keterangan
age Usia nasabah (tahun)
job Jenis pekerjaan nasabah
marital Status pernikahan
education Tingkat pendidikan
balance Rata-rata saldo tahunan (euro)
housing Memiliki pinjaman perumahan (yes/no)
loan Memiliki pinjaman pribadi (yes/no)
duration Lama kontak terakhir (detik)
campaign Jumlah kontak selama kampanye ini
y Variabel respon: berlangganan deposito (yes/no)

3.3.1 Langkah 1 β€” Impor dan Eksplorasi Data

Perhatikan bahwa file bank.csv menggunakan pemisah titik-koma (;), sehingga dibaca dengan read.csv2() atau read.csv(..., sep=";").

# Membaca data (pemisah kolom adalah titik koma)
bank <- read.csv2("bank.csv", sep = ";", stringsAsFactors = TRUE)

# Struktur data
str(bank)

# Distribusi variabel respon
table(bank$y)
prop.table(table(bank$y))

3.3.2 Langkah 2 β€” Membangun Model Regresi Logistik Biner

Kategori β€œyes” ditetapkan sebagai kejadian sukses (\(Y=1\)) dengan menjadikan β€œno” sebagai level referensi.

# Menetapkan "no" sebagai kategori referensi
bank$y <- relevel(bank$y, ref = "no")

# Membangun model regresi logistik biner
model_biner <- glm(y ~ age + job + marital + education + balance +
                      housing + loan + duration + campaign,
                    family = binomial(link = "logit"),
                    data = bank)

# Ringkasan model
summary(model_biner)

3.3.3 Langkah 3 β€” Uji Signifikansi Simultan (Likelihood Ratio Test)

# Model tanpa prediktor (null model) vs model penuh
model_null <- glm(y ~ 1, family = binomial(link = "logit"), data = bank)
anova(model_null, model_biner, test = "Chisq")

3.3.4 Langkah 4 β€” Interpretasi Koefisien melalui Odds Ratio

# Menghitung Odds Ratio beserta interval kepercayaan 95%
exp(cbind(OR = coef(model_biner), confint(model_biner)))

Cara Membaca Output:

  • Nilai Estimate merupakan koefisien \(\beta\) dalam skala logit; tanda positif berarti menaikkan log-odds nasabah berlangganan, tanda negatif berarti menurunkannya.
  • Nilai p-value (Pr(>|z|)) yang lebih kecil dari 0.05 menunjukkan variabel tersebut berpengaruh signifikan terhadap peluang berlangganan.
  • Contoh interpretasi: jika \(OR_{duration} > 1\), artinya semakin lama durasi kontak telepon terakhir, semakin besar peluang nasabah berlangganan deposito.
  • Untuk variabel kategorik seperti housing atau loan, OR dibandingkan terhadap kategori referensinya (misalnya housingyes dibandingkan terhadap housingno).

3.3.5 Langkah 5 β€” Uji Kesesuaian Model dan Evaluasi Klasifikasi

library(ResourceSelection)

# Uji Hosmer-Lemeshow (goodness of fit)
hoslem.test(model_biner$y, fitted(model_biner))

# Prediksi peluang dan klasifikasi (cut-off 0.5)
prob_pred <- predict(model_biner, type = "response")
pred_kelas <- ifelse(prob_pred > 0.5, "yes", "no")

# Matriks konfusi
tabel_konfusi <- table(Prediksi = pred_kelas, Aktual = bank$y)
tabel_konfusi

# Akurasi model
akurasi <- sum(diag(tabel_konfusi)) / sum(tabel_konfusi)
akurasi

Catatan Penting:

Karena proporsi nasabah yang berlangganan (β€œyes”) jauh lebih kecil dibandingkan yang tidak (β€œno”) β€” kondisi data tidak seimbang (imbalanced) β€” akurasi saja tidak cukup untuk menilai performa model. Sebaiknya evaluasi juga dilakukan menggunakan sensitivitas, spesifisitas, dan kurva ROC/AUC agar kemampuan model dalam mengenali kelas minoritas (β€œyes”) dapat terlihat dengan lebih adil.

4 Multinomial Logistic Regression

4.1 Konsep

Regresi logistik multinomial digunakan untuk memodelkan respon nominal dengan lebih dari dua kategori (\(J>2\)) yang tidak memiliki urutan. Salah satu kategori dipilih sebagai kategori acuan (baseline), lalu model membandingkan setiap kategori lain terhadapnya:

\[ \log\frac{P(Y=j)}{P(Y=0)}=\beta_{0j}+\beta_{1j}X_1+\dots+\beta_{kj}X_k,\quad j=1,\dots,J-1 \]

4.2 Asumsi Model

  • Kategori variabel respon bersifat nominal (tidak berurutan).
  • Memenuhi asumsi Independence of Irrelevant Alternatives (IIA) β€” penambahan atau penghapusan satu kategori tidak mengubah rasio peluang antar kategori lain.
  • Observasi antar individu bersifat independen.
  • Tidak ada multikolinearitas tinggi antar prediktor.

Studi Kasus: Klasifikasi Jenis Hewan Berdasarkan Ciri-Ciri Fisik

Data yang digunakan adalah Zoo Dataset (zoo.data) dari UCI Machine Learning Repository, berisi 101 spesies hewan dengan 16 atribut biner/numerik dan satu variabel kelas (tipe) yang terdiri dari 7 kategori nominal tanpa urutan:

Kode Kelas Hewan Jumlah
1 Mamalia 41
2 Burung 20
3 Reptil 5
4 Ikan 13
5 Amfibi 4
6 Serangga 8
7 Invertebrata 10

Data tidak memiliki baris header, sehingga nama kolom perlu didefinisikan secara manual.

4.2.1 Langkah 1 β€” Impor dan Persiapan Data

# Nama-nama kolom sesuai dokumentasi zoo.names (UCI)
nama_kolom <- c("nama_hewan", "rambut", "bulu", "telur", "susu", "terbang",
                "akuatik", "predator", "bergigi", "tulang_belakang", "bernapas",
                "berbisa", "sirip", "jumlah_kaki", "ekor", "domestik",
                "ukuran_besar", "tipe")

# Membaca data (tanpa header, dipisahkan koma)
zoo <- read.csv("zoo.data", header = FALSE, col.names = nama_kolom)

# Mengubah variabel tipe menjadi faktor dengan label kategori
zoo$tipe <- factor(zoo$tipe,
                    levels = 1:7,
                    labels = c("Mamalia", "Burung", "Reptil", "Ikan",
                               "Amfibi", "Serangga", "Invertebrata"))

# Struktur data
str(zoo)

# Distribusi variabel respon
table(zoo$tipe)

4.2.2 Langkah 2 β€” Membangun Model Regresi Logistik Multinomial

Kategori β€œMamalia” (kelas dengan frekuensi terbanyak) ditetapkan sebagai kategori acuan (baseline).

library(nnet)

# Menetapkan "Mamalia" sebagai kategori acuan
zoo$tipe <- relevel(zoo$tipe, ref = "Mamalia")

# Membangun model multinomial
model_multinom <- multinom(tipe ~ rambut + bulu + telur + susu + akuatik +
                              predator + bergigi + sirip + jumlah_kaki + ekor,
                            data = zoo,
                            trace = FALSE)

# Ringkasan model
summary(model_multinom)

Catatan: Karena beberapa atribut pada data Zoo bersifat sangat menentukan (misalnya semua hewan bertulang belakang dengan susu = 1 pasti Mamalia), model dapat mengalami complete/quasi-separation yang ditandai dengan nilai standard error yang sangat besar pada koefisien tertentu. Dalam praktiknya, hal ini wajar terjadi pada data dengan atribut yang sangat diskriminatif, namun tetap perlu dicermati saat interpretasi.

4.2.3 Langkah 3 β€” Uji Signifikansi Koefisien (Uji Wald)

# Menghitung nilai z dan p-value untuk setiap koefisien
z <- summary(model_multinom)$coefficients / summary(model_multinom)$standard.errors
p_value <- (1 - pnorm(abs(z), 0, 1)) * 2
round(p_value, 4)

4.2.4 Langkah 4 β€” Interpretasi Koefisien melalui Relative Risk Ratio (RRR)

# Menghitung Relative Risk Ratio (RRR)
exp(coef(model_multinom))

Cara Membaca Output:

  • Setiap baris koefisien menunjukkan perbandingan peluang suatu kelas hewan (misalnya Burung, Ikan, dst.) terhadap kelas acuan Mamalia.
  • Relative Risk Ratio (RRR) yaitu \(e^{\beta}\) menunjukkan seberapa besar kecenderungan relatif suatu hewan tergolong pada kelas tertentu dibanding Mamalia, untuk setiap perubahan satu satuan pada atribut prediktor.
  • Contoh interpretasi: atribut sirip = 1 diperkirakan sangat meningkatkan kecenderungan relatif digolongkan sebagai Ikan dibandingkan Mamalia, sejalan dengan karakteristik biologisnya.

4.2.5 Langkah 5 β€” Evaluasi Ketepatan Klasifikasi Model

# Prediksi kelas oleh model
prediksi_tipe <- predict(model_multinom, newdata = zoo)

# Matriks konfusi
tabel_konfusi <- table(Prediksi = prediksi_tipe, Aktual = zoo$tipe)
tabel_konfusi

# Akurasi klasifikasi model
akurasi <- sum(diag(tabel_konfusi)) / sum(tabel_konfusi)
akurasi

Catatan Penting:

Karena jumlah kelas Reptil dan Amfibi pada data ini sangat sedikit (masing-masing 5 dan 4 pengamatan), model cenderung sulit membedakan kelas tersebut secara akurat. Untuk data dengan kelas yang sangat tidak seimbang seperti ini, evaluasi model sebaiknya juga mempertimbangkan akurasi per kelas, bukan hanya akurasi keseluruhan (overall accuracy).

5 Ordinal Logistic Regression

5.1 Konsep

Regresi logistik ordinal digunakan ketika kategori variabel respon memiliki tingkatan atau urutan. Model yang paling umum digunakan adalah Proportional Odds Model (Cumulative Logit Model):

\[ \log\frac{P(Y\le j)}{P(Y>j)}=\alpha_j-\beta_1X_1-\dots-\beta_kX_k,\quad j=1,\dots,J-1 \]

di mana \(\alpha_j\) adalah cut-point (titik potong) antar kategori berurutan.

5.2 Asumsi Model

  • Variabel respon berskala ordinal.
  • Memenuhi asumsi Proportional Odds (Parallel Lines Assumption) β€” pengaruh variabel prediktor dianggap sama pada setiap titik potong kategori.
  • Observasi bersifat independen.
  • Tidak ada multikolinearitas tinggi antar prediktor.

Studi Kasus: Evaluasi Prioritas Penerimaan Taman Kanak-Kanak (Nursery School)

Data yang digunakan adalah Nursery Dataset (nursery.data) dari UCI Machine Learning Repository, berisi 12.960 data hasil evaluasi aplikasi pendaftaran taman kanak-kanak di Ljubljana, Slovenia pada era 1980-an, ketika terjadi kelebihan permintaan sehingga dibutuhkan metode penilaian yang eksplisit. Variabel respon class merupakan rekomendasi penerimaan yang bersifat ordinal (berjenjang dari yang paling tidak direkomendasikan hingga paling prioritas):

Urutan Kategori Keterangan
1 not_recom Tidak direkomendasikan
2 recommend Direkomendasikan
3 very_recom Sangat direkomendasikan
4 priority Prioritas
5 spec_prior Prioritas khusus

Variabel prediktor yang tersedia:

Variabel Keterangan
parents Status pekerjaan orang tua (usual, pretentious, great_pret)
has_nurs Kualitas tempat penitipan sebelumnya
form Struktur keluarga (complete, incomplete, foster, dll.)
children Jumlah anak (1, 2, 3, more)
housing Kondisi perumahan
finance Kondisi keuangan keluarga
social Kondisi sosial keluarga
health Kondisi kesehatan anak

5.2.1 Langkah 1 β€” Impor dan Persiapan Data

Data tidak memiliki baris header, sehingga nama kolom didefinisikan secara manual, dan variabel respon class diubah menjadi ordered factor sesuai urutan rekomendasinya.

library(MASS)

# Nama-nama kolom sesuai dokumentasi nursery.names (UCI)
nama_kolom <- c("parents", "has_nurs", "form", "children",
                "housing", "finance", "social", "health", "class")

# Membaca data
nursery <- read.csv("nursery.data", header = FALSE, col.names = nama_kolom)

# Mengubah variabel respon menjadi ordered factor sesuai tingkat rekomendasi
nursery$class <- factor(nursery$class,
                         levels = c("not_recom", "recommend", "very_recom",
                                    "priority", "spec_prior"),
                         ordered = TRUE)

# Struktur data
str(nursery)

# Distribusi variabel respon
table(nursery$class)

Catatan: Kategori recommend hanya memiliki 2 pengamatan dari total 12.960 data (sangat jarang). Dalam praktik nyata, kategori dengan frekuensi sangat kecil sebaiknya digabung dengan kategori terdekat (misalnya digabung ke very_recom) agar pendugaan parameter model lebih stabil. Pada contoh ini, kategori tetap dipertahankan apa adanya untuk tujuan ilustrasi.

5.2.2 Langkah 2 β€” Membangun Model Regresi Logistik Ordinal

# Membangun model ordinal (Proportional Odds Model)
model_ordinal <- polr(class ~ parents + has_nurs + form + children +
                         housing + finance + social + health,
                       data = nursery,
                       Hess = TRUE)

# Ringkasan model
summary(model_ordinal)

5.2.3 Langkah 3 β€” Uji Signifikansi Koefisien

Fungsi polr() tidak menampilkan p-value secara langsung, sehingga perlu dihitung manual berdasarkan sebaran normal baku.

# Menghitung p-value dari nilai t
ctable <- coef(summary(model_ordinal))
p_value <- pnorm(abs(ctable[, "t value"]), lower.tail = FALSE) * 2
hasil_uji <- cbind(ctable, "p value" = p_value)
round(hasil_uji, 4)

5.2.4 Langkah 4 β€” Interpretasi Koefisien melalui Odds Ratio

# Menghitung Odds Ratio beserta interval kepercayaan 95%
exp(cbind(OR = coef(model_ordinal), confint(model_ordinal)))

Cara Membaca Output:

  • Koefisien menunjukkan efek prediktor terhadap peluang kumulatif berada pada kategori rekomendasi yang lebih tinggi.
  • Jika \(OR>1\), kategori prediktor tersebut cenderung meningkatkan peluang memperoleh rekomendasi yang lebih tinggi (misalnya dari priority menuju spec_prior).
  • Contoh interpretasi: kondisi health = recommended diperkirakan memiliki odds yang jauh lebih tinggi untuk memperoleh rekomendasi penerimaan yang lebih baik dibandingkan health = not_recom, sejalan dengan logika sistem penilaiannya.

5.2.5 Langkah 5 β€” Uji Asumsi Proportional Odds

Asumsi parallel lines (proportional odds) perlu diuji agar model layak digunakan. Salah satu cara sederhana adalah membandingkan model ordinal dengan pendekatan generalized ordinal logit menggunakan uji Brant.

library(brant)

# Uji Brant untuk asumsi proportional odds
brant(model_ordinal)

Catatan Penting:

Jika hasil uji Brant menunjukkan p-value < 0.05 pada salah satu variabel (omnibus atau per-variabel), berarti asumsi proportional odds tidak terpenuhi untuk variabel tersebut. Dalam kondisi ini, dapat dipertimbangkan penggunaan Generalized Ordinal Logistic Regression (misalnya melalui package VGAM dengan fungsi vglm()) sebagai alternatif yang lebih fleksibel.

5.2.6 Langkah 6 β€” Evaluasi Ketepatan Klasifikasi Model

# Prediksi kelas oleh model
prediksi_class <- predict(model_ordinal, newdata = nursery)

# Matriks konfusi
tabel_konfusi <- table(Prediksi = prediksi_class, Aktual = nursery$class)
tabel_konfusi

# Akurasi klasifikasi model
akurasi <- sum(diag(tabel_konfusi)) / sum(tabel_konfusi)
akurasi

Catatan Penting:

Karena kategori recommend hanya memiliki 2 pengamatan, model hampir dapat dipastikan tidak pernah memprediksi kategori tersebut dengan benar. Hal ini menunjukkan pentingnya mempertimbangkan penggabungan kategori langka sebelum pemodelan, atau menggunakan ukuran evaluasi yang memperhitungkan ketidakseimbangan kelas.

6 Poisson Regression

6.1 Konsep

Regresi Poisson digunakan untuk memodelkan data cacah (count data), yaitu jumlah kejadian dalam suatu interval waktu, ruang, atau area tertentu. Model ini mengasumsikan variabel respon mengikuti distribusi Poisson, dengan fungsi link logaritmik:

\[ \log(\mu)=\beta_0+\beta_1X_1+\dots+\beta_kX_k \]

di mana \(\mu = E(Y|X)\) adalah rata-rata jumlah kejadian.

6.2 Asumsi Model

  • Variabel respon berupa data cacah non-negatif (0, 1, 2, …).
  • Equidispersion: rata-rata dan varians dari variabel respon bernilai sama (\(E(Y)=Var(Y)\)).
  • Kejadian bersifat independen satu sama lain.
  • Jika terjadi overdispersion (varians > rata-rata), sebaiknya digunakan Regresi Binomial Negatif sebagai alternatif.

6.3 Interpretasi Koefisien: Incidence Rate Ratio (IRR)

\[ IRR=e^{\beta} \]

  • \(IRR>1\): kenaikan satu satuan \(X\) akan meningkatkan rata-rata jumlah kejadian.
  • \(IRR<1\): kenaikan satu satuan \(X\) akan menurunkan rata-rata jumlah kejadian.
  • \(IRR=1\): variabel \(X\) tidak berpengaruh terhadap rata-rata jumlah kejadian.

Contoh Kasus

Seorang peneliti ingin mengetahui pengaruh volume kendaraan terhadap jumlah kecelakaan lalu lintas per bulan pada suatu ruas jalan.

# Membangun model Poisson
model_poisson <- glm(jumlah ~ volume,
                      family = poisson(link = "log"),
                      data = data)

# Ringkasan model
summary(model_poisson)

# Menghitung Incidence Rate Ratio (IRR)
exp(cbind(IRR = coef(model_poisson), confint(model_poisson)))

# Mengecek overdispersion
dispersi <- sum(residuals(model_poisson, type = "pearson")^2) / model_poisson$df.residual
dispersi

Catatan Penting:

Jika nilai rasio dispersi jauh lebih besar dari 1, model mengalami overdispersion, dan sebaiknya digunakan glm.nb() dari package MASS (Regresi Binomial Negatif) sebagai alternatif yang lebih sesuai.

7 Perbandingan dan Pemilihan Model

Model Skala Respon Jumlah Kategori Fungsi Link Ukuran Efek
Binary Logistic Nominal 2 Logit Odds Ratio (OR)
Multinomial Logistic Nominal >2 (tanpa urutan) Logit (generalized) Relative Risk Ratio (RRR)
Ordinal Logistic Ordinal >2 (berurutan) Cumulative Logit Odds Ratio (OR)
Poisson Regression Cacah (count) - Log Incidence Rate Ratio (IRR)

7.1 Diagram Alur Pemilihan Model

Apakah variabel respon berupa data cacah (count)?
β”œβ”€β”€ Ya  β†’ Poisson Regression (periksa overdispersion β†’ Binomial Negatif)
└── Tidak
     └── Apakah kategori respon memiliki urutan?
          β”œβ”€β”€ Ya  β†’ Ordinal Logistic Regression
          └── Tidak
               └── Berapa jumlah kategori respon?
                    β”œβ”€β”€ 2 kategori  β†’ Binary Logistic Regression
                    └── >2 kategori β†’ Multinomial Logistic Regression

8 Ringkasan

Model Digunakan Untuk Contoh Kasus
Binary Logistic Respon dua kategori Kelulusan mahasiswa
Multinomial Logistic Nominal lebih dari dua kategori Pemilihan moda transportasi
Ordinal Logistic Data berurutan/berjenjang Tingkat kepuasan pelanggan
Poisson Regression Data jumlah kejadian Jumlah kecelakaan lalu lintas

9 Penutup

Pemilihan model analisis data kategori harus disesuaikan dengan jenis dan skala variabel respon: apakah biner, nominal dengan banyak kategori, ordinal, atau berupa data cacah. Memahami karakteristik data merupakan langkah awal yang krusial untuk memperoleh model yang tepat, interpretasi yang akurat, serta kesimpulan yang dapat dipertanggungjawabkan secara statistik.

Selain memilih model yang sesuai, seorang analis juga perlu memperhatikan pemeriksaan asumsi, uji kesesuaian model (goodness of fit), serta validasi hasil sebelum menarik kesimpulan akhir. Dengan pemahaman yang baik terhadap keempat model dalam ebook ini, pembaca diharapkan mampu menerapkan analisis data kategori secara tepat pada berbagai studi kasus di bidang masing-masing.

10 Daftar Pustaka

  • Agresti, A. (2013). Categorical Data Analysis (3rd ed.). Wiley.
  • Hosmer, D. W., Lemeshow, S., & Sturdivant, R. X. (2013). Applied Logistic Regression (3rd ed.). Wiley.
  • McCullagh, P., & Nelder, J. A. (1989). Generalized Linear Models (2nd ed.). Chapman and Hall.
  • Cameron, A. C., & Trivedi, P. K. (2013). Regression Analysis of Count Data (2nd ed.). Cambridge University Press.