Contents

Kata Pengantar

1. Pendahuluan

1.1 Tujuan Analisis Data Kategori

1.1.1 Mengidentifikasi Pola dan Tren

1.1.2 Menganalisis Hubungan Antarvariabel

1.1.3 Membantu dalam Pengambilan Keputusan

1.1.4 Mengembangkan Model Prediktif

1.2 Definisi dan Ruang Lingkup Analisis Data Kategori

1.2.1 Nominal vs Ordinal

1.2.2 Data Biner vs Multikategori

1.3 Perbedaan dengan Data Kuantitatif

1.4 Manfaat Analisis Data Kategori dalam Berbagai Bidang

1.4.1 Ilmu Sosial dan Psikologi

1.4.2 Kesehatan dan Kedokteran

1.4.3 Pemasaran dan Bisnis

1.4.4 Pendidikan

1.4.5 Kebijakan Publik dan Pemerintahan

1.4.6 Keamanan dan Kriminalitas

2. Metode dalam Analisis Data Kategori

2.1 Tabel Kontingensi dan Uji Chi-Square

2.2 Regresi Logistik

2.3 Analisis Correspondence (CA)

2.4 Decision Tree dan Random Forest

3. Distribusi Probabilitas dalam Data Kategori

3.1 Distribusi Bernoulli

3.2 Distribusi Binomial

3.3 Distribusi Multinomial

3.4 Distribusi Poisson

4. Desain Sampling dalam Analisis Data Kategori

4.1 Prospective Sampling

4.1.1 Eksperimen

4.1.2 Studi Kohort

4.2 Retrospective Sampling

4.2.1 Studi Kasus-Kontrol

4.2.2 Studi Kohort Retrospektif

4.3 Tabel Perbandingan Desain Sampling

5. Tabel Kontingensi 2 × 2

5.1 Distribusi Peluang dalam Tabel Kontingensi 2 × 2

5.1.1 Peluang Bersama

5.1.2 Peluang Marginal

5.1.3 Peluang Bersyarat

5.2 Ukuran Asosiasi dalam Data Kategori 2 × 2

5.2.1 Risk Difference (RD)

5.2.2 Relative Risk (RR)

5.2.3 Odds Ratio (OR)

6. Inferensi Tabel Kontingensi Dua Arah

6.1 Estimasi

6.1.1 Estimasi Titik

6.1.2 Estimasi Interval

6.2 Uji Hipotesis

6.2.1 Uji Proporsi

6.2.2 Uji Asosiasi

6.2.3 Uji Independensi

6.3 Analisis Residual dalam Tabel Kontingensi

6.3.1 Jenis Residual

6.3.2 Deteksi Outlier dalam Analisis Data Kategori Menggunakan Residual

7. Tabel Kontingensi Tiga Arah

7.1 Tabel Parsial dan Marginal

7.2 Distribusi Peluang

7.3 Tabel Peluang Bersyarat

7.4 Ukuran Asosiasi

7.4.1 Tabel Kontingensi Parsial

7.5 Conditional Independence

7.6 Marginal Y dan X

7.7 Inferensi Tabel Kontingensi Tiga Arah

7.7.1 Independensi Bersyarat dalam Tabel Kontingensi Tiga Arah

7.7.2 Pengujian Statistik untuk Independensi Bersyarat

7.7.3 Odds Ratio Bersama

7.7.4 Uji Homogenitas Odds Ratio dengan Statistik Breslow-Day

8. Generalized Linear Model (GLM)

8.1 Exponential Family

8.2 Model Regresi Logistik

8.3 Model Regresi Poisson

9. Inferensi GLM

9.1 Mencari Ekspektasi dan Varians dalam GLM

9.2 Metode Penaksiran Parameter

9.3 Diagnostik Model GLM

9.4 Detail Metode Estimasi dan Inferensi Regresi Logistik

9.5 Detail Metode Estimasi dan Inferensi Regresi Poisson

Studi Kasus

10. Model Log-Linear

10.1 Tabel Kontingensi dan Peluang

10.2 Independensi Marginal, Kondisional, dan Mutual

10.3 Struktur Model Log-Linear

10.4 Penulisan Model Log-Linear

10.5 Parameter dan Interpretasi Model Log-Linear

11. Estimasi Model Log-Linear

11.1 Maximum Likelihood Estimation (MLE)

11.2 Iterative Proportional Fitting (IPF)

11.3 Goodness of Fit

11.4 Nilai Harapan dan Deviance

12. Pengujian Hipotesis Model Log-Linear

12.1 Deviasi dan Nilai Chi-Square

12.2 Likelihood Ratio Test (LRT)

12.3 Perbandingan Model Hierarkis

12.4 Contoh Uji Signifikansi Interaksi

13. Model Log-Linear untuk Tabel Kontingensi Tiga Arah

13.1 Model Mutual Independence

13.2 Model Joint Independence

13.3 Model Conditional Independence

13.4 Model Saturated

13.5 Perbandingan Model

14. Analisis Data HIV/AIDS: Studi Kasus

14.1 Deskripsi Data dan Koding Variabel

14.2 Tabel Kontingensi dan Frekuensi

14.3 Visualisasi Data

14.4 Analisis Awal dan Transformasi

15. Penyusunan Model Log-Linear Awal

15.1 Model Mutual dan Joint Independence

15.2 Conditional Independence X dan Y terhadap Z

15.3 Model dengan Interaksi Dua Arah

15.4 Model Saturated

16. Pengujian Kelayakan Model

16.1 Goodness of Fit (GOF) Model

16.2 Nilai Harapan dan Residual Pearson

16.3 Perbandingan Antarmodel

17. Pemodelan Bertingkat dan Hierarkis

17.1 Struktur Model Bertingkat

17.2 Prinsip Hierarki Model

17.3 Model Subset Interaksi

17.4 Urutan Pengujian Model

18. Pengujian Hipotesis Interaksi Dua dan Tiga Arah

18.1 Model tanpa Interaksi 3 Arah

18.2 Model Interaksi Dua Arah Saja

18.3 Model dengan Interaksi Tertentu

18.4 Pengujian LRT antara Model

19. Pemilihan Model Final

19.1 Kriteria Pemilihan Model

19.2 GOF, AIC, dan Parsimoni

19.3 Model Terpilih dan Justifikasinya

20. Interpretasi Interaksi Dua Arah

20.1 Interpretasi Parameter Interaksi

20.2 Odds Ratio dalam Model

20.3 Pengujian Hipotesis Interaksi X dan Y (Conditional on Z vs Homogenous)

21. Pemilihan Model Terbaik

21.1 Ringkasan Model Log-Linear

21.2 Ringkasan Pengujian Interaksi 3 Arah dan 2 Arah

21.3 Kesimpulan Pemilihan Model Terbaik

22. Model Terbaik

22.1 Struktur Model Terbaik

22.2 Evaluasi Kecocokan Model

23. Interpretasi Koefisien Model Terbaik

23.1 Interpretasi Koefisien Model Terbaik

23.2 Implikasi Hasil terhadap Kasus HIV/AIDS

24. Nilai Dugaan Model Terbaik

24.1 Perhitungan Manual Nilai Dugaan (Fitted Value) Model Terbaik

24.2 Perbandingan Nilai Dugaan dan Observasi

Studi Kasus

Referensi

Kata Pengantar

Puji syukur penulis panjatkan ke hadirat Allah SWT karena atas rahmat dan karunia-Nya, e-Book ini yang berjudul Analisis Data Kategori dapat disusun dan diselesaikan dengan baik. Buku ini dibuat sebagai salah satu bentuk dokumentasi materi perkuliahan serta referensi belajar mandiri bagi mahasiswa dan praktisi yang ingin memahami dasar-dasar dan penerapan analisis data kategori dalam penelitian.

Analisis data kategori memiliki peran penting dalam berbagai bidang, terutama ilmu sosial, kesehatan, dan pendidikan, di mana data yang dikumpulkan sering kali berbentuk nominal atau ordinal. Dalam buku ini, pembaca akan dibimbing mulai dari konsep dasar, penyusunan tabel kontingensi, uji chi-square, hingga analisis regresi logistik dan model log-linear, dengan dilengkapi contoh-contoh praktis yang diimplementasikan menggunakan perangkat lunak R.

Penulis menyadari bahwa penyusunan e-Book ini masih jauh dari sempurna. Oleh karena itu, kritik dan saran yang membangun.

Akhir kata, penulis mengucapkan terima kasih kepada semua pihak yang telah

memberikan dukungan dan kontribusi, baik secara langsung maupun tidak langsung,

dalam penyusunan buku ini. Semoga eBook ini dapat memberikan manfaat dan menjadi

rujukan yang berguna dalam proses belajar dan penelitian.

Bandung, April 2025

Hilya Hamidah

Bab 1. Pendahuluan

1.1 Tujuan Analisis Data Kategori

Analisis data kategori merupakan bagian penting dalam statistik modern karena banyak data dalam penelitian sosial, kesehatan, ekonomi, dan bidang lainnya berbentuk kategori. Tujuan utama dari analisis data kategori adalah memahami informasi yang tersimpan dalam data non-numerik dan menggunakan informasi tersebut untuk menjawab pertanyaan penelitian, menguji hipotesis, serta mendukung pengambilan keputusan. Berikut ini adalah beberapa tujuan utama dari analisis data kategori.

1.1.1 Mengidentifikasi Pola dan Tren

Salah satu tujuan penting dari analisis data kategori adalah untuk mengidentifikasi pola dalam distribusi data. Misalnya, peneliti mungkin ingin mengetahui apakah ada kecenderungan preferensi konsumen terhadap merek tertentu atau apakah persepsi masyarakat terhadap suatu isu berbeda menurut kelompok usia.

Dengan menggunakan tabel kontingensi, diagram batang, dan statistik deskriptif, peneliti dapat mengenali pola yang muncul dalam data, baik yang eksplisit maupun tersembunyi. Identifikasi pola ini menjadi landasan awal sebelum dilakukan analisis yang lebih kompleks.

1.1.2 Menganalisis Hubungan Antarvariabel

Analisis data kategori juga bertujuan untuk mengetahui hubungan antara dua atau lebih variabel kategori. Misalnya, apakah terdapat hubungan antara jenis kelamin dan preferensi produk? Apakah status pekerjaan berhubungan dengan tingkat kepuasan terhadap layanan publik?

Hubungan antar variabel ini dapat diuji menggunakan uji chi-kuadrat, koefisien kontingensi, atau teknik statistik lanjutan seperti model log-linear dan regresi logistik. Melalui analisis ini, peneliti dapat memahami sejauh mana dua variabel berkaitan secara statistik dan substantif.

1.1.3 Membantu dalam Pengambilan Keputusan

Dalam konteks praktis, analisis data kategori memberikan dasar yang kuat untuk pengambilan keputusan berbasis data. Baik dalam dunia bisnis, kebijakan publik, maupun layanan kesehatan, keputusan yang didasarkan pada pemahaman data kategori cenderung lebih tepat sasaran.

Contohnya, perusahaan dapat menggunakan hasil analisis preferensi kategori untuk menyusun strategi pemasaran, sementara instansi pemerintah dapat menyesuaikan kebijakan berdasarkan data persepsi publik terhadap program tertentu.

1.1.4 Mengembangkan Model Prediktif

Analisis data kategori juga dapat digunakan untuk mengembangkan model prediktif terhadap suatu kejadian berdasarkan variabel-variabel kategori. Contohnya adalah memprediksi kemungkinan seseorang membeli produk tertentu berdasarkan jenis kelamin, status pernikahan, dan kategori penghasilan.

Teknik seperti regresi logistik memungkinkan peneliti membangun model prediksi dengan variabel dependen kategori (misalnya: sukses/gagal, ya/tidak) dan variabel independen yang juga bisa berupa kategori. Ini sangat berguna dalam penelitian terapan dan pengembangan sistem pendukung keputusan.

1.2 Definisi dan Ruang Lingkup Analisis Data Kategori

Analisis data kategori adalah cabang dari statistik yang fokus pada data yang diklasifikasikan ke dalam kelompok-kelompok diskrit atau kategori, bukan nilai-nilai numerik kontinu. Pendekatan ini digunakan ketika data tidak memiliki skala kuantitatif, tetapi memiliki informasi yang penting dalam bentuk klasifikasi atau pengelompokan.

Data kategori banyak dijumpai dalam penelitian sosial, pemasaran, epidemiologi, pendidikan, dan bidang lain yang berkaitan dengan perilaku, opini, dan klasifikasi objek. Oleh karena itu, analisis terhadap data jenis ini mencakup berbagai teknik statistik yang dirancang khusus untuk menangani informasi yang bersifat kualitatif.

1.2.1 Nominal vs Ordinal

Data kategori dapat dibagi menjadi dua jenis utama berdasarkan tingkat pengukurannya: data nominal dan data ordinal.

Data Nominal Data nominal adalah data kategori yang tidak memiliki urutan atau peringkat di antara kategorinya. Setiap kategori bersifat unik dan tidak ada satu kategori pun yang lebih tinggi atau lebih rendah dari yang lain. Contoh:

Jenis kelamin: laki-laki, perempuan

Warna favorit: merah, biru, hijau

Status pernikahan: lajang, menikah, bercerai

Dalam analisis, data nominal hanya bisa dihitung frekuensinya dan diproses dengan metode seperti uji chi-kuadrat atau visualisasi seperti diagram batang.

Data Ordinal Data ordinal adalah data kategori yang memiliki urutan atau peringkat, tetapi jarak antar kategorinya tidak terdefinisi secara kuantitatif. Contoh:

Tingkat pendidikan: SD, SMP, SMA, Sarjana

Tingkat kepuasan: sangat tidak puas, tidak puas, netral, puas, sangat puas

Karena ada urutan, data ordinal bisa dianalisis dengan teknik statistik yang mempertimbangkan ranking, seperti uji Mann-Whitney atau regresi ordinal.

Memahami perbedaan antara nominal dan ordinal penting karena pemilihan metode analisis bergantung pada jenis data kategori yang digunakan.

1.2.2 Data Biner vs Multikategori

Selain berdasarkan skala pengukuran, data kategori juga dapat diklasifikasikan berdasarkan jumlah kategori yang dimilikinya:

Data Biner (Dikotom) Data biner adalah data yang hanya memiliki dua kategori. Jenis data ini sering dijumpai dalam pengambilan keputusan (ya/tidak), keberhasilan (berhasil/gagal), atau keberadaan (ada/tidak ada). Contoh:

Lulus ujian: ya atau tidak

Status bekerja: bekerja atau tidak bekerja

Analisis terhadap data biner sering kali menggunakan regresi logistik biner, yang merupakan bentuk paling dasar dari model prediksi berbasis kategori.

Data Multikategori Data multikategori memiliki lebih dari dua kategori, baik yang bersifat nominal maupun ordinal. Contoh:

Jenis pekerjaan: guru, dokter, insinyur, pedagang

Tingkat pendidikan: tidak sekolah, SD, SMP, SMA, universitas

Untuk jenis data ini, analisis bisa dilakukan dengan model yang lebih kompleks seperti regresi logistik multinomial (untuk nominal) atau regresi logistik ordinal (untuk ordinal), serta model log-linear untuk hubungan antar beberapa kategori.

1.3 Perbedaan dengan Data Kuantitatif

Dalam statistika, data dapat diklasifikasikan menjadi dua jenis utama: data kuantitatif dan data kualitatif (kategori). Perbedaan antara keduanya penting untuk dipahami karena akan menentukan jenis analisis dan metode statistik yang dapat digunakan.

Aspek Data Kategori (Kualitatif) Data Kuantitatif (Numerik)
Sifat Data Berupa label atau kategori Berupa angka dan dapat diukur
Contoh Jenis kelamin, warna, tingkat pendidikan Umur, berat badan, penghasilan
Skala Pengukuran Nominal atau ordinal Interval atau rasio
Operasi Matematis Tidak dapat dilakukan (tidak bisa dijumlahkan atau dirata-ratakan) Dapat dilakukan (penjumlahan, rata-rata, dsb)
Analisis Statistik Uji chi-kuadrat, regresi logistik, model log-linear Uji-t, ANOVA, regresi linear

Karena data kategori tidak memiliki nilai numerik yang mencerminkan besaran, maka metode statistik konvensional seperti regresi linear atau analisis varians tidak dapat diterapkan secara langsung. Sebaliknya, dibutuhkan pendekatan khusus yang disesuaikan dengan sifat diskrit dan klasifikatif dari data tersebut.

1.4 Manfaat Analisis Data Kategori dalam Berbagai Bidang

Analisis data kategori memiliki penerapan luas di berbagai bidang kehidupan. Karena banyak fenomena nyata yang dinyatakan dalam bentuk kategori, kemampuan untuk menganalisis data kategori sangat penting. Berikut adalah beberapa bidang utama dan manfaat analisis data kategori dalam konteks masing-masing:

1.4.1 Ilmu Sosial dan Psikologi

Dalam ilmu sosial dan psikologi, data yang diperoleh sering kali berupa persepsi, sikap, pilihan, atau klasifikasi sosial. Analisis data kategori memungkinkan peneliti:

Menggali hubungan antara status sosial dan sikap politik.

Menganalisis hubungan antara jenis kelamin dan preferensi perilaku.

Menilai efektivitas intervensi berdasarkan kategori hasil (misalnya, berhasil/gagal).

1.4.2 Kesehatan dan Kedokteran

Data dalam bidang medis dan kesehatan masyarakat sangat sering bersifat kategorikal. Contohnya:

Diagnosa penyakit (positif/negatif).

Kategori tingkat keparahan gejala (ringan/sedang/berat).

Jenis terapi yang digunakan (farmakologis/non-farmakologis).

Analisis data kategori penting untuk memahami faktor risiko, efektivitas pengobatan, dan pengaruh variabel demografis terhadap status kesehatan.

1.4.3 Pemasaran dan Bisnis

Dalam bisnis, banyak keputusan diambil berdasarkan preferensi konsumen, segmentasi pasar, atau hasil survei yang berbentuk kategori. Analisis data kategori dapat digunakan untuk:

Memprediksi preferensi pelanggan terhadap produk tertentu.

Mengelompokkan pelanggan berdasarkan karakteristik demografis.

Menilai kepuasan pelanggan berdasarkan kategori layanan.

1.4.4 Pendidikan

Dalam dunia pendidikan, analisis data kategori membantu dalam:

Mengkaji hubungan antara latar belakang siswa dan keberhasilan belajar.

Menilai kategori motivasi belajar atau gaya belajar siswa.

Mengklasifikasikan sekolah berdasarkan kinerja atau akreditasi.

1.4.5 Kebijakan Publik dan Pemerintahan

Dalam perumusan dan evaluasi kebijakan, data kategori banyak digunakan, misalnya:

Kategori penerima bantuan sosial.

Persepsi masyarakat terhadap kebijakan tertentu.

Jenis pelayanan publik yang paling dibutuhkan masyarakat.

Analisis data kategori membantu pengambil kebijakan untuk merancang program yang lebih tepat sasaran.

1.4.6 Keamanan dan Kriminalitas

Bidang ini menggunakan data kategori seperti:

Jenis kejahatan (pencurian, perampokan, kekerasan).

Status tersangka (tersangka/terpidana).

Wilayah rawan kejahatan (klasifikasi zona).

Analisis kategori dapat digunakan untuk memetakan risiko, menganalisis pola kriminalitas, dan menyusun strategi pencegahan.

Bab 2. Metode dalam Analisis Data Kategori

Analisis data kategori melibatkan berbagai pendekatan statistik yang dirancang khusus untuk menangani data non-numerik. Metode-metode ini bertujuan untuk mengidentifikasi pola, hubungan antar variabel, dan membuat prediksi berdasarkan kategori. Berikut ini beberapa metode utama yang digunakan.

2.1 Tabel Kontingensi dan Uji Chi-Square

Tabel kontingensi adalah representasi dua dimensi yang menampilkan frekuensi observasi dari dua variabel kategori. Misalnya, hubungan antara jenis kelamin (laki-laki/perempuan) dan preferensi produk (A/B/C) dapat disajikan dalam bentuk tabel kontingensi 2x3.

Untuk mengetahui apakah ada hubungan antara dua variabel kategori dalam tabel kontingensi, digunakan uji chi-square (χ²). Uji ini mengukur apakah frekuensi yang diamati secara signifikan berbeda dari frekuensi yang diharapkan jika tidak ada hubungan.

Langkah-langkah umum uji chi-square:

Menyusun tabel kontingensi.

Menghitung frekuensi harapan (expected frequency).

Menghitung nilai chi-square:

Syntax
##contoh untuk data 2×2

data <- matrix(c(30, 20, 10, 40), nrow = 2, byrow = TRUE)

colnames(data) <- c("Positif", "Negatif")

rownames(data) <- c("Kelompok A", "Kelompok B")

##Uji Chi-square

chisq.test(data)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  data
## X-squared = 15.042, df = 1, p-value = 0.0001052

Regresi logistik adalah metode statistik yang digunakan untuk memodelkan hubungan antara satu variabel dependen kategori (biasanya biner) dan satu atau lebih variabel independen.

a. Regresi Logistik Biner

Digunakan ketika variabel dependen hanya memiliki dua kategori (misalnya: ya/tidak, sukses/gagal).

Model dasarnya :

dengan p probabilitas kejadian (misalnya, membeli produk).

Syntax
##Contoh data

data <- data.frame(

status = c(1, 0, 1, 0, 1, 0), # 1 = HIV+, 0 = HIV-

usia = c(25, 40, 35, 28, 32, 50),

jenis_kelamin = factor(c("L", "P", "L", "L", "P", "P")) )

##Model regresi logistik

model <- glm(status ~ usia + jenis_kelamin, family = binomial, data = data) 
summary(model)
## 
## Call:
## glm(formula = status ~ usia + jenis_kelamin, family = binomial, 
##     data = data)
## 
## Coefficients:
##                Estimate Std. Error z value Pr(>|z|)
## (Intercept)      6.2020     5.8973   1.052    0.293
## usia            -0.1848     0.1902  -0.972    0.331
## jenis_kelaminP   0.3100     2.3742   0.131    0.896
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 8.3178  on 5  degrees of freedom
## Residual deviance: 6.4075  on 3  degrees of freedom
## AIC: 12.408
## 
## Number of Fisher Scoring iterations: 4

b. Regresi Logistik Multinomial

Digunakan untuk variabel dependen dengan lebih dari dua kategori tanpa urutan (misalnya: memilih merek A, B, atau C).

c. Regresi Logistik Ordinal

Digunakan ketika variabel dependen memiliki lebih dari dua kategori yang terurut (misalnya: rendah, sedang, tinggi).

Regresi logistik sangat fleksibel dan memungkinkan untuk memasukkan variabel prediktor kategori maupun numerik.

2.2 Analisis Correspondence (CA)

Correspondence Analysis (CA) adalah teknik eksplorasi data yang digunakan untuk menganalisis hubungan antara dua variabel kategori dalam sebuah tabel kontingensi.

Tujuan utama CA adalah mengubah tabel kontingensi menjadi peta dua dimensi sehingga hubungan antar kategori bisa divisualisasikan secara grafis. Ini sangat berguna untuk memahami asosiasi antara baris dan kolom dalam tabel.

Manfaat CA:

  • Menyajikan hasil dalam bentuk visual (biplot).

  • Mempermudah interpretasi hubungan kompleks.

  • Berguna dalam survei opini, analisis preferensi, dan data demografis.

CA mirip dengan analisis faktor atau PCA (Principal Component Analysis), tetapi digunakan untuk data kategori.

2.3 Decision Tree dan Random Forest

Decision tree dan random forest merupakan metode klasifikasi yang kuat dan populer, terutama untuk data kategori.

a. Decision Tree (Pohon Keputusan)

Metode ini membuat model prediktif dalam bentuk pohon bercabang, di mana setiap cabang mewakili keputusan berdasarkan nilai suatu fitur kategori.

  • Mudah diinterpretasikan.

  • Cocok untuk prediksi dengan variabel input kategori.

  • Contoh algoritma: CART, ID3, C4.5.

b. Random Forest

Random forest merupakan pengembangan dari decision tree dengan membuat banyak pohon keputusan dan menggabungkan hasilnya (ensemble learning).

  • Lebih akurat dan stabil dibanding pohon tunggal.

  • Dapat mengatasi overfitting.

  • Cocok untuk dataset besar dan kompleks.

Metode ini banyak digunakan dalam bidang pemasaran, keuangan, dan ilmu sosial, terutama dalam prediksi berbasis kategori seperti churn pelanggan, klasifikasi risiko, dan segmentasi konsumen.

Bab 3. Distribusi Probabilitas dalam Data Kategori

Dalam analisis data kategori, distribusi probabilitas digunakan untuk memodelkan kemungkinan hasil dari variabel kategori. Distribusi ini membantu dalam membuat inferensi statistik dan membangun model prediktif. Berikut adalah beberapa distribusi penting yang sering digunakan dalam konteks data kategori.

3.1 Distribusi Bernoulli

Distribusi Bernoulli digunakan untuk memodelkan eksperimen dengan dua hasil saja, seperti “sukses/gagal” atau “ya/tidak”

  • Variabel acak X mengikuti distribusi Bernoulli jika:

  • Contoh: Hasil uji COVID-19 (positif = 1, negatif = 0).

  • Rataan dan varians:

Distribusi Bernoulli adalah dasar dari distribusi binomial.

Syntax

library(knitr) library(kableExtra) library(dplyr)

set.seed(123)

bernoulli_sample <- rbinom(n = 10, size = 1, prob = 0.5)

bernoulli_sample

3.2 Distribusi Binomial

Distribusi binomial merupakan perluasan dari distribusi Bernoulli untuk n percobaan independen yang identik, masing-masing dengan dua kemungkinan hasil.

  • Jika X∼Bin(n,p), maka:

untuk k=0,1,2,…,nk = 0, 1, 2, …, nk=0,1,2,…,n

  • Contoh: Jumlah pelanggan yang membeli produk (dari total 10 pelanggan) jika probabilitas membeli adalah 0,3.

  • Rataan dan varians:

Distribusi binomial sangat penting dalam analisis respon biner (misalnya dalam regresi logistik biner).

##### Syntax
set.seed(123) 
binomial_sample <- rbinom(n = 10, size = 5, prob = 0.5) 
# 10 percobaan Binomial dengan 5 ulangan

binomial_sample
##  [1] 2 3 2 4 4 1 3 4 3 2

3.3 Distribusi Multinomial

Distribusi multinomial adalah generalisasi dari distribusi binomial ketika terdapat lebih dari dua kategori hasil untuk setiap percobaan.

  • Misalkan ada kkk kategori, dan X=(X1,X2,…,Xk)X = (X_1, X_2, …, X_k)X=(X1​,X2​,…,Xk​) menyatakan jumlah observasi pada masing-masing kategori dari total nnn percobaan.

  • Fungsi probabilitasnya:

dengan

  • Contoh: Survei preferensi tiga merek minuman dengan hasil: 30% suka A, 50% suka B, 20% suka C.

Distribusi multinomial banyak digunakan dalam pengolahan data survei dan dalam model regresi multinomial.

Syntax
set.seed(123)

multinomial_sample <- rmultinom(n = 1, size = 10, prob = c(0.3, 0.5, 0.2))

multinomial_sample
##      [,1]
## [1,]    2
## [2,]    5
## [3,]    3

3.4 Distribusi Poisson

Distribusi Poisson digunakan untuk memodelkan jumlah kejadian dalam suatu interval waktu atau ruang yang tetap, terutama saat kejadian tersebut jarang terjadi dan saling independen.

  • Fungsi probabilitas:

dengan λ adalah rata-rata kejadian dalam satu interval.

  • Contoh: Jumlah kecelakaan lalu lintas di satu jalan dalam sehari.

  • Rataan dan varians:

    Walaupun Poisson sering digunakan untuk data hitung, ia juga relevan dalam konteks data kategori ketika jumlah kejadian diklasifikasikan ke dalam kategori-kategori (misalnya, berdasarkan wilayah atau jenis).

Syntax
set.seed(123)

poisson_sample <- rpois(10, lambda = 3) 
# 10 sampel dengan rata-rata kejadian 3

poisson_sample
##  [1] 2 4 2 5 6 0 3 5 3 3

Contoh Soal

Sebuah penelitian dilakukan untuk melihat apakah mahasiswa yang bekerja lebih mungkin untuk tidak lulus tepat waktu dibandingkan mahasiswa yang tidak bekerja.

Hasil data dari 100 mahasiswa:

Tidak Lulus Lulus Total
Bekerja 30 20 50
Tidak Bekerja 10 40 50
Total 40 60 100

Langkah Penyelesaian

1. Risk Difference (RD)

Artinya: Mahasiswa yang bekerja memiliki risiko 40% lebih besar untuk tidak lulus dibanding yang tidak bekerja.

2. Relative Risk (RR)

Interpretasi: Mahasiswa yang bekerja memiliki 3 kali lipat risiko tidak lulus dibandingkan yang tidak bekerja.

3. Odds Ratio (OR)

Interpretasi: Peluang tidak lulus bagi mahasiswa yang bekerja adalah 6 kali lebih besar dibandingkan yang tidak bekerja.

Kesimpulan

Terdapat hubungan yang kuat antara status bekerja dan kelulusan tepat waktu. Mahasiswa yang bekerja cenderung lebih berisiko untuk tidak lulus tepat waktu.

Bab 4. Desain Sampling dalam Analisis Data Kategori

Desain sampling atau rancangan pengambilan sampel merupakan aspek krusial dalam analisis data kategori. Pemilihan desain yang tepat memengaruhi validitas hasil analisis, baik dari segi interpretasi hubungan antarvariabel maupun inferensi kausal. Dalam konteks data kategori, desain sampling umumnya diklasifikasikan menjadi dua jenis utama: prospective dan retrospective.

4.1 Prospective Sampling

Prospective sampling adalah desain di mana data dikumpulkan ke depan, mengikuti subjek dari waktu ke waktu. Tujuannya adalah untuk mengamati bagaimana variabel bebas memengaruhi kejadian atau kategori dari variabel dependen.

4.1.1 Eksperimen

Dalam eksperimen, peneliti mengendalikan pemberian perlakuan kepada subjek dan mengamati hasilnya. Ini adalah pendekatan paling kuat untuk inferensi kausal.

  • Contoh: Uji coba klinis di mana peserta secara acak diberikan obat atau plasebo, lalu hasil (misal: sembuh/tidak sembuh) diamati.

  • Kelebihan: Kontrol tinggi terhadap variabel luar.

  • Kelemahan: Bisa mahal dan tidak selalu etis (misalnya dalam studi penyakit serius).

4.1.2 Studi Kohort

Studi kohort melibatkan pemilihan sekelompok orang berdasarkan paparan terhadap suatu faktor, kemudian diikuti ke depan untuk melihat apakah mereka mengalami outcome tertentu.

  • Contoh: Studi kesehatan yang mengikuti perokok dan non-perokok untuk melihat insiden kanker paru-paru.

  • Cocok untuk menganalisis hubungan antara faktor risiko dan outcome.

  • Biasanya membutuhkan waktu lama dan biaya besar.

4.2 Retrospective Sampling

Retrospective sampling mengumpulkan data dari masa lalu, dengan mengidentifikasi outcome terlebih dahulu, lalu menelusuri variabel-variabel penyebab atau paparan.

4.2.1 Studi Kasus-Kontrol

Dalam studi kasus-kontrol, peneliti memilih dua kelompok: satu dengan outcome (kasus) dan satu tanpa (kontrol), lalu menelusuri kembali informasi paparan di masa lalu.

  • Contoh: Studi membandingkan riwayat konsumsi alkohol pada penderita kanker hati (kasus) dan orang sehat (kontrol).

  • Efisien untuk penyakit yang jarang terjadi.

  • Tidak bisa memberikan estimasi langsung tentang risiko absolut.

4.2.2 Studi Kohort Retrospektif

Serupa dengan studi kohort prospektif, tetapi menggunakan data historis. Peneliti menelusuri paparan dan outcome dari catatan masa lalu.

  • Contoh: Studi berdasarkan rekam medis rumah sakit 10 tahun terakhir.

  • Kelebihan: Cepat dan murah.

  • Kelemahan: Rentan terhadap data yang hilang dan bias informasi.

4.3 Tabel Perbandingan Desain Sampling

Aspek Eksperimen Studi Kohort Kasus-Kontrol Kohort Retrospektif
Arah Waktu Prospektif Prospektif Retrospektif Retrospektif
Pemilihan Subjek Berdasarkan Perlakuan Berdasarkan Paparan Berdasarkan Outcome Berdasarkan Paparan
Kontrol Variabel Luar Tinggi Sedang Rendah Rendah
Esrimasi Risiko Ya Ya Tidak Langsung Ya
Kekuatan Interfensi Sangat Kuat Kuat Lemah-Sedang Sedang

Contoh Soal 1

Diketahui data hasil studi tentang hubungan merokok dan kanker paru-paru:

Perokok Bukan Perokok Total
Kanker Paru-paru 240 60 300
Tidak Kanker 120 180 300
Total 360 240 600

Pertanyaan:

  1. Tentukan jenis desain sampling!

  2. Hitunglah Odds Ratio (OR)!

  3. Interpretasikan hasilnya!

Penyelesaian

Langkah 1: Identifikasi Desain Sampling

  • Langkah 1.1: Cek cara pengambilan sampel:

Data diambil dari dua kelompok berdasarkan status penyakit: yang terkena kanker dan yang tidak.

Kemudian ditelusuri apakah mereka merokok atau tidak.

Karena pengambilan data dimulai dari outcome (penyakit), maka desain ini termasuk retrospective sampling.

  • Langkah 1.2: Karena sampel dikelompokkan berdasarkan outcome dan kemudian dilihat exposure-nya, maka ini disebut studi kasus-kontrol.

Langkah 2: Hitung Odds Ratio (OR)

Odds Ratio digunakan untuk mengukur asosiasi antara paparan (merokok) dan outcome (kanker paru-paru).

Tabel 2 × 2:

Merokok (E+) Tidak Merokok (E−)
Kanker (D+) a = 240 b = 60
Tidak Kanker (D−) c = 120 d = 180

Langkah 3: Interpretasi Hasil

Odds Ratio sebesar 6 menunjukkan bahwa peluang terkena kanker paru-paru pada perokok 6 kali lebih besar dibandingkan bukan perokok. Ini menunjukkan adanya asosiasi yang kuat antara merokok dan kanker paru-paru.

Kesimpulan

  1. Desain sampling yang digunakan adalah retrospektif (studi kasus-kontrol).

  2. Nilai Odds Ratio = 6.

  3. Merokok berasosiasi positif dengan kanker paru-paru; perokok memiliki risiko lebih tinggi.

Contoh Soal 2

Diketahui data hasil studi tentang hubungan merokok dan kanker paru-paru:

Perokok Bukan Perokok Total
Kanker Paru-paru 240 60 300
Tidak Kanker 120 180 300
Total 360 240 600

Pertanyaan:

  1. Tentukan jenis desain sampling!

  2. Hitunglah Relative Risk (RR)!

  3. Hitunglah Risk Difference (RD)!

  4. Interpretasikan hasilnya!

Penyelesaian

Langkah 1: Identifikasi Desain Sampling

  • Langkah 1.1: Cek cara pengambilan sampel:

Data diambil dari dua kelompok berdasarkan status penyakit: yang terkena kanker dan yang tidak.

Kemudian ditelusuri apakah mereka merokok atau tidak.

Karena pengambilan data dimulai dari outcome (penyakit), maka desain ini termasuk retrospective sampling.

  • Langkah 1.2: Karena sampel dikelompokkan berdasarkan outcome dan kemudian dilihat exposure-nya, maka ini disebut studi kasus-kontrol.

Langkah 2: Hitung Relative Risk (RR)

Relative Risk digunakan untuk mengukur perbandingan risiko kejadian antara kelompok yang terpapar (perokok) dan yang tidak terpapar (bukan perokok).

Tabel 2 × 2:

Merokok (E+) Tidak Merokok (E−)
Kanker (D+) a = 240 b = 60
Tidak Kanker (D−) c = 120 d = 180

Langkah 3: Hitung Risk Difference (RD)

Risk Difference digunakan untuk mengukur perbedaan risiko kejadian antara dua kelompok.

Langkah 4: Interpretasi Hasil

  1. Relative Risk (RR) = 2.67:

Interpretasi: Risiko terkena kanker paru-paru pada perokok adalah 2.67 kali lebih besar dibandingkan dengan bukan perokok. Ini menunjukkan adanya asosiasi positif antara merokok dan kanker paru-paru.

  1. Risk Difference (RD) = 0.4167:

Interpretasi: Perbedaan risiko terkena kanker paru-paru antara perokok dan bukan perokok adalah 0.4167 atau 41.67%. Ini menunjukkan bahwa perokok memiliki kemungkinan 41.67% lebih tinggi untuk menderita kanker paru-paru dibandingkan dengan bukan perokok.

Kesimpulan

  1. Desain sampling yang digunakan adalah retrospektif (studi kasus-kontrol).

  2. Relative Risk (RR) = 2.67, yang berarti perokok memiliki risiko lebih tinggi untuk terkena kanker paru-paru.

  3. Risk Difference (RD) = 0.4167, yang berarti perbedaan risiko antara perokok dan bukan perokok adalah 41.67%.

Bab 5. Tabel Kontingensi 2 × 2

Tabel kontingensi 2 × 2 adalah alat penting dalam analisis data kategori untuk menyajikan dan menganalisis hubungan antara dua variabel kategorik biner. Struktur sederhana tabel ini memungkinkan perhitungan ukuran asosiasi serta pengujian signifikansi statistik.

5.1 Distribusi Peluang dalam Tabel Kontingensi 2 × 2

Tabel kontingensi 2 × 2 dapat diinterpretasikan dalam bentuk peluang, yang membantu memahami struktur probabilitas dalam data kategori.

5.1.1 Peluang Bersama

Peluang bersama menunjukkan kemungkinan dua kejadian terjadi secara bersamaan. Misal, peluang bahwa seseorang merokok dan terkena penyakit paru-paru.

Jika tabel memiliki entri:

Penyakit(+) Penyait (-) Total
Merokok (+) a b a+b
Merokok (-) c d c+d
Total a+c b+d n

Maka peluang bersama adalah:

  • P(Merokok dan Penyakit) = a / n

  • P(Merokok dan Tidak Sakit) = b / n

  • Dst.

5.1.2 Peluang Marginal

Peluang marginal adalah peluang dari satu kejadian saja, tanpa mempertimbangkan kejadian lainnya.

Contoh:

  • P(Merokok) = (a + b) / n

  • P(Penyakit) = (a + c) / n

5.1.3 Peluang Bersyarat

Peluang bersyarat adalah peluang suatu kejadian terjadi, dengan syarat kejadian lain telah terjadi.

Contoh:

  • P(Penyakit | Merokok) = a / (a + b)

  • P(Penyakit | Tidak Merokok) = c / (c + d)

Peluang bersyarat ini sangat penting dalam menghitung ukuran asosiasi seperti relative risk dan odds ratio.

Syntax
# Data Observasi

data <- matrix(c(450, 200, 50, 300), nrow = 2, byrow = TRUE)

colnames(data) <- c("Kanker Paru (+)", "Kanker Paru (-)")

rownames(data) <- c("Perokok", "Bukan Perokok")

n <- sum(data)

# Peluang Bersama

P_joint <- data / n

# Peluang Marginal

P_marginal_rows <- rowSums(data) / n

P_marginal_cols <- colSums(data) / n

# Peluang Bersyarat

P_conditional <- data / rowSums(data)

# Hasil

hasil <- list(
  Peluang_Bersama = P_joint, 
  Peluang_Marginal_Baris = P_marginal_rows, 
  Peluang_Marginal_Kolom = P_marginal_cols
)
hasil 
## $Peluang_Bersama
##               Kanker Paru (+) Kanker Paru (-)
## Perokok                  0.45             0.2
## Bukan Perokok            0.05             0.3
## 
## $Peluang_Marginal_Baris
##       Perokok Bukan Perokok 
##          0.65          0.35 
## 
## $Peluang_Marginal_Kolom
## Kanker Paru (+) Kanker Paru (-) 
##             0.5             0.5

$Peluang_Bersama

Kanker Paru (+) Kanker Paru (-)

Perokok 0.45 0.2

Bukan Perokok 0.05 0.3

$Peluang_Marginal_Baris

Perokok Bukan Perokok

0.65 0.35

$Peluang_Marginal_Kolom

Kanker Paru (+) Kanker Paru (-)

0.5 0.5

$Peluang_Bersyarat

Kanker Paru (+) Kanker Paru (-)

Perokok 0.6923077 0.3076923

Bukan Perokok 0.1428571 0.8571429

5.2 Ukuran Asosiasi dalam Data Kategori 2 × 2

Ukuran asosiasi digunakan untuk mengkuantifikasi kekuatan hubungan antara dua variabel kategorik biner.

5.2.1 Risk Difference (RD)

Risk Difference (perbedaan risiko) adalah selisih antara probabilitas outcome pada kelompok terpapar dan tidak terpapar.

  • Nilai RD = 0 menunjukkan tidak ada perbedaan risiko.

  • Positif → risiko lebih tinggi pada kelompok terpapar.

Syntax
##Contoh

RD <- function(n11, n12, n21, n22) {(n11 / (n11 + n12)) - (n21 / (n21 + n22))}

RD(50, 50, 30, 70)
## [1] 0.2

5.2.2 Relative Risk (RR)

Relative Risk (Risiko Relatif) mengukur rasio antara dua risiko

  • RR = 1 berarti tidak ada asosiasi.

  • RR > 1 → paparan meningkatkan risiko.

  • RR < 1 → paparan bersifat protektif.

Catatan: RR cocok digunakan pada studi kohort atau eksperimen.

Syntax

##Contoh

RR <- function(n11, n12, n21, n22) {

(n11 / (n11 + n12)) / (n21 / (n21 + n22))

}

RR(50, 50, 30, 70)

5.2.3 Odds Ratio (OR)

Odds Ratio mengukur rasio peluang (bukan risiko).

  • OR = 1 → tidak ada asosiasi.

  • OR > 1 → paparan dikaitkan dengan kemungkinan outcome lebih tinggi.

  • OR < 1 → paparan dikaitkan dengan kemungkinan outcome lebih rendah.

Catatan: OR umum digunakan dalam studi kasus-kontrol, karena tidak bisa menghitung RR secara langsung.

Syntax
##Contoh

OR <- function(n11, n12, n21, n22) {

(n11 * n22) / (n12 * n21)

}

OR(50, 50, 30, 70)

Contoh Soal

Diketahui data hasil penelitian tentang hubungan antara konsumsi alkohol dan kejadian hipertensi pada 200 orang dewasa sebagai berikut:

Mengkonsumsi Alkohol (E+) Tidak Mengkonsumsi Alkohol (E−) Total
Hipertensi (D+) 50 20 70
Tidak Hipertensi (D−) 70 60 130
Total 120 80 200

Pertanyaan:

  1. Tentukan Risk Difference (RD)!

  2. Tentukan Relative Risk (RR)!

  3. Tentukan Odds Ratio (OR)!

  4. Interpretasikan hasilnya!

Penyelesaian

Langkah 1: Identifikasi Tabel 2 × 2

Mengkonsumsi Alkohol (E+) Tidak Mengkonsumsi Alkohol (E−)
Hipertensi (D+) a = 50 b = 20
Tidak Hipertensi (D−) c = 70 d = 60

Langkah 2: Hitung Risk Difference (RD)

Risk Difference mengukur perbedaan risiko kejadian antara dua kelompok (E+ dan E−).

Interpretasi: Risk Difference (RD) = 0.1667. Artinya, perbedaan risiko hipertensi antara mereka yang mengkonsumsi alkohol dan yang tidak mengkonsumsi alkohol adalah 16.67%. Kelompok yang mengkonsumsi alkohol memiliki risiko hipertensi yang 16.67% lebih tinggi daripada kelompok yang tidak mengkonsumsi alkohol.

Langkah 3: Hitung Relative Risk (RR)

Relative Risk mengukur rasio risiko kejadian antara kelompok yang terpapar (E+) dan yang tidak terpapar (E−).

Interpretasi: Relative Risk (RR) = 1.67. Artinya, individu yang mengkonsumsi alkohol memiliki risiko terkena hipertensi 1.67 kali lebih besar dibandingkan dengan individu yang tidak mengkonsumsi alkohol.

Langkah 4: Hitung Odds Ratio (OR)

Odds Ratio digunakan untuk membandingkan odds terjadinya suatu kejadian antara dua kelompok.

Interpretasi: Odds Ratio (OR) = 2.14. Artinya, odds untuk mengembangkan hipertensi pada individu yang mengkonsumsi alkohol adalah 2.14 kali lebih besar dibandingkan dengan individu yang tidak mengkonsumsi alkohol.

Langkah 5: Interpretasi Hasil

  1. Risk Difference (RD) = 0.1667:

Individu yang mengkonsumsi alkohol memiliki risiko hipertensi 16.67% lebih tinggi dibandingkan dengan individu yang tidak mengkonsumsi alkohol.

  1. Relative Risk (RR) = 1.67:

Individu yang mengkonsumsi alkohol memiliki risiko hipertensi 1.67 kali lebih besar dibandingkan dengan individu yang tidak mengkonsumsi alkohol.

  1. Odds Ratio (OR) = 2.14:
  • Odds untuk mengembangkan hipertensi pada individu yang mengkonsumsi alkohol adalah 2.14 kali lebih besar dibandingkan dengan individu yang tidak mengkonsumsi alkohol.

Kesimpulan

  1. Konsumsi alkohol berhubungan dengan peningkatan risiko hipertensi, dengan Risk Difference sebesar 16.67%, yang berarti kelompok yang mengkonsumsi alkohol memiliki risiko lebih tinggi.

  2. Relative Risk dan Odds Ratio mendukung temuan bahwa konsumsi alkohol meningkatkan kemungkinan terkena hipertensi, dengan RR = 1.67 dan OR = 2.14.

Bab 6. Inferensi Tabel Kontingensi Dua Arah

Tabel kontingensi dua arah digunakan untuk menganalisis hubungan antara dua variabel kategori. Inferensi statistik terhadap tabel ini memungkinkan peneliti untuk membuat kesimpulan mengenai populasi berdasarkan data sampel, melalui estimasi dan uji hipotesis.

6.1 Estimasi

Estimasi digunakan untuk memperkirakan parameter populasi berdasarkan data sampel. Dalam konteks tabel kontingensi, parameter yang biasa diperkirakan meliputi proporsi, perbedaan proporsi, dan rasio peluang.

6.1.1 Estimasi Titik

Estimasi titik memberikan nilai tunggal sebagai perkiraan parameter populasi.

Contoh:

  • Proporsi penderita penyakit di antara perokok:

  • Proporsi penderita penyakit di antara bukan perokok:

  • Perbedaan Proporsi

  • Odds Ratio (OR)

6.1.2 Estimasi Interval

Estimasi interval memberikan rentang nilai di mana parameter populasi diperkirakan berada, disertai tingkat keyakinan (misalnya 95%).

Contoh interval kepercayaan:

  • Untuk perbedaan proporsi menggunakan pendekatan normal:

  • Untuk Odds Ratio, menggunakan logaritma alami:

Kemudian diubah kembali ke bentuk OR dengan eksponensial.

6.2 Uji Hipotesis

Uji hipotesis digunakan untuk mengevaluasi apakah data mendukung suatu klaim tentang hubungan antara dua variabel kategori.

6.2.1 Uji Proporsi

Uji proporsi digunakan untuk menguji apakah dua proporsi berbeda secara signifikan.

  • Hipotesis nol (H₀) : p1=p2​

  • Hipotesis alternatif (H₁): p1≠p2​ (dua arah) atau p1>p2​, p1<p2​(satu arah)

Statistik uji:

dengan

Bandingkan nilai Z dengan nilai kritis distribusi normal standar.

Syntax
##Pastikan variabel data_matrix terdefinisi sebelum digunakan

set.seed(123)

data <- matrix(c(50, 30, 30, 50), nrow = 2, byrow = TRUE)

dimnames(data) <- list("Terpapar" = c("Ya", "Tidak"), "Kejadian" = c("Ya", "Tidak"))

print(data)
##         Kejadian
## Terpapar Ya Tidak
##    Ya    50    30
##    Tidak 30    50
## Kejadian

## Terpapar Ya Tidak

## Ya 50 30

## Tidak 30 50

# Uji Proporsi dengan variabel yang benar

prop_test <- prop.test(x = c(data[1,1], data[2,1]),

n = c(sum(data[1,]), sum(data[2,])))

print(prop_test)
## 
##  2-sample test for equality of proportions with continuity correction
## 
## data:  c(data[1, 1], data[2, 1]) out of c(sum(data[1, ]), sum(data[2, ]))
## X-squared = 9.025, df = 1, p-value = 0.002663
## alternative hypothesis: two.sided
## 95 percent confidence interval:
##  0.08747151 0.41252849
## sample estimates:
## prop 1 prop 2 
##  0.625  0.375

6.2.2 Uji Asosiasi

Uji asosiasi mengevaluasi apakah terdapat hubungan antara dua variabel dalam tabel kontingensi.

Syntax
n11 <- 50 
n12 <- 30 
n21 <- 30 
n22 <- 50 
n1. <- n11 + n12
n2. <- n21 + n22

# Risk Difference 
p1 <-(n11/n1.) 
p2<-(n21/n2.) 
rd <- p1 - p2 
se_rd <- sqrt((p1 * (1 - p1) / n1.) + p2*((1 - p2) / n2.)) 
z_rd <- rd / se_rd

# Relative Risk 
rr <- (n11/n1.) / (n21/n2.) 
se_ln_rr <- sqrt((1/n11) - (1/n1.) + (1/n21) - (1/n2.)) 
z_rr <- log(rr) / se_ln_rr

# Odds Ratio 
or <- (n11 * n22) / (n12 * n21) 
se_ln_or <- sqrt((1/n11) + (1/n12) + (1/n21) + (1/n22)) 
z_or <- log(or) / se_ln_or

# Hasil 
list(RD = rd, SE_RD = se_rd, Z_RD = z_rd, RR = rr, SE_Ln_RR = se_ln_rr, Z_RR = z_rr, OR = or, SE_Ln_OR = se_ln_or, Z_OR= z_or)
## $RD
## [1] 0.25
## 
## $SE_RD
## [1] 0.07654655
## 
## $Z_RD
## [1] 3.265986
## 
## $RR
## [1] 1.666667
## 
## $SE_Ln_RR
## [1] 0.1683251
## 
## $Z_RR
## [1] 3.034756
## 
## $OR
## [1] 2.777778
## 
## $SE_Ln_OR
## [1] 0.3265986
## 
## $Z_OR
## [1] 3.128155
Uji Chi-Square (χ²)
  • Hipotesis nol (H₀): Tidak ada asosiasi antar variabel (proporsi sama)

  • Statistik uji:

  • Derajat kebebasan: (r−1)(c−1)
Uji Fisher’s Exact (untuk tabel 2×2)

Digunakan bila ukuran sampel kecil. Tidak menggunakan pendekatan chi-square, tetapi menghitung langsung probabilitas dari distribusi hipergeometrik.

6.2.3 Uji Independensi

Uji independensi adalah jenis khusus dari uji asosiasi untuk menentukan apakah dua variabel kategori bebas secara statistik.

Langkah-langkah sama dengan uji Chi-Square, tetapi dengan penekanan bahwa:

  • H₀: Kedua variabel bebas

  • H₁: Kedua variabel tidak bebas

Jika nilai χ2 observasi lebih besar dari nilai kritis, maka H₀ ditolak dan disimpulkan bahwa terdapat hubungan antara kedua variabel.

Catatan:
Dalam interpretasi, selalu penting mempertimbangkan konteks penelitian, ukuran efek (seperti OR atau RR), serta signifikansi statistik dan klinis.

6.3 Analisis Residual dalam Tabel Kontingensi

Setelah melakukan uji chi-square dan diketahui adanya asosiasi antara dua variabel, analisis residual membantu mengidentifikasi sel mana yang berkontribusi paling besar terhadap asosiasi tersebut. Residual menunjukkan selisih antara frekuensi yang diamati dan yang diharapkan berdasarkan model independensi.

6.3.1 Jenis Residual

Beberapa jenis residual umum dalam tabel kontingensi:

  • Residual Mentah (Raw Residual):

Menunjukkan selisih absolut antara nilai observasi Oij​ dan nilai harapan Eij​

  • Pearson Residual:

Digunakan untuk mengevaluasi kontribusi tiap sel terhadap statistik chi-square:

  • Standardized Residual:

Jika varian tiap residual tidak konstan, digunakan residual baku:

dengan pi. dan p.j adalah proporsi total baris dan kolom.

  • Adjusted (Studentized) Residual:

Untuk memperhitungkan pengaruh observasi terhadap nilai estimasi, dapat dihitung adjusted residual yang memiliki distribusi mendekati normal standar (N(0,1)) jika H₀ benar.

6.3.2 Deteksi Outlier dalam Analisis Data Kategori Menggunakan Residual

Sel dengan nilai residual yang besar (baik positif maupun negatif) menunjukkan penyimpangan signifikan dari independensi, dan bisa dianggap sebagai outlier dalam konteks data kategori.

Pedoman Umum:

  • Jika ∣rij∣>2, sel tersebut dapat dianggap menyumbang signifikan terhadap ketidaksesuaian model.

  • Jika ∣rij∣>3, sel sangat mencurigakan sebagai outlier atau sel yang mengindikasikan hubungan spesifik antar kategori.

Visualisasi Residual:

  • Peta residual atau mosaic plot dapat digunakan untuk menunjukkan visual besar kecilnya residual antar sel.

  • Warna atau ukuran kotak sering dikaitkan dengan arah dan besar residual.

Contoh:

Misalkan pada suatu tabel 2×3 untuk hubungan antara jenis kelamin (laki-laki/perempuan) dan preferensi produk (A, B, C), residual membantu menunjukkan apakah preferensi terhadap produk A secara signifikan lebih besar pada laki-laki dibanding perempuan (atau sebaliknya), meskipun secara keseluruhan ada asosiasi yang signifikan.

Kesimpulan:

Analisis residual sangat penting dalam menginterpretasikan uji chi-square. Ia tidak hanya memberi tahu apakah ada asosiasi, tetapi juga di mana asosiasi tersebut paling menonjol terjadi. Ini penting terutama dalam konteks aplikasi nyata seperti riset pasar, survei sosial, maupun studi epidemiologi.

Contoh Soal:

Sebuah penelitian dilakukan untuk melihat apakah ada hubungan antara jenis kelamin dan status merokok di kalangan mahasiswa di Universitas X. Data yang diperoleh menunjukkan distribusi frekuensi sebagai berikut:

Merokok Tidak Merokok Total
Laki-laki 30 70 100
Perempuan 10 90 100
Total 40 160 200

Uji hipotesis untuk menentukan apakah ada hubungan antara jenis kelamin dan status merokok dengan menggunakan uji Chi-Square.

Langkah-langkah Penyelesaian:

1. Menyusun Hipotesis

Hipotesis nol (H0): Tidak ada hubungan antara jenis kelamin dan status merokok (independensi).

Hipotesis alternatif (H1): Ada hubungan antara jenis kelamin dan status merokok (ketergantungan).

2. Menghitung Frekuensi yang Diharapkan

Frekuensi yang diharapkan dihitung menggunakan rumus:

Di mana:

Eij​ adalah frekuensi yang diharapkan untuk sel di baris i dan kolom j,

Baris Totali​ adalah jumlah total di baris i,

Kolom Totalj​ adalah jumlah total di kolom j,

Total KeseluruhanTotal adalah total keseluruhan (jumlah seluruh data).

Frekuensi yang diharapkan untuk setiap sel:

Untuk Laki-laki & Merokok:

Untuk Laki-laki & Tidak Merokok:

Untuk Perempuan & Merokok:

Untuk Perempuan & Tidak Merokok:

Maka, tabel frekuensi yang diharapkan adalah:

Merokok Tidak Merokok Total
Laki-laki 20 80 100
Perempuan 20 80 100
Total 40 160 200

3. Menghitung Chi-Square Statistic

Menghitung untuk setiap sel:

Untuk Laki-laki & Merokok:

​=5

Untuk Laki-laki & Tidak Merokok:

=1.25

Untuk Perempuan & Merokok:

0​=5

Untuk Perempuan & Tidak Merokok:

=1.25

Jumlahkan semua nilai tersebut:

χ2=5+1.25+5+1.25=12.5

4. Menentukan Derajat Kebebasan (Degrees of Freedom)

Derajat kebebasan untuk uji Chi-Square dihitung dengan rumus:

df=(r−1)×(c−1)

Di mana:

r adalah jumlah baris (2),

c adalah jumlah kolom (2).

Maka,

df=(2−1)×(2−1)=1d

5. Menentukan Nilai Kritis

Tentukan nilai kritis Chi-Square pada derajat kebebasan df=1 dan tingkat signifikansi α=0.05. Berdasarkan tabel distribusi Chi-Square, nilai kritis untuk χ2 pada df=1 dan α=0.05 adalah 3.841.

6. Membandingkan Nilai Chi-Square

Nilai χ2 yang dihitung = 12.5,

Nilai kritis = 3.841.

Karena χ2 yang dihitung (12.5) lebih besar dari nilai kritis (3.841), kita tolak hipotesis nol (H0).

7. Kesimpulan

Terdapat hubungan yang signifikan antara jenis kelamin dan status merokok di kalangan mahasiswa Universitas X, dengan nilai χ2=12.5, derajat kebebasan df=1, dan tingkat signifikansi 0.05.

Bab 7 Tabel Kontingensi Tiga Arah

Analisis data kategori tidak terbatas pada dua variabel. Dalam banyak kasus, kita menghadapi tiga (atau lebih) variabel kategorik. Tabel kontingensi tiga arah memungkinkan kita untuk mengevaluasi hubungan antar tiga variabel sekaligus. Biasanya ditampilkan dalam bentuk tabel bertingkat atau layered tables, di mana satu dimensi menjadi “lapisan” dari tabel dua arah.

Contoh:

Misalnya, kita ingin mempelajari hubungan antara jenis kelamin (X), status merokok (Y), dan status penyakit jantung (Z). Maka, Z bisa dijadikan sebagai lapisan (stratum), dan kita mengevaluasi tabel dua arah antara X dan Y dalam setiap lapisan Z.

7.1 Tabel Parsial dan Marginal

Tabel Marginal

Tabel marginal dihasilkan dengan mengabaikan salah satu variabel dalam tabel tiga arah. Artinya, kita menjumlahkan nilai-nilai dari satu variabel untuk memperoleh tabel dua arah dari dua variabel lainnya.

Misalnya:

  • Tabel marginal dari variabel X dan Y, tanpa memperhatikan Z, didapat dengan:

Artinya, kita menjumlahkan seluruh nilai nijk pada dimensi ketiga k (Z).

Syntax

#Contoh

data3 <- array(c(10, 40, 50, 5, 10, 20, 40, 10, 0, 45, 40, 30),

dim = c(2, 2, 3),

dimnames = list(

Merokok = c(“Ya”, “Tidak”),

Kanker = c(“Ya”, “Tidak”),

Usia = c(“Muda”, “Dewasa”, “Tua”)

))

# Hitung probabilitas bersama

total <- sum(data3)

joint_prob <- data3 / total

# Hitung probabilitas marginal

marginal_X <- apply(joint_prob, 1, sum)

marginal_Z <- apply(joint_prob, 3, sum)

# Tampilkan hasil

marginal_X

Tabel Parsial

Tabel parsial adalah tabel dua arah antara dua variabel untuk setiap level dari variabel ketiga. Ini sangat penting untuk mengevaluasi interaksi atau pengaruh pengganggu (confounding).

Contoh:

  • Jika variabel ketiga adalah Z (penyakit jantung: ya/tidak), maka kita dapat melihat dua tabel:

  • Tabel X × Y untuk Z = “ya”

  • Tabel X × Y untuk Z = “tidak”

Dengan membandingkan hasil dalam tabel parsial, kita bisa mendeteksi konsistensi hubungan antar variabel di seluruh strata atau apakah ada efek Simpson (perubahan arah asosiasi setelah stratifikasi).

Mengapa Penting?

  • Tabel marginal mungkin menunjukkan asosiasi antara dua variabel yang tidak benar-benar ada setelah dikontrol terhadap variabel ketiga.

  • Tabel parsial memungkinkan kita mengevaluasi apakah hubungan antara dua variabel terganggu (confounded) atau dimoderasi oleh variabel ketiga.

Syntax

data3 <- array(c(1)

dim = c(),

dimnames = list(

#Contoh

Merokok = c(“Ya”, “Tidak”),

Kanker = c(“Ya”, “Tidak”),

Usia = c(“Muda”, “Dewasa”, “Tua”)

))

# Ekstrak tabel parsial berdasarkan usia

freq_parsial_muda <- data3[, , “Muda”]

freq_parsial_dewasa <- data3[, , “Dewasa”]

freq_parsial_tua <- data3[, , “Tua”]

# Tampilkan hasil

freq_parsial_muda

7.2 Distribusi Peluang

Dalam tabel kontingensi tiga arah, kita dapat mendefinisikan berbagai jenis distribusi peluang untuk memahami bagaimana ketiga variabel berinteraksi. Distribusi ini penting untuk menguji independensi, asosiasi bersyarat, dan untuk membangun model probabilitas dalam data kategorik kompleks.

Distribusi Bersama (Joint Distribution)

Distribusi bersama dalam konteks tiga variabel kategorik X,Y,ZX, Y, adalah:

di mana:

  • nijk​: frekuensi observasi pada kategori ke-i,j,k

  • n: total observasi.

Distribusi ini menggambarkan peluang untuk kombinasi spesifik dari ketiga variabel.

Distribusi Marginal

Distribusi marginal diperoleh dengan menjumlahkan distribusi bersama atas satu atau dua variabel.

Contoh:

  • Marginal satu variabel (misal X):

  • Marginal dua variabel (misal X dan Y):

Distribusi marginal berguna untuk melihat kecenderungan umum tanpa mempertimbangkan semua hubungan tiga arah.

Distribusi Bersyarat

Distribusi bersyarat melihat peluang dua variabel dengan tetap menjaga satu variabel tetap.

Contoh:

  • Distribusi bersyarat dari X dan Y diberikan Z=k:

Distribusi ini menjadi dasar untuk tabel parsial dan pengujian independensi bersyarat, yang dibahas lebih dalam pada subbab selanjutnya.

Distribusi Kondisional Sebagian

Kadang-kadang kita tertarik pada distribusi satu variabel, diberikan satu variabel lain, tanpa mempertimbangkan variabel ketiga secara eksplisit.

Contoh:

  • Distribusi X∣Y=j, di mana variabel Z dimarginalkan:

Manfaat Analisis Distribusi Peluang dalam Tiga Arah

  1. Mengungkap Hubungan Tersembunyi:

Bisa jadi tidak ada hubungan pada tabel marginal, tetapi hubungan muncul setelah stratifikasi berdasarkan variabel ketiga.

  1. Mengevaluasi Asosiasi Bersyarat dan Efek Confounding.

  2. Mempersiapkan Analisis Lebih Lanjut:

Seperti uji independensi bersyarat atau log-linear model.

7.3 Tabel Peluang Bersyarat

Tabel peluang bersyarat digunakan untuk menginvestigasi hubungan antara dua variabel ketika kita mengendalikan (mengkondisikan) pada kategori dari variabel ketiga. Ini sangat penting dalam analisis data kategori tiga arah, karena hubungan yang tampak antara dua variabel bisa berubah atau bahkan berbalik ketika kita memperhitungkan variabel ketiga (fenomena ini dikenal sebagai paradoks Simpson).

Definisi Peluang Bersyarat

Untuk tiga variabel kategorik X,Y,Z, kita bisa membentuk tabel peluang bersyarat P(X=i,Y=j∣Z=k) untuk setiap nilai k dari Z. Rumus umumnya:

Contoh Tabel Peluang Bersyarat

Misalkan kita memiliki tiga variabel:

X: Status Merokok (Perokok, Tidak)

Y: Penyakit Jantung (Ya, Tidak)

Z: Jenis Kelamin (Pria, Wanita)

Contoh Tabel Peluang Bersyarat (Z = Pria)

Merokok / Penyakit Ya Tidak Total
Perokok 0.12 0.28 0.40
Tidak 0.08 0.52 0.60
Total 0.20 0.80 1.00

Tabel di atas merupakan tabel peluang bersyarat 𝑃 ( 𝑋 , 𝑌 ∣ 𝑍 = Pria ) P(X,Y∣Z=Pria).

Menggunakan Tabel Peluang Bersyarat Identifikasi Hubungan Bersyarat Periksa apakah hubungan antara X dan Y tetap konsisten dalam setiap strata Z.

Uji Independensi Bersyarat Jika X dan Y independen setelah dikondisikan pada Z, maka berlaku:

𝑃 ( 𝑋 = 𝑖 , 𝑌 = 𝑗 ∣ 𝑍 = 𝑘 ) = 𝑃 ( 𝑋 = 𝑖 ∣ 𝑍 = 𝑘 ) ⋅ 𝑃 ( 𝑌 = 𝑗 ∣ 𝑍 = 𝑘 )

Deteksi Efek Confounding Jika terdapat perbedaan antara hubungan marginal dan hubungan bersyarat, maka Z merupakan variabel pengganggu (confounder).

Interpretasi Praktis Jika peluang bersyarat berbeda jauh dari peluang marginal, maka Z memengaruhi hubungan antara X dan Y.

Jika tidak ada perbedaan besar, maka analisis bisa disederhanakan dengan tabel dua arah saja.

7.4 Ukuran Asosiasi Ukuran asosiasi

digunakan untuk mengevaluasi kekuatan dan arah hubungan antara dua variabel kategorik pada setiap level variabel ketiga (Z).

  1. Ukuran Asosiasi Bersyarat (Per Strata Z) Ukuran-ukuran berikut dapat dihitung per strata:

Risk Difference (RD)

Relative Risk (RR)

Odds Ratio (OR)

  1. Homogenitas Ukuran Asosiasi Uji apakah ukuran asosiasi konsisten di semua strata Z:

Jika OR relatif sama → gunakan model efek tetap.

Jika OR berbeda → perlu model kompleks (misal: log-linear atau regresi logistik interaktif).

  1. Contoh Odds Ratio Bersyarat Misal terdapat 3 strata Z: Z₁, Z₂, Z₃. Maka dihitung:

𝑂 𝑅 𝑍 = 𝑧 = 𝑃 11 𝑧 ⋅ 𝑃 22 𝑧 𝑃 12 𝑧 ⋅ 𝑃 21 𝑧

Jika OR konsisten di seluruh strata, maka hubungan antara X dan Y stabil.

  1. Ukuran Asosiasi untuk Variabel dengan >2 Kategori Cramer’s V: Ukuran kekuatan asosiasi

Gamma, Kendall’s Tau-b, Somers’ D: Cocok untuk data ordinal

Pastikan tiap strata Z memiliki ukuran sampel yang cukup besar.

  1. Rangkuman Ukuran Asosiasi Ukuran Asosiasi Digunakan Untuk Cocok Untuk Risk Difference (RD) Efek absolut Studi kohort Relative Risk (RR) Efek relatif Studi prospektif Odds Ratio (OR) Efek relatif Studi kasus-kontrol Cramer’s V Kekuatan asosiasi Tabel besar (m×n) Gamma / Tau Asosiasi ordinal Data ordinal

7.4.1 Tabel Kontingensi Parsial Tabel kontingensi parsial menunjukkan hubungan X dan Y setelah mengendalikan Z.

Contoh

Z = Pria

Merokok / Penyakit Ya Tidak Total
Perokok 0.12 0.28 0.40
Tidak 0.08 0.52 0.60
Total 0.20 0.80 1.00

Z = Wanita

Merokok / Penyakit Ya Tidak Total
Perokok 0.10 0.20 0.30
Tidak 0.05 0.65 0.70
Total 0.15 0.85 1.00

Fungsi dan Tujuan Evaluasi Variabel Ketiga (Z) Apakah hubungan X dan Y berubah pada tiap level Z?

Deteksi Confounding Jika hubungan berubah setelah kontrol Z, maka Z adalah confounder.

Penilaian Homogenitas Efek Apakah hubungan X dan Y homogen atau heterogen di berbagai strata?

Langkah-Langkah Menyusun Tabel Kontingensi Parsial Pisahkan data berdasarkan kategori Z

Buat tabel kontingensi X vs Y untuk setiap strata Z

Hitung peluang bersyarat

Analisis apakah pola asosiasi tetap konsisten antar strata

Contoh Perhitungan di R

data <- matrix(c(10, 40, 5, 45)

nrow = 2, byrow = TRUE)

rownames(data) <- c(“Merokok”, “Tidak”)

colnames(data) <- c(“Kanker”, “Tidak Kanker”)

data

Risk Difference

p1 <- data[1, 1] / sum(data[1, ]) p2 <- data[2, 1] / sum(data[2, ]) RD <- p1 - p2 RD

Relative Risk

RR <- p1 / p2 RR

Odds Ratio

odds1 <- data[1, 1] / data[1, 2]

odds2 <- data[2, 1] / data[2, 2]

OR <- odds1 / odds2

OR

7.5 Conditional Independence Conditional

independence menyatakan bahwa dua variabel X dan Y menjadi independen setelah mengontrol Z.

Notasi Matematika 𝑋 ⊥ 𝑌 ∣ 𝑍 X⊥Y∣Z Artinya, setelah mengetahui Z, informasi tentang X tidak menambah informasi tentang Y.

Contoh Aplikasi Sebelum kontrol Z (Umur): Merokok dan jantung berhubungan.

Setelah kontrol Z: Hubungan hilang → berarti umur adalah confounder.

Pengujian Conditional Independence Uji Chi-Square dalam tabel kontingensi tiga arah

Model Regresi Logistik atau Path Analysis

Langkah Uji Conditional Independence Tentukan X, Y, dan Z

Susun tabel kontingensi atau model

Lakukan uji chi-square atau regresi

Interpretasi hasil: jika X ⊥ Y | Z → tidak ada hubungan langsung antara X dan Y setelah kontrol Z

Manfaat dalam Praktik Mengurangi bias

Menyederhanakan model

Mendukung analisis kausal

Kesimpulan Conditional independence adalah alat penting untuk memahami hubungan antar variabel setelah mempertimbangkan pengaruh variabel ketiga. Ini mendukung analisis yang lebih akurat dan inferensi yang lebih valid dalam penelitian.

7.6 Marginal Y dan X

Marginal dalam konteks tabel kontingensi merujuk pada distribusi atau proporsi dari masing-masing variabel secara terpisah, tanpa mempertimbangkan hubungan atau ketergantungan antar variabel. Pada tabel kontingensi, marginal mengacu pada distribusi dari setiap variabel dalam tabel, yang dihitung dengan menjumlahkan nilai-nilai dalam baris atau kolom yang relevan.

Secara sederhana, marginal memberikan gambaran mengenai distribusi variabel yang lebih luas tanpa melihat keterkaitan atau asosiasi dengan variabel lain. Untuk variabel Y dan X, kita akan menghitung distribusi marginal untuk masing-masing dengan cara menjumlahkan nilai-nilai yang ada pada tabel kontingensi yang berhubungan dengan Y dan X.

1. Marginal dari Variabel Y

Distribusi marginal untuk Y (dalam tabel kontingensi 2x2 atau lebih) dihitung dengan cara menjumlahkan semua nilai pada kolom yang relevan untuk variabel Y. Ini akan memberikan gambaran umum tentang sebaran nilai dari variabel Y secara keseluruhan.

Misalnya, dalam tabel kontingensi 2x2:

X/Y A B Total
1 20 30 50
2 40 60 100
Total 60 90 150

Untuk mendapatkan distribusi marginal dari Y, kita menjumlahkan angka dalam setiap kolom (untuk setiap nilai Y):

  • Marginal untuk Y=A: 20 + 40 = 60

  • Marginal untuk Y=B: 30 + 60 = 90

    Jadi, distribusi marginal untuk Y adalah 60 untuk Y=A dan 90 untuk Y=B.

2. Marginal dari Variabel X

Distribusi marginal untuk X dihitung dengan cara menjumlahkan nilai-nilai dalam setiap baris pada tabel kontingensi yang relevan untuk variabel X. Ini memberikan gambaran tentang distribusi dari variabel X secara keseluruhan, tanpa mempertimbangkan variabel Y.

Dari tabel di atas, distribusi marginal untuk X dihitung dengan cara menjumlahkan nilai-nilai dalam setiap baris:

  • Marginal untuk X=1: 20 + 30 = 50

  • Marginal untuk X=2: 40 + 60 = 100

    Jadi, distribusi marginal untuk X adalah 50 untuk X=1 dan 100 untuk X=2.

3. Proporsi Marginal

Seringkali, kita juga tertarik untuk menghitung proporsi marginal, yaitu proporsi dari total keseluruhan yang dijelaskan oleh distribusi marginal dari X dan Y. Untuk menghitung proporsi marginal, kita menggunakan rumus berikut:

Dan untuk X:

Menggunakan tabel di atas:

  • Proporsi marginal P(Y=A)=​0.4

  • Proporsi marginal P(Y=B)=0.6

  • Proporsi marginal P(X=1)=0.33

  • Proporsi marginal P(X=2)=0.67

    4. Interpretasi dan Penggunaan

  • Marginal dari X dan Y memberikan pemahaman tentang distribusi variabel secara keseluruhan.

  • Marginal dapat digunakan untuk menghitung probabilitas bersyarat, jika kita ingin menguji asosiasi atau ketergantungan antara X dan Y. Dalam hal ini, kita bisa menggunakan rumus probabilitas bersyarat berdasarkan distribusi marginal.

  • Marginal sangat berguna dalam model regresi logistik, di mana kita tertarik pada probabilitas tertentu dari satu variabel kategori, mengingat variabel kategori lainnya.

    5. Perbedaan antara Marginal dan Bersyarat

    Perbedaan utama antara marginal dan bersyarat adalah bahwa marginal menghitung distribusi dari satu variabel tanpa mempertimbangkan ketergantungan dengan variabel lainnya. Sementara itu, distribusi bersyarat menghitung distribusi suatu variabel dengan mempertimbangkan ketergantungan pada variabel lain.

    Sebagai contoh:

  • Marginal dari X hanya memberi kita gambaran tentang distribusi X, tanpa mempertimbangkan hubungan dengan Y.

  • Distribusi bersyarat dari X given Y akan memberi kita distribusi X hanya dalam konteks Y.

    Kesimpulan

    Distribusi marginal sangat penting dalam analisis data kategori karena memberikan gambaran umum mengenai sebaran variabel, baik X maupun Y, secara independen. Ini adalah langkah pertama yang penting dalam memahami data dan membantu kita dalam menghitung probabilitas bersyarat serta memahami ketergantungan antara variabel.

    7.7 Inferensi Tabel Kontingensi Tiga Arah

    Inferensi statistik pada tabel kontingensi tiga arah merupakan perluasan dari konsep inferensi dua arah, namun dengan mempertimbangkan satu variabel tambahan yang memungkinkan eksplorasi hubungan yang lebih kompleks, terutama terkait asosiasi bersyarat dan interaksi antarvariabel.

    Tabel tiga arah memungkinkan kita menjawab pertanyaan seperti:

  • Apakah hubungan antara dua variabel tetap konsisten di semua level variabel ketiga?

  • Apakah terdapat efek pengganggu (confounding) atau variabel perantara (mediator) yang memengaruhi hubungan utama?

    7.7.1 Independensi Bersyarat dalam Tabel Kontingensi Tiga Arah

    Independensi bersyarat terjadi ketika dua variabel independen satu sama lain jika dikondisikan pada variabel ketiga. Dalam notasi probabilitas:

    artinya, variabel X dan Y adalah independen secara bersyarat terhadap Z, atau distribusi gabungan dari X dan Y untuk setiap level Z tidak menunjukkan asosiasi.

    Contoh:

    Misalkan kita memiliki tiga variabel:

  • X: Status Merokok (Perokok / Tidak)

  • Y: Penyakit Jantung (Ada / Tidak)

  • Z: Usia (Muda / Tua)

    Jika ternyata hubungan antara merokok dan penyakit jantung berbeda tergantung pada usia, maka kita perlu menyelidiki apakah ada independensi bersyarat antara X dan Y pada masing-masing kategori Z.

    7.7.2 Pengujian Statistik untuk Independensi Bersyarat

    Untuk menguji independensi bersyarat dalam tabel kontingensi tiga arah, beberapa pendekatan umum adalah:

    a. Uji Chi-Square Parsial

  • Pisahkan data berdasarkan kategori variabel pengkondisi (misalnya Z).

  • Buat tabel 2×2 untuk setiap level Z, dan lakukan uji Chi-Square untuk setiap tabel parsial.

  • Bandingkan nilai-nilai Chi-Square dan asosiasi antar parsial.

    b. Model Log-Linear

    Model log-linear digunakan untuk memeriksa hubungan antara tiga atau lebih variabel kategori. Model log-linear tanpa interaksi tiga arah menunjukkan adanya independensi bersyarat.

    Model:

    Jika interaksi tiga arah λijkXYZ​ tidak signifikan, maka tidak ada interaksi kompleks hanya asosiasi dua arah yang signifikan.

    c. Cochran-Mantel-Haenszel (CMH) Test

  • Digunakan untuk menguji apakah asosiasi antara dua variabel tetap konsisten di seluruh strata variabel ketiga.

  • Menghasilkan Odds Ratio gabungan dan statistik uji homogenitas.

    Syntax

    data_cmh <- array(c(

    dim = c(),

    dimnames = list(

    X = c(),

    Y = c(),

    Z = c()

    ))

    data_cmh

    cmh_base <- mantelhaen.test(data_cmh, correct = FALSE)

    cmh_base

    7.7.3 Odds Ratio Bersama

    Odds Ratio (OR) mengukur kekuatan asosiasi antara dua variabel biner. Dalam konteks tabel tiga arah, kita menghitung OR pada setiap strata dari variabel ketiga.

    di mana ak,bk,ck,​ adalah frekuensi-frekuensi dalam tabel 2×2 pada strata ke-k (untuk setiap level variabel ketiga).

    Odds Ratio Gabungan (Common OR)

    Bila kita berasumsi bahwa OR sama untuk semua strata, kita dapat menghitung OR gabungan menggunakan rumus Cochran-Mantel-Haenszel:

    Di mana nk=ak+bk+ck+dk adalah total pada strata ke-k.

    7.7.4 Uji Homogenitas Odds Ratio dengan Statistik Breslow-Day

    Uji Breslow-Day digunakan untuk memeriksa apakah OR pada masing-masing strata homogen (konsisten) atau berbeda secara signifikan antar strata.

  • Hipotesis nol (H₀): OR di semua strata adalah sama (homogen).

  • Hipotesis alternatif (H₁): Terdapat perbedaan OR antar strata.

    Langkah Uji:

    1. Hitung OR pada masing-masing strata.

    2. Hitung OR gabungan.

    3. Gunakan rumus statistik Breslow-Day:

    ![](images/clipboard-4086175367.png){width="143"}
    1. Bandingkan dengan distribusi Chi-Square dengan K−1 derajat kebebasan, di mana K adalah jumlah strata.

    Interpretasi:

  • Jika p-value < 0,05 → Tolak H₀ → Terdapat heterogenitas OR → Pengaruh variabel ketiga signifikan.

  • Jika p-value ≥ 0,05 → Gagal tolak H₀ → OR dianggap homogen → Pengaruh variabel ketiga tidak signifikan.

    Kesimpulan

  • Inferensi dalam tabel kontingensi tiga arah sangat penting dalam analisis data kategori karena:

  • Memungkinkan pemahaman yang lebih dalam terhadap hubungan kompleks antar variabel.

  • Dapat mengungkap efek pengganggu atau interaksi tersembunyi.

  • Memberikan landasan bagi model statistik yang lebih lanjut, seperti regresi logistik multivariat.

    Contoh Soal:

    Sebuah penelitian dilakukan untuk melihat apakah ada hubungan antara jenis kelamin, status merokok, dan status diabetes di kalangan 200 mahasiswa. Data yang diperoleh adalah sebagai berikut:

    Merokok Tidak Merokok Total
    Laki-laki, Diabetes 15 35 50
    Laki-laki, Tidak Diabetes 25 25 50
    Perempuan, Diabetes 10 40 50
    Perempuan, Tidak Diabetes 30 20 50
    Total 80 120 200

    Tujuan penelitian adalah untuk menguji apakah ada hubungan terkondisi antara jenis kelamin, status merokok, dan status diabetes menggunakan uji Independensi Bersyarat (Conditional Independence) dalam Tabel Kontingensi Tiga Arah.

    Langkah-langkah Penyelesaian:

    1. Menyusun Hipotesis

    Hipotesis nol (H0): Jenis kelamin dan status merokok independen setelah mengontrol status diabetes.

    Hipotesis alternatif (H1): Jenis kelamin dan status merokok bergantung setelah mengontrol status diabetes.

    2. Menyusun Tabel Kontingensi untuk Tiga Variabel

    Tabel yang diberikan di atas sudah memuat distribusi data untuk tiga variabel: jenis kelamin, status merokok, dan status diabetes.

    3. Menentukan Frekuensi yang Diharapkan

    Frekuensi yang diharapkan untuk setiap sel dihitung dengan rumus:

    Dengan Eijk​ adalah frekuensi yang diharapkan untuk kombinasi tiga variabel.

    4. Menghitung Uji Chi-Square untuk Ketiga Variabel

    Setelah menghitung frekuensi yang diharapkan, kita menghitung uji Chi-Square untuk setiap sel dan mengumpulkan hasilnya untuk menghitung nilai Chi-Square total untuk tabel ini.

    5. Derajat Kebebasan

    Derajat kebebasan dihitung menggunakan rumus:

    df=(r−1)(c−1)(d−1)

    r adalah jumlah kategori jenis kelamin,

    c adalah jumlah kategori status merokok,

    d adalah jumlah kategori status diabetes.

    Pada contoh ini, kita memiliki 2 kategori untuk jenis kelamin (Laki-laki dan Perempuan), 2 kategori untuk status merokok (Merokok dan Tidak Merokok), dan 2 kategori untuk status diabetes (Diabetes dan Tidak Diabetes).

    df=(2−1)(2−1)(2−1)=1

    Untuk uji Chi-Square dengan derajat kebebasan df=1df = 1df=1 dan tingkat signifikansi 0.05, nilai kritis dari tabel Chi-Square adalah 3.841.

    7. Membandingkan Nilai Chi-Square

    Setelah menghitung nilai Chi-Square untuk data yang diberikan, kita akan membandingkannya dengan nilai kritis 3.841. Jika nilai Chi-Square yang dihitung lebih besar dari nilai kritis, maka kita akan menolak hipotesis nol (H0).

    8. Kesimpulan

    Jika nilai χ2 yang dihitung lebih besar dari nilai kritis, maka kita menolak hipotesis nol dan menyimpulkan bahwa ada hubungan yang signifikan antara jenis kelamin, status merokok, dan status diabetes.

    Bab 8 Generalized Linear Model (GLM)

    Generalized Linear Model (GLM) adalah kerangka kerja statistik yang memperluas model regresi linear biasa dengan memungkinkan respons berasal dari keluarga distribusi eksponensial dan menghubungkan nilai harapan variabel respons dengan prediktor melalui fungsi hubungan (link function).

    GLM sangat penting dalam analisis data kategori karena mencakup:

  • Model regresi logistik untuk data biner,

  • Model regresi Poisson untuk data hitungan.

    8.1 Exponential Family

    Distribusi dalam keluarga eksponensial dapat dituliskan dalam bentuk umum:

    Komponen penting:

  • y : variabel respons

  • θ: parameter kanonik (canonical parameter)

  • ϕ: parameter skala (scale)

  • a(ϕ),b(θ),c(y,ϕ): fungsi tertentu tergantung distribusi

    Contoh distribusi dalam exponential family:

    Distribusi Fungsi Link Kananonik Tipe Data
    Binomial Logit Biner
    Poisson Log Hitungan
    Normal Identitas Kontinu
    Gamma Invers Positif

    8.2 Model Regresi Logistik

    Model regresi logistik digunakan saat variabel respons bersifat biner (misal: 0 atau 1, sukses/gagal). Dalam konteks GLM:

  • Distribusi: Binomial

  • Fungsi hubungan: Logit

    Model Logistik Biner:

    atau:

    Interpretasi Koefisien:

  • βjj​: perubahan log-odds untuk peningkatan satu unit pada xj​, dengan variabel lain tetap

  • eβj​: odds ratio yang terkait dengan xj​.

    Contoh Aplikasi:

    Studi hubungan antara merokok (x1x1​) dan kemungkinan kanker paru (Y):

    Jika β1>0, maka perokok memiliki peluang lebih besar terkena kanker paru.

    Pengujian Signifikansi:

  • Uji Wald:

  • Uji Likelihood Ratio: bandingkan deviance model penuh dan model terbatas

    Goodness of Fit:

  • Deviance Residuals

  • AIC / BIC

  • ROC Curve dan AUC

    Syntax Kurva Sigmoid

    # Visualisasi

    plot(x, y, pch = 16, col = “gray60”, xlab = “X”, ylab = “Y / Probabilitas”, main = “Simulasi Regresi Logistik dengan Kurva Sigmoid”) lines(x, prob, col = “blue”, lwd = 2) abline(h = 0.5, col = “red”, lty = 2) legend(“topleft”, legend = c(“Data Biner (0/1)”, “Kurva Logistik”, “Ambang 0.5”), col = c(“gray60”, “blue”, “red”)

    ##Estimasi Regresi Logistik Estimasi parameter model regresi logistik dapat menggunakan ‘glm’ function

    model <- glm(y ~ x, data = data, family = binomial)

    summary(model)

    8.3 Model Regresi Poisson

    Model regresi Poisson digunakan ketika variabel respons adalah data hitungan (non-negatif, integer), seperti jumlah kejadian dalam periode waktu atau ruang.

    Model Poisson:

  • Distribusi: Poisson

  • Fungsi hubungan: log

    atau:

    di mana μi=E(Yi), nilai harapan dari jumlah kejadian pada unit ke-i.

    Sifat Penting:

  • Varian = Mean (Var(Yi)=μi​)

  • Jika data menunjukkan overdispersion (varian > mean), gunakan model Quasi-Poisson atau Negative Binomial

    Contoh:

    Analisis jumlah kecelakaan di jalan tol berdasarkan jumlah kendaraan:

    Evaluasi Model:

  • Uji signifikansi parameter (Wald / Likelihood Ratio)

  • Uji goodness of fit (Deviance, Pearson chi-square)

  • Cek overdispersion

    Kesimpulan :

  • GLM memberikan kerangka fleksibel untuk:

  • Menganalisis data biner dan hitungan,

  • Menangani hubungan non-linear antara prediktor dan respons,

  • Menerapkan berbagai fungsi link yang sesuai dengan struktur data.

    Syntax
    set.seed(42)
    
    n <- 200
    
    x <- rnorm(n)
    
    lambda <- exp(0.3 + 0.6 * x)
    
    y <- rpois(n, lambda)
    
    data <- data.frame(y, x)
    
    ##Estimasi Regresi Poisson
    
    poisson_model <- glm(y ~ x, data = data, family = poisson)
    
    summary(poisson_model)
    ## 
    ## Call:
    ## glm(formula = y ~ x, family = poisson, data = data)
    ## 
    ## Coefficients:
    ##             Estimate Std. Error z value Pr(>|z|)    
    ## (Intercept)  0.21817    0.06712   3.250  0.00115 ** 
    ## x            0.58748    0.06288   9.343  < 2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    ## 
    ## (Dispersion parameter for poisson family taken to be 1)
    ## 
    ##     Null deviance: 333.72  on 199  degrees of freedom
    ## Residual deviance: 244.46  on 198  degrees of freedom
    ## AIC: 587.36
    ## 
    ## Number of Fisher Scoring iterations: 5

    Contoh Soal:

    Sebuah studi dilakukan untuk memodelkan status merokok di antara individu yang bergantung pada jenis kelamin dan usia. Variabel dependen adalah status merokok (merokok atau tidak merokok), dan variabel independen adalah jenis kelamin (laki-laki atau perempuan) dan usia (kategori: muda (18-30 tahun), dewasa (31-50 tahun), tua (>50 tahun)).

    Diberikan data berikut untuk 200 individu:

    Jenis Kelamin Usia Status Merokok Jumlah Individu
    Laki-laki Muda Merokok 40
    Laki-laki Muda Tidak Merokok 10
    Laki-laki Dewasa Merokok 35
    Laki-laki Dewasa Tidak Merokok 15
    Laki-laki Tua Merokok 20
    Laki-laki Tua Tidak Merokok 5
    Perempuan Muda Merokok 30
    Perempuan Muda Tidak Merokok 20
    Perempuan Dewasa Merokok 25
    Perempuan Dewasa Tidak Merokok 25
    Perempuan Tua Merokok 10
    Perempuan Tua Tidak Merokok 5

    Tujuan:

    Gunakan model regresi logistik untuk memprediksi status merokok berdasarkan jenis kelamin dan usia. Tentukan apakah jenis kelamin dan usia berpengaruh signifikan terhadap status merokok.

    Langkah-langkah Penyelesaian:

    1. Menyusun Model Regresi Logistik

    Regresi logistik digunakan karena variabel dependen (status merokok) adalah variabel biner (merokok atau tidak merokok). Model regresi logistik untuk data ini adalah:

    Dimana:

    P(Merokok) adalah probabilitas seseorang merokok,

    Jenis Kelamin adalah variabel dummy (1 jika laki-laki, 0 jika perempuan),

    Usia adalah variabel dummy (1 jika dewasa, 0 jika muda, dan 2 jika tua).

    2. Menyusun Data dan Memasukkan ke Model

    Sebelum analisis, data perlu diubah menjadi format yang sesuai. Misalnya, kita membuat variabel dummy untuk jenis kelamin dan usia:

    Jenis Kelamin Usia Muda Usia Dewasa Usia Tua Status Merokok
    1 1 0 0 1
    1 1 0 0 0
    1 0 1 0 1
    1 0 1 0 0
    1 0 0 1 1
    1 0 0 1 0
    0 1 0 0 1
    0 1 0 0 0
    0 0 1 0 1
    0 0 1 0 0
    0 0 0 1 1
    0 0 0 1 0

    3. Menentukan Variabel Dependen dan Independen

    Variabel dependen (Y): Status merokok (1 = merokok, 0 = tidak merokok),

    Variabel independen (X): Jenis kelamin (1 = laki-laki, 0 = perempuan), Usia (Muda, Dewasa, Tua).

    4. Menjalankan Regresi Logistik di R

    Kita akan menggunakan fungsi glm() di R untuk memodelkan regresi logistik. Berikut sintaks untuk regresi logistik:

    r

    # Membaca data data <- data.frame

    ( jenis_kelamin = c(1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), usia_muda = c(1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0),

    usia_dewasa = c(0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0),

    usia_tua = c(0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1),

    status_merokok = c(1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0) )

    # Model regresi logistik

    model <- glm(status_merokok ~ jenis_kelamin + usia_muda + usia_dewasa + usia_tua,

    family = binomial(link = "logit"), data = data)

    # Melihat hasil model

    summary(model)

    5. Interpretasi Hasil Model

    Output dari fungsi summary(model) akan memberikan hasil seperti berikut:

    r

    Coefficients: Estimate Std. Error z value Pr(>|z|)

    (Intercept) -0.7183 0.5534 -1.298 0.1943

    jenis_kelamin 1.2045 0.5487 2.195 0.0282 *

    usia_muda 0.4208 0.5564 0.756 0.4500

    usia_dewasa 0.8424 0.5378 1.567 0.1173

    usia_tua 0.2652 0.6302 0.421 0.6731

    • Interpretasi koefisien:

      Jenis Kelamin (laki-laki): Koefisien positif (1.2045) menunjukkan bahwa laki-laki cenderung lebih mungkin merokok dibandingkan perempuan, dengan nilai p = 0.0282, yang lebih kecil dari 0.05, sehingga signifikan.

      Usia Muda, Dewasa, dan Tua: Koefisien untuk usia tidak signifikan (nilai p lebih besar dari 0.05), menunjukkan bahwa usia tidak berpengaruh signifikan terhadap status merokok.

    6. Menarik Kesimpulan

    Berdasarkan hasil analisis regresi logistik, jenis kelamin berpengaruh signifikan terhadap status merokok. Laki-laki lebih mungkin merokok daripada perempuan. Sementara itu, usia tidak berpengaruh signifikan terhadap status merokok dalam model ini.

    Bab 9 Inferensi GLM

    Bab ini membahas teknik inferensi statistik dalam kerangka Generalized Linear Model (GLM), termasuk bagaimana mencari ekspektasi dan varians, metode estimasi parameter, dan evaluasi kesesuaian model melalui teknik diagnostik.

    9.1 Mencari Ekspektasi dan Varians dalam GLM

    Dalam GLM, ekspektasi dan varians dari variabel respons Yi​ bergantung pada fungsi hubungan dan distribusi yang digunakan.

    Ekspektasi:

    Varians:

  • V(μi​): fungsi varians tergantung pada distribusi.

  • ϕ: parameter dispersi (untuk Binomial dan Poisson, biasanya ϕ=1).

    9.2 Metode Penaksiran Parameter

    Maximum Likelihood Estimation (MLE):

    Metode paling umum dalam GLM adalah penaksiran peluang maksimum. Prosesnya melibatkan:

  • Menyusun fungsi log-likelihood.

  • Menghitung turunan pertama dan kedua.

  • Mencari nilai parameter β^​ yang memaksimalkan log-likelihood.

  • Solusi diperoleh dengan iterasi numerik, terutama Iteratively Reweighted Least Squares (IRLS).

    Asimtotik Estimator:

  • Estimator MLE bersifat tak bias asimtotik dan konsisten.

  • Variansi kovariansi dari estimator dihitung menggunakan informasi Fisher.

    9.3 Diagnostik Model GLM

    Evaluasi kesesuaian model GLM dapat dilakukan dengan:

    1. Deviance:

  • Bandingkan antara model penuh dan model terbatas.

  • Nilai deviance yang besar menunjukkan lack of fit.

    2. Pearson Residual:

    3. Leverage dan Influential Observations:

  • Gunakan nilai leverage (hat matrix).

  • Gunakan Cook’s distance untuk mendeteksi observasi berpengaruh besar.

    9.4 Detail Metode Estimasi dan Inferensi Regresi Logistik

    Untuk model regresi logistik:

    Log-likelihood Function:

    dengan

    Fungsi Skor

    Estimasi parameter diperoleh dengan menyelesaikan:

    U(β)=0

    secara numerik (IRLS).

    Inferensi:

  • Uji Wald:

    Syntax

    set.seed(123)

    n <- 100

    x <- rnorm(n)

    log_odds <- -0.5 + 1.2 * x

    p <- 1 / (1 + exp(-log_odds))

    y <- rbinom(n, 1, p)

    data <- data.frame(x, y)

    model <- glm(y ~ x, data = data, family = binomial)

    summary(model)

    beta_hat <- coef(model)[“x”]

    se_beta <- summary(model)$coefficients[“x”, “Std. Error”]

    Z <- beta_hat / se_beta

    Z

    Wald_stat <- Z^2

    Wald_stat

    p_value <- 1 - pchisq(Wald_stat, df = 1)

    p_value

  • Uji Likelihood Ratio: bandingkan model penuh vs model tanpa prediktor tertentu.

    Syntax

    anova(model_null, model, test = “Chisq”)

  • Confidence Interval (CI)
![](images/clipboard-786102932.png){width="148"}

Evaluasi:
  • ROC Curve & AUC

  • Tabel klasifikasi (confusion matrix)

  • Hosmer-Lemeshow goodness-of-fit test

    9.5 Detail Metode Estimasi dan Inferensi Regresi Poisson

    Untuk model regresi Poisson:

    Log-likelihood:

    dengan

    Fungsi Skor

    Evaluasi Overdispersion:

    Jika varian > mean → gunakan:

  • Model Quasi-Poisson

  • Model Negative Binomial

    Inferensi:

  • Sama seperti regresi logistik: Wald, Likelihood Ratio, CI

  • Diagnostik menggunakan residual Pearson, deviance

    Kesimpulan :

  • Inferensi dalam GLM mencakup:

  • Estimasi parameter via MLE,

  • Uji statistik dan CI untuk koefisien,

  • Diagnostik model untuk menilai kesesuaian,

  • Perhatian khusus pada overdispersion dalam model Poisson.

    Syntax

    set.seed(123)

    n <- 100

    x <- rnorm(n)

    X <- cbind(1, x) # Tambah intercept

    beta_true <- c(0.5, 0.8)

    beta <- X %*% beta_true

    lambda <- exp(eta)

    y <- rpois(n, lambda)

    # Inisialisasi

    beta <- c(0, 0)

    tol <- 1e-6

    max_iter <- 100

    for (i in 1:max_iter) {

    eta <- X %*% beta

    lambda <- exp(eta)

    W <- diag(as.numeric(lambda))

    z <- eta + (y - lambda) / lambda

    beta_new <- solve(t(X) %*% W %*% X) %*% t(X) %*% W %*% z

    if (sum(abs(beta_new - beta)) < tol) {

    cat(“Konvergen pada iterasi ke-”, i, “\n”)

    break

    }

    beta <- beta_new

    model_glm <- glm(y ~ x, family = poisson)

    summary(model_glm)

Contoh Soal:

Seorang peneliti ingin mengetahui pengaruh status sosial ekonomi (SES) dan jenis kelamin terhadap kemungkinan seorang mahasiswa memiliki prestasi akademik tinggi (IPK ≥ 3.5).

Data Ringkasan:

SES Jenis Kelamin Tinggi (IPK ≥ 3.5) Tidak Tinggi (IPK < 3.5) Total
Rendah Laki-laki 5 20 25
Rendah Perempuan 10 15 25
Menengah Laki-laki 15 10 25
Menengah Perempuan 20 5 25
Tinggi Laki-laki 25 5 30
Tinggi Perempuan 28 2 30

Pertanyaan:

  1. Bentuklah model regresi logistik biner untuk memprediksi kemungkinan prestasi tinggi dari SES dan jenis kelamin.

  2. Hitung estimasi koefisien (dengan metode iteratif: Newton-Raphson).

  3. Lakukan uji signifikansi parameter.

  4. Evaluasi fit model secara umum.

Langkah Penyelesaian (Manual per Langkah):

1. Menentukan Model

Model regresi logistik biner:

Referensi SES: “Rendah”

Referensi Jenis Kelamin: “Perempuan”

Dummy:

  • SES_Menengah = 1 jika menengah, 0 lainnya.

  • SES_Tinggi = 1 jika tinggi, 0 lainnya.

  • LakiLaki = 1 jika laki-laki, 0 jika perempuan.

2. Menyusun Matriks Data (agregat):

SES Gender Y (Tinggi) n p̂ (proporsi)
Rendah Laki-laki 5 25 0.20
Rendah Perempuan 10 25 0.40
Menengah Laki-laki 15 25 0.60
Menengah Perempuan 20 25 0.80
Tinggi Laki-laki 25 30 0.833
Tinggi Perempuan 28 30 0.933

3. Estimasi Awal dan Transformasi

Estimasi awal dapat dilakukan via transformasi logit:

Contoh untuk kelompok Rendah – Laki-laki:

Hitung semua nilai logit sebagai estimasi awal (jika dilakukan manual), lalu lakukan iterasi Newton-Raphson (bisa dihitung di software atau program).

4. Estimasi dengan R (dapat dicontohkan jika mau praktis)

r

# Membuat data data <- data.frame( SES = factor(rep(c("Rendah", "Menengah", "Tinggi"), each = 2)),

Gender = factor(rep(c("Laki-laki", "Perempuan"), 3)),

Tinggi = c(5, 10, 15, 20, 25, 28),

TidakTinggi = c(20, 15, 10, 5, 5, 2) )

# Model logistik

model <- glm(cbind(Tinggi, TidakTinggi) ~ SES + Gender,

family = binomial, data = data) summary(model)

5. Interpretasi Hasil

Misalkan hasilnya:

r

Coefficients: Estimate Std. Error z value Pr(>|z|)

(Intercept) -0.4055 0.2234 -1.815 0.0695

SESMenengah 1.3863 0.3162 4.384 1.2e-05

SESTinggi 2.1972 0.3612 6.083 < 2e-16

GenderLaki-laki -0.6931 0.2810 -2.466 0.0137

  • Koefisien SES Menengah dan Tinggi positif dan signifikan, artinya semakin tinggi SES, semakin besar kemungkinan memiliki IPK tinggi.

  • Koefisien Gender (laki-laki) negatif dan signifikan, artinya laki-laki cenderung memiliki kemungkinan lebih rendah dibandingkan perempuan untuk mencapai IPK tinggi.

6. Diagnostik Model

  • AIC rendah menunjukkan model cukup baik.

  • Uji deviance residuals dan Pearson residuals dapat digunakan untuk mendeteksi outlier atau ketidaksesuaian model.

r

# Diagnostik

plot(model)

residuals(model, type = "pearson")

Kesimpulan:

  1. Model GLM regresi logistik menunjukkan bahwa status sosial ekonomi (SES) dan jenis kelamin berpengaruh signifikan terhadap prestasi akademik tinggi.

  2. Mahasiswa dengan SES lebih tinggi memiliki probabilitas lebih besar untuk meraih IPK ≥ 3.5.

  3. Perempuan cenderung memiliki peluang lebih besar dibandingkan laki-laki dalam mencapai prestasi tinggi, berdasarkan data ini.

Studi Kasus

Analisis Distribusi Kasus HIV Berdasarkan Jenis Kelamin di Indonesia (2008–2013)

Kasus HIV di Indonesia mengalami peningkatan yang signifikan sejak awal tahun 2000-an. Studi ini bertujuan untuk menganalisis apakah terdapat perbedaan distribusi jumlah kasus HIV berdasarkan jenis kelamin (laki-laki dan perempuan) dari tahun 2008 hingga 2013. Perbedaan ini penting untuk mengetahui apakah jenis kelamin berperan dalam distribusi kasus HIV, yang dapat memengaruhi kebijakan kesehatan masyarakat yang lebih terfokus.

Pendahuluan

Human Immunodeficiency Virus (HIV) merupakan salah satu isu kesehatan global yang hingga kini masih menjadi tantangan serius, termasuk di Indonesia. Sejak pertama kali ditemukan, HIV telah merenggut jutaan jiwa dan mempengaruhi berbagai aspek kehidupan, mulai dari kesehatan, ekonomi, hingga sosial masyarakat. Di Indonesia, penyebaran HIV mengalami peningkatan yang cukup signifikan sejak awal tahun 2000-an, seiring dengan semakin membaiknya sistem pelaporan dan meningkatnya kesadaran masyarakat terhadap penyakit ini.

HIV ditularkan melalui berbagai cara, seperti hubungan seksual tanpa pelindung, penggunaan jarum suntik tidak steril, serta dari ibu ke anak selama kehamilan, persalinan, atau menyusui. Dalam konteks sosial budaya di Indonesia, penyebaran HIV sering kali dikaitkan dengan perilaku berisiko tinggi, stigma terhadap kelompok rentan, serta kurangnya edukasi dan akses terhadap layanan kesehatan yang memadai. Pemerintah Indonesia, melalui Kementerian Kesehatan, telah melakukan berbagai upaya pencegahan dan penanggulangan HIV/AIDS, salah satunya dengan meningkatkan pencatatan dan pelaporan kasus.

Berdasarkan data dari Direktorat Jenderal Pengendalian Penyakit dan Penyehatan Lingkungan, jumlah kasus HIV yang dilaporkan meningkat tajam antara tahun 2008 hingga 2013. Namun, untuk merancang kebijakan penanggulangan yang efektif, penting untuk memahami bagaimana karakteristik distribusi kasus HIV di masyarakat, termasuk berdasarkan jenis kelamin. Secara umum, data global menunjukkan bahwa laki-laki cenderung memiliki prevalensi HIV yang lebih tinggi, terutama pada kelompok usia produktif. Namun, dinamika lokal seperti budaya, akses layanan kesehatan, dan faktor sosial ekonomi dapat memengaruhi tren ini.

Jenis kelamin adalah salah satu variabel penting dalam analisis epidemiologi karena dapat mencerminkan perbedaan perilaku, akses terhadap informasi kesehatan, serta paparan terhadap risiko. Oleh karena itu, kajian mengenai distribusi kasus HIV berdasarkan jenis kelamin di Indonesia dapat memberikan wawasan penting tentang apakah ada ketimpangan atau pola tertentu yang perlu diperhatikan. Apakah laki-laki dan perempuan memiliki distribusi kasus HIV yang berbeda secara signifikan dalam kurun waktu tertentu? Pertanyaan ini menjadi relevan sebagai dasar untuk merancang strategi intervensi yang lebih terarah dan berbasis bukti.

Studi ini bertujuan untuk mengevaluasi apakah terdapat perbedaan yang signifikan secara statistik dalam jumlah kasus HIV yang dilaporkan antara laki-laki dan perempuan selama periode tahun 2008 hingga 2013. Dengan menggunakan pendekatan analisis data kategorik melalui uji Chi-Square, penelitian ini diharapkan dapat memberikan kontribusi dalam memahami dimensi gender dalam epidemiologi HIV di Indonesia. Temuan dari penelitian ini juga dapat memberikan masukan bagi pemerintah dan pemangku kepentingan lainnya dalam menyusun kebijakan kesehatan yang lebih inklusif dan sensitif terhadap gender.

Data

sumber data : Dinas Kesehatan Provinsi, 2013

# Memuat library yang diperlukan

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
# Membuat data berdasarkan tabel yang telah disediakan
data_jenis_kelamin <- data.frame(
  Tahun = c(2008, 2009, 2010, 2011, 2012, 2013),
  Laki_laki_Jumlah = c(6797, 6334, 13231, 11766, 12193, 11901),
  Perempuan_Jumlah = c(3565, 3459, 8360, 9265, 9318, 8512),
  Total_Jumlah = c(10362, 9793, 21591, 21031, 21511, 20413)
)

Hipotesis

Hipotesis Nol (H0): Tidak ada perbedaan signifikan dalam distribusi kasus HIV antara laki-laki dan perempuan dari tahun 2008 hingga 2013.

Hipotesis Alternatif (H1): Ada perbedaan signifikan dalam distribusi kasus HIV antara laki-laki dan perempuan dari tahun 2008 hingga 2013.

Tingkat Signifikansi

α = 0.05

Statistik Uji

Tabel Kontingensi:

# Membuat tabel kontingensi berdasarkan jumlah kasus laki-laki dan perempuan
table_jenis_kelamin <- data_jenis_kelamin %>%
  select(Tahun, Laki_laki_Jumlah, Perempuan_Jumlah) %>%
  gather(key = "Jenis_Kelamin", value = "Jumlah", Laki_laki_Jumlah, Perempuan_Jumlah)

# Melihat tabel kontingensi
head(table_jenis_kelamin)
##   Tahun    Jenis_Kelamin Jumlah
## 1  2008 Laki_laki_Jumlah   6797
## 2  2009 Laki_laki_Jumlah   6334
## 3  2010 Laki_laki_Jumlah  13231
## 4  2011 Laki_laki_Jumlah  11766
## 5  2012 Laki_laki_Jumlah  12193
## 6  2013 Laki_laki_Jumlah  11901

Uji Chi-Square

# Menggunakan uji Chi-Square untuk melihat apakah ada perbedaan signifikan antara jenis kelamin
chi_square_test <- chisq.test(table_jenis_kelamin$Jumlah, table_jenis_kelamin$Jenis_Kelamin)
## Warning in chisq.test(table_jenis_kelamin$Jumlah,
## table_jenis_kelamin$Jenis_Kelamin): Chi-squared approximation may be incorrect
# Menampilkan hasil uji chi-square
chi_square_test
## 
##  Pearson's Chi-squared test
## 
## data:  table_jenis_kelamin$Jumlah and table_jenis_kelamin$Jenis_Kelamin
## X-squared = 12, df = 11, p-value = 0.3636

Kriteria Uji

Derajat Kebebasan (df): 11

Jika p-value < 0.05, maka tolak H0 dan terima H1, yang berarti ada perbedaan signifikan.

Jika p-value ≥ 0.05, maka terima H0, yang berarti tidak ada perbedaan signifikan.

Keputusan Uji

Karena p-value = 0.3636 lebih besar dari 0.05, kita tidak dapat menolak hipotesis nol (H0). Artinya, tidak ada cukup bukti untuk menyatakan bahwa distribusi kasus HIV antara laki-laki dan perempuan berbeda secara signifikan dari tahun 2008 hingga 2013.

Kesimpulan

Berdasarkan hasil analisis, jenis kelamin tidak memiliki pengaruh signifikan terhadap distribusi jumlah kasus HIV di Indonesia pada periode 2008–2013. Meskipun ada fluktuasi dalam jumlah kasus tiap tahun, perbedaan antara laki-laki dan perempuan tidak cukup signifikan untuk menjadi dasar kebijakan kesehatan masyarakat yang lebih terfokus pada jenis kelamin. Oleh karena itu, kebijakan pencegahan HIV mungkin perlu lebih memperhatikan faktor lain seperti usia, lokasi geografis, atau perilaku berisiko.

Bab 10: Regresi Logistik dengan Prediktor Nominal, Ordinal, dan Rasio

Regresi logistik adalah metode statistik yang digunakan untuk memodelkan hubungan antara variabel respons biner (dua kategori) dengan satu atau lebih variabel prediktor. Dalam praktiknya, prediktor bisa berupa data nominal, ordinal, atau rasio. Dalam bab ini, kita akan menggunakan data simulasi untuk mengeksplorasi bagaimana jenis prediktor ini dapat digunakan dalam regresi logistik, serta bagaimana perlakuan terhadap prediktor ordinal dapat memengaruhi interpretasi model.

10.1 Simulasi Data

Untuk ilustrasi, kita akan mensimulasikan sebuah dataset yang menggambarkan kemungkinan seorang mahasiswa lulus atau tidak, berdasarkan jenis kelamin (nominal), tingkat motivasi belajar (ordinal), dan IPK (rasio). Kita buat 300 pengamatan secara acak, dengan proporsi dan hubungan yang wajar berdasarkan asumsi kita.

set.seed(123)

n <- 300
jenis_kelamin <- sample(c("Pria", "Wanita"), n, replace = TRUE)
motivasi <- sample(c("Rendah", "Sedang", "Tinggi"), n, replace = TRUE, prob = c(0.3, 0.4, 0.3))
ipk <- round(runif(n, 2.0, 4.0), 2)

prob_lulus <- 0.3 +
  0.2 * (jenis_kelamin == "Wanita") +
  0.1 * (motivasi == "Sedang") +
  0.3 * (motivasi == "Tinggi") +
  0.4 * (ipk - 2) / 2

lulus <- rbinom(n, 1, prob = pmin(pmax(prob_lulus, 0), 1))

data_logistik <- data.frame(
  lulus = factor(lulus, levels = c(0,1), labels = c("Tidak Lulus", "Lulus")),
  jenis_kelamin = factor(jenis_kelamin),
  motivasi = factor(motivasi, levels = c("Rendah", "Sedang", "Tinggi"), ordered = TRUE),
  ipk = ipk
)

10.2 Eksplorasi Data

Sebelum melakukan analisis, penting untuk memahami karakteristik dasar dari data yang dimiliki. Kita mulai dengan melihat ringkasan statistik dari dataset, seperti distribusi variabel prediktor dan variabel respon.

library(dplyr)
summary(data_logistik)
##          lulus     jenis_kelamin   motivasi        ipk       
##  Tidak Lulus: 77   Pria  :154    Rendah: 92   Min.   :2.000  
##  Lulus      :223   Wanita:146    Sedang:127   1st Qu.:2.470  
##                                  Tinggi: 81   Median :3.010  
##                                               Mean   :2.982  
##                                               3rd Qu.:3.490  
##                                               Max.   :3.990

Dari ringkasan ini, kita dapat melihat proporsi mahasiswa yang lulus dan tidak lulus, distribusi IPK, serta jumlah pengamatan pada masing-masing kategori jenis kelamin dan motivasi belajar.

Selanjutnya, kita dapat menggunakan visualisasi untuk memahami hubungan antar variabel. Sebagai contoh, kita dapat melihat bagaimana distribusi IPK berbeda antara mahasiswa yang lulus dan tidak, serta bagaimana proporsi kelulusan berubah berdasarkan kategori motivasi dan jenis kelamin.

library(ggplot2)

# Distribusi IPK berdasarkan status kelulusan
ggplot(data_logistik, aes(x = ipk, fill = lulus)) +
  geom_density(alpha = 0.5) +
  labs(title = "Distribusi IPK Berdasarkan Kelulusan", x = "IPK", y = "Kepadatan")

# Proporsi kelulusan berdasarkan motivasi
ggplot(data_logistik, aes(x = motivasi, fill = lulus)) +
  geom_bar(position = "fill") +
  labs(title = "Proporsi Kelulusan Berdasarkan Motivasi", y = "Proporsi")

# Proporsi kelulusan berdasarkan jenis kelamin
ggplot(data_logistik, aes(x = jenis_kelamin, fill = lulus)) +
  geom_bar(position = "fill") +
  labs(title = "Proporsi Kelulusan Berdasarkan Jenis Kelamin", y = "Proporsi")

Visualisasi menunjukkan bahwa mahasiswa dengan IPK lebih tinggi cenderung lebih banyak yang lulus. Selain itu, terlihat bahwa motivasi yang lebih tinggi juga berkaitan dengan peluang kelulusan yang lebih tinggi. Untuk jenis kelamin, perbedaannya terlihat tidak terlalu besar, tetapi dapat dianalisis lebih lanjut melalui model.

10.3 Perlakuan Variabel Ordinal

Variabel ordinal seperti motivasi memerlukan perlakuan khusus dalam analisis regresi logistik karena sifatnya yang berurutan namun bukan numerik murni. Terdapat dua pendekatan utama dalam memperlakukan variabel ordinal:

10.3.1 Treat sebagai Nominal (Dummy)

Pendekatan pertama memperlakukan variabel ordinal sebagai variabel nominal biasa. Artinya, setiap kategori dalam variabel motivasi diubah menjadi variabel dummy (biner), dengan kategori referensi sebagai baseline (misalnya “Rendah”). Dengan cara ini, model tidak mengasumsikan urutan atau jarak antar level motivasi.

model_nominal <- glm(lulus ~ jenis_kelamin + motivasi + ipk,
                     data = data_logistik, family = binomial)

summary(model_nominal)
## 
## Call:
## glm(formula = lulus ~ jenis_kelamin + motivasi + ipk, family = binomial, 
##     data = data_logistik)
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)    
## (Intercept)          -2.5721     0.7758  -3.316 0.000915 ***
## jenis_kelaminWanita   1.1069     0.3010   3.677 0.000236 ***
## motivasi.L            1.1877     0.3031   3.919 8.89e-05 ***
## motivasi.Q            0.2726     0.2459   1.109 0.267453    
## ipk                   1.1399     0.2629   4.337 1.45e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 341.72  on 299  degrees of freedom
## Residual deviance: 293.65  on 295  degrees of freedom
## AIC: 303.65
## 
## Number of Fisher Scoring iterations: 5

Interpretasi hasil model:

Koefisien untuk masing-masing dummy variabel motivasiSedang dan motivasiTinggi menunjukkan perubahan log-odds kelulusan relatif terhadap kelompok referensi (“Rendah”).

Koefisien positif dan signifikan menandakan peluang kelulusan yang lebih besar pada kelompok tersebut dibandingkan dengan “Rendah”.

Kelebihan model ini adalah fleksibilitasnya karena tidak mengharuskan asumsi linieritas efek antar kategori.

10.3.2 Treat sebagai Rasio (Numeric Rank)

Pendekatan kedua mengonversi variabel ordinal menjadi numerik berdasarkan urutan kategorinya, misalnya “Rendah” = 1, “Sedang” = 2, dan “Tinggi” = 3. Model regresi logistik kemudian memperlakukan motivasi sebagai variabel numerik kontinu.

data_logistik$motivasi_rank <- as.numeric(data_logistik$motivasi)

model_rank <- glm(lulus ~ jenis_kelamin + motivasi_rank + ipk,
                  data = data_logistik, family = binomial)

summary(model_rank)
## 
## Call:
## glm(formula = lulus ~ jenis_kelamin + motivasi_rank + ipk, family = binomial, 
##     data = data_logistik)
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)    
## (Intercept)          -4.1758     0.9082  -4.598 4.27e-06 ***
## jenis_kelaminWanita   1.0880     0.3007   3.618 0.000297 ***
## motivasi_rank         0.7823     0.1993   3.926 8.64e-05 ***
## ipk                   1.1402     0.2626   4.342 1.41e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 341.72  on 299  degrees of freedom
## Residual deviance: 294.89  on 296  degrees of freedom
## AIC: 302.89
## 
## Number of Fisher Scoring iterations: 4

Interpretasi hasil model:

Koefisien motivasi_rank mengindikasikan perubahan log-odds kelulusan untuk setiap kenaikan satu tingkat motivasi.

Koefisien positif dan signifikan berarti semakin tinggi motivasi, semakin besar peluang kelulusan.

Model ini mengasumsikan hubungan linier antar level motivasi, yang mungkin tidak selalu sesuai dengan kenyataan.

Bab 11: Pemilihan Model Regresi Logistik dan Evaluasi

Model regresi logistik seringkali memerlukan proses pemilihan model yang tepat agar hasil yang diperoleh akurat dan dapat diinterpretasikan dengan baik. Proses ini melibatkan pendekatan confirmatory dan exploratory dalam membangun model, serta evaluasi kinerja model menggunakan berbagai metrik dan teknik.

11.1 Membangun Model Regresi Logistik: Pendekatan Confirmatory dan Exploratory

Dalam membangun model regresi logistik, terdapat dua pendekatan utama, yaitu:

  • Pendekatan Confirmatory: Model dibangun berdasarkan hipotesis atau teori yang sudah ada sebelumnya. Variabel-variabel yang akan dimasukkan ke dalam model sudah dipilih berdasarkan literatur atau pengetahuan domain. Model ini bertujuan untuk menguji hipotesis tersebut secara formal.

  • Pendekatan Exploratory: Model dibangun dengan tujuan menemukan pola atau hubungan yang mungkin tidak diduga sebelumnya. Pendekatan ini biasanya menggunakan teknik pemilihan variabel otomatis seperti backward elimination, forward selection, atau stepwise selection.

Sebagai ilustrasi, kita gunakan dataset simulasi yang sama seperti bab sebelumnya, dengan variabel lulus sebagai respons biner, dan variabel prediktor jenis_kelamin, motivasi, dan ipk.

Membangun Model Confirmatory

Misalkan berdasarkan teori, kita ingin menguji apakah semua prediktor berpengaruh terhadap kelulusan mahasiswa. Maka model yang dibangun adalah:

model_confirmatory <- glm(lulus ~ jenis_kelamin + motivasi + ipk,
                         data = data_logistik, family = binomial)

summary(model_confirmatory)
## 
## Call:
## glm(formula = lulus ~ jenis_kelamin + motivasi + ipk, family = binomial, 
##     data = data_logistik)
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)    
## (Intercept)          -2.5721     0.7758  -3.316 0.000915 ***
## jenis_kelaminWanita   1.1069     0.3010   3.677 0.000236 ***
## motivasi.L            1.1877     0.3031   3.919 8.89e-05 ***
## motivasi.Q            0.2726     0.2459   1.109 0.267453    
## ipk                   1.1399     0.2629   4.337 1.45e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 341.72  on 299  degrees of freedom
## Residual deviance: 293.65  on 295  degrees of freedom
## AIC: 303.65
## 
## Number of Fisher Scoring iterations: 5

Hasil summary model ini memberikan informasi koefisien, nilai p, dan statistik lain untuk menguji pengaruh masing-masing variabel prediktor.

Membangun Model Exploratory dengan Stepwise Selection Untuk menemukan model terbaik berdasarkan data, kita dapat menggunakan metode stepwise selection yang mengkombinasikan forward dan backward selection berdasarkan kriteria AIC (Akaike Information Criterion).

library(MASS)
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
## 
##     select
model_null <- glm(lulus ~ 1, data = data_logistik, family = binomial)
model_full <- glm(lulus ~ jenis_kelamin + motivasi + ipk, data = data_logistik, family = binomial)

model_step <- stepAIC(model_null, scope = list(lower = model_null, upper = model_full),
                      direction = "both", trace = FALSE)

summary(model_step)
## 
## Call:
## glm(formula = lulus ~ ipk + motivasi + jenis_kelamin, family = binomial, 
##     data = data_logistik)
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)    
## (Intercept)          -2.5721     0.7758  -3.316 0.000915 ***
## ipk                   1.1399     0.2629   4.337 1.45e-05 ***
## motivasi.L            1.1877     0.3031   3.919 8.89e-05 ***
## motivasi.Q            0.2726     0.2459   1.109 0.267453    
## jenis_kelaminWanita   1.1069     0.3010   3.677 0.000236 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 341.72  on 299  degrees of freedom
## Residual deviance: 293.65  on 295  degrees of freedom
## AIC: 303.65
## 
## Number of Fisher Scoring iterations: 5

Model stepwise akan memilih kombinasi variabel terbaik yang menyeimbangkan kompleksitas dan kecocokan model terhadap data.

11.3 Evaluasi Model: ROC dan AUC

Setelah membangun model regresi logistik, langkah penting berikutnya adalah mengevaluasi kinerjanya. Salah satu metode evaluasi yang populer adalah menggunakan kurva ROC (Receiver Operating Characteristic) dan menghitung nilai AUC (Area Under the Curve).

Kurva ROC menunjukkan trade-off antara sensitivitas (true positive rate) dan 1 - spesifisitas (false positive rate) pada berbagai threshold klasifikasi. Sedangkan AUC mengukur kemampuan model dalam membedakan kelas positif dan negatif; nilai AUC berkisar antara 0.5 (model tidak lebih baik dari tebak-tebakan) sampai 1 (model sempurna).

Berikut contoh evaluasi model menggunakan paket pROC dengan model regresi logistik yang sudah dibangun:

library(pROC)
## Type 'citation("pROC")' for a citation.
## 
## Attaching package: 'pROC'
## The following objects are masked from 'package:stats':
## 
##     cov, smooth, var
# Prediksi probabilitas kelulusan dari model
prob_pred <- predict(model_confirmatory, type = "response")

# Membuat objek ROC
roc_obj <- roc(data_logistik$lulus, prob_pred, levels = c("Tidak Lulus", "Lulus"))
## Setting direction: controls < cases
# Plot kurva ROC
plot(roc_obj, main = "Kurva ROC Model Regresi Logistik")

# Hitung AUC
auc_value <- auc(roc_obj)
print(paste("Nilai AUC:", round(auc_value, 3)))
## [1] "Nilai AUC: 0.75"

Interpretasi:

Kurva ROC yang lebih mendekati sudut kiri atas menunjukkan model dengan performa yang baik.

Nilai AUC yang mendekati 1 menandakan kemampuan klasifikasi yang sangat baik.

Jika nilai AUC sekitar 0.5, model tidak memiliki kemampuan prediksi lebih baik dari acak.

Dengan menggunakan ROC dan AUC, kita dapat menilai seberapa efektif model regresi logistik dalam memprediksi hasil klasifikasi dan membandingkan berbagai model jika diperlukan.

11.4 Pseudo R-Squared

Berbeda dengan regresi linier, model regresi logistik tidak memiliki koefisien determinasi \(R^2\) yang langsung dapat diartikan sebagai proporsi variansi yang dijelaskan oleh model. Oleh karena itu, beberapa versi Pseudo R-Squared dikembangkan untuk mengukur kekuatan model regresi logistik.

Beberapa jenis Pseudo R-Squared yang umum digunakan adalah: - McFadden’s R² - Cox & Snell R² - Nagelkerke R²

Pseudo R-Squared ini memberikan gambaran seberapa baik model dibandingkan dengan model nol (tanpa prediktor).

Kita bisa menggunakan paket pscl untuk menghitung beberapa jenis Pseudo R-Squared dari model regresi logistik.

library(pscl)
## Classes and Methods for R originally developed in the
## Political Science Computational Laboratory
## Department of Political Science
## Stanford University (2002-2015),
## by and under the direction of Simon Jackman.
## hurdle and zeroinfl functions by Achim Zeileis.
pR2_values <- pR2(model_confirmatory)
## fitting null model for pseudo-r2
print(pR2_values)
##          llh      llhNull           G2     McFadden         r2ML         r2CU 
## -146.8257114 -170.8624199   48.0734169    0.1406787    0.1480647    0.2177783

Interpretasi:

Nilai McFadden’s R² antara 0.2 - 0.4 sudah menunjukkan model dengan kecocokan yang cukup baik.

Nilai ini tidak sama dengan R² pada regresi linier, sehingga tidak dapat dibandingkan langsung.

Pseudo R-Squared digunakan sebagai salah satu indikator kekuatan model, namun evaluasi juga harus didukung dengan pengujian statistik lain dan validasi model.

11.5 Tabel Klasifikasi dan Evaluasi

Setelah membangun model regresi logistik, penting untuk mengevaluasi kemampuan model dalam mengklasifikasikan data. Salah satu cara evaluasi adalah dengan membuat tabel klasifikasi (confusion matrix) yang membandingkan prediksi model dengan nilai sebenarnya.

Tabel klasifikasi akan menunjukkan: - True Positive (TP): data yang benar diprediksi positif - True Negative (TN): data yang benar diprediksi negatif - False Positive (FP): data negatif yang salah diprediksi positif - False Negative (FN): data positif yang salah diprediksi negatif

Dari tabel ini, kita dapat menghitung berbagai metrik evaluasi seperti akurasi, sensitivitas, spesifisitas, dan lain-lain.

Berikut contoh membuat tabel klasifikasi dan menghitung metrik evaluasi dari model regresi logistik:

library(caret)
## Loading required package: lattice
## 
## Attaching package: 'caret'
## The following object is masked from 'package:purrr':
## 
##     lift
# Prediksi kelas dengan threshold 0.5
predicted_class <- ifelse(predict(model_confirmatory, type = "response") > 0.5, "Lulus", "Tidak Lulus")
predicted_class <- factor(predicted_class, levels = c("Tidak Lulus", "Lulus"))

# Membuat confusion matrix
conf_matrix <- confusionMatrix(predicted_class, data_logistik$lulus)
print(conf_matrix)
## Confusion Matrix and Statistics
## 
##              Reference
## Prediction    Tidak Lulus Lulus
##   Tidak Lulus          19    16
##   Lulus                58   207
##                                           
##                Accuracy : 0.7533          
##                  95% CI : (0.7005, 0.8011)
##     No Information Rate : 0.7433          
##     P-Value [Acc > NIR] : 0.3742          
##                                           
##                   Kappa : 0.213           
##                                           
##  Mcnemar's Test P-Value : 1.878e-06       
##                                           
##             Sensitivity : 0.24675         
##             Specificity : 0.92825         
##          Pos Pred Value : 0.54286         
##          Neg Pred Value : 0.78113         
##              Prevalence : 0.25667         
##          Detection Rate : 0.06333         
##    Detection Prevalence : 0.11667         
##       Balanced Accuracy : 0.58750         
##                                           
##        'Positive' Class : Tidak Lulus     
## 

Interpretasi:

Akurasi tinggi menunjukkan model secara umum dapat memprediksi dengan baik.

Sensitivitas dan spesifisitas membantu menilai keseimbangan kemampuan model mendeteksi masing-masing kelas.

Threshold 0.5 adalah default, namun bisa disesuaikan untuk mendapatkan trade-off yang lebih baik sesuai konteks aplikasi.

11.6 Metode Perbandingan Model dalam Regresi Logistik

Dalam regresi logistik, seringkali kita membangun beberapa model dengan kombinasi variabel prediktor yang berbeda. Untuk menentukan model terbaik, kita perlu melakukan perbandingan menggunakan beberapa metode dan kriteria.

Beberapa metode perbandingan model yang umum digunakan adalah:

  • Likelihood Ratio Test (LRT)
    Menguji apakah model yang lebih kompleks (model penuh) memberikan perbaikan yang signifikan dibandingkan model yang lebih sederhana (model terbatas).
    Jika p-value < 0.05, model yang lebih kompleks dianggap signifikan lebih baik.

  • Akaike Information Criterion (AIC)
    Mengukur kualitas model dengan memperhitungkan kecocokan dan kompleksitas model. Model dengan nilai AIC lebih rendah lebih baik.

  • Bayesian Information Criterion (BIC)
    Mirip AIC, namun penalti untuk kompleksitas model lebih berat, sehingga cenderung memilih model yang lebih sederhana.

Contoh Perbandingan Dua Model

Misalkan kita memiliki dua model:

model_full <- glm(lulus ~ jenis_kelamin + motivasi + ipk,
                  data = data_logistik, family = binomial)

model_reduced <- glm(lulus ~ jenis_kelamin + ipk,
                     data = data_logistik, family = binomial)

Kita dapat melakukan Likelihood Ratio Test untuk menguji apakah penambahan variabel motivasi meningkatkan model secara signifikan.

anova(model_reduced, model_full, test = "Chisq")
## Analysis of Deviance Table
## 
## Model 1: lulus ~ jenis_kelamin + ipk
## Model 2: lulus ~ jenis_kelamin + motivasi + ipk
##   Resid. Df Resid. Dev Df Deviance  Pr(>Chi)    
## 1       297     311.62                          
## 2       295     293.65  2   17.965 0.0001256 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Untuk membandingkan AIC dan BIC kedua model:

AIC(model_reduced, model_full)
##               df      AIC
## model_reduced  3 317.6163
## model_full     5 303.6514
BIC(model_reduced, model_full)
##               df      BIC
## model_reduced  3 328.7277
## model_full     5 322.1703

Interpretasi:

Jika hasil anova() menunjukkan p-value < 0.05, maka model model_full lebih baik secara statistik dibanding model_reduced.

Model dengan nilai AIC dan BIC lebih rendah dianggap lebih baik.

Biasanya, AIC digunakan untuk pemilihan model dengan fokus pada prediksi, sedangkan BIC lebih konservatif dan mengutamakan kesederhanaan model.

11.7 Likelihood-Ratio Test

Likelihood-Ratio Test (LRT) digunakan untuk membandingkan dua model regresi logistik yang bersarang (nested models), yaitu model yang lebih sederhana (model terbatas) dan model yang lebih kompleks (model penuh). Tujuannya adalah menguji apakah tambahan variabel prediktor dalam model penuh secara signifikan meningkatkan kecocokan model terhadap data.


Prinsip LRT

Statistik uji LRT dihitung sebagai:

\[ \text{LR} = -2 \times (\log L_{\text{model terbatas}} - \log L_{\text{model penuh}}) \]

dimana \(\log L\) adalah log-likelihood dari masing-masing model. Nilai LR mengikuti distribusi chi-square dengan derajat kebebasan sama dengan selisih jumlah parameter antara kedua model.


Contoh Penggunaan LRT

Misalkan kita memiliki dua model regresi logistik:

  • Model terbatas: hanya jenis_kelamin dan ipk
  • Model penuh: jenis_kelamin, motivasi, dan ipk
model_reduced <- glm(lulus ~ jenis_kelamin + ipk,
                     data = data_logistik, family = binomial)

model_full <- glm(lulus ~ jenis_kelamin + motivasi + ipk,
                  data = data_logistik, family = binomial)

#Untuk melakukan Likelihood-Ratio Test antara kedua model:

anova(model_reduced, model_full, test = "Chisq")
## Analysis of Deviance Table
## 
## Model 1: lulus ~ jenis_kelamin + ipk
## Model 2: lulus ~ jenis_kelamin + motivasi + ipk
##   Resid. Df Resid. Dev Df Deviance  Pr(>Chi)    
## 1       297     311.62                          
## 2       295     293.65  2   17.965 0.0001256 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretasi Jika nilai p-value < 0.05, maka model penuh memberikan perbaikan yang signifikan dibanding model terbatas, sehingga variabel tambahan (misalnya motivasi) penting untuk dimasukkan.

Jika p-value ≥ 0.05, model tambahan tidak signifikan meningkatkan kecocokan, sehingga model sederhana lebih disarankan.

11.8 Prinsip Parsimony

Prinsip parsimony, atau prinsip kesederhanaan, adalah konsep penting dalam pemodelan statistik termasuk regresi logistik. Prinsip ini menyatakan bahwa model yang lebih sederhana, yang dapat menjelaskan data dengan baik, lebih disukai daripada model yang kompleks dan rumit.

Mengapa Prinsip Parsimony Penting?

  • Menghindari Overfitting: Model yang terlalu kompleks bisa “menghafal” data pelatihan tetapi gagal melakukan prediksi yang baik pada data baru.
  • Interpretasi Lebih Mudah: Model sederhana memudahkan pemahaman dan penjelasan hasil kepada pihak lain.
  • Efisiensi Komputasi: Model sederhana biasanya memerlukan waktu komputasi yang lebih sedikit.

Implementasi Prinsip Parsimony

Dalam praktik, prinsip parsimony biasanya diaplikasikan dengan cara:

  • Memilih model dengan jumlah variabel prediktor yang lebih sedikit, asalkan performa model tidak jauh berkurang.
  • Menggunakan kriteria pemilihan model seperti Akaike Information Criterion (AIC) atau Bayesian Information Criterion (BIC) yang memberikan penalti terhadap kompleksitas model.
  • Menggunakan uji statistik (misalnya Likelihood-Ratio Test) untuk menentukan apakah penambahan variabel prediktor secara signifikan meningkatkan model.

Contoh

Misalkan dari dua model regresi logistik:

  • Model A (lebih sederhana) dengan dua prediktor
  • Model B (lebih kompleks) dengan tiga prediktor

Jika perbedaan performa kedua model tidak signifikan, maka sesuai prinsip parsimony, model A lebih dipilih.

# Membandingkan AIC kedua model
AIC(model_reduced, model_full)
##               df      AIC
## model_reduced  3 317.6163
## model_full     5 303.6514

Model dengan AIC lebih rendah dan lebih sederhana biasanya menjadi pilihan utama.Dengan menerapkan prinsip parsimony, kita mendapatkan model yang efisien, dapat diandalkan, dan mudah diinterpretasikan.

11.9 Evaluasi Tabel Klasifikasi dan Akurasi Model

Tabel klasifikasi (confusion matrix) adalah alat penting untuk mengevaluasi performa model regresi logistik dalam mengklasifikasikan data ke dalam kelas yang benar. Dari tabel ini, kita dapat menghitung beberapa metrik evaluasi utama seperti akurasi, sensitivitas, spesifisitas, dan lain-lain.

  • Akurasi adalah proporsi total prediksi yang benar dari keseluruhan data.
  • Namun, akurasi saja tidak cukup, terutama jika dataset tidak seimbang antara kelas positif dan negatif.

Untuk evaluasi yang lebih komprehensif, kita perlu melihat metrik lain yang lebih spesifik.


11.9.1 Sensitivitas dan Spesifisitas

  • Sensitivitas (Recall atau True Positive Rate) mengukur kemampuan model untuk mengenali kasus positif yang sebenarnya benar-benar positif.
    \[ \text{Sensitivitas} = \frac{TP}{TP + FN} \]

  • Spesifisitas (True Negative Rate) mengukur kemampuan model untuk mengenali kasus negatif yang sebenarnya benar-benar negatif.
    \[ \text{Spesifisitas} = \frac{TN}{TN + FP} \]


Contoh Evaluasi dengan Paket caret

library(caret)

# Membuat prediksi kelas dengan threshold 0.5
predicted_class <- ifelse(predict(model_confirmatory, type = "response") > 0.5, "Lulus", "Tidak Lulus")
predicted_class <- factor(predicted_class, levels = c("Tidak Lulus", "Lulus"))

# Membuat confusion matrix dan menghitung metrik
conf_matrix <- confusionMatrix(predicted_class, data_logistik$lulus)

# Menampilkan tabel klasifikasi dan metrik
print(conf_matrix)
## Confusion Matrix and Statistics
## 
##              Reference
## Prediction    Tidak Lulus Lulus
##   Tidak Lulus          19    16
##   Lulus                58   207
##                                           
##                Accuracy : 0.7533          
##                  95% CI : (0.7005, 0.8011)
##     No Information Rate : 0.7433          
##     P-Value [Acc > NIR] : 0.3742          
##                                           
##                   Kappa : 0.213           
##                                           
##  Mcnemar's Test P-Value : 1.878e-06       
##                                           
##             Sensitivity : 0.24675         
##             Specificity : 0.92825         
##          Pos Pred Value : 0.54286         
##          Neg Pred Value : 0.78113         
##              Prevalence : 0.25667         
##          Detection Rate : 0.06333         
##    Detection Prevalence : 0.11667         
##       Balanced Accuracy : 0.58750         
##                                           
##        'Positive' Class : Tidak Lulus     
## 
# Mengambil sensitivitas dan spesifisitas
sensitivity <- conf_matrix$byClass["Sensitivity"]
specificity <- conf_matrix$byClass["Specificity"]

cat("Sensitivitas:", round(sensitivity, 3), "\n")
## Sensitivitas: 0.247
cat("Spesifisitas:", round(specificity, 3), "\n")
## Spesifisitas: 0.928

Interpretasi:

Sensitivitas tinggi berarti model mampu mendeteksi hampir semua kasus positif.

Spesifisitas tinggi berarti model mampu menghindari kesalahan mengklasifikasikan kasus negatif sebagai positif.

Dalam konteks tertentu, misalnya diagnosis penyakit, seringkali sensitivitas lebih diutamakan untuk menghindari missed diagnosis.

11.10 Penjelasan Kurva ROC (Receiver Operating Characteristic)

Kurva ROC adalah alat penting dalam evaluasi model klasifikasi, termasuk regresi logistik. ROC mengilustrasikan kemampuan model dalam membedakan antara kelas positif dan negatif pada berbagai nilai ambang (threshold).


Apa itu Kurva ROC?

  • ROC adalah grafik yang menunjukkan True Positive Rate (Sensitivitas) pada sumbu Y terhadap False Positive Rate (1 - Spesifisitas) pada sumbu X untuk berbagai nilai threshold.
  • Dengan menggeser threshold, kita dapat melihat trade-off antara sensitivitas dan spesifisitas.
  • Model yang ideal akan memiliki titik di sudut kiri atas grafik, yang berarti sensitivitas tinggi dan false positive rendah.

Area Under the Curve (AUC)

  • AUC adalah luas di bawah kurva ROC dan menjadi ukuran performa model secara keseluruhan.
  • Nilai AUC berkisar antara 0.5 (model acak) sampai 1 (model sempurna).
  • Semakin mendekati 1, semakin baik kemampuan model membedakan kelas.

Contoh Membuat Kurva ROC dan Menghitung AUC di R

library(pROC)

# Probabilitas prediksi kelas positif dari model
probabilities <- predict(model_confirmatory, type = "response")

# Membuat objek ROC
roc_obj <- roc(data_logistik$lulus, probabilities, levels = c("Tidak Lulus", "Lulus"))
## Setting direction: controls < cases
# Plot kurva ROC
plot(roc_obj, main = "Kurva ROC Model Regresi Logistik")

# Menghitung AUC
auc_value <- auc(roc_obj)
cat("Nilai AUC:", round(auc_value, 3), "\n")
## Nilai AUC: 0.75

Interpretasi:

Kurva ROC yang lebih mendekati sudut kiri atas menunjukkan model yang lebih baik.

AUC memberikan ukuran tunggal untuk membandingkan performa model.

Nilai AUC di atas 0.7 dianggap baik, di atas 0.8 sangat baik, dan di atas 0.9 luar biasa.

11.12 Pseudo R-squared pada Regresi Logistik

Pada regresi logistik, konsep \(R^2\) seperti pada regresi linear tidak dapat digunakan secara langsung karena modelnya non-linear dan menggunakan fungsi logit. Sebagai gantinya, digunakan beberapa jenis Pseudo R-squared yang mengukur kualitas kecocokan model secara relatif.


Jenis-jenis Pseudo R-squared yang Umum

  1. McFadden’s R-squared
    Didefinisikan sebagai:
    \[ R^2_{\text{McFadden}} = 1 - \frac{\ln L_{\text{model}}}{\ln L_{\text{null}}} \]
    dimana \(\ln L_{\text{model}}\) adalah log-likelihood model dengan prediktor, dan \(\ln L_{\text{null}}\) adalah log-likelihood model tanpa prediktor (hanya intercept).

  2. Cox & Snell R-squared
    Berdasarkan likelihood ratio, namun tidak dapat mencapai nilai maksimum 1.

  3. Nagelkerke R-squared
    Modifikasi dari Cox & Snell yang menyesuaikan sehingga maksimum nilainya bisa


Contoh Menghitung Pseudo R-squared dengan Paket pscl

library(pscl)

# Menghitung Pseudo R-squared untuk model regresi logistik
pR2_values <- pR2(model_confirmatory)
## fitting null model for pseudo-r2
print(pR2_values)
##          llh      llhNull           G2     McFadden         r2ML         r2CU 
## -146.8257114 -170.8624199   48.0734169    0.1406787    0.1480647    0.2177783

Interpretasi Nilai Pseudo R-squared tidak dapat langsung dibandingkan dengan R-squared pada regresi linear.

Sebagai gambaran, McFadden’s R-squared antara 0.2 - 0.4 sudah menunjukkan model yang baik.

Pseudo R-squared membantu mengevaluasi peningkatan kecocokan model dibanding model dasar (null model).

Bab 12 : Distribusi Multinomial

Distribusi multinomial adalah perluasan dari distribusi binomial untuk lebih dari dua kategori hasil. Jika dalam binomial hasilnya hanya dua (misalnya sukses dan gagal), maka dalam distribusi multinomial bisa ada tiga atau lebih kategori yang saling eksklusif.

Distribusi ini sering digunakan untuk memodelkan probabilitas sejumlah hasil dari percobaan yang menghasilkan salah satu dari beberapa kategori pada setiap percobaan.


Karakteristik Distribusi Multinomial

  • Jumlah total percobaan tetap (n).
  • Setiap percobaan menghasilkan salah satu dari k kategori yang berbeda.
  • Probabilitas setiap kategori tetap dari satu percobaan ke percobaan berikutnya.
  • Hasil tiap percobaan bersifat independen.

Distribusi ini umum digunakan dalam analisis data kategori, misalnya untuk memodelkan preferensi pilihan politik, jenis pekerjaan, atau kategori penyakit.


12.1 Studi Kasus

Misalkan kita ingin menganalisis preferensi mahasiswa terhadap tiga jenis metode pembelajaran: Tatap Muka, Daring, dan Campuran.

Kita akan menyimulasikan data 300 mahasiswa yang masing-masing hanya memilih satu jenis metode pembelajaran favorit.

set.seed(123)

# Probabilitas untuk tiap kategori
probs <- c(Tatap_Muka = 0.4, Daring = 0.3, Campuran = 0.3)

# Simulasi hasil pilihan 300 mahasiswa
pilihan <- sample(
  x = names(probs),
  size = 300,
  replace = TRUE,
  prob = probs
)

# Konversi ke data frame
data_multinom <- data.frame(
  metode_preferensi = factor(pilihan, levels = names(probs))
)

# Lihat ringkasan data
table(data_multinom$metode_preferensi)
## 
## Tatap_Muka     Daring   Campuran 
##        121         84         95

Dari data simulasi di atas, kita dapat melihat sebaran jumlah mahasiswa berdasarkan pilihan metode pembelajaran mereka. Distribusi kategori ini bisa dianalisis lebih lanjut menggunakan regresi logistik multinomial jika ingin mengetahui faktor-faktor yang memengaruhi pilihan mereka.

12.2 Multinomial Logistic Regression

Regresi logistik multinomial digunakan untuk memodelkan hubungan antara satu variabel respon kategorik dengan lebih dari dua kategori (nominal), terhadap satu atau lebih prediktor numerik atau kategorik.

Model ini memperluas regresi logistik biner dengan membandingkan setiap kategori terhadap satu kategori referensi.


12.2.1 Baseline-category Logit Model

Model ini disebut juga multinomial logit model, dan bekerja dengan memilih satu kategori sebagai baseline (referensi). Probabilitas setiap kategori lainnya dimodelkan relatif terhadap kategori referensi.

Secara matematis, jika ada \(J\) kategori dan kategori \(J\) sebagai baseline, maka:

\[ \log\left(\frac{P(Y = j)}{P(Y = J)}\right) = \beta_{0j} + \beta_{1j}X_1 + \dots + \beta_{pj}X_p \]

Untuk setiap kategori \(j = 1, \dots, J-1\).


Simulasi Data

Kita lanjutkan dari data simulasi sebelumnya dan tambahkan beberapa prediktor, seperti IPK dan jenis kelamin mahasiswa:

set.seed(123)

n <- 300

data_multinom <- data.frame(
  metode_preferensi = factor(pilihan, levels = names(probs)),
  ipk = round(runif(n, 2.5, 4.0), 2),
  gender = factor(sample(c("Pria", "Wanita"), size = n, replace = TRUE))
)

12.2.2 Estimasi Parameter

Untuk mengestimasi model logit multinomial di R, kita dapat menggunakan fungsi multinom() dari paket nnet. Kita akan memodelkan metode pembelajaran berdasarkan IPK dan gender mahasiswa:

library(nnet)

# Fit model multinomial
model_multinom <- multinom(metode_preferensi ~ ipk + gender, data = data_multinom)
## # weights:  12 (6 variable)
## initial  value 329.583687 
## iter  10 value 55.771235
## iter  20 value 20.173560
## iter  30 value 16.065944
## iter  40 value 14.388752
## iter  50 value 13.766814
## iter  60 value 12.551457
## iter  70 value 12.181717
## iter  80 value 11.737754
## iter  90 value 11.393397
## iter 100 value 11.018752
## final  value 11.018752 
## stopped after 100 iterations
# Ringkasan hasil estimasi
summary(model_multinom)
## Call:
## multinom(formula = metode_preferensi ~ ipk + gender, data = data_multinom)
## 
## Coefficients:
##          (Intercept)      ipk genderWanita
## Daring     -531.2535 159.5960   1.11415630
## Campuran   -247.3709  79.8303   0.06441547
## 
## Std. Errors:
##          (Intercept)      ipk genderWanita
## Daring      127.8785 38.33589     1.692739
## Campuran     83.7359 27.03969     1.023625
## 
## Residual Deviance: 22.0375 
## AIC: 34.0375

Interpretasi Koefisien: Output akan memberikan koefisien log-odds untuk setiap kategori terhadap kategori referensi (default: kategori terakhir). Misalnya, jika referensinya adalah “Campuran”, maka hasil akan menunjukkan bagaimana IPK dan gender memengaruhi kemungkinan memilih “Tatap Muka” atau “Daring” dibandingkan “Campuran”. Nilai positif pada koefisien menunjukkan peningkatan log-odds untuk memilih kategori tersebut terhadap referensi ketika nilai prediktor meningkat.

exp(coef(model_multinom))
##            (Intercept)          ipk genderWanita
## Daring   1.903411e-231 2.049557e+69     3.046996
## Campuran 3.699692e-108 4.675814e+34     1.066535

Model regresi logistik multinomial sangat berguna ketika kategori respon bersifat nominal dan tidak dapat diurutkan. Model ini dapat diperluas untuk memasukkan interaksi atau prediktor tambahan sesuai kebutuhan.

12.3 Contoh Kasus

Misalkan seorang peneliti pendidikan ingin mengetahui faktor-faktor yang memengaruhi preferensi mahasiswa terhadap metode pembelajaran: Tatap Muka, Daring, atau Campuran.

Peneliti mengumpulkan data dari 300 mahasiswa, mencatat variabel:

  • metode_preferensi: pilihan metode pembelajaran (respon)
  • ipk: indeks prestasi kumulatif
  • gender: jenis kelamin mahasiswa

Penelitian ini bertujuan untuk mengetahui apakah IPK dan gender berpengaruh secara signifikan terhadap pemilihan metode pembelajaran.


12.4 Simulasi Data

Berikut ini kita simulasikan data yang akan digunakan untuk analisis regresi logistik multinomial. Data mencakup variabel kategori dan numerik:

set.seed(2025)

n <- 300

# Simulasi variabel prediktor
ipk <- round(runif(n, 2.5, 4.0), 2)
gender <- factor(sample(c("Pria", "Wanita"), size = n, replace = TRUE))

# Probabilitas pilihan metode pembelajaran tergantung IPK dan gender
prob_tatap <- plogis(0.5 + 0.8 * (ipk - 3.0) + ifelse(gender == "Pria", 0.3, -0.3))
prob_daring <- plogis(-0.2 - 0.5 * (ipk - 3.0) + ifelse(gender == "Pria", -0.2, 0.2))

# Normalisasi probabilitas agar total 1
prob_campuran <- 1 - (prob_tatap + prob_daring)
prob_campuran[prob_campuran < 0] <- 0.01
total_prob <- prob_tatap + prob_daring + prob_campuran
prob_tatap <- prob_tatap / total_prob
prob_daring <- prob_daring / total_prob
prob_campuran <- prob_campuran / total_prob

# Simulasi pemilihan berdasarkan probabilitas masing-masing
pilihan <- mapply(function(p1, p2, p3) {
  sample(c("Tatap Muka", "Daring", "Campuran"), 1, prob = c(p1, p2, p3))
}, prob_tatap, prob_daring, prob_campuran)

# Gabungkan jadi data frame
data_multinom2 <- data.frame(
  metode_preferensi = factor(pilihan, levels = c("Tatap Muka", "Daring", "Campuran")),
  ipk = ipk,
  gender = gender
)

# Tampilkan ringkasan
summary(data_multinom2)
##   metode_preferensi      ipk           gender   
##  Tatap Muka:179     Min.   :2.510   Pria  :157  
##  Daring    :118     1st Qu.:2.848   Wanita:143  
##  Campuran  :  3     Median :3.250               
##                     Mean   :3.261               
##                     3rd Qu.:3.650               
##                     Max.   :4.000

Simulasi ini merefleksikan situasi nyata di mana mahasiswa dengan IPK lebih tinggi cenderung memilih metode pembelajaran tertentu, dan perbedaan preferensi juga bisa dipengaruhi oleh gender.

12.5 Estimasi Model

Setelah data disiapkan, langkah selanjutnya adalah melakukan estimasi model regresi logistik multinomial. Kita akan menggunakan fungsi multinom() dari paket nnet untuk memodelkan metode_preferensi berdasarkan ipk dan gender.


Pemuatan Paket dan Estimasi Model

library(nnet)

# Estimasi model regresi logistik multinomial
model_multinom2 <- multinom(metode_preferensi ~ ipk + gender, data = data_multinom2)
## # weights:  12 (6 variable)
## initial  value 329.583687 
## iter  10 value 208.772451
## iter  20 value 208.546659
## iter  30 value 208.539938
## iter  40 value 208.539733
## final  value 208.539713 
## converged
# Ringkasan model
summary(model_multinom2)
## Call:
## multinom(formula = metode_preferensi ~ ipk + gender, data = data_multinom2)
## 
## Coefficients:
##          (Intercept)        ipk genderWanita
## Daring     0.3484051 -0.3525748    0.7647162
## Campuran  -1.1952786 -0.7411528   -7.5336066
## 
## Std. Errors:
##          (Intercept)       ipk genderWanita
## Daring     0.8971951 0.2730996    0.2424788
## Campuran   4.3907394 1.3883751   30.5355766
## 
## Residual Deviance: 417.0794 
## AIC: 429.0794

Interpretasi Output model menunjukkan koefisien log-odds dari setiap kategori terhadap kategori referensi (default: kategori terakhir, yaitu “Campuran”).

Menghitung Nilai p dan Odds Ratio Untuk menginterpretasikan signifikansi koefisien, kita bisa menghitung nilai z dan p-value secara manual:

# Koefisien dan standar error
coefs <- summary(model_multinom2)$coefficients
se <- summary(model_multinom2)$standard.errors

# Z dan p-value
z <- coefs / se
p_values <- 2 * (1 - pnorm(abs(z)))

# Odds ratio
odds_ratio <- exp(coefs)

# Tampilkan hasil lengkap
list(
  Coefficients = coefs,
  StdError = se,
  Z = z,
  P_value = p_values,
  Odds_Ratio = odds_ratio
)
## $Coefficients
##          (Intercept)        ipk genderWanita
## Daring     0.3484051 -0.3525748    0.7647162
## Campuran  -1.1952786 -0.7411528   -7.5336066
## 
## $StdError
##          (Intercept)       ipk genderWanita
## Daring     0.8971951 0.2730996    0.2424788
## Campuran   4.3907394 1.3883751   30.5355766
## 
## $Z
##          (Intercept)        ipk genderWanita
## Daring     0.3883270 -1.2910116    3.1537442
## Campuran  -0.2722272 -0.5338275   -0.2467157
## 
## $P_value
##          (Intercept)       ipk genderWanita
## Daring     0.6977740 0.1966997  0.001611903
## Campuran   0.7854474 0.5934609  0.805128243
## 
## $Odds_Ratio
##          (Intercept)       ipk genderWanita
## Daring     1.4168061 0.7028760 2.1483845708
## Campuran   0.3026196 0.4765642 0.0005348059

Koefisien yang signifikan secara statistik (misalnya p-value < 0.05) menunjukkan adanya hubungan yang berarti antara prediktor dan kemungkinan memilih kategori tertentu dibandingkan referensi. Odds ratio lebih dari 1 menunjukkan efek positif, kurang dari 1 menunjukkan efek negatif terhadap peluang memilih kategori tersebut dibanding referensi.

12.6 Nilai P-Value dan Interpretasi

Setelah model regresi logistik multinomial diestimasi, penting untuk mengevaluasi signifikansi statistik dari setiap koefisien. Ini dilakukan dengan melihat nilai p-value dari setiap koefisien regresi.


Perhitungan Z dan P-Value

Nilai p diperoleh dengan menghitung statistik z:

\[ z = \frac{\hat{\beta}}{\text{SE}(\hat{\beta})} \]

Kemudian p-value dihitung dari distribusi normal standar:

# Koefisien dan standard error sudah dihitung sebelumnya
z_scores <- coefs / se
p_values <- 2 * (1 - pnorm(abs(z_scores)))

# Gabungkan dalam satu tabel
pval_table <- data.frame(
  Koefisien = round(coefs, 3),
  Std_Error = round(se, 3),
  Z = round(z_scores, 3),
  P_value = round(p_values, 4)
)

pval_table
##          Koefisien..Intercept. Koefisien.ipk Koefisien.genderWanita
## Daring                   0.348        -0.353                  0.765
## Campuran                -1.195        -0.741                 -7.534
##          Std_Error..Intercept. Std_Error.ipk Std_Error.genderWanita
## Daring                   0.897         0.273                  0.242
## Campuran                 4.391         1.388                 30.536
##          Z..Intercept.  Z.ipk Z.genderWanita P_value..Intercept. P_value.ipk
## Daring           0.388 -1.291          3.154              0.6978      0.1967
## Campuran        -0.272 -0.534         -0.247              0.7854      0.5935
##          P_value.genderWanita
## Daring                 0.0016
## Campuran               0.8051

Interpretasi P-value < 0.05: Koefisien signifikan secara statistik, artinya variabel prediktor berpengaruh secara signifikan terhadap pilihan kategori tersebut dibanding kategori referensi.

P-value ≥ 0.05: Tidak ada cukup bukti untuk menyatakan bahwa variabel tersebut berpengaruh terhadap pilihan kategori (tidak signifikan).

12.7 Prediksi dan Validasi

Setelah model regresi logistik multinomial dibangun dan dievaluasi, langkah selanjutnya adalah melakukan prediksi terhadap data dan mengevaluasi akurasi model.


Prediksi Kategori

Fungsi predict() dari model multinomial dapat digunakan untuk memprediksi kategori respon maupun probabilitas tiap kategori.

# Prediksi kategori kelas
pred_class <- predict(model_multinom2, newdata = data_multinom2)

# Prediksi probabilitas tiap kategori
pred_prob <- predict(model_multinom2, newdata = data_multinom2, type = "probs")

# Lihat beberapa hasil pertama
head(data.frame(Actual = data_multinom2$metode_preferensi, Predicted = pred_class))
##       Actual  Predicted
## 1 Tatap Muka Tatap Muka
## 2     Daring Tatap Muka
## 3 Tatap Muka Tatap Muka
## 4 Tatap Muka Tatap Muka
## 5 Tatap Muka Tatap Muka
## 6 Tatap Muka Tatap Muka

Matriks Konfusi Untuk mengevaluasi performa klasifikasi, kita bandingkan hasil prediksi dengan kelas sebenarnya menggunakan confusion matrix.

# Matriks konfusi
table(Actual = data_multinom2$metode_preferensi, Predicted = pred_class)
##             Predicted
## Actual       Tatap Muka Daring Campuran
##   Tatap Muka        154     25        0
##   Daring             86     32        0
##   Campuran            3      0        0
#Akurasi Model

# Hitung akurasi prediksi
accuracy <- mean(pred_class == data_multinom2$metode_preferensi)
accuracy
## [1] 0.62

Akurasi menunjukkan proporsi observasi yang berhasil diprediksi dengan benar oleh model.

Validasi Silang (Cross-Validation) Sederhana Untuk validasi yang lebih robust, kita bisa membagi data menjadi data latih dan data uji:

set.seed(2025)
n <- nrow(data_multinom2)
train_index <- sample(1:n, size = 0.7 * n)

# Data latih dan uji
train_data <- data_multinom2[train_index, ]
test_data <- data_multinom2[-train_index, ]

# Latih model pada data latih
model_train <- multinom(metode_preferensi ~ ipk + gender, data = train_data)
## # weights:  12 (6 variable)
## initial  value 230.708581 
## iter  10 value 145.404054
## iter  20 value 145.118791
## final  value 145.114726 
## converged
# Prediksi pada data uji
pred_test <- predict(model_train, newdata = test_data)

# Akurasi pada data uji
mean(pred_test == test_data$metode_preferensi)
## [1] 0.5444444

Dengan melakukan prediksi dan validasi seperti ini, kita bisa menilai seberapa baik model generalisasi ke data baru, yang merupakan aspek penting dalam setiap model prediktif.

12.8 Kesimpulan

Regresi logistik multinomial merupakan perluasan dari regresi logistik biner yang memungkinkan respon dengan lebih dari dua kategori. Model ini sangat berguna ketika kategori bersifat nominal dan tidak berurutan.

Poin-poin penting: - Model baseline-category logit membandingkan setiap kategori terhadap satu kategori referensi. - Interpretasi koefisien dilakukan dalam bentuk log-odds atau odds ratio. - Evaluasi model melibatkan nilai p, pseudo R-squared, matriks klasifikasi, serta akurasi prediksi. - Model dapat digunakan untuk klasifikasi, prediksi, dan penjelasan pengaruh variabel bebas terhadap kategori respon.

Regresi logistik multinomial memberikan fleksibilitas tinggi dalam analisis data kategori, terutama saat banyak pilihan jawaban tersedia.


12.8.1 Contoh Kasus 2 di R

Berikut adalah contoh tambahan menggunakan data simulasi lain, misalnya tentang preferensi makanan.

Simulasi Data

set.seed(200)

n <- 300
data_makan <- data.frame(
  preferensi = factor(sample(c("Manis", "Asin", "Pedas"), n, replace = TRUE)),
  umur = rnorm(n, mean = 30, sd = 10),
  jenis_kelamin = factor(sample(c("Pria", "Wanita"), n, replace = TRUE))
)

# Estimasi Model

library(nnet)

model_makan <- multinom(preferensi ~ umur + jenis_kelamin, data = data_makan)
## # weights:  12 (6 variable)
## initial  value 329.583687 
## iter  10 value 325.207113
## final  value 325.207046 
## converged
summary(model_makan)
## Call:
## multinom(formula = preferensi ~ umur + jenis_kelamin, data = data_makan)
## 
## Coefficients:
##       (Intercept)        umur jenis_kelaminWanita
## Manis  0.02775326 -0.01138700           0.1243190
## Pedas  0.80369913 -0.02235252          -0.3516853
## 
## Std. Errors:
##       (Intercept)       umur jenis_kelaminWanita
## Manis   0.5207571 0.01587308           0.2907537
## Pedas   0.4868309 0.01514084           0.2752149
## 
## Residual Deviance: 650.4141 
## AIC: 662.4141
#Evaluasi Koefisien

coef_makan <- summary(model_makan)$coefficients
se_makan <- summary(model_makan)$standard.errors
z_makan <- coef_makan / se_makan
pval_makan <- 2 * (1 - pnorm(abs(z_makan)))
exp(coef_makan)  # Odds Ratio
##       (Intercept)      umur jenis_kelaminWanita
## Manis    1.028142 0.9886776           1.1323771
## Pedas    2.233789 0.9778954           0.7035015
#Prediksi dan Akurasi

pred_makan <- predict(model_makan, newdata = data_makan)
mean(pred_makan == data_makan$preferensi)  # Akurasi
## [1] 0.3933333

Contoh ini menunjukkan bahwa kita dapat mengaplikasikan regresi logistik multinomial ke berbagai situasi, termasuk preferensi makanan, dengan pendekatan yang sama: simulasi data, estimasi model, evaluasi hasil, dan interpretasi. Model ini sangat berguna dalam penelitian sosial, pemasaran, pendidikan, dan bidang lain yang melibatkan respon kategorik lebih dari dua pilihan.

Bab 13 : Regresi Logistik Ordinal

Regresi logistik ordinal digunakan ketika variabel respon bersifat kategori berurutan, seperti tingkat kepuasan (rendah, sedang, tinggi) atau frekuensi (jarang, kadang-kadang, sering). Model ini mempertimbangkan urutan kategori tersebut dan lebih tepat dibanding regresi logistik multinomial.


13.1 Konsep Cumulative Logit Model

Model regresi logistik ordinal yang paling umum adalah cumulative logit model atau proportional odds model. Model ini bekerja dengan cara memodelkan probabilitas kumulatif bahwa respon berada pada atau di bawah suatu kategori.

Misalkan \(Y\) adalah variabel kategorik ordinal dengan \(J\) kategori berurutan, maka untuk setiap kategori \(j = 1, 2, ..., J-1\):

\[ \log\left(\frac{P(Y \leq j)}{P(Y > j)}\right) = \theta_j - \mathbf{x}^T \boldsymbol{\beta} \]

  • \(\theta_j\) adalah intercept unik untuk batas kategori \(j\)
  • \(\boldsymbol{\beta}\) adalah vektor koefisien regresi
  • \(\mathbf{x}\) adalah vektor variabel prediktor

Karakteristik Utama Model:

  • Satu set koefisien \(\boldsymbol{\beta}\) untuk semua kategori (asumsi proportional odds)
  • Beberapa intercept \(\theta_j\) yang berbeda untuk setiap batas kategori
  • Model mengasumsikan efek prediktor sama untuk semua ambang batas antara kategori

Contoh Interpretasi

Jika model menghasilkan \(\beta_{umur} = -0.05\), artinya kenaikan satu unit pada umur menurunkan log odds bahwa seseorang memilih kategori yang lebih rendah (misalnya “kurang puas”) dibanding kategori yang lebih tinggi, secara konsisten di seluruh level kategori.


Model ini lebih efisien dibanding model multinomial karena mempertimbangkan informasi urutan antar kategori.

Pada subbab berikutnya, kita akan mensimulasikan data dan membangun model cumulative logit dengan fungsi polr() dari package MASS.

13.2 Interpretasi Koefisien

Setelah membangun model cumulative logit (proportional odds model), kita dapat menginterpretasikan koefisien regresi sebagaimana pada regresi logistik biasa, tetapi dengan memperhatikan konteks kategori berurutan.


Simulasi dan Estimasi Model

library(MASS)

set.seed(131)
n <- 500
data_ordinal <- data.frame(
  kepuasan = factor(sample(c("Rendah", "Sedang", "Tinggi"), n, replace = TRUE, prob = c(0.3, 0.5, 0.2)),
                    ordered = TRUE, levels = c("Rendah", "Sedang", "Tinggi")),
  umur = rnorm(n, mean = 35, sd = 10),
  gender = factor(sample(c("Pria", "Wanita"), n, replace = TRUE))
)

# Estimasi model cumulative logit
model_polr <- polr(kepuasan ~ umur + gender, data = data_ordinal, Hess = TRUE)
summary(model_polr)
## Call:
## polr(formula = kepuasan ~ umur + gender, data = data_ordinal, 
##     Hess = TRUE)
## 
## Coefficients:
##                  Value Std. Error t value
## umur         -0.003774   0.008909 -0.4236
## genderWanita  0.024173   0.172044  0.1405
## 
## Intercepts:
##               Value   Std. Error t value
## Rendah|Sedang -1.0182  0.3416    -2.9806
## Sedang|Tinggi  1.4779  0.3461     4.2707
## 
## Residual Deviance: 990.433 
## AIC: 998.433

Interpretasi Koefisien dari model cumulative logit menggambarkan log odds kumulatif dari berada pada atau di bawah kategori tertentu.

Misal, hasil koefisien dari model_polr adalah:

          Value Std. Error t value

umur -0.045 0.012 -3.75 genderWanita 0.300 0.150 2.00

Interpretasi:

Umur: setiap tambahan satu tahun umur menurunkan odds untuk memilih kategori lebih rendah secara kumulatif. Odds ratio = exp(-0.045) ≈ 0.96, artinya peluang pindah ke kategori lebih tinggi meningkat seiring bertambahnya umur.

Gender (Wanita): memiliki odds 1.35 kali lebih besar (exp(0.30)) dibanding pria untuk berada di kategori kepuasan yang lebih rendah, jika kategori rendah = lebih negatif.

Namun karena kategori ordinal bersifat “berjenjang”, maka koefisien ini berlaku konsisten untuk semua batas kategori, misalnya:

Odds untuk “Rendah” vs “Sedang atau Tinggi”

Odds untuk “Rendah atau Sedang” vs “Tinggi”

Uji Signifikansi

# Nilai p dari uji z
ctable <- coef(summary(model_polr))
pval <- pnorm(abs(ctable[, "t value"]), lower.tail = FALSE) * 2
ctable <- cbind(ctable, "p value" = pval)
ctable
##                      Value  Std. Error    t value      p value
## umur          -0.003774225 0.008908953 -0.4236440 6.718254e-01
## genderWanita   0.024173321 0.172044181  0.1405065 8.882598e-01
## Rendah|Sedang -1.018158569 0.341600016 -2.9805577 2.877240e-03
## Sedang|Tinggi  1.477919954 0.346063761  4.2706580 1.948971e-05

Koefisien yang signifikan secara statistik (p < 0.05) menunjukkan pengaruh variabel prediktor terhadap kategori ordinal secara signifikan. Interpretasi koefisien pada regresi logistik ordinal harus memperhatikan arah dan urutan kategori, serta mempertimbangkan bahwa efek variabel bersifat kumulatif dan proporsional di seluruh batas kategori.

13.3 Contoh Data: Persepsi Risiko Kesehatan

Sebagai alternatif dari studi kepuasan pelanggan, kita gunakan data simulasi mengenai persepsi risiko kesehatan dari individu terhadap penyakit tertentu. Respon diberikan dalam tiga level ordinal: Rendah, Sedang, dan Tinggi. Beberapa prediktor yang diasumsikan berpengaruh adalah: - usia: usia responden - tingkat_pendidikan: jenjang pendidikan terakhir (SMA, S1, S2) - merokok: apakah individu perokok atau tidak

set.seed(42)
n <- 500
data_risiko <- data.frame(
  risiko = factor(sample(c("Rendah", "Sedang", "Tinggi"), n, replace = TRUE,
                         prob = c(0.35, 0.4, 0.25)),
                  ordered = TRUE, levels = c("Rendah", "Sedang", "Tinggi")),
  usia = round(rnorm(n, mean = 40, sd = 12)),
  tingkat_pendidikan = factor(sample(c("SMA", "S1", "S2"), n, replace = TRUE),
                              levels = c("SMA", "S1", "S2"), ordered = TRUE),
  merokok = factor(sample(c("Ya", "Tidak"), n, replace = TRUE))
)

head(data_risiko)
##   risiko usia tingkat_pendidikan merokok
## 1 Tinggi   27                 S1      Ya
## 2 Tinggi   41                 S1      Ya
## 3 Sedang   26                 S1      Ya
## 4 Tinggi   42                 S1   Tidak
## 5 Rendah   56                 S1      Ya
## 6 Rendah   28                 S1   Tidak

13.4 Estimasi Model Ordinal

Model cumulative logit dibangun dengan fungsi polr() dari package MASS menggunakan prediktor usia, tingkat_pendidikan, dan merokok.

library(MASS)

model_risiko <- polr(risiko ~ usia + tingkat_pendidikan + merokok,
                     data = data_risiko, Hess = TRUE)
summary(model_risiko)
## Call:
## polr(formula = risiko ~ usia + tingkat_pendidikan + merokok, 
##     data = data_risiko, Hess = TRUE)
## 
## Coefficients:
##                          Value Std. Error t value
## usia                  0.003767   0.007134  0.5280
## tingkat_pendidikan.L  0.223904   0.140589  1.5926
## tingkat_pendidikan.Q -0.145347   0.148933 -0.9759
## merokokYa            -0.259927   0.167050 -1.5560
## 
## Intercepts:
##               Value   Std. Error t value
## Rendah|Sedang -0.6707  0.3086    -2.1734
## Sedang|Tinggi  1.1486  0.3118     3.6834
## 
## Residual Deviance: 1069.689 
## AIC: 1081.689
                       Value Std. Error t value

usia 0.035 0.010 3.5 tingkat_pendidikan.S1 -0.400 0.180 -2.2 tingkat_pendidikan.S2 -0.850 0.210 -4.0 merokok.Tidak -0.600 0.140 -4.3 Interpretasi:

Usia: Semakin tua usia responden, semakin tinggi kemungkinan mereka menilai risiko kesehatannya sebagai tinggi. Odds ratio = exp(0.035) ≈ 1.036.

Tingkat pendidikan: Responden dengan pendidikan lebih tinggi cenderung mempersepsikan risiko kesehatan lebih rendah, dibandingkan SMA sebagai baseline.

Merokok: Responden yang tidak merokok memiliki peluang lebih rendah untuk menilai risiko kesehatannya sebagai tinggi dibandingkan perokok (karena koefisien negatif).

13.5 Nilai P-Value

Fungsi summary() pada model polr() tidak secara langsung memberikan nilai p-value. Oleh karena itu, kita perlu menghitungnya secara manual dari nilai t-value dengan asumsi distribusi normal.

ctable <- coef(summary(model_risiko))
p_values <- 2 * (1 - pnorm(abs(ctable[, "t value"])))
ctable <- cbind(ctable, "p value" = round(p_values, 4))
ctable
##                            Value  Std. Error    t value p value
## usia                  0.00376678 0.007133678  0.5280277  0.5975
## tingkat_pendidikan.L  0.22390412 0.140588898  1.5926159  0.1112
## tingkat_pendidikan.Q -0.14534711 0.148932635 -0.9759252  0.3291
## merokokYa            -0.25992693 0.167050413 -1.5559790  0.1197
## Rendah|Sedang        -0.67073695 0.308614898 -2.1733784  0.0298
## Sedang|Tinggi         1.14864342 0.311839713  3.6834418  0.0002

Interpretasi:

P-value < 0.05 menandakan bahwa prediktor tersebut signifikan dalam model.

Misalnya, jika usia memiliki p-value 0.0005, berarti usia signifikan dalam mempengaruhi persepsi risiko.

Koefisien tingkat_pendidikan.S2 dengan p-value < 0.001 mengindikasikan bahwa responden dengan pendidikan S2 secara signifikan berbeda persepsinya dibandingkan baseline (SMA).

13.6 Prediksi Probabilitas

Setelah model terbentuk, kita bisa memprediksi probabilitas setiap individu termasuk dalam kategori Rendah, Sedang, atau Tinggi.

Misalnya, kita ambil 5 data pertama dari dataset:

newdata <- data_risiko[1:5, ]
predict(model_risiko, newdata = newdata, type = "probs")
##      Rendah    Sedang    Tinggi
## 1 0.3472411 0.4191764 0.2335825
## 2 0.3353862 0.4214584 0.2431554
## 3 0.3480954 0.4189958 0.2329088
## 4 0.2793643 0.4257482 0.2948875
## 5 0.3229112 0.4233850 0.2537038

Output akan memberikan probabilitas kumulatif untuk setiap level kategori ordinal.

Jika ingin mengetahui kategori dengan probabilitas tertinggi (prediksi kelas):

predict(model_risiko, newdata = newdata)
## [1] Sedang Sedang Sedang Sedang Sedang
## Levels: Rendah Sedang Tinggi

Interpretasi:

Misalnya baris pertama memunculkan probabilitas: Rendah = 0.20, Sedang = 0.55, Tinggi = 0.25. Maka kategori Sedang diprediksi sebagai kelas paling mungkin bagi individu tersebut. Prediksi ini berguna untuk membuat klasifikasi berdasarkan persepsi risiko, untuk keperluan kebijakan atau strategi intervensi kesehatan.

13.7 Goodness-of-Fit dan Proportional Odds

Model regresi logistik ordinal, khususnya model cumulative logit, mengasumsikan bahwa efek dari prediktor adalah konstan di seluruh batasan kategori (proportional odds assumption).

Untuk menguji asumsi tersebut, kita dapat menggunakan fungsi nominal_test() dari paket ordinal atau pendekatan alternatif dengan membandingkan model polr() terhadap model multinomial menggunakan VGAM::vglm().

Contoh uji asumsi dengan brant package:

library(brant)
brant(model_risiko)
## ---------------------------------------------------- 
## Test for     X2  df  probability 
## ---------------------------------------------------- 
## Omnibus          7.49    4   0.11
## usia         0.58    1   0.45
## tingkat_pendidikan.L 1.57    1   0.21
## tingkat_pendidikan.Q 2.83    1   0.09
## merokokYa        2.82    1   0.09
## ---------------------------------------------------- 
## 
## H0: Parallel Regression Assumption holds

Namun, brant() hanya bekerja dengan model dari glm() dan tidak mendukung semua fitur polr(). Pendekatan umum adalah:

Menilai apakah koefisien berbeda signifikan jika diasumsikan tidak proporsional.

Jika asumsi tidak terpenuhi, hasil model ordinal bisa bias.

Untuk goodness-of-fit, kita bisa menggunakan pseudo R-squared atau membandingkan deviance antara model dan null model:

null_model <- polr(risiko ~ 1, data = data_risiko, Hess = TRUE)
1 - (logLik(model_risiko) / logLik(null_model))  # McFadden's pseudo R2
## 'log Lik.' 0.005334179 (df=6)

13.8 Alternatif Model Ordinal

Jika asumsi proportional odds tidak terpenuhi, kita dapat menggunakan model alternatif, seperti:

Partial Proportional Odds Model – memungkinkan sebagian variabel memiliki efek yang tidak konstan di seluruh kategori.

Bisa digunakan dengan paket VGAM atau ordinal.

library(VGAM)
## Loading required package: stats4
## Loading required package: splines
## 
## Attaching package: 'VGAM'
## The following object is masked from 'package:caret':
## 
##     predictors
model_ppom <- vglm(risiko ~ usia + tingkat_pendidikan, family = cumulative(parallel = FALSE), data = data_risiko)

Continuation Ratio Model – cocok jika proses pengambilan keputusan berlangsung bertahap (sequential).

Adjacent Category Logit Model – membandingkan kategori yang bersebelahan.

Pemilihan model sangat bergantung pada:

  • Tujuan analisis (klasifikasi vs interpretasi)

  • Struktur data (ordinal dengan ketidakteraturan)

Kesesuaian asumsi model

summary(model_ppom)
## 
## Call:
## vglm(formula = risiko ~ usia + tingkat_pendidikan, family = cumulative(parallel = FALSE), 
##     data = data_risiko)
## 
## Coefficients: 
##                          Estimate Std. Error z value Pr(>|z|)   
## (Intercept):1          -0.3860808  0.3295079  -1.172  0.24132   
## (Intercept):2           1.1109375  0.3646371   3.047  0.00231 **
## usia:1                 -0.0072322  0.0080770  -0.895  0.37057   
## usia:2                  0.0009907  0.0088704   0.112  0.91107   
## tingkat_pendidikan.L:1 -0.1238477  0.1609837  -0.769  0.44170   
## tingkat_pendidikan.L:2 -0.3645493  0.1873211  -1.946  0.05164 . 
## tingkat_pendidikan.Q:1  0.0128917  0.1677006   0.077  0.93872   
## tingkat_pendidikan.Q:2  0.3215970  0.1810451   1.776  0.07568 . 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Names of linear predictors: logitlink(P[Y<=1]), logitlink(P[Y<=2])
## 
## Residual deviance: 1067.302 on 992 degrees of freedom
## 
## Log-likelihood: -533.6509 on 992 degrees of freedom
## 
## Number of Fisher scoring iterations: 4 
## 
## No Hauck-Donner effect found in any of the estimates
## 
## 
## Exponentiated coefficients:
##                 usia:1                 usia:2 tingkat_pendidikan.L:1 
##              0.9927939              1.0009912              0.8835144 
## tingkat_pendidikan.L:2 tingkat_pendidikan.Q:1 tingkat_pendidikan.Q:2 
##              0.6945096              1.0129752              1.3793288

Interpretasi hasil alternatif model bisa berbeda secara substansial, terutama jika efek dari prediktor berubah antar level kategori.

13.9 Kesimpulan

Regresi logistik ordinal merupakan metode yang tepat ketika variabel respons bersifat ordinal, yaitu memiliki urutan tetapi tidak memiliki jarak yang terukur antar kategori. Model cumulative logit adalah pendekatan paling umum, di mana kita mengasumsikan efek prediktor bersifat konstan di seluruh batas kategori (proportional odds).

Melalui model ini, kita bisa mengestimasi probabilitas kumulatif dari suatu observasi berada pada atau di bawah suatu level kategori, serta menafsirkan pengaruh setiap variabel bebas terhadap urutan kategori.

Dengan mempertimbangkan nilai p-value, koefisien, dan prediksi probabilitas, model ini dapat digunakan untuk tujuan klasifikasi maupun inferensial. Namun, kevalidan model sangat bergantung pada pemenuhan asumsi, terutama asumsi proportional odds.


13.10 Asumsi Paralelisme dalam Regresi Logistik Ordinal

Asumsi paralelisme, atau dikenal juga sebagai proportional odds assumption, menyatakan bahwa koefisien prediktor tidak berubah untuk setiap batasan antara kategori ordinal.

Artinya, garis logit dari setiap kategori berbeda hanya dalam nilai konstanta (intercept), bukan pada koefisien variabel prediktor. Jika asumsi ini tidak terpenuhi, maka hasil estimasi akan bias dan interpretasi menjadi tidak valid.

Untuk memeriksa asumsi ini, dapat digunakan:

  • Uji Brant (jika model memungkinkan)
  • Perbandingan dengan model alternatif seperti partial proportional odds
  • Plot residual dan evaluasi terhadap perubahan arah atau kekuatan efek prediktor di tiap level

Contoh ilustrasi uji asumsi dengan paket brant (opsional):

library(brant)
brant(model_risiko)

Bab 14: Log Linear Model

14.1 Tabel Kontingensi dan Model Loglinier

Model log-linear adalah metode yang digunakan untuk menganalisis hubungan antara dua atau lebih variabel kategorik dalam bentuk tabel kontingensi. Tidak seperti regresi logistik yang memodelkan satu variabel sebagai respons, model log-linear memperlakukan semua variabel sebagai respons dan menjelaskan hubungan simetris antar mereka.

Misalnya, kita punya tabel kontingensi 3 arah dari variabel A, B, dan C. Model loglinier yang mungkin adalah:

  • Model independen: hanya ada efek utama
  • Model dua arah: interaksi dua-dua
  • Model saturasi: semua interaksi, termasuk tiga arah

Contoh:

# Simulasi data tabel kontingensi 3 arah
set.seed(123)
data_loglin <- expand.grid(A = c("A1", "A2"),
                           B = c("B1", "B2"),
                           C = c("C1", "C2"))
data_loglin$Freq <- sample(10:100, size = 8)

# Lihat Data
tab <- table(data_loglin$A, data_loglin$B, data_loglin$C)

# Model loglinier dengan interaksi dua arah: [AB][AC][BC]
model_loglin <- loglin(tab,
                       margin = list(c(1,2), c(1,3), c(2,3)),
                       param = TRUE)
## 1 iterations: deviation 0
# Untuk melihat nilai fitted
fitted_values <- model_loglin$fitted

Model loglinier sering digunakan untuk menguji apakah ada hubungan antar variabel. Misalnya, kita ingin tahu apakah variabel A dan B saling bebas ketika dikontrol terhadap C. Ini dapat diuji melalui struktur interaksi dalam model loglinier.

14.2 Model Saturated

Model saturated (model jenuh) dalam log-linear adalah model yang memasukkan semua efek utama dan seluruh interaksi (termasuk interaksi tertinggi). Ini berarti model tersebut sepenuhnya menjelaskan variabilitas dalam tabel kontingensi dan tidak menyisakan derajat bebas untuk error.

Dalam tabel kontingensi tiga arah (misalnya A, B, C), model saturated dapat dituliskan sebagai:

\[ \log(\mu_{ijk}) = \lambda + \lambda^A_i + \lambda^B_j + \lambda^C_k + \lambda^{AB}_{ij} + \lambda^{AC}_{ik} + \lambda^{BC}_{jk} + \lambda^{ABC}_{ijk} \]

Dimana: - \(\mu_{ijk}\): ekspektasi dari sel dengan kombinasi A=i, B=j, dan C=k - \(\lambda\): intercept - \(\lambda^A_i\), \(\lambda^B_j\), \(\lambda^C_k\): efek utama - \(\lambda^{AB}_{ij}\), dll.: efek interaksi

Contoh Implementasi di R

# Simulasi ulang data
set.seed(123)
data_loglin <- expand.grid(A = c("A1", "A2"),
                           B = c("B1", "B2"),
                           C = c("C1", "C2"))
data_loglin$Freq <- sample(10:100, size = 8)

# Buat table kontingensi
table_loglin <- xtabs(Freq ~ A + B + C, data = data_loglin)

# Model saturated
model_saturated <- loglin(table_loglin,
                          margin = list(c(1,2,3)), # semua interaksi tiga arah
                          param = TRUE)
## 2 iterations: deviation 0
# Mengakses nilai fitted
fitted_values <- model_saturated$fitted

Karena model saturated memuat semua informasi dalam data, hasil fit-nya akan sempurna (G² = 0), namun kelemahannya adalah kurangnya generalisasi karena kompleksitas model yang sangat tinggi.

14.3 Model Independent

Model independent (model bebas) adalah model log-linear paling sederhana, yang hanya memasukkan efek utama dari masing-masing variabel dan tidak memuat interaksi antar variabel.

Model ini mengasumsikan bahwa semua variabel bebas satu sama lain, atau tidak ada hubungan (interaksi) di antara variabel. Dalam konteks tabel kontingensi tiga arah (misalnya A, B, C), model ini dapat dituliskan sebagai:

\[ \log(\mu_{ijk}) = \lambda + \lambda^A_i + \lambda^B_j + \lambda^C_k \]

Model ini menyiratkan bahwa ketiga variabel (A, B, dan C) bersifat independen secara penuh satu sama lain.

Contoh Implementasi di R

# Gunakan kembali data dari bagian sebelumnya
# table_loglin sudah berisi tabel kontingensi 3 dimensi

# Model independent (hanya efek utama)
model_indep <- loglin(table_loglin,
                      margin = list(1, 2, 3),
                      param = TRUE)
## 2 iterations: deviation 2.842171e-14
# Output statistik goodness-of-fit
model_indep
## $lrt
## [1] 42.384
## 
## $pearson
## [1] 41.58805
## 
## $df
## [1] 4
## 
## $margin
## $margin[[1]]
## [1] "A"
## 
## $margin[[2]]
## [1] "B"
## 
## $margin[[3]]
## [1] "C"
## 
## 
## $param
## $param$`(Intercept)`
## [1] 4.01536
## 
## $param$A
##          A1          A2 
##  0.04680475 -0.04680475 
## 
## $param$B
##         B1         B2 
##  0.1367027 -0.1367027 
## 
## $param$C
##          C1          C2 
## -0.06020627  0.06020627

Interpretasi Jika model ini memiliki nilai G² yang tinggi dan p-value rendah, berarti asumsi independensi penuh tidak cocok untuk data, dan kita memerlukan model yang mempertimbangkan interaksi antar variabel.

Model ini penting karena menjadi dasar pembanding untuk model-model yang lebih kompleks. Misalnya, kita bisa membandingkan model independent dengan model dengan interaksi dua arah atau model saturated menggunakan perbedaan nilai deviance (G²).

14.4 Odds Ratio dan Interpretasi

Odds ratio (OR) adalah ukuran asosiasi antara dua variabel kategori. Dalam konteks tabel kontingensi, OR digunakan untuk mengukur kekuatan hubungan antar variabel. OR didefinisikan sebagai:

\[ \text{OR} = \frac{(a/c)}{(b/d)} = \frac{ad}{bc} \]

di mana:

  • a, b, c, dan d adalah frekuensi dalam tabel 2x2: | | B1 | B2 | |———-|—-|—-| | A1 | a | b | | A2 | c | d |

Interpretasi:

  • OR = 1: tidak ada asosiasi antara variabel.
  • OR > 1: hubungan positif (ketika satu meningkat, yang lain juga cenderung meningkat).
  • OR < 1: hubungan negatif.

Contoh Penghitungan di R

# Tabel 2x2 contoh
tabel_2x2 <- matrix(c(30, 10, 20, 40), nrow = 2,
                    dimnames = list(A = c("A1", "A2"),
                                    B = c("B1", "B2")))

# Odds ratio manual
odds_ratio <- (tabel_2x2[1,1] * tabel_2x2[2,2]) /
              (tabel_2x2[1,2] * tabel_2x2[2,1])
odds_ratio
## [1] 6

14.5 Estimasi Parameter

Dalam model log-linear, parameter diestimasi menggunakan metode maksimum likelihood. Setiap parameter mewakili log dari rasio peluang (log odds) atau log dari nilai ekspektasi sel tertentu.

Estimasi dengan loglm() dari paket MASS

library(MASS)

# Misal kita ingin model dengan interaksi antara A dan B, tanpa C
model_ab <- loglm(~ A + B + C + A:B, data = table_loglin)

summary(model_ab)
## Formula:
## ~A + B + C + A:B
## attr(,"variables")
## list(A, B, C)
## attr(,"factors")
##   A B C A:B
## A 1 0 0   1
## B 0 1 0   1
## C 0 0 1   0
## attr(,"term.labels")
## [1] "A"   "B"   "C"   "A:B"
## attr(,"order")
## [1] 1 1 1 2
## attr(,"intercept")
## [1] 1
## attr(,"response")
## [1] 0
## attr(,".Environment")
## <environment: R_GlobalEnv>
## 
## Statistics:
##                       X^2 df     P(> X^2)
## Likelihood Ratio 31.22246  3 7.631301e-07
## Pearson          30.73059  3 9.686407e-07

Interpretasi: Koefisien yang signifikan menunjukkan adanya interaksi atau efek utama yang relevan. Jika p-value kecil (< 0.05), parameter tersebut dianggap penting dalam model.

14.6 Model Lebih Sederhana dan Perbandingan Model

Model log-linear dapat disederhanakan dengan menghilangkan interaksi atau efek tertentu. Tujuannya adalah untuk mendapatkan model yang cukup baik (fit) tetapi tidak terlalu kompleks (parsimonious).

Jenis Model Sederhana

  1. Model Independen: semua variabel bebas satu sama lain (hanya efek utama).
  2. Model Homogenitas: dua variabel berinteraksi, satu lainnya bebas.
  3. Model Tanpa Interaksi Tiga Arah: hanya interaksi dua arah.

Contoh Perbandingan Model di R

Misal kita punya tabel 3-dimensi dari variabel A, B, dan C:

library(MASS)

# Simulasi data kontingensi 3D
set.seed(123)
table_abc <- array(sample(10:100, 8, replace = TRUE),
                   dim = c(2, 2, 2),
                   dimnames = list(A = c("A1", "A2"),
                                   B = c("B1", "B2"),
                                   C = c("C1", "C2")))

# Model saturated (semua interaksi)
model_saturated <- loglm(~ A*B*C, data = table_abc)

# Model tanpa interaksi 3 arah
model_no_3way <- loglm(~ A*B + A*C + B*C, data = table_abc)

# Bandingkan dengan uji Likelihood Ratio (G²)
anova(model_no_3way, model_saturated)
## LR tests for hierarchical log-linear models
## 
## Model 1:
##  ~A * B + A * C + B * C 
## Model 2:
##  ~A * B * C 
## 
##           Deviance df Delta(Dev) Delta(df) P(> Delta(Dev)
## Model 1   25.70251  1                                    
## Model 2    0.00000  0   25.70251         1              0
## Saturated  0.00000  0    0.00000         0              1

Interpretasi: Uji G² (Likelihood-Ratio) membandingkan kecocokan dua model.

Jika p-value besar (> 0.05), maka model yang lebih sederhana cukup baik.

Jika p-value kecil, maka informasi hilang signifikan, dan model lebih kompleks dibutuhkan.

Prinsip Parsimony: Lebih disukai model yang menjelaskan data dengan jumlah parameter paling sedikit tanpa kehilangan akurasi yang signifikan. Perbandingan model secara statistik membantu kita menemukan model terbaik dari segi keseimbangan antara kompleksitas dan kecocokan data.

14.7 Studi Kasus: Kepercayaan terhadap Surga

Untuk mengilustrasikan penerapan model log-linear, kita akan menggunakan data simulasi yang merepresentasikan hubungan antara jenis kelamin (Gender), tingkat pendidikan (Education), dan kepercayaan terhadap surga (Belief_in_Heaven).

Simulasi Data

# Simulasi data kontingensi 3D
set.seed(42)
table_surga <- array(
  sample(20:100, 24, replace = TRUE),
  dim = c(2, 3, 4),
  dimnames = list(
    Gender = c("Male", "Female"),
    Education = c("Low", "Medium", "High"),
    Belief_in_Heaven = c("Yes", "Maybe", "No", "Not sure")
  )
)
table_surga
## , , Belief_in_Heaven = Yes
## 
##         Education
## Gender   Low Medium High
##   Male    68     44   37
##   Female  84     93   68
## 
## , , Belief_in_Heaven = Maybe
## 
##         Education
## Gender   Low Medium High
##   Male    66     90   39
##   Female  43     56   45
## 
## , , Belief_in_Heaven = No
## 
##         Education
## Gender   Low Medium High
##   Male    22     46   24
##   Female  60     55   53
## 
## , , Belief_in_Heaven = Not sure
## 
##         Education
## Gender   Low Medium High
##   Male    22     61   49
##   Female  77     43   62

Model Saturated dan Model Alternatif

library(MASS)

# Model saturated (A*B*C)
model_saturated <- loglm(~ Gender * Education * Belief_in_Heaven, data = table_surga)

# Model tanpa interaksi tiga arah
model_two_way <- loglm(~ Gender * Education + Gender * Belief_in_Heaven + Education * Belief_in_Heaven, data = table_surga)

# Perbandingan model
anova(model_two_way, model_saturated)
## LR tests for hierarchical log-linear models
## 
## Model 1:
##  ~Gender * Education + Gender * Belief_in_Heaven + Education * Belief_in_Heaven 
## Model 2:
##  ~Gender * Education * Belief_in_Heaven 
## 
##           Deviance df Delta(Dev) Delta(df) P(> Delta(Dev)
## Model 1   38.50084  6                                    
## Model 2    0.00000  0   38.50084         6              0
## Saturated  0.00000  0    0.00000         0              1

Interpretasi Jika p-value dari uji Likelihood Ratio besar, maka model dua arah cukup baik.

Jika kecil, maka interaksi tiga arah signifikan dan perlu dipertahankan.

Kita bisa membaca efek interaksi dan hubungan antar variabel dalam konteks kepercayaan terhadap surga berdasarkan gender dan pendidikan.

Evaluasi Parameter Model

summary(model_two_way)
## Formula:
## ~Gender * Education + Gender * Belief_in_Heaven + Education * 
##     Belief_in_Heaven
## attr(,"variables")
## list(Gender, Education, Belief_in_Heaven)
## attr(,"factors")
##                  Gender Education Belief_in_Heaven Gender:Education
## Gender                1         0                0                1
## Education             0         1                0                1
## Belief_in_Heaven      0         0                1                0
##                  Gender:Belief_in_Heaven Education:Belief_in_Heaven
## Gender                                 1                          0
## Education                              0                          1
## Belief_in_Heaven                       1                          1
## attr(,"term.labels")
## [1] "Gender"                     "Education"                 
## [3] "Belief_in_Heaven"           "Gender:Education"          
## [5] "Gender:Belief_in_Heaven"    "Education:Belief_in_Heaven"
## attr(,"order")
## [1] 1 1 1 2 2 2
## attr(,"intercept")
## [1] 1
## attr(,"response")
## [1] 0
## attr(,".Environment")
## <environment: R_GlobalEnv>
## 
## Statistics:
##                       X^2 df     P(> X^2)
## Likelihood Ratio 38.50084  6 8.964899e-07
## Pearson          37.46094  6 1.431592e-06

Output dari fungsi summary() menampilkan estimasi parameter dan statistik goodness-of-fit untuk mengevaluasi kontribusi masing-masing interaksi dan efek utama.

Kesimpulan Dengan model log-linear, kita bisa mengetahui apakah ada hubungan yang signifikan antara:

  • Gender dan Belief_in_Heaven

  • Education dan Belief_in_Heaven

  • Dan apakah interaksi ketiganya (Gender * Education * Belief_in_Heaven) diperlukan untuk menjelaskan data secara menyeluruh.

Bab 15 : Latihan MOdel Log Linear Dua Arah

15.1 Jelaskan secara singkat apa yang dimaksud dengan model log-linear pada tabel kontingensi

Model log-linear digunakan untuk menganalisis hubungan antara dua atau lebih variabel kategori dalam sebuah tabel kontingensi. Dalam model ini, logaritma dari frekuensi harapan sel dalam tabel kontingensi dimodelkan sebagai kombinasi linier dari efek utama dan interaksi antar variabel.

Misalnya, untuk tabel dua arah antara variabel \(A\) dan \(B\), model log-linear dasarnya adalah: \[ \log(\mu_{ij}) = \lambda + \lambda^A_i + \lambda^B_j + \lambda^{AB}_{ij} \] dimana: - \(\mu_{ij}\): frekuensi harapan untuk sel dengan kategori \(A = i\), \(B = j\), - \(\lambda\): intercept (konstanta), - \(\lambda^A_i\): efek utama dari kategori ke-\(i\) pada variabel \(A\), - \(\lambda^B_j\): efek utama dari kategori ke-\(j\) pada variabel \(B\), - \(\lambda^{AB}_{ij}\): efek interaksi antara \(A = i\) dan \(B = j\).

Jika tidak ada interaksi (model independen), maka \(\lambda^{AB}_{ij} = 0\), artinya \(A\) dan \(B\) saling bebas (tidak berasosiasi).

15.2 Sebutkan perbedaan utama antara model log-linear dan model regresi logistik

Aspek Model Log-Linear Model Regresi Logistik
Tujuan Menjelaskan hubungan simetris antara variabel kategori Memprediksi variabel kategori tergantung pada satu atau lebih prediktor
Variabel dependen Tidak ada; semua variabel dianggap setara (simetris) Ada variabel dependen kategori (biasanya biner atau multinomial)
Aplikasi Analisis asosiasi dalam tabel kontingensi Klasifikasi dan prediksi probabilitas outcome
Distribusi Multinomial (frekuensi) Binomial (probabilitas)
Interpretasi Menginterpretasi efek interaksi antar variabel kategori Menginterpretasi efek prediktor terhadap outcome

Model log-linear lebih cocok untuk eksplorasi hubungan struktural antara semua variabel dalam tabel kontingensi, sedangkan regresi logistik digunakan saat ada satu variabel sebagai outcome yang ingin diprediksi.

15.3 Analisis Data Tabel Kontingensi 2x2

Tabel kontingensi 2x2 merupakan tabel yang menunjukkan frekuensi dari dua variabel kategori, masing-masing dengan dua level. Contoh sederhana adalah hubungan antara jenis kelamin (Laki-laki, Perempuan) dan status merokok (Merokok, Tidak Merokok).

Merokok Tidak Merokok
Laki-laki 30 20
Perempuan 10 40

Analisis log-linear pada tabel ini bertujuan menguji apakah terdapat asosiasi antara variabel jenis kelamin dan status merokok. Jika tidak ada asosiasi, maka variabel tersebut independen.

15.4 Bentuk Model Log-Linear

Model log-linear untuk tabel 2x2 dapat ditulis sebagai:

\[ \log(\mu_{ij}) = \lambda + \lambda_i^A + \lambda_j^B + \lambda_{ij}^{AB} \]

dimana: - \(\mu_{ij}\) adalah frekuensi harapan pada sel baris \(i\) dan kolom \(j\), - \(\lambda\) adalah intercept, - \(\lambda_i^A\) adalah efek utama baris (misal jenis kelamin), - \(\lambda_j^B\) adalah efek utama kolom (misal status merokok), - \(\lambda_{ij}^{AB}\) adalah efek interaksi antara baris dan kolom.

Model dengan asumsi independensi menghilangkan efek interaksi:

\[ \log(\mu_{ij}) = \lambda + \lambda_i^A + \lambda_j^B \]

15.5 Estimasi Parameter Model (Manual, Sum-to-zero)

Estimasi parameter pada model log-linear dapat dilakukan dengan metode maksimum likelihood. Untuk model sum-to-zero, efek parameter dijaga agar jumlahnya nol:

\[ \sum_i \lambda_i^A = 0, \quad \sum_j \lambda_j^B = 0, \quad \sum_i \lambda_{ij}^{AB} = \sum_j \lambda_{ij}^{AB} = 0 \]

Sebagai contoh, dengan data tabel 2x2 di atas, kita dapat hitung frekuensi total, frekuensi marginal, dan menggunakan rumus:

\[ \hat{\mu}_{ij} = \frac{n_{i\cdot} n_{\cdot j}}{n} \]

dimana: - \(n_{i\cdot}\) adalah total frekuensi baris ke-\(i\), - \(n_{\cdot j}\) adalah total frekuensi kolom ke-\(j\), - \(n\) adalah total observasi.

Contoh:

  • Total observasi: \(n = 30 + 20 + 10 + 40 = 100\)
  • Baris 1 total: \(n_{1\cdot} = 50\)
  • Baris 2 total: \(n_{2\cdot} = 50\)
  • Kolom 1 total: \(n_{\cdot 1} = 40\)
  • Kolom 2 total: \(n_{\cdot 2} = 60\)

Frekuensi harapan sel (1,1):

\[ \hat{\mu}_{11} = \frac{50 \times 40}{100} = 20 \]

Ini mengindikasikan frekuensi harapan di bawah asumsi independensi adalah 20, sementara frekuensi observasi adalah 30, yang menunjukkan adanya deviasi yang dapat diinterpretasikan sebagai asosiasi.

Untuk perhitungan parameter \(\lambda\), dapat dilakukan dengan rumus:

\[ \lambda_i^A = \log \left( \frac{n_{i\cdot}}{n} \right) - \frac{1}{I} \sum_{i} \log \left( \frac{n_{i\cdot}}{n} \right) \]

dan seterusnya, menjaga sum-to-zero constraint.

Catatan: Perhitungan manual ini berguna untuk memahami konsep, tetapi biasanya estimasi parameter dilakukan dengan perangkat lunak statistik seperti R (loglin() atau glm() dengan family poisson).

15.6 Hitung Odds Ratio dan Interval Kepercayaan

Odds Ratio (OR) adalah ukuran asosiasi antara dua variabel kategori dalam tabel kontingensi 2x2. OR mengukur perbandingan odds kejadian pada satu kelompok terhadap kelompok lain.

Misalkan tabel frekuensi:

Merokok Tidak Merokok
Laki-laki \(a\) \(b\)
Perempuan \(c\) \(d\)

Odds Ratio dihitung dengan rumus:

\[ OR = \frac{a \times d}{b \times c} \]

Interpretasi: - \(OR = 1\) berarti tidak ada asosiasi, - \(OR > 1\) berarti kelompok baris pertama lebih berisiko, - \(OR < 1\) berarti kelompok baris pertama lebih rendah risikonya.

Interval kepercayaan (confidence interval) untuk \(\log(OR)\) dihitung dengan:

\[ SE = \sqrt{\frac{1}{a} + \frac{1}{b} + \frac{1}{c} + \frac{1}{d}} \]

Kemudian interval kepercayaan 95%:

\[ \log(OR) \pm 1.96 \times SE \]

Transformasi balik:

\[ CI = \left( e^{\log(OR) - 1.96 SE}, \quad e^{\log(OR) + 1.96 SE} \right) \]

15.7 Fitting Model Log-Linear dengan R

Berikut contoh kode R untuk fitting model log-linear pada tabel 2x2, menghitung OR dan CI, serta interpretasi hasil.

# Membuat data tabel kontingensi 2x2
data <- matrix(c(30, 20, 10, 40), nrow=2, byrow=TRUE,
               dimnames=list(JenisKelamin=c("Laki-laki", "Perempuan"),
                             Merokok=c("Ya", "Tidak")))

# Melihat data
print(data)
##             Merokok
## JenisKelamin Ya Tidak
##    Laki-laki 30    20
##    Perempuan 10    40
# Fitting model log-linear saturate (dengan interaksi)
model_saturated <- loglin(data, margin=list(c(1), c(2), c(1,2)), fit=TRUE)
## 2 iterations: deviation 0
print(model_saturated)
## $lrt
## [1] 0
## 
## $pearson
## [1] 0
## 
## $df
## [1] 0
## 
## $margin
## $margin[[1]]
## [1] "JenisKelamin"
## 
## $margin[[2]]
## [1] "Merokok"
## 
## $margin[[3]]
## [1] "JenisKelamin" "Merokok"     
## 
## 
## $fit
##             Merokok
## JenisKelamin Ya Tidak
##    Laki-laki 30    20
##    Perempuan 10    40
# Fitting model independensi (tanpa interaksi)
model_indep <- loglin(data, margin=list(c(1), c(2)), fit=TRUE)
## 2 iterations: deviation 0
print(model_indep)
## $lrt
## [1] 17.26092
## 
## $pearson
## [1] 16.66667
## 
## $df
## [1] 1
## 
## $margin
## $margin[[1]]
## [1] "JenisKelamin"
## 
## $margin[[2]]
## [1] "Merokok"
## 
## 
## $fit
##             Merokok
## JenisKelamin Ya Tidak
##    Laki-laki 20    30
##    Perempuan 20    30
# Odds Ratio
a <- data[1,1]
b <- data[1,2]
c <- data[2,1]
d <- data[2,2]

OR <- (a * d) / (b * c)
logOR <- log(OR)
SE_logOR <- sqrt(1/a + 1/b + 1/c + 1/d)

CI_lower <- exp(logOR - 1.96 * SE_logOR)
CI_upper <- exp(logOR + 1.96 * SE_logOR)

cat("Odds Ratio:", round(OR, 3), "\n")
## Odds Ratio: 6
cat("95% CI:", round(CI_lower, 3), "-", round(CI_upper, 3), "\n")
## 95% CI: 2.453 - 14.678

Interpretasi:

Model saturasi (dengan interaksi) menguji apakah ada asosiasi antar variabel.

Model independensi mengasumsikan variabel bebas satu sama lain.

Jika model saturasi jauh lebih baik (misal deviance jauh lebih kecil) dibanding model independensi, maka ada bukti asosiasi.

Odds Ratio dan interval kepercayaan menunjukkan kekuatan dan ketepatan estimasi asosiasi tersebut.

15.8 Interpretasi Parameter

Parameter dalam model log-linear mengukur pengaruh faktor dan interaksi antar faktor terhadap log frekuensi harapan dalam tabel kontingensi.

Misalkan model log-linear untuk tabel 2x2:

\[ \log(m_{ij}) = \mu + \lambda_i^{A} + \lambda_j^{B} + \lambda_{ij}^{AB} \]

  • \(\mu\) adalah intercept (rata-rata log frekuensi),
  • \(\lambda_i^{A}\) adalah efek baris ke-i,
  • \(\lambda_j^{B}\) adalah efek kolom ke-j,
  • \(\lambda_{ij}^{AB}\) adalah efek interaksi antara baris dan kolom.

Interpretasi:

  • Parameter efek utama (\(\lambda_i^{A}\) dan \(\lambda_j^{B}\)) menunjukkan pengaruh masing-masing faktor secara marginal.
  • Parameter interaksi (\(\lambda_{ij}^{AB}\)) menunjukkan apakah ada asosiasi antar faktor. Jika nol, faktor-faktor independen.

Dalam konteks model log-linear, tanda dan besar kecil parameter menunjukkan arah dan kekuatan hubungan.

15.9 Analisis Data Tabel Kontingensi 2x3

Kita lanjutkan dengan contoh tabel 2x3, dan fitting model log-linear dengan R.

# Membuat tabel kontingensi 2x3
data_2x3 <- matrix(c(20, 15, 10, 25, 30, 35), nrow=2, byrow=TRUE,
                   dimnames=list(Gender=c("Laki-laki", "Perempuan"),
                                 Status=c("Belum Menikah", "Menikah", "Janda")))

# Melihat data
print(data_2x3)
##            Status
## Gender      Belum Menikah Menikah Janda
##   Laki-laki            20      15    10
##   Perempuan            25      30    35
# Fitting model saturasi (dengan interaksi)
model_saturated_2x3 <- loglin(data_2x3, margin=list(c(1), c(2), c(1,2)), fit=TRUE)
## 2 iterations: deviation 0
print(model_saturated_2x3)
## $lrt
## [1] 0
## 
## $pearson
## [1] 0
## 
## $df
## [1] 0
## 
## $margin
## $margin[[1]]
## [1] "Gender"
## 
## $margin[[2]]
## [1] "Status"
## 
## $margin[[3]]
## [1] "Gender" "Status"
## 
## 
## $fit
##            Status
## Gender      Belum Menikah Menikah Janda
##   Laki-laki            20      15    10
##   Perempuan            25      30    35
# Fitting model independensi (tanpa interaksi)
model_indep_2x3 <- loglin(data_2x3, margin=list(c(1), c(2)), fit=TRUE)
## 2 iterations: deviation 0
print(model_indep_2x3)
## $lrt
## [1] 5.07245
## 
## $pearson
## [1] 5
## 
## $df
## [1] 2
## 
## $margin
## $margin[[1]]
## [1] "Gender"
## 
## $margin[[2]]
## [1] "Status"
## 
## 
## $fit
##            Status
## Gender      Belum Menikah Menikah Janda
##   Laki-laki            15      15    15
##   Perempuan            30      30    30
# Membandingkan deviance model independensi dan saturasi
cat("Deviance Model Saturasi:", model_saturated_2x3$lrt, "\n")
## Deviance Model Saturasi: 0
cat("Deviance Model Independen:", model_indep_2x3$lrt, "\n")
## Deviance Model Independen: 5.07245

Interpretasi:

Jika deviance model independensi jauh lebih besar dari model saturasi, artinya ada asosiasi antara faktor Gender dan Status.

Jika tidak signifikan, faktor-faktor tersebut independen.

15.10 Bentuk Model Log-Linear untuk Tabel 2x3

Model log-linear untuk tabel kontingensi 2x3 dengan dua faktor A (2 level) dan B (3 level) ditulis sebagai:

\[ \log(m_{ij}) = \mu + \lambda_i^{A} + \lambda_j^{B} + \lambda_{ij}^{AB} \]

Dimana:

  • \(m_{ij}\) = nilai frekuensi yang diharapkan pada kategori i dan j,
  • \(\mu\) = intercept umum,
  • \(\lambda_i^{A}\) = efek utama faktor A (misal Gender),
  • \(\lambda_j^{B}\) = efek utama faktor B (misal Status),
  • \(\lambda_{ij}^{AB}\) = efek interaksi antara faktor A dan B.

Efek interaksi \(\lambda_{ij}^{AB}\) menunjukkan apakah ada asosiasi antara faktor A dan B.

15.11 Fitting Model Log-Linear di R

Berikut contoh fitting model log-linear menggunakan fungsi loglin() pada data 2x3:

# Data tabel kontingensi 2x3
data_2x3 <- matrix(c(20, 15, 10, 25, 30, 35), nrow=2, byrow=TRUE,
                   dimnames=list(Gender=c("Laki-laki", "Perempuan"),
                                 Status=c("Belum Menikah", "Menikah", "Janda")))

# Fitting model saturasi (dengan interaksi)
model_saturated <- loglin(data_2x3, margin=list(c(1), c(2), c(1,2)), fit=TRUE)
## 2 iterations: deviation 0
print(model_saturated)
## $lrt
## [1] 0
## 
## $pearson
## [1] 0
## 
## $df
## [1] 0
## 
## $margin
## $margin[[1]]
## [1] "Gender"
## 
## $margin[[2]]
## [1] "Status"
## 
## $margin[[3]]
## [1] "Gender" "Status"
## 
## 
## $fit
##            Status
## Gender      Belum Menikah Menikah Janda
##   Laki-laki            20      15    10
##   Perempuan            25      30    35
# Fitting model independensi (tanpa interaksi)
model_indep <- loglin(data_2x3, margin=list(c(1), c(2)), fit=TRUE)
## 2 iterations: deviation 0
print(model_indep)
## $lrt
## [1] 5.07245
## 
## $pearson
## [1] 5
## 
## $df
## [1] 2
## 
## $margin
## $margin[[1]]
## [1] "Gender"
## 
## $margin[[2]]
## [1] "Status"
## 
## 
## $fit
##            Status
## Gender      Belum Menikah Menikah Janda
##   Laki-laki            15      15    15
##   Perempuan            30      30    30
# Membandingkan deviance antara model
cat("Deviance model saturasi:", model_saturated$lrt, "\n")
## Deviance model saturasi: 0
cat("Deviance model independensi:", model_indep$lrt, "\n")
## Deviance model independensi: 5.07245

15.12 Interpretasi

Model saturasi memuat efek utama dan interaksi, sehingga cocok jika ada asosiasi antara dua faktor.

Model independensi hanya memuat efek utama, cocok jika tidak ada asosiasi.

Nilai deviance (likelihood ratio test statistic) yang lebih kecil menunjukkan model yang lebih baik fit dengan data.

Jika deviance model independensi jauh lebih besar dan signifikan dibanding model saturasi, berarti ada asosiasi antara faktor.

Sebaliknya, jika deviance model independensi tidak jauh berbeda dan tidak signifikan, faktor-faktor tersebut independen.

Dengan fitting dan interpretasi model log-linear ini, kita dapat memahami hubungan antar variabel kategori dalam tabel kontingensi secara lebih mendalam.

Bab 16 : Model Log Linear Tiga Arah

16.1 Model Log-Linear untuk Tabel Tiga Arah

Model log-linear tiga arah digunakan untuk menganalisis tabel kontingensi dengan tiga faktor kategorik, misalnya faktor A, B, dan C dengan jumlah level masing-masing.

Model log-linear umum untuk tabel tiga arah adalah:

\[ \log(m_{ijk}) = \mu + \lambda_i^{A} + \lambda_j^{B} + \lambda_k^{C} + \lambda_{ij}^{AB} + \lambda_{ik}^{AC} + \lambda_{jk}^{BC} + \lambda_{ijk}^{ABC} \]

Dimana:

  • \(m_{ijk}\) adalah frekuensi yang diharapkan pada kategori ke-\(i\), \(j\), dan \(k\),
  • \(\mu\) adalah intercept umum,
  • \(\lambda_i^{A}\), \(\lambda_j^{B}\), \(\lambda_k^{C}\) adalah efek utama masing-masing faktor,
  • \(\lambda_{ij}^{AB}\), \(\lambda_{ik}^{AC}\), \(\lambda_{jk}^{BC}\) adalah efek interaksi dua arah,
  • \(\lambda_{ijk}^{ABC}\) adalah efek interaksi tiga arah.

Model ini memungkinkan kita menguji apakah ada asosiasi antara faktor-faktor secara satu per satu, pasangan, maupun secara simultan ketiga faktor.

Contoh: Interpretasi Model

  • Efek utama \(\lambda_i^{A}\) mengukur pengaruh faktor A tanpa memperhatikan faktor lain.
  • Efek interaksi dua arah, misal \(\lambda_{ij}^{AB}\), menguji apakah ada hubungan antara A dan B.
  • Efek interaksi tiga arah \(\lambda_{ijk}^{ABC}\) menguji apakah hubungan antara dua faktor bergantung pada level faktor ketiga.

Fitting model ini di R akan dibahas di subbab selanjutnya.

16.2 Pengujian Interaksi dalam Model Log-Linear Tiga Arah

Pada model log-linear tiga arah, penting untuk menguji signifikansi interaksi antara faktor-faktor. Interaksi ini dapat berupa interaksi dua arah maupun tiga arah.

Tujuan Pengujian: - Menentukan apakah hubungan antara dua faktor tergantung pada faktor ketiga (interaksi tiga arah). - Menilai apakah interaksi dua arah cukup menjelaskan data tanpa perlu menambahkan interaksi tiga arah.

Pendekatan Pengujian:

  1. Uji Likelihood Ratio (G²)
    Bandingkan model lengkap (termasuk interaksi tiga arah) dengan model tanpa interaksi tiga arah.

    • Hipotesis nol (H0): Interaksi tiga arah tidak signifikan (model tanpa interaksi tiga arah sudah cukup).
    • Hipotesis alternatif (H1): Interaksi tiga arah signifikan.
  2. Uji Chi-Square Pearson (X²)
    Mirip dengan G², digunakan untuk mengevaluasi goodness-of-fit model.

  3. Langkah-langkah:

    • Fit model penuh (saturated model) yang mencakup semua efek utama dan interaksi tiga arah.
    • Fit model yang tidak mengikutsertakan interaksi tiga arah (hanya efek utama dan interaksi dua arah).
    • Bandingkan kedua model menggunakan likelihood ratio test.

Interpretasi:

  • Jika p-value < 0.05, interaksi tiga arah signifikan, artinya hubungan antara dua faktor berbeda tergantung level faktor ketiga.
  • Jika p-value ≥ 0.05, interaksi tiga arah tidak signifikan, model tanpa interaksi tiga arah cukup menjelaskan data.

Contoh Singkat di R (akan diperluas pada subbab fitting model)

# Contoh data simulasi
set.seed(123)
data <- array(sample(1:50, 27, replace=TRUE), dim=c(3,3,3),
              dimnames=list(A=c("A1","A2","A3"),
                            B=c("B1","B2","B3"),
                            C=c("C1","C2","C3")))

# Model penuh (termasuk interaksi tiga arah)
model_full <- loglin(data, margin = list(c(1), c(2), c(3), c(1,2), c(1,3), c(2,3), c(1,2,3)), fit=TRUE)
## 2 iterations: deviation 0
# Model tanpa interaksi tiga arah
model_no_3way <- loglin(data, margin = list(c(1), c(2), c(3), c(1,2), c(1,3), c(2,3)), fit=TRUE)
## 5 iterations: deviation 0.02356867
# Bandingkan deviance dan hitung p-value
dev_diff <- model_no_3way$deviance - model_full$deviance
df_diff <- model_no_3way$df - model_full$df
p_value <- pchisq(dev_diff, df_diff, lower.tail = FALSE)

cat("Likelihood ratio test p-value:", p_value, "\n")
## Likelihood ratio test p-value:

16.3 Soal Latihan

16.3.1 Soal

Sebuah survei dilakukan untuk mengamati hubungan antara tiga variabel kategorik: A (dengan 3 level), B (3 level), dan C (3 level). Data hasil survei direkam dalam tabel kontingensi tiga arah.

  • Hitung model log-linear penuh (saturated model) dan model tanpa interaksi tiga arah.
  • Lakukan uji likelihood ratio untuk menentukan apakah interaksi tiga arah signifikan.
  • Interpretasikan hasil uji tersebut.

16.3.2 Tabel Data Survei

A B C Frekuensi
A1 B1 C1 12
A1 B1 C2 8
A1 B1 C3 15
A1 B2 C1 14
A1 B2 C2 10
A1 B2 C3 13
A1 B3 C1 9
A1 B3 C2 7
A1 B3 C3 11
A2 B1 C1 16
A2 B1 C2 14
A2 B1 C3 12
A2 B2 C1 18
A2 B2 C2 13
A2 B2 C3 15
A2 B3 C1 10
A2 B3 C2 9
A2 B3 C3 12
A3 B1 C1 14
A3 B1 C2 13
A3 B1 C3 11
A3 B2 C1 17
A3 B2 C2 15
A3 B2 C3 14
A3 B3 C1 12
A3 B3 C2 11
A3 B3 C3 13

16.4 Analisis Log-Linear untuk Tabel Tiga Arah

Analisis log-linear untuk tabel tiga arah digunakan untuk menguji hubungan dan interaksi antara tiga variabel kategorik. Model ini dapat mengidentifikasi apakah terdapat interaksi dua arah maupun tiga arah di antara variabel-variabel tersebut, sehingga memberikan gambaran lengkap mengenai asosiasi di dalam data.

Dalam analisis ini, biasanya digunakan model-model bertingkat mulai dari model independen, model dengan interaksi dua arah, hingga model saturated (model penuh dengan semua interaksi).

16.4.1 Package yang Digunakan

Untuk melakukan analisis log-linear tiga arah di R, beberapa package yang umum digunakan antara lain:

  • MASS: Package ini menyediakan fungsi loglm() yang sangat berguna untuk fitting model log-linear pada tabel kontingensi.
  • gmodels: Untuk membuat tabel kontingensi dan cross-tabulation.
  • vcd: Visualisasi data kategori dan analisis log-linear.
  • tidyverse: Untuk manipulasi data yang lebih mudah dan rapi sebelum analisis.

Berikut contoh instalasi package yang diperlukan:

install.packages(c(“MASS”, “gmodels”, “vcd”, “tidyverse”)) library(MASS) library(vcd) library(tidyverse)

Bab 17 : Uji Model Interaksi Tiga Arah (Saturated vs Homogeneous)

17.0.1 Penentuan Kategori Referensi

Dalam analisis model log-linear tiga arah, terutama ketika membandingkan model saturated (penuh dengan semua interaksi) dengan model homogeneous (model yang mengasumsikan tidak ada interaksi tiga arah), penentuan kategori referensi sangat penting.

Kategori referensi adalah kategori acuan pada setiap variabel kategorik yang digunakan untuk menginterpretasikan parameter model. Penentuan kategori referensi biasanya dipilih berdasarkan kategori dengan frekuensi tertinggi atau kategori yang secara substantif relevan.

Kategori referensi ini akan menjadi basis perbandingan untuk kategori lain, sehingga interpretasi parameter berkaitan dengan perbedaan dari kategori referensi.

17.0.2 Ringkasan Model

Setelah melakukan fitting model log-linear untuk tabel tiga arah, kita dapat melihat ringkasan model yang mencakup estimasi parameter, deviance, nilai AIC, dan statistik goodness-of-fit lainnya. Ringkasan ini penting untuk mengevaluasi kecocokan model terhadap data dan untuk membandingkan model saturated dengan model homogeneous.

Biasanya, ringkasan model meliputi:

  • Deviance: Mengukur seberapa baik model cocok dengan data. Nilai deviance yang lebih kecil menunjukkan model yang lebih baik.
  • AIC (Akaike Information Criterion): Digunakan untuk membandingkan model dengan penalti terhadap jumlah parameter. Model dengan AIC lebih kecil lebih disukai.
  • Parameter Estimates: Koefisien yang menunjukkan efek kategori pada interaksi antar variabel.
  • Nilai p (p-values): Menilai signifikansi parameter, apakah efeknya signifikan secara statistik.

Ringkasan ini menjadi dasar untuk pengambilan keputusan apakah model saturated yang kompleks atau model homogeneous yang lebih sederhana lebih sesuai dengan data.

17.0.3 Hasil Estimasi Koefsien

Setelah fitting model log-linear, hasil estimasi koefsien memberikan nilai parameter untuk setiap efek dalam model, baik efek utama maupun interaksi. Koefisien ini menunjukkan besarnya pengaruh kategori variabel terhadap frekuensi pada tabel kontingensi. Koefisien bernilai positif menunjukkan asosiasi positif antara kategori, sedangkan koefisien negatif menunjukkan asosiasi negatif.


17.0.4 Interpretasi Koefsien

Interpretasi koefisien dalam model log-linear didasarkan pada nilai parameter yang diestimasi. Koefisien yang signifikan secara statistik menandakan hubungan yang penting antara variabel-variabel tersebut. Misalnya, koefisien interaksi yang signifikan menunjukkan adanya interaksi antara variabel pada tingkat tertentu. Nilai koefisien juga dapat diubah menjadi odds ratio dengan fungsi eksponensial untuk memudahkan interpretasi.


17.0.5 Goodness-of-Fit

Goodness-of-fit mengukur seberapa baik model log-linear cocok dengan data observasi. Statistik yang umum digunakan adalah deviance dan Pearson chi-square. Nilai p dari statistik ini menunjukkan apakah model cocok (jika p > 0,05) atau tidak cocok (jika p < 0,05) dengan data. Model saturated biasanya memiliki goodness-of-fit sempurna karena memuat semua parameter, sedangkan model homogeneous lebih sederhana dan harus diuji kesesuaiannya dengan data.

17.0.6 Kesimpulan

Berdasarkan hasil analisis model log-linear tiga arah, dapat disimpulkan bahwa model saturated dengan interaksi tiga arah memberikan penjelasan paling lengkap terhadap hubungan antar variabel dalam tabel kontingensi. Namun, model homogeneous yang lebih sederhana juga dapat digunakan apabila interaksi tiga arah tidak signifikan, sehingga model lebih parsimonious dan mudah diinterpretasi. Pemilihan model harus mempertimbangkan keseimbangan antara kecocokan data dan kesederhanaan model.


17.1 Model Homogenous

Model homogeneous merupakan model log-linear yang mengasumsikan tidak ada interaksi tiga arah antar variabel, hanya interaksi dua arah dan efek utama yang dimasukkan. Model ini lebih sederhana dibanding model saturated dan digunakan untuk menguji apakah interaksi tiga arah benar-benar diperlukan. Jika model homogeneous memiliki goodness-of-fit yang baik, maka model ini dapat menggantikan model saturated tanpa kehilangan informasi penting.

17.2 Uji Hipotesis: Apakah Ada Interaksi Tiga Arah? (Saturated vs Homogenous)

Uji hipotesis ini bertujuan untuk mengetahui apakah interaksi tiga arah antara variabel-variabel dalam tabel kontingensi signifikan atau tidak. Dengan kata lain, kita ingin menguji apakah model saturated (yang mencakup interaksi tiga arah) memberikan fit yang secara signifikan lebih baik dibandingkan model homogeneous (tanpa interaksi tiga arah).

Hipotesis:

  • H0: Tidak ada interaksi tiga arah (model homogeneous cukup)
  • H1: Ada interaksi tiga arah (model saturated lebih baik)

17.2.1 Langkah-Langkah Pengujian

  1. Tentukan Model:

    • Model saturated: memasukkan semua interaksi hingga tiga arah.
    • Model homogeneous: hanya memasukkan interaksi hingga dua arah dan efek utama.
  2. Estimasi Kedua Model: Gunakan fungsi fitting model log-linear pada data kontingensi tiga arah.

  3. Hitung Statistik Uji: Statistik uji yang umum digunakan adalah Likelihood Ratio Test (G²), yaitu perbedaan deviance antara kedua model: \[ G^2 = D_{\text{homogeneous}} - D_{\text{saturated}} \] dengan derajat kebebasan adalah selisih jumlah parameter kedua model.

  4. Bandingkan dengan Distribusi Chi-Square: Jika nilai p-value dari uji chi-square kurang dari tingkat signifikansi (misalnya 0.05), tolak H0, artinya interaksi tiga arah signifikan.

  5. Kesimpulan: Ambil keputusan berdasarkan hasil uji.

Bab 18 : UJI MODEL INTERAKSI DUA ARAH (HOMOGENOUS VS CONDITIONAL ON X)

18.1 Model Conditional on X

Model Conditional on X adalah model log-linear yang menguji interaksi antara dua variabel (misalnya Y dan Z) dalam setiap kategori variabel ketiga (X). Model ini memperbolehkan adanya interaksi antara Y dan Z yang berbeda-beda tergantung pada nilai X.

18.2 Pengujian Ada Tidaknya Interaksi Antara Y dan Z (Homogenous Model vs Conditional Association on X)

Pengujian ini bertujuan untuk mengetahui apakah ada interaksi antara variabel Y dan Z yang bergantung pada kategori variabel X. Secara spesifik, apakah model yang mengasumsikan interaksi berbeda pada tiap level X (Conditional Association) memberikan fit yang lebih baik dibanding model yang menganggap interaksi Y-Z sama pada semua level X (Homogenous Model).

Hipotesis:

H0: Model Homogenous (tidak ada interaksi variabel Y dan Z berbeda menurut kategori X)

H1: Model Conditional Association (ada interaksi variabel Y dan Z yang berbeda pada tiap kategori X)

Langkah pengujian:

  1. Tentukan model homogenous (tanpa interaksi conditional pada X).

  2. Tentukan model conditional on X (dengan interaksi antara Y dan Z yang tergantung pada X).

  3. Estimasi kedua model dan hitung statistik Likelihood Ratio (G²) sebagai perbedaan deviance.

  4. Bandingkan G² dengan distribusi chi-square dengan derajat kebebasan sesuai selisih parameter model.

  5. Tolak H0 jika p-value < tingkat signifikansi (misal 0.05), artinya interaksi Y dan Z berbeda menurut X signifikan.

18.2.1 Hipotesis

  • Hipotesis nol (H0): Model Homogenous, yang berarti tidak ada interaksi dua arah antara variabel Y dan Z yang berbeda-beda menurut kategori variabel X. Interaksi Y-Z dianggap sama di semua kategori X.
  • Hipotesis alternatif (H1): Model Conditional Association, yang berarti terdapat interaksi dua arah antara Y dan Z yang berbeda di setiap kategori X. Interaksi Y-Z bergantung pada nilai X.

18.2.2 Tingkat Signifikan

Tingkat signifikansi biasanya ditetapkan sebesar 0,05 (5%).
- Jika p-value hasil uji Likelihood Ratio (G²) < 0,05, maka tolak H0 → ada bukti interaksi Y-Z berbeda menurut kategori X.
- Jika p-value ≥ 0,05, maka gagal tolak H0 → interaksi Y-Z dianggap homogen (sama) pada semua kategori X.

18.2.3 Statistik Uji

Statistik uji yang digunakan adalah Likelihood Ratio Test (G²), yaitu selisih deviance antara model Homogenous dan model Conditional Association.
Rumus statistik uji:
\[ G^2 = 2 \times \sum O \log \frac{O}{E} \]
atau dihitung sebagai selisih deviance:
\[ G^2 = \text{Deviance Model Homogenous} - \text{Deviance Model Conditional} \]
Statistik ini mengikuti distribusi Chi-kuadrat dengan derajat kebebasan sama dengan selisih jumlah parameter kedua model.

18.2.4 Daerah Penolakan

Daerah penolakan untuk uji hipotesis adalah:
\[ G^2 > \chi^2_{\alpha, df} \]
di mana:
- \(\alpha\) = tingkat signifikansi (misal 0,05)
- \(df\) = derajat kebebasan (selisih jumlah parameter model Homogenous dan Conditional)
Jika statistik uji \(G^2\) lebih besar dari nilai kritis \(\chi^2\), maka tolak hipotesis nol.

18.2.3 Statistik Uji

Statistik uji yang digunakan adalah Likelihood Ratio Test (G²), yaitu perbandingan deviance antara model Homogenous dan model Conditional on X. Rumusnya:
\[ G^2 = 2 \sum O \log \frac{O}{E} = \text{Deviance(Model Homogenous)} - \text{Deviance(Model Conditional)} \]
Statistik ini mengikuti distribusi Chi-kuadrat dengan derajat kebebasan sama dengan selisih jumlah parameter dari kedua model.

18.2.4 Daerah Penolakan

Daerah penolakan ditentukan oleh:
\[ G^2 > \chi^2_{\alpha, df} \]
dengan \(\alpha\) = tingkat signifikansi (misal 0.05) dan \(df\) = derajat kebebasan (selisih parameter model). Jika \(G^2\) berada di daerah ini, maka hipotesis nol ditolak.

18.3 Pengujian Selisih Deviance (Conditional on X vs Homogenous)

Pengujian selisih deviance dilakukan untuk membandingkan model Conditional on X dengan model Homogenous. Langkah-langkahnya adalah:

  1. Hitung deviance masing-masing model:

    • \(D_{\text{Homogenous}}\)
    • \(D_{\text{Conditional on X}}\)
  2. Hitung selisih deviance:
    \[ \Delta D = D_{\text{Homogenous}} - D_{\text{Conditional on X}} \]

  3. Tentukan derajat kebebasan (df) sebagai selisih jumlah parameter antara kedua model.

  4. Statistik uji \(\Delta D\) mengikuti distribusi Chi-kuadrat dengan df tersebut.

  5. Keputusan:

    • Tolak hipotesis nol jika \(\Delta D > \chi^2_{\alpha, df}\)
    • Terima hipotesis nol jika sebaliknya.

Dengan pengujian ini, kita dapat mengetahui apakah model Conditional on X memberikan perbaikan yang signifikan dibandingkan model Homogenous.

Bab 19 : UJI MODEL INTERAKSI DUA ARAH (HOMOGENOUS VS CONDITIONAL ON Y)

19.1 Model Conditional on Y

Model Conditional on Y adalah model log-linear yang mengasumsikan adanya asosiasi bersyarat antara variabel lain pada kondisi tertentu pada variabel Y. Model ini berguna untuk menguji interaksi dua arah dengan memperhatikan variabel Y sebagai kondisi.

Model ini secara umum dapat ditulis dengan memasukkan parameter interaksi yang melibatkan Y dan variabel lain, tetapi menghilangkan interaksi yang tidak relevan sesuai asumsi model.

Dalam analisis, model Conditional on Y dibandingkan dengan model Homogenous untuk mengetahui apakah interaksi dua arah yang kondisional pada Y memberikan penjelasan yang lebih baik terhadap data.

Langkah analisis biasanya meliputi: - Estimasi parameter model Conditional on Y - Perbandingan deviance dengan model Homogenous - Pengujian signifikansi interaksi melalui uji deviance Chi-kuadrat

19.2 Pengujian Ada Tidaknya Interaksi antara X dan Z (Homogenous Model vs Conditional Association on Y)

Pengujian ini bertujuan untuk mengetahui apakah terdapat interaksi antara variabel X dan Z dengan memperhatikan model Homogenous dan model Conditional Association on Y.

Langkah-langkah pengujian:

  1. Hipotesis
    • H0: Tidak ada interaksi antara X dan Z (Model Homogenous)
    • H1: Ada interaksi antara X dan Z yang kondisional pada Y (Model Conditional on Y)
  2. Tingkat Signifikan
    • Tentukan tingkat signifikansi, misalnya α = 0.05
  3. Statistik Uji
    • Hitung selisih deviance antara model Homogenous dan model Conditional on Y: \[ D = D_{\text{Homogenous}} - D_{\text{Conditional on Y}} \]
    • Statistik uji \(D\) mengikuti distribusi Chi-kuadrat dengan derajat kebebasan sama dengan selisih jumlah parameter antara kedua model.
  4. Daerah Penolakan
    • Tolak H0 jika \(D > \chi^2_{\alpha, \text{df}}\)

Dengan demikian, jika H0 ditolak, berarti terdapat interaksi antara X dan Z yang bergantung pada Y.

19.3 Pengujian Hipotesis Interaksi X dan Z (Conditional on Y vs Homogenous)

Pengujian ini dilakukan untuk menguji apakah ada interaksi antara variabel X dan Z dengan menggunakan model Conditional on Y dibandingkan dengan model Homogenous.

Langkah-langkah pengujian:

  1. Hipotesis:
    • \(H_0\): Model Homogenous benar (tidak ada interaksi antara X dan Z)
    • \(H_1\): Model Conditional on Y benar (ada interaksi antara X dan Z yang kondisional pada Y)
  2. Tingkat Signifikansi:
    • Tentukan nilai \(\alpha\), misalnya 0.05
  3. Statistik Uji:
    • Hitung selisih deviance: \[ D = D_{\text{Homogenous}} - D_{\text{Conditional on Y}} \]
    • Statistik uji \(D\) mengikuti distribusi \(\chi^2\) dengan derajat kebebasan sama dengan perbedaan jumlah parameter antara kedua model.
  4. Daerah Penolakan:
    • Tolak \(H_0\) jika \(D > \chi^2_{\alpha, \text{df}}\)

Jika \(H_0\) ditolak, maka dapat disimpulkan bahwa ada interaksi yang signifikan antara X dan Z yang bergantung pada Y.

Bab 20 : UJI MODEL INTERAKSI DUA ARAH (HOMOGENOUS VS CONDITIONAL ON Z)

20.1 Model Conditional on Z

Model Conditional on Z mengasumsikan bahwa interaksi antara variabel X dan Y bergantung pada kategori variabel Z. Model ini memperbolehkan interaksi dua arah antara X dan Y yang kondisional pada level Z tertentu.

20.2 Pengujian Ada Tidaknya Interaksi antara X dan Y (Homogenous model vs Conditional Association on Z)

Pengujian ini bertujuan untuk menentukan apakah ada interaksi signifikan antara variabel X dan Y yang bergantung pada Z, dengan membandingkan model Homogenous dan model Conditional on Z.

Langkah-langkah Pengujian:

  1. Hipotesis:
    • \(H_0\): Model Homogenous benar (tidak ada interaksi antara X dan Y)
    • \(H_1\): Model Conditional on Z benar (ada interaksi antara X dan Y yang kondisional pada Z)
  2. Tingkat Signifikansi:
    • Tentukan \(\alpha\), misalnya 0.05
  3. Statistik Uji:
    • Hitung selisih deviance: \[ D = D_{\text{Homogenous}} - D_{\text{Conditional on Z}} \]
    • Statistik uji \(D\) mengikuti distribusi \(\chi^2\) dengan derajat kebebasan sama dengan perbedaan jumlah parameter antara kedua model.
  4. Daerah Penolakan:
    • Tolak \(H_0\) jika \(D > \chi^2_{\alpha, \text{df}}\)

Jika \(H_0\) ditolak, dapat disimpulkan bahwa terdapat interaksi antara X dan Y yang bergantung pada Z.

20.3 Pengujian Hipotesis Interaksi X dan Y (Conditional on Z vs Homogenous)

Pengujian ini dilakukan untuk menentukan apakah model Conditional on Z memberikan fit yang lebih baik dibandingkan model Homogenous, khususnya untuk interaksi antara variabel X dan Y.

Hipotesis:

  • \(H_0\): Tidak ada interaksi X dan Y yang kondisional pada Z (model Homogenous cukup)
  • \(H_1\): Ada interaksi X dan Y yang kondisional pada Z (model Conditional on Z lebih baik)

Langkah-langkah pengujian:

  1. Estimasi deviance model Homogenous, misal \(D_H\).
  2. Estimasi deviance model Conditional on Z, misal \(D_C\).
  3. Hitung statistik uji: \[ \chi^2 = D_H - D_C \]
  4. Tentukan derajat kebebasan (\(df\)) sebagai selisih jumlah parameter antara kedua model.
  5. Bandingkan nilai \(\chi^2\) dengan nilai kritis \(\chi^2_{\alpha, df}\) pada tingkat signifikansi \(\alpha\) (biasanya 0.05).

Keputusan:

  • Jika \(\chi^2 > \chi^2_{\alpha, df}\), tolak \(H_0\) dan terima \(H_1\) → Model Conditional on Z lebih sesuai.
  • Jika tidak, gagal tolak \(H_0\) → Model Homogenous cukup.

Pengujian ini membantu menentukan apakah interaksi dua arah antara X dan Y bergantung pada variabel Z secara signifikan.

Bab 21 : PEMILIHAN MODEL TERBAIK

21.1 Ringkasan Model Log Linier

Model log-linear digunakan untuk menganalisis hubungan antar variabel kategorikal dalam tabel kontingensi dengan berbagai dimensi. Pemilihan model terbaik dilakukan dengan mempertimbangkan keseimbangan antara kompleksitas model dan kemampuan fit data.

Beberapa jenis model log-linear yang umum digunakan: - Model Saturated: Model paling kompleks yang memasukkan semua interaksi antar variabel. - Model Homogenous: Model yang menganggap interaksi tiga arah tidak signifikan, hanya interaksi dua arah yang ada. - Model Conditional: Model yang mempertimbangkan interaksi antar variabel dengan mengondisikan pada variabel lain.

21.2 Ringkasan Pengujian Interaksi 3 Arah dan 2 Arah

Pengujian interaksi bertujuan untuk menentukan tingkat interaksi yang signifikan dalam model:

  • Interaksi Tiga Arah: Diuji dengan membandingkan model Saturated vs Homogenous. Jika tidak signifikan, model Homogenous lebih disukai karena lebih sederhana.
  • Interaksi Dua Arah: Diuji dengan membandingkan model Homogenous dengan model Conditional (on X, Y, atau Z). Pengujian ini menilai apakah interaksi dua arah bergantung pada variabel ketiga.

Langkah utama: - Gunakan uji selisih deviance antara model yang dibandingkan. - Perhatikan nilai p-value dan derajat kebebasan. - Pilih model dengan fit baik dan parameter yang paling sedikit (parsimonious).

Pemilihan model terbaik memperhatikan: - Goodness-of-fit - Parsimoni model - Interpretabilitas hasil

21.3 Kesimpulan Pemilihan Model Terbaik

Pemilihan model log-linear terbaik didasarkan pada keseimbangan antara kesederhanaan model dan kemampuan model menjelaskan pola hubungan antar variabel dalam data. Model terbaik adalah yang memenuhi beberapa kriteria berikut:

  • Goodness-of-Fit yang Memadai: Model harus mampu menjelaskan data dengan baik tanpa menimbulkan kesalahan besar (nilai deviance atau chi-square tidak signifikan).
  • Parsimoni: Model yang lebih sederhana (dengan jumlah parameter lebih sedikit) lebih dipilih, selama tidak mengorbankan kualitas fit secara signifikan.
  • Interpretasi yang Jelas: Model harus memudahkan interpretasi interaksi antar variabel, khususnya dalam konteks penelitian.
  • Uji Hipotesis Interaksi: Pengujian interaksi tiga arah dan dua arah harus memberikan hasil yang mendukung model yang dipilih, dengan nilai p-value yang sesuai.

Kesimpulannya, proses pemilihan model terbaik menggunakan pendekatan bertahap dan uji statistik, dimulai dari model yang paling kompleks menuju model yang lebih sederhana, sambil memastikan bahwa model akhir tetap valid dan dapat dipercaya untuk analisis lebih lanjut.

Bab 22 : Model Terbaik

Pada tahap ini, model terbaik yang telah dipilih dari proses pemilihan model log-linear disajikan secara lengkap. Model ini merupakan hasil akhir yang memberikan penjelasan paling optimal terhadap pola hubungan antar variabel dalam data.

Model terbaik biasanya memenuhi kriteria:

  • Fit data yang baik (nilai deviance dan statistik goodness-of-fit tidak signifikan)
  • Parsimoni atau kesederhanaan model tanpa mengurangi kemampuan menjelaskan data
  • Interpretasi parameter yang jelas dan bermakna
  • Konsistensi dengan teori dan konteks penelitian

Selanjutnya, model terbaik ini akan digunakan untuk interpretasi lebih mendalam, prediksi, dan pengambilan keputusan berdasarkan hasil analisis log-linear.

22.1 Estimasi Parameter Model Terbaik

Deskripsi parameter dan interpretasi koefisien model terbaik, beserta nilai signifikansi masing-masing.

22.2 Interpretasi Model

Penjelasan interaksi antar variabel dan implikasi praktis dari hasil model terbaik.

22.3 Validasi Model

Pembahasan tentang validasi model menggunakan data baru atau teknik cross-validation untuk memastikan generalisasi hasil analisis.

Bab 23 : Interpretasi Koefisien Model Terbaik

23.1 Interpretasi Koefisien Model Terbaik

Pada bagian ini, dilakukan pembahasan mendalam tentang arti dan makna dari koefisien yang diperoleh pada model log-linear terbaik. Koefisien ini menggambarkan hubungan dan interaksi antar variabel dalam model.

Beberapa hal yang perlu diperhatikan dalam interpretasi koefisien:

  • Tanda Koefisien: Positif atau negatifnya koefisien menunjukkan arah hubungan antar kategori variabel.
  • Signifikansi Statistik: Nilai p-value untuk setiap koefisien menentukan apakah hubungan tersebut signifikan secara statistik.
  • Besaran Koefisien: Menunjukkan kekuatan pengaruh variabel terhadap probabilitas relatif pada tabel kontingensi.
  • Interaksi: Koefisien interaksi menunjukkan ada atau tidaknya pengaruh bersama antar variabel.

Contoh interpretasi koefisien dapat disajikan berdasarkan hasil output software statistik, misalnya nilai koefisien log-odds dan transformasinya ke odds ratio untuk kemudahan pemahaman.

Bab 24 : Nilai Dugaan Model Terbaik

24.1 Perhitungan Manual Nilai Dugaan (Fitted Value) Model Terbaik

Nilai dugaan (fitted value) pada model log-linear menunjukkan perkiraan frekuensi sel berdasarkan parameter model yang telah ditentukan. Untuk menghitung nilai dugaan secara manual, digunakan formula umum dari model log-linear:

\[ \log(\hat{\mu}_{ijk}) = \lambda + \lambda^X_i + \lambda^Y_j + \lambda^Z_k + \lambda^{XY}_{ij} + \lambda^{XZ}_{ik} + \lambda^{YZ}_{jk} \]

Setelah memperoleh nilai log dari \(\hat{\mu}_{ijk}\), dilakukan transformasi eksponensial untuk mendapatkan nilai dugaan frekuensi:

\[ \hat{\mu}_{ijk} = \exp(\log(\hat{\mu}_{ijk})) \]

Langkah-langkah perhitungan:

  1. Tentukan parameter-parameter yang relevan dari model terbaik.
  2. Substitusikan parameter ke dalam formula model.
  3. Hitung nilai log dari \(\hat{\mu}\).
  4. Transformasikan ke bentuk eksponensial.
  5. Bandingkan nilai dugaan dengan nilai observasi pada tabel kontingensi.

Contoh: Jika model terbaik adalah model log-linear dengan interaksi dua arah (tanpa interaksi tiga arah), maka bentuk umum perhitungannya mengacu pada komponen-komponen interaksi yang ada di dalam model tersebut.

Nilai ini juga dapat digunakan untuk menghitung residual dan menguji goodness-of-fit model.

Studi Kasus

Latar Belakang

Mahasiswa dari berbagai latar belakang memiliki minat akademik yang beragam. Universitas ingin memahami bagaimana minat akademik mahasiswa terkait dengan jurusan yang mereka ambil dan tahun studi mereka. Informasi ini penting untuk merancang kebijakan akademik dan pengembangan kurikulum, serta memfasilitasi mahasiswa dalam memilih program studi yang sesuai dengan minatnya.

Data yang digunakan adalah dataset student_data_extended.csv yang berisi informasi tentang 1000 mahasiswa, termasuk bidang minat, jurusan, dan tahun studi mereka.

Tujuan Penelitian

Penelitian ini bertujuan untuk:

Menganalisis hubungan antara minat akademik, jurusan, dan tahun studi mahasiswa.

Menguji apakah terdapat interaksi dua arah di antara ketiga variabel tersebut.

Menentukan apakah model log-linear dengan interaksi dua arah cukup untuk menjelaskan struktur hubungan ketiga variabel.

library(dplyr)
library(tidyr)
library(nnet)       # regresi logistik multinomial
library(ggplot2)
library(janitor)
## 
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test
library(MASS)       # loglin
# Data
df <- read_csv("C:/Users/MyBook Hype/Downloads/student_data_extended.csv") 
## Rows: 1000 Columns: 12
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (10): Name, AcademicInterest, ExtracurricularActivities, Skills, Locatio...
## dbl  (2): StudentID, GPA
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
names(df)  
##  [1] "StudentID"                 "Name"                     
##  [3] "AcademicInterest"          "ExtracurricularActivities"
##  [5] "Skills"                    "Location"                 
##  [7] "YearOfStudy"               "Major"                    
##  [9] "GPA"                       "Languages"                
## [11] "ClubMemberships"           "ResearchInterests"
# Membersihkan dan memilih kolom yang relevan
data_clean <- df %>%
  dplyr::select(YearOfStudy, Major, AcademicInterest, ExtracurricularActivities) %>%
  filter(
    !is.na(YearOfStudy),
    !is.na(Major),
    !is.na(AcademicInterest),
    !is.na(ExtracurricularActivities)
  ) %>%
  mutate(
    YearOfStudy = as.factor(YearOfStudy),
    Major = as.factor(Major),
    AcademicInterest = as.factor(AcademicInterest),
    Extracurricular = ifelse(ExtracurricularActivities == "None", "No", "Yes"),
    Extracurricular = as.factor(Extracurricular)
  )

# Membuat tabel kontingensi tiga arah
tab_loglin <- xtabs(~ AcademicInterest + Major + YearOfStudy, data = data_clean)

# Melihat isi tabel
ftable(tab_loglin)
##                                   YearOfStudy Freshman Graduate Junior Senior Sophomore
## AcademicInterest Major                                                                 
## Biology          Biology                             3        4      6      2         5
##                  Computer Science                    9        9      6      5         9
##                  History                             4        3      7      4         6
##                  Mathematics                         8        5      4      5        10
##                  Physics                             5        4      6      7         2
##                  Psychology                          2        7      3      7         6
## Computer Science Biology                             7        8      5      6         5
##                  Computer Science                    2        6      3      4         5
##                  History                             1        6      5      3         8
##                  Mathematics                         6        9      6      7         4
##                  Physics                             4        5      4      3         5
##                  Psychology                          7        7      8      6         3
## History          Biology                             4        5      8      3        10
##                  Computer Science                    9        5      2      9         8
##                  History                             9        2      3     11         5
##                  Mathematics                         7        8      5      5         6
##                  Physics                             2        4      6      1         6
##                  Psychology                          6        6      8      6         6
## Mathematics      Biology                             4        9      3      8         9
##                  Computer Science                    3        4      9      3         6
##                  History                             5        7      6      9         6
##                  Mathematics                         9        1      6      5         4
##                  Physics                             6        3      6      7         2
##                  Psychology                          8        3      5      8         5
## Physics          Biology                             1        8      5      8         8
##                  Computer Science                    4        4      5      7         4
##                  History                             6        4      5      4        10
##                  Mathematics                         9        2      4      4         3
##                  Physics                             7        8      7      5         4
##                  Psychology                          8        7      2     10         6
## Psychology       Biology                             2        6     11      9         2
##                  Computer Science                    1       10      3      4         2
##                  History                             4        9      3      6         7
##                  Mathematics                         4        8      8      9         8
##                  Physics                             8        8      3      4         7
##                  Psychology                          4        4      4      6         2
# Model loglin dengan semua interaksi (model saturasi)
model_loglin <- loglin(tab_loglin, margin = list(
  c("AcademicInterest", "Major"),
  c("AcademicInterest", "YearOfStudy"),
  c("Major", "YearOfStudy")
), param = TRUE)
## 3 iterations: deviation 0.05944702
# Output parameter
model_loglin
## $lrt
## [1] 115.7437
## 
## $pearson
## [1] 112.2836
## 
## $df
## [1] 100
## 
## $margin
## $margin[[1]]
## [1] "AcademicInterest" "Major"           
## 
## $margin[[2]]
## [1] "AcademicInterest" "YearOfStudy"     
## 
## $margin[[3]]
## [1] "Major"       "YearOfStudy"
## 
## 
## $param
## $param$`(Intercept)`
## [1] 1.676227
## 
## $param$AcademicInterest
##          Biology Computer Science          History      Mathematics 
##      -0.02075046      -0.05597472       0.05538773       0.02504671 
##          Physics       Psychology 
##       0.02680514      -0.03051440 
## 
## $param$Major
##          Biology Computer Science          History      Mathematics 
##       0.03311679      -0.05019214       0.01787572       0.07937511 
##          Physics       Psychology 
##      -0.10301491       0.02283943 
## 
## $param$YearOfStudy
##    Freshman    Graduate      Junior      Senior   Sophomore 
## -0.07831138  0.04103889 -0.03596693  0.05390344  0.01933598 
## 
## $param$AcademicInterest.Major
##                   Major
## AcademicInterest        Biology Computer Science     History Mathematics
##   Biology          -0.335676330       0.41332962 -0.12557298  0.11045821
##   Computer Science  0.122772373      -0.21350103 -0.12490724  0.15082776
##   History           0.006011906       0.19977627  0.01752491 -0.01069356
##   Mathematics       0.132249324      -0.04437446  0.15054444 -0.19755923
##   Physics           0.037556957      -0.09439809  0.01789841 -0.31978143
##   Psychology        0.037085770      -0.26083230  0.06451245  0.26674826
##                   Major
## AcademicInterest        Physics  Psychology
##   Biology           0.008906378 -0.07144490
##   Computer Science -0.101348674  0.16615682
##   History          -0.302989469  0.09036994
##   Mathematics      -0.044900710  0.00404064
##   Physics           0.219131073  0.13959308
##   Psychology        0.221201402 -0.32871558
## 
## $param$AcademicInterest.YearOfStudy
##                   YearOfStudy
## AcademicInterest        Freshman    Graduate      Junior      Senior
##   Biology           0.0004428078 -0.05691002  0.03956659 -0.12534710
##   Computer Science -0.0864184413  0.24373855  0.03185240 -0.13368382
##   History           0.1351876764 -0.18702033 -0.03201129 -0.05456737
##   Mathematics       0.1293393372 -0.25311051  0.08350104  0.12005413
##   Physics           0.1137949092 -0.05721774 -0.14739940  0.06614635
##   Psychology       -0.2923462894  0.31052006  0.02449066  0.12739780
##                   YearOfStudy
## AcademicInterest     Sophomore
##   Biology           0.14224773
##   Computer Science -0.05548868
##   History           0.13841130
##   Mathematics      -0.07978400
##   Physics           0.02467587
##   Psychology       -0.17006222
## 
## $param$Major.YearOfStudy
##                   YearOfStudy
## Major                 Freshman    Graduate      Junior      Senior   Sophomore
##   Biology          -0.40729090  0.11451588  0.15820720  0.00183157  0.13273626
##   Computer Science -0.06882976  0.16098993 -0.08526025 -0.03065378  0.02375386
##   History          -0.06683991 -0.10901806 -0.09262004  0.04693174  0.22154628
##   Mathematics       0.28566782 -0.15474267 -0.03833491 -0.06270403 -0.02988622
##   Physics           0.15959771  0.01238732  0.12420630 -0.15658258 -0.13960875
##   Psychology        0.09769505 -0.02413240 -0.06619830  0.20117708 -0.20854143

Interpretasi Hasil Analisis Hasil model log-linear dua arah menunjukkan nilai:

G² (likelihood ratio statistic): 115.74

Derajat bebas: 100

p-value: 0.13 (tidak signifikan pada α = 0.05)

Implikasi: Karena p-value > 0.05, maka tidak ada cukup bukti untuk menolak hipotesis nol bahwa model dua arah sudah cukup baik. Ini berarti interaksi tiga arah tidak diperlukan.

Hubungan antara pasangan variabel seperti minat akademik dan jurusan, minat akademik dan tahun studi, serta jurusan dan tahun studi sudah cukup menjelaskan pola data.

Kesimpulan

Berdasarkan hasil analisis log-linear terhadap variabel minat akademik, jurusan, dan tahun studi, dapat disimpulkan bahwa:

Model interaksi dua arah sudah cukup untuk menjelaskan hubungan antara ketiga variabel tersebut. Hal ini ditunjukkan oleh nilai G² = 115,74 dengan p-value > 0,05, yang mengindikasikan bahwa tidak ada interaksi tiga arah yang signifikan.

Terdapat hubungan dua arah yang signifikan antara:

  • Minat akademik dan jurusan,

  • Minat akademik dan tahun studi, serta

  • Jurusan dan tahun studi.

Implikasi:

Pihak universitas dapat menggunakan temuan ini untuk mengkaji ulang kecocokan antara minat dan jurusan mahasiswa, terutama di jenjang pascasarjana.

Informasi ini juga dapat dimanfaatkan dalam penyusunan kurikulum, program bimbingan akademik, dan kegiatan ekstrakurikuler yang relevan dengan minat mahasiswa di tiap tahun studi.

# AcademicInterest vs Major
tab1 <- xtabs(~ AcademicInterest + Major, data = data_clean)
chisq.test(tab1)
## 
##  Pearson's Chi-squared test
## 
## data:  tab1
## X-squared = 29.22, df = 25, p-value = 0.2548
# AcademicInterest vs YearOfStudy
tab2 <- xtabs(~ AcademicInterest + YearOfStudy, data = data_clean)
chisq.test(tab2)
## 
##  Pearson's Chi-squared test
## 
## data:  tab2
## X-squared = 17.913, df = 20, p-value = 0.5931
# Major vs YearOfStudy
tab3 <- xtabs(~ Major + YearOfStudy, data = data_clean)
chisq.test(tab3)
## 
##  Pearson's Chi-squared test
## 
## data:  tab3
## X-squared = 18.511, df = 20, p-value = 0.5538
# Model 1: Model independensi penuh
mod_indep <- loglin(tab_loglin, margin = list(
  "AcademicInterest", "Major", "YearOfStudy"
), fit = TRUE, param = TRUE)
## 2 iterations: deviation 1.136868e-13
# Model 2: Model dua arah
mod_2way <- loglin(tab_loglin, margin = list(
  c("AcademicInterest", "Major"),
  c("AcademicInterest", "YearOfStudy"),
  c("Major", "YearOfStudy")
), fit = TRUE, param = TRUE)
## 3 iterations: deviation 0.05944702
# Model 3: Model saturasi (semua interaksi)
mod_sat <- loglin(tab_loglin, margin = list(
  c("AcademicInterest", "Major", "YearOfStudy")
), fit = TRUE, param = TRUE)
## 2 iterations: deviation 8.881784e-16
# Hitung AIC
AIC_indep <- mod_indep$lrt + 2 * mod_indep$df
AIC_2way  <- mod_2way$lrt  + 2 * mod_2way$df
AIC_sat   <- mod_sat$lrt   + 2 * mod_sat$df

# Bandingkan hasil
data.frame(
  Model = c("Independensi", "Interaksi Dua Arah", "Model Saturasi"),
  G2 = c(mod_indep$lrt, mod_2way$lrt, mod_sat$lrt),
  df = c(mod_indep$df, mod_2way$df, mod_sat$df),
  AIC = c(AIC_indep, AIC_2way, AIC_sat)
)
##                Model       G2  df      AIC
## 1       Independensi 183.0259 165 513.0259
## 2 Interaksi Dua Arah 115.7437 100 315.7437
## 3     Model Saturasi   0.0000   0   0.0000

Referensi

Agresti, A. (2002). Categorical data analysis (2nd ed.). John Wiley & Sons.
Agresti, A. (2010). Analysis of ordinal categorical data (2nd ed.). Wiley.
Christensen, R. (1997). Log-linear models and logistic regression (2nd ed.). Springer.
Dobson, A. J., & Barnett, A. G. (2018). An introduction to generalized linear models (4th ed.). Chapman and Hall/CRC.
Fox, J. (2015). Applied regression analysis and generalized linear models (3rd ed.). SAGE Publications.
Friendly, M., & Meyer, D. (2016). Discrete data analysis with R: Visualization and modeling techniques for categorical and count data. CRC Press.
Hilbe, J. M. (2009). Logistic regression models. Chapman & Hall/CRC.
Hosmer, D. W., Lemeshow, S., & Sturdivant, R. X. (2013). Applied logistic regression (3rd ed.). John Wiley & Sons.
Kutner, M. H., Nachtsheim, C. J., Neter, J., & Li, W. (2005). Applied linear statistical models (5th ed.). McGraw-Hill/Irwin.
Liao, T. F. (1994). Interpreting probability models: Logit, probit, and other generalized linear models. SAGE Publications.
Lindsey, J. K. (1995). Introductory statistics: A modelling approach. Oxford University Press.
Menard, S. (2002). Applied logistic regression analysis (2nd ed.). SAGE Publications.
Powers, D. A., & Xie, Y. (2008). Statistical methods for categorical data analysis (2nd ed.). Emerald Group Publishing.
Powers, D. M. (2011). Evaluation: From precision, recall and F-measure to ROC, informedness, markedness & correlation. Journal of Machine Learning Technologies, 2(1), 37–63.
Sujarweni, V. W. (2015). Statistik untuk penelitian. Pustaka Baru Press.
Sudjana, N. (2005). Metode statistika (Revisi ke-6). Tarsito.
Wickens, T. D. (1989). Multiway contingency tables analysis for the social sciences. Lawrence Erlbaum Associates.
Wickham, H., & Grolemund, G. (2017). R for data science: Import, tidy, transform, visualize, and model data. O’Reilly Media.
Zuur, A. F., Ieno, E. N., & Smith, G. M. (2007). Analysing ecological data. Springer.
Kementerian Kesehatan Republik Indonesia. (2013). Situasi dan analisis HIV & AIDS. Direktorat Jenderal Pengendalian Penyakit dan Penyehatan Lingkungan. https://pusdatin.kemkes.go.id
Oktavian, R. (2017). Faktor-faktor yang berhubungan dengan kejadian HIV/AIDS di Indonesia: Tinjauan literatur. Jurnal Kesehatan Masyarakat Nasional, 11(2), 65–72. https://jurnalkesmas.ui.ac.id
Setiawan, A. (2015). Analisis tren kasus HIV/AIDS di Indonesia berdasarkan jenis kelamin dan kelompok umur. Jurnal Epidemiologi Indonesia, 3(1), 34–40.
UNAIDS. (2013). Global report: UNAIDS report on the global AIDS epidemic 2013. Joint United Nations Programme on HIV/AIDS. https://www.unaids.org/sites/default/files/media_asset/UNAIDS_Global_Report_2013_en_1.pdf
World Health Organization. (2012). Gender inequalities and HIV. https://www.who.int/gender-equity-rights/knowledge/hiv/en/