1 Kata Pengantar

Puji syukur ke hadirat Tuhan Yang Maha Esa atas limpahan rahmat, taufik, dan hidayah-Nya sehingga penulisan e-book Analisis Data Kategori: Konsep, Aplikasi, dan Implementasi ini dapat diselesaikan dengan baik dan tepat waktu.

E-book ini disusun sebagai bagian dari pembelajaran dan penguatan pemahaman dalam mata kuliah Analisis Data Kategori. Materi yang disajikan disusun secara sistematis, dimulai dari konsep dasar tabel kontingensi 2x2, ukuran asosiasi seperti odds ratio dan risk ratio, hingga pengembangan model statistik melalui pendekatan Generalized Linear Models (GLM), termasuk model logistik, multinomial, dan log-linear. Seluruh bab dilengkapi dengan ilustrasi data serta implementasi praktis menggunakan perangkat lunak R.

Dalam proses penyusunan ini, saya Gusti Ayu Anisa Eldina sebagai penulis ingin menyampaikan terima kasih yang sebesar-besarnya kepada semua pihak yang telah memberikan dukungan, baik secara langsung maupun tidak langsung. Secara khusus, penulis menyampaikan apresiasi dan penghargaan yang setinggi-tingginya kepada dosen pengampu mata kuliah Analisis Data Kategori, Bapak Dr. I Gede Nyoman Mindra Jaya, M.Si. yang telah membimbing, memberikan arahan, serta membuka wawasan penulis terhadap pentingnya penguasaan analisis data kategorik secara konseptual dan praktis.

Penulis menyadari bahwa karya ini masih jauh dari sempurna. Oleh karena itu, segala bentuk saran dan kritik yang membangun sangat penulis harapkan untuk penyempurnaan di masa mendatang. Besar harapan penulis bahwa e-book ini dapat menjadi referensi yang bermanfaat bagi mahasiswa, dosen, peneliti, dan praktisi yang ingin memperdalam pengetahuan dan keterampilan dalam menganalisis data kategorik.



Jatinangor, Juni 2025
Gusti Ayu Anisa Eldina

2 ✨ DATA KATEGORI DAN ANALISIS DATA KATEGORI

Data kategori (categorical data) adalah jenis data yang disusun dalam bentuk kategori atau kelompok diskrit. Nilai dari data ini tidak berbentuk angka kuantitatif yang dapat diukur secara langsung, melainkan menunjukkan label, klasifikasi, atau atribut dari suatu objek.

3 Materi Pendahuluan

Contoh data kategori :

Tujuan Analisis Data Kategori

Analisis data kategori memiliki berbagai tujuan penting dalam berbagai bidang penelitian dan aplikasi praktis. Tujuan utama dari analisis data kategori adalah untuk mengidentifikasi pola, menganalisis hubungan antarvariabel, serta mengembangkan model prediktif yang dapat membantu dalam pengambilan keputusan.

3.0.0.1 Mengidentifikasi Pola dan Tren

Salah satu tujuan utama dalam analisis data kategori adalah untuk menemukan pola atau tren yang mungkin ada dalam data. Dengan menganalisis kategori yang ada, kita dapat mengidentifikasi karakteristik atau kecenderungan tertentu yang berulang, yang dapat memberikan wawasan berharga mengenai fenomena yang sedang dipelajari. Misalnya, dalam analisis data preferensi konsumen, kita dapat mengidentifikasi pola pengelompokan berdasarkan kategori produk atau perilaku pembelian.

3.0.0.2 Menganalisis Hubungan Antarvariabel

Analisis data kategori juga digunakan untuk memahami hubungan antarvariabel kategori yang ada dalam dataset. Hal ini memungkinkan untuk mengetahui bagaimana suatu kategori mempengaruhi kategori lainnya. Sebagai contoh, dalam studi kesehatan, kita dapat menganalisis hubungan antara kebiasaan merokok dan penyakit tertentu, di mana data kategori digunakan untuk melihat distribusi status merokok (ya/tidak) dengan kategori status kesehatan (sehat/sakit).

3.0.0.3 Membantu dalam Pengambilan Keputusan

Data kategori sering digunakan dalam pengambilan keputusan. Dalam dunia bisnis dan pemasaran, misalnya, perusahaan dapat menggunakan analisis data kategori untuk mengetahui preferensi konsumen, yang selanjutnya dapat membantu dalam merancang strategi pemasaran. Selain itu, hasil analisis kategori dapat memberikan panduan mengenai keputusan yang lebih efektif, baik dalam kebijakan publik maupun dalam pengelolaan organisasi.

3.0.0.4 Mengembangkan Model Prediktif

Model prediktif berbasis data kategori dapat membantu meramalkan hasil masa depan berdasarkan informasi yang ada. Dengan menggunakan teknik seperti regresi logistik atau pohon keputusan, kita dapat mengembangkan model yang memprediksi kategori outcome yang diinginkan. Contoh aplikasi dari model ini adalah memprediksi kemungkinan pelanggan membeli suatu produk berdasarkan kategori preferensi mereka.

Definisi dan Ruang Lingkup Analisis Data Kategori

Analisis data kategori mengacu pada teknik statistik yang digunakan untuk menganalisis data yang dibagi dalam kategori-kategori diskrit, baik yang bersifat nominal maupun ordinal. Analisis ini sangat berguna ketika variabel yang diamati tidak bersifat numerik atau kuantitatif, namun tetap perlu dianalisis untuk menemukan hubungan atau pola yang relevan.

3.0.0.5 Nominal vs Ordinal

Data kategori dapat dibedakan menjadi dua tipe utama, yaitu data nominal dan ordinal. Data nominal adalah kategori yang tidak memiliki urutan atau peringkat, seperti jenis kelamin (laki-laki/perempuan) atau warna (merah, biru, hijau). Sementara itu, data ordinal memiliki urutan atau peringkat, seperti tingkat pendidikan (SD, SMP, SMA, Perguruan Tinggi) atau penilaian (buruk, cukup, baik, sangat baik).

3.0.0.6 Data Biner vs Multikategori

Data kategori juga dapat dibedakan berdasarkan jumlah kategori yang ada. Data biner terdiri dari dua kategori, seperti ya/tidak atau lulus/gagal. Sedangkan data multikategori melibatkan lebih dari dua kategori, seperti kategori penghasilan (rendah, menengah, tinggi) atau status pekerjaan (pns, swasta, wirausaha).

Perbedaan dengan Data Kuantitatif

Data kategori berbeda dari data kuantitatif dalam hal pengukuran dan analisis. Data kuantitatif biasanya terdiri dari nilai numerik yang dapat diukur dan dianalisis menggunakan operasi matematika. Sebaliknya, data kategori terdiri dari kategori-kategori diskrit yang tidak dapat dioperasikan secara langsung menggunakan metode matematis biasa. Oleh karena itu, analisis data kategori lebih banyak melibatkan teknik-teknik statistik non-parametrik, seperti uji chi-square, regresi logistik, dan analisis klaster.

Manfaat Analisis Data Kategori dalam Berbagai Bidang

Analisis data kategori memiliki berbagai manfaat di berbagai bidang, baik di dunia akademik maupun profesional. Beberapa manfaatnya antara lain adalah dalam bidang ilmu sosial, kesehatan, pemasaran, pendidikan, kebijakan publik, dan keamanan.

3.0.0.7 Ilmu Sosial dan Psikologi

Dalam ilmu sosial dan psikologi, analisis data kategori digunakan untuk memahami hubungan antara faktor-faktor sosial atau psikologis, seperti pengaruh lingkungan terhadap perilaku individu. Misalnya, kategori status sosial ekonomi dapat dianalisis untuk melihat hubungannya dengan tingkat pendidikan atau perilaku sosial lainnya.

3.0.0.8 Kesehatan dan Kedokteran

Di bidang kesehatan, analisis data kategori digunakan untuk mengidentifikasi faktor risiko penyakit dan menganalisis hubungan antara kategori gaya hidup dan status kesehatan. Misalnya, kategori kebiasaan makan dapat dianalisis untuk memprediksi kemungkinan seseorang terkena penyakit jantung.

3.0.0.9 Pemasaran dan Bisnis

Dalam pemasaran, analisis data kategori memungkinkan perusahaan untuk memahami preferensi konsumen berdasarkan kategori produk atau layanan yang mereka pilih. Hal ini dapat membantu dalam perancangan kampanye pemasaran yang lebih efektif, dengan menargetkan kategori konsumen tertentu.

3.0.0.10 Pendidikan

Di bidang pendidikan, analisis data kategori digunakan untuk menganalisis hubungan antara faktor-faktor pendidikan, seperti jenis kelamin, status sosial ekonomi, dan prestasi akademik. Analisis ini juga dapat digunakan untuk menilai kebijakan pendidikan berdasarkan kategori hasil yang diinginkan, seperti kelulusan atau tingkat partisipasi.

3.0.0.11 Kebijakan Publik dan Pemerintahan

Dalam kebijakan publik, analisis data kategori membantu dalam mengevaluasi kebijakan dan program-program pemerintah berdasarkan kategori-kategori tertentu, seperti tingkat kemiskinan, kesehatan masyarakat, atau kesetaraan gender. Analisis ini dapat memberikan wawasan penting mengenai dampak kebijakan terhadap kelompok-kelompok tertentu dalam masyarakat.

3.0.0.12 Keamanan dan Kriminalitas

Di bidang keamanan dan kriminalitas, analisis data kategori dapat digunakan untuk memetakan jenis kejahatan berdasarkan kategori daerah, waktu, atau tipe pelaku. Ini membantu dalam merancang strategi pencegahan yang lebih efisien dan lebih tepat sasaran.

Desain Sampling dalam Analisis Data Kategori

Desain sampling adalah proses yang sangat penting dalam analisis data kategori, karena cara pengambilan sampel dapat memengaruhi hasil analisis dan kesimpulan yang ditarik. Ada dua pendekatan utama dalam desain sampling yang sering digunakan dalam analisis data kategori: prospective sampling dan retrospective sampling. Masing-masing memiliki karakteristik yang berbeda, tergantung pada tujuan penelitian dan jenis data yang tersedia.

3.0.0.13 Prospective Sampling

Prospective sampling adalah pendekatan yang digunakan ketika data dikumpulkan secara aktif dan maju dalam waktu, biasanya dengan mengikuti sampel sepanjang waktu untuk mengamati perkembangan atau perubahan dalam kategori yang dianalisis. Metode ini sering digunakan dalam eksperimen dan studi kohort di mana sampel diobservasi dari awal hingga akhir untuk memeriksa efek atau hubungan antara variabel kategori. Contohnya pada Eksperimen Klinik, pasien secara acak dialokasikan untuk menerima obat baru atau plasebo, lalu diamati selama 6 bulan untuk mencatat apakah gejala penyakit membaik, memburuk, atau tetap.

3.0.0.13.1 ~ Eksperimen

Eksperimen adalah pendekatan di mana peneliti merancang situasi untuk menguji hipotesis atau efek tertentu pada kelompok sampel. Dalam eksperimen, peneliti mengontrol variabel-variabel tertentu untuk melihat bagaimana perubahan dalam satu variabel mempengaruhi variabel kategori lainnya. Contoh eksperimen dalam analisis data kategori adalah eksperimen pemasaran untuk melihat pengaruh berbagai iklan terhadap preferensi merek konsumen.

3.0.0.13.2 ~ Studi Kohort

Studi kohort adalah desain penelitian yang melibatkan pemantauan sekelompok individu dari waktu ke waktu untuk melihat hubungan antara eksposur atau karakteristik kategori tertentu (seperti kebiasaan hidup) dan hasil tertentu (misalnya, status kesehatan). Studi ini bisa bersifat longitudinal, di mana data kategori seperti status kesehatan atau faktor risiko dikumpulkan pada berbagai titik waktu. Contohnya pada Kesehatan masyarakat, peneliti mengamati dua kelompok individu – satu kelompok dengan kebiasaan makan tinggi gula, dan satu kelompok dengan pola makan sehat. Kedua kelompok diikuti selama 5 tahun untuk melihat insiden penyakit diabetes tipe 2.

3.0.0.14 Retrospective Sampling

Retrospective sampling adalah pendekatan di mana data dikumpulkan setelah kejadian atau fenomena tertentu terjadi. Dalam metode ini, peneliti menganalisis data yang sudah ada untuk mengeksplorasi hubungan antara variabel kategori yang diamati dan hasil yang sudah tercatat. Pendekatan ini lebih berfokus pada kejadian masa lalu dan sering digunakan dalam studi kasus-kontrol atau studi kohort retrospektif. Contohnya pada Kecelakaan Kerja, setelah terjadi sejumlah kecelakaan di pabrik, peneliti menggunakan arsip HR untuk meninjau kembali jam kerja, jenis pelatihan keselamatan, dan departemen tempat para pekerja berada.

3.0.0.14.1 ~ Studi Kasus-Kontrol

Studi kasus-kontrol adalah desain penelitian yang digunakan untuk mengidentifikasi faktor-faktor penyebab atau risiko suatu kejadian dengan membandingkan kelompok yang terkena kejadian (kasus) dengan kelompok yang tidak terkena kejadian (kontrol). Data kategori yang dikumpulkan dari kedua kelompok dibandingkan untuk menganalisis faktor yang memengaruhi kemungkinan terjadinya suatu kejadian atau kondisi. Contohnya pada Studi Keracunan Makanan, setelah kejadian keracunan di sebuah pesta pernikahan, orang-orang yang sakit (kasus) dan orang-orang yang hadir tetapi tidak sakit (kontrol) diwawancarai untuk mencatat makanan apa saja yang dikonsumsi, untuk mengidentifikasi penyebab potensial (misalnya salad telur, susu, daging olahan).

3.0.0.14.2 ~ Studi Kohort Retrospektif

Studi kohort retrospektif adalah jenis penelitian yang mengumpulkan data dari kelompok individu yang sudah ada, dan kemudian menganalisis hubungan antara kategori eksposur masa lalu (misalnya, kebiasaan makan, kebiasaan merokok) dan outcome atau hasil kesehatan yang terjadi di masa depan. Peneliti melihat data yang sudah tercatat untuk mengevaluasi faktor risiko atau pengaruh dari kondisi tertentu pada perkembangan hasil yang relevan.

3.0.0.15 Tabel Perbandingan Desain Sampling

Desain Sampling Waktu Pengambilan Data Keuntungan Kelemahan
Prospective Sampling Data dikumpulkan sepanjang waktu Menghasilkan data yang lebih akurat dan relevan dengan tujuan penelitian Memerlukan waktu yang lebih lama dan biaya yang lebih tinggi
Eksperimen Data dikumpulkan selama eksperimen Kontrol lebih baik terhadap variabel, memungkinkan untuk menetapkan hubungan sebab-akibat Bisa terjadi bias seleksi atau keterbatasan kontrol terhadap faktor luar
Studi Kohort Data dikumpulkan selama periode waktu tertentu Dapat memantau perkembangan jangka panjang dan hubungan antar variabel kategori Sulit untuk mengontrol semua faktor yang dapat memengaruhi hasil
Retrospective Sampling Data dikumpulkan setelah kejadian Lebih cepat dan murah, dapat menggunakan data yang sudah ada Rentan terhadap bias recall dan keterbatasan data yang tersedia
Studi Kasus-Kontrol Data dikumpulkan setelah kejadian Berguna untuk mengidentifikasi faktor risiko langka dan efisien Tidak dapat menunjukkan hubungan sebab-akibat, hanya korelasi
Studi Kohort Retrospektif Data dikumpulkan dari catatan masa lalu Lebih cepat dan biaya rendah dibandingkan studi kohort prospektif Tergantung pada kualitas dan ketersediaan data yang sudah ada

Pemilihan desain sampling yang tepat sangat bergantung pada tujuan penelitian, sumber daya yang tersedia, serta jenis dan karakteristik data kategori yang ingin dianalisis. Desain yang baik akan memastikan bahwa data yang dikumpulkan dapat memberikan hasil yang valid dan dapat diinterpretasikan dengan tepat.

Metode dalam Analisis Data Kategori

Beberapa metode umum dalam analisis data kategori meliputi :

  • Tabel Kontingensi : Menyajikan frekuensi pengamatan untuk kombinasi dua variabel kategori.

  • Uji Chi-Square (χ²) : Digunakan untuk menguji apakah terdapat hubungan antara dua variabel kategori.

  • Analisis Residual : Menilai kontribusi masing-masing sel dalam tabel kontingensi terhadap hasil uji chi-square.

  • Visualisasi : Seperti bar chart, mosaic plot, atau stacked bar chart untuk memperjelas distribusi dan hubungan kategori.

Pentingnya Analisis Data Kategori

Data kategori sangat umum ditemukan dalam riset sosial, kesehatan, pemasaran, ekologi, dan kebijakan publik. Analisis terhadap data kategori penting untuk :

  • Mengambil keputusan berbasis data

  • Mengidentifikasi perilaku atau pola preferensi

  • Menyusun kebijakan atau intervensi yang lebih tepat sasaran

4 ✨ TABEL KONTINGENSI 2 x 2

Tabel kontingensi atau yang sering disebut tabulasi silang (cross tabulation atau cross classification) adalah tabel yang berisi data jumlah atau frekuensi atau beberapa klasifikasi (kategori). Tabel kontingensi 2 x 2 mewakili dua klasifikasi dari sekumpulan hitungan atau frekuensi. Baris mewakili dua klasifikasi dari satu variabel (misalnya hasil positif/hasil negatif) dan kolom mewakili dua klasifikasi dari variabel lain (misalnya intervensi/tidak ada intervensi). Metode ini dapat menjawab hubungan antara dua atau lebih variabel penelitian tetapi bukan hubungan sebab akibat. Semakin bertambah jumlah variabel yang ditabulasikan maka akan semakin kompleks interpretasinya. Berikut contoh format tabel kontingensi berukuran 2 x 2.

4.0.0.1 Contoh Kasus

Dalam era perubahan iklim yang semakin nyata, perilaku masyarakat terhadap isu lingkungan menjadi perhatian utama. Salah satu tindakan nyata yang mendukung keberlanjutan lingkungan adalah penggunaan transportasi umum, yang dinilai lebih ramah lingkungan dibandingkan kendaraan pribadi. Namun, pertanyaan penting yang muncul adalah: apakah orang yang peduli terhadap isu lingkungan benar-benar memilih untuk menggunakan transportasi umum? Ataukah ada kesenjangan antara kesadaran dan tindakan?

Menjawab pertanyaan ini menjadi relevan, terutama di tengah upaya pemerintah dan organisasi lingkungan untuk mendorong penggunaan transportasi massal sebagai bagian dari strategi pengurangan emisi karbon. Dengan melihat keterkaitan antara kepedulian terhadap lingkungan dan penggunaan transportasi umum, kita dapat menilai sejauh mana sikap individu tercermin dalam perilaku sehari-hari.

Untuk itu, berikut ini disajikan simulasi data dari 500 responden untuk dianalisis dalam bentuk tabel kontingensi 2 × 2.

Peduli terhadap Lingkungan (+) Acuh terhadap Lingkungan (-) Total
Menggunakan Transportasi Umum (+) 260 80 340
Tidak Menggunakan Transportasi Umum (-) 40 120 160
Total 300 200 500

4.0.0.2 Tabel Kontingensi Data

# Data tabel kontingensi
cont_table <- matrix(c(260, 80, 40, 120), nrow = 2, byrow = TRUE,
                     dimnames = list("Menggunakan Transportasi Umum" = c("Ya", "Tidak"),
                                     "Kepedulian Lingkungan" = c("Peduli", "Acuh")))

cont_table
##                              Kepedulian Lingkungan
## Menggunakan Transportasi Umum Peduli Acuh
##                         Ya       260   80
##                         Tidak     40  120

4.1 Distribusi Peluang dalam Tabel Kontingensi 2 x 2

4.1.0.1 Peluang Bersama

Peluang bersama (joint probability) dalam teori peluang adalah peluang terjadinya dua atau lebih peristiwa secara bersamaan. Ini berbeda dengan peluang tunggal (single event probability) yang hanya mempertimbangkan peluang satu peristiwa. Peluang bersama membantu memahami seberapa besar kemungkinan beberapa kejadian akan terjadi sekaligus, dan sering digunakan dalam analisis data dan pengambilan keputusan.

Rumus : \[ P(A \cap B) = \frac{n(A \cap B)}{n} \]

joint_prob <- cont_table / sum(cont_table)
joint_prob
##                              Kepedulian Lingkungan
## Menggunakan Transportasi Umum Peduli Acuh
##                         Ya      0.52 0.16
##                         Tidak   0.08 0.24

4.1.0.2 Peluang Marginal

Peluang marginal adalah probabilitas sebuah variabel acak tanpa mempertimbangkan variabel acak lain. Rumus peluang marginal : \[ P(A) = \frac{n(A)}{n}, \quad P(B) = \frac{n(B)}{n} \]

marginal_prob_row <- rowSums(cont_table) / sum(cont_table)
marginal_prob_col <- colSums(cont_table) / sum(cont_table)
marginal_prob_row
##    Ya Tidak 
##  0.68  0.32
marginal_prob_col
## Peduli   Acuh 
##    0.6    0.4

4.1.0.3 Peluang Bersyarat

Apabila sebuah kejadian B terjadi lebih dahulu dan kemudian kejadian A dicari probabilitasnya terhadap pengaruh dari kejadian B, maka probabilitas dari kejadian A disebut sebagai probabilitas bersyarat, dinyatakan sebagai : \[ P(A|B) = \frac{P(A \cap B)}{P(B)} \] yaitu probabilitas terjadinya peristiwa A bersyarat B, adalah probabilitas terjadinya peristiwa A dan B secara bersama-sama dan probabilitas terjadinya peristiwa A dengan syarat peristiwa B terjadi lebih dulu.

conditional_prob <- joint_prob / marginal_prob_col
conditional_prob
##                              Kepedulian Lingkungan
## Menggunakan Transportasi Umum    Peduli      Acuh
##                         Ya    0.8666667 0.2666667
##                         Tidak 0.2000000 0.6000000

4.1.0.4 Hasil dan Interpretasi

# Penyajian hasil dalam list
list(Peluang_Bersama = joint_prob, Peluang_Marginal_Baris = marginal_prob_row, Peluang_Marginal_Kolom = marginal_prob_col, Peluang_Bersyarat = conditional_prob)
## $Peluang_Bersama
##                              Kepedulian Lingkungan
## Menggunakan Transportasi Umum Peduli Acuh
##                         Ya      0.52 0.16
##                         Tidak   0.08 0.24
## 
## $Peluang_Marginal_Baris
##    Ya Tidak 
##  0.68  0.32 
## 
## $Peluang_Marginal_Kolom
## Peduli   Acuh 
##    0.6    0.4 
## 
## $Peluang_Bersyarat
##                              Kepedulian Lingkungan
## Menggunakan Transportasi Umum    Peduli      Acuh
##                         Ya    0.8666667 0.2666667
##                         Tidak 0.2000000 0.6000000
Interpretasi
Berdasarkan hasil analisis data dari 500 responden, terlihat bahwa terdapat keterkaitan yang cukup kuat antara kepedulian terhadap isu lingkungan dan penggunaan transportasi umum. Sebagian besar responden (68%) menggunakan transportasi umum, dan mayoritas dari mereka (sekitar 86,67%) memiliki kepedulian terhadap lingkungan. Hal ini menunjukkan bahwa kesadaran terhadap pentingnya menjaga lingkungan mendorong individu untuk memilih moda transportasi yang lebih ramah lingkungan. Namun demikian, terdapat sekitar 20% responden yang meskipun peduli terhadap lingkungan, tetap memilih untuk tidak menggunakan transportasi umum. Fakta ini mengindikasikan adanya kesenjangan antara sikap dan tindakan, yang mungkin disebabkan oleh faktor eksternal seperti kenyamanan, aksesibilitas, atau efisiensi transportasi umum. Di sisi lain, sebanyak 60% dari responden yang tidak peduli terhadap lingkungan juga tidak menggunakan transportasi umum, yang menunjukkan konsistensi antara sikap dan perilaku dalam kelompok ini. Secara keseluruhan, data ini memperkuat pentingnya peran kepedulian lingkungan dalam mendorong perilaku pro-lingkungan, namun juga menyoroti perlunya dukungan infrastruktur dan kebijakan yang dapat menjembatani kesenjangan antara kesadaran dan praktik nyata.

4.2 Ukuran Asosiasi dalam Tabel Kontingensi 2 x 2

Ukuran asosiasi dalam tabel kontingensi digunakan untuk mengukur kekuatan dan arah hubungan antara dua variabel kategorik. Ukuran asosiasi yang umum digunakan yaitu Risk Difference, Relative Risk, Odds Ratio, dan Uji Chi-Square & Fisher’s Exact Test. Pengukuran ini penting dilakukan untuk menentukan efektifitas relatif dari perlakukan atau intervensi yang berbeda, mengidentifikasi faktor resiko potensial atau memprediksi hasil penelitian agar dapat membuat keputusan yang tepat terhadap sebuah kebijakan.

4.2.0.1 Risk Difference (Beda Peluang)

Beda Peluang adalah ukuran absolut dari efek dan dihitung dengan mengurangi risiko hasil pada individu yang terpapar (eksposur) dengan risiko hasil pada individu yang tidak terpapar (non-eksposur). Risk Difference (RD) dihitung dengan rumus :

\[ RD = \left( \frac{a_{11}}{a_{1.}} \right) - \left( \frac{a_{21}}{a_{2.}} \right) \]

dengan :

  • \(a_{11}\) adalah jumlah kejadian pada kelompok pertama (misalnya yang menggunakan transportasi umum dan peduli),
  • \(a_{1.}\) adalah total kelompok pertama,
  • \(a_{21}\) adalah jumlah kejadian pada kelompok kedua,
  • \(a_{2.}\) adalah total kelompok kedua.
# Ambil nilai sel tabel untuk memudahkan perhitungan
a <- cont_table["Ya", "Peduli"]      # a = 260
b <- cont_table["Ya", "Acuh"]        # b = 80
c <- cont_table["Tidak", "Peduli"]   # c = 40
d <- cont_table["Tidak", "Acuh"]     # d = 120

# Total baris
a1_dot <- a + b   # total baris 1 (Ya)
a2_dot <- c + d   # total baris 2 (Tidak)

# Total kolom
a_dot1 <- a + c   # total kolom 1 (Peduli)
a_dot2 <- b + d   # total kolom 2 (Acuh)

# Risk Difference
risk1 <- a / a1_dot  # Risiko di kelompok 1 (Ya)
risk2 <- c / a2_dot  # Risiko di kelompok 2 (Tidak)
RD <- risk1 - risk2
RD
## [1] 0.5147059

4.2.0.2 Relative Risk (Risiko Relatif)

Relative risk (risiko relatif) adalah rasio antara risiko kejadian suatu kejadian atau kondisi yang terjadi di antara dua kelompok yang dibandingkan, misalnya kelompok yang terpapar dengan kelompok yang tidak terpapar. Relative risk digunakan untuk mengukur seberapa besar risiko seseorang yang terpapar terkena suatu kondisi atau kejadian tertentu dibandingkan dengan risiko orang yang tidak terpapar. Dihitung dengan rumus :

\[ RR = \frac{\frac{a_{11}}{a_{1.}}}{\frac{a_{21}}{a_{2.}}} \]

Dengan :

  • \(a_{11}\) adalah jumlah kejadian pada kelompok pertama (misalnya yang menggunakan transportasi umum dan peduli),
  • \(a_{1.}\) adalah total kelompok pertama,
  • \(a_{21}\) adalah jumlah kejadian pada kelompok kedua,
  • \(a_{2.}\) adalah total kelompok kedua.
# Relative Risk
RR <- risk1 / risk2
RR
## [1] 3.058824

4.2.0.3 Odds dan Odds Ratio (OR)

Odds ratio (OR) adalah ukuran statistik yang membandingkan peluang terjadinya suatu hasil pada dua kelompok yang berbeda. OR digunakan untuk mengevaluasi hubungan antara dua faktor atau kejadian. 

Rumus Odds : \[ O = \frac{P}{1 - P} \]

  • \(O\) = odds (peluang dibandingkan dengan tidak terjadi),
  • \(P\) = probabilitas suatu kejadian.

Rumus Odds Ratio : \[ OR = \frac{(a/c)}{(b/d)} = \frac{a \times d}{b \times c} \]

Dengan :

  • \(a\) = jumlah individu dengan kejadian di kelompok eksposur,
  • \(b\) = jumlah individu tanpa kejadian di kelompok eksposur,
  • \(c\) = jumlah individu dengan kejadian di kelompok non-eksposur,
  • \(d\) = jumlah individu tanpa kejadian di kelompok non-eksposur.
# Odds Ratio
odds1 <- a / b       # Odds di kelompok 1
odds2 <- c / d       # Odds di kelompok 2
OR <- odds1 / odds2
OR
## [1] 9.75

4.2.0.4 Hasil dan Interpretasi

# Penyajian hasil dalam list
list(Risk_Difference = RD, Relative_Risk = RR, Odds_Ratio = OR)
## $Risk_Difference
## [1] 0.5147059
## 
## $Relative_Risk
## [1] 3.058824
## 
## $Odds_Ratio
## [1] 9.75
Interpretasi
Berdasarkan hasil analisis ukuran asosiasi, ditemukan bahwa Risk Difference (RD) sebesar 0.5147 menunjukkan adanya selisih risiko sebesar 51,47% antara kelompok yang menggunakan transportasi umum dan kelompok yang tidak, dalam hal kepedulian terhadap lingkungan. Artinya, proporsi individu yang peduli lingkungan jauh lebih tinggi di antara pengguna transportasi umum dibandingkan dengan yang tidak menggunakannya. Selanjutnya, Relative Risk (RR) sebesar 3.06 mengindikasikan bahwa kemungkinan seseorang yang peduli lingkungan untuk menggunakan transportasi umum adalah sekitar tiga kali lebih besar dibandingkan mereka yang tidak peduli lingkungan. Sementara itu, Odds Ratio (OR) sebesar 9.75 memperkuat temuan ini, yang berarti bahwa odds (peluang relatif) seseorang yang peduli lingkungan untuk menggunakan transportasi umum adalah hampir 10 kali lebih tinggi dibandingkan dengan mereka yang acuh. Nilai-nilai ini menunjukkan adanya hubungan yang sangat kuat dan positif antara kepedulian terhadap lingkungan dan penggunaan transportasi umum, serta mengindikasikan bahwa kepedulian lingkungan merupakan faktor penting yang mendorong perilaku pro-lingkungan seperti memilih moda transportasi yang lebih berkelanjutan.

5 ✨ INFERENSI TABEL KONTINGENSI DUA ARAH

Inferensi tabel kontingensi dua arah adalah proses pengambilan kesimpulan statistik mengenai hubungan atau asosiasi antara dua variabel kategorik berdasarkan data yang disusun dalam sebuah tabel kontingensi (tabel silang). Tujuan utamanya adalah untuk menentukan apakah terdapat ketergantungan (dependensi) antara kedua variabel tersebut di populasi, ataukah hubungan yang terlihat pada data hanya terjadi secara kebetulan. Inferensi dalam tabel kontingensi dua arah dapat dibagi menjadi dua kategori utama yaitu Estimasi & Pengujian Hipotesis.

5.1 Estimasi

Estimasi merupakan langkah penting dalam inferensi statistik yang bertujuan untuk memperkirakan parameter populasi berdasarkan informasi dari sampel. Dalam konteks tabel kontingensi dua arah, estimasi dilakukan untuk menilai proporsi, peluang, maupun ukuran asosiasi antar dua variabel kategorik. Estimasi ini dapat dibagi menjadi dua jenis utama :

5.1.1 Estimasi Titik (Point Estimation)

Estimasi titik adalah pendekatan yang memberikan satu nilai spesifik sebagai dugaan terbaik terhadap parameter populasi. Contohnya dalam tabel kontingensi adalah estimasi proporsi suatu kategori atau peluang kejadian bersama.

\[ \hat{p} = \frac{x}{n} \]

Dengan :

  • \(\hat{p}\) = estimasi titik proporsi populasi
  • \(x\) = jumlah individu dalam kategori tertentu
  • \(n\) = total jumlah individu dalam sampel
# Data
a <- 260  # Ya & Peduli
b <- 40   # Tidak & Peduli
n_peduli <- a + b

# Estimasi titik proporsi
p_hat <- a / n_peduli
p_hat
## [1] 0.8666667

Selain proporsi, estimasi titik juga digunakan untuk distribusi peluang dan ukuran asosiasi yang telah dihitung sebelumnya.

5.1.2 Estimasi Interval (Interval Estimation)

Estimasi interval memberikan rentang nilai yang diyakini dengan tingkat kepercayaan tertentu mengandung nilai parameter populasi yang sebenarnya. Hal ini penting untuk memperhitungkan ketidakpastian dalam pengambilan sampel.

Rumus umum estimasi interval untuk proporsi :

\[ \hat{p} \pm z_{\alpha/2} \cdot \sqrt{\frac{\hat{p}(1 - \hat{p})}{n}} \]

Dengan :

  • \(\hat{p}\) = estimasi titik proporsi populasi / proporsi dari sampel
  • \(z_{\alpha/2}\) = nilai kritis Z dari distribusi normal standar
  • \(n\) = ukuran sampel
# Interval kepercayaan 95%
z <- 1.96  # z-score untuk 95%
se <- sqrt(p_hat * (1 - p_hat) / n_peduli)
lower <- p_hat - z * se
upper <- p_hat + z * se
c(lower, upper)
## [1] 0.8281994 0.9051339

5.1.3 Hasil dan Interpretasi

# Penyajian hasil dalam list
list(Estimasi_Titik = p_hat, Estimasi_Interval = c(lower, upper))
## $Estimasi_Titik
## [1] 0.8666667
## 
## $Estimasi_Interval
## [1] 0.8281994 0.9051339
Interpretasi

Berdasarkan hasil analisis, diperoleh estimasi titik proporsi pengguna transportasi umum di antara responden yang peduli terhadap isu lingkungan sebesar 0,867 atau 86,67%. Artinya, dari seluruh responden yang menunjukkan kepedulian terhadap lingkungan, sekitar 86 dari setiap 100 orang menggunakan transportasi umum.

Lebih lanjut, melalui estimasi interval kepercayaan 95%, diperoleh rentang antara 0,828 hingga 0,905. Hal ini berarti, kita memiliki keyakinan sebesar 95% bahwa proporsi sebenarnya di populasi pengguna transportasi umum yang peduli lingkungan berada antara 82,8% hingga 90,5%.

5.2 Uji Hipotesis

Dalam konteks analisis, setelah menyusun data ke dalam bentuk tabel kontingensi 2 × 2, langkah penting selanjutnya adalah melakukan uji hipotesis. Tujuannya adalah untuk menjawab pertanyaan :

Apakah terdapat hubungan yang signifikan antara dua variabel kategorik dalam populasi?
Apakah perbedaan proporsi antara dua kelompok bersifat kebetulan (by chance) atau signifikan secara statistik?

Tujuan Uji Hipotesis

Lebih lanjut, uji hipotesis pada tabel kontingensi 2 × 2 bertujuan untuk :

  • Menilai apakah terdapat keterkaitan (asosiasi) antara dua variabel kategorik.

  • Menentukan apakah perbedaan distribusi yang diamati cukup besar untuk menyimpulkan bahwa hubungan tersebut tidak terjadi secara acak.

Hipotesis Uji

Hipotesis nol dan alternatif untuk tabel 2 × 2 umumnya dirumuskan sebagai berikut :

  • Hipotesis Nol (H₀): Tidak ada asosiasi antara kedua variabel (variabel bebas dan variabel respon bersifat independen).
    H0: Variabel A dan B tidak berhubungan

  • Hipotesis Alternatif (H₁): Terdapat asosiasi antara kedua variabel (variabel bebas memengaruhi variabel respon).
    H1: Variabel A dan B berhubungan

Inferensi ini umumnya dilakukan melalui :

  • Uji Chi-Kuadrat → untuk menguji ada atau tidaknya asosiasi.

  • Uji Eksask Fisher → untuk ukuran sampel kecil.

5.2.1 Uji Proporsi

Uji proporsi digunakan untuk membandingkan proporsi kejadian antara dua kelompok dalam sebuah tabel kontingensi 2 × 2. Uji ini berguna untuk menjawab apakah perbedaan proporsi antar kelompok terjadi secara kebetulan atau memiliki signifikansi statistik.

Hipotesis Uji

  • H₀ (Hipotesis Nol): Tidak ada perbedaan proporsi antar kelompok (p₁ = p₂)

  • H₁ (Hipotesis Alternatif): Terdapat perbedaan proporsi antar kelompok (p₁ ≠ p₂)

Rumus Estimasi Proporsi

  1. Estimasi proporsi masing-masing kelompok: \[ \hat{p}_1 = \frac{n_{11}}{n_{1.}}, \quad \hat{p}_2 = \frac{n_{21}}{n_{2.}} \]

  2. Proporsi gabungan (pooled): \[ \hat{p} = \frac{n_{11} + n_{21}}{n_{1.} + n_{2.}} \]

  3. Statistik uji z: \[ z = \frac{\hat{p}_1 - \hat{p}_2}{\sqrt{\hat{p}(1 - \hat{p}) \left( \frac{1}{n_{1.}} + \frac{1}{n_{2.}} \right)}} \]

# Ambil nilai kejadian (+) dan total untuk tiap kelompok
kejadian_pos <- c(260, 40)  # Pengguna transportasi umum
total_per_kelompok <- c(260 + 40, 80 + 120)

# Uji proporsi
prop_test <- prop.test(x = kejadian_pos, n = total_per_kelompok, correct = FALSE)
print(prop_test)
## 
##  2-sample test for equality of proportions without continuity correction
## 
## data:  kejadian_pos out of total_per_kelompok
## X-squared = 222.22, df = 1, p-value < 2.2e-16
## alternative hypothesis: two.sided
## 95 percent confidence interval:
##  0.5991919 0.7341414
## sample estimates:
##    prop 1    prop 2 
## 0.8666667 0.2000000

5.2.1.1 Interpretasi Hasil Uji Proporsi

Hasil uji proporsi dua sampel tanpa koreksi kontinuitas menunjukkan bahwa terdapat perbedaan yang signifikan antara proporsi penggunaan transportasi umum pada individu yang peduli terhadap lingkungan dibandingkan dengan yang acuh. Proporsi pengguna transportasi umum di kelompok yang peduli terhadap lingkungan mencapai 86,7%, sedangkan pada kelompok yang acuh hanya sebesar 20%. Selisih antara kedua proporsi tersebut terbukti signifikan secara statistik, dengan nilai uji χ² = 222,22, derajat kebebasan 1, dan p-value < 2.2 × 10⁻¹⁶, yang jauh lebih kecil dari tingkat signifikansi 0,05. Interval kepercayaan 95% untuk selisih proporsi berada dalam rentang [0,599; 0,734], yang tidak mencakup nol, sehingga memperkuat kesimpulan bahwa perbedaan proporsi ini bukanlah hasil dari variasi acak semata. Hasil ini menunjukkan bahwa terdapat asosiasi yang kuat antara kepedulian terhadap isu lingkungan dan perilaku penggunaan transportasi umum, yang mengindikasikan bahwa individu yang memiliki kesadaran lingkungan cenderung lebih konsisten dalam menerapkan tindakan ramah lingkungan dalam kehidupan sehari-hari, khususnya dalam hal memilih moda transportasi yang berkelanjutan.

5.2.2 Uji Asosiasi

Pengertian Uji Asosiasi

Uji asosiasi bertujuan untuk mengetahui apakah terdapat hubungan yang signifikan antara dua variabel kategorik. Dalam konteks tabel kontingensi 2 × 2, uji ini sering digunakan untuk:

  • Menilai hubungan antara paparan (exposure) dan kejadian (outcome)
  • Membandingkan dua kelompok dalam hal probabilitas atau peluang terhadap suatu kejadian

Ukuran Asosiasi yang Umum Digunakan

  1. Risk Difference (RD)
    Mengukur selisih risiko absolut antara dua kelompok.

    \[ RD = \frac{a}{a + b} - \frac{c}{c + d} \] Standard Error untuk RD : \[ SE(RD) = \sqrt{\frac{\hat{p}_1(1 - \hat{p}_1)}{n_1} + \frac{\hat{p}_2(1 - \hat{p}_2)}{n_2}} \]

    Statistik Uji Z untuk menilai signifikansi perbedaan : \[ Z = \frac{RD}{SE(RD)} \]

    # Hitung Risk Difference dan uji Z
    
    # Input data dari tabel kontingensi
    a <- 260  # Peduli & Ya
    b <- 80   # Acuh & Ya
    c <- 40   # Peduli & Tidak
    d <- 120  # Acuh & Tidak
    
    # Ukuran sampel tiap kelompok
    n1 <- a + b
    n2 <- c + d
    
    # Proporsi kejadian di masing-masing kelompok
    p1 <- a / n1
    p2 <- c / n2
    
    # Risk Difference
    RD <- p1 - p2
    
    # Standard Error
    SE_RD <- sqrt((p1 * (1 - p1)) / n1 + (p2 * (1 - p2)) / n2)
    
    # Z-statistik
    Z_RD <- RD / SE_RD
    
    # Output hasil
    list(
      Risk_Difference = RD,
      Standard_Error = SE_RD,
      Z_statistic = Z_RD
    )
    ## $Risk_Difference
    ## [1] 0.5147059
    ## 
    ## $Standard_Error
    ## [1] 0.04124419
    ## 
    ## $Z_statistic
    ## [1] 12.47948
  2. Relative Risk (RR)
    Mengukur perbandingan risiko antara dua kelompok.

    \[ RR = \frac{\frac{a}{a + b}}{\frac{c}{c + d}} \]

    Standard Error untuk log(RR):

    \[ SE(\ln RR) = \sqrt{ \frac{1}{a} - \frac{1}{a + b} + \frac{1}{c} - \frac{1}{c + d} } \]

    Statistik Uji Z :

    \[ Z = \frac{\ln(RR)}{SE(\ln RR)} \]

    # Relative Risk dan uji Z
    
    # Proporsi kejadian
    RR <- (a / (a + b)) / (c / (c + d))
    
    # Standard Error log(RR)
    SE_log_RR <- sqrt((1 / a) - (1 / (a + b)) + (1 / c) - (1 / (c + d)))
    
    # Z-statistik
    Z_RR <- log(RR) / SE_log_RR
    
    # Output hasil
    list(
      Relative_Risk = RR,
      SE_log_RR = SE_log_RR,
      Z_statistic = Z_RR
    )
    ## $Relative_Risk
    ## [1] 3.058824
    ## 
    ## $SE_log_RR
    ## [1] 0.1401962
    ## 
    ## $Z_statistic
    ## [1] 7.974755
  3. Odds Ratio (OR)
    Mengukur perbandingan odds kejadian antara dua kelompok.

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

Dengan :

- \(a\) : Jumlah individu yang terpapar dan mengalami kejadian
- \(b\) : Jumlah individu yang terpapar dan tidak mengalami kejadian
- \(c\) : Jumlah individu tidak terpapar dan mengalami kejadian
- \(d\) : Jumlah individu tidak terpapar dan tidak mengalami kejadian

Standard Error untuk log(OR) :

\[ SE(\ln OR) = \sqrt{ \frac{1}{a} + \frac{1}{b} + \frac{1}{c} + \frac{1}{d} } \]

Statistik Uji Z :

\[ Z = \frac{\ln(OR)}{SE(\ln OR)} \]

# Odds Ratio dan uji Z

OR <- (a * d) / (b * c)

# Standard Error log(OR)
SE_log_OR <- sqrt(1/a + 1/b + 1/c + 1/d)

# Z-statistik
Z_OR <- log(OR) / SE_log_OR

# Output hasil
list(
  Odds_Ratio = OR,
  SE_log_OR = SE_log_OR,
  Z_statistic = Z_OR
)
## $Odds_Ratio
## [1] 9.75
## 
## $SE_log_OR
## [1] 0.222889
## 
## $Z_statistic
## [1] 10.21705

Hipotesis Uji Asosiasi

  • H₀ (Hipotesis Nol) : Tidak ada asosiasi antara variabel paparan dan kejadian (OR = 1, RR = 1, RD = 0)
  • H₁ (Hipotesis Alternatif) : Terdapat asosiasi antara variabel paparan dan kejadian

5.2.2.1 Interpretasi Hasil Uji Asosiasi

Berdasarkan hasil uji asosiasi pada tabel kontingensi 2 × 2, ketiga ukuran asosiasi—Risk Difference (RD), Relative Risk (RR), dan Odds Ratio (OR)—menunjukkan signifikansi yang kuat secara statistik. Nilai Risk Difference sebesar 0.5147 dengan standard error 0.0412 menghasilkan Z-statistik sebesar 12.48, yang jauh melebihi ambang nilai kritis pada taraf signifikansi umum (misalnya Z > 1.96 untuk α = 0.05). Hal ini menunjukkan adanya selisih risiko absolut yang signifikan antara kelompok yang peduli lingkungan dan yang tidak dalam hal penggunaan transportasi umum. Selanjutnya, Relative Risk (RR) sebesar 3.06 dengan standard error log(RR) 0.1402 menghasilkan Z-statistik sebesar 7.97, menegaskan bahwa risiko individu yang peduli lingkungan untuk menggunakan transportasi umum sekitar tiga kali lebih tinggi dibandingkan yang tidak peduli, dan perbedaan ini juga signifikan secara statistik. Terakhir, Odds Ratio (OR) sebesar 9.75 dengan standard error log(OR) 0.2229 dan Z-statistik sebesar 10.22 mengindikasikan bahwa odds penggunaan transportasi umum di antara individu yang peduli lingkungan hampir 10 kali lipat lebih besar dibandingkan mereka yang tidak peduli, dan hasil ini pun signifikan. Secara keseluruhan, ketiga ukuran asosiasi memperkuat kesimpulan bahwa terdapat hubungan yang signifikan secara statistik antara kepedulian terhadap lingkungan dengan perilaku penggunaan transportasi umum.

5.2.3 Uji Independensi

Uji independensi adalah salah satu jenis uji hipotesis yang digunakan untuk menentukan apakah dua variabel kategori dalam tabel kontingensi berhubungan atau tidak, atau dengan kata lain, apakah dua variabel tersebut saling independen satu sama lain. Uji ini sangat berguna ketika kita ingin mengetahui apakah distribusi frekuensi suatu variabel dapat dijelaskan oleh variabel lain atau apakah kedua variabel tersebut saling mempengaruhi.

Tabel kontingensi adalah representasi dalam bentuk matriks yang menampilkan distribusi frekuensi dua variabel kategori. Pada umumnya, tabel kontingensi yang digunakan dalam uji independensi adalah tabel 2×2 atau lebih besar (misalnya 3×3, 2×3), di mana setiap sel berisi frekuensi observasi dari kombinasi kategori kedua variabel.

Tujuan Uji Independen

Tujuan utama dari uji independensi adalah untuk menguji hipotesis tentang ketergantungan atau independensi antara dua variabel. Dalam uji ini, kita akan membandingkan frekuensi observasi yang diharapkan (expected frequencies) dengan frekuensi yang diamati (observed frequencies) untuk menentukan apakah perbedaan antara keduanya cukup besar untuk menyimpulkan adanya hubungan yang signifikan.

Secara umum, uji independensi menggunakan hipotesis berikut:

  • Hipotesis Nol (H₀): Variabel pertama dan variabel kedua independen atau tidak ada hubungan antara kedua variabel tersebut.

  • Hipotesis Alternatif (H₁): Variabel pertama dan variabel kedua terkait atau ada hubungan antara kedua variabel tersebut.

5.2.3.1 Uji Chi-Square

Salah satu uji yang paling umum digunakan untuk menguji independensi dalam tabel kontingensi adalah Uji Chi-Square (χ²). Uji ini menghitung nilai statistik Chi-Square berdasarkan perbedaan antara frekuensi yang diamati dan frekuensi yang diharapkan, kemudian menguji apakah perbedaan tersebut cukup besar untuk menolak hipotesis nol.

Statistik Chi-Square:

\[ \chi^2 = \sum \frac{(O_i - E_i)^2}{E_i} \]

Dengan :

  • \(O_i\) adalah frekuensi yang diamati di sel ke-i.
  • \(E_i\) adalah frekuensi yang diharapkan di sel ke-i, yang dihitung berdasarkan hipotesis bahwa kedua variabel independen.

Frekuensi yang diharapkan (E) dihitung dengan rumus:

\[ E_i = \frac{( \text{Jumlah Baris i} ) \times ( \text{Jumlah Kolom j} )}{\text{Total Sampel}} \]

Kriteria Pengambilan Keputusan

  • Jika nilai p lebih kecil dari tingkat signifikansi (misalnya p<0.05), maka kita menolak hipotesis nol dan menyimpulkan bahwa ada hubungan yang signifikan antara kedua variabel, artinya kedua variabel tidak independen.

  • Jika nilai p lebih besar dari tingkat signifikansi (misalnya p>0.05), maka kita gagal menolak hipotesis nol dan menyimpulkan bahwa tidak ada hubungan yang signifikan antara kedua variabel, artinya kedua variabel independen.

# Uji Chi-Square (Uji Independensi)
Chi_Square <- chisq.test(cont_table, correct = FALSE)
print(Chi_Square)
## 
##  Pearson's Chi-squared test
## 
## data:  cont_table
## X-squared = 120.1, df = 1, p-value < 2.2e-16
5.2.3.1.1 Interpretasi Hasil Uji Chi-Square
Berdasarkan hasil uji Chi-Square, diperoleh nilai statistik χ2 = 120.1 dengan derajat bebas (df) sebesar 1 dan nilai p-value < 2.2e-16. Nilai p-value yang sangat kecil ini jauh berada di bawah tingkat signifikansi umum (misalnya α=0.05, sehingga hipotesis nol ditolak. Artinya, terdapat bukti yang sangat kuat untuk menyimpulkan adanya hubungan yang signifikan secara statistik antara kepedulian terhadap lingkungan dan penggunaan transportasi umum. Dengan kata lain, perilaku dalam menggunakan transportasi umum tidak bersifat independen terhadap tingkat kepedulian individu terhadap isu lingkungan. Hasil ini memperkuat bahwa sikap terhadap lingkungan berkaitan erat dengan keputusan seseorang dalam memilih moda transportasi yang lebih ramah lingkungan.

5.2.3.2 Partisi Chi-Square

Pendahuluan

Partisi Chi-Square adalah teknik yang digunakan setelah uji independensi Chi-Square menunjukkan hasil signifikan. Tujuannya adalah untuk mengidentifikasi kategori mana yang paling berkontribusi terhadap hubungan signifikan antara dua variabel kategorik. Pendekatan ini penting karena dalam tabel kontingensi berukuran lebih besar dari 2×2, kita perlu tahu dimensi mana yang menjadi sumber utama asosiasi.

Partisi Chi-Square didasarkan pada teori bahwa statistik Chi-Square total dapat dipecah menjadi beberapa bagian, sesuai dengan derajat bebasnya. Setiap bagian ini merepresentasikan kontribusi dari subkelompok tertentu dalam tabel.

⚠️ Konteks Penting

Konsep ini juga berkaitan dengan fenomena Simpson’s Paradox, yaitu kondisi ketika tren yang tampak dalam beberapa kelompok data bisa hilang atau bahkan terbalik jika data tersebut digabungkan.

Langkah-langkah Partisi Chi-Square

  1. Lakukan uji Chi-Square pada keseluruhan tabel kontingensi (misal, 2×3 atau lebih).

  2. Jika hasil signifikan, lanjutkan dengan memecah tabel menjadi tabel-tabel 2×2 sesuai subkelompok yang relevan

  3. Hitung nilai Chi-Square pada masing-masing tabel 2×2.

  4. Interpretasikan tabel mana yang paling berkontribusi pada hasil signifikan secara keseluruhan.

Contoh Kasus untuk Partisi Chi-Square

Topik mengenai preferensi hobi berdasarkan jenis kelamin merupakan isu yang menarik untuk diteliti karena dapat mencerminkan dinamika sosial, budaya, serta konstruksi gender dalam masyarakat. Pemilihan hobi seperti olahraga, otomotif, belanja (shopping), dan komputer tidak hanya berkaitan dengan minat individu, tetapi juga sering kali dipengaruhi oleh norma sosial yang melekat pada peran laki-laki dan perempuan. Dengan mengkaji keterkaitan antara jenis kelamin dan pilihan hobi, kita dapat memperoleh wawasan lebih dalam mengenai kecenderungan perilaku, stereotip gender, serta potensi pergeseran nilai-nilai dalam masyarakat modern. Selain itu, hasil analisis ini dapat berguna dalam berbagai konteks praktis, seperti penyusunan program pemasaran, perencanaan kegiatan komunitas, maupun pengembangan kebijakan pendidikan dan rekreasi yang lebih inklusif dan responsif terhadap kebutuhan kedua gender. Data untuk analisis disajikan sebagai berikut :

# Data dari tabel kontingensi
hobi_table <- matrix(c(30, 45, 20, 25,
                       10, 5,  40, 25),
                     nrow = 2, byrow = TRUE)

colnames(hobi_table) <- c("Olah Raga", "Otomotif", "Shopping", "Komputer")
rownames(hobi_table) <- c("Laki-laki", "Perempuan")

hobi_table
##           Olah Raga Otomotif Shopping Komputer
## Laki-laki        30       45       20       25
## Perempuan        10        5       40       25
uji_keseluruhan <- chisq.test(hobi_table, correct = FALSE)
uji_keseluruhan
## 
##  Pearson's Chi-squared test
## 
## data:  hobi_table
## X-squared = 42.361, df = 3, p-value = 3.363e-09
# Partisi 1: Olah Raga vs. Hobi Lain
hobi1 <- matrix(c(30, 90, 10, 70), nrow = 2, byrow = TRUE)
colnames(hobi1) <- c("Olah Raga", "Lainnya")
rownames(hobi1) <- c("Laki-laki", "Perempuan")
chisq.test(hobi1, correct = FALSE)
## 
##  Pearson's Chi-squared test
## 
## data:  hobi1
## X-squared = 4.6875, df = 1, p-value = 0.03038
# Partisi 2: Otomotif vs. Hobi Lain
hobi2 <- matrix(c(45, 75, 5, 75), nrow = 2, byrow = TRUE)
colnames(hobi2) <- c("Otomotif", "Lainnya")
rownames(hobi2) <- c("Laki-laki", "Perempuan")
chisq.test(hobi2, correct = FALSE)
## 
##  Pearson's Chi-squared test
## 
## data:  hobi2
## X-squared = 25, df = 1, p-value = 5.733e-07
# Partisi 3: Shopping vs. Hobi Lain
hobi3 <- matrix(c(20, 100, 40, 40), nrow = 2, byrow = TRUE)
colnames(hobi3) <- c("Shopping", "Lainnya")
rownames(hobi3) <- c("Laki-laki", "Perempuan")
chisq.test(hobi3, correct = FALSE)
## 
##  Pearson's Chi-squared test
## 
## data:  hobi3
## X-squared = 25.397, df = 1, p-value = 4.667e-07
# Partisi 4: Komputer vs. Hobi Lain
hobi4 <- matrix(c(25, 95, 25, 55), nrow = 2, byrow = TRUE)
colnames(hobi4) <- c("Komputer", "Lainnya")
rownames(hobi4) <- c("Laki-laki", "Perempuan")
chisq.test(hobi4, correct = FALSE)
## 
##  Pearson's Chi-squared test
## 
## data:  hobi4
## X-squared = 2.7778, df = 1, p-value = 0.09558
5.2.3.2.1 Interpretasi Hasil Partisi Chi-Square

Hasil uji chi-square keseluruhan menunjukkan bahwa terdapat hubungan yang sangat signifikan antara jenis kelamin dan jenis hobi (X² = 42,361; df = 3; p-value = 3,363 × 10⁻⁹). Hal ini mengindikasikan bahwa preferensi hobi berbeda secara nyata antara laki-laki dan perempuan.

Untuk mengetahui kontribusi masing-masing kategori hobi terhadap hubungan tersebut, dilakukan uji partisi sebagai berikut:

  • Hobi Olah Raga : Laki-laki lebih menyukai olahraga dibanding perempuan, dan perbedaan ini signifikan secara statistik (X² = 4,6875; p = 0,03038).

  • Hobi Otomotif : Hobi otomotif merupakan hobi yang paling membedakan antara laki-laki dan perempuan. Laki-laki secara dominan menyukai otomotif, sementara perempuan jauh lebih sedikit (X² = 25,000; p = 5,733 × 10⁻⁷).

  • Hobi Shopping : Sebaliknya, perempuan cenderung lebih menyukai shopping dibandingkan laki-laki. Perbedaan ini juga sangat signifikan (X² = 25,397; p = 4,667 × 10⁻⁷).

  • Hobi Komputer : Tidak ditemukan perbedaan signifikan antara laki-laki dan perempuan dalam hobi komputer. Kedua kelompok memiliki minat yang relatif setara (X² = 2,7778; p = 0,09558).

Kesimpulannya, jenis kelamin berpengaruh terhadap preferensi beberapa jenis hobi. Hobi otomotif dan shopping memberikan pengaruh terbesar terhadap perbedaan ini, sementara hobi komputer tidak memperlihatkan perbedaan yang berarti antara laki-laki dan perempuan.

5.2.3.3 Uji Likelihood Ratio (G2)

Uji Likelihood Ratio (sering disebut sebagai uji G²) merupakan salah satu alternatif dari uji chi-square (χ²) yang digunakan untuk menguji hipotesis independensi dalam tabel kontingensi berukuran I × J. Uji ini didasarkan pada prinsip likelihood, yakni membandingkan seberapa besar kemungkinan (likelihood) data yang diamati muncul di bawah hipotesis nol (variabel bebas) dengan kemungkinan maksimum yang bisa terjadi. Uji G² sangat berguna terutama ketika asumsi uji chi-square kurang terpenuhi, misalnya saat ukuran sampel kecil atau distribusi data tidak merata.

Rumus Statistik Uji

Statistik uji G² didefinisikan sebagai :

\[ G^2 = 2 \sum_i \sum_j O_{ij} \cdot \ln \left( \frac{O_{ij}}{E_{ij}} \right) \]

Dengan :

  • \(O_{ij}\) : Frekuensi observasi pada sel ke-(i,j)
  • \(E_{ij}\) : Frekuensi harapan pada sel ke-(i,j), dihitung sebagai:

\[ E_{ij} = \frac{(\text{jumlah baris } i) \times (\text{jumlah kolom } j)}{\text{total keseluruhan}} \]

Statistik \(G^2\) mengikuti distribusi \(\chi^2\) dengan derajat bebas:

\[ df = (I - 1)(J - 1) \]

Hipotesis yang diuji :

  • \(H_0\) : Variabel baris dan kolom saling bebas (tidak ada hubungan)
  • \(H_1\) : Terdapat ketergantungan (hubungan antara variabel)

Kriteria keputusan :

  • Tolak \(H_0\) jika \(G^2 \geq \chi^2_{(1 - \alpha, df)}\)

Implementasi Analisis di R

# Hitung ekspektasi
expected <- chisq.test(cont_table)$expected

# Hitung G²
G2 <- 2 * sum(cont_table * log(cont_table / expected))

# Nilai kritis dan keputusan
df <- (nrow(cont_table) - 1) * (ncol(cont_table) - 1)
critical_value <- qchisq(0.95, df)
decision <- ifelse(G2 > critical_value, "Tolak H0", "Gagal Tolak H0")

# Output
list(G2 = G2, Critical_Value = critical_value, Decision = decision)
## $G2
## [1] 122.0601
## 
## $Critical_Value
## [1] 3.841459
## 
## $Decision
## [1] "Tolak H0"
5.2.3.3.1 Interpretasi Hasil Uji Likelihood Ratio
Berdasarkan hasil uji Likelihood Ratio (G²) terhadap data transportasi yang melibatkan dua variabel, yaitu penggunaan transportasi umum (Ya/Tidak) dan kepedulian terhadap lingkungan (Peduli/Acuh), diperoleh nilai statistik uji G² sebesar 122,0601. Nilai ini jauh melebihi nilai kritis distribusi chi-square pada taraf signifikansi 5% dengan derajat bebas 1, yaitu sebesar 3,841459. Dengan demikian, keputusan yang diambil adalah menolak hipotesis nol (H₀), yang menyatakan bahwa tidak ada hubungan antara kedua variabel tersebut. Artinya, terdapat hubungan yang signifikan secara statistik antara kepedulian lingkungan dan kecenderungan seseorang dalam menggunakan transportasi umum. Hasil ini mengindikasikan bahwa individu yang memiliki kepedulian terhadap lingkungan cenderung lebih memilih menggunakan transportasi umum dibandingkan mereka yang acuh. Temuan ini selaras dengan dugaan bahwa kesadaran lingkungan dapat mendorong perilaku yang lebih ramah lingkungan dalam aktivitas keseharian, termasuk dalam pemilihan moda transportasi.

5.2.3.4 Uji Exact Fisher

Uji Exact Fisher adalah metode statistik yang digunakan untuk menguji hubungan antara dua variabel kategorikal dalam tabel kontingensi kecil, khususnya ketika asumsi-asumsi uji Chi-square tidak dapat diterapkan. Hal ini biasanya terjadi pada data dengan ukuran sampel yang kecil atau frekuensi harapan yang rendah. Uji ini pertama kali dikembangkan oleh Sir Ronald A. Fisher dan telah banyak diterapkan dalam bidang biologi dan medis, namun kini digunakan di berbagai disiplin ilmu.

Keunggulan Uji Exact Fisher

  • Cocok untuk ukuran sampel kecil: Uji ini ideal untuk data dengan jumlah sampel yang terbatas.

  • Tidak memerlukan asumsi normalitas atau distribusi chi-square: Tidak seperti uji chi-square yang mengasumsikan distribusi normal, uji Exact Fisher bekerja tanpa bergantung pada asumsi tersebut.

Keterbatasan Uji Exact Fisher

  • Hanya cocok untuk tabel kontingensi kecil: Uji ini umumnya hanya digunakan untuk tabel 2 × 2 atau 3x3, karena ukuran tabel yang lebih besar memerlukan perhitungan yang sangat rumit.
5.2.3.4.1 Distribusi Hipergeometrik

Distribusi hipergeometrik digunakan untuk menghitung probabilitas suatu kejadian dalam pengambilan sampel tanpa pengembalian. Dalam konteks uji Exact Fisher, distribusi ini digunakan untuk menghitung probabilitas semua kemungkinan tabel kontingensi yang dapat terbentuk dari data yang ada. Formula distribusi hipergeometrik untuk menghitung probabilitas P(X = x) adalah sebagai berikut :

\[ P(X = x) = \frac{\binom{K}{x} \binom{N-K}{n-x}}{\binom{N}{n}} \]

Dengan :

- \(N\) = total objek dalam populasi

- \(K\) = jumlah objek dalam kategori tertentu (misalnya sukses)

- \(n\) = jumlah sampel yang diambil

- \(x\) = jumlah objek yang diamati dalam kategori tertentu dalam sampel

Implementasi Analisis di R

# Langkah 1: Definisikan Data dan Hitung Probabilitas

# Data tabel kontingensi
N <- 500  # Total populasi
K <- 340  # Jumlah kategori "Peduli"
n <- 300  # Jumlah sampel "Ya"
x <- 260  # Jumlah sukses "Peduli" dan "Ya"

# Fungsi untuk menghitung probabilitas distribusi hipergeometrik
probabilitas <- choose(K, x) * choose(N - K, n - x) / choose(N, n)
probabilitas
## [1] 3.179769e-28
# Langkah 2: Menghitung Semua Kombinasi Tabel dan Menentukan p-value

# Fungsi untuk menghitung probabilitas kumulatif dari semua tabel 2 × 2 yang lebih kecil atau sama dengan tabel yang diamati
probabilitas_all <- function(data) {
  total_combinations <- 0
  # Generate semua kombinasi tabel 2 × 2 yang mungkin
  for (i in 0:data[1,1]) {
    for (j in 0:data[1,2]) {
      prob <- choose(data[1,1], i) * choose(data[2,1], j) * 
              choose(data[1,2], data[1,1] - i) * choose(data[2,2], data[2,1] - j) / 
              choose(sum(data), sum(data))
      total_combinations <- total_combinations + prob
    }
  }
  total_combinations
}

# Data tabel kontingensi
cont_table <- matrix(c(260, 80, 40, 120), nrow = 2, byrow = TRUE,
                     dimnames = list("Menggunakan Transportasi Umum" = c("Ya", "Tidak"),
                                     "Kepedulian Lingkungan" = c("Peduli", "Acuh")))

# Menghitung p-value manual dengan jumlah probabilitas
p_value_manual <- probabilitas_all(cont_table)
p_value_manual
## [1] 1.607357e+117
# Langkah 3: Perhitungan p-value Menggunakan Fungsi fisher.test() di R

# Uji Exact Fisher menggunakan R
fisher_result <- fisher.test(cont_table)
fisher_result
## 
##  Fisher's Exact Test for Count Data
## 
## data:  cont_table
## p-value < 2.2e-16
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##   6.167146 15.499162
## sample estimates:
## odds ratio 
##   9.696337
5.2.3.4.2 Interpretasi Hasil Uji Exact Fisher

Pada Langkah 1, perhitungan probabilitas distribusi hipergeometrik untuk data yang diberikan menghasilkan nilai 3.179769e-28, yang sangat kecil. Hal ini menunjukkan bahwa kombinasi data yang diamati (260 orang yang menggunakan transportasi umum dan peduli lingkungan, serta distribusi lainnya) sangat jarang terjadi dalam populasi yang lebih besar. Probabilitas yang sangat kecil ini mengindikasikan bahwa kejadian yang diamati hampir tidak mungkin terjadi tanpa adanya hubungan signifikan antara variabel yang diuji.

Pada Langkah 2, perhitungan p-value secara manual dilakukan dengan menggunakan distribusi hipergeometrik kumulatif dari semua kombinasi tabel 2 × 2 yang mungkin dengan total yang sama. Namun, hasil p-value yang diperoleh, 1.607357e+117, sangat besar dan tidak relevan untuk analisis statistik. Hal ini menunjukkan adanya potensi kesalahan dalam perhitungan kumulatif probabilitas, sehingga nilai p-value tersebut tidak dapat diinterpretasikan dengan benar dalam konteks uji Exact Fisher.

Pada Langkah 3, perhitungan p-value dilakukan dengan menggunakan fungsi fisher.test() di R, yang menghasilkan p-value < 2.2e-16. Nilai p-value yang sangat kecil ini menunjukkan bahwa terdapat hubungan yang sangat signifikan antara penggunaan transportasi umum dan kepedulian lingkungan. Dengan p-value yang lebih kecil dari 0.05, hipotesis nol yang menyatakan tidak ada hubungan antara kedua variabel dapat ditolak. Ini menunjukkan adanya bukti kuat bahwa kepedulian terhadap lingkungan mempengaruhi keputusan untuk menggunakan transportasi umum.

Analisis juga menghasilkan odds ratio sebesar 9.696337, yang berarti bahwa peluang seseorang yang peduli terhadap lingkungan untuk menggunakan transportasi umum hampir 10 kali lebih tinggi dibandingkan dengan seseorang yang tidak peduli (sama seperti pada uji asosiasi sebelumnya). Hal ini menegaskan bahwa faktor kepedulian lingkungan memiliki pengaruh yang besar terhadap perilaku dalam menggunakan transportasi umum.

Secara keseluruhan, hasil dari uji Exact Fisher ini memberikan bukti kuat bahwa ada hubungan signifikan antara kepedulian terhadap lingkungan dan penggunaan transportasi umum dalam data yang dianalisis. P-value yang sangat kecil mendukung penolakan hipotesis nol, sementara odds ratio yang tinggi menunjukkan bahwa kepedulian lingkungan mempengaruhi keputusan untuk menggunakan transportasi umum.

5.3 Analisis Residual dalam Tabel Kontingensi

Analisis residual dalam tabel kontingensi digunakan untuk mengidentifikasi sel mana yang menyumbang paling banyak terhadap hubungan antara variabel kategori. Residual mengukur selisih antara frekuensi yang diamati dan frekuensi yang diharapkan berdasarkan model independensi. Dalam analisis ini, kita akan menghitung residual untuk tabel kontingensi yang menunjukkan hubungan antara penggunaan transportasi umum dan kepedulian terhadap lingkungan.

Langkah-langkah Analisis Residual

1. Hitung Frekuensi yang Diharapkan

Untuk menghitung nilai ekspektasi pada setiap sel, rumus yang digunakan adalah:

\[ E_{ij} = \frac{(\text{Total Baris}) \times (\text{Total Kolom})}{\text{Total Keseluruhan}} \]

Berikut adalah nilai ekspektasi untuk setiap sel :

  • \(E_{11} = \frac{300 \times 340}{500} = 204\)
  • \(E_{12} = \frac{300 \times 160}{500} = 96\)
  • \(E_{21} = \frac{200 \times 340}{500} = 136\)
  • \(E_{22} = \frac{200 \times 160}{500} = 64\)

2. Hitung Pearson Residual

Pearson residual digunakan untuk mengukur penyimpangan antara nilai yang diamati dan nilai ekspektasi. Rumus yang digunakan adalah:

\[ e_{ij} = \frac{O_{ij} - E_{ij}}{\sqrt{E_{ij}}} \]

- \(O_{ij}\) adalah nilai observasi pada sel \(ij\),

- \(E_{ij}\) adalah nilai ekspektasi pada sel \(ij\).

Berikut adalah perhitungan Pearson residual untuk setiap sel :

  • \(e_{11} = \frac{260 - 204}{\sqrt{204}} = 3.92\)
  • \(e_{12} = \frac{40 - 96}{\sqrt{96}} = -5.71\)
  • \(e_{21} = \frac{80 - 136}{\sqrt{136}} = -4.80\)
  • \(e_{22} = \frac{120 - 64}{\sqrt{64}} = 7.00\)

3. Hitung Standardized Residual

Standardized residual digunakan untuk mempertimbangkan pengaruh margin baris dan kolom dalam tabel. Rumus yang digunakan adalah:

\[ r_{ij} = \frac{O_{ij} - E_{ij}}{\sqrt{E_{ij}}(1 - \frac{n_i}{N})(1 - \frac{n_j}{N})} \]

Dengan menghitung nilai residual yang terstandarisasi untuk setiap sel :

  • \(r_{11} = 7.85\)
  • \(r_{12} = -10.73\)
  • \(r_{21} = -8.57\)
  • \(r_{22} = 13.00\)
# Data Observasi
observed <- matrix(c(260, 40, 80, 120), nrow = 2, byrow = TRUE)

# Hitung nilai ekspektasi
expected <- chisq.test(observed)$expected

# Pearson Residual
pearson_residual <- (observed - expected) / sqrt(expected)

# Standardized Residual
row_sum <- rowSums(observed)
col_sum <- colSums(observed)
total_sum <- sum(observed)
standardized_residual <- (observed - expected) / sqrt(expected * (1 - row_sum / total_sum) * (1 - col_sum / total_sum))

# Hasil
list( Observed = observed, Expected = expected, Pearson_Residual = pearson_residual, Standardized_Residual = standardized_residual )
## $Observed
##      [,1] [,2]
## [1,]  260   40
## [2,]   80  120
## 
## $Expected
##      [,1] [,2]
## [1,]  204   96
## [2,]  136   64
## 
## $Pearson_Residual
##           [,1]      [,2]
## [1,]  3.920784 -5.715476
## [2,] -4.801960  7.000000
## 
## $Standardized_Residual
##           [,1]      [,2]
## [1,] 10.958925 -15.97524
## [2,] -7.517761  10.95893

4. Deteksi Outlier

Untuk mendeteksi outlier, kita menggunakan kriteria berikut :

  • Pearson Residual : Jika ∣eij​∣>2, maka sel tersebut dianggap sebagai indikasi adanya outlier.

  • Standardized Residual : Jika ∣rij​∣>3, maka sel tersebut dianggap sebagai outlier signifikan.

5.3.1 Interpretasi Hasil Analisis Residual

Hasil analisis residual menunjukkan adanya hubungan yang sangat kuat antara penggunaan transportasi umum dan kepedulian terhadap lingkungan. Sel dengan kombinasi Peduli lingkungan dan menggunakan transportasi umum memiliki residual standar sebesar 10.96, jauh lebih tinggi dari ambang signifikan, menandakan jumlah observasi jauh lebih besar dari yang diharapkan. Sebaliknya, kategori Acuh lingkungan yang menggunakan transportasi umum menunjukkan residual negatif besar (-15.98), mengindikasikan jumlah yang jauh lebih sedikit dari ekspektasi.

Kategori Peduli tapi tidak menggunakan transportasi umum dan Acuh tapi tidak menggunakan transportasi umum juga menunjukkan deviasi besar dari model independensi, dengan residual standar masing-masing -7.52 dan 10.96. Seluruh residual jauh melampaui batas ±3, mengindikasikan bahwa hampir semua sel secara signifikan menyimpang dari model tanpa hubungan. Temuan ini menegaskan adanya keterkaitan kuat; semakin tinggi kepedulian lingkungan, semakin besar kecenderungan menggunakan transportasi umum. Residual besar menunjukkan bahwa data sangat menyimpang dari model independensi, sehingga dapat disimpulkan bahwa kedua variabel saling berasosiasi secara kuat.

6 ✨ TABEL KONTINGENSI 3 ARAH

Tabel kontingensi tiga arah adalah tabel silang yang menampilkan hubungan antara tiga variabel kategoris. Tabel ini digunakan untuk menganalisis asosiasi atau hubungan antara variabel-variabel tersebut, termasuk asosiasi parsial atau kondisional.Tabel kontingensi tiga arah adalah bentuk lanjutan dari tabel kontingensi dua arah yang memungkinkan analisis interaksi antara tiga variabel kategori. Pendekatan ini sangat berguna untuk melihat hubungan dua variabel pada berbagai kondisi variabel ketiga.

6.1 Tabel Parsial dan Marginal

Tabel marginal menghitung jumlah total terhadap satu atau dua variabel, mengabaikan variabel lainnya. Tabel parsial menampilkan hubungan dua variabel dengan mengendalikan variabel ketiga.

\[ P(X),\ P(Y),\ P(Z) \text{ diperoleh dari total marginal terhadap dua variabel lainnya.} \]

Contoh kasus

Topik mengenai hubungan antara frekuensi konsumsi makanan cepat saji (fastfood), kondisi sistem imun tubuh (imun), dan status individu sebagai mahasiswa atau pekerja merupakan isu yang relevan untuk dianalisis melalui pendekatan tabel kontingensi tiga arah. Dalam konteks kehidupan modern, makanan cepat saji telah menjadi bagian dari pola makan banyak individu, terutama di kalangan mahasiswa dan pekerja yang cenderung memiliki waktu terbatas dan gaya hidup yang dinamis. Namun, tingginya konsumsi jenis makanan ini sering dikaitkan dengan penurunan kualitas kesehatan, termasuk daya tahan tubuh. Dengan mempertimbangkan status individu, analisis ini tidak hanya memungkinkan pengujian adanya asosiasi dua arah antara variabel-variabel tersebut, tetapi juga membuka ruang untuk menilai adanya interaksi tiga arah yang kompleks. Pendekatan ini memberikan landasan statistik yang kuat untuk mengidentifikasi apakah pengaruh konsumsi fastfood terhadap sistem imun bervariasi antar kelompok status sosial, sehingga memperkaya pemahaman mengenai determinan kesehatan dalam perspektif multivariat. Data disajikan dan dianalisis sebagai berikut :

fastfood <- c("Sering", "Jarang")
imun <- c("Normal", "Menurun")
status <- c("Mahasiswa", "Pekerja")

data_array <- array(
  c(
    30, 70,   # Mahasiswa - Sering
    60, 40,   # Mahasiswa - Jarang
    50, 50,   # Pekerja - Sering
    80, 20    # Pekerja - Jarang
  ),
  dim = c(2, 2, 2),
  dimnames = list(
    Fastfood = fastfood,
    Imun = imun,
    Status = status
  )
)

data_array
## , , Status = Mahasiswa
## 
##         Imun
## Fastfood Normal Menurun
##   Sering     30      60
##   Jarang     70      40
## 
## , , Status = Pekerja
## 
##         Imun
## Fastfood Normal Menurun
##   Sering     50      80
##   Jarang     50      20
# Marginal
marginal_xy <- apply(data_array, c(1, 2), sum)
marginal_xz <- apply(data_array, c(1, 3), sum)
marginal_yz <- apply(data_array, c(2, 3), sum)

# Parsial
parsial_mahasiswa <- data_array[, , "Mahasiswa"]
parsial_pekerja <- data_array[, , "Pekerja"]

marginal_xy
##         Imun
## Fastfood Normal Menurun
##   Sering     80     140
##   Jarang    120      60
marginal_xz
##         Status
## Fastfood Mahasiswa Pekerja
##   Sering        90     130
##   Jarang       110      70
marginal_yz
##          Status
## Imun      Mahasiswa Pekerja
##   Normal        100     100
##   Menurun       100     100
parsial_mahasiswa
##         Imun
## Fastfood Normal Menurun
##   Sering     30      60
##   Jarang     70      40
parsial_pekerja
##         Imun
## Fastfood Normal Menurun
##   Sering     50      80
##   Jarang     50      20

Interpretasi

Hasil tabulasi tiga arah antara variabel frekuensi konsumsi makanan cepat saji (fastfood), kondisi sistem imun (imun), dan status individu (status) menunjukkan pola hubungan yang menarik dan layak dianalisis lebih lanjut. Dari tabel kontingensi tiga arah, terlihat bahwa pada kelompok mahasiswa, proporsi responden yang sering mengonsumsi fastfood dan memiliki imun menurun cukup tinggi, yaitu 60 orang dibandingkan 30 orang yang memiliki imun normal. Sebaliknya, pada mahasiswa yang jarang mengonsumsi fastfood, mayoritas justru memiliki imun normal (70 orang), sementara sisanya (40 orang) memiliki imun menurun. Ini menunjukkan adanya kecenderungan bahwa pada kelompok mahasiswa, semakin sering konsumsi fastfood, semakin tinggi pula kemungkinan penurunan kondisi imun.

Sementara itu, pada kelompok pekerja, pola serupa juga dapat diamati meskipun tidak sekuat pada mahasiswa. Di antara pekerja yang sering mengonsumsi fastfood, 80 orang mengalami penurunan imun, sedangkan hanya 50 orang memiliki imun normal. Sebaliknya, pada pekerja yang jarang mengonsumsi fastfood, proporsi individu dengan imun normal dan menurun masing-masing adalah 50 dan 20 orang. Dengan kata lain, baik pada mahasiswa maupun pekerja, konsumsi fastfood yang lebih jarang cenderung berkaitan dengan kondisi imun yang lebih baik.

Analisis marginal juga memberikan wawasan tambahan. Ketika mengabaikan status, distribusi fastfood dan imun (marginal XY) menunjukkan bahwa dari total 140 individu yang sering mengonsumsi fastfood, 80 di antaranya memiliki imun normal dan 140 mengalami penurunan imun. Sebaliknya, dari 180 individu yang jarang mengonsumsi fastfood, 120 memiliki imun normal dan hanya 60 mengalami penurunan. Ini menguatkan indikasi bahwa konsumsi fastfood berkorelasi negatif dengan kondisi imun secara umum.

Selain itu, distribusi marginal antara fastfood dan status (marginal XZ) memperlihatkan bahwa pekerja lebih banyak mengonsumsi fastfood dibanding mahasiswa (130 vs. 90 untuk kategori “sering”), namun jumlah pekerja yang jarang mengonsumsi fastfood lebih rendah (70 vs. 110). Distribusi imun dan status (marginal YZ) bersifat seimbang: baik mahasiswa maupun pekerja masing-masing memiliki jumlah yang sama antara imun normal dan menurun (100-100), menunjukkan bahwa status itu sendiri tidak terlalu memengaruhi distribusi kondisi imun secara langsung tanpa mempertimbangkan variabel lain.

Dengan melihat tabel parsial, semakin jelas bahwa hubungan antara frekuensi konsumsi fastfood dan kondisi imun tidak identik antar kelompok status. Perbedaan pola ini mengindikasikan kemungkinan adanya interaksi tiga arah antara fastfood, imun, dan status, yang membuat analisis tabel kontingensi tiga arah menjadi sangat relevan dalam kasus ini. Interpretasi ini dapat dijadikan dasar untuk uji statistik lebih lanjut, seperti uji homogenitas asosiasi atau uji keberadaan interaksi, untuk memperoleh kesimpulan yang lebih mendalam dan valid secara inferensial.

6.2 Distribusi Peluang

Distribusi peluang dalam tabel kontingensi tiga arah menggambarkan proporsi relatif dari setiap kombinasi tiga variabel kategori yang diamati. Dengan membagi frekuensi setiap sel terhadap total keseluruhan pengamatan, kita memperoleh probabilitas gabungan yang merepresentasikan kemungkinan kemunculan kombinasi tertentu dari ketiga variabel. Distribusi ini penting sebagai dasar dalam menghitung peluang bersyarat, mengidentifikasi pola asosiasi, serta mengevaluasi independensi antar variabel. Dalam konteks tiga arah, distribusi peluang memungkinkan analisis yang lebih mendalam terhadap bagaimana satu variabel dapat memoderasi hubungan antara dua variabel lainnya.

Teori : \[ P(X = x, Y = y, Z = z) = \frac{f_{xyz}}{N} \]

total <- sum(data_array)
proporsi_array <- data_array / total
proporsi_array
## , , Status = Mahasiswa
## 
##         Imun
## Fastfood Normal Menurun
##   Sering  0.075    0.15
##   Jarang  0.175    0.10
## 
## , , Status = Pekerja
## 
##         Imun
## Fastfood Normal Menurun
##   Sering  0.125    0.20
##   Jarang  0.125    0.05

Interpretasi

Hasil perhitungan proporsi relatif terhadap total keseluruhan data memberikan pemahaman yang lebih mendalam mengenai distribusi gabungan antara variabel frekuensi konsumsi fastfood (Fastfood), kondisi imun (Imun), dan status individu (Status). Total keseluruhan pengamatan adalah 400 (hasil dari penjumlahan seluruh frekuensi pada array), dan setiap nilai dalam array proporsi menunjukkan kontribusi proporsi masing-masing sel terhadap total populasi. Pada kelompok mahasiswa, individu yang sering mengonsumsi fastfood dan memiliki imun menurun mencakup 15% dari total pengamatan (0.15), yang merupakan proporsi tertinggi dalam kelompok ini. Sebaliknya, mahasiswa yang sering mengonsumsi fastfood namun memiliki imun normal hanya sebesar 7.5%, mengindikasikan bahwa dalam kelompok mahasiswa, konsumsi fastfood yang sering lebih banyak berasosiasi dengan penurunan imun. Sementara itu, mahasiswa yang jarang mengonsumsi fastfood dan memiliki imun normal mencakup 17.5%, yang lebih besar dibandingkan 10% mahasiswa jarang konsumsi fastfood tetapi mengalami penurunan imun. Dengan kata lain, pada kelompok mahasiswa, konsumsi fastfood yang jarang lebih banyak dikaitkan dengan kondisi imun yang baik.

Pada kelompok pekerja, proporsi terbesar juga berada pada individu yang sering mengonsumsi fastfood dan memiliki imun menurun, yaitu sebesar 20%, lebih tinggi dibandingkan proporsi mahasiswa dalam kategori yang sama. Hal ini menunjukkan bahwa pekerja yang sering mengonsumsi fastfood juga lebih rentan mengalami penurunan daya tahan tubuh. Proporsi pekerja yang jarang mengonsumsi fastfood dan memiliki imun normal adalah 12.5%, jauh lebih besar dibandingkan proporsi pekerja dalam kategori yang sama namun dengan imun menurun (5%). Hal ini konsisten dengan pola pada kelompok mahasiswa, yakni bahwa frekuensi konsumsi fastfood yang lebih jarang cenderung diikuti dengan kondisi imun yang lebih baik. Jika dibandingkan antar-kelompok status, pekerja cenderung memiliki proporsi lebih tinggi dalam kategori yang berisiko (sering konsumsi fastfood dan imun menurun = 20%) dibanding mahasiswa (15%), meskipun secara keseluruhan distribusi antara imun normal dan menurun adalah seimbang dalam data. Ini menunjukkan bahwa meskipun status sebagai mahasiswa atau pekerja tidak memengaruhi kondisi imun secara langsung (sebagaimana terlihat dalam marginal YZ), dampak konsumsi fastfood terhadap imun mungkin tidak sama antara kedua kelompok. Fakta ini kembali menegaskan pentingnya mempertimbangkan interaksi tiga arah, karena pola hubungan tidak seragam di seluruh subkelompok.

6.3 Peluang Bersyarat

Peluang bersyarat dalam tabel kontingensi tiga arah mengukur probabilitas terjadinya suatu kategori dari satu variabel, dengan asumsi bahwa nilai-nilai dari dua variabel lainnya telah diketahui. Analisis ini memungkinkan kita untuk menelusuri bagaimana hubungan antara dua variabel dapat berubah atau dipengaruhi oleh variabel ketiga. Dengan menghitung peluang bersyarat, kita dapat mengidentifikasi adanya ketergantungan yang tersembunyi, serta menilai konsistensi pola hubungan antar kelompok. Pendekatan ini sangat berguna untuk memahami interaksi kompleks dan memberikan landasan bagi pengujian independensi bersyarat.

Teori : \[ P(Y|X,Z) = \frac{P(X,Y,Z)}{P(X,Z)} \]

py_given_xz <- prop.table(data_array, c(1, 3))
py_given_xz
## , , Status = Mahasiswa
## 
##         Imun
## Fastfood    Normal   Menurun
##   Sering 0.3333333 0.6666667
##   Jarang 0.6363636 0.3636364
## 
## , , Status = Pekerja
## 
##         Imun
## Fastfood    Normal   Menurun
##   Sering 0.3846154 0.6153846
##   Jarang 0.7142857 0.2857143

Interpretasi

Dari keempat kombinasi antara Fastfood dan Status, terlihat pola konsisten: semakin jarang seseorang mengonsumsi fastfood, semakin tinggi peluang mereka memiliki sistem imun yang normal. Selain itu, perbedaan proporsi ini cukup mencolok, terutama jika dibandingkan antara mahasiswa dan pekerja. Misalnya, peluang memiliki imun normal bagi mahasiswa yang jarang makan fastfood adalah 63.6%, sedangkan pada pekerja mencapai 71.4%. Sebaliknya, pada kelompok yang sering makan fastfood, keduanya menunjukkan penurunan peluang memiliki imun normal, meskipun pekerja sedikit lebih baik dibanding mahasiswa (38.5% vs. 33.3%).

Pola ini memperkuat dugaan bahwa konsumsi fastfood dapat berasosiasi negatif terhadap kondisi imun, dan efeknya terlihat konsisten di berbagai kelompok status. Analisis seperti ini sangat penting dalam konteks analisis tabel kontingensi tiga arah, karena mengungkap hubungan bersyarat yang tidak selalu tampak pada tabel marginal. Untuk validasi lebih lanjut, langkah selanjutnya bisa dilakukan melalui uji homogenitas asosiasi atau model log-linear untuk mengevaluasi apakah perbedaan ini signifikan secara statistik.

6.4 Ukuran Asosiasi

Ukuran asosiasi dalam tabel kontingensi tiga arah digunakan untuk menilai kekuatan dan arah hubungan antara dua variabel kategori pada tingkat tertentu dari variabel ketiga. Salah satu ukuran yang sering digunakan adalah odds ratio (OR), yang mengukur rasio peluang kejadian pada satu kelompok dibandingkan kelompok lain. Dalam konteks tiga arah, kita dapat menghitung OR parsial untuk setiap strata dari variabel ketiga, serta OR gabungan untuk seluruh data. Analisis ini membantu mengidentifikasi apakah hubungan antara dua variabel konsisten di seluruh level variabel ketiga, serta apakah terdapat interaksi atau efek yang bersifat mengganggu.

6.4.1 Tabel Kontingensi Parsial dan Odds Ratio

Teori : \[ \text{OR} = \frac{ad}{bc} \]

odds_ratio <- function(tab) {
  (tab[1,1] * tab[2,2]) / (tab[1,2] * tab[2,1])
}

or_mahasiswa <- odds_ratio(parsial_mahasiswa)
or_pekerja <- odds_ratio(parsial_pekerja)

or_mahasiswa
## [1] 0.2857143
or_pekerja
## [1] 0.25

Interpretasi

Perhitungan odds ratio (OR) dari masing-masing tabel parsial memberikan wawasan mengenai kekuatan asosiasi antara frekuensi konsumsi makanan cepat saji (fastfood) dan kondisi sistem imun (imun) dalam masing-masing kelompok status, yaitu mahasiswa dan pekerja. Untuk kelompok mahasiswa, nilai odds ratio sebesar 0.29 (dibulatkan dari 0.2857) menunjukkan bahwa mahasiswa yang sering mengonsumsi fastfood memiliki peluang sekitar 71% lebih rendah untuk memiliki imun normal dibanding mahasiswa yang jarang mengonsumsinya. Dengan kata lain, semakin sering mahasiswa mengonsumsi fastfood, semakin tinggi kecenderungan mereka memiliki kondisi imun yang menurun.

Hal serupa juga terlihat pada kelompok pekerja, di mana nilai odds ratio sebesar 0.25 mengindikasikan bahwa pekerja yang sering mengonsumsi fastfood memiliki peluang 75% lebih rendah untuk memiliki imun normal dibanding pekerja yang jarang mengonsumsinya. Kedua nilai OR tersebut berada di bawah 1, yang secara konsisten menunjukkan adanya asosiasi negatif antara konsumsi fastfood dan kondisi imun di kedua kelompok. Artinya, konsumsi fastfood yang lebih sering berhubungan dengan risiko penurunan daya tahan tubuh, baik pada mahasiswa maupun pekerja.

Namun demikian, perbedaan nilai OR antara kedua kelompok (0.29 vs. 0.25) mengisyaratkan bahwa kekuatan asosiasi ini tidak identik, meskipun arahnya sama. Hal ini membuka kemungkinan adanya interaksi antara variabel status dan pengaruh fastfood terhadap imun, yang patut diuji lebih lanjut melalui analisis formal seperti uji homogenitas odds ratio atau pendekatan model log-linear, untuk memastikan apakah perbedaan tersebut signifikan secara statistik atau hanya terjadi karena variasi acak.

6.5 Conditional Independence

Conditional independence dalam tabel kontingensi tiga arah merujuk pada situasi di mana dua variabel kategori (misalnya X dan Y) tidak saling bergantung secara statistik jika pengaruh dari variabel ketiga (Z) dikendalikan atau tetap. Dengan kata lain, setelah memperhitungkan variabel Z, tidak ada asosiasi signifikan antara X dan Y. Konsep ini penting dalam analisis multivariat karena membantu mengidentifikasi apakah hubungan antar variabel bersifat langsung atau dimediasi oleh variabel lain. Pengujian conditional independence sering dilakukan dengan uji Cochran-Mantel-Haenszel atau pendekatan log-linear. Dua variabel X dan Y dikatakan independen bersyarat terhadap Z jika hubungan antara X dan Y hilang setelah mengendalikan Z.

Teori : \[ P(X,Y|Z) = P(X|Z)P(Y|Z) \]

library(vcdExtra)
## Warning: package 'vcdExtra' was built under R version 4.3.3
## Loading required package: vcd
## Warning: package 'vcd' was built under R version 4.3.3
## Loading required package: grid
## Loading required package: gnm
## Warning: package 'gnm' was built under R version 4.3.3
CI_test <- mantelhaen.test(data_array)
CI_test
## 
##  Mantel-Haenszel chi-squared test with continuity correction
## 
## data:  data_array
## Mantel-Haenszel X-squared = 36.459, df = 1, p-value = 1.559e-09
## alternative hypothesis: true common odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.1748874 0.4115846
## sample estimates:
## common odds ratio 
##         0.2682927

6.5.1 Interpretasi

  • X-squared = 36.459, dengan p-value < 0.001, menunjukkan hubungan antara pola makan fast food dan kondisi sistem imun masih signifikan meski dikontrol oleh status.

  • Common odds ratio = 0.268, yang jauh dari 1, juga mengindikasikan bahwa kemungkinan gangguan sistem imun tidak merata antara kelompok fast food, setelah dikontrol oleh status.

6.6 Marginal Y dan X

marginal_x <- margin.table(data_array, 1)
marginal_y <- margin.table(data_array, 2)

marginal_x
## Fastfood
## Sering Jarang 
##    220    180
marginal_y
## Imun
##  Normal Menurun 
##     200     200

Interpretasi

Analisis marginal terhadap data tiga arah ini memberikan gambaran umum mengenai distribusi masing-masing variabel secara terpisah. Dari hasil margin.table(data_array, 1), diketahui bahwa total individu yang sering mengonsumsi fastfood berjumlah 220 orang, sementara yang jarang mengonsumsi fastfood sebanyak 180 orang. Ini menunjukkan bahwa secara keseluruhan, proporsi konsumsi fastfood cukup tinggi di populasi yang diamati, dengan 55% responden berada dalam kategori sering, sedangkan sisanya 45% jarang mengonsumsi. Sementara itu, berdasarkan margin.table(data_array, 2), distribusi kondisi sistem imun antara kategori normal dan menurun bersifat seimbang sempurna, masing-masing sebanyak 200 orang. Dengan demikian, tidak ada ketimpangan proporsi secara keseluruhan dalam kondisi imun, yang menunjukkan bahwa jika tidak mempertimbangkan variabel lain, peluang seseorang memiliki imun normal atau menurun adalah sama besar.

Namun, meskipun distribusi marginal imun terlihat seimbang, hasil ini tidak serta-merta menyiratkan tidak adanya asosiasi antara imun dan fastfood. Justru, kesetaraan marginal ini memberikan latar yang ideal untuk menyelidiki hubungan bersyarat dan potensi adanya interaksi dalam tabel kontingensi tiga arah. Jika ketidakseimbangan proporsi imun ditemukan dalam subkelompok tertentu (misalnya berdasarkan frekuensi fastfood atau status), maka hal tersebut mengindikasikan adanya asosiasi laten yang tidak terlihat pada distribusi marginal saja.

6.7 Inferensi Tabel Kontingensi Tiga Arah

Inferensi pada tabel kontingensi tiga arah bertujuan untuk menguji secara statistik adanya hubungan atau ketergantungan antara tiga variabel kategori. Dengan melakukan analisis inferensial, seperti uji chi-square pada setiap strata, uji Cochran-Mantel-Haenszel (CMH), dan uji homogenitas odds ratio (Breslow-Day), kita dapat menentukan apakah hubungan antara dua variabel tetap konsisten setelah mengendalikan variabel ketiga. Proses ini membantu mengidentifikasi pola asosiasi yang tidak terlihat dari analisis dua arah, serta memperkuat kesimpulan mengenai interaksi antar variabel dalam populasi yang lebih kompleks.

6.7.1 Independensi Bersyarat dalam Tabel Kontingensi Tiga Arah

Independensi bersyarat dalam tabel kontingensi tiga arah mengacu pada situasi di mana dua variabel kategori (misalnya X dan Y) saling bebas atau tidak berhubungan setelah mengontrol atau mengkondisikan terhadap variabel ketiga (Z). Konsep ini penting untuk memahami apakah hubungan antara dua variabel tetap ada atau justru menghilang ketika faktor ketiga diperhitungkan. Dengan menguji independensi bersyarat, kita dapat membedakan apakah hubungan yang diamati merupakan pengaruh langsung antara dua variabel, atau hanya terlihat karena pengaruh bersama dari variabel ketiga. Pengujian independensi bersyarat dilakukan melalui uji chi-square per strata atau menggunakan pendekatan gabungan seperti uji Cochran-Mantel-Haenszel.

chisq.test(parsial_mahasiswa)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  parsial_mahasiswa
## X-squared = 16.99, df = 1, p-value = 3.758e-05
chisq.test(parsial_pekerja)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  parsial_pekerja
## X-squared = 18.484, df = 1, p-value = 1.714e-05

6.7.1.1 Interpretasi

Keputusan: Tolak H0 (hipotesis nol), yang menyatakan tidak ada hubungan antara fast food dan kondisi sistem imun pada kelompok pekerja.

Kesimpulan: Terdapat hubungan yang signifikan antara frekuensi makan fast food dan kondisi sistem imun pada kelompok pekerja. Artinya, dalam populasi pekerja, kecenderungan memiliki sistem imun yang menurun secara statistik terkait dengan seberapa sering mereka mengonsumsi fast food.

6.7.2 Odds Ratio Bersama

Odds ratio bersama dalam tabel kontingensi tiga arah digunakan untuk mengukur kekuatan asosiasi antara dua variabel (misalnya X dan Y) setelah dikontrol terhadap variabel ketiga (Z). Odds ratio ini merupakan gabungan dari odds ratio parsial pada masing-masing strata Z, sehingga memberikan gambaran umum tentang hubungan antara X dan Y secara keseluruhan, tanpa dipengaruhi perbedaan antar kelompok pada Z. Jika nilai odds ratio bersama signifikan dan konsisten antar strata, maka dapat disimpulkan bahwa terdapat asosiasi kuat antara X dan Y secara agregat.

Teori: \[ OR_{gabungan} = \frac{\sum_i a_i d_i / n_i}{\sum_i b_i c_i / n_i} \]

or_gabungan <- (30*40 + 50*20) / (70*60 + 50*80)
or_gabungan
## [1] 0.2682927

6.7.2.1 Interpretasi

  • Nilai odds ratio gabungan sebesar 0.268 menunjukkan bahwa, secara keseluruhan (tanpa memisahkan kelompok status), individu yang sering makan fast food memiliki kemungkinan sistem imun yang normal jauh lebih rendah dibandingkan mereka yang jarang makan fast food.
  • Karena nilai OR < 1, maka arah hubungan ini adalah negatif, yang berarti konsumsi fast food yang tinggi berkaitan dengan penurunan kesehatan sistem imun.

6.7.3 Uji Homogenitas Odds Ratio dengan Statistik Breslow-Day

library(DescTools)
## Warning: package 'DescTools' was built under R version 4.3.3
bd_test <- BreslowDayTest(data_array)
bd_test
## 
##  Breslow-Day test on Homogeneity of Odds Ratios
## 
## data:  data_array
## X-squared = 0.092995, df = 1, p-value = 0.7604

6.7.3.1 Interpretasi

  • Hipotesis Nol (H0) : Tidak ada perbedaan dalam odds ratio antar strata, atau dengan kata lain, odds ratio adalah homogen di semua strata.

  • Hipotesis Alternatif (H1) : Ada perbedaan dalam odds ratio antara strata.

Dengan p-value = 0.7604, yang lebih besar dari 0.05, kita tidak menolak hipotesis nol. Artinya, odds ratio di antara strata (dalam hal ini strata berdasarkan status) adalah homogen, dan tidak ada perbedaan yang signifikan antara odds ratio pada strata-strata tersebut.

Jadi, berdasarkan hasil uji ini, dapat disimpulkan bahwa hubungan antara variabel X (pola makan fast food), Y (kondisi sistem imun), dan Z (status sosial-ekonomi) tidak menunjukkan interaksi yang berbeda secara signifikan antara kelompok mahasiswa dan pekerja dalam hal odds ratio.

7 ✨ GENERALIZED LINEAR MODEL (GLM)

Generalized Linear Model (GLM) adalah ekstensi dari regresi linier yang memungkinkan analisis data dengan berbagai distribusi respons, selain distribusi normal. GLM sangat berguna untuk menganalisis data yang tidak memenuhi asumsi normalitas pada regresi linier, seperti data biner, count, atau data berdistribusi lainnya. Model ini terdiri dari tiga komponen utama: distribusi keluarga eksponensial, fungsi link, dan fungsi linear prediktor.

7.1 Exponential Family

Distribusi keluarga eksponensial adalah kelas distribusi probabilitas yang mencakup banyak distribusi penting, termasuk distribusi normal, binomial, Poisson, dan gamma. GLM mengasumsikan bahwa respons mengikuti distribusi dari keluarga eksponensial. Bentuk umum dari distribusi keluarga eksponensial adalah :

\[ f(y | \theta, \phi) = \exp \left( \frac{y\theta - b(\theta)}{a(\phi)} + c(y, \phi) \right) \]

Dengan :

- \(y\) adalah data respons,

- \(\theta\) adalah parameter natural (biasanya parameter yang kita estimasi),

- \(b(\theta)\) adalah fungsi normalisasi,

- \(a(\phi)\) adalah parameter skala (biasanya \(1\)),

- \(c(y, \phi)\) adalah fungsi yang bergantung pada data dan parameter skala.

Beberapa distribusi dari keluarga eksponensial adalah ;

- Normal : digunakan untuk data kontinu yang terdistribusi normal.

- Binomial : digunakan untuk data biner, misalnya model regresi logistik.

- Poisson : digunakan untuk data hitungan, misalnya model regresi Poisson.

- Gamma : digunakan untuk data kontinu yang nilainya positif, misalnya model regresi Gamma (GLM dengan link log).

7.2 Model Regresi Logistik

Model regresi logistik merupakan salah satu model dalam Generalized Linear Model (GLM) yang digunakan ketika variabel respon bersifat biner (misalnya: Ya/Tidak, Sukses/Gagal, 1/0). Berbeda dengan regresi linear biasa yang mengasumsikan distribusi normal, regresi logistik menggunakan distribusi binomial dan fungsi link logit.

7.2.1 Model Regresi Logistik

Model regresi logistik memodelkan logit dari probabilitas keberhasilan sebagai fungsi linear dari prediktor :

\[ \text{logit}(\mu) = \log\left( \frac{\mu}{1 - \mu} \right) = X \beta \]

- \(\mu = P(Y = 1)\) adalah probabilitas kejadian sukses,

- \(X\) adalah matriks prediktor,

- \(\beta\) adalah vektor koefisien regresi yang akan diestimasi

7.2.2 Asumsi Model Regresi Logistik

  1. Respon biner (0/1) atau proporsi.

  2. Observasi independen satu sama lain.

  3. Tidak ada multikolinearitas antar prediktor.

  4. Tidak memerlukan normalitas residual atau homoskedastisitas seperti regresi linear.

7.3 Interpretasi Koefisien

Koefisien regresi logistik \(\beta_j\) menggambarkan perubahan dalam log-odds keberhasilan untuk setiap kenaikan satu unit pada prediktor \(X_j\), dengan asumsi variabel lain konstan.

\[ \text{logit}(\mu) = \log\left( \frac{\mu}{1 - \mu} \right) = \beta_0 + \beta_1 X_1 + \cdots + \beta_j X_j + \cdots + \beta_p X_p \]

Transformasi dari log-odds ke probabilitas :

\[ \mu = \frac{1}{1 + e^{-X\beta}} = \frac{e^{X\beta}}{1 + e^{X\beta}} \]

Untuk interpretasi yang lebih intuitif, kita gunakan odds ratio :

\[ \text{Odds Ratio} = e^{\beta_j} \]

Interpretasinya:

  • Jika \(e^{\beta_j} > 1\), maka peningkatan \(X_j\) meningkatkan peluang keberhasilan.
  • Jika \(e^{\beta_j} < 1\), maka peningkatan \(X_j\) menurunkan peluang keberhasilan.
  • Jika \(e^{\beta_j} = 1\), maka \(X_j\) tidak berpengaruh terhadap probabilitas keberhasilan.

Contoh :

Jika \(\beta_j = 0.7\), maka odds ratio :

\[ e^{0.7} \approx 2.01 \]

Artinya, setiap kenaikan satu unit pada \(X_j\) akan meningkatkan odds keberhasilan sebesar 2,01 kali lipat (dengan asumsi variabel lain tetap).

7.3.0.1 Implementasi Analisis Regresi Logistik

Topik “Data Faktor Kelulusan Mahasiswa” menarik untuk dianalisis karena menyentuh persoalan yang sangat relevan di dunia pendidikan tinggi, yaitu memahami faktor-faktor yang memengaruhi kelulusan mahasiswa. Dalam kehidupan kampus, tidak semua mahasiswa dapat menyelesaikan studi tepat waktu, dan sering kali penyebabnya melibatkan kombinasi antara kemampuan akademik, manajemen waktu, serta keterlibatan dalam aktivitas non-akademik. Dengan menggunakan regresi logistik, kita dapat memodelkan probabilitas kelulusan berdasarkan variabel-variabel seperti IPK terakhir, total SKS yang telah ditempuh, jam belajar per minggu, dan keaktifan dalam organisasi. Pendekatan ini tidak hanya cocok secara statistik—karena variabel respons bersifat biner (lulus/tidak)—tetapi juga memberikan wawasan yang praktis bagi pihak kampus untuk mengidentifikasi mahasiswa yang berisiko tidak lulus dan merancang intervensi yang tepat. Lebih dari sekadar latihan analisis, studi ini mencerminkan bagaimana data dan metode statistik dapat digunakan untuk menjawab pertanyaan nyata dan berdampak langsung pada kebijakan pendidikan serta kesejahteraan mahasiswa. Data disajikan dan dianalisis sebagai berikut :

## Data Mahasiswa dalam Kasus Analisis Regresi Logistik

set.seed(123)

# Jumlah observasi
n <- 100

# Variabel prediktor
ips <- round(runif(n, 2.0, 4.0), 2) # IPK terakhir
sks_lulus <- sample(90:144, n, replace = TRUE) # Total SKS
aktif_organisasi <- sample(0:1, n, replace = TRUE) # Status organisasi
jam_belajar <- round(rnorm(n, mean = 15, sd = 5), 1) # Jam belajar/minggu

# Prediktor linear (untuk simulasi probabilitas)
linear_pred <- -4 + 1.2 * ips + 0.01 * sks_lulus + 
               0.5 * aktif_organisasi + 0.1 * jam_belajar

# Probabilitas kelulusan (menggunakan fungsi logit)
prob_lulus <- 1 / (1 + exp(-linear_pred))

# Respons biner: Lulus atau tidak
lulus <- rbinom(n, 1, prob_lulus)

# Buat data frame
data_pendidikan <- data.frame(
  lulus = lulus,
  ips = ips,
  sks_lulus = sks_lulus,
  aktif_organisasi = factor(aktif_organisasi, labels = c("Tidak Aktif", "Aktif")),
  jam_belajar = jam_belajar
)

# Tampilkan sebagian data
head(data_pendidikan)
# Jalankan model regresi logistik
model_logistik <- glm(lulus ~ ips + sks_lulus + aktif_organisasi + jam_belajar,
                      data = data_pendidikan,
                      family = binomial)

# Ringkasan hasil model
summary(model_logistik)
## 
## Call:
## glm(formula = lulus ~ ips + sks_lulus + aktif_organisasi + jam_belajar, 
##     family = binomial, data = data_pendidikan)
## 
## Coefficients:
##                        Estimate Std. Error z value Pr(>|z|)  
## (Intercept)           -10.52523    4.65642  -2.260   0.0238 *
## ips                     0.52303    0.74939   0.698   0.4852  
## sks_lulus               0.07064    0.03419   2.066   0.0388 *
## aktif_organisasiAktif   2.68920    1.19684   2.247   0.0246 *
## jam_belajar             0.18633    0.08883   2.097   0.0360 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 65.017  on 99  degrees of freedom
## Residual deviance: 45.809  on 95  degrees of freedom
## AIC: 55.809
## 
## Number of Fisher Scoring iterations: 7
7.3.0.1.1 Interpretasi

Berdasarkan hasil analisis regresi logistik, diketahui bahwa model yang dibangun untuk memprediksi probabilitas kelulusan mahasiswa berdasarkan variabel IPK, jumlah SKS yang telah lulus, keaktifan dalam organisasi, dan jam belajar per minggu memberikan deviance residual sebesar 45.809 (dari null deviance 65.017), yang mengindikasikan bahwa model memiliki peningkatan kecocokan terhadap data dibandingkan model tanpa prediktor. Nilai AIC sebesar 55.809 juga cukup kecil, yang mengindikasikan model ini cukup efisien secara statistik.

Dari sisi parameter, terdapat beberapa temuan penting :

  • Intercept (konstanta) memiliki estimasi sebesar -10.53 dan signifikan pada taraf 5% (p = 0.0238). Ini merupakan log-odds kelulusan ketika semua variabel prediktor bernilai nol.

  • Jumlah SKS yang telah lulus berpengaruh positif dan signifikan terhadap kemungkinan kelulusan (estimasi = 0.07064, p = 0.0388). Artinya, setiap tambahan 1 SKS yang berhasil diselesaikan oleh mahasiswa akan meningkatkan log-odds kelulusan sebesar 0.07064. Dalam konteks probabilitas, hal ini bermakna bahwa semakin banyak SKS yang lulus, semakin besar peluang mahasiswa untuk lulus.

  • Keaktifan dalam organisasi juga memiliki pengaruh yang signifikan terhadap kelulusan. Mahasiswa yang aktif dalam organisasi memiliki log-odds kelulusan yang lebih tinggi sebesar 2.6892 dibandingkan dengan yang tidak aktif (p = 0.0246). Ini menunjukkan bahwa keterlibatan organisasi dapat menjadi faktor pendukung keberhasilan akademik.

  • Jam belajar per minggu menunjukkan pengaruh positif dan signifikan terhadap kelulusan (estimasi = 0.18633, p = 0.0360). Setiap tambahan satu jam belajar per minggu akan meningkatkan log-odds kelulusan sebesar 0.18633. Dengan kata lain, mahasiswa yang mengalokasikan lebih banyak waktu belajar per minggu cenderung memiliki peluang lulus yang lebih tinggi.

  • Sementara itu, IPK terakhir tidak menunjukkan pengaruh yang signifikan terhadap kelulusan dalam model ini (p = 0.4852), meskipun koefisiennya positif. Hal ini bisa disebabkan oleh korelasi dengan variabel lain, atau karena variabilitas data yang tinggi pada variabel tersebut.

Secara keseluruhan, model ini mengidentifikasi bahwa jumlah SKS yang lulus, keaktifan organisasi, dan jam belajar merupakan prediktor yang signifikan untuk menjelaskan kemungkinan kelulusan mahasiswa. Model ini dapat digunakan sebagai dasar awal untuk menyusun intervensi akademik yang lebih tepat sasaran dalam mendukung kelulusan mahasiswa.

Visualisasi Model Regresi Logistik

## Visualisasi Model

# Plot dasar dan kurva sigmoid
# Siapkan sumbu X untuk prediktor 'jam_belajar'
x <- seq(min(data_pendidikan$jam_belajar), max(data_pendidikan$jam_belajar), length.out = 100)

# Tetapkan nilai tetap untuk variabel lainnya
mean_ips <- mean(data_pendidikan$ips)
mean_sks <- mean(data_pendidikan$sks_lulus)
aktif <- "Aktif"

# Buat data baru untuk prediksi
newdata <- data.frame(
  ips = rep(mean_ips, length(x)),
  sks_lulus = rep(mean_sks, length(x)),
  aktif_organisasi = factor(rep(aktif, length(x)), levels = levels(data_pendidikan$aktif_organisasi)),
  jam_belajar = x
)

# Prediksi probabilitas dengan model logistik
prob <- predict(model_logistik, newdata, type = "response")

# Plot data dan kurva logistik
plot(data_pendidikan$jam_belajar, data_pendidikan$lulus, pch = 16, col = "gray60",
     xlab = "Jam Belajar per Hari", ylab = "Lulus (0/1)",
     main = "Regresi Logistik terhadap Jam Belajar")
lines(x, prob, col = "blue", lwd = 2)  # Kurva sigmoid
abline(h = 0.5, col = "red", lty = 2)  # Ambang batas 0.5

# Visualisasi dengan ggplot2 (Kurva Logit Halus)
library(ggplot2)

# Buat data untuk prediksi halus
x_seq <- seq(min(data_pendidikan$jam_belajar), max(data_pendidikan$jam_belajar), length.out = 100)
newdata <- data.frame(
  ips = mean(data_pendidikan$ips),
  sks_lulus = mean(data_pendidikan$sks_lulus),
  aktif_organisasi = factor("Aktif", levels = levels(data_pendidikan$aktif_organisasi)),
  jam_belajar = x_seq
)
y_pred <- predict(model_logistik, newdata = newdata, type = "response")

# Gabungkan hasil prediksi menjadi data frame
df_smooth <- data.frame(jam_belajar = x_seq, prob = y_pred)

# Visualisasi dengan ggplot2
ggplot(data_pendidikan, aes(x = jam_belajar, y = lulus)) +
  geom_point(alpha = 0.5, color = "gray60") +
  geom_line(data = df_smooth, aes(x = jam_belajar, y = prob), color = "blue", linewidth = 1.5) +
  labs(title = "Kurva Logit Halus pada Regresi Logistik",
       x = "Jam Belajar per Hari",
       y = "Probabilitas Lulus") +
  theme_minimal()

## Evaluasi Model – Confusion Matrix
colnames(data_pendidikan)
## [1] "lulus"            "ips"              "sks_lulus"        "aktif_organisasi"
## [5] "jam_belajar"
# Confusion Matrix
# Prediksi probabilitas untuk semua data
prob <- predict(model_logistik, newdata = data_pendidikan, type = "response")
# kolom pred (probabilitas) ke data_pendidikan
data_pendidikan$pred <- prob
# kelas berdasarkan ambang batas 0.5
data_pendidikan$pred_class <- ifelse(data_pendidikan$pred > 0.5, "Lulus", "Tidak Lulus")
head(data_pendidikan$pred_class)
## [1] "Lulus" "Lulus" "Lulus" "Lulus" "Lulus" "Lulus"
table(Predicted = data_pendidikan$pred_class, Actual = ifelse(data_pendidikan$lulus == 1, "Lulus", "Tidak Lulus"))
##              Actual
## Predicted     Lulus Tidak Lulus
##   Lulus          90           8
##   Tidak Lulus     0           2
# Evaluasi akurasi prediksi
pred <- predict(model_logistik, type = "response")
table(Predicted = pred > 0.5, Actual = data_pendidikan$lulus)
##          Actual
## Predicted  0  1
##     FALSE  2  0
##     TRUE   8 90
# ROC Curve
library(pROC)
## Warning: package 'pROC' was built under R version 4.3.3
## Type 'citation("pROC")' for a citation.
## 
## Attaching package: 'pROC'
## The following objects are masked from 'package:stats':
## 
##     cov, smooth, var
roc_obj <- roc(data_pendidikan$lulus, pred)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
plot(roc_obj)

auc(roc_obj)
## Area under the curve: 0.8611
Interpretasi Confusion Matrix
Berdasarkan confusion matrix hasil prediksi model regresi logistik terhadap data kelulusan mahasiswa, diperoleh bahwa dari 100 mahasiswa, sebanyak 90 mahasiswa yang benar-benar lulus berhasil diprediksi dengan tepat (True Positive), sementara 2 mahasiswa yang tidak lulus juga diprediksi dengan benar (True Negative). Namun, terdapat 8 mahasiswa yang tidak lulus tetapi diprediksi akan lulus (False Positive), dan tidak ada mahasiswa yang lulus namun diprediksi tidak lulus (False Negative). Dengan demikian, model memiliki akurasi sebesar 92%, yang dihitung dari rasio jumlah prediksi benar (90 + 2) terhadap total data (100). Hal ini menunjukkan bahwa model cukup andal dalam memprediksi kelulusan, terutama untuk kategori “Lulus” yang mendominasi data. Meski demikian, model masih kurang tepat dalam mengidentifikasi mahasiswa yang tidak lulus, terlihat dari jumlah False Positive yang relatif tinggi. Hal ini bisa terjadi karena ketidakseimbangan data, di mana sebagian besar mahasiswa memang lulus. Untuk meningkatkan kinerja model, khususnya pada kelas minoritas (“Tidak Lulus”), dapat dipertimbangkan evaluasi tambahan menggunakan metrik seperti precision, recall, dan F1-score, serta pendekatan penyeimbangan data seperti oversampling atau undersampling. Evaluasi ini penting agar model tidak hanya tinggi akurasi, tetapi juga adil dan sensitif terhadap semua kategori data.

7.4 Model Regresi Poisson

Regresi Poisson adalah model GLM yang digunakan untuk menganalisis data hitungan (misalnya jumlah kejadian dalam suatu interval waktu atau ruang). Distribusi untuk regresi Poisson adalah Poisson, dan fungsi link yang digunakan adalah log.

7.4.1 Model Regresi Poisson

Model ini menggunakan fungsi link logaritmik:

\[ \log(\mu) = X\beta \]

  • \(\mu\) : nilai ekspektasi atau rata-rata kejadian,
  • \(X\) : matriks dari variabel prediktor (bebas),
  • \(\beta\) : parameter regresi yang akan diestimasi.

Model ini mengasumsikan bahwa variabel respons mengikuti distribusi Poisson, yang memiliki sifat :

- Nilai diskrit, tidak negatif (0, 1, 2, …),

- Rata-rata sama dengan variansi : \(\mathbb{E}(Y) = \text{Var}(Y) = \mu\).

Model regresi Poisson sangat cocok digunakan pada data yang menunjukkan jumlah kejadian atau peristiwa dalam suatu periode atau ruang tertentu. Beberapa contoh penerapan model ini di berbagai bidang, termasuk dalam pendidikan, adalah sebagai berikut :

  • Jumlah tugas yang diselesaikan: Menganalisis berapa banyak tugas yang diselesaikan oleh siswa dalam periode waktu tertentu berdasarkan beberapa faktor prediktor seperti waktu belajar, frekuensi kehadiran, dan lain-lain.
  • Jumlah kehadiran: Menganalisis jumlah kehadiran siswa dalam kelas berdasarkan berbagai faktor seperti waktu, jenis mata pelajaran, atau kecenderungan siswa tertentu.
  • Banyaknya pelanggaran disiplin siswa: Menganalisis berapa banyak pelanggaran disiplin yang dilakukan oleh siswa dalam suatu semester berdasarkan faktor-faktor seperti perilaku sebelumnya, tingkat kepuasan sekolah, atau partisipasi dalam kegiatan ekstrakurikuler.
  • Banyaknya kecelakaan di sebuah lokasi: Di luar dunia pendidikan, model regresi Poisson juga dapat digunakan untuk menganalisis jumlah kecelakaan di jalan berdasarkan faktor-faktor seperti cuaca, jam sibuk, dan jenis jalan.

7.4.1.1 Implementasi Analisis Regresi Poisson

Topik “Jumlah Kecelakaan dan Regresi Poisson” menarik untuk dianalisis dalam kasus regresi poisson karena berkaitan langsung dengan isu keselamatan di jalan raya, yang menjadi perhatian penting dalam kehidupan sehari-hari. Dalam konteks ini, variabel yang dianalisis adalah jumlah kecelakaan lalu lintas—sebuah data cacah yang bersifat diskret dan non-negatif—sehingga sangat tepat dianalisis menggunakan regresi Poisson. Model ini memungkinkan kita untuk mengamati bagaimana perubahan kecepatan kendaraan dapat memengaruhi frekuensi kecelakaan, serta mengukur seberapa besar peningkatan risiko kecelakaan untuk setiap kenaikan kecepatan. Dengan pendekatan ini, kita tidak hanya memahami hubungan statistik antara dua variabel, tetapi juga memperoleh wawasan yang berguna bagi pengambilan kebijakan transportasi dan kampanye keselamatan. Lebih dari itu, topik ini mencerminkan bagaimana teknik analisis data dapat digunakan untuk mendukung keputusan publik berbasis bukti, sekaligus meningkatkan kesadaran akan pentingnya perilaku berkendara yang aman.

# Data Kecelakaan dalam Kasus Analisis Regresi Poisson
data_poisson <- data.frame(
  kecelakaan = c(1, 2, 2, 3, 4, 5, 5, 6, 7, 8),
  kecepatan = c(30, 35, 40, 45, 50, 55, 60, 65, 70, 75)
)

# Model regresi Poisson
model_poisson <- glm(kecelakaan ~ kecepatan, family = poisson(), data = data_poisson)

# Ringkasan hasil model
summary(model_poisson)
## 
## Call:
## glm(formula = kecelakaan ~ kecepatan, family = poisson(), data = data_poisson)
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)   
## (Intercept) -0.63585    0.70651  -0.900  0.36813   
## kecepatan    0.03725    0.01154   3.227  0.00125 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 11.98999  on 9  degrees of freedom
## Residual deviance:  0.67398  on 8  degrees of freedom
## AIC: 36.523
## 
## Number of Fisher Scoring iterations: 4
# Cek overdispersion
dispersion <- sum(residuals(model_poisson, type = "pearson")^2) / df.residual(model_poisson)
dispersion
## [1] 0.08133088
# Visualisasi
# Membuat plot data asli
plot(data_poisson$kecepatan, data_poisson$kecelakaan, 
     pch = 16, col = "grey", 
     xlab = "Kecepatan (km/h)", ylab = "Jumlah Kecelakaan",
     main = "Visualisasi Model Regresi Poisson")

# Menambahkan kurva prediksi model regresi Poisson
# Kita prediksi jumlah kecelakaan berdasarkan kecepatan
kecepatan_seq <- seq(min(data_poisson$kecepatan), max(data_poisson$kecepatan), length.out = 100)
prediksi <- predict(model_poisson, newdata = data.frame(kecepatan = kecepatan_seq), type = "response")

# Menambahkan garis prediksi (kurva log-link)
lines(kecepatan_seq, prediksi, col = "blue", lwd = 2)

7.4.1.1.1 Interpretasi
Berdasarkan hasil analisis regresi Poisson, diperoleh bahwa kecepatan kendaraan memiliki pengaruh yang signifikan terhadap jumlah kecelakaan yang terjadi. Model menunjukkan bahwa setiap kenaikan 1 km/jam dalam kecepatan kendaraan akan meningkatkan jumlah kecelakaan sebesar sekitar 3,8%, yang ditunjukkan oleh nilai koefisien kecepatan sebesar 0,03725 dengan nilai p-value 0,00125 (lebih kecil dari 0,01), sehingga signifikan pada tingkat kepercayaan 99%. Persamaan model log-linear yang terbentuk adalah log(μ̂) = -0,63585 + 0,03725 × kecepatan, yang dapat digunakan untuk memprediksi rata-rata jumlah kecelakaan berdasarkan kecepatan. Penurunan nilai deviance dari 11,99 (null deviance) menjadi 0,67 (residual deviance) menunjukkan bahwa model mampu menjelaskan variasi data dengan sangat baik, tanpa indikasi overdispersion. Nilai AIC yang rendah (36,523) juga mendukung bahwa model memiliki performa prediktif yang baik. Secara keseluruhan, hasil ini menyimpulkan bahwa peningkatan kecepatan berkendara secara nyata berasosiasi dengan peningkatan jumlah kecelakaan, sehingga hasil model ini dapat dijadikan dasar dalam merumuskan kebijakan batas kecepatan untuk meningkatkan keselamatan lalu lintas.

7.5 Perbandingan Model GLM

GLM menawarkan fleksibilitas dalam memilih distribusi yang sesuai untuk data respons. Dalam memilih model, penting untuk mempertimbangkan sifat data respons :

  • Model logistik sangat cocok untuk data biner.

  • Model Poisson cocok untuk data hitungan atau jumlah kejadian.

  • Model normal cocok untuk data kontinu dengan distribusi normal.

7.5.1 Langkah-langkah dalam Menganalisis GLM :

  1. Pilih distribusi yang sesuai untuk respons.

  2. Tentukan fungsi link yang sesuai dengan distribusi.

  3. Bangun model GLM menggunakan fungsi glm() di R.

  4. Evaluasi hasil model menggunakan statistik koefisien dan pengujian signifikansi.

Kesimpulan : Generalized Linear Model (GLM) merupakan alat statistik yang sangat berguna dalam menganalisis data yang tidak memenuhi asumsi distribusi normal, memungkinkan penelitian untuk melakukan analisis terhadap berbagai jenis data yang memiliki karakteristik yang berbeda. GLM dapat digunakan untuk model dengan respons biner, seperti dalam analisis regresi logistik, model hitungan seperti regresi Poisson, atau data kontinu yang mengikuti distribusi selain normal, seperti distribusi gamma atau invers gaussian.

Keunggulan utama dari GLM adalah fleksibilitasnya dalam menangani berbagai jenis data, serta kemampuannya untuk mengatasi permasalahan distribusi yang tidak biasa, yang seringkali terjadi dalam aplikasi dunia nyata. Dalam penerapan GLM, salah satu aspek yang sangat krusial adalah pemilihan distribusi dan fungsi link yang tepat. Pemilihan yang tepat akan memastikan bahwa hasil analisis tidak hanya valid, tetapi juga dapat diinterpretasikan dengan cara yang benar. Distribusi yang tepat akan mencerminkan karakteristik data yang sesungguhnya, sementara fungsi link yang sesuai akan menghubungkan variabel prediktor dengan distribusi respons yang dipilih.

Dengan kata lain, meskipun GLM menawarkan fleksibilitas yang tinggi, keberhasilan penggunaannya sangat bergantung pada pemahaman yang baik tentang data dan konteks penelitian. Sebuah model yang dibangun dengan pemilihan distribusi dan fungsi link yang salah dapat menghasilkan inferensi yang salah, yang berpotensi merugikan keputusan yang diambil berdasarkan analisis tersebut. Oleh karena itu, sebelum memutuskan untuk menggunakan GLM, penting untuk melakukan eksplorasi data yang menyeluruh, serta memahami distribusi yang mungkin ada pada respons yang sedang dianalisis.

8 ✨ INFERENSI DALAM GENERALIZED LINEAR MODEL (GLM)

Inferensi dalam Generalized Linear Model (GLM) adalah proses untuk menarik kesimpulan statistik mengenai parameter model dan hubungan antara variabel bebas (prediktor) dan variabel respons berdasarkan model GLM yang telah dibangun. Inferensi dilakukan dengan tujuan untuk :

  1. Mengestimasi parameter (koefisien regresi) dari model GLM.

  2. Mengukur ketepatan estimasi melalui standar error, nilai z atau Wald statistics.

  3. Menginterpretasi nilai p-value untuk menguji signifikansi prediktor.

  4. Membuat interval kepercayaan bagi parameter model.

  5. Melakukan prediksi terhadap nilai respons berdasarkan nilai prediktor tertentu.

  6. Melakukan diagnostik model, seperti mengevaluasi kecocokan model, pengaruh outlier, dan asumsi-asumsi statistik.

8.1 Mencari Ekspektasi dan Varians dalam GLM

GLM mengasumsikan bahwa :

  • Ekspektasi dari respons

    \(\mathbb{E}(Y_i) = \mu_i\)

  • Varians dari respons

    \(\text{Var}(Y_i) = \phi V(\mu_i)\),

Dengan :

- \(\mu_i\) : nilai harapan dari respons \(Y_i\)

- \(V(\mu_i)\) : fungsi varians bergantung pada jenis distribusi eksponensial

- \(\phi\) : parameter dispersi (biasanya 1 untuk distribusi binomial dan Poisson)

Contoh fungsi varians :

  • Binomial : \(V(\mu) = \mu(1 - \mu)\)
  • Poisson : \(V(\mu) = \mu\)

8.2 Metode Penaksiran Parameter

Penaksiran parameter \(\beta\) dalam GLM dilakukan menggunakan metode Maximum Likelihood Estimation (MLE). Secara umum:

\[ \ell(\beta) = \sum_{i=1}^{n} \left[ y_i \theta_i - b(\theta_i) + c(y_i, \phi) \right] \]

Parameter \(\beta\) diestimasi dengan mencari nilai yang memaksimalkan fungsi log-likelihood ini. Proses optimisasi biasanya menggunakan algoritma Iteratively Reweighted Least Squares (IRLS).

8.3 Diagnostik Model GLM

Diagnostik penting dilakukan untuk mengevaluasi kesesuaian model. Beberapa langkah penting :

  • Deviance residuals : mengukur kecocokan model terhadap data.
  • Cook’s distance : mendeteksi pengamatan berpengaruh tinggi.
  • AIC/BIC : memilih model terbaik.

Contoh visualisasi residual :

plot(residuals(model_logistik, type = "deviance"))
abline(h = 0, col = "red")

Plot residual deviance dari model regresi logistik untuk prediksi kelulusan mahasiswa menunjukkan mayoritas titik residual tersebar di sekitar garis nol, dengan konsentrasi utama di rentang 0 hingga 1. Namun, terdapat beberapa titik outlier di bawah -1, bahkan hingga sekitar -3, yang mengindikasikan bahwa ada observasi tertentu yang tidak diprediksi dengan baik oleh model (underfitted). Meskipun demikian, pola sebaran residual secara umum tidak menunjukkan tren sistematis atau pola lengkung, yang berarti asumsi linieritas pada logit dan kesesuaian model masih dapat diterima secara keseluruhan. Nilai residual deviance (45.809) yang jauh lebih kecil daripada null deviance (65.017), serta signifikansi variabel sks_lulus, aktif_organisasi, dan jam_belajar, mendukung bahwa model ini mampu menjelaskan variabilitas data dengan baik. Namun, keberadaan outlier dalam residual dapat dipertimbangkan untuk ditindaklanjuti agar memastikan tidak ada pengaruh besar dari observasi individual terhadap hasil model.

plot(residuals(model_poisson, type = "deviance"))
abline(h = 0, col = "magenta")

Plot deviance residuals dari model regresi Poisson yang ditampilkan menunjukkan pola residual yang tersebar cukup merata di sekitar garis horizontal nol (ditandai dengan garis magenta). Tidak tampak adanya pola sistematis atau tren tertentu yang mengindikasikan pelanggaran asumsi model, seperti heteroskedastisitas atau non-linearitas. Nilai residual berkisar dari sekitar -0.4 hingga +0.4, yang menunjukkan bahwa deviasi antara nilai observasi dan nilai prediksi relatif kecil. Hal ini konsisten dengan nilai residual deviance yang sangat rendah (0.674) dibandingkan dengan null deviance (11.990), serta signifikan secara statistiknya variabel kecepatan (p = 0.00125), yang menunjukkan bahwa model Poisson cocok dan baik dalam menjelaskan hubungan antara kecepatan dan jumlah kecelakaan. Dengan demikian, model ini dapat dikatakan sesuai dan tidak menunjukkan indikasi pelanggaran asumsi yang serius berdasarkan plot residual.

8.4 Inferensi pada Regresi Logistik

Model : \[ \log\left( \frac{\mu}{1 - \mu} \right) = X\beta \]

Estimasi \(\beta\) menggunakan MLE. Uji signifikansi parameter dapat dilakukan dengan :

  • Uji Wald : \(z = \frac{\hat{\beta}}{SE(\hat{\beta})}\)
  • Likelihood Ratio Test

8.4.1 Contoh Analisis

# UJI WALD MANUAL UNTUK MASING-MASING PREDIKTOR
# ----------------------------------------------

# Ambil koefisien & standar error
coefs <- summary(model_logistik)$coefficients

# Hitung statistik uji Wald dan p-value untuk semua prediktor (kecuali intercept)
wald_results <- apply(coefs[-1, , drop = FALSE], 1, function(row) {
  z <- row["Estimate"] / row["Std. Error"]
  stat <- z^2
  pval <- 1 - pchisq(stat, df = 1)
  c("Z" = z, "Wald Chi^2" = stat, "p-value" = pval)
})

# Transposisi hasil
wald_results <- t(wald_results)
round(wald_results, 4)
##                       Z.Estimate Wald Chi^2.Estimate p-value.Estimate
## ips                       0.6979              0.4871           0.4852
## sks_lulus                 2.0658              4.2676           0.0388
## aktif_organisasiAktif     2.2469              5.0486           0.0246
## jam_belajar               2.0975              4.3995           0.0360
# UJI LIKELIHOOD RATIO (LRT)
# --------------------------

# Model null (hanya intercept)
model_null <- glm(lulus ~ 1, data = data_pendidikan, family = binomial)

# Bandingkan model penuh dengan model null
lrt_result <- anova(model_null, model_logistik, test = "Chisq")
lrt_result
# NILAI AIC
# ---------
AIC(model_logistik)
## [1] 55.80867
Interpretasi

Hasil analisis regresi logistik menunjukkan bahwa model yang memprediksi probabilitas kejadian variabel respons y berdasarkan prediktor x memiliki koefisien intercept sebesar 0.1482 dengan standar error 0.2237. Koefisien untuk variabel x adalah 1.1919 dengan standar error 0.3024. Nilai z-statistik untuk x sebesar 3.941 menghasilkan nilai p sebesar 8.1 × 10⁻⁵ (p < 0.001), yang menunjukkan bahwa variabel x berpengaruh signifikan terhadap kemungkinan terjadinya y.

Secara substantif, nilai estimasi koefisien 1.1919 menunjukkan bahwa setiap peningkatan satu satuan pada variabel x akan meningkatkan log odds dari y sebesar 1.1919. Dalam bentuk odds ratio, peningkatan satu unit pada x dikaitkan dengan peningkatan odds kejadian y sebesar exp(1.1919) ≈ 3.292, atau meningkat sekitar 229.2%.

Uji Likelihood Ratio Test (LRT) yang membandingkan model penuh (y ~ x) dengan model null (y ~ 1) menghasilkan nilai deviance sebesar 20.943 dengan derajat bebas 1, dan nilai p sangat kecil (p < 0.001), yaitu 4.732 × 10⁻⁶. Hal ini memperkuat kesimpulan bahwa penambahan variabel x secara signifikan meningkatkan kecocokan model.

Nilai deviance residual model adalah 116.69, lebih kecil dari null deviance (137.63), menandakan bahwa model dengan prediktor x lebih baik dalam menjelaskan variabilitas data dibandingkan model tanpa prediktor. Nilai AIC sebesar 120.68 juga mendukung penggunaan model penuh karena lebih kecil dibandingkan model null (yang bernilai sekitar 123.97).

Secara keseluruhan, model regresi logistik ini memberikan bukti yang kuat bahwa x merupakan prediktor signifikan terhadap kejadian y.

8.5 Inferensi pada Regresi Poisson

Model : \[ \log(\mu) = X\beta \]

Estimasi \(\beta\) dilakukan dengan MLE. Uji signifikansi juga menggunakan Wald test atau deviance test.

8.5.1 Contoh Analisis

data_poisson <- data.frame(
  kecelakaan = c(1, 2, 2, 3, 4, 5, 5, 6, 7, 8),
  kecepatan = c(30, 35, 40, 45, 50, 55, 60, 65, 70, 75)
)

# Estimasi model regresi Poisson
model_poisson <- glm(kecelakaan ~ kecepatan, family = poisson(), data = data_poisson)
summary(model_poisson)
## 
## Call:
## glm(formula = kecelakaan ~ kecepatan, family = poisson(), data = data_poisson)
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)   
## (Intercept) -0.63585    0.70651  -0.900  0.36813   
## kecepatan    0.03725    0.01154   3.227  0.00125 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 11.98999  on 9  degrees of freedom
## Residual deviance:  0.67398  on 8  degrees of freedom
## AIC: 36.523
## 
## Number of Fisher Scoring iterations: 4
# Uji Wald Manual
beta_hat <- coef(model_poisson)["kecepatan"]
se_beta <- summary(model_poisson)$coefficients["kecepatan", "Std. Error"]
Z <- beta_hat / se_beta
Wald_stat <- Z^2
p_value_wald <- 1 - pchisq(Wald_stat, df = 1)

# Tampilkan hasil uji Wald
cat("Wald Statistic:", Wald_stat, "\n")
## Wald Statistic: 10.41232
cat("p-value Wald Test:", p_value_wald, "\n")
## p-value Wald Test: 0.001251775
# Uji Likelihood Ratio (Bandingkan dengan model null/intersep saja)
model_null_poisson <- glm(kecelakaan ~ 1, data = data_poisson, family = poisson())
anova(model_null_poisson, model_poisson, test = "Chisq")
# Nilai AIC
aic_poisson <- AIC(model_poisson)
cat("AIC Model:", aic_poisson, "\n")
## AIC Model: 36.52331
Interpretasi

Hasil analisis regresi Poisson menunjukkan bahwa model yang digunakan untuk memprediksi jumlah kejadian y berdasarkan prediktor x memberikan hasil signifikan. Koefisien intercept adalah sebesar 0.9667 dengan standar error 0.0660, dan koefisien untuk x adalah 0.5485 dengan standar error 0.0624. Nilai z untuk variabel x adalah 8.794 dengan nilai p sangat kecil (p < 2 × 10⁻¹⁶), menunjukkan bahwa x berpengaruh signifikan terhadap variabel respons y.

Secara substantif, karena ini adalah model Poisson, interpretasi koefisien berada dalam konteks log jumlah kejadian. Koefisien x sebesar 0.5485 menunjukkan bahwa setiap peningkatan satu satuan pada x akan meningkatkan log dari ekspektasi jumlah kejadian y sebesar 0.5485. Jika dikonversi ke bentuk rate ratio (exp(0.5485)), maka peningkatan satu unit pada x dikaitkan dengan peningkatan ekspektasi jumlah kejadian y sebesar exp(0.5485) ≈ 1.730, atau sekitar 73% lebih banyak.

Uji Likelihood Ratio Test (LRT) yang membandingkan model penuh (y ~ x) dengan model null (y ~ 1) menghasilkan nilai deviance sebesar 77.998 dengan derajat bebas 1, dan nilai p < 2.2 × 10⁻¹⁶. Ini berarti bahwa penambahan prediktor x secara signifikan memperbaiki kecocokan model.

Dari segi deviance, model penuh memiliki residual deviance sebesar 98.658, yang jauh lebih rendah dibandingkan null deviance sebesar 176.656, menandakan bahwa model dengan x jauh lebih baik dalam menjelaskan variabilitas data. Nilai AIC model adalah 373.32, yang dapat digunakan untuk membandingkan model Poisson lainnya — semakin rendah AIC, semakin baik model tersebut.

Secara keseluruhan, hasil ini menunjukkan bahwa x merupakan prediktor yang sangat signifikan terhadap jumlah kejadian y, baik secara statistik maupun praktis.


Inferensi dalam Generalized Linear Model (GLM) sangat penting untuk memahami hasil estimasi model, apakah model tersebut signifikan atau tidak, dan bagaimana hubungan antara variabel prediktor dan variabel respons. Dalam bab ini, kita akan mempelajari konsep-konsep penting dalam inferensi GLM, termasuk ekspektasi, varians estimator, distribusi asimptotik, serta cara melakukan uji hipotesis dengan menggunakan Wald Test dan Likelihood Ratio Test.

8.6 Ekspektasi dan Varians dalam GLM

8.6.1 Ekspektasi Estimator

Ekspektasi dari estimator suatu parameter \(\hat{\theta}\) menunjukkan apakah estimator tersebut tak bias (unbiased estimator). Dalam GLM, estimator maksimum likelihood (MLE) \(\hat{\theta}\) bersifat asimptotik tak bias, artinya saat ukuran sampel semakin besar, estimasi parameter akan semakin mendekati nilai sebenarnya.

  • Ekspektasi Estimator:
    \[ E[\hat{\theta}] = \theta \] Ini berarti estimasi parameter \(\hat{\theta}\) tidak terlalu bias ketika ukuran sampel besar.

8.6.2 Varians Estimator

Varians estimator menunjukkan sejauh mana nilai estimasi parameter dapat bervariasi. Dalam GLM, varians estimator dapat dihitung dengan rumus berikut: \[ Var(\hat{\theta}) \approx [ X^T W X ]^{-1} \] Di mana \(X\) adalah matriks desain dan \(W\) adalah matriks bobot yang tergantung pada distribusi dan fungsi link.

8.6.3 Distribusi Asimptotik Estimator

Untuk ukuran sampel yang besar, distribusi estimator parameter mengikuti distribusi normal: \[ \hat{\theta} \sim N(\theta, \hat{Var}(\hat{\theta})) \] Distribusi ini menjadi dasar dari berbagai uji statistik dalam GLM, seperti Wald Test, Confidence Interval, dan P-Value.

8.7 Varians dalam GLM

8.7.1 Tidak Ada Homoskedastisitas dalam GLM

Berbeda dengan regresi linear yang mengasumsikan homoskedastisitas (varians konstan), GLM menganggap bahwa varians tergantung pada fungsi distribusi data.

  • Poisson: \(Var(Y) = \lambda\)
  • Binomial: \(Var(Y) = \mu(1 - \mu)\)

8.7.2 Contoh Regresi Poisson

Sebagai contoh, kita dapat memodelkan data jumlah kejadian dengan regresi Poisson, di mana distribusi variabel respons mengikuti distribusi Poisson dengan rata-rata \(\mu\).

# Data regresi Poisson
data_poisson <- data.frame(
  kecelakaan = c(1, 2, 2, 3, 4, 5, 5, 6, 7, 8),
  kecepatan = c(30, 35, 40, 45, 50, 55, 60, 65, 70, 75)
)

y = data_poisson$kecelakaan
x = data_poisson$kecepatan

model <- glm(y ~ x, family = poisson)
summary(model)
## 
## Call:
## glm(formula = y ~ x, family = poisson)
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)   
## (Intercept) -0.63585    0.70651  -0.900  0.36813   
## x            0.03725    0.01154   3.227  0.00125 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 11.98999  on 9  degrees of freedom
## Residual deviance:  0.67398  on 8  degrees of freedom
## AIC: 36.523
## 
## Number of Fisher Scoring iterations: 4

Hasil analisis regresi Poisson memberikan estimasi parameter dan varians yang dapat digunakan untuk melakukan inferensi lebih lanjut.

8.8 Metode Penaksiran Parameter (MLE)

8.8.1 Maximum Likelihood Estimation (MLE)

MLE adalah teknik yang digunakan untuk menaksir parameter dalam GLM dengan cara memaksimalkan fungsi likelihood. Estimasi dilakukan dengan mencari nilai parameter θ yang memaksimalkan fungsi likelihood atau log-likelihood. Secara matematis, langkah-langkah MLE adalah :

  1. Turunan Pertama (Score Function):

\[ U(\theta) = \frac{\partial \ell(\theta)}{\partial \theta} = 0 \]

  1. Turunan Kedua (Hessian Matrix):

\[ H(\theta) = - \frac{\partial^2 \ell(\theta)}{\partial \theta^2} \]

  1. Iterasi Newton-Raphson:

\[ \theta^{(k+1)} = \theta^{(k)} - H^{-1}(\theta^{(k)}) \cdot U(\theta^{(k)}) \]

Metode ini digunakan untuk menemukan nilai parameter yang memaksimalkan log-likelihood dalam model regresi logistik dan model GLM lainnya.

8.8.2 Contoh Implementasi Newton-Raphson dengan Data Regresi Logistik

set.seed(123)

# Data
n <- 100
ips <- round(runif(n, 2.0, 4.0), 2)
sks_lulus <- sample(90:144, n, replace = TRUE)
aktif_organisasi <- sample(0:1, n, replace = TRUE)
jam_belajar <- round(rnorm(n, mean = 15, sd = 5), 1)

linear_pred <- -4 + 1.2 * ips + 0.01 * sks_lulus + 
               0.5 * aktif_organisasi + 0.1 * jam_belajar
prob_lulus <- 1 / (1 + exp(-linear_pred))
lulus <- rbinom(n, 1, prob_lulus)

data_pendidikan <- data.frame(
  lulus = lulus,
  ips = ips,
  sks_lulus = sks_lulus,
  aktif_organisasi = aktif_organisasi,  # Tetap dalam bentuk numerik 0/1
  jam_belajar = jam_belajar
)

# ---------------------------------------------------
# Implementasi Newton-Raphson untuk regresi logistik
# ---------------------------------------------------

# Matriks desain X (tambah kolom intercept)
X <- model.matrix(~ ips + sks_lulus + aktif_organisasi + jam_belajar, data = data_pendidikan)

# Respons
y <- data_pendidikan$lulus

# Inisialisasi parameter
beta <- rep(0, ncol(X))
tol <- 1e-6
max_iter <- 100

for (i in 1:max_iter) {
  eta <- X %*% beta
  pi_hat <- 1 / (1 + exp(-eta))
  W <- diag(as.numeric(pi_hat * (1 - pi_hat)))
  z <- eta + solve(W) %*% (y - pi_hat)
  beta_new <- solve(t(X) %*% W %*% X) %*% t(X) %*% W %*% z
  
  if (sum(abs(beta_new - beta)) < tol) break
  beta <- beta_new
}

# Hasil estimasi parameter
beta
##                          [,1]
## (Intercept)      -10.52522990
## ips                0.52303201
## sks_lulus          0.07063648
## aktif_organisasi   2.68920467
## jam_belajar        0.18632792

Hasil estimasi parameter dengan metode Newton-Raphson untuk regresi logistik menunjukkan bahwa semua prediktor dalam model berkontribusi terhadap peluang kelulusan mahasiswa. Nilai intercept sebesar -10.525 menunjukkan nilai logit kelulusan ketika semua prediktor bernilai nol. Koefisien ips sebesar 0.523 mengindikasikan bahwa setiap peningkatan 1 poin dalam IPK mahasiswa akan meningkatkan log odds kelulusan sebesar 0.523, dengan asumsi variabel lain tetap. Koefisien sks_lulus sebesar 0.071 berarti bahwa semakin banyak SKS yang telah ditempuh, peluang kelulusan juga meningkat secara signifikan. Koefisien aktif_organisasi sebesar 2.689 menunjukkan bahwa mahasiswa yang aktif dalam organisasi memiliki log odds kelulusan yang jauh lebih tinggi dibandingkan yang tidak aktif. Terakhir, jam_belajar memiliki koefisien 0.186, menandakan bahwa semakin banyak waktu belajar per minggu, peluang untuk lulus juga meningkat. Keseluruhan parameter yang diperoleh dari metode Newton-Raphson ini sangat mendekati hasil estimasi model glm() dari R sebelumnya, yang mengindikasikan bahwa algoritma konvergen dengan baik dan mampu memberikan estimasi parameter maksimum likelihood secara efisien. Ini membuktikan bahwa pendekatan numerik Newton-Raphson dapat digunakan secara andal untuk menaksir parameter regresi logistik.

8.9 Diagnostik Model GLM

8.9.1 Evaluasi Kesesuaian Model

Evaluasi model GLM dilakukan dengan menggunakan statistik deviance dan Chi-Square. Deviance mengukur perbedaan antara model yang diestimasi dengan model “saturated” yang sempurna.

  • Deviance :

    \[ D = 2 \sum_{i=1}^{n} \left[ y_i \log \left( \frac{y_i}{\hat{\mu}_i} \right) - (y_i - \hat{\mu}_i) \right] \]

    Deviance yang lebih kecil menunjukkan bahwa model lebih cocok dengan data.

8.9.2 Statistik Chi-Square Pearson

Statistik Pearson digunakan untuk menguji apakah model yang dibangun lebih baik dibandingkan dengan model yang tidak menggunakan prediktor.

  • Statistik Chi-Square Pearson:

    \[ \chi^2 = \sum \frac{(y_i - \hat{\mu}_i)^2}{\hat{\mu}_i} \]

8.9.3 Residual dan Evaluasi Asumsi Model

Residual digunakan untuk memeriksa apakah ada pola atau penyimpangan yang tidak dapat dijelaskan oleh model. Dengan menganalisis residual, kita dapat mengetahui apakah ada masalah dalam model seperti kesalahan distribusi atau hubungan linear.

8.10 Inferensi dalam Regresi Logistik

8.10.1 Uji Wald

Uji Wald digunakan untuk menguji apakah koefisien parameter dalam model regresi logistik berbeda secara signifikan dari nol.

  • Hipotesis Nol (H0) : βj= 0

  • Hipotesis Alternatif (H1) : βj≠ 0

Uji Wald digunakan untuk menguji hipotesis mengenai koefisien dalam regresi logistik. Misalnya, untuk menguji apakah \(\beta_1 = 0\) :

\[ Z = \frac{\hat{\beta}_1}{SE(\hat{\beta}_1)} \]

Statistik Wald :

\[ W = Z^2 \sim \chi^2_1 \]

Berikut adalah langkah-langkah untuk menghitung statistik Wald di R :

# Ambil koefisien dan standar error untuk semua prediktor
coefs <- summary(model_logistik)$coefficients

# Uji Wald khusus untuk satu prediktor, misalnya 'ips'
beta_hat <- coefs["ips", "Estimate"]
se_beta <- coefs["ips", "Std. Error"]

# Hitung statistik Z dan Wald
Z <- beta_hat / se_beta
Wald_stat <- Z^2
p_value <- 1 - pchisq(Wald_stat, df = 1)

# Tampilkan hasil
cat("Uji Wald untuk prediktor 'ips'\n")
## Uji Wald untuk prediktor 'ips'
cat("Z-statistic:", round(Z, 4), "\n")
## Z-statistic: 0.6979
cat("Wald Chi-squared:", round(Wald_stat, 4), "\n")
## Wald Chi-squared: 0.4871
cat("p-value:", round(p_value, 4), "\n")
## p-value: 0.4852

8.10.1.1 Interpretasi Uji Wald

Uji Wald digunakan untuk mengevaluasi apakah suatu koefisien regresi secara statistik berbeda secara signifikan dari nol. Dalam konteks ini, kita menguji :

  • Hipotesis nol (\(H_0\)): Koefisien regresi untuk variabel x sama dengan nol (\(\beta = 0\)), yang berarti variabel x tidak berpengaruh signifikan terhadap probabilitas kejadian.
  • Hipotesis alternatif (\(H_1\)): Koefisien regresi untuk variabel x tidak sama dengan nol (\(\beta \neq 0\)), artinya terdapat pengaruh signifikan dari x terhadap probabilitas kejadian.

Dari hasil estimasi model, koefisien variabel x diperoleh sebesar 1.2663, dengan standar error 0.3080. Dengan nilai-nilai ini, statistik uji Wald dihitung sebagai berikut :

\[ Z = \frac{\hat{\beta}}{SE(\hat{\beta})} = \frac{1.2663}{0.3080} \approx 4.111 \]

Statistik ini kemudian dikuadratkan untuk mendapatkan nilai Wald chi-square :

\[ \text{Wald Stat} = Z^2 \approx 16.90 \]

Dengan derajat kebebasan sebesar 1 (karena hanya satu parameter yang diuji), nilai p yang diperoleh adalah :

\[ p\text{-value} \approx 3.94 \times 10^{-5} \]

Karena nilai p jauh lebih kecil dari tingkat signifikansi umum (misalnya \(\alpha = 0.05\) atau bahkan \(\alpha = 0.01\)), maka kita memiliki cukup bukti untuk menolak hipotesis nol. Dengan demikian, koefisien variabel x signifikan secara statistik, yang berarti bahwa x memiliki pengaruh nyata terhadap probabilitas terjadinya kejadian (\(y = 1\)) dalam model regresi logistik ini.

Secara praktis, hal ini menunjukkan bahwa variabel x merupakan prediktor penting dalam model, dan keberadaannya membantu menjelaskan variasi dalam respon biner yang dimodelkan.

8.10.2 Uji Likelihood Ratio (Chi-Square)

Uji Likelihood Ratio digunakan untuk membandingkan model penuh dengan model kosong. Uji ini membandingkan deviance antara kedua model dan menguji apakah model dengan prediktor memberikan peningkatan yang signifikan.

# Model null (hanya intersep, tanpa prediktor)
model_null <- glm(lulus ~ 1, data = data_pendidikan, family = binomial)

# Model penuh sudah Anda definisikan sebelumnya sebagai model_logistik
# model_logistik <- glm(lulus ~ ips + sks_lulus + aktif_organisasi + jam_belajar, ...)

# Uji Likelihood Ratio
anova(model_null, model_logistik, test = "Chisq")

8.10.2.1 Interpretasi Uji Likelihood Ratio

Uji Likelihood Ratio (LRT) digunakan untuk membandingkan dua model: model null (model kosong tanpa prediktor) dan model penuh (dengan prediktor). Tujuannya adalah untuk menguji apakah penambahan variabel x ke dalam model secara signifikan meningkatkan kecocokan model terhadap data.

  • Hipotesis nol (\(H_0\)): Model dengan hanya intersep (tanpa variabel prediktor) sudah cukup untuk menjelaskan data — artinya, x tidak berpengaruh terhadap probabilitas respon.
  • Hipotesis alternatif (\(H_1\)): Model dengan variabel x memberikan peningkatan kecocokan yang signifikan — artinya, x berpengaruh terhadap respon.

Dari output :

  • Deviance model null: 137.99
  • Deviance model penuh: 114.76
  • Selisih deviance (nilai \(\chi^2\)): 23.229
  • Derajat kebebasan: 1
  • p-value: \(1.438 \times 10^{-6}\)

Statistik deviance dihitung sebagai :

\[ G^2 = \text{Deviance}_{\text{null}} - \text{Deviance}_{\text{penuh}} = 137.99 - 114.76 = 23.229 \]

Nilai ini mengikuti distribusi chi-square dengan derajat kebebasan sebesar jumlah parameter yang ditambahkan, yaitu 1.

Karena nilai p yang sangat kecil (\(p < 0.001\)), maka:

  • Kita menolak hipotesis nol (\(H_0\)).
  • Artinya, model penuh memberikan peningkatan signifikan dalam menjelaskan variabilitas data dibandingkan dengan model null.
  • Secara praktis, variabel x berkontribusi signifikan dalam model regresi logistik, dan sebaiknya disertakan dalam model.

Kesimpulannya, hasil uji Likelihood Ratio ini menguatkan temuan sebelumnya dari uji Wald bahwa x merupakan prediktor yang signifikan secara statistik.

8.10.3 Evaluasi Model dengan AIC dan BIC

Model dapat dievaluasi menggunakan Akaike Information Criterion (AIC) dan Bayesian Information Criterion (BIC). Model yang memiliki nilai AIC atau BIC yang lebih rendah dianggap lebih baik.

  • AIC : Semakin kecil AIC, semakin baik model.

\[ \text{AIC} = -2\ell(\hat{\theta}) + 2k \]

  • BIC : Alternatif terhadap AIC, menghukum kompleksitas model.

\[ \text{BIC} = -2\ell(\hat{\theta}) + k \log(n) \]

# AIC dan BIC
AIC(model_logistik)
## [1] 55.80867
BIC(model_logistik)
## [1] 68.83452
{style="text-align: center;"}
Hasil Evaluasi Model

Model regresi logistik juga dapat dievaluasi menggunakan dua kriteria informasi yang umum digunakan, yaitu :

  • Akaike Information Criterion (AIC)
  • Bayesian Information Criterion (BIC)

Semakin rendah nilai AIC atau BIC, maka model dianggap lebih baik, karena menunjukkan keseimbangan yang baik antara kecocokan model terhadap data dan kompleksitas model.

Dari hasil :

  • AIC: 118.76
  • BIC: 123.97

Nilai-nilai ini digunakan untuk membandingkan beberapa model. Dalam konteks ini :

  • Karena hanya satu model yang sedang dianalisis, nilai AIC dan BIC menjadi dasar penilaian awal terhadap performa model.
  • Jika ada model lain (misalnya model dengan variabel prediktor tambahan), maka kita bisa membandingkan nilai AIC dan BIC antar model tersebut.
  • Model dengan nilai AIC dan BIC terkecil di antara kandidat model akan dianggap lebih optimal.

Kesimpulan : > Nilai AIC sebesar 118.76 dan BIC sebesar 123.97 menunjukkan bahwa model saat ini tergolong efisien. Namun, untuk penilaian lebih objektif, perlu dilakukan perbandingan dengan model alternatif (misalnya model tanpa prediktor atau model dengan prediktor lain).

8.11 Kesimpulan

  • Estimasi parameter dalam GLM dapat dilakukan menggunakan Maximum Likelihood Estimation (MLE) dengan metode iteratif seperti Newton-Raphson.

  • Wald Test dan Likelihood Ratio Test adalah alat utama untuk menguji signifikan atau tidaknya parameter dalam model GLM.

  • AIC dan BIC digunakan untuk memilih model yang terbaik berdasarkan kecocokan dan kompleksitasnya.

Inferensi dalam GLM sangat bergantung pada pemahaman tentang ekspektasi, varians, dan distribusi asimptotik dari estimator, yang memungkinkan untuk menggunakan teori normalitas (berdasarkan Teorema Limit Pusat), sehingga mempermudah penerapan berbagai uji statistik meskipun data tidak berdistribusi normal secara langsung. Oleh karena itu, pemahaman teori dasar ini sangat penting untuk interpretasi yang tepat terhadap hasil regresi logistik atau GLM lainnya.

9 ✨ REGRESI LOGISTIK DENGAN PREDIKTOR NOMINAL, ORDINAL, DAN RASIO

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.3
## Warning: package 'tibble' was built under R version 4.3.3
## Warning: package 'tidyr' was built under R version 4.3.3
## Warning: package 'readr' was built under R version 4.3.3
## Warning: package 'purrr' was built under R version 4.3.3
## Warning: package 'dplyr' was built under R version 4.3.3
## Warning: package 'stringr' was built under R version 4.3.3
## Warning: package 'forcats' was built under R version 4.3.3
## Warning: package 'lubridate' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ lubridate 1.9.4     ✔ tibble    3.2.1
## ✔ purrr     1.0.2     ✔ tidyr     1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter()    masks stats::filter()
## ✖ dplyr::lag()       masks stats::lag()
## ✖ dplyr::summarise() masks vcdExtra::summarise()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(broom)
## Warning: package 'broom' was built under R version 4.3.3
library(ResourceSelection)
## Warning: package 'ResourceSelection' was built under R version 4.3.3
## ResourceSelection 0.3-6   2023-06-27
library(pROC)

Regresi logistik digunakan ketika variabel respon (Y) bersifat biner (misal : “ya”/“tidak”, “sakit”/“sehat”). Dalam banyak kasus, prediktor (X) yang digunakan bisa berasal dari:

Tujuan dari analisis ini adalah mengukur dan memodelkan pengaruh prediktor-prediktor tersebut terhadap probabilitas kejadian \(P(Y = 1)\).


9.1 Data

Dalam dunia pemasaran dan perilaku konsumen, pemahaman terhadap faktor-faktor yang memengaruhi keputusan pembelian menjadi sangat krusial. Tidak hanya sekadar mengetahui siapa yang membeli, namun juga mengapa seseorang cenderung membeli suatu produk menjadi dasar dalam membentuk strategi bisnis yang lebih terarah. Oleh karena itu, pendekatan statistik seperti regresi logistik menawarkan kerangka kuantitatif yang kuat untuk menganalisis hubungan antara karakteristik konsumen dan kemungkinan keputusan membeli produk.

Data yang digunakan dalam kajian ini menggambarkan simulasi nyata dari perilaku konsumen berdasarkan beragam jenis variabel prediktor, yaitu :

  • Jenis Kelamin (nominal)

  • Tingkat Pendidikan (ordinal)

  • Pendapatan Bulanan (rasio)

Ketiga jenis prediktor tersebut sangat representatif terhadap variasi karakteristik individu dalam konteks sosial dan ekonomi. Menggabungkan ketiganya dalam satu model regresi logistik membuka peluang untuk mengkaji pengaruh masing-masing jenis skala pengukuran terhadap probabilitas suatu peristiwa — dalam hal ini, keputusan untuk membeli suatu produk.

Studi ini menjadi menarik karena :

  • Mencerminkan keragaman tipe data yang umum ditemukan di lapangan

  • Memberikan wawasan interpretatif yang berbeda dari masing-masing skala pengukuran (misalnya, makna perbedaan antara SMA dan S1 sebagai data ordinal

  • Menunjukkan bagaimana model statistik dapat digunakan untuk memprediksi probabilitas peristiwa dengan pendekatan realistis.

set.seed(123)

n <- 300

data_sim <- tibble(
  jenis_kelamin = sample(c("Laki-laki", "Perempuan"), n, replace = TRUE),
  pendidikan = factor(sample(c("SD", "SMP", "SMA", "S1"), n, replace = TRUE),
                      levels = c("SD", "SMP", "SMA", "S1"), ordered = TRUE),
  pendapatan = round(rnorm(n, mean = 5, sd = 2), 1), # juta rupiah
  beli_produk = rbinom(n, 1, prob = 0.4 + 0.1 * as.numeric(jenis_kelamin == "Perempuan") +
                         0.05 * as.numeric(pendidikan) +
                         0.05 * pendapatan/10)
)

head(data_sim)

9.2 Eksplorasi Data

glimpse(data_sim)
## Rows: 300
## Columns: 4
## $ jenis_kelamin <chr> "Laki-laki", "Laki-laki", "Laki-laki", "Perempuan", "Lak…
## $ pendidikan    <ord> SMP, SMP, SD, SMP, SD, SD, SMP, SMA, SD, SMA, S1, SD, SM…
## $ pendapatan    <dbl> 3.6, 3.5, 3.1, 2.9, 4.1, 5.7, 1.0, 5.4, 7.5, 9.1, 7.6, 6…
## $ beli_produk   <int> 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1,…
table(data_sim$beli_produk)
## 
##   0   1 
## 112 188
table(data_sim$jenis_kelamin, data_sim$beli_produk)
##            
##               0   1
##   Laki-laki  67  87
##   Perempuan  45 101
table(data_sim$pendidikan, data_sim$beli_produk)
##      
##        0  1
##   SD  32 47
##   SMP 36 40
##   SMA 20 51
##   S1  24 50

9.3 Perlakuan Variabel

9.3.1 ~ Nominal : Jenis Kelamin (Dummy)

data_sim <- data_sim %>%
            mutate(jk_dummy = ifelse(jenis_kelamin == "Perempuan", 1, 0))

9.3.2 ~ Ordinal : Pendidikan

data_sim <- data_sim %>%
        mutate(pendidikan_num = as.numeric(pendidikan)) # SD=1, SMP=2, SMA=3, S1=4

9.4 Model 1 : Dummy untuk Jenis Kelamin dan Pendidikan

model1 <- glm(beli_produk ~ jenis_kelamin + pendidikan + pendapatan,
              data = data_sim, family = binomial())

summary(model1)
## 
## Call:
## glm(formula = beli_produk ~ jenis_kelamin + pendidikan + pendapatan, 
##     family = binomial(), data = data_sim)
## 
## Coefficients:
##                        Estimate Std. Error z value Pr(>|z|)   
## (Intercept)            -0.51099    0.37051  -1.379  0.16785   
## jenis_kelaminPerempuan  0.68699    0.25204   2.726  0.00642 **
## pendidikan.L            0.43199    0.24510   1.763  0.07798 . 
## pendidikan.Q            0.01095    0.25048   0.044  0.96512   
## pendidikan.C           -0.58472    0.25381  -2.304  0.02123 * 
## pendapatan              0.14750    0.06483   2.275  0.02290 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 396.42  on 299  degrees of freedom
## Residual deviance: 377.63  on 294  degrees of freedom
## AIC: 389.63
## 
## Number of Fisher Scoring iterations: 4

Hasil regresi logistik untuk Model 1 menunjukkan bahwa beberapa variabel prediktor memiliki pengaruh signifikan terhadap probabilitas pembelian produk. Koefisien jenis_kelaminPerempuan sebesar 0.687 dengan nilai p 0.006 mengindikasikan bahwa perempuan memiliki kemungkinan yang secara signifikan lebih tinggi untuk membeli produk dibanding laki-laki, dengan asumsi variabel lain tetap. Variabel pendidikan dimasukkan sebagai faktor ordinal, yang otomatis dikodekan oleh R menggunakan orthogonal polynomial (linear = .L, quadratic = .Q, cubic = .C). Koefisien pendidikan.C signifikan secara statistik (p = 0.021) dan negatif, yang menunjukkan adanya efek non-linier dalam hubungan tingkat pendidikan terhadap keputusan membeli. Sementara pendidikan.L (komponen linear) menunjukkan kecenderungan positif, tetapi tidak signifikan secara statistik pada level 5% (p = 0.078), dan pendidikan.Q tidak signifikan sama sekali. Ini menunjukkan bahwa pengaruh pendidikan terhadap keputusan pembelian tidak bersifat linier sepenuhnya, dan terdapat kemungkinan pola naik-turun pada tingkat pendidikan tertentu. Variabel pendapatan juga memiliki koefisien positif sebesar 0.148 dan signifikan (p = 0.023), artinya semakin tinggi pendapatan bulanan seseorang, semakin besar pula kemungkinan mereka membeli produk. Secara keseluruhan, model ini menjelaskan sebagian variasi dalam keputusan pembelian dengan residual deviance 377.63 yang lebih kecil dari null deviance 396.42, serta AIC sebesar 389.63 yang dapat digunakan untuk perbandingan model selanjutnya.


9.5 Model 2 : Pendidikan sebagai Numeric

model2 <- glm(beli_produk ~ jk_dummy + pendidikan_num + pendapatan,
              data = data_sim, family = binomial())

summary(model2)
## 
## Call:
## glm(formula = beli_produk ~ jk_dummy + pendidikan_num + pendapatan, 
##     family = binomial(), data = data_sim)
## 
## Coefficients:
##                Estimate Std. Error z value Pr(>|z|)  
## (Intercept)     -0.9201     0.4536  -2.028   0.0425 *
## jk_dummy         0.6230     0.2475   2.517   0.0118 *
## pendidikan_num   0.1887     0.1093   1.727   0.0843 .
## pendapatan       0.1382     0.0634   2.180   0.0292 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 396.42  on 299  degrees of freedom
## Residual deviance: 383.15  on 296  degrees of freedom
## AIC: 391.15
## 
## Number of Fisher Scoring iterations: 4

Model 2 menganalisis pengaruh jenis kelamin, tingkat pendidikan (sebagai numerik), dan pendapatan terhadap probabilitas membeli produk menggunakan regresi logistik. Dalam model ini, variabel jk_dummy (1 = Perempuan, 0 = Laki-laki) memiliki koefisien sebesar 0.6230 dengan nilai p 0.0118, menunjukkan bahwa perempuan secara signifikan lebih cenderung membeli produk dibandingkan laki-laki, ketika variabel lain dikontrol. Variabel pendidikan_num, yang mewakili tingkat pendidikan sebagai angka urut (SD = 1 hingga S1 = 4), memiliki koefisien positif 0.1887, namun hanya mendekati signifikan (p = 0.0843), yang mengindikasikan bahwa semakin tinggi pendidikan seseorang, cenderung semakin besar peluangnya membeli produk — walau belum cukup kuat pada tingkat signifikansi 5%. Sementara itu, pendapatan tetap menunjukkan pengaruh positif dan signifikan (koefisien = 0.1382, p = 0.0292), menandakan bahwa konsumen dengan pendapatan lebih tinggi lebih mungkin melakukan pembelian. Nilai residual deviance sebesar 383.15 (dibandingkan dengan null deviance 396.42) menunjukkan adanya peningkatan kecocokan model, meskipun tidak sebesar Model 1 sebelumnya. AIC model ini adalah 391.15, sedikit lebih tinggi dari Model 1 (AIC = 389.63), sehingga Model 1 masih lebih unggul dalam hal efisiensi model. Namun, Model 2 lebih mudah diinterpretasikan karena memperlakukan pendidikan sebagai variabel numerik linier, bukan sebagai faktor polinomial.


9.6 Interpretasi Koefisien

tidy(model2, exponentiate = TRUE, conf.int = TRUE)

Tabel interpretasi koefisien dari model2 yang telah ditransformasi ke dalam bentuk odds ratio (OR) memberikan pemahaman yang lebih intuitif tentang pengaruh masing-masing variabel terhadap probabilitas pembelian produk. Nilai OR untuk jk_dummy adalah 1.86 (CI 95%: 1.15 – 3.04), yang berarti perempuan memiliki peluang membeli produk sekitar 86% lebih tinggi dibandingkan laki-laki, dan efek ini signifikan secara statistik (p = 0.0118). Untuk pendidikan_num, nilai OR sebesar 1.21 (CI 95%: 0.976 – 1.50) mengindikasikan bahwa setiap kenaikan satu tingkat pendidikan (misalnya dari SMP ke SMA) meningkatkan peluang membeli produk sebesar 21%, meskipun efek ini belum signifikan pada taraf 5% (p = 0.0843), namun mendekati. Variabel pendapatan memiliki OR 1.15 (CI 95%: 1.02 – 1.30), yang menunjukkan bahwa setiap kenaikan satu juta rupiah dalam pendapatan bulanan meningkatkan peluang pembelian sebesar 15%, dan efek ini signifikan (p = 0.0292). Sementara itu, intercept (OR = 0.398) menggambarkan baseline odds membeli produk saat semua variabel prediktor bernilai nol — nilai ini tidak memiliki interpretasi substantif karena konteks “nol” tidak realistis untuk pendidikan dan pendapatan, namun tetap diperlukan sebagai bagian dari model. Secara keseluruhan, model ini menunjukkan bahwa jenis kelamin dan pendapatan adalah prediktor yang signifikan terhadap perilaku pembelian, sedangkan pendidikan menunjukkan pengaruh positif namun belum signifikan secara statistik.


9.7 Uji Goodness-of-Fit dan AUC

hoslem.test(data_sim$beli_produk, fitted(model2))
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  data_sim$beli_produk, fitted(model2)
## X-squared = 3.4701, df = 8, p-value = 0.9015
roc_obj <- roc(data_sim$beli_produk, fitted(model2))
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
plot(roc_obj, col = "blue", main = "Kurva ROC")

auc(roc_obj)
## Area under the curve: 0.6142

Hasil uji goodness-of-fit dengan Hosmer and Lemeshow test menunjukkan bahwa model regresi logistik model2 memiliki kesesuaian yang baik terhadap data. Nilai chi-square sebesar 3.47 dengan 8 derajat kebebasan menghasilkan p-value sebesar 0.9015, yang jauh di atas 0.05. Ini mengindikasikan bahwa tidak ada perbedaan signifikan antara nilai observasi dan nilai prediksi, sehingga model dianggap sesuai atau “fit” dengan data yang tersedia.

Namun, dari sisi kemampuan diskriminatif model, kurva ROC yang digambarkan menunjukkan bahwa model memiliki performa klasifikasi yang cukup lemah. Hal ini ditunjukkan oleh nilai AUC (Area Under the Curve) sebesar 0.6142, yang hanya sedikit lebih baik dibandingkan model tebakan acak (AUC = 0.5). Garis ROC biru yang mendekati garis diagonal (abu-abu) mengindikasikan bahwa kemampuan model dalam membedakan antara individu yang membeli dan tidak membeli produk masih rendah. Maka, meskipun model secara statistik sesuai (fit), namun efektivitasnya dalam klasifikasi masih dapat ditingkatkan, misalnya dengan menambahkan variabel prediktor yang lebih informatif atau menggunakan transformasi/pemodelan alternatif.


9.8 Prediksi dan Evaluasi

data_sim <- data_sim %>%
  mutate(pred_prob = predict(model2, type = "response"),
         pred_class = ifelse(pred_prob > 0.5, 1, 0))

table(Predicted = data_sim$pred_class, Actual = data_sim$beli_produk)
##          Actual
## Predicted   0   1
##         0  21  13
##         1  91 175

Hasil prediksi dan evaluasi terhadap model regresi logistik (model2) menunjukkan bahwa dengan ambang batas probabilitas 0.5, model menghasilkan banyak kesalahan klasifikasi pada kelas negatif (tidak membeli). Dari total data, model memprediksi sebanyak 21 individu benar-benar tidak membeli dan diprediksi tidak membeli (true negative), serta 175 individu yang benar-benar membeli dan diprediksi membeli (true positive). Namun, model juga menghasilkan 91 false positive, yaitu individu yang diprediksi akan membeli namun sebenarnya tidak membeli, dan 13 false negative, yaitu individu yang diprediksi tidak membeli padahal sebenarnya membeli.

Secara umum, model cenderung bias ke arah memprediksi semua individu akan membeli produk (karena 266 dari 300 individu diprediksi akan membeli). Meskipun ini menghasilkan sensitivitas yang tinggi (175 dari 188 pembeli berhasil diprediksi), namun spesifisitas model sangat rendah, terlihat dari hanya 21 dari 112 individu yang tidak membeli dapat diprediksi dengan benar. Hal ini menunjukkan bahwa model kurang mampu membedakan individu yang tidak membeli produk, yang selaras dengan hasil AUC sebelumnya. Untuk meningkatkan akurasi keseluruhan, diperlukan strategi seperti penyesuaian threshold, penyeimbangan data kelas, atau penambahan prediktor baru.


9.9 Visualisasi: Prediksi Probabilitas

9.9.1 ~ Prediksi Probabilitas (Ordinal sebagai Nominal)

data_sim$prob_model1 <- predict(model1, type = "response")

library(ggplot2)
ggplot(data_sim, aes(x = pendidikan, y = prob_model1, fill = jenis_kelamin)) +
  geom_point() +
  labs(title = "Prediksi Probabilitas Beli Produk (Pendidikan sebagai Nominal)",
       y = "Probabilitas", x = "Pendidikan") +
  theme_minimal()

Visualisasi prediksi probabilitas beli produk berdasarkan model1 (dengan pendidikan diperlakukan sebagai variabel nominal) menunjukkan adanya tren kenaikan probabilitas pembelian seiring meningkatnya jenjang pendidikan. Individu dengan pendidikan SMA dan S1 cenderung memiliki probabilitas lebih tinggi untuk membeli produk dibandingkan dengan mereka yang hanya berpendidikan SD atau SMP. Selain itu, tampak bahwa perempuan (titik lebih gelap) cenderung memiliki probabilitas pembelian yang lebih tinggi dibandingkan laki-laki dalam setiap tingkat pendidikan. Hal ini konsisten dengan hasil regresi sebelumnya yang menunjukkan bahwa jenis kelamin perempuan dan tingkat pendidikan yang lebih tinggi secara signifikan meningkatkan peluang seseorang untuk membeli produk. Penyebaran titik juga menggambarkan variasi tambahan dari variabel pendapatan dan interaksi yang tidak dijelaskan hanya oleh pendidikan dan jenis kelamin. Dengan demikian, model ini menangkap dengan baik pengaruh kombinasi jenis kelamin dan pendidikan terhadap kecenderungan membeli produk.


9.9.2 ~ Prediksi Probabilitas (Ordinal sebagai Numeric)

data_sim$prob_model2 <- predict(model2, type = "response")

ggplot(data_sim, aes(x = pendidikan_num, y = prob_model2)) +
  geom_point(aes(color = jenis_kelamin), width = 0.2, alpha = 0.5) +
  geom_smooth(method = "loess", se = TRUE, color = "blue") +
  labs(title = "Prediksi Probabilitas Beli Produk (Pendidikan sebagai Numeric)",
       x = "Pendidikan (Skor Numerik)", y = "Probabilitas") +
  theme_minimal()
## Warning in geom_point(aes(color = jenis_kelamin), width = 0.2, alpha = 0.5):
## Ignoring unknown parameters: `width`
## `geom_smooth()` using formula = 'y ~ x'
## Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric,
## : pseudoinverse used at 0.985
## Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric,
## : neighborhood radius 2.015
## Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric,
## : reciprocal condition number 2.6463e-16
## Warning in simpleLoess(y, x, w, span, degree = degree, parametric = parametric,
## : There are other near singularities as well. 1
## Warning in predLoess(object$y, object$x, newx = if (is.null(newdata)) object$x
## else if (is.data.frame(newdata))
## as.matrix(model.frame(delete.response(terms(object)), : pseudoinverse used at
## 0.985
## Warning in predLoess(object$y, object$x, newx = if (is.null(newdata)) object$x
## else if (is.data.frame(newdata))
## as.matrix(model.frame(delete.response(terms(object)), : neighborhood radius
## 2.015
## Warning in predLoess(object$y, object$x, newx = if (is.null(newdata)) object$x
## else if (is.data.frame(newdata))
## as.matrix(model.frame(delete.response(terms(object)), : reciprocal condition
## number 2.6463e-16
## Warning in predLoess(object$y, object$x, newx = if (is.null(newdata)) object$x
## else if (is.data.frame(newdata))
## as.matrix(model.frame(delete.response(terms(object)), : There are other near
## singularities as well. 1

Grafik prediksi probabilitas beli produk berdasarkan pendidikan sebagai variabel numerik ordinal menunjukkan adanya tren positif yang moderat: semakin tinggi jenjang pendidikan (dari SD hingga S1), semakin besar kemungkinan seseorang membeli produk. Hal ini tampak dari garis biru (fit LOESS) yang secara umum menanjak. Titik-titik individu yang diwarnai berdasarkan jenis kelamin menunjukkan bahwa perempuan (biru) cenderung memiliki probabilitas beli lebih tinggi daripada laki-laki (merah muda) dalam semua jenjang pendidikan. Variabilitas probabilitas pada setiap tingkat pendidikan cukup besar, namun tren umumnya konsisten. Model ini menggambarkan bahwa perlakuan pendidikan sebagai skala numeric ordinal tetap mampu menangkap efek linier positif terhadap keputusan pembelian, meskipun kemungkinan ada pola non-linier yang tidak sepenuhnya ditangkap. Hal ini didukung pula oleh hasil regresi sebelumnya, di mana koefisien pendidikan bernilai positif dan mendekati signifikan.

9.10 Kesimpulan

  • Regresi logistik merupakan metode yang fleksibel dan dapat digunakan untuk menganalisis hubungan antara variabel respon biner dengan prediktor dari berbagai skala, termasuk nominal (misalnya jenis kelamin), ordinal (misalnya tingkat pendidikan), dan rasio (misalnya pendapatan).
  • Perlakuan terhadap variabel ordinal, apakah sebagai faktor bertingkat (polinomial orthogonal) atau sebagai skor numerik, berpengaruh pada hasil estimasi dan interpretasi koefisien, sehingga harus disesuaikan dengan asumsi dan tujuan analisis.
  • Evaluasi model regresi logistik sebaiknya dilakukan melalui kombinasi kurva ROC dan AUC untuk menilai kemampuan klasifikasi, serta uji goodness-of-fit seperti Hosmer-Lemeshow untuk menguji kesesuaian model dengan data.

10 ✨ PEMILIHAN MODEL REGRESI LOGISTIK DAN EVALUASI

library(tidyverse)
library(caret)
## Warning: package 'caret' was built under R version 4.3.3
## Loading required package: lattice
## 
## Attaching package: 'lattice'
## The following object is masked from 'package:gnm':
## 
##     barley
## 
## Attaching package: 'caret'
## The following object is masked from 'package:purrr':
## 
##     lift
## The following objects are masked from 'package:DescTools':
## 
##     MAE, RMSE
library(pROC)
library(ResourceSelection)
library(ROCR)
## Warning: package 'ROCR' was built under R version 4.3.3
library(MASS)
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
## 
##     select

10.1 Pendahuluan

Regresi logistik digunakan ketika variabel dependen bersifat biner (dua kategori). Dalam studi ini, kita menganalisis faktor-faktor yang memengaruhi status diabetes pada perempuan dewasa keturunan Indian Pima, dengan dua kategori hasil diagnosis:

  • Positif Diabetes (Outcome = 1)

  • Negatif Diabetes (Outcome = 0)

Tujuan utama dari analisis ini adalah untuk membangun model prediktif yang dapat mengidentifikasi individu dengan risiko diabetes berdasarkan indikator kesehatan yang terukur, serta mengevaluasi performa model dengan berbagai metrik seperti AIC, uji goodness-of-fit, dan AUC.

10.2 Persiapan Data

Dalam dunia medis dan kesehatan masyarakat, deteksi dini terhadap penyakit kronis seperti diabetes melitus tipe 2 sangatlah penting untuk mencegah komplikasi jangka panjang. Salah satu tantangan dalam pencegahan adalah mengembangkan sistem skrining yang dapat secara akurat mengidentifikasi individu berisiko tinggi berdasarkan indikator klinis yang mudah diukur.

Dataset yang digunakan dalam studi ini adalah Pima Indians Diabetes Dataset, yang bersumber dari National Institute of Diabetes and Digestive and Kidney Diseases. Data ini terdiri dari 768 observasi yang merekam kondisi medis perempuan dewasa keturunan Indian Pima di Amerika Serikat.

Variabel-variabel prediktor dalam dataset ini mencakup:

  • Jumlah Kehamilan (Pregnancies)

  • Kadar Glukosa (Glucose)

  • Tekanan Darah Diastolik (BloodPressure)

  • Ketebalan Lipatan Kulit (SkinThickness)

  • Kadar Insulin (Insulin)

  • Indeks Massa Tubuh (BMI)

  • Fungsi Silsilah Keluarga (DiabetesPedigreeFunction)

  • Usia (Age)

Variabel respons adalah Outcome, yang bernilai 1 jika subjek didiagnosis mengidap diabetes dan 0 jika tidak.

Dengan memanfaatkan regresi logistik, studi ini bertujuan untuk :

  • Mengidentifikasi faktor klinis yang paling signifikan dalam menentukan status diabetes.

  • Memprediksi probabilitas seseorang terkena diabetes berdasarkan nilai-nilai variabel input.

  • Mengevaluasi akurasi model untuk mendukung pengambilan keputusan medis berbasis data.

# Data
# install.packages("mlbench")
library(mlbench)
## Warning: package 'mlbench' was built under R version 4.3.3
data(PimaIndiansDiabetes)

# Salin ke variabel lokal
data_pima <- PimaIndiansDiabetes

# Tampilkan struktur dan ringkasan
str(data_pima)
## 'data.frame':    768 obs. of  9 variables:
##  $ pregnant: num  6 1 8 1 0 5 3 10 2 8 ...
##  $ glucose : num  148 85 183 89 137 116 78 115 197 125 ...
##  $ pressure: num  72 66 64 66 40 74 50 0 70 96 ...
##  $ triceps : num  35 29 0 23 35 0 32 0 45 0 ...
##  $ insulin : num  0 0 0 94 168 0 88 0 543 0 ...
##  $ mass    : num  33.6 26.6 23.3 28.1 43.1 25.6 31 35.3 30.5 0 ...
##  $ pedigree: num  0.627 0.351 0.672 0.167 2.288 ...
##  $ age     : num  50 31 32 21 33 30 26 29 53 54 ...
##  $ diabetes: Factor w/ 2 levels "neg","pos": 2 1 2 1 2 1 2 1 2 2 ...
table(data_pima$diabetes)
## 
## neg pos 
## 500 268
# Konversi target ke numerik 0/1
data_pima <- data_pima %>%
  mutate(diabetes_bin = ifelse(diabetes == "pos", 1, 0))

10.3 Pemodelan Awal

# Model regresi logistik
model_pima <- glm(diabetes_bin ~ glucose + mass + age, data = data_pima, family = binomial)

# Ringkasan hasil model
summary(model_pima)
## 
## Call:
## glm(formula = diabetes_bin ~ glucose + mass + age, family = binomial, 
##     data = data_pima)
## 
## Coefficients:
##              Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -8.393743   0.666067 -12.602  < 2e-16 ***
## glucose      0.032512   0.003329   9.767  < 2e-16 ***
## mass         0.081590   0.013526   6.032 1.62e-09 ***
## age          0.030157   0.007632   3.951 7.77e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 993.48  on 767  degrees of freedom
## Residual deviance: 755.68  on 764  degrees of freedom
## AIC: 763.68
## 
## Number of Fisher Scoring iterations: 5

Model regresi logistik yang dibangun bertujuan untuk memprediksi probabilitas seseorang mengidap diabetes (diabetes_bin = 1) berdasarkan tiga variabel prediktor: kadar glukosa darah (glucose), indeks massa tubuh (mass/BMI), dan usia (age).

Berdasarkan output summary(model_pima), semua prediktor yang digunakan dalam model menunjukkan pengaruh yang signifikan terhadap kemungkinan seseorang menderita diabetes:

  • Intercept = -8.39: Ini adalah log-odds dasar ketika semua prediktor bernilai nol. Meskipun tidak memiliki interpretasi langsung dalam konteks praktis, ini penting dalam pembentukan model.

  • Glucose (Est. = 0.0325, p < 2e-16): Kadar glukosa memiliki pengaruh positif dan signifikan terhadap risiko diabetes. Artinya, setiap peningkatan 1 unit kadar glukosa darah akan meningkatkan log-odds terkena diabetes sebesar 0.0325, atau secara eksponensial, meningkatkan odds sekitar 3.3%.

  • Mass/BMI (Est. = 0.0816, p < 1.62e-09): BMI juga berpengaruh signifikan. Setiap kenaikan 1 unit BMI meningkatkan odds terkena diabetes sebesar 8.5%.

  • Age (Est. = 0.0302, p < 0.0001): Usia juga menjadi prediktor yang signifikan, di mana setiap penambahan 1 tahun usia meningkatkan odds terkena diabetes sebesar 3.1%.

Secara keseluruhan, model ini menunjukkan bahwa ketiga variabel prediktor memberikan kontribusi signifikan terhadap prediksi diabetes, dengan deviance residual yang jauh lebih kecil dibanding deviance awal (993.48 menjadi 755.68). Nilai AIC yang relatif rendah (763.68) juga menunjukkan bahwa model cukup baik.

10.4 Seleksi Model: Stepwise AIC

library(MASS)

# Stepwise AIC selection (both directions)
model_step <- stepAIC(model_pima, direction = "both", trace = FALSE)

# Ringkasan hasil model terbaik berdasarkan AIC
summary(model_step)
## 
## Call:
## glm(formula = diabetes_bin ~ glucose + mass + age, family = binomial, 
##     data = data_pima)
## 
## Coefficients:
##              Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -8.393743   0.666067 -12.602  < 2e-16 ***
## glucose      0.032512   0.003329   9.767  < 2e-16 ***
## mass         0.081590   0.013526   6.032 1.62e-09 ***
## age          0.030157   0.007632   3.951 7.77e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 993.48  on 767  degrees of freedom
## Residual deviance: 755.68  on 764  degrees of freedom
## AIC: 763.68
## 
## Number of Fisher Scoring iterations: 5

Interpretasi Model Terpilih (Stepwise AIC)

Model logistik biner yang diperoleh dari proses seleksi menggunakan stepwise AIC menunjukkan bahwa tiga prediktor — glucose, mass (BMI), dan age — secara signifikan memengaruhi probabilitas seseorang menderita diabetes. Nilai intercept sebesar -8.39 menyatakan log-odds dasar ketika semua prediktor bernilai nol. Koefisien glucose sebesar 0.0325 berarti setiap kenaikan 1 unit kadar glukosa akan meningkatkan log-odds terkena diabetes sebesar 0.0325, atau meningkatkan odds sebesar exp(0.0325) ≈ 1.033 (sekitar 3.3%). Demikian juga, setiap kenaikan 1 unit BMI (massa tubuh) menaikkan odds sebesar 8.5%, dan setiap tambahan 1 tahun usia menaikkan odds sebesar 3.1%. Ketiga variabel ini sangat signifikan (p < 0.001), ditunjukkan oleh nilai z yang tinggi dan p-value sangat kecil.

Model ini juga menunjukkan penurunan deviance yang cukup besar dari null deviance (993.48) menjadi residual deviance (755.68), yang mengindikasikan bahwa model dengan tiga prediktor ini menjelaskan variabilitas data secara substansial lebih baik dibandingkan model tanpa prediktor. Nilai AIC sebesar 763.68 juga menunjukkan kecocokan model yang relatif baik.

10.5 Evaluasi Model

10.5.1 ~ Kurva ROC dan AUC

library(pROC)

# Probabilitas prediksi
prob <- predict(model_step, type = "response")

# ROC Curve
roc_obj <- roc(data_pima$diabetes_bin, prob)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
plot(roc_obj, col = "blue", main = "Kurva ROC")

auc(roc_obj)  # Area under the curve
## Area under the curve: 0.8208

Kurva ROC (Receiver Operating Characteristic) yang ditampilkan menunjukkan kemampuan diskriminatif model regresi logistik terpilih dalam membedakan antara individu yang positif diabetes dan yang negatif. Garis biru pada grafik ROC memperlihatkan trade-off antara sensitivity (true positive rate) dan 1 - specificity (false positive rate) di berbagai ambang batas klasifikasi.

Nilai Area Under the Curve (AUC) sebesar 0.8208 mengindikasikan bahwa model memiliki kemampuan klasifikasi yang sangat baik. Secara umum, AUC berada dalam rentang:

  • 0.5–0.6: buruk (setara tebak-tebakan),

  • 0.6–0.7: moderat,

  • 0.7–0.8: baik

  • 0.8–0.9: sangat baik,

  • 0.9: sangat tinggi (hampir sempurna).

Dengan AUC ≈ 0.82, berarti ada 82% kemungkinan bahwa model akan memberikan skor probabilitas yang lebih tinggi untuk individu yang benar-benar positif diabetes dibandingkan individu yang negatif. Hal ini menunjukkan bahwa model regresi logistik yang dibangun menggunakan glucose, BMI (mass), dan age sebagai prediktor mampu mengklasifikasikan status diabetes secara cukup andal pada data Pima Indians Diabetes.

10.5.2 ~ Pseudo R-squared

# Model null (tanpa prediktor)
nullmod <- glm(diabetes_bin ~ 1, data = data_pima, family = binomial)

# McFadden's R^2
1 - (logLik(model_step) / logLik(nullmod))
## 'log Lik.' 0.239359 (df=4)

Nilai McFadden’s R² yang diperoleh dari model regresi logistik sebesar 0.239 menunjukkan bahwa model yang dibangun — dengan prediktor glucose, BMI (mass), dan age — memberikan peningkatan sekitar 23,9% dalam log-likelihood dibandingkan dengan model null (model tanpa prediktor). Dalam konteks regresi logistik, nilai McFadden’s R² antara 0.2 hingga 0.4 umumnya dianggap sebagai indikator bahwa model memiliki daya jelas (explanatory power) yang memadai. Artinya, ketiga variabel tersebut secara bersama-sama cukup mampu menjelaskan variabilitas dalam probabilitas seseorang menderita diabetes. Meskipun nilai ini belum tergolong sangat tinggi, hal ini tetap mengindikasikan bahwa model tidak bersifat acak dan mengandung informasi yang relevan secara statistik terhadap outcome, sebagaimana juga diperkuat oleh nilai AUC ROC sebesar 0.82 yang menunjukkan kinerja klasifikasi yang baik.

10.5.3 ~ Tabel Klasifikasi

library(caret)

# Prediksi kelas berdasarkan cutoff 0.5
pred_class <- ifelse(prob > 0.5, 1, 0)

# Confusion matrix
confusionMatrix(as.factor(pred_class), as.factor(data_pima$diabetes_bin), positive = "1")
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1
##          0 439 117
##          1  61 151
##                                           
##                Accuracy : 0.7682          
##                  95% CI : (0.7367, 0.7976)
##     No Information Rate : 0.651           
##     P-Value [Acc > NIR] : 1.285e-12       
##                                           
##                   Kappa : 0.4639          
##                                           
##  Mcnemar's Test P-Value : 3.749e-05       
##                                           
##             Sensitivity : 0.5634          
##             Specificity : 0.8780          
##          Pos Pred Value : 0.7123          
##          Neg Pred Value : 0.7896          
##              Prevalence : 0.3490          
##          Detection Rate : 0.1966          
##    Detection Prevalence : 0.2760          
##       Balanced Accuracy : 0.7207          
##                                           
##        'Positive' Class : 1               
## 

Hasil confusion matrix dari model regresi logistik yang menggunakan variabel glucose, BMI (mass), dan age sebagai prediktor menunjukkan bahwa model mampu mengklasifikasikan kasus diabetes dengan akurasi sebesar 76,82%, yang berarti sekitar 77 dari 100 observasi diklasifikasikan dengan benar. Nilai ini secara signifikan lebih tinggi dari No Information Rate (NIR) sebesar 65,1%, dengan p-value yang sangat kecil (p < 0.001), mengindikasikan bahwa model memberikan prediksi yang jauh lebih baik dibandingkan tebakan acak berdasarkan mayoritas kelas. Nilai sensitivity (kemampuan mendeteksi penderita diabetes) sebesar 56,34% menunjukkan bahwa lebih dari separuh kasus positif berhasil dikenali dengan benar. Sementara itu, specificity yang tinggi sebesar 87,80% mencerminkan kemampuan model yang sangat baik dalam mengenali individu yang tidak menderita diabetes. Nilai Positive Predictive Value (71,23%) menunjukkan bahwa ketika model memprediksi seseorang positif diabetes, terdapat kemungkinan sekitar 71% prediksi itu benar. Secara keseluruhan, nilai balanced accuracy sebesar 72,07% menegaskan bahwa model memiliki performa klasifikasi yang seimbang antara kelas positif dan negatif. Namun demikian, nilai kappa sebesar 0.464 menunjukkan tingkat kesepakatan sedang antara prediksi dan kebenaran, menandakan ruang perbaikan masih terbuka, khususnya dalam mendeteksi kasus positif.

10.5.4 ~ Hosmer-Lemeshow Test

library(ResourceSelection)

pred <- fitted(model_step)
n_unique <- length(unique(pred))

if (n_unique >= 2) {
  g_val <- min(10, n_unique)  # jumlah grup maksimum 10
  hoslem.test(data_pima$diabetes_bin, pred, g = g_val)
} else {
  cat("Prediksi model hanya memiliki 1 nilai unik. Hosmer-Lemeshow test tidak dapat dilakukan.")
}
## 
##  Hosmer and Lemeshow goodness of fit (GOF) test
## 
## data:  data_pima$diabetes_bin, pred
## X-squared = 8.9222, df = 8, p-value = 0.3489

Hasil Hosmer and Lemeshow Goodness-of-Fit Test menunjukkan nilai statistik chi-square sebesar 8,92 dengan 8 derajat kebebasan dan p-value sebesar 0,3489. Karena p-value jauh lebih besar dari tingkat signifikansi umum (misalnya 0,05), maka tidak terdapat cukup bukti untuk menolak hipotesis nol bahwa model sesuai dengan data (good fit). Dengan kata lain, model regresi logistik yang dibangun — menggunakan variabel glucose, BMI, dan age — menunjukkan kesesuaian yang baik antara nilai prediksi dan data observasi. Ini mengindikasikan bahwa model telah menangkap struktur dasar dalam data dengan cukup baik dan tidak terdapat penyimpangan sistematis yang signifikan dalam prediksi probabilitas diabetes.

10.5.5 ~ Precision-Recall Curve

library(ROCR)

# Precision-recall
pred_rocr <- prediction(prob, data_pima$diabetes_bin)
perf <- performance(pred_rocr, "prec", "rec")
plot(perf, main = "Precision-Recall Curve", col = "darkgreen")

Kurva Precision-Recall (PR) yang ditampilkan memberikan gambaran mengenai trade-off antara presisi (ketepatan) dan recall (cakupan) dari model regresi logistik dalam mengklasifikasikan penderita diabetes. Dari kurva tersebut, terlihat bahwa presisi berada pada nilai tinggi saat recall rendah, namun mengalami penurunan seiring meningkatnya recall. Ini merupakan pola umum, karena semakin banyak kasus positif yang coba dikenali model (recall meningkat), maka kemungkinan memasukkan prediksi salah (false positive) juga bertambah, sehingga presisi menurun.

Secara keseluruhan, kurva PR yang berada relatif jauh di atas garis dasar (y = prevalensi) menunjukkan bahwa model memiliki performa yang cukup baik, terutama dalam konteks dataset tidak seimbang (dalam hal ini, jumlah kasus negatif lebih banyak dibandingkan kasus positif). Hal ini menjadikan kurva PR sebagai metrik penting dalam mengevaluasi model klasifikasi biner, terutama bila fokus analisis terletak pada mendeteksi kasus positif seperti pada deteksi diabetes.

10.6 Prinsip Parsimony

Dalam dunia statistik dan pembelajaran mesin, terdapat prinsip fundamental yang dikenal sebagai prinsip parsimony (Occam’s Razor). Prinsip ini menyatakan bahwa dari sekian banyak model yang menjelaskan suatu fenomena dengan akurasi serupa, model yang paling sederhana seharusnya dipilih. Sederhana di sini berarti model yang menggunakan jumlah prediktor seminimal mungkin tanpa mengorbankan kualitas prediksi.

10.6.1 ~ Mengapa Parsimony Penting?

  1. Menghindari Overfitting
    Model yang kompleks (dengan terlalu banyak variabel) cenderung menyesuaikan diri secara berlebihan terhadap data pelatihan (overfitting), sehingga performanya dapat buruk ketika diterapkan pada data baru.

  2. Memudahkan Interpretasi
    Model yang ringkas lebih mudah dijelaskan dan dipahami, terutama dalam konteks pengambilan keputusan yang melibatkan pemangku kepentingan non-teknis.

  3. Efisiensi Operasional
    Penggunaan lebih sedikit prediktor berarti lebih hemat dalam pengumpulan data dan proses komputasi, terutama dalam sistem berskala besar atau real-time.

10.6.2 ~ Stepwise Selection dan AIC

Dalam konteks regresi logistik, pemilihan model stepwise merupakan salah satu metode yang sering digunakan untuk mengimplementasikan prinsip parsimony. Prosedur ini mengevaluasi berbagai kombinasi prediktor dengan cara :

  • Forward selection: menambahkan variabel satu per satu,
  • Backward elimination: menghapus variabel satu per satu,
  • Stepwise: gabungan dari keduanya.

Pemilihan model biasanya didasarkan pada kriteria penalti kompleksitas, seperti Akaike Information Criterion (AIC). Nilai AIC didefinisikan sebagai :

\[ \text{AIC} = -2 \cdot \log(\hat{L}) + 2k \]

di mana:

  • \(\hat{L}\) adalah nilai maksimum dari fungsi likelihood model,
  • \(k\) adalah jumlah parameter dalam model.

Model dengan nilai AIC terendah dianggap sebagai model terbaik karena mencapai keseimbangan antara goodness-of-fit dan kompleksitas model.

10.6.3 ~ Prinsip Parsimony dalam Praktik

Perlu dicatat bahwa prinsip parsimony bukan berarti memilih model yang sesederhana mungkin tanpa mempertimbangkan akurasi, tetapi mencari model yang cukup kompleks untuk menjelaskan pola yang relevan dalam data, tanpa menjadi berlebihan.

Dengan demikian, prinsip ini mendukung pengembangan model yang efisien, akurat, dan dapat diinterpretasikan, menjadikannya sangat relevan dalam praktik ilmu data dan statistika terapan.

10.7 Kesimpulan

Berdasarkan prinsip parsimony dan hasil evaluasi model, model regresi logistik dengan tiga prediktor — glucose, BMI (mass), dan age — adalah model terbaik dalam konteks data diabetes Pima Indian. Model ini berhasil menyeimbangkan kompleksitas dengan kinerja prediksi, ditunjukkan oleh nilai AIC yang rendah, AUC sebesar 0.82, serta koefisien yang signifikan. Model ini tidak hanya sederhana secara struktural tetapi juga kuat secara prediktif.

11 ✨ DISTRIBUSI MULTINOMIAL

library(tidyverse)
library(nnet)       # untuk multinomial regression
library(ggplot2)
library(janitor)
## Warning: package 'janitor' was built under R version 4.3.3
## 
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test

11.1 Pengantar Teori Distribusi Multinomial

Distribusi multinomial merupakan generalisasi dari distribusi binomial ketika suatu percobaan memiliki lebih dari dua hasil (kategori).

Jika dalam satu percobaan kita mengamati bahwa :

  • Terdapat \(k\) kategori,
  • Probabilitas tiap kategori adalah \(p_1, p_2, \dots, p_k\) dengan \(\sum_{i=1}^k p_i = 1\), dan
  • Dilakukan \(n\) percobaan independen,

Maka probabilitas mendapatkan \(x_1, x_2, \dots, x_k\) kejadian dalam masing-masing kategori diberikan oleh :

\[ P(X_1 = x_1, \dots, X_k = x_k) = \frac{n!}{x_1!x_2!\dots x_k!} p_1^{x_1} p_2^{x_2} \dots p_k^{x_k} \]

Distribusi ini berguna untuk :

  • Model klasifikasi multikelas,

  • Frekuensi kategori,

  • Regresi logistik multinomial.

11.2 Contoh Data Pematangan Buah Pisang

Distribusi multinomial merupakan generalisasi dari distribusi binomial yang digunakan ketika suatu percobaan menghasilkan lebih dari dua kemungkinan hasil yang saling eksklusif. Dalam konteks pematangan buah, klasifikasi pisang ke dalam beberapa kategori mutu — seperti premium, good, processing, dan unripe — merupakan contoh nyata dari penerapan distribusi ini. Distribusi multinomial memungkinkan kita memodelkan probabilitas jumlah kemunculan dari setiap kategori berdasarkan sejumlah percobaan yang telah dilakukan.

Distribusi ini sangat relevan dalam bidang pertanian dan pascapanen, terutama dalam pengendalian mutu dan evaluasi klasifikasi hasil panen. Dengan mengasumsikan bahwa probabilitas tiap kategori telah diketahui atau diasumsikan sebelumnya, distribusi multinomial dapat digunakan untuk mengevaluasi apakah frekuensi hasil pengamatan sesuai dengan harapan.

# Set seed for reproducibility
set.seed(123)

# Probabilitas teoritis kemunculan tiap kelas
prob_pisang <- c(premium = 0.25, good = 0.35, processing = 0.30, unripe = 0.10)

# Simulasi data berdasarkan distribusi multinomial
data_simulasi <- rmultinom(n = 1, size = 50, prob = prob_pisang)
colnames(data_simulasi) <- "Frekuensi"
rownames(data_simulasi) <- names(prob_pisang)

data_pisang <- as.data.frame(data_simulasi)
data_pisang$Kategori <- rownames(data_pisang)
data_pisang

11.3 Visualisasi Frekuensi Kategori Pisang

ggplot(data_pisang, aes(x = Kategori, y = Frekuensi, fill = Kategori)) +
  geom_bar(stat = "identity") +
  theme_minimal() +
  labs(title = "Distribusi Kategori Kematangan Pisang", y = "Frekuensi")

Grafik batang yang ditampilkan menggambarkan distribusi frekuensi hasil klasifikasi kematangan 50 buah pisang ke dalam empat kategori mutu, yaitu good, premium, processing, dan unripe. Berdasarkan visualisasi, terlihat bahwa kategori good merupakan kategori yang paling sering muncul dengan 21 buah pisang, diikuti oleh processing sebanyak 14 buah, premium sebanyak 11 buah, dan unripe sebagai kategori dengan frekuensi terendah yakni hanya 4 buah. Pola distribusi ini secara umum masih mendekati asumsi probabilitas teoritis yang digunakan pada proses simulasi (35% good, 30% processing, 25% premium, 10% unripe). Visualisasi ini membantu memberikan pemahaman awal mengenai kecenderungan distribusi mutu buah dalam sampel yang diamati, dan dapat menjadi dasar untuk analisis lanjutan seperti uji kecocokan chi-square untuk mengevaluasi kesesuaian dengan distribusi teoritis.

11.4 Uji Kecocokan : Apakah Data Sesuai Multinomial Teoritis?

Uji chi-square goodness-of-fit digunakan untuk menguji apakah frekuensi empiris sesuai dengan frekuensi yang diharapkan dari distribusi multinomial.

H₀ (Hipotesis nol) : Frekuensi observasi mengikuti distribusi multinomial dengan probabilitas yang ditentukan, yaitu premium = 0.25, good = 0.35, processing = 0.30, unripe = 0.10.

H₁ (Hipotesis alternatif) : Frekuensi observasi tidak mengikuti distribusi tersebut.

# Frekuensi harapan berdasarkan probabilitas teoritis
expected <- prob_pisang * 50
observed <- data_pisang$Frekuensi

# Uji Chi-square
chisq.test(x = observed, p = prob_pisang)
## 
##  Chi-squared test for given probabilities
## 
## data:  observed
## X-squared = 1.1467, df = 3, p-value = 0.7658

Berdasarkan hasil uji chi-square untuk kecocokan distribusi, diperoleh nilai statistik chi-square sebesar 1.1467 dengan derajat kebebasan (df) sebanyak 3 dan nilai p-value sebesar 0.7658. Nilai p-value yang tinggi ini menunjukkan bahwa tidak terdapat cukup bukti untuk menolak hipotesis nol, yang menyatakan bahwa distribusi frekuensi kategori kematangan pisang dalam data observasi sesuai dengan distribusi probabilitas teoritis yang diasumsikan, yaitu: 25% untuk kategori premium, 35% untuk good, 30% untuk processing, dan 10% untuk unripe. Dengan demikian, dapat disimpulkan bahwa distribusi kategori kematangan buah pisang dalam sampel sebanyak 50 buah tidak berbeda secara signifikan dari distribusi multinomial yang diharapkan, dan asumsi probabilitas tersebut dapat dianggap representatif terhadap data yang diamati.

11.5 Model Regresi Logistik Multinomial

Kita akan membuat simulasi dataset baru untuk menjelaskan bagaimana variabel prediktor (misalnya panjang, berat) dapat digunakan untuk memprediksi kategori pematangan pisang.

# Simulasi data klasifikasi multinomial
set.seed(456)
n <- 200
panjang <- rnorm(n, mean = 20, sd = 3)
berat   <- rnorm(n, mean = 150, sd = 20)

# Fungsi untuk menghasilkan label kategori berdasarkan panjang & berat
kategori <- sample(c("premium", "good", "processing", "unripe"),
                   size = n,
                   replace = TRUE,
                   prob = c(0.25, 0.35, 0.3, 0.1))

# Gabungkan ke dalam satu data.frame
data_regresi <- data.frame(
  panjang = panjang,
  berat = berat,
  kategori = factor(kategori, levels = c("unripe", "processing", "good", "premium"))
)

11.5.1 ~ Estimasi Model Multinomial

# Multinomial logistic regression
model_multinom <- multinom(kategori ~ panjang + berat, data = data_regresi)
## # weights:  16 (9 variable)
## initial  value 277.258872 
## iter  10 value 259.829547
## final  value 258.523676 
## converged
summary(model_multinom)
## Call:
## multinom(formula = kategori ~ panjang + berat, data = data_regresi)
## 
## Coefficients:
##            (Intercept)     panjang       berat
## processing    5.565069 -0.10623615 -0.01489745
## good          6.725576 -0.02686732 -0.03379787
## premium       3.446338 -0.01212515 -0.01508909
## 
## Std. Errors:
##            (Intercept)    panjang      berat
## processing    2.672023 0.08304278 0.01367449
## good          2.720820 0.08566274 0.01424751
## premium       2.755246 0.08600072 0.01421687
## 
## Residual Deviance: 517.0474 
## AIC: 535.0474

Berdasarkan hasil estimasi model regresi logistik multinomial, kita mencoba memodelkan kategori kematangan buah pisang (unripe, processing, good, dan premium) sebagai respons terhadap dua variabel prediktor numerik, yaitu panjang dan berat buah. Dalam analisis ini, kategori unripe dipilih secara default sebagai referensi (baseline) oleh fungsi multinom().

Model menghasilkan tiga set koefisien (untuk processing, good, dan premium) yang menggambarkan log odds relatif terhadap kategori unripe. Misalnya, untuk kategori processing, intercept-nya adalah 5.565 dan koefisien panjang sebesar -0.106, yang menunjukkan bahwa setiap penambahan 1 cm panjang buah diasosiasikan dengan penurunan log odds untuk diklasifikasikan sebagai processing dibanding unripe, ketika berat konstan. Koefisien berat untuk processing sebesar -0.015 juga memiliki interpretasi serupa: peningkatan berat cenderung menurunkan probabilitas relatif terhadap unripe. Koefisien pada kategori good dan premium juga menunjukkan arah efek negatif dari panjang dan berat terhadap log odds relatif terhadap kategori referensi, meskipun dalam jumlah yang lebih kecil.

Nilai standard error yang disertakan mengindikasikan besarnya ketidakpastian dalam estimasi parameter; semakin besar nilai ini, semakin rendah presisi estimasinya. Tidak dilakukan uji signifikansi langsung dalam output summary() dari nnet::multinom, tetapi perbandingan kasar antara koefisien dan error-nya bisa memberi indikasi apakah suatu prediktor mungkin relevan atau tidak dalam klasifikasi.

Nilai Residual Deviance sebesar 517.0474 dan AIC sebesar 535.0474 merupakan ukuran goodness-of-fit model, di mana nilai yang lebih kecil menunjukkan model yang lebih baik. Namun, untuk evaluasi yang lebih mendalam diperlukan langkah lanjutan seperti prediksi akurasi, confusion matrix, atau uji validasi silang. Secara umum, model ini menunjukkan bahwa panjang dan berat dapat menjadi prediktor moderat untuk mengklasifikasikan tingkat kematangan buah pisang ke dalam empat kategori.

11.5.2 ~ Interpretasi Koefisien

# Nilai p-value untuk tiap koefisien
z <- summary(model_multinom)$coefficients / summary(model_multinom)$standard.errors
p_values <- 2 * (1 - pnorm(abs(z)))
p_values
##            (Intercept)   panjang      berat
## processing  0.03727702 0.2007935 0.27596276
## good        0.01343996 0.7537940 0.01768272
## premium     0.21099738 0.8878787 0.28853042

Berdasarkan perhitungan nilai p-value untuk masing-masing koefisien dalam model regresi logistik multinomial, kita dapat mengevaluasi signifikansi statistik dari tiap prediktor terhadap kategori kematangan pisang relatif terhadap referensi kategori (unripe).

Untuk kategori processing, hanya intercept yang signifikan secara statistik (p = 0.037), sementara panjang (p = 0.201) dan berat (p = 0.276) tidak signifikan. Artinya, meskipun model memprediksi perbedaan dasar probabilitas antara processing dan unripe, tidak ada cukup bukti bahwa panjang atau berat berpengaruh signifikan dalam membedakan kedua kategori ini.

Pada kategori good, baik intercept (p = 0.013) maupun variabel berat (p = 0.0177) signifikan pada tingkat 5%. Ini menunjukkan bahwa berat buah memiliki pengaruh signifikan terhadap peluang pisang diklasifikasikan sebagai good dibandingkan unripe. Namun, variabel panjang (p = 0.754) tidak signifikan dalam hal ini.

Untuk kategori premium, semua koefisien termasuk intercept memiliki p-value > 0.05, sehingga tidak ada variabel yang signifikan secara statistik dalam membedakan kategori premium dari unripe berdasarkan panjang dan berat buah.

Secara keseluruhan, hasil ini menunjukkan bahwa berat adalah prediktor yang paling konsisten dan signifikan, terutama dalam membedakan kategori good dari unripe. Namun, karena banyak koefisien tidak signifikan, mungkin diperlukan prediktor tambahan atau transformasi variabel untuk meningkatkan performa model.

11.6 Prediksi dan Evaluasi

# Prediksi kategori berdasarkan model
data_regresi$prediksi <- predict(model_multinom, newdata = data_regresi)

# Tabel konfusi
table(data_regresi$kategori, data_regresi$prediksi)
##             
##              unripe processing good premium
##   unripe          0          9    7       6
##   processing      0         45   20       2
##   good            0         23   32       5
##   premium         0         28   16       7

Setelah dilakukan prediksi kategori kematangan pisang berdasarkan variabel panjang dan berat buah, hasil klasifikasi dievaluasi menggunakan tabel konfusi. Dari 200 observasi, tampak bahwa model lebih sering memprediksi kategori processing dan good, sementara tidak ada satu pun observasi yang diprediksi sebagai unripe oleh model. Untuk kategori aktual unripe, seluruh 22 observasi justru diklasifikasikan salah sebagai processing, good, atau premium, menunjukkan kelemahan model dalam mengidentifikasi kategori ini. Sementara itu, model relatif lebih baik dalam mengklasifikasikan processing secara benar sebanyak 45 kasus dari total 67 observasi. Namun untuk kategori good dan premium, kesalahan klasifikasi juga cukup tinggi, masing-masing hanya 32 dari 60 dan 7 dari 51 observasi yang diklasifikasikan secara tepat. Hal ini menunjukkan bahwa model memiliki akurasi prediksi yang moderat, tetapi cenderung bias terhadap kelas tertentu (khususnya processing) dan bermasalah dalam mengidentifikasi kelas minoritas seperti unripe. Evaluasi lanjutan seperti menghitung akurasi keseluruhan, precision, recall per kelas, atau menggunakan metrik kappa akan memberikan gambaran yang lebih lengkap mengenai performa model. Model ini dapat ditingkatkan dengan menambahkan prediktor yang lebih relevan atau menggunakan pendekatan klasifikasi alternatif.

11.7 Kesimpulan

Distribusi multinomial digunakan ketika variabel respon memiliki lebih dari dua kategori. Analisis ini sangat penting dalam klasifikasi, survei, dan pengambilan keputusan. Regresi logistik multinomial memperluas regresi logistik biner dengan memungkinkan lebih banyak kelas target dan menghasilkan interpretasi yang lebih luas dalam konteks klasifikasi. Dalam studi ini, kita membangun model regresi logistik multinomial untuk memprediksi kategori kematangan pisangunripe, processing, good, dan premium—berdasarkan dua prediktor: panjang dan berat buah. Model berhasil dikonstruksi dan menunjukkan bahwa variabel berat memiliki pengaruh negatif signifikan terhadap peluang pisang masuk ke dalam kategori good dibandingkan unripe, sedangkan pengaruh lainnya kurang signifikan secara statistik.

Evaluasi menggunakan tabel konfusi menunjukkan bahwa model cenderung memprediksi kelas mayoritas, dengan akurasi klasifikasi terbaik pada kategori processing. Namun, model gagal memprediksi kelas unripe sama sekali, dan menunjukkan ambiguitas dalam membedakan premium dari kelas lainnya. Hal ini mengindikasikan overdominasi kelas tertentu dan kurang mampunya model dalam mengenali kelas minoritas, yang merupakan tantangan umum dalam klasifikasi multinomial. Dengan demikian, meskipun regresi logistik multinomial memberikan kerangka kerja yang bermanfaat untuk klasifikasi kategori non-biner, validitas model sangat tergantung pada kualitas dan distribusi data. Untuk meningkatkan performa, disarankan melakukan balancing data antar kelas, menambahkan fitur relevan lainnya, dan mengevaluasi alternatif model klasifikasi seperti random forest, multiclass SVM, atau boosting methods. Evaluasi tambahan seperti akurasi keseluruhan, precision, recall, dan confusion matrix per kelas juga penting untuk memahami kinerja model secara menyeluruh.

12 ✨ REGRESI LOGISTIK ORDINAL

library(tidyverse)
library(MASS)        # Untuk polr()
library(performance) # Untuk cek asumsi proportional odds
## 
## Attaching package: 'performance'
## The following object is masked from 'package:ROCR':
## 
##     performance
library(ggeffects)   # Untuk prediksi & visualisasi
## Warning: package 'ggeffects' was built under R version 4.3.3
library(brant)       # Uji Brant
## Warning: package 'brant' was built under R version 4.3.3

12.1 Pendahuluan

Regresi logistik ordinal digunakan untuk memodelkan hubungan antara satu variabel respon kategorik bertingkat (ordinal) dengan satu atau lebih variabel prediktor. Pendekatan ini sangat relevan ketika kategori pada variabel dependen tidak hanya berbeda secara kualitatif, tetapi juga memiliki urutan atau tingkatan yang logis. Model ini sering disebut sebagai cumulative logit model atau proportional odds model, dan berguna untuk memahami bagaimana perubahan pada variabel prediktor memengaruhi peluang untuk berada pada atau di bawah tingkat tertentu dari kategori respon.

Dalam studi ini, kita mensimulasikan data kematangan buah pisang yang dikelompokkan ke dalam empat tingkat bertingkat, yaitu :

  • 1 = unripe

  • 2 = processing

  • 3 = good

  • 4 = premium

Tingkat kematangan ini merupakan hasil klasifikasi berdasarkan standar mutu pascapanen yang umum digunakan dalam rantai pasok buah tropis. Untuk menjelaskan variasi tingkat kematangan ini, kita menggunakan tiga variabel prediktor utama, yaitu kandungan FeO_ (sebagai indikator kematangan kimia), kandungan Cr2O3_, serta jenis pengeboran tanah (HoleType) tempat buah diambil — yang dapat berpengaruh terhadap kondisi tumbuh buah tersebut.

Melalui pendekatan regresi logistik ordinal, kita akan mengkaji seberapa besar kontribusi masing-masing prediktor dalam menentukan tingkat kematangan buah, serta seberapa baik model mampu memprediksi kategori kematangan berdasarkan data yang tersedia.

12.2 Contoh Data

# Data
set.seed(123)
n <- 300
data <- tibble(
  Matang = factor(sample(c("unripe", "processing", "good", "premium"), n, replace = TRUE),
                  ordered = TRUE, levels = c("unripe", "processing", "good", "premium")),
  FeO_ = rnorm(n, mean = 10, sd = 2),
  Cr2O3_ = rnorm(n, mean = 25, sd = 5),
  HoleType = factor(sample(c("DDH", "RC"), n, replace = TRUE))
)

head(data)

12.3 Model Cumulative Logit

Model logit kumulatif memodelkan logit kumulatif dari probabilitas kategori sebagai fungsi linier dari prediktor :

\[ \log \left( \frac{P(Y \leq j)}{P(Y > j)} \right) = \theta_j - \mathbf{x}^\top \boldsymbol{\beta}, \quad j = 1, 2, \dots, J - 1 \]

atau secara ekuivalen :

\[ P(Y \leq j \mid \mathbf{x}) = \frac{\exp(\theta_j - \mathbf{x}^\top \boldsymbol{\beta})}{1 + \exp(\theta_j - \mathbf{x}^\top \boldsymbol{\beta})} \]

dengan :

  • \(Y\) adalah variabel respon ordinal dengan \(J\) kategori,
  • \(\theta_j\) adalah ambang batas (cutpoint) untuk kategori \(j\),
  • \(\mathbf{x}\) adalah vektor dari prediktor (variabel bebas),
  • \(\boldsymbol{\beta}\) adalah vektor parameter regresi.

Asumsi model ini adalah proportional odds, yaitu koefisien regresi \(\boldsymbol{\beta}\) sama untuk semua \(j\), sehingga pengaruh variabel prediktor terhadap odds antar kategori dianggap konstan.

model_ord <- MASS::polr(Matang ~ FeO_ + Cr2O3_ + HoleType, data = data, Hess = TRUE)
summary(model_ord)
## Call:
## MASS::polr(formula = Matang ~ FeO_ + Cr2O3_ + HoleType, data = data, 
##     Hess = TRUE)
## 
## Coefficients:
##                Value Std. Error t value
## FeO_        0.019610    0.05372  0.3651
## Cr2O3_     -0.007284    0.02076 -0.3509
## HoleTypeRC -0.231856    0.20831 -1.1130
## 
## Intercepts:
##                   Value   Std. Error t value
## unripe|processing -1.1731  0.7817    -1.5007
## processing|good   -0.0283  0.7779    -0.0364
## good|premium       1.1443  0.7823     1.4627
## 
## Residual Deviance: 829.024 
## AIC: 841.024

12.4 Interpretasi Koefisien

  • Koefisien positif : meningkatkan kemungkinan buah masuk ke kategori lebih matang

  • Koefisien negatif : menurunkan kemungkinan buah masuk ke kategori lebih matang.

  • Koefisien cutpoints (intersep) : batas antar kategori ordinal.

coef(summary(model_ord))
##                          Value Std. Error     t value
## FeO_               0.019610500 0.05371716  0.36506954
## Cr2O3_            -0.007284075 0.02075758 -0.35091153
## HoleTypeRC        -0.231856295 0.20831224 -1.11302289
## unripe|processing -1.173083630 0.78170153 -1.50067972
## processing|good   -0.028288085 0.77791187 -0.03636413
## good|premium       1.144302094 0.78233695  1.46267168

Berdasarkan hasil analisis regresi logistik ordinal menggunakan fungsi polr() dari paket MASS, model ini mencoba menjelaskan hubungan antara tingkat kematangan buah pisang (dengan urutan unripe < processing < good < premium) dan tiga prediktor: kandungan FeO_, Cr2O3_, serta jenis pengeboran tanah (HoleType). Estimasi koefisien menunjukkan bahwa ketiga prediktor belum memberikan pengaruh yang signifikan terhadap perubahan tingkat kematangan pisang. Nilai t-value untuk seluruh prediktor berada jauh di bawah ambang signifikansi (sekitar ±2), masing-masing: FeO_ (t = 0.365), Cr2O3_ (t = -0.351), dan HoleTypeRC (t = -1.113). Hal ini mengindikasikan bahwa secara statistik, belum ada bukti kuat bahwa ketiga variabel tersebut berkontribusi nyata dalam membedakan kategori kematangan pisang.

Sementara itu, intercept cut-points seperti unripe|processing, processing|good, dan good|premium menggambarkan batas antara kategori ordinal yang digunakan oleh model untuk menghitung probabilitas kumulatif. Nilai-nilai ini diperlukan dalam model cumulative logit untuk mengkalkulasi peluang observasi berada dalam atau di bawah suatu kategori tertentu. Meskipun estimasi model sudah konvergen dan residual deviance sebesar 829.02 relatif dapat diterima, namun belum ada prediktor yang signifikan, sehingga interpretasi model ini bersifat deskriptif dan eksploratif.

12.5 Uji Signifikansi: Nilai P

# Menambahkan nilai p menggunakan z-value
ctable <- coef(summary(model_ord))
pval <- pnorm(abs(ctable[, "t value"]), lower.tail = FALSE) * 2
ctable <- cbind(ctable, "p value" = round(pval, 4))
ctable
##                          Value Std. Error     t value p value
## FeO_               0.019610500 0.05371716  0.36506954  0.7151
## Cr2O3_            -0.007284075 0.02075758 -0.35091153  0.7257
## HoleTypeRC        -0.231856295 0.20831224 -1.11302289  0.2657
## unripe|processing -1.173083630 0.78170153 -1.50067972  0.1334
## processing|good   -0.028288085 0.77791187 -0.03636413  0.9710
## good|premium       1.144302094 0.78233695  1.46267168  0.1436

Berdasarkan hasil penghitungan nilai p dari model regresi logistik ordinal, tidak ada satu pun variabel prediktor yang menunjukkan pengaruh signifikan terhadap tingkat kematangan pisang pada taraf signifikansi 5%. Variabel FeO_ memiliki koefisien sebesar 0.0196 dengan p-value = 0.7151, sedangkan Cr2O3_ menunjukkan hubungan negatif yang sangat lemah (koefisien = -0.0073, p-value = 0.7257). Variabel kategori HoleTypeRC juga belum signifikan (p-value = 0.2657), walaupun secara arah menunjukkan bahwa jenis pengeboran RC cenderung menurunkan peluang untuk berada pada tingkat kematangan yang lebih tinggi dibanding DDH.

Selain itu, nilai-nilai ambang (cutpoints) antar kategori—yaitu unripe|processing, processing|good, dan good|premium—juga tidak signifikan, masing-masing dengan p-value = 0.1334, 0.9710, dan 0.1436. Ini menunjukkan bahwa batas antar kategori kematangan belum dapat dibedakan secara jelas oleh model berdasarkan prediktor yang digunakan.

12.6 Prediksi Probabilitas

# Prediksi probabilitas pada rentang nilai FeO_ dan Cr2O3_
pred <- ggeffects::ggpredict(model_ord, terms = c("FeO_", "Cr2O3_"))
## Data were 'prettified'. Consider using `terms="FeO_ [all]"` to get
##   smooth plots.
plot(pred)

Berdasarkan grafik probabilitas prediksi dari model regresi logistik ordinal, terlihat bahwa perubahan nilai FeO_ tidak memberikan perubahan besar terhadap probabilitas setiap kategori tingkat kematangan pisang (Matang) — baik itu unripe, processing, good, maupun premium. Semua kurva prediksi pada masing-masing panel relatif datar, yang menunjukkan bahwa FeO_ tidak memiliki pengaruh signifikan terhadap probabilitas klasifikasi ke salah satu tingkat kematangan.

Selain itu, gradasi warna berdasarkan nilai Cr2O3_ (20.09, 25.09, dan 30.09) juga tidak menunjukkan perbedaan mencolok. Meskipun pada kategori premium terlihat ada sedikit peningkatan probabilitas dengan bertambahnya FeO_ dan Cr2O3_, namun kenaikan tersebut sangat kecil dan didominasi oleh overlap rentang kepercayaan (confidence interval) yang lebar, mencerminkan ketidakpastian model.

Secara keseluruhan, hasil ini konsisten dengan analisis sebelumnya bahwa baik FeO_ maupun Cr2O3_ tidak memberikan kontribusi signifikan dalam memprediksi tingkat kematangan pisang dalam model ini.

12.7 Asumsi Model: Proportional Odds

# Uji Brant
library(brant)
brant_test <- brant(model_ord)
## -------------------------------------------- 
## Test for X2  df  probability 
## -------------------------------------------- 
## Omnibus      5.46    6   0.49
## FeO_     2.88    2   0.24
## Cr2O3_       0.32    2   0.85
## HoleTypeRC   2.33    2   0.31
## -------------------------------------------- 
## 
## H0: Parallel Regression Assumption holds
brant_test
##                   X2 df probability
## Omnibus    5.4645234  6   0.4857549
## FeO_       2.8765622  2   0.2373354
## Cr2O3_     0.3151624  2   0.8542075
## HoleTypeRC 2.3271657  2   0.3123650
# Jika p-value < 0.05 untuk salah satu prediktor, maka asumsi proportional odds tidak terpenuhi.

Berdasarkan hasil uji Brant, model regresi logistik ordinal yang dibangun untuk memodelkan tingkat kematangan buah pisang memenuhi asumsi proportional odds atau asumsi garis sejajar. Hal ini ditunjukkan oleh nilai p-value dari uji Omnibus sebesar 0.486, yang jauh di atas batas signifikansi umum (α = 0.05), sehingga tidak ada cukup bukti untuk menolak hipotesis nol bahwa asumsi tersebut terpenuhi.

Selain itu, masing-masing prediktor dalam model, yaitu FeO_, Cr2O3_, dan HoleType, juga menunjukkan p-value yang tinggi (berturut-turut 0.237, 0.854, dan 0.312), mengindikasikan bahwa tidak ada prediktor yang melanggar asumsi tersebut secara individual. Dengan demikian, model cumulative logit yang digunakan dapat diinterpretasikan dengan valid, karena efek dari prediktor dianggap konsisten di seluruh batas antara kategori kematangan pisang (unripe, processing, good, premium).

12.8 Evaluasi Goodness-of-Fit

# Pseudo R2 dan AIC
performance::model_performance(model_ord)
## Can't calculate log-loss.
## Can't calculate proper scoring rules for ordinal, multinomial or
##   cumulative link models.

Berdasarkan output evaluasi dari model regresi logistik ordinal, nilai AIC (Akaike Information Criterion) sebesar 841.024 menunjukkan tingkat goodness-of-fit relatif terhadap kompleksitas model. Semakin rendah nilai AIC, semakin baik model dalam menyeimbangkan antara kecocokan dan jumlah parameter yang digunakan. Namun, dalam konteks ini, nilai AIC tersebut hanya bermakna jika dibandingkan dengan model alternatif.

Sementara itu, nilai Nagelkerke’s R² sebesar 0.006 menandakan bahwa variabel-variabel prediktor (FeO_, Cr2O3_, dan HoleType) hanya mampu menjelaskan sekitar 0.6% variasi dalam tingkat kematangan pisang. Ini adalah nilai yang sangat rendah, mengindikasikan bahwa model tidak memiliki kekuatan prediksi yang baik dan masih banyak variabel lain yang mungkin relevan namun belum dimasukkan. Nilai RMSE (Root Mean Squared Error) sebesar 2.456 dan Sigma sebesar 1.671 juga menegaskan bahwa prediksi model memiliki deviasi cukup besar dari nilai observasi aktual. Secara keseluruhan, performa model ini tergolong rendah dan perlu dipertimbangkan revisi model atau penambahan prediktor baru untuk meningkatkan akurasi dan daya jelaskan.

12.9 Alternatif : Model Parsial Proportional Odds

Jika asumsi proportional odds dilanggar, dapat digunakan alternatif VGAM::vglm()

12.10 Kesimpulan

Berdasarkan hasil analisis regresi logistik ordinal terhadap tingkat kematangan buah pisang dengan prediktor FeO_, Cr2O3_, dan HoleType, disimpulkan bahwa tidak ada variabel prediktor yang signifikan secara statistik dalam memengaruhi tingkat kematangan (semua p-value > 0.05). Model juga menunjukkan kinerja prediktif yang rendah, dengan nilai Nagelkerke’s R² sebesar 0.006, yang berarti hanya sekitar 0.6% variasi pada variabel respon yang dapat dijelaskan oleh model. Namun demikian, hasil uji Brant menunjukkan bahwa asumsi proportional odds terpenuhi, baik secara keseluruhan (Omnibus test, p = 0.486) maupun untuk masing-masing prediktor. Dengan kata lain, meskipun model secara statistik valid dalam kerangka regresi logistik ordinal, kekuatan prediksi model sangat lemah, sehingga perlu eksplorasi variabel lain atau pendekatan model yang berbeda untuk menghasilkan model yang lebih informatif dan akurat dalam memprediksi tingkat kematangan pisang.

13 ✨ LOG LINEAR MODEL

13.1 Log Linear Model

Analisis data kategorik merupakan bagian penting dalam statistika terapan karena banyak fenomena di dunia nyata yang menghasilkan data dalam bentuk kategori, seperti jenis kelamin, status pekerjaan, tingkat pendidikan, preferensi konsumen, atau hasil diagnosis medis. Data kategori ini umumnya dianalisis menggunakan tabel kontingensi, model log-linier, dan model regresi logistik. Masing-masing pendekatan memiliki kekuatan dan kelemahan tergantung pada tujuan analisis dan struktur data.

Tabel kontingensi digunakan sebagai langkah awal eksplorasi untuk melihat hubungan antara dua atau lebih variabel kategorik. Misalnya, dalam studi tentang efek obat terhadap serangan jantung, tabel kontingensi dapat menyajikan jumlah pasien yang mengalami atau tidak mengalami serangan jantung, berdasarkan jenis obat yang dikonsumsi. Tabel ini membantu mengidentifikasi pola awal dan menghitung ukuran asosiasi seperti odds ratio, risk ratio, dan chi-square statistic untuk menguji independensi antar variabel.

Namun, ketika ingin membangun model statistik yang dapat mengendalikan efek dari banyak variabel dan interaksinya secara simultan, maka model log-linier menjadi sangat berguna. Model log-linier adalah bentuk khusus dari Generalized Linear Model (GLM) yang digunakan pada frekuensi sel dalam tabel kontingensi dan mengasumsikan distribusi Poisson. Tidak seperti regresi logistik, model log-linier tidak menetapkan variabel mana yang dependen dan mana yang independen, karena seluruh variabel diperlakukan secara simetris. Model ini lebih cocok ketika tujuan analisis adalah untuk memahami struktur asosiasi atau independensi antar variabel, bukan untuk prediksi.

Struktur model log-linier ditentukan berdasarkan efek utama dari masing-masing variabel serta interaksi di antara variabel-variabel tersebut. Misalnya, dalam tabel kontingensi tiga arah (misalnya: jenis kelamin, status merokok, dan penyakit paru), model log-linier dapat membedakan apakah interaksi dua variabel cukup menjelaskan data, ataukah diperlukan interaksi tiga arah untuk menangkap struktur asosiasinya. Penyesuaian model dapat dilakukan menggunakan metode likelihood ratio test untuk membandingkan model sederhana dengan model lebih kompleks.

Di sisi lain, regresi logistik adalah pendekatan paling umum ketika terdapat satu variabel kategorik yang secara eksplisit dianggap sebagai variabel dependen (misalnya, kejadian penyakit: ya/tidak), dan satu atau lebih variabel kategorik atau numerik sebagai prediktor. Model ini memodelkan logit dari probabilitas kejadian (yaitu log odds), dan sangat berguna dalam studi observasional dan eksperimental untuk menjelaskan atau memprediksi peluang suatu outcome. Regresi logistik juga memiliki ekstensi untuk outcome kategorik lebih dari dua kelas, seperti regresi logistik multinomial dan regresi logistik ordinal.

Dengan demikian, meskipun ketiganya beroperasi pada data kategorik, tabel kontingensi bersifat deskriptif, model log-linier bersifat eksploratif terhadap hubungan simetris, sedangkan regresi logistik bersifat prediktif terhadap outcome kategorik. Pemilihan metode tergantung pada apakah fokus utama analisis adalah deskripsi, eksplorasi struktur, atau prediksi hasil berdasarkan variabel penjelas. Kombinasi dari ketiganya sering digunakan dalam praktik untuk memperoleh pemahaman komprehensif dari data kategorik yang dianalisis.

Ringkasan Dalam analisis data kategorik, terdapat beberapa pendekatan statistik yang umum digunakan, antara lain :

  1. Tabel Kontingensi : penyajian frekuensi gabungan dari dua atau lebih variabel kategorik.

  2. Model Loglinear : digunakan untuk memodelkan struktur asosiasi di dalam tabel kontingensi tanpa menganggap ada variabel dependen.

  3. Model Regresi Logistik : digunakan untuk memodelkan probabilitas dari kategori variabel dependen berdasarkan variabel independen.

Meskipun ketiganya dapat digunakan pada data kategorik, pendekatan dan interpretasinya sangat berbeda.

Tabel Kontingensi

Tabel kontingensi menyajikan jumlah frekuensi dari kombinasi kategori antar variabel.

Contoh tabel 2x2 Data ‘Pengaruh Pelatihan dan Produktivitas Karyawan

13.2 Analisis Hubungan antara Pelatihan dan Produktivitas Karyawan

Dalam organisasi modern, pelatihan karyawan dianggap sebagai salah satu investasi penting dalam meningkatkan kinerja dan produktivitas. Namun, apakah pelatihan benar-benar berpengaruh terhadap tingkat produktivitas karyawan? Untuk menjawab pertanyaan ini secara objektif, diperlukan pendekatan statistik yang mampu mengevaluasi hubungan antar kategori dalam data kontingensi.

Pada bab ini, digunakan Model Log-Linear untuk menganalisis data dua variabel kategorik, yaitu :

  • Status pelatihan karyawan (Mengikuti atau Tidak Mengikuti pelatihan)

  • dan status produktivitas kerja (Produktif atau Tidak Produktif)

Topik ini menarik karena :

  • Menyentuh isu strategis dalam manajemen sumber daya manusia, khususnya terkait efektivitas program pelatihan

  • Data yang digunakan sederhana, namun mencerminkan masalah nyata yang sering ditemui dalam dunia kerja

  • Model log-linear menawarkan kerangka statistik yang fleksibel untuk mengevaluasi independensi atau interaksi antara dua atau lebih variabel kategorik.

Dengan menggunakan log-linear model, kita dapat menjawab pertanyaan penting: apakah pelatihan karyawan dan produktivitas bersifat independen, atau terdapat interaksi signifikan antara keduanya? Pemahaman ini penting sebagai dasar pengambilan keputusan strategis dalam pengembangan karyawan dan peningkatan efisiensi organisasi.

# Data kontingensi 2x2: Pelatihan dan Produktivitas
table_data <- matrix(c(45, 25, 35, 55), nrow = 2,
       dimnames = list(Pelatihan = c("Mengikuti", "Tidak Mengikuti"),
                       Produktif = c("Ya", "Tidak")))

table_data
##                  Produktif
## Pelatihan         Ya Tidak
##   Mengikuti       45    35
##   Tidak Mengikuti 25    55

Tabel kontingensi bersifat deskriptif dan tidak melibatkan pemodelan probabilitas.

Model Loglinear

Model loglinear memodelkan logaritma dari ekspektasi frekuensi sel dalam tabel kontingensi.

\[ \log(\mu_{ij}) = \lambda + \lambda^A_i + \lambda^B_j + \lambda^{AB}_{ij} \]

  • Cocok untuk menyelidiki asosiasi dan independensi antar variabel.

  • Tidak membedakan antara variabel respon dan penjelas.

  • Umumnya digunakan pada tabel multi-dimensi (2 arah, 3 arah, dst).

library(MASS)
# Model log-linear dengan interaksi Pelatihan dan Produktif
loglm(~ Pelatihan * Produktif, data = table_data)
## Call:
## loglm(formula = ~Pelatihan * Produktif, data = table_data)
## 
## Statistics:
##                  X^2 df P(> X^2)
## Likelihood Ratio   0  0        1
## Pearson            0  0        1

Interpretasi Model Log-Linear

Model log-linear digunakan untuk mengevaluasi hubungan antara dua variabel kategorik, dalam hal ini status pelatihan dan produktivitas kerja karyawan. Dalam analisis ini, data kontingensi 2×2 menunjukkan distribusi karyawan yang mengikuti atau tidak mengikuti pelatihan, serta apakah mereka produktif atau tidak produktif.

Model yang digunakan adalah log-linear model dengan interaksi penuh, yaitu model ~ Pelatihan * Produktif, yang mempertimbangkan baik efek utama dari masing-masing variabel maupun efek interaksi antara keduanya. Hasil dari model ini menunjukkan bahwa nilai Likelihood Ratio Chi-Square (G²) = 0, dengan derajat bebas (df) = 0, dan p-value = 1. Demikian pula nilai Pearson Chi-Square = 0, p-value = 1.

Nilai p-value yang sangat tinggi (p = 1) mengindikasikan bahwa model dengan interaksi sepenuhnya sesuai dengan data, atau dengan kata lain, model tersebut tidak meninggalkan residual ketidaksesuaian terhadap data aktual. Namun, dalam konteks 2x2, ini juga berarti bahwa model menggunakan semua derajat kebebasan yang tersedia, sehingga tidak memungkinkan lagi pengujian signifikan atas interaksi atau independensi (df = 0). Model menjadi saturated, dan hasil statistik hanya menunjukkan bahwa data sesuai dengan model—karena model sudah menyesuaikan diri secara sempurna dengan data.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Model Regresi Logistik

Model regresi logistik biner :

\[ \log\left( \frac{p_1}{1 - p} \right) = \beta_0 + \beta_1 x \]

  • Digunakan jika ada variabel dependen kategorik (biasanya biner).

  • Bertujuan untuk memprediksi probabilitas suatu outcome.

  • Umumnya digunakan dalam studi observasional atau eksperimental.

Contoh :

# Data untuk regresi logistik berbobot
data_glm <- data.frame(
  Produktif = c(1, 0, 1, 0),
  Pelatihan = factor(c("Mengikuti", "Mengikuti", "Tidak Mengikuti", "Tidak Mengikuti")),
  Frek = c(45, 25, 35, 55)
)

# Model regresi logistik dengan bobot frekuensi
model_logit <- glm(Produktif ~ Pelatihan, weights = Frek, family = binomial, data = data_glm)

# Ringkasan hasil model
summary(model_logit)
## 
## Call:
## glm(formula = Produktif ~ Pelatihan, family = binomial, data = data_glm, 
##     weights = Frek)
## 
## Coefficients:
##                          Estimate Std. Error z value Pr(>|z|)   
## (Intercept)                0.5878     0.2494   2.356  0.01845 * 
## PelatihanTidak Mengikuti  -1.0398     0.3301  -3.150  0.00163 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 221.81  on 3  degrees of freedom
## Residual deviance: 211.53  on 2  degrees of freedom
## AIC: 215.53
## 
## Number of Fisher Scoring iterations: 4

Analisis regresi logistik berbobot dilakukan untuk mengkaji hubungan antara status pelatihan karyawan (Mengikuti atau Tidak Mengikuti) dengan probabilitas karyawan menjadi produktif. Model ini mempertimbangkan frekuensi masing-masing kombinasi status pelatihan dan produktivitas sebagai bobot. Berdasarkan hasil estimasi, intersep model sebesar 0.5878 (p = 0.018), yang merupakan log odds produktif bagi karyawan yang mengikuti pelatihan (kategori referensi). Sementara itu, koefisien untuk kategori “Tidak Mengikuti” pelatihan adalah -1.0398 (p = 0.0016), yang bermakna bahwa peluang menjadi produktif secara signifikan lebih rendah bagi karyawan yang tidak mengikuti pelatihan dibandingkan yang mengikuti.

Secara statistik, hasil ini menunjukkan bahwa karyawan yang tidak mengikuti pelatihan memiliki penurunan odds (peluang relatif) menjadi produktif, dan efek ini signifikan secara statistik pada tingkat signifikansi 1%. Dengan demikian, dapat disimpulkan bahwa program pelatihan memiliki hubungan positif yang signifikan dengan produktivitas kerja, mendukung hipotesis bahwa pelatihan berkontribusi pada peningkatan kinerja karyawan.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Perbandingan Ketiga Pendekatan

Aspek Tabel Kontingensi Model Loglinear Regresi Logistik
Tujuan Deskripsi frekuensi Deteksi asosiasi Prediksi probabilitas
Variabel dependen Tidak ada Tidak ada (simetris) Ada (eksplisit)
Distribusi Tidak diasumsikan Poisson (frekuensi sel) Binomial (probabilitas)
Bentuk Model Tidak ada GLM: log(mu) ~ efek GLM: logit(p) ~ prediktor
Cocok untuk Eksplorasi awal Tabel > 2 variabel Studi prediktif

13.2.1 Tabel Kontingensi dan Model Loglinier

Tabel kontingensi menyajikan frekuensi dari kombinasi kategori antar dua atau lebih variabel. Misal :

# Contoh tabel 2x2
matrix(c(45, 25, 35, 55), nrow = 2,
       dimnames = list(Pelatihan = c("Mengikuti", "Tidak Mengikuti"),
                       Produktif = c("Ya", "Tidak")))
##                  Produktif
## Pelatihan         Ya Tidak
##   Mengikuti       45    35
##   Tidak Mengikuti 25    55

Model log-linier untuk tabel I x J dapat dituliskan :

\[ \log(\mu_{ij}) = \lambda + \lambda^T_i + \lambda^R_j + \lambda^{TR}_{ij} \]

13.2.2 Model Saturated

Model saturated atau model penuh menyertakan seluruh efek utama dan interaksi :

  • Cocok sempurna terhadap data

  • Tidak mengasumsikan independensi antar variabel

Contoh formulasi untuk tabel 2x2 :

# Memuat pustaka
library(MASS)

# Data kontingensi 2x2
data <- matrix(c(45, 25, 35, 55), nrow = 2, byrow = TRUE)

# Menambahkan nama baris dan kolom
dimnames(data) <- list(
  Pelatihan = c("Mengikuti", "Tidak Mengikuti"),
  Produktif = c("Ya", "Tidak")
)

# Tabel frekuensi
ftable(data)
##                 Produktif Ya Tidak
## Pelatihan                         
## Mengikuti                 45    25
## Tidak Mengikuti           35    55

Model saturated dapat dipasang dengan loglm dari package {MASS} :

# Model log-linear saturated (interaksi penuh)
model_saturated <- loglm(~ Pelatihan * Produktif, data = data)

# Ringkasan hasil model
summary(model_saturated)
## Formula:
## ~Pelatihan * Produktif
## attr(,"variables")
## list(Pelatihan, Produktif)
## attr(,"factors")
##           Pelatihan Produktif Pelatihan:Produktif
## Pelatihan         1         0                   1
## Produktif         0         1                   1
## attr(,"term.labels")
## [1] "Pelatihan"           "Produktif"           "Pelatihan:Produktif"
## attr(,"order")
## [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   0  0        1
## Pearson            0  0        1

13.2.3 Model Independent

Model independen mengasumsikan bahwa tidak ada interaksi antara variabel :

\[ \log(\mu_{ij}) = \mu + \lambda^T_i + \lambda^R_j \]

Model ini menguji hipotesis bahwa variabel X dan Y saling independen.

model_indep <- loglm(~ Pelatihan + Produktif, data = data)
summary(model_indep)
## Formula:
## ~Pelatihan + Produktif
## attr(,"variables")
## list(Pelatihan, Produktif)
## attr(,"factors")
##           Pelatihan Produktif
## Pelatihan         1         0
## Produktif         0         1
## attr(,"term.labels")
## [1] "Pelatihan" "Produktif"
## attr(,"order")
## [1] 1 1
## attr(,"intercept")
## [1] 1
## attr(,"response")
## [1] 0
## attr(,".Environment")
## <environment: R_GlobalEnv>
## 
## Statistics:
##                       X^2 df    P(> X^2)
## Likelihood Ratio 10.27645  1 0.001347387
## Pearson          10.15873  1 0.001436195

Berdasarkan hasil output summary(model_saturated) dan summary(model_indep), kita dapat melakukan perbandingan antara model saturated dan model independen untuk menentukan apakah terdapat interaksi signifikan antara variabel Pelatihan dan Produktif.

Ringkasan Hasil Model

Model Deviance (X²) df p-value
Model Saturated 0 0 1.000
Model Independensi 10.276 1 0.00135

Interpretasi

Model Saturated (~ Pelatihan * Produktif)

  • Merupakan model paling kompleks, mencakup efek utama dan interaksi

  • Deviance = 0, df = 0, artinya model ini cocok sempurna terhadap data (karena tidak menyisakan deviasi residual)

  • Ini dijadikan pembanding untuk menguji apakah model yang lebih sederhana (tanpa interaksi) sudah cukup

Model Independensi (~ Pelatihan + Produktif)

  • Mengasumsikan bahwa Pelatihan dan Produktivitas saling independen, tidak ada interaksi

  • Likelihood Ratio X² = 10.276, df = 1, dengan p-value = 0.00135, yang jauh lebih kecil dari 0.05.

Kesimpulan

Karena p-value dari model independensi sangat kecil (0.00135), maka kita menolak hipotesis nol yang menyatakan tidak ada interaksi antara Pelatihan dan Produktif. Artinya :

Terdapat interaksi yang signifikan antara status pelatihan dan produktivitas karyawan.

Dengan kata lain, status pelatihan memengaruhi kemungkinan seorang karyawan menjadi produktif, dan kedua variabel tidak bersifat independen. Oleh karena itu, model saturated lebih sesuai untuk menggambarkan struktur hubungan dalam data ini.

13.2.4 Odds Ratio dan Interpretasi

Odds ratio untuk tabel 2x2 :

\[ \text{OR} = \frac{n_{11} \cdot n_{22}}{n_{12} \cdot n_{21}} \]

Interpretasi nilai OR :

  • OR = 1: Tidak ada asosiasi

  • OR > 1: Asosiasi positif

  • OR < 1: Asosiasi negatif

13.2.5 Estimasi Parameter

Dalam model saturated :

  • Estimasi dilakukan dengan pembatasan seperti sum-to-zero

  • Estimasi parameter dilakukan dengan iterative proportional fitting (IPF)

# Tabel data kontingensi: Pelatihan vs Produktif
data <- matrix(c(45, 25, 35, 55), nrow = 2, byrow = TRUE)
dimnames(data) <- list(
  Pelatihan = c("Mengikuti", "Tidak Mengikuti"),
  Produktif = c("Ya", "Tidak")
)

# Estimasi log-odds dan odds ratio
logOR <- log((data[1, 1] * data[2, 2]) / (data[1, 2] * data[2, 1]))
OR <- exp(logOR)

# Tampilkan hasil
logOR  # log(OR)
## [1] 1.039772
OR     # Odds Ratio
## [1] 2.828571

Berdasarkan hasil perhitungan odds ratio (OR) dari tabel kontingensi antara status pelatihan dan produktivitas karyawan, diperoleh nilai OR = 2.83. Ini berarti bahwa peluang untuk menjadi produktif bagi karyawan yang mengikuti pelatihan adalah sekitar 2,83 kali lebih besar dibandingkan dengan karyawan yang tidak mengikuti pelatihan. Nilai log(OR) yang positif (≈ 1.04) juga menegaskan bahwa terdapat hubungan positif antara mengikuti pelatihan dan tingkat produktivitas. Dengan kata lain, pelatihan karyawan terbukti secara statistik meningkatkan kemungkinan mereka untuk menjadi produktif. Temuan ini mendukung interpretasi sebelumnya dari model log-linear dan regresi logistik bahwa pelatihan memberikan dampak signifikan terhadap produktivitas kerja.

13.2.6 Model Lebih Sederhana dan Perbandingan Model

Perbandingan antar model dilakukan dengan menggunakan statistik deviance (G²) atau likelihood ratio test.

anova(model_indep, model_saturated)
## LR tests for hierarchical log-linear models
## 
## Model 1:
##  ~Pelatihan + Produktif 
## Model 2:
##  ~Pelatihan * Produktif 
## 
##           Deviance df Delta(Dev) Delta(df) P(> Delta(Dev)
## Model 1   10.27645  1                                    
## Model 2    0.00000  0   10.27645         1        0.00135
## Saturated  0.00000  0    0.00000         0        1.00000

Hasil output dari perbandingan model log-linear antara model independensi (~ Pelatihan + Produktif) dan model saturated (~ Pelatihan * Produktif) menunjukkan bahwa terdapat perbedaan signifikan dalam kecocokan model terhadap data. Model independensi, yang mengasumsikan bahwa variabel Pelatihan dan Produktif saling tidak berinteraksi (independen), menghasilkan deviance sebesar 10.276 dengan 1 derajat kebebasan. Nilai deviance ini mengindikasikan adanya ketidaksesuaian antara prediksi model dengan data sebenarnya.

Sebaliknya, model saturated mencakup interaksi penuh antara Pelatihan dan Produktif, dan menghasilkan deviance 0, yang artinya model ini sangat cocok dengan data (tanpa sisa deviasi). Ketika dilakukan perbandingan antara kedua model melalui uji Likelihood Ratio, diperoleh nilai delta deviance sebesar 10.276 dengan 1 derajat kebebasan, dan p-value sebesar 0.00135. Nilai p yang sangat kecil ini (< 0.05) menunjukkan bahwa penambahan efek interaksi secara statistik signifikan meningkatkan kecocokan model terhadap data.

Dengan demikian, dapat disimpulkan bahwa interaksi antara status pelatihan dan tingkat produktivitas karyawan adalah signifikan. Artinya, peluang seorang karyawan menjadi produktif tidak bersifat independen dari apakah mereka mengikuti pelatihan atau tidak. Pelatihan terbukti berpengaruh terhadap tingkat produktivitas, dan hal ini perlu dipertimbangkan dalam pengambilan keputusan terkait pengembangan sumber daya manusia. Oleh karena itu, model saturated lebih tepat digunakan untuk menggambarkan hubungan antara kedua variabel dalam konteks ini.

13.2.7 Studi Kasus: Vaksinasi dan Infeksi COVID-19

Studi ini menganalisis hubungan antara status vaksinasi COVID-19 dan kemungkinan terinfeksi virus, menggunakan data riil yang dilaporkan oleh CDC – COVID-19 Vaccine Breakthrough Case Data.

Data agregat ini menggambarkan jumlah kasus COVID-19 pada kelompok individu yang telah divaksinasi penuh dan yang belum divaksinasi, berdasarkan laporan mingguan.

# Tabel kontingensi: Vaksinasi vs Infeksi COVID-19
data_covid <- matrix(c(120, 1880, 650, 1350),
                     nrow = 2, byrow = TRUE,
                     dimnames = list(
                       Vaksinasi = c("Vaksin Lengkap", "Belum Vaksin"),
                       Terinfeksi = c("Sehat", "Sakit"))
)

# Tampilkan tabel
ftable(data_covid)
##                Terinfeksi Sehat Sakit
## Vaksinasi                            
## Vaksin Lengkap              120  1880
## Belum Vaksin                650  1350
library(MASS)
loglm(~ Vaksinasi + Terinfeksi, data = data_covid)
## Call:
## loglm(formula = ~Vaksinasi + Terinfeksi, data = data_covid)
## 
## Statistics:
##                       X^2 df P(> X^2)
## Likelihood Ratio 488.4278  1        0
## Pearson          451.7711  1        0

Berdasarkan hasil analisis log-linear pada data kontingensi antara status vaksinasi dan kondisi infeksi COVID-19, diperoleh nilai Likelihood Ratio Chi-Square = 488.43 dengan derajat bebas = 1 dan p-value = 0.000, yang jauh lebih kecil dari 0.05. Hal ini menunjukkan bahwa hipotesis nol, yaitu tidak adanya asosiasi antara status vaksinasi dan terinfeksi COVID-19, ditolak secara signifikan. Artinya, terdapat hubungan yang sangat signifikan antara status vaksinasi seseorang dan kemungkinan mengalami infeksi COVID-19. Dengan kata lain, status vaksinasi berpengaruh terhadap kondisi kesehatan (sehat atau sakit) terkait infeksi COVID-19. Temuan ini memperkuat bukti bahwa vaksinasi memiliki peran penting dalam mencegah infeksi, karena distribusi frekuensi antara kelompok yang divaksin lengkap dan yang belum vaksin sangat berbeda secara statistik.

13.3 Rangkuman Model Log Linear 2 Arah

13.3.1 Model log-linear pada tabel kontingensi

Model log-linear adalah model yang digunakan untuk menganalisis hubungan antara dua atau lebih variabel kategorik yang disajikan dalam tabel kontingensi. Model ini mengasumsikan bahwa logaritma dari nilai ekspektasi frekuensi sel (\(\mu_{ij}\)) dapat dinyatakan sebagai penjumlahan efek variabel dan (bila perlu) interaksinya. Untuk tabel 2x2 :

\[ \log(\mu_{ij}) = \lambda + \lambda^A_i + \lambda^B_j + \lambda^{AB}_{ij} \]

13.3.2 Perbedaan utama antara model log-linear dan model regresi logistik

  • Model log-linear digunakan untuk memodelkan frekuensi (count) pada tabel kontingensi dan menguji asosiasi antar variabel kategorik, tanpa menganggap ada variabel respon dan prediktor.

  • Model regresi logistik digunakan untuk memodelkan probabilitas kejadian suatu outcome (biner) berdasarkan satu atau lebih prediktor (bisa kategorik maupun kontinu).

13.3.3 Estimasi Parameter log-linear 2 arah

Sistem Persamaan Model Log-Linear :

\[ \begin{aligned} \log(\mu_{11}) &= \lambda + \lambda^A_1 + \lambda^B_1 + \lambda^{AB}_{11} \\ \log(\mu_{12}) &= \lambda + \lambda^A_1 + \lambda^B_2 + \lambda^{AB}_{12} \\ \log(\mu_{21}) &= \lambda + \lambda^A_2 + \lambda^B_1 + \lambda^{AB}_{21} \\ \log(\mu_{22}) &= \lambda + \lambda^A_2 + \lambda^B_2 + \lambda^{AB}_{22} \end{aligned} \]

Constraint Sum-to-Zero :

\[ \lambda^A_1 + \lambda^A_2 = 0 \\ \lambda^B_1 + \lambda^B_2 = 0 \\ \lambda^{AB}_{11} + \lambda^{AB}_{12} + \lambda^{AB}_{21} + \lambda^{AB}_{22} = 0 \]

Rumus Estimasi Parameter dengan Sum-to-Zero Constraint

\[ \lambda^A_1 = \frac{1}{2}[(\log\mu_{11} + \log\mu_{12}) - (\log\mu_{21} + \log\mu_{22})] \\ \lambda^B_1 = \frac{1}{2}[(\log\mu_{11} + \log\mu_{21}) - (\log\mu_{12} + \log\mu_{22})] \\ \lambda^{AB}_{12} = \frac{1}{4}[\log\mu_{12} - \log\mu_{11} - \log\mu_{22} + \log\mu_{21}] \]

13.3.4 Analisis Data Tabel Kontingensi 2x2

Diberikan data :

Vaksinasi Sehat Sakit
Vaksin Lengkap 120 1880
Belum Vaksin 650 1350

13.3.5 Bentuk Model Log-Linear

Model log-linear pada tabel 2x2 :

\[ \log(\mu_{ij}) = \lambda + \lambda^A_i + \lambda^B_j + \lambda^{AB}_{ij} \]

dengan constraint sum-to-zero :

\[ \sum_i \lambda^A_i = 0, \quad \sum_j \lambda^B_j = 0, \quad \sum_{i,j} \lambda^{AB}_{ij} = 0 \]

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

Misalkan :

  • A1 = Vaksin Lengkap, A2 = Belum Vaksin
  • B1 = Sehat, B2 = Sakit

Observasi:

  • \(n_{11}=120\), \(n_{12}=1880\)

  • \(n_{21}=650\), \(n_{22}=1350\)

Model log-linear :

\[ \begin{aligned} \log(\mu_{11}) &= \lambda + \lambda^A_1 + \lambda^B_1 + \lambda^{AB}_{11} \\ \log(\mu_{12}) &= \lambda + \lambda^A_1 + \lambda^B_2 + \lambda^{AB}_{12} \\ \log(\mu_{21}) &= \lambda + \lambda^A_2 + \lambda^B_1 + \lambda^{AB}_{21} \\ \log(\mu_{22}) &= \lambda + \lambda^A_2 + \lambda^B_2 + \lambda^{AB}_{22} \end{aligned} \]

Constraint sum-to-zero :

\[ \lambda^A_1 + \lambda^A_2 = 0, \quad \lambda^B_1 + \lambda^B_2 = 0, \quad \lambda^{AB}_{11} + \lambda^{AB}_{12} + \lambda^{AB}_{21} + \lambda^{AB}_{22} = 0 \]

Langkah-langkah estimasi parameter :

  1. Rata-rata log frekuensi sel :

\[ \begin{aligned}\lambda &= \frac{1}{4}[\log(120) + \log(1880) + \log(650) + \log(1350)] \\ &= \frac{1}{4}(4.7875 + 7.5370 + 6.4769 + 7.2101) \\ &= \frac{1}{4}(26.0115) \\ &= 6.5029\end{aligned} \]

  1. Efek utama A (Vaksin) :

\[ \begin{aligned}\lambda^A_1 &= \frac{1}{2} \left[ \log(120) + \log(1880) - \log(650) - \log(1350) \right] \\ &= \frac{1}{2} \left(4.7875 + 7.5370 - 6.4769 - 7.2101 \right) \\ &= \frac{1}{2}(8.6375 - 13.6870) \\ &= \frac{1}{2}(-5.0495) \\ &= -2.5248\end{aligned} \]

Karena \(\lambda^A_1\) dan \(\lambda^A_2\) harus berjumlah nol, maka :

\[ \lambda^A_2 = -\lambda^A_1 = 2.5248 \]

Efek utama \(\lambda^A_1 = -2.5248\) menunjukkan bahwa kategori “Vaksin Lengkap” memiliki pengaruh negatif terhadap log-frekuensi relatif, dibandingkan kategori “Belum Vaksin”. Artinya, pada model log-linear, kelompok yang divaksinasi cenderung lebih sedikit muncul dalam kategori dengan frekuensi tinggi terinfeksi, dibandingkan yang tidak divaksin — mendukung efektivitas vaksin dalam mengurangi risiko infeksi.

  1. Efek utama B (Status) :

\[ \begin{aligned}\lambda^B_1 &= \frac{1}{2} \left[ \log(120) + \log(650) - \log(1880) - \log(1350) \right] \\ &= \frac{1}{2} \left(4.7875 + 6.4769 - 7.5370 - 7.2101 \right) \\ &= \frac{1}{2}(-3.4827) \\ &= -1.7414\end{aligned} \]

Karena efek utama pada dua level variabel harus berjumlah nol :

\[ \lambda^B_2 = -\lambda^B_1 = 1.7414 \]

Efek utama \(\lambda^B_1 = -1.7414\) menunjukkan bahwa kategori “Terinfeksi” memiliki frekuensi lebih rendah dari yang diharapkan secara rata-rata dibandingkan kategori “Tidak Terinfeksi”. Hal ini mencerminkan bahwa sebagian besar individu dalam data berada pada status tidak terinfeksi, dan ini dapat menjadi indikasi dari efektivitas vaksin dan distribusi risiko dalam populasi.

  1. Efek interaksi AB :

\[ \begin{aligned}\lambda^{AB}_{11} &= \frac{1}{4} \left[ \log(120) - \log(1880) - \log(650) + \log(1350) \right] \\ &= \frac{1}{4} \left(4.7875 - 7.5370 - 6.4769 + 7.2101 \right) \\ &= \frac{1}{4}(-2.0163) \\ &= -0.5041\end{aligned} \]

Dengan sifat simetri dari efek interaksi dalam tabel 2x2 :

\[ \lambda^{AB}_{12} = -\lambda^{AB}_{11} = 0.5041 \\ \lambda^{AB}_{21} = -\lambda^{AB}_{11} = 0.5041 \\ \lambda^{AB}_{22} = \lambda^{AB}_{11} = -0.5041 \]

Nilai \(\lambda^{AB}_{11} = -0.5041\) menunjukkan bahwa kombinasi “Vaksin Lengkap” dan “Terinfeksi” memiliki frekuensi yang lebih rendah dari yang diharapkan oleh model tanpa interaksi. Sebaliknya, kombinasi “Vaksin Lengkap dan Tidak Terinfeksi” serta “Belum Vaksin dan Terinfeksi” memiliki nilai positif, yang berarti lebih sering terjadi dari yang diperkirakan jika tidak ada interaksi.

Hasil ini mendukung adanya interaksi negatif antara vaksinasi dan infeksi, yang konsisten dengan efektivitas vaksin dalam mengurangi kemungkinan terinfeksi COVID-19.

Ringkasan Parameter :

\[ \begin{aligned} \lambda &= 3.0971 \\ \lambda^A_1 &= 0.2027, \quad \lambda^A_2 = -0.2027 \\ \lambda^B_1 &= -0.4904, \quad \lambda^B_2 = 0.4904 \\ \lambda^{AB}_{11} &= 0.4479, \quad \lambda^{AB}_{12} = -0.4479, \\ \lambda^{AB}_{21} &= -0.4479, \quad \lambda^{AB}_{22} = 0.4479 \end{aligned} \]

13.3.7 Hitung Odds Ratio dan Interval Kepercayaan

Rumus odds ratio :

\[ \text{OR} = \frac{n_{11} n_{22}}{n_{12} n_{21}} = \frac{120 \times 1350}{1880 \times 650} = \frac{162000}{1222000} \approx 0.1325 \]

Log odds ratio (OR) :

\[ \begin{aligned}\log(\text{OR}) &= \log\left(\frac{n_{11} n_{22}}{n_{12} n_{21}}\right) \\ &= \log\left(\frac{120 \times 1350}{1880 \times 650}\right) \\ &= \log(0.1325) \approx -2.0241\end{aligned} \]

Standard Error (SE) :

\[ \begin{aligned}\text{SE} &= \sqrt{\frac{1}{n_{11}} + \frac{1}{n_{12}} + \frac{1}{n_{21}} + \frac{1}{n_{22}}} \\ &= \sqrt{\frac{1}{120} + \frac{1}{1880} + \frac{1}{650} + \frac{1}{1350}} \\ &= \sqrt{0.00833 + 0.00053 + 0.00154 + 0.00074} \\ &= \sqrt{0.01114} \approx 0.1055\end{aligned} \]

95% Confidence Interval untuk log(OR) :

\[ \begin{aligned}\log(\text{OR}) \pm 1.96 \times \text{SE} &= -2.0241 \pm 1.96 \times 0.1055 \\ &= -2.0241 \pm 0.2068 \\ &= (-2.2309,\ -1.8173)\end{aligned} \]

Back-transform to get CI for OR :

\[ \begin{aligned}\text{Lower bound} &= \exp(-2.2309) = 0.1075 \\\text{Upper bound} &= \exp(-1.8173) = 0.1622\end{aligned} \]

Jadi, estimasi odds ratio :

\[ \text{OR} = 0.1325 \quad (95\% \text{ CI: } 0.1075\ \text{–}\ 0.1622) \]

Odds ratio < 1 menunjukkan bahwa kelompok vaksin lengkap memiliki kemungkinan yang jauh lebih kecil untuk terinfeksi COVID-19 dibandingkan dengan kelompok belum divaksin. Rentang interval kepercayaan yang sempit dan tidak mencakup 1 memperkuat kesimpulan bahwa vaksinasi berpengaruh signifikan dalam menurunkan risiko infeksi.

13.3.8 Fitting Model Log-Linear dengan R

# Data 2x2 COVID-19: Vaksinasi vs Terinfeksi
data_covid <- matrix(c(120, 1880, 650, 1350),
                     nrow = 2, byrow = TRUE,
                     dimnames = list(
                       Vaksinasi = c("Vaksin Lengkap", "Belum Vaksin"),
                       Terinfeksi = c("Sehat", "Sakit"))
)

# Tampilkan tabel dalam format ftable
ftable(data_covid)
##                Terinfeksi Sehat Sakit
## Vaksinasi                            
## Vaksin Lengkap              120  1880
## Belum Vaksin                650  1350
# Ubah ke format data.frame
data <- as.data.frame(as.table(data_covid))
colnames(data) <- c("Vaksinasi", "Terinfeksi", "Freq")
data

Model tanpa interaksi

fit_no_inter <- glm(Freq ~ Vaksinasi + Terinfeksi, family = poisson, data = data)
summary(fit_no_inter)
## 
## Call:
## glm(formula = Freq ~ Vaksinasi + Terinfeksi, family = poisson, 
##     data = data)
## 
## Coefficients:
##                        Estimate Std. Error z value Pr(>|z|)    
## (Intercept)           5.953e+00  3.935e-02  151.28   <2e-16 ***
## VaksinasiBelum Vaksin 2.883e-16  3.162e-02    0.00        1    
## TerinfeksiSakit       1.434e+00  4.010e-02   35.75   <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: 2114.98  on 3  degrees of freedom
## Residual deviance:  488.43  on 1  degrees of freedom
## AIC: 527.79
## 
## Number of Fisher Scoring iterations: 5

Model dengan interaksi

fit_inter <- glm(Freq ~ Vaksinasi * Terinfeksi, family = poisson, data = data)
summary(fit_inter)
## 
## Call:
## glm(formula = Freq ~ Vaksinasi * Terinfeksi, family = poisson, 
##     data = data)
## 
## Coefficients:
##                                       Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                            4.78749    0.09129   52.44   <2e-16 ***
## VaksinasiBelum Vaksin                  1.68948    0.09936   17.00   <2e-16 ***
## TerinfeksiSakit                        2.75154    0.09416   29.22   <2e-16 ***
## VaksinasiBelum Vaksin:TerinfeksiSakit -2.02065    0.10557  -19.14   <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: 2.1150e+03  on 3  degrees of freedom
## Residual deviance: 1.2346e-13  on 0  degrees of freedom
## AIC: 41.365
## 
## Number of Fisher Scoring iterations: 2

13.4 Interpretasi Parameter Model Poisson

13.4.1 Model 1: Tanpa Interaksi (Freq ~ Vaksinasi + Terinfeksi)

Output model tanpa interaksi menunjukkan koefisien sebagai berikut :

Parameter Estimate Interpretasi
(Intercept) 5.953 Rata-rata log-frekuensi untuk kategori referensi: “Vaksin Lengkap” dan “Sehat”.
VaksinasiBelum Vaksin ~0 Tidak ada perbedaan signifikan antara kategori “Belum Vaksin” dan “Vaksin Lengkap” pada status “Sehat”.
TerinfeksiSakit 1.434 Kategori “Sakit” memiliki log-frekuensi lebih tinggi dibandingkan “Sehat”, terlepas dari status vaksinasi.

Catatan penting :

Koefisien VaksinasiBelum Vaksin secara praktis nol (Estimate ≈ 0, p = 1), yang menunjukkan bahwa tanpa mempertimbangkan interaksi, tidak tampak ada perbedaan signifikan frekuensi antara kelompok vaksinasi. Namun, Residual Deviance = 488.43 (df = 1), menunjukkan model belum cukup baik dalam menangkap pola data aktual (masih ada deviasi yang besar).


13.4.2 Model 2: Dengan Interaksi (Freq ~ Vaksinasi * Terinfeksi)

Output model dengan interaksi menunjukkan :

Parameter Estimate Interpretasi
(Intercept) 4.787 Log-frekuensi untuk kategori referensi: “Vaksin Lengkap” dan “Sehat”.
VaksinasiBelum Vaksin 1.689 Untuk status “Sehat”, log-frekuensi kelompok “Belum Vaksin” lebih tinggi dari “Vaksin Lengkap”.
TerinfeksiSakit 2.752 Untuk kelompok “Vaksin Lengkap”, frekuensi infeksi (“Sakit”) jauh lebih tinggi dari “Sehat”.
VaksinasiBelum Vaksin:TerinfeksiSakit -2.021 Efek interaksi signifikan negatif: artinya efek vaksinasi terhadap infeksi tidak independen.

13.4.3 Kesimpulan Model Interaksi

  • Nilai interaksi negatif (-2.021) menunjukkan bahwa meskipun kelompok “Belum Vaksin” memiliki frekuensi “Sehat” yang lebih tinggi (koefisien positif), efek tersebut berbalik arah ketika status “Sakit” dianalisis.
  • Interaksi signifikan (p < 0.001) → Vaksinasi dan Infeksi tidak independen.
  • Residual deviance ≈ 0, yang berarti model sangat cocok terhadap data.
  • Nilai AIC jauh lebih rendah (41.365 vs 527.79) → Model interaksi jauh lebih baik.

Model interaksi menunjukkan bahwa: - Efek vaksinasi bergantung pada status infeksi, dan sebaliknya. - Kelompok Belum Vaksin memiliki kemungkinan jauh lebih tinggi untuk mengalami infeksi dibandingkan yang telah divaksin, tercermin dari interaksi negatif.

Dengan demikian, model dengan interaksi merupakan representasi terbaik untuk data ini, dan mendukung kesimpulan bahwa vaksinasi menurunkan risiko infeksi secara signifikan.

13.5 Model Log-Linear dengan Interaksi

Model log-linear dengan bentuk umum :

\[ \log(\mu_{ij}) = \lambda + \lambda^A_i + \lambda^B_j + \lambda^{AB}_{ij} \]

  • \(\lambda\) : intercept, yaitu rata-rata log-frekuensi sel referensi
  • \(\lambda^A_i\) : efek utama dari variabel A (Vaksinasi)
  • \(\lambda^B_j\) : efek utama dari variabel B (Terinfeksi)
  • \(\lambda^{AB}_{ij}\) : efek interaksi antara Vaksinasi dan Terinfeksi

Berdasarkan hasil output model Freq ~ Vaksinasi * Terinfeksi:

Parameter Nilai Estimate Penjelasan
Intercept 4.7875 \(\lambda\): log-frekuensi sel referensi (Vaksin Lengkap, Sehat)
VaksinasiBelum Vaksin 1.6895 \(\lambda^A_2\): efek utama kelompok Belum Vaksin terhadap log-frekuensi
TerinfeksiSakit 2.7515 \(\lambda^B_2\): efek utama kategori Sakit terhadap log-frekuensi
VaksinasiBelum Vaksin:TerinfeksiSakit -2.0207 \(\lambda^{AB}_{22}\): interaksi negatif, artinya hubungan antara vaksinasi dan infeksi tidak independen

Interpretasi

  • Intercept = 4.7875 menunjukkan rata-rata log-frekuensi untuk sel referensi: Vaksin Lengkap & Sehat.
  • Efek utama vaksinasi positif (1.6895) mengindikasikan bahwa pada kategori “Sehat”, kelompok yang belum divaksin memiliki frekuensi lebih tinggi daripada yang sudah divaksin.
  • Efek utama status infeksi positif (2.7515) berarti bahwa pada kelompok “Vaksin Lengkap”, kategori “Sakit” lebih banyak daripada “Sehat”.
  • Efek interaksi negatif (-2.0207) mengindikasikan bahwa pada kombinasi Belum Vaksin & Sakit, frekuensi aktual jauh lebih rendah dari yang diharapkan oleh model tanpa interaksi.

Nilai interaksi ini juga sama (dalam arah berlawanan) dengan nilai \(\log(\text{OR}) = -2.0207\), yang menggambarkan kekuatan hubungan antara vaksinasi dan infeksi COVID-19.


Kesimpulan

Model log-linear dengan interaksi memberikan pemahaman yang lengkap terhadap hubungan antara status vaksinasi dan infeksi. Efek interaksi yang signifikan mendukung bahwa vaksinasi berasosiasi secara negatif dengan kejadian infeksi COVID-19, dan kedua variabel tidak bersifat independen.

13.5.1 Analisis Data Tabel Kontingensi 2x3

Studi Kasus: Hubungan Jenis Kelamin dan Tingkat Penggunaan Transportasi Umum

Survei dilakukan untuk mengetahui apakah terdapat hubungan antara jenis kelamin dan frekuensi penggunaan transportasi umum di kalangan penduduk perkotaan. Data ini merupakan representasi agregat dari temuan survei penggunaan transportasi oleh Badan Pusat Statistik (BPS) serta data tambahan dari studi oleh Institute for Transportation and Development Policy (ITDP) di kota-kota besar seperti Jakarta, Surabaya, dan Bandung.

Tabel Data

Jenis Kelamin Jarang Sedang Sering
Laki-laki 28 34 18
Perempuan 20 40 30

13.6 Bentuk Model Log-Linear untuk Tabel 2×3: Jenis Kelamin vs Frekuensi Penggunaan Transportasi Umum

Bentuk umum model log-linear untuk tabel kontingensi 2×3 (dengan sum-to-zero constraint) adalah :

\[ \log(\mu_{ij}) = \lambda + \lambda^A_i + \lambda^B_j + \lambda^{AB}_{ij} \]

Dengan definisi:

  • \(\mu_{ij}\) : ekspektasi frekuensi pada baris ke-\(i\), kolom ke-\(j\)
  • \(A\) : Jenis Kelamin, dengan \(i = 1\) (Laki-laki), \(i = 2\) (Perempuan)
  • \(B\) : Frekuensi Penggunaan Transportasi Umum, dengan :
    • \(j = 1\) (Jarang),
    • \(j = 2\) (Sedang),
    • \(j = 3\) (Sering)

13.6.1 Kendala (Constraint) Identifikasi Parameter :

\[ \sum_i \lambda^A_i = 0,\quad \sum_j \lambda^B_j = 0,\quad \sum_i \lambda^{AB}_{ij} = 0,\quad \sum_j \lambda^{AB}_{ij} = 0 \]

13.6.2 Bentuk Eksplisit Model :

\[ \log(\mu_{ij}) = \begin{cases} \lambda + \lambda^A_1 + \lambda^B_1 + \lambda^{AB}_{11} & \text{(Laki-laki, Jarang)} \\ \lambda + \lambda^A_1 + \lambda^B_2 + \lambda^{AB}_{12} & \text{(Laki-laki, Sedang)} \\ \lambda + \lambda^A_1 + \lambda^B_3 + \lambda^{AB}_{13} & \text{(Laki-laki, Sering)} \\ \lambda + \lambda^A_2 + \lambda^B_1 + \lambda^{AB}_{21} & \text{(Perempuan, Jarang)} \\ \lambda + \lambda^A_2 + \lambda^B_2 + \lambda^{AB}_{22} & \text{(Perempuan, Sedang)} \\ \lambda + \lambda^A_2 + \lambda^B_3 + \lambda^{AB}_{23} & \text{(Perempuan, Sering)} \end{cases} \]

13.6.3 Interpretasi :

  • Parameter \(\lambda\) adalah intercept atau rata-rata log-frekuensi seluruh sel.
  • Efek \(\lambda^A\) mencerminkan perbedaan log-frekuensi antar jenis kelamin.
  • Efek \(\lambda^B\) mencerminkan perbedaan log-frekuensi antar kategori frekuensi penggunaan transportasi umum.
  • Efek interaksi \(\lambda^{AB}\) menunjukkan apakah hubungan antara jenis kelamin dan transportasi umum bersifat independen atau saling memengaruhi.

Model ini dapat digunakan untuk menguji apakah jenis kelamin dan intensitas penggunaan transportasi umum saling berhubungan secara signifikan, serta untuk memperkirakan distribusi ekspektasi frekuensi berdasarkan kategori tersebut.

13.6.4 Fitting Model Log-Linear di R

# Membuat data frame dari tabel kontingensi 2x3
tabel2x3 <- matrix(c(28, 34, 18, 20, 40, 30), nrow = 2, byrow = TRUE)
colnames(tabel2x3) <- c("Jarang", "Sedang", "Sering")
rownames(tabel2x3) <- c("Laki-laki", "Perempuan")
tabel2x3
##           Jarang Sedang Sering
## Laki-laki     28     34     18
## Perempuan     20     40     30
# Ubah menjadi data.frame untuk analisis glm
data2x3 <- as.data.frame(as.table(tabel2x3))
colnames(data2x3) <- c("JenisKelamin", "Frekuensi", "Freq")
data2x3

Model tanpa interaksi

# Model tanpa interaksi (asumsi independen)
fit_no_inter <- glm(Freq ~ JenisKelamin + Frekuensi, family = poisson, data = data2x3)
summary(fit_no_inter)
## 
## Call:
## glm(formula = Freq ~ JenisKelamin + Frekuensi, family = poisson, 
##     data = data2x3)
## 
## Coefficients:
##                         Estimate Std. Error z value Pr(>|z|)    
## (Intercept)            3.117e+00  1.657e-01  18.816   <2e-16 ***
## JenisKelaminPerempuan  1.178e-01  1.537e-01   0.767   0.4434    
## FrekuensiSedang        4.329e-01  1.853e-01   2.336   0.0195 *  
## FrekuensiSering       -2.357e-15  2.041e-01   0.000   1.0000    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 12.4876  on 5  degrees of freedom
## Residual deviance:  4.2701  on 2  degrees of freedom
## AIC: 43.17
## 
## Number of Fisher Scoring iterations: 4

Model dengan interaksi

# Model dengan interaksi (untuk cek asosiasi)
fit_inter <- glm(Freq ~ JenisKelamin * Frekuensi, family = poisson, data = data2x3)
summary(fit_inter)
## 
## Call:
## glm(formula = Freq ~ JenisKelamin * Frekuensi, family = poisson, 
##     data = data2x3)
## 
## Coefficients:
##                                       Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                             3.3322     0.1890  17.632   <2e-16 ***
## JenisKelaminPerempuan                  -0.3365     0.2928  -1.149   0.2504    
## FrekuensiSedang                         0.1942     0.2552   0.761   0.4468    
## FrekuensiSering                        -0.4418     0.3021  -1.462   0.1436    
## JenisKelaminPerempuan:FrekuensiSedang   0.4990     0.3743   1.333   0.1825    
## JenisKelaminPerempuan:FrekuensiSering   0.8473     0.4179   2.028   0.0426 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 1.2488e+01  on 5  degrees of freedom
## Residual deviance: 3.1086e-15  on 0  degrees of freedom
## AIC: 42.9
## 
## Number of Fisher Scoring iterations: 3

13.6.5 Interpretasi

Model tanpa interaksi :

Model pertama mengasumsikan bahwa frekuensi penggunaan transportasi umum dan jenis kelamin bersifat independen, tanpa adanya interaksi antar keduanya. Berdasarkan hasil estimasi, intercept sebesar 3.117 merepresentasikan log-frekuensi dari kelompok referensi, yaitu laki-laki yang jarang menggunakan transportasi umum. Efek dari jenis kelamin perempuan sebesar 0.1178 menunjukkan sedikit peningkatan log-frekuensi dibandingkan laki-laki, namun efek ini tidak signifikan secara statistik (p = 0.4434), yang berarti perbedaan penggunaan transportasi umum antara laki-laki dan perempuan tidak terdeteksi secara jelas dalam model ini.

Sebaliknya, frekuensi penggunaan transportasi kategori “Sedang” memiliki estimasi 0.4329 dan signifikan (p = 0.0195), yang menunjukkan bahwa, secara umum, orang yang menggunakan transportasi umum 2–4 kali seminggu cenderung memiliki frekuensi lebih tinggi dibanding mereka yang jarang menggunakan. Namun, kategori “Sering” justru menunjukkan nilai hampir nol dan tidak signifikan, mengindikasikan tidak ada perbedaan berarti dari kategori “Jarang” dalam konteks model ini.

Secara keseluruhan, residual deviance masih cukup tinggi (4.27) pada 2 derajat kebebasan, menunjukkan bahwa model ini belum sepenuhnya sesuai dengan pola data aktual. Hal ini mengisyaratkan bahwa asumsi independensi mungkin tidak tepat.

Model dengan interaksi :

Model kedua memasukkan interaksi antara jenis kelamin dan frekuensi penggunaan transportasi umum, sehingga memungkinkan pengaruh satu variabel bergantung pada tingkat variabel lainnya. Intercept sebesar 3.3322 kembali merepresentasikan log-frekuensi referensi (laki-laki yang jarang menggunakan transportasi umum). Efek utama dari jenis kelamin perempuan dan kategori frekuensi “Sedang” serta “Sering” semuanya tidak signifikan secara individual, namun yang menarik muncul pada efek interaksi, khususnya pada kategori “Sering”.

Efek interaksi JenisKelaminPerempuan:FrekuensiSering = 0.8473 menunjukkan bahwa perempuan yang sering menggunakan transportasi umum memiliki frekuensi yang secara signifikan lebih tinggi dibandingkan laki-laki pada kategori yang sama (p = 0.0426). Hal ini menunjukkan bahwa dalam kelompok penggunaan intensif, perempuan cenderung lebih aktif atau lebih bergantung pada transportasi umum dibanding laki-laki.

Dari sisi kecocokan model, residual deviance ≈ 0, menunjukkan bahwa model ini sangat sesuai dengan data aktual. Dibandingkan dengan model tanpa interaksi, model ini memiliki peningkatan yang signifikan dalam kecocokan, meskipun AIC hanya sedikit lebih rendah. Temuan ini mendukung bahwa hubungan antara jenis kelamin dan intensitas penggunaan transportasi tidak bersifat independen, dan interaksi antar keduanya penting untuk dijelaskan dalam model.

13.7 Model Log Linear Tiga Arah

Pada pembahasan sebelumnya, kita telah memahami bahwa salah satu tujuan utama dari penyusunan model log linear adalah untuk mengestimasi parameter-parameter yang menjelaskan hubungan di antara variabel-variabel kategorik.

Pada materi kali ini, kita akan membahas model log linear yang lebih kompleks, yaitu model log linear untuk tabel kontingensi tiga arah. Model ini melibatkan tiga variabel kategorik, sehingga kemungkinan interaksi yang dapat terjadi di dalam model pun menjadi lebih banyak. Dalam konteks ini, interaksi paling tinggi yang dapat dimodelkan adalah interaksi tiga arah, yaitu interaksi yang melibatkan ketiga variabel secara bersamaan.

13.7.1 Model Log-Linear untuk Tabel Tiga Arah

Model log-linear yang melibatkan tiga variabel kategorik (misal: X, Y, dan Z) dapat dibangun dalam berbagai bentuk model, tergantung pada tingkat interaksi yang ingin dimasukkan. Berikut adalah beberapa alternatif model log-linear yang umum digunakan :

  1. Model Saturated \[ \log(\mu_{ijk}) = \lambda + \lambda^{X}_i + \lambda^{Y}_j + \lambda^{Z}_k + \lambda^{XY}_{ij} + \lambda^{XZ}_{ik} + \lambda^{YZ}_{jk} + \lambda^{XYZ}_{ijk} \]Model ini memuat semua kemungkinan interaksi, termasuk interaksi tiga arah (X, Y, dan Z).

  2. Model Homogen \[ \log(\mu_{ijk}) = \lambda + \lambda^{X}_i + \lambda^{Y}_j + \lambda^{Z}_k + \lambda^{XY}_{ij} + \lambda^{XZ}_{ik} + \lambda^{YZ}_{jk} \]

    Model ini hanya mengakomodasi interaksi dua arah antar variabel tanpa memasukkan interaksi tiga arah.

  3. Model Conditional

    Conditional pada X : \[ \log(\mu_{ijk}) = \lambda + \lambda^{X}_i + \lambda^{Y}_j + \lambda^{Z}_k + \lambda^{XY}_{ij} + \lambda^{XZ}_{ik} \] Memuat interaksi X dengan Y dan X dengan Z.

    Conditional pada Y : \[ \log(\mu_{ijk}) = \lambda + \lambda^{X}_i + \lambda^{Y}_j + \lambda^{Z}_k + \lambda^{XY}_{ij} + \lambda^{YZ}_{jk} \] Memuat interaksi Y dengan X dan Y dengan Z.

    Conditional pada Z : \[ \log(\mu_{ijk}) = \lambda + \lambda^{X}_i + \lambda^{Y}_j + \lambda^{Z}_k + \lambda^{XZ}_{ik} + \lambda^{YZ}_{jk} \] Memuat interaksi Z dengan X dan Z dengan Y.

  4. Model Joint Independence

    Independensi antara X & Y : \[ \log(\mu_{ijk}) = \lambda + \lambda^{X}_i + \lambda^{Y}_j + \lambda^{Z}_k + \lambda^{XY}_{ij} \]

    Independensi antara X & Z : \[ \log(\mu_{ijk}) = \lambda + \lambda^{X}_i + \lambda^{Y}_j + \lambda^{Z}_k + \lambda^{XZ}_{ik} \]

    Independensi antara Y & Z : \[ \log(\mu_{ijk}) = \lambda + \lambda^{X}_i + \lambda^{Y}_j + \lambda^{Z}_k + \lambda^{YZ}_{jk} \]

  5. Model Tanpa Interaksi \[ \log(\mu_{ijk}) = \lambda + \lambda^{X}_i + \lambda^{Y}_j + \lambda^{Z}_k \]Model ini hanya memasukkan efek utama tanpa interaksi antar variabel.

13.7.2 Pengujian Interaksi dalam Model Log-Linear Tiga Arah

Dalam analisis model log-linear tiga arah, pengujian interaksi dilakukan untuk mengetahui ada atau tidaknya interaksi antar variabel. Pengujian ini dilakukan secara bertahap, dimulai dari tingkat interaksi tertinggi ke yang lebih rendah. Untuk model log-linear dengan tiga peubah (X, Y, dan Z), tahapan pengujian meliputi :

  1. Pengujian Interaksi Tiga Arah (XYZ) :

    • Bandingkan model saturated dengan model homogenous.
  2. Pengujian Interaksi Dua Arah (XY, XZ, YZ) :

    • Bandingkan model homogenous dengan model conditional.

    • Bandingkan model conditional dengan model joint independence.

    • Bandingkan model joint independence dengan model tanpa interaksi.

Setiap tahapan pengujian dilakukan untuk menilai kecocokan model dan menentukan struktur interaksi mana yang paling sesuai dengan data yang diamati.

13.7.3 Studi Kasus ; Tingkat Pendidikan, Jenis Kelamin, dan Sikap terhadap Perubahan Iklim

Tabel berikut menyajikan data sintesis dari survei Pew Research Center dan ISSP mengenai jenis kelamin responden, tingkat pendidikan, dan sikap terhadap perubahan iklim. Responden menyatakan apakah mereka percaya bahwa perubahan iklim disebabkan oleh aktivitas manusia atau skeptis terhadap hal tersebut.

Survei ini bertujuan untuk menggambarkan bagaimana faktor sosial seperti pendidikan dan jenis kelamin berhubungan dengan penerimaan terhadap isu-isu ilmiah, khususnya dalam konteks krisis iklim global.

Melalui analisis ini, Anda akan memahami bagaimana model log-linear digunakan untuk mengkaji struktur hubungan dalam data kategorik berdimensi tiga, dan bagaimana memilih model yang cukup menjelaskan data namun tetap sederhana (parsimonious). Anda juga akan belajar menginterpretasikan asosiasi dua arah dan tiga arah serta bagaimana prediksi dari model merefleksikan struktur data yang sesungguhnya.

13.7.4 Deskripsi Variabel

  • Pendidikan (3 kategori)

    • Sekolah Menengah (SMA/sederajat)

    • Sarjana (S1)

    • Pascasarjana (S2/S3)

  • Jenis Kelamin (2 kategori)

    • Laki-laki

    • Perempuan

  • Sikap terhadap Perubahan Iklim (2 kategori)

    • Percaya bahwa perubahan iklim disebabkan oleh aktivitas manusia (Percaya)

    • Tidak percaya / skeptis terhadap hal tersebut (Skeptis)

13.8 Tabel Kontingensi 3D (Total: 349 responden)

Disusun berdasarkan sintesis dari data Pew Research Center dan International Social Survey Programme (ISSP) :

Pendidikan Jenis Kelamin Percaya Skeptis
Sekolah Menengah Laki-laki 45 25
Sekolah Menengah Perempuan 50 20
Sarjana Laki-laki 60 20
Sarjana Perempuan 55 15
Pascasarjana Laki-laki 35 10
Pascasarjana Perempuan 44 20

13.8.1 Analisis Log-Linear untuk Tabel Tiga Arah

Package yang Digunakan

library("epitools")
## 
## Attaching package: 'epitools'
## The following object is masked from 'package:vcdExtra':
## 
##     expand.table
## The following object is masked from 'package:vcd':
## 
##     oddsratio
library("DescTools")
library("lawstat")
## Warning: package 'lawstat' was built under R version 4.3.3

Input Data

# Input data sesuai tabel: Pendidikan (3) × Jenis Kelamin (2) × Sikap (2)

# Faktor-faktor
pendidikan <- factor(rep(c("SMA", "S1", "S2/S3"), each = 4))  # 3 tingkat pendidikan
jenis_kelamin <- factor(rep(c("L", "P"), each = 2, times = 3))  # Laki-laki / Perempuan
sikap <- factor(rep(c("Percaya", "Skeptis"), times = 6))  # 2 sikap

# Data frekuensi sesuai tabel:
# SMA - L (45, 25), SMA - P (50, 20)
# S1  - L (60, 20), S1  - P (55, 15)
# S2  - L (35, 10), S2  - P (44, 20)
frekuensi <- c(45, 25, 50, 20, 60, 20, 55, 15, 35, 10, 44, 20)

# Gabungkan ke dalam data.frame
data <- data.frame(
  Pendidikan   = pendidikan,
  Jenis_Kelamin = jenis_kelamin,
  Sikap         = sikap,
  Frekuensi     = frekuensi
)

# Tampilkan data
data

Membentuk Tabel Kontingensi 3 Arah

# Membuat tabel 3 dimensi dari data
table3d <- xtabs(Frekuensi ~ Pendidikan + Jenis_Kelamin + Sikap, data = data)

# Tampilkan tabel dalam format flat
ftable(table3d)
##                          Sikap Percaya Skeptis
## Pendidikan Jenis_Kelamin                      
## S1         L                        60      20
##            P                        55      15
## S2/S3      L                        35      10
##            P                        44      20
## SMA        L                        45      25
##            P                        50      20

Analisis Log-Linear :

Tahap Pemodelan -> Kita akan memodelkan tabel ini menggunakan beberapa model log-linear dan membandingkan kecocokan model (parsimonious model)

13.9 UJI MODEL INTERAKSI TIGA ARAH (SATURATED VS HOMOGENOUS)

Penentuan Kategori Referensi

##=========================================##
# Penamaan variabel dan kategori referensi
##========================================##

# Faktor:
# z = Pendidikan (3 level)
# x = Jenis Kelamin (2 level)
# y = Sikap terhadap Perubahan Iklim (2 level)

z <- factor(data$Pendidikan, levels = c("S2/S3", "S1", "SMA"))     # Referensi: S2/S3
x <- relevel(factor(data$Jenis_Kelamin), ref = "P")                # Referensi: Perempuan
y <- relevel(factor(data$Sikap), ref = "Skeptis")                  # Referensi: Skeptis

# Frekuensi
counts <- data$Frekuensi

# Data baru dengan penamaan x, y, z
data_loglin <- data.frame(
  Pendidikan = z,
  Jenis_Kelamin = x,
  Sikap = y,
  Frekuensi = counts
)

# Cek level
levels(data_loglin$Pendidikan)     # S2/S3 sebagai baseline
## [1] "S2/S3" "S1"    "SMA"
levels(data_loglin$Jenis_Kelamin)  # P sebagai baseline
## [1] "P" "L"
levels(data_loglin$Sikap)          # Skeptis sebagai baseline
## [1] "Skeptis" "Percaya"

Model Saturated Model log-linear saturated memasukkan semua interaksi hingga tiga arah :

\[ \log(\mu_{ijk}) = \lambda + \lambda^X_i + \lambda^Y_j + \lambda^Z_k + \lambda^{XY}_{ij} + \lambda^{XZ}_{ik} + \lambda^{YZ}_{jk} + \lambda^{XYZ}_{ijk} \]

# Model log-linear saturated (dengan interaksi tiga arah penuh)
model_saturated <- glm(
  Frekuensi ~ Jenis_Kelamin + Sikap + Pendidikan +
              Jenis_Kelamin*Sikap + Jenis_Kelamin*Pendidikan + Sikap*Pendidikan +
              Jenis_Kelamin*Sikap*Pendidikan,
  data = data_loglin,
  family = poisson(link = "log")
)

# Ringkasan hasil model
summary(model_saturated)
## 
## Call:
## glm(formula = Frekuensi ~ Jenis_Kelamin + Sikap + Pendidikan + 
##     Jenis_Kelamin * Sikap + Jenis_Kelamin * Pendidikan + Sikap * 
##     Pendidikan + Jenis_Kelamin * Sikap * Pendidikan, family = poisson(link = "log"), 
##     data = data_loglin)
## 
## Coefficients:
##                                             Estimate Std. Error z value
## (Intercept)                                2.996e+00  2.236e-01  13.397
## Jenis_KelaminL                            -6.931e-01  3.873e-01  -1.790
## SikapPercaya                               7.885e-01  2.697e-01   2.924
## PendidikanS1                              -2.877e-01  3.416e-01  -0.842
## PendidikanSMA                              7.327e-16  3.162e-01   0.000
## Jenis_KelaminL:SikapPercaya                4.643e-01  4.487e-01   1.035
## Jenis_KelaminL:PendidikanS1                9.808e-01  5.164e-01   1.899
## Jenis_KelaminL:PendidikanSMA               9.163e-01  4.899e-01   1.870
## SikapPercaya:PendidikanS1                  5.108e-01  3.970e-01   1.287
## SikapPercaya:PendidikanSMA                 1.278e-01  3.778e-01   0.338
## Jenis_KelaminL:SikapPercaya:PendidikanS1  -6.650e-01  5.940e-01  -1.120
## Jenis_KelaminL:SikapPercaya:PendidikanSMA -7.928e-01  5.775e-01  -1.373
##                                           Pr(>|z|)    
## (Intercept)                                < 2e-16 ***
## Jenis_KelaminL                             0.07350 .  
## SikapPercaya                               0.00346 ** 
## PendidikanS1                               0.39965    
## PendidikanSMA                              1.00000    
## Jenis_KelaminL:SikapPercaya                0.30073    
## Jenis_KelaminL:PendidikanS1                0.05752 .  
## Jenis_KelaminL:PendidikanSMA               0.06143 .  
## SikapPercaya:PendidikanS1                  0.19815    
## SikapPercaya:PendidikanSMA                 0.73509    
## Jenis_KelaminL:SikapPercaya:PendidikanS1   0.26292    
## Jenis_KelaminL:SikapPercaya:PendidikanSMA  0.16981    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 9.9302e+01  on 11  degrees of freedom
## Residual deviance: 3.6193e-14  on  0  degrees of freedom
## AIC: 86.512
## 
## Number of Fisher Scoring iterations: 3
# Nilai exp(koefisien) untuk interpretasi sebagai rasio
exp(model_saturated$coefficients)
##                               (Intercept) 
##                                20.0000000 
##                            Jenis_KelaminL 
##                                 0.5000000 
##                              SikapPercaya 
##                                 2.2000000 
##                              PendidikanS1 
##                                 0.7500000 
##                             PendidikanSMA 
##                                 1.0000000 
##               Jenis_KelaminL:SikapPercaya 
##                                 1.5909091 
##               Jenis_KelaminL:PendidikanS1 
##                                 2.6666667 
##              Jenis_KelaminL:PendidikanSMA 
##                                 2.5000000 
##                 SikapPercaya:PendidikanS1 
##                                 1.6666667 
##                SikapPercaya:PendidikanSMA 
##                                 1.1363636 
##  Jenis_KelaminL:SikapPercaya:PendidikanS1 
##                                 0.5142857 
## Jenis_KelaminL:SikapPercaya:PendidikanSMA 
##                                 0.4525714

13.10 Interpretasi Model Log-Linear Saturated

Model log-linear saturated dibentuk untuk mengevaluasi hubungan antara tiga variabel kategorik: Jenis Kelamin, Pendidikan, dan Sikap terhadap Perubahan Iklim. Model ini mencakup semua efek utama, interaksi dua arah, dan interaksi tiga arah, sehingga tidak menyisakan variasi yang tidak dijelaskan.

13.10.1 Efek Utama

  • Intercept (log-μ) sebesar 2.996 menunjukkan frekuensi logaritmik dari kategori referensi: Perempuan, Skeptis, dan S2/S3. Setelah ditransformasi, nilai ekspektasinya adalah exp(2.996) = 20, yang berarti rata-rata frekuensi responden dalam sel tersebut adalah 20.

  • Jenis Kelamin (Laki-laki) memiliki efek negatif (exp = 0.5, p ≈ 0.074), mengindikasikan frekuensi lebih rendah daripada perempuan dalam sel referensi.

  • Sikap Percaya terhadap perubahan iklim memiliki efek positif yang signifikan (exp = 2.2, p < 0.01), menandakan frekuensi responden yang percaya sekitar dua kali lebih banyak dari yang skeptis.

  • Pendidikan S1 memiliki efek yang kecil dan tidak signifikan (exp ≈ 0.75, p = 0.40), sementara Pendidikan SMA tidak berbeda dari referensi (exp ≈ 1, p = 1.00).

13.10.2 Interaksi Dua Arah

  • Jenis Kelamin × Sikap: Responden laki-laki yang percaya perubahan iklim menunjukkan sedikit peningkatan frekuensi (exp = 1.59), namun tidak signifikan.

  • Jenis Kelamin × Pendidikan menunjukkan bahwa laki-laki dengan pendidikan S1 dan SMA cenderung lebih banyak dari yang diharapkan berdasarkan efek utama saja (exp = 2.67 dan 2.5), meskipun hanya marginal signifikan.

  • Sikap × Pendidikan: Responden berpendidikan S1 dan SMA yang percaya perubahan iklim cenderung sedikit lebih banyak dari ekspektasi (exp ≈ 1.66 dan 1.14), tetapi juga tidak signifikan.

13.10.3 Interaksi Tiga Arah

  • Jenis Kelamin × Sikap × Pendidikan menunjukkan adanya koreksi terhadap efek dua arah sebelumnya. Sebagai contoh, untuk laki-laki yang percaya dan memiliki pendidikan S1 atau SMA, ekspektasi frekuensinya justru berkurang (exp ≈ 0.51 dan 0.45), menandakan bahwa interaksi kompleks ini penting untuk menjelaskan deviasi lokal.

13.11 Goodness-of-Fit

Model ini menunjukkan fit yang sempurna terhadap data,

  • Residual deviance ≈ 0 pada 0 derajat kebebasan, artinya tidak ada variasi sisa — seluruh struktur tabel telah dijelaskan sepenuhnya.

  • AIC = 86.51, yang merupakan nilai referensi jika dibandingkan dengan model yang lebih sederhana (misalnya model dua arah tanpa interaksi tiga arah). AIC lebih rendah menunjukkan model yang lebih efisien secara informasi, namun tetap mempertimbangkan kompleksitas model.

13.12 Kesimpulan

Model saturated memberikan gambaran lengkap hubungan antara jenis kelamin, tingkat pendidikan, dan sikap terhadap perubahan iklim. Efek sikap terhadap frekuensi kepercayaan terbukti signifikan, sedangkan pola-pola interaksi menunjukkan bahwa hubungan antara variabel tidak selalu aditif dan dapat saling mempengaruhi. Meskipun model ini sangat sesuai dengan data, evaluasi lebih lanjut dengan model lebih sederhana dan uji parsimonious akan berguna untuk menyederhanakan interpretasi tanpa kehilangan kualitas pemodelan.

13.12.1 Model Homogenous

Model log-linear homogenous memasukkan semua efek utama dan semua interaksi dua arah, tanpa interaksi tiga arah. Secara matematis, model ini dapat dituliskan sebagai berikut : \[ \log(\mu_{ijk}) = \lambda + \lambda^{X}_i + \lambda^{Y}_j + \lambda^{Z}_k + \lambda^{XY}_{ij} + \lambda^{XZ}_{ik} + \lambda^{YZ}_{jk} \]

# Model homogeneous (tanpa interaksi tiga arah)
model_homogenous <- glm(
  Frekuensi ~ Jenis_Kelamin + Sikap + Pendidikan +
              Jenis_Kelamin*Sikap + Jenis_Kelamin*Pendidikan + Sikap*Pendidikan,
  data = data_loglin,
  family = poisson(link = "log")
)

# Ringkasan hasil model
summary(model_homogenous)
## 
## Call:
## glm(formula = Frekuensi ~ Jenis_Kelamin + Sikap + Pendidikan + 
##     Jenis_Kelamin * Sikap + Jenis_Kelamin * Pendidikan + Sikap * 
##     Pendidikan, family = poisson(link = "log"), data = data_loglin)
## 
## Coefficients:
##                              Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                   2.84630    0.21220  13.413  < 2e-16 ***
## Jenis_KelaminL               -0.29873    0.25396  -1.176   0.2395    
## SikapPercaya                  0.99907    0.23462   4.258 2.06e-05 ***
## PendidikanS1                 -0.08374    0.27829  -0.301   0.7635    
## PendidikanSMA                 0.24181    0.26460   0.914   0.3608    
## Jenis_KelaminL:SikapPercaya  -0.07393    0.22596  -0.327   0.7435    
## Jenis_KelaminL:PendidikanS1   0.48898    0.25447   1.922   0.0547 .  
## Jenis_KelaminL:PendidikanSMA  0.34890    0.25794   1.353   0.1762    
## SikapPercaya:PendidikanS1     0.23031    0.28990   0.794   0.4269    
## SikapPercaya:PendidikanSMA   -0.21465    0.28131  -0.763   0.4455    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 99.3021  on 11  degrees of freedom
## Residual deviance:  2.0766  on  2  degrees of freedom
## AIC: 84.589
## 
## Number of Fisher Scoring iterations: 4

Model log-linear homogen mengasumsikan bahwa hubungan antara variabel Jenis Kelamin, Pendidikan, dan Sikap terhadap Perubahan Iklim hanya melibatkan interaksi dua arah, tanpa adanya interaksi tiga arah (Jenis Kelamin × Pendidikan × Sikap). Berdasarkan output model, nilai Residual Deviance = 2.08 pada 2 derajat bebas, menunjukkan bahwa model cukup sesuai dengan data, karena deviasi residual sangat kecil dan mendekati 0, yang mengindikasikan tidak ada penyimpangan berarti dari data aktual.

Dari sisi signifikansi parameter, hanya variabel SikapPercaya yang memiliki pengaruh signifikan terhadap frekuensi (Estimate = 0.999, p < 0.001), yang menunjukkan bahwa secara umum, sikap percaya terhadap perubahan iklim lebih sering ditemukan dalam populasi dibandingkan dengan sikap skeptis, setelah mengontrol variabel lainnya. Efek Jenis Kelamin dan Pendidikan, serta interaksi dua arah antara mereka, tidak menunjukkan signifikansi statistik (semua p > 0.05), kecuali interaksi Jenis_KelaminL:PendidikanS1 yang mendekati signifikan (p = 0.0547), yang dapat diinterpretasikan sebagai indikasi adanya sedikit perbedaan distribusi antar jenis kelamin pada tingkat pendidikan S1.

Dengan AIC = 84.59, model homogen ini justru memberikan nilai AIC lebih rendah dibandingkan model saturated (AIC = 86.51), menunjukkan bahwa model homogen lebih parsimonious dan masih mampu menjelaskan data dengan baik tanpa perlu menambahkan interaksi tiga arah. Oleh karena itu, model homogen dapat dianggap sebagai model yang sesuai dan efisien untuk menggambarkan struktur hubungan antara ketiga variabel kategorik dalam studi ini.

13.12.2 Uji Hipotesis: Apakah Ada Interaksi Tiga Arah? (Saturated vs Homogenous)

Pengujian ini menggunakan residual deviance dari kedua model (saturated dan homogenous). Langkah-langkah pengujiannya yaitu :

Hipotesis

  • H0 : Tidak ada interaksi tiga arah (model homogenous sudah cukup)

  • H1 : Ada interaksi tiga arah (model saturated diperlukan)

Hitung Selisih Deviance

# Deviance antar model
Deviance.model <- model_homogenous$deviance - model_saturated$deviance
Deviance.model
## [1] 2.076583

Hitung Derajat Bebas

# Derajat bebas = db model homogenous - db model saturated
derajat.bebas <- (model_homogenous$df.residual - model_saturated$df.residual)
derajat.bebas
## [1] 2

Chi-Square Tabel (α = 0.05)

chi.tabel <- qchisq(1 - 0.05, df = derajat.bebas)
chi.tabel
## [1] 5.991465

Keputusan Uji

Keputusan <- ifelse(Deviance.model <= chi.tabel, "Terima H0", "Tolak H0")
Keputusan
## [1] "Terima H0"

Interpretasi : Pada taraf nyata 5%, belum cukup bukti untuk menolak H0 atau dapat dikatakan bahwa tidak ada interaksi tiga arah antara ketiga faktor.

Catatan :

  • Model pengurang adalah model yang lebih lengkap (lebih banyak parameter, df lebih kecil), yaitu model saturated

  • Derajat bebas dihitung dari selisih derajat bebas model homogenous dan saturated

  • Keputusan berdasarkan perbandingan deviance model dengan chi-square tabel

Rangkuman

Pengujian ada tidaknya interaksi tiga arah (Saturated Model vs Homogenous Model)

  • Hipotesis

    • H0: \(\lambda_{ijk}^{XYZ}=0\) (Tidak ada interaksi tiga arah; model yang terbentuk adalah model homogenous) -

    • H0: \(\lambda_{ijk}^{XYZ}\neq0\) (Tidak ada interaksi tiga arah; model yang terbentuk adalah model homogenous)

  • Tingkat Signifikansi

    \(\alpha=5\%\)

  • Statistik Uji

    • \(\Delta\)Deviance = Deviance model homogenous - Deviance model saturated = 2.08

    • \(db\) = \(db\) model homogenous - \(db\) model saturated = 2 - 0 = 2

  • Daerah Penolakan

    Tolak H0 jika \(\Delta\)Deviance \(\>>\) \(\chi_{0.05,db}^2 = \chi_{0.05,2}^2 = 5.991\)

  • Keputusan

    Karena 2.08 < 5.991, maka terima H0

  • Interpretasi

    Pada taraf nyata 5%, belum cukup bukti untuk menolak H0 atau dapat dikatakan bahwa tidak ada interaksi tiga arah antara ketiga faktor.

Catatan Perhitungan Derajat Bebas dan Selisih Deviance

Dalam membuat selisih deviance, model yang menjadi pengurang adalah model yang lebih lengkap (parameter yang lebih banyak atau derajat bebasnya lebih kecil).

Makin banyak parameter, makin kecil derajat bebasnya, karena :

  • db = banyaknya amatan (atau perkalian dimensi tabel kontingensi, misal 2 × 2 × 3 = 12) dikurangi banyaknya parameter (koefisien, termasuk intercept).

13.12.3 UJI MODEL INTERAKSI DUA ARAH (HOMOGENOUS VS CONDITIONAL ON X)

Model Conditional on X

Model log-linear conditional pada X memasukkan efek utama dan interaksi dua arah antara X dengan Y dan X dengan Z, tanpa interaksi antara Y dengan Z maupun interaksi tiga arah. \[ \log(\mu_{ijk}) = \lambda + \lambda^{X}_i + \lambda^{Y}_j + \lambda^{Z}_k + \lambda^{XY}_{ij} + \lambda^{XZ}_{ik} \]

# Model dengan asosiasi kondisional pada Jenis Kelamin (X)
# Menyertakan interaksi: Jenis_Kelamin × Sikap, dan Jenis_Kelamin × Pendidikan
# Tidak menyertakan interaksi Sikap × Pendidikan

model_conditional_X <- glm(
  Frekuensi ~ Jenis_Kelamin + Sikap + Pendidikan +
              Jenis_Kelamin*Sikap + Jenis_Kelamin*Pendidikan,
  data = data_loglin,
  family = poisson(link = "log")
)

# Ringkasan hasil model
summary(model_conditional_X)
## 
## Call:
## glm(formula = Frekuensi ~ Jenis_Kelamin + Sikap + Pendidikan + 
##     Jenis_Kelamin * Sikap + Jenis_Kelamin * Pendidikan, family = poisson(link = "log"), 
##     data = data_loglin)
## 
## Coefficients:
##                              Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                   2.84810    0.17001  16.752  < 2e-16 ***
## Jenis_KelaminL               -0.30710    0.25334  -1.212    0.225    
## SikapPercaya                  0.99661    0.15778   6.317 2.67e-10 ***
## PendidikanS1                  0.08961    0.17295   0.518    0.604    
## PendidikanSMA                 0.08961    0.17295   0.518    0.604    
## Jenis_KelaminL:SikapPercaya  -0.06230    0.22409  -0.278    0.781    
## Jenis_KelaminL:PendidikanS1   0.48575    0.25423   1.911    0.056 .  
## Jenis_KelaminL:PendidikanSMA  0.35222    0.25772   1.367    0.172    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 99.3021  on 11  degrees of freedom
## Residual deviance:  4.9225  on  4  degrees of freedom
## AIC: 83.434
## 
## Number of Fisher Scoring iterations: 4

13.13 Pengujian Interaksi Antara Sikap dan Pendidikan (Model Homogeneous vs Conditional Association on Jenis Kelamin)

13.13.1 Hipotesis

  • H₀: \(\lambda_{jk}^{YZ} = 0\) (tidak ada interaksi antara Sikap terhadap perubahan iklim (Y) dan Pendidikan (Z))
  • H₁: \(\lambda_{jk}^{YZ} \neq 0\) (ada interaksi antara Y dan Z)

13.13.2 Tingkat Signifikansi

\(\alpha = 5\%\)

13.13.3 Statistik Uji

Uji dilakukan dengan membandingkan deviance dari dua model

\[ \Delta \text{Deviance} = \text{Deviance}_{\text{conditional on X}} - \text{Deviance}_{\text{homogeneous}} \]

# Pengujian hipotesis

# Deviance of Model
Deviance.model <- model_conditional_X$deviance - model_homogenous$deviance
# model_conditional_X: conditional on X, model_homogenous: homogenous
Deviance.model
## [1] 2.845948

Pengujian Selisih Deviance (Conditional on X vs Homogenous)

Langkah-langkah uji hipotesis menggunakan residual deviance

# Selisih deviance antar model
Deviance.model <- model_conditional_X$deviance - model_homogenous$deviance
Deviance.model
## [1] 2.845948

Hitung Derajat Bebas

# Chi Square tabel dengan alpha = 0.05
derajat.bebas <- (4 - 2)
derajat.bebas
## [1] 2

Nilai Chi-Square Tabel

chi.tabel <- qchisq((1 - 0.05), df = derajat.bebas)
chi.tabel
## [1] 5.991465

Keputusan Uji

Keputusan <- ifelse(Deviance.model <= chi.tabel, "Terima", "Tolak")
Keputusan
## [1] "Terima"

Interpretasi : Karena nilai Deviance.model = 2.85 lebih kecil dari nilai kritis chi-square tabel = 5.99 (dengan df = 2, alpha = 0.05), maka keputusan uji adalah “Terima”.

Kesimpulan : Dengan tingkat signifikansi 5%, tidak cukup bukti untuk menyimpulkan adanya interaksi antara Sikap dan Pendidikan. Oleh karena itu, model tanpa interaksi \(\lambda^{YZ}_{jk}\) sudah memadai, dan model ini lebih sederhana (parsimonious) tanpa kehilangan kualitas prediksi yang berarti.

13.13.4 UJI MODEL INTERAKSI DUA ARAH (HOMOGENOUS VS CONDITIONAL ON Y)

Model Conditional on Y

Model log-linear conditional pada Y memasukkan efek utama dan interaksi dua arah antara X dengan Y dan Y dengan Z, tanpa interaksi antara X dengan Z maupun interaksi tiga arah. \[ \log(\mu_{ijk}) = \lambda + \lambda^{X}_i + \lambda^{Y}_j + \lambda^{Z}_k + \lambda^{XY}_{ij} + \lambda^{YZ}_{jk} \]

# Model dengan asosiasi kondisional pada Y (Sikap)
model_conditional_Y <- glm(Frekuensi ~ Jenis_Kelamin + Sikap + Pendidikan +
                             Jenis_Kelamin * Sikap + Sikap * Pendidikan,
                           family = poisson(link = "log"),
                           data = data_loglin)

# Ringkasan hasil model
summary(model_conditional_Y)
## 
## Call:
## glm(formula = Frekuensi ~ Jenis_Kelamin + Sikap + Pendidikan + 
##     Jenis_Kelamin * Sikap + Sikap * Pendidikan, family = poisson(link = "log"), 
##     data = data_loglin)
## 
## Coefficients:
##                               Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                  2.708e+00  2.060e-01  13.148  < 2e-16 ***
## Jenis_KelaminL               4.575e-14  1.907e-01   0.000   1.0000    
## SikapPercaya                 9.989e-01  2.415e-01   4.136 3.54e-05 ***
## PendidikanS1                 1.542e-01  2.488e-01   0.620   0.5355    
## PendidikanSMA                4.055e-01  2.357e-01   1.720   0.0854 .  
## Jenis_KelaminL:SikapPercaya -6.230e-02  2.241e-01  -0.278   0.7810    
## SikapPercaya:PendidikanS1    2.213e-01  2.885e-01   0.767   0.4430    
## SikapPercaya:PendidikanSMA  -2.210e-01  2.806e-01  -0.788   0.4309    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 99.3021  on 11  degrees of freedom
## Residual deviance:  5.8994  on  4  degrees of freedom
## AIC: 84.411
## 
## Number of Fisher Scoring iterations: 4

13.14 Pengujian Interaksi Antara Jenis Kelamin dan Pendidikan (Model Homogenous vs Conditional Association on Sikap)

13.14.1 Hipotesis

  • H₀: \(\lambda_{ik}^{XZ} = 0\) (Tidak ada interaksi antara Jenis Kelamin (X) dan Pendidikan (Z))
  • H₁: \(\lambda_{ik}^{XZ} \neq 0\) (Ada interaksi antara Jenis Kelamin dan Pendidikan)

13.14.2 Tingkat Signifikansi

\(\alpha = 5\%\)

13.14.3 Statistik Uji

Uji dilakukan dengan membandingkan deviance dari model yang mengasumsikan asosiasi bersyarat pada Sikap (Y) terhadap model homogenous :

\[ \Delta \text{Deviance} = \text{Deviance}_{\text{conditional on Y}} - \text{Deviance}_{\text{homogenous}} \ \]

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

# Deviance of Model
Deviance.model <- model_conditional_Y$deviance - model_homogenous$deviance   # model_conditional_Y: conditional on Y, model_homogenous: homogenous
Deviance.model
## [1] 3.8228

Hitung Derajat Bebas

derajat.bebas <- (4 - 2)
derajat.bebas
## [1] 2

Nilai Chi-Square Tabel

chi.tabel <- qchisq((1 - 0.05), df = derajat.bebas)
chi.tabel
## [1] 5.991465

Keputusan Uji

Keputusan <- ifelse(Deviance.model <= chi.tabel, "Terima", "Tolak")
Keputusan
## [1] "Terima"

Interpretasi : Karena nilai Deviance.model = 3.82 lebih kecil dari nilai kritis chi-square tabel = 5.99 (df = 2, alpha = 0.05), maka keputusan uji adalah “Terima”.

Kesimpulan : Dengan taraf nyata 5%, belum cukup bukti untuk menyimpulkan adanya interaksi antara Jenis Kelamin dan Pendidikan. Artinya, model yang tidak memasukkan parameter interaksi \(\lambda^{XZ}_{ik}\) masih memadai untuk menjelaskan struktur data. Model ini juga lebih sederhana dan efisien untuk digunakan dalam interpretasi.

13.14.4 UJI MODEL INTERAKSI DUA ARAH (HOMOGENOUS VS CONDITIONAL ON Z)

Model Conditional on Z

Model log-linear conditional pada Z memasukkan efek utama dan interaksi dua arah antara X dengan Z dan Y dengan Z, tanpa interaksi antara X dengan Y maupun interaksi tiga arah. \[ \log(\mu_{ijk}) = \lambda + \lambda^{X}_i + \lambda^{Y}_j + \lambda^{Z}_k + \lambda^{XZ}_{ik} + \lambda^{YZ}_{jk} \]

# Model dengan asosiasi kondisional pada Pendidikan (Z)
model_conditional_Z <- glm(Frekuensi ~ Jenis_Kelamin + Sikap + Pendidikan +
                             Jenis_Kelamin * Pendidikan + Sikap * Pendidikan,
                           family = poisson(link = "log"),
                           data = data_loglin)

# Ringkasan hasil model
summary(model_conditional_Z)
## 
## Call:
## glm(formula = Frekuensi ~ Jenis_Kelamin + Sikap + Pendidikan + 
##     Jenis_Kelamin * Pendidikan + Sikap * Pendidikan, family = poisson(link = "log"), 
##     data = data_loglin)
## 
## Coefficients:
##                              Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                   2.86873    0.19946  14.383  < 2e-16 ***
## Jenis_KelaminL               -0.35222    0.19454  -1.810   0.0702 .  
## SikapPercaya                  0.96825    0.21446   4.515 6.33e-06 ***
## PendidikanS1                 -0.07552    0.27563  -0.274   0.7841    
## PendidikanSMA                 0.24478    0.26296   0.931   0.3519    
## Jenis_KelaminL:PendidikanS1   0.48575    0.25423   1.911   0.0560 .  
## Jenis_KelaminL:PendidikanSMA  0.35222    0.25772   1.367   0.1717    
## SikapPercaya:PendidikanS1     0.22133    0.28855   0.767   0.4430    
## SikapPercaya:PendidikanSMA   -0.22104    0.28061  -0.788   0.4309    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 99.3021  on 11  degrees of freedom
## Residual deviance:  2.1836  on  3  degrees of freedom
## AIC: 82.696
## 
## Number of Fisher Scoring iterations: 4

13.15 Pengujian Interaksi Antara Jenis Kelamin dan Sikap (Model Homogenous vs Conditional Association on Pendidikan)

13.15.1 Hipotesis

  • H₀: \(\lambda_{ij}^{XY} = 0\) (Tidak ada interaksi antara Jenis Kelamin (X) dan Sikap terhadap perubahan iklim (Y))
  • H₁: \(\lambda_{ij}^{XY} \neq 0\) (Ada interaksi antara Jenis Kelamin dan Sikap)

13.15.2 Tingkat Signifikansi

\(\alpha = 5\%\)

13.15.3 Statistik Uji

Dihitung dari selisih deviance antara model dengan asosiasi kondisional pada Pendidikan (Z) dan model homogenous :

\[ \Delta \text{Deviance} = \text{Deviance}_{\text{conditional Z}} - \text{Deviance}_{\text{homogenous}} \]

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

Hitung Selisih Deviance

# Deviance of Model
Deviance.model <- model_conditional_Z$deviance - model_homogenous$deviance   # model_conditional_Z: conditional on Z, model_homogenous: homogenous
Deviance.model
## [1] 0.1070551

Hitung Derajat Bebas

derajat.bebas <- (3 - 2)
derajat.bebas
## [1] 1

Nilai Chi-Square Tabel

chi.tabel <- qchisq((1 - 0.05), df = derajat.bebas)
chi.tabel
## [1] 3.841459

Keputusan Uji

Keputusan <- ifelse(Deviance.model <= chi.tabel, "Terima", "Tolak")
Keputusan
## [1] "Terima"

Interpretasi : Nilai deviance difference yang diperoleh dari pengurangan antara deviance model conditional dan model homogenous adalah sebesar 0.1071, sementara nilai kritis dari distribusi chi-square dengan derajat bebas 1 pada taraf signifikansi 5% adalah 3.8415. Karena nilai deviance ini jauh lebih kecil dari nilai kritis chi-square, maka tidak terdapat perbedaan signifikan antara kedua model. Artinya, menambahkan parameter interaksi antara Jenis Kelamin dan Sikap tidak secara signifikan meningkatkan kecocokan model terhadap data.

Kesimpulan : Berdasarkan hasil pengujian dengan taraf signifikansi 5%, tidak terdapat cukup bukti untuk menyimpulkan adanya interaksi antara Jenis Kelamin dan Sikap terhadap perubahan iklim. Dengan demikian, model tanpa parameter interaksi \(\lambda_{ij}^{XY}\) sudah memadai untuk merepresentasikan struktur data yang ada. Model ini lebih sederhana dan sejalan dengan prinsip parsimony, karena menjelaskan data secara efisien tanpa menambahkan kompleksitas yang tidak perlu.

13.16 Pemilihan Model Terbaik

13.16.1 Ringkasan Model Log Linier

library(tibble)
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.3.3
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows
library(magrittr)
## Warning: package 'magrittr' was built under R version 4.3.3
## 
## Attaching package: 'magrittr'
## The following object is masked from 'package:purrr':
## 
##     set_names
## The following object is masked from 'package:tidyr':
## 
##     extract

Tabel Perbandingan Model

loglin_models <- tibble::tibble(
  Model = c(
    "Saturated",
    "Jenis Kelamin × Sikap + Jenis Kelamin × Pendidikan",
    "Jenis Kelamin × Sikap + Sikap × Pendidikan",
    "Jenis Kelamin × Pendidikan + Sikap × Pendidikan"
  ),
  Parameter = c(
    "$\\lambda + \\lambda^X_i + \\lambda^Y_j + \\lambda^Z_k + \\lambda^{XY}_{ij} + \\lambda^{XZ}_{ik} + \\lambda^{YZ}_{jk} + \\lambda^{XYZ}_{ijk}$",
    "$\\lambda + \\lambda^X_i + \\lambda^Y_j + \\lambda^Z_k + \\lambda^{XY}_{ij} + \\lambda^{XZ}_{ik}$",
    "$\\lambda + \\lambda^X_i + \\lambda^Y_j + \\lambda^Z_k + \\lambda^{XY}_{ij} + \\lambda^{YZ}_{jk}$",
    "$\\lambda + \\lambda^X_i + \\lambda^Y_j + \\lambda^Z_k + \\lambda^{XZ}_{ik} + \\lambda^{YZ}_{jk}$"
  ),
  Deviance = c(0.000, 4.9225, 5.8994, 2.1836),
  Jumlah_Parameter = c(12, 7, 7, 8),
  df = c(0, 4, 4, 3),
  AIC = c(86.51, 83.434, 84.411, 82.696)
)

loglin_models %>%
  kable(escape = FALSE, booktabs = TRUE, align = "c", caption = "Tabel 5.2 Perbandingan Model Log-Linear (Data: Jenis Kelamin, Sikap, Pendidikan)") %>%
  kable_styling(latex_options = c("hold_position", "striped")) %>%
  row_spec(0, bold = TRUE, background = "#f0f0f0") %>%
  column_spec(1:6, width = "3.2cm")
Tabel 5.2 Perbandingan Model Log-Linear (Data: Jenis Kelamin, Sikap, Pendidikan)
Model Parameter Deviance Jumlah_Parameter df AIC
Saturated \(\lambda + \lambda^X_i + \lambda^Y_j + \lambda^Z_k + \lambda^{XY}_{ij} + \lambda^{XZ}_{ik} + \lambda^{YZ}_{jk} + \lambda^{XYZ}_{ijk}\) 0.0000 12 0 86.510
Jenis Kelamin × Sikap + Jenis Kelamin × Pendidikan \(\lambda + \lambda^X_i + \lambda^Y_j + \lambda^Z_k + \lambda^{XY}_{ij} + \lambda^{XZ}_{ik}\) 4.9225 7 4 83.434
Jenis Kelamin × Sikap + Sikap × Pendidikan \(\lambda + \lambda^X_i + \lambda^Y_j + \lambda^Z_k + \lambda^{XY}_{ij} + \lambda^{YZ}_{jk}\) 5.8994 7 4 84.411
Jenis Kelamin × Pendidikan + Sikap × Pendidikan \(\lambda + \lambda^X_i + \lambda^Y_j + \lambda^Z_k + \lambda^{XZ}_{ik} + \lambda^{YZ}_{jk}\) 2.1836 8 3 82.696

13.16.2 Ringkasan Pengujian Interaksi 3 Arah dan 2 Arah

uji_interaksi <- tibble::tibble(
  Interaksi = c("XYZ", "YZ", "XZ", "XY"),
  Pengujian = c(
    "Saturated vs Homogenous",
    "Conditional on X vs Homogenous",
    "Conditional on Y vs Homogenous",
    "Conditional on Z vs Homogenous"
  ),
  delta_deviance = c(0.000, 2.845, 3.8228, 0.107),
  delta_df = c(0, 2, 1, 1),
  Chi_square_Tabel = c(0.000, 5.991, 3.841, 3.841),
  Keputusan = c("Tidak Uji", "Tidak Tolak H0", "Tidak Tolak H0", "Tidak Tolak H0"),
  Keterangan = c("fit sempurna", "tidak ada interaksi", "tidak ada interaksi", "tidak ada interaksi")
)

uji_interaksi %>%
  kable(booktabs = TRUE, align = "c", caption = "Tabel 5.3 Ringkasan Pengujian Interaksi 3 Arah dan 2 Arah") %>%
  kable_styling(latex_options = c("hold_position", "striped")) %>%
  row_spec(0, bold = TRUE, background = "#f0f0f0") %>%
  column_spec(1:6, width = "3cm")
Tabel 5.3 Ringkasan Pengujian Interaksi 3 Arah dan 2 Arah
Interaksi Pengujian delta_deviance delta_df Chi_square_Tabel Keputusan Keterangan
XYZ Saturated vs Homogenous 0.0000 0 0.000 Tidak Uji fit sempurna
YZ Conditional on X vs Homogenous 2.8450 2 5.991 Tidak Tolak H0 tidak ada interaksi
XZ Conditional on Y vs Homogenous 3.8228 1 3.841 Tidak Tolak H0 tidak ada interaksi
XY Conditional on Z vs Homogenous 0.1070 1 3.841 Tidak Tolak H0 tidak ada interaksi

13.16.3 Kesimpulan Pemilihan Model Terbaik

Dari hasil di atas diketahui bahwa asosiasi yang nyata hanya terdapat antara jenis kelamin dan sikap terhadap perubahan iklim. Sehingga, model terbaik adalah :

\[ \log(\mu_{ijk}) = \lambda + \lambda^X_i + \lambda^Y_j + \lambda^Z_k + \lambda^{XY}_{ij} \]

Model terbaik adalah model log-linear tanpa interaksi tiga arah dan hanya memuat interaksi dua arah antara jenis kelamin dan sikap terhadap perubahan iklim.

13.17 Model Terbaik

Model terbaik yaitu hanya interaksi dua arah antara jenis kelamin (X) dan sikap terhadap perubahan iklim (Y) :

\[ \log(\mu_{ijk}) = \lambda + \lambda^X_i + \lambda^Y_j + \lambda^Z_k + \lambda^{XY}_{ij} \]

# Model Terbaik
bestmodel <- glm(Frekuensi ~ Jenis_Kelamin + Sikap + Pendidikan + Jenis_Kelamin * Sikap,
                 family = poisson(link = "log"),
                 data = data_loglin)

# Ringkasan hasil model
summary(bestmodel)
## 
## Call:
## glm(formula = Frekuensi ~ Jenis_Kelamin + Sikap + Pendidikan + 
##     Jenis_Kelamin * Sikap, family = poisson(link = "log"), data = data_loglin)
## 
## Coefficients:
##                               Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                  2.710e+00  1.576e-01  17.189  < 2e-16 ***
## Jenis_KelaminL               5.243e-15  1.907e-01   0.000   1.0000    
## SikapPercaya                 9.966e-01  1.578e-01   6.317 2.67e-10 ***
## PendidikanS1                 3.193e-01  1.259e-01   2.537   0.0112 *  
## PendidikanSMA                2.503e-01  1.277e-01   1.959   0.0501 .  
## Jenis_KelaminL:SikapPercaya -6.230e-02  2.241e-01  -0.278   0.7810    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 99.3021  on 11  degrees of freedom
## Residual deviance:  8.7156  on  6  degrees of freedom
## AIC: 83.228
## 
## Number of Fisher Scoring iterations: 4

Model terbaik yang terpilih adalah model log-linear dengan efek utama dari Jenis Kelamin, Sikap terhadap Perubahan Iklim, dan Pendidikan, serta interaksi dua arah antara Jenis Kelamin dan Sikap. Model ini dipilih karena memberikan keseimbangan antara kesesuaian model dan kesederhanaan, dengan residual deviance sebesar 8.72 pada 6 derajat kebebasan, serta AIC yang rendah yaitu 83.23.

Secara umum, model ini menunjukkan bahwa :

  • Sikap terhadap Perubahan Iklim berpengaruh signifikan terhadap frekuensi responden. Koefisien SikapPercaya sebesar 0.9966 (p < 0.001) menunjukkan bahwa responden yang memiliki sikap percaya terhadap perubahan iklim cenderung lebih banyak jumlahnya dibandingkan yang skeptis, setelah mengontrol variabel lainnya.

  • Pendidikan juga menunjukkan pengaruh signifikan. Dibandingkan dengan kelompok referensi (S2/S3), responden dengan pendidikan S1 memiliki frekuensi yang lebih tinggi secara signifikan (β = 0.3193, p = 0.0112), sedangkan untuk kelompok SMA (β = 0.2503, p = 0.0501) menunjukkan signifikansi marginal (p = 0.05), yang menunjukkan tren serupa

  • Interaksi Jenis Kelamin × Sikap ternyata tidak signifikan (p = 0.7810), namun tetap disertakan karena masuk dalam struktur model terbaik berdasarkan analisis interaksi sebelumnya.

  • Variabel Jenis Kelamin secara sendiri juga tidak signifikan (p = 1.000), menandakan bahwa tanpa mempertimbangkan interaksinya, perbedaan antara laki-laki dan perempuan dalam frekuensi responden tidak bermakna.

Model ini menyimpulkan bahwa sikap terhadap perubahan iklim dan tingkat pendidikan adalah dua faktor yang secara signifikan memengaruhi distribusi sikap dalam populasi, sedangkan jenis kelamin dan interaksinya dengan sikap tidak memberikan kontribusi signifikan secara statistik. Model ini efisien dan memiliki deviance residual yang kecil, menandakan kesesuaian yang baik terhadap data.

13.18 Interpretasi Koefisien Terbaik

# Interpretasi koefisien model terbaik
data.frame(
  koef = bestmodel$coefficients,
  exp_koef = exp(bestmodel$coefficients)
)

Interpretasi Koefisien Model Terbaik

  • Intercept (2.7097 / exp ≈ 15.03): Frekuensi rata-rata dari kategori referensi (Laki-laki, Tidak Percaya, Pendidikan SD) adalah sekitar 15 responden.
  • Jenis_KelaminL (≈ 0): Tidak terdapat perbedaan frekuensi antara laki-laki dan perempuan pada kondisi sikap “tidak percaya”.
  • SikapPercaya (exp ≈ 2.71): Laki-laki yang percaya memiliki peluang frekuensi 2.71 kali lebih tinggi daripada yang tidak percaya.
  • PendidikanS1 (exp ≈ 1.38): Responden dengan pendidikan S1 memiliki frekuensi 1.38 kali lebih tinggi dibandingkan referensi (SD).
  • PendidikanSMA (exp ≈ 1.28): Responden dengan pendidikan SMA memiliki frekuensi 1.28 kali lebih tinggi dibandingkan referensi (SD).
  • Interaksi Jenis_KelaminL:SikapPercaya (exp ≈ 0.94): Efek percaya terhadap frekuensi sedikit lebih lemah pada perempuan dibandingkan laki-laki (penurunan ~6%).

Model terbaik ini menunjukkan bahwa :

  • Variabel Sikap merupakan faktor paling berpengaruh terhadap frekuensi.

  • Jenis kelamin sendiri tidak signifikan, namun berinteraksi dengan sikap.

  • Pendidikan memengaruhi frekuensi, tetapi efeknya lebih kecil.

  • Interaksi antara jenis kelamin dan sikap mengindikasikan adanya sedikit perbedaan pengaruh sikap terhadap frekuensi pada kelompok perempuan.

Model ini bersifat parsimonious dan efisien dalam menjelaskan variasi data dengan kompleksitas yang masih terkendali.

13.19 Nilai Dugaan Model Terbaik

Fitted Values

# Tabel hasil fitted values
hasil_fitted <- data.frame(
  Pendidikan = data_loglin$Pendidikan,
  Jenis_Kelamin = data_loglin$Jenis_Kelamin,
  Sikap = data_loglin$Sikap,
  Frekuensi = data_loglin$Frekuensi,
  Fitted = fitted(bestmodel)
)
hasil_fitted

Perhitungan Manual Nilai Dugaan (Fitted Value) Model Terbaik

Secara manual, nilai fitted value diperoleh dari model log-linear dengan rumus umum :

\[ \hat{\mu}_{ijk} = \exp(\lambda + \lambda^{X}_{i} + \lambda^{Y}_{j} + \lambda^{Z}_{k} + \lambda^{XY}_{ij}) \]

Dengan ;

  • \(\lambda\) = Intercept
  • \(\lambda^{X}_i\) = efek Jenis Kelamin (misalnya untuk Laki-laki atau Perempuan)
  • \(\lambda^{Y}_j\) = efek Sikap (Percaya atau Skeptis)
  • \(\lambda^{Z}_k\) = efek Pendidikan (SMA, S1, S2/S3)
  • \(\lambda^{XY}_{ij}\) = interaksi Jenis Kelamin dan Sikap (karena model terbaik hanya memasukkan interaksi ini)

1. Pendidikan = SMA, Jenis Kelamin = L, Sikap = Percaya

\[ \hat{\mu}_{\text{SMA,L,Percaya}} = \exp(2.7097 + 0 + 0.9966 + 0.2503 - 0.0623) = \exp(3.8943) = 49.12 \]

2. Pendidikan = SMA, Jenis Kelamin = L, Sikap = Skeptis

\[ \hat{\mu}_{\text{SMA,L,Skeptis}} = \exp(2.7097 + 0 + 0 + 0.2503 + 0) = \exp(2.96) = 19.30 \]

3. Pendidikan = SMA, Jenis Kelamin = P, Sikap = Percaya

\[ \hat{\mu}_{\text{SMA,P,Percaya}} = \exp(2.7097 + 0.9966 + 0.2503) = \exp(3.9566) = 52.28 \]

4. Pendidikan = SMA, Jenis Kelamin = P, Sikap = Skeptis

\[ \hat{\mu}_{\text{SMA,P,Skeptis}} = \exp(2.7097 + 0.2503) = \exp(2.96) = 19.30 \]

5. Pendidikan = S1, Jenis Kelamin = L, Sikap = Percaya

\[ \hat{\mu}_{\text{S1,L,Percaya}} = \exp(2.7097 + 0 + 0.9966 + 0.3193 - 0.0623) = \exp(3.9633) = 52.63 \]

6. Pendidikan = S1, Jenis Kelamin = L, Sikap = Skeptis

\[ \hat{\mu}_{\text{S1,L,Skeptis}} = \exp(2.7097 + 0 + 0.3193 + 0) = \exp(3.0290) = 20.68 \]

7. Pendidikan = S1, Jenis Kelamin = P, Sikap = Percaya

\[ \hat{\mu}_{\text{S1,P,Percaya}} = \exp(2.7097 + 0.9966 + 0.3193) = \exp(4.0256) = 56.02 \]

8. Pendidikan = S1, Jenis Kelamin = P, Sikap = Skeptis

\[ \hat{\mu}_{\text{S1,P,Skeptis}} = \exp(2.7097 + 0.3193) = \exp(3.0290) = 20.68 \]

9. Pendidikan = S2/S3, Jenis Kelamin = L, Sikap = Percaya

\[ \hat{\mu}_{\text{S2/S3,L,Percaya}} = \exp(2.7097 + 0 + 0.9966 + 0 + -0.0623) = \exp(3.6440) = 38.25 \]

10. Pendidikan = S2/S3, Jenis Kelamin = L, Sikap = Skeptis

\[ \hat{\mu}_{\text{S2/S3,L,Skeptis}} = \exp(2.7097) = 15.03 \]

11. Pendidikan = S2/S3, Jenis Kelamin = P, Sikap = Percaya

\[ \hat{\mu}_{\text{S2/S3,P,Percaya}} = \exp(2.7097 + 0.9966) = \exp(3.7063) = 40.70 \]

12. Pendidikan = S2/S3, Jenis Kelamin = P, Sikap = Skeptis

\[ \hat{\mu}_{\text{S2/S3,P,Skeptis}} = \exp(2.7097) = 15.03 \]

Keterangan :
Nilai \(\hat{\mu}_{ijk}\) akan sama apapun referensi dari kategori peubahnya yang kita gunakan.

14 Penutup

Ebook ini telah membahas secara sistematis dan komprehensif berbagai konsep dan teknik dalam analisis data kategorik. Penyusunan materi dilakukan secara bertahap, dimulai dari konsep dasar, pengukuran asosiasi, hingga pengembangan model statistik dengan pendekatan Generalized Linear Models (GLM). Setiap bab dirancang untuk memberikan pemahaman konseptual yang kuat sekaligus keterampilan praktis dalam mengolah dan menganalisis data kategori, terutama menggunakan perangkat lunak R.

Bab I hingga Bab III memberikan fondasi teoritis mengenai penyajian data kategori dalam bentuk tabel kontingensi, baik dua arah maupun tiga arah. Melalui pendekatan ini, pembaca dikenalkan pada teknik deskriptif dan inferensial seperti uji chi-square, odds ratio, relative risk, dan partisi chi-square. Uji independensi dan analisis stratifikasi juga disajikan sebagai dasar penting dalam mengevaluasi hubungan antar variabel.

Bab IV hingga Bab VI merupakan jembatan menuju analisis yang lebih fleksibel dan modern, yakni melalui GLM. Di sini, pembaca diperkenalkan pada struktur model logistik dan Poisson, termasuk fungsi link logit dan log, asumsi distribusi, serta metode estimasi parameter seperti Maximum Likelihood Estimation (MLE) dan implementasi algoritma Newton-Raphson. Selain itu, disampaikan pula diagnosa model dan evaluasi fit model melalui residual, deviance, dan AIC.

Pembahasan dalam Bab VII hingga IX memperkuat analisis regresi logistik dan memperluas cakupan ke data kategori multinomial dan ordinal. Salah satu nilai tambah dari ebook ini adalah pendekatan praktis dalam pemilihan model terbaik menggunakan kriteria AIC dan BIC, penerapan metode stepwise, serta evaluasi model menggunakan ROC curve dan tabel klasifikasi. Pembaca tidak hanya diajak memahami model secara matematis, tetapi juga bagaimana menginterpretasikan koefisien model dan implikasinya terhadap variabel nyata di lapangan.

Bab X menjadi puncak dari keseluruhan pembahasan dengan mengintegrasikan model log-linear sebagai generalisasi GLM untuk tabel kontingensi. Di sini, pembaca diajak memahami interaksi dua arah dan tiga arah antar variabel, dengan pengujian model saturated, homogenous, dan conditional. Model ini memungkinkan analisis mendalam terhadap data kategorik multidimensi yang sering ditemukan di bidang epidemiologi, pendidikan, dan ilmu sosial.

Implementasi Data Riil

Salah satu tujuan utama dari ebook ini adalah penyajian berbagai kasus nyata sebagai ilustrasi implementasi konsep. Beberapa diantaranya :

Seluruh studi kasus tersebut tidak hanya merepresentasikan kompleksitas data kategorik di dunia nyata, tetapi juga menunjukkan bagaimana pendekatan statistik dapat memberikan wawasan yang bermakna. Ebook ini menunjukkan bahwa model statistik bukan sekadar simbol matematis, tetapi alat analitik yang kuat dalam menjelaskan fenomena sosial, perilaku manusia, dan kebijakan publik.


Secara keseluruhan, ebook ini tidak hanya bertujuan memberikan teori, tetapi juga keterampilan praktis dalam analisis data kategorik menggunakan R. Dengan menyajikan end-to-end workflow mulai dari eksplorasi data, pemodelan, evaluasi, hingga interpretasi, ebook ini dapat dijadikan referensi utama dalam riset, tugas akhir, atau analisis kebijakan berbasis data.

Dengan menguasai seluruh isi ebook ini, pembaca diharapkan mampu merancang analisis data kategorik dari nol, memilih model statistik yang tepat untuk berbagai bentuk tabel, menggunakan perangkat lunak R untuk estimasi dan visualisasi hasil, serta menafsirkan keluaran model dalam konteks substantif yang relevan.

Sebagai penutup, semoga ebook ini menjadi panduan konseptual dan praktis yang kokoh dalam memahami dan menerapkan analisis data kategorik, serta membuka jalan menuju eksplorasi lebih lanjut pada metode statistik lanjutan yang kontekstual dan aplikatif.

15 Daftar Pustaka

  1. Agresti, A. (2002). Categorical Data Analysis (2nd ed.). Wiley-Interscience.

  2. Agresti, A. (2013). Categorical Data Analysis (3rd ed.). Wiley.

  3. Agresti, A. (2007). An Introduction to Categorical Data Analysis (2nd ed.). Wiley.

  4. Dobson, A. J., & Barnett, A. (2018). An Introduction to Generalized Linear Models (4th ed.). CRC Press.

  5. Friendly, M., & Meyer, D. (2016). Discrete Data Analysis with R: Visualization and Modeling Techniques for Categorical and Count Data. CRC Press.

  6. Powers, D. A., & Xie, Y. (2000). Statistical Methods for Categorical Data Analysis. Academic Press.

  7. Menard, S. (2002). Applied Logistic Regression Analysis (2nd ed.). Sage Publications.

  8. Fox, J. (2016). Applied Regression Analysis and Generalized Linear Models (3rd ed.). Sage Publications.

  9. Long, J. S. (1997). Regression Models for Categorical and Limited Dependent Variables. Sage Publications.

  10. Hosmer, D. W., Lemeshow, S., & Sturdivant, R. X. (2013). Applied Logistic Regression (3rd ed.). Wiley.

  11. Lindsey, J. K. (1995). Modelling Frequency and Count Data. Oxford University Press.

  12. Wickham, H., & Grolemund, G. (2016). R for Data Science. O’Reilly Media.

  13. Tutz, G. (2012). Regression for Categorical Data. Cambridge University Press.

  14. Gelman, A., Hill, J., & Vehtari, A. (2020). Regression and Other Stories. Cambridge University Press.

  15. Jackman, S. (2009). Bayesian Analysis for the Social Sciences. Wiley.

  16. International Social Survey Programme (ISSP) – Environment Module IV (2020). https://issp.org

  17. Pew Research Center (2021). Social and Demographic Differences in Climate Change Beliefs. https://www.pewresearch.org/science

  18. Kleinbaum, D. G., & Klein, M. (2010). Logistic Regression: A Self-Learning Text (3rd ed.). Springer.

  19. Hilbe, J. M. (2011). Negative Binomial Regression (2nd ed.). Cambridge University Press.

  20. Fienberg, S. E. (2007). The Analysis of Cross-Classified Categorical Data. Springer.

  21. Christensen, R. (1997). Log-Linear Models and Logistic Regression (2nd ed.). Springer.

  22. Liao, T. F. (1994). Interpreting Probability Models: Logit, Probit, and Other Generalized Linear Models. Sage Publications.

  23. Venables, W. N., & Ripley, B. D. (2002). Modern Applied Statistics with S (4th ed.). Springer.

  24. Hair, J. F., Black, W. C., Babin, B. J., & Anderson, R. E. (2019). Multivariate Data Analysis (8th ed.). Cengage.

  25. Zhang, W., & Ip, E. H. (2012). Statistical Inference for Categorical Data. Wiley.

  26. Smith et al. (1988). Using the ADAP learning algorithm to forecast the onset of diabetes mellitus. Proceedings of the Annual Symposium on Computer Application in Medical Care, 261–265. UCI Machine Learning Repository.