1 Pendahuluan

Dalam ilmu statistik, data kategori adalah data yang diklasifikasikan ke dalam kelompok atau kategori tertentu, bukan dalam bentuk angka kontinu. Data ini kerap digunakan di berbagai disiplin ilmu untuk menganalisis pola, hubungan antarvariabel, dan tren yang tidak bisa diukur secara langsung menggunakan skala numerik. Beberapa contoh umum dari data kategori antara lain preferensi belanja (online/offline), risiko kesehatan (rendah/sedang/tinggi), zona waktu tinggal (WIB/WITA/WIT), jenis kelamin (laki-laki/perempuan/non-biner), dan status perokok (aktif/pasif).

Karakteristrik data kategori yang bersifat nominal atau ordinal memerlukan pendekatan analisis yang berbeda dibandingkan dengan data kuantitatif. Oleh karena itu, metode-metode khusus seperti tabel kontingensi, uji Chi-Square, regresi logistik, serta estimasi distribusi probabilitas menjadi sangat relevan. Seiring dengan kemajuan teknologi informasi dan pengembangan kecerdasan buatan, analisis data kategori kini juga semakin banyak dimanfaatkan dalam machine learning serta analitik big data sehingga memperluas cakupan dan aplikasiannya dalam pengambilan keputusan berbasis data.

1.1 Tujuan Analisis Data Kategori

Analisis Data Kategori tentunya memiliki berbagai tujuan utama yang membantu dalam pengambilan keputusan berbasis data. Beberapa tujuan utama dari analisis ini meliputi:

1.1.1 Mengidentifikasi Pola dan Tren

Analisis data kategori memungkinkan peneliti untuk mengungkap pola distribusi atau kecenderungan dalam suatu kelompok. Misalnya, pola preferensi masyarakat terhadap jenis layanan publik berdasarkan usia atau wilayah tempat tinggal.

Contoh: Apakah warga usia muda lebih cenderung memilih layanan digital dibandingkan warga usia lanjut?

1.1.2 Menganalisis Hubungan Antarvariabel Kategorik

Tujuan ini berkaitan dengan upaya untuk melihat adanya keterkaitan atau asosiasi antara dua atau lebih variabel kategori. Teknik seperti uji chi-square atau tabel kontingensi umum digunakan dalam hal ini.

Contoh: Adakah hubungan antara jenis kelamin dan tingkat partisipasi dalam program pelatihan kerja?

1.1.3 Membantu dalam Pengambilan Keputusan Berbasis Data

Dengan memahami karakteristik kategori tertentu dalam populasi, pengambil keputusan atau praktisi dapat merancang intervensi atau strategi yang lebih tepat sasaran dan efisien.

Contoh: Dalam dunia pemasaran, mengetahui segmen pelanggan yang paling loyal membantu merancang strategi promosi yang lebih efektif.

1.1.4 Mengembangkan Model Prediktif

Data kategori sering menjadi variabel prediktor dalam model statistik seperti regresi logistik atau pohon keputusan (decision tree) untuk memprediksi kejadian biner atau multikategori.

Contoh: Memodelkan kemungkinan seorang pasien mendaftar ke program vaksinasi berdasarkan status pekerjaan dan tingkat pendidikan.

1.1.5 Menilai Efektivitas Program atau Intervensi

Analisis data kategori dapat digunakan untuk mengevaluasi hasil dari suatu perlakuan atau intervensi dengan membandingkan proporsi hasil antar kelompok.

Contoh: Apakah program bantuan sosial berhasil mengurangi proporsi keluarga di bawah garis kemiskinan?

1.1.6 Mengevaluasi Perbedaan Antar Kelompok

Analisis data kategori juga berguna untuk mengukur dan mengevaluasi perbedaan signifikan antar kelompok dalam suatu populasi berdasarkan variabel kategorik. Dengan pendekatan seperti uji proporsi dua sampel atau odds ratio, peneliti dapat melihat seberapa besar perbedaan peluang atau risiko antara dua kelompok.

Contoh: Apakah terdapat perbedaan signifikan dalam tingkat kelulusan antara siswa dari sekolah negeri dan swasta?

1.2 Definisi dan Ruang Lingkup Analisis Data Kategori

Analisis Data Kategori adalah metode statistik yang digunakan untuk menganalisis variabel yang bersifat kategorik. Jenis data ini dapat berbentuk nominal maupun ordinal serta dapat berupa biner maupun multikategori.

1.2.1 Tipe Data Kategorik

  • Nominal: Data yang berupa nama atau label tanpa urutan (contoh: jenis kelamin, warna mata).

  • Ordinal: Data yang memiliki urutan atau ranking (contoh: tingkat kepuasan, level pendidikan).

1.2.2 Jumlah Kategorik

  • Data Biner: Hanya memiliki dua kemungkinan (contoh: ya/tidak, sukses/gagal).

  • Data Multikategori: Memiliki tiga atau lebih kategori (contoh: status pekerjaan: pelajar, bekerja, pengangguran).

1.2.3 Metode Analisis

  • Tabel kontingensi dan uji asosiasi (Chi-square, Fisher’s Exact Test)

  • Model prediktif seperti regresi logistik dan pohon keputusan

  • Analisis residual dan evaluasi model (misalnya melalui deviance)

1.2.4 Perbedaan Dengan Data Kuantitatif

1.2.4.1 Jenis Informasi

  • Data Kategori: Menyediakan informasi tentang kelompok atau kategori yang tidak terukur secara numerik. Misalnya, jenis kelamin (pria/wanita), warna mata (hitam, biru, coklat).

  • Data Kuantitatif: Menyediakan informasi yang dapat diukur dalam bentuk angka. Misalnya, tinggi badan (170 cm), usia (25 tahun), atau jumlah pendapatan (Rp 5.000.000).

1.2.4.2 Pengolahan dan Analisis

  • Data Kategori: Analisis data kategori lebih bersifat kualitatif, seperti menghitung frekuensi atau proporsi masing-masing kategori (misalnya, berapa banyak pria dan wanita).

  • Data Kuantitatif: Dapat dianalisis secara matematis, seperti perhitungan rata-rata, variansi, dan distribusi angka.

1.2.4.3 Tipe Skala Pengukuran

  • Data Kategori: Biasanya menggunakan skala nominal (tanpa urutan) atau ordinal (dengan urutan). Contoh skala ordinal adalah tingkat pendidikan (SMA, S1, S2).

  • Data Kuantitatif: Menggunakan skala interval atau rasio, yang memiliki jarak atau perbedaan yang dapat diukur secara konsisten dan memiliki nol mutlak. Contoh skala rasio adalah berat badan atau pendapatan.

1.3 Manfaat Analisis Data Kategori Dalam Berbagai Bidang

Analisis Data Kategori memiliki pemanfaatan yang luas dalam berbagai bidang, baik dalam akademik maupun industri. Berikut adalah beberapa bidang umum yang memiliki pemanfaatan dalam analisis ini:

1.3.1 Pemasaran dan Bisnis

  • Segmentasi Pasar: Data kategori membantu dalam membagi pasar menjadi segmen-segmen berdasarkan karakteristik seperti usia, jenis kelamin, lokasi geografis, atau preferensi produk. Dengan segmentasi ini, perusahaan dapat menyesuaikan produk, layanan, dan strategi pemasaran mereka agar lebih relevan dan efektif untuk setiap kelompok.

  • Mengukur Kepuasan Pelanggan: Dengan menggunakan kategori seperti “sangat puas”, “puas”, atau “tidak puas”, perusahaan dapat memahami tingkat kepuasan pelanggan mereka. Ini membantu dalam menentukan area untuk perbaikan dan mengembangkan produk atau layanan yang lebih baik.

1.3.2 Kesehatan Masyarakat

  • Pemetaan Penyakit: Analisis data kategori memungkinkan pemetaan penyakit berdasarkan kategori tertentu seperti usia, jenis kelamin, atau status sosial. Ini penting untuk menentukan kelompok rentan dan merancang program pencegahan yang lebih efektif.

  • Studi Epidemiologi: Dalam penelitian epidemiologi, analisis data kategori digunakan untuk mengelompokkan faktor-faktor risiko (misalnya, perokok vs. bukan perokok) dan mengetahui kaitannya dengan penyebaran penyakit tertentu. Ini memberikan wawasan penting untuk strategi pencegahan dan intervensi.

1.3.3 Pendidikan

  • Menganalisis Kinerja Siswa: Data kategori dapat digunakan untuk mengelompokkan siswa berdasarkan nilai atau tingkat kehadiran, membantu pendidik untuk melihat pola yang ada dalam kinerja siswa dan mengidentifikasi area yang perlu mendapatkan perhatian lebih (misalnya, siswa dengan nilai rendah atau sering absen).

  • Evaluasi Program Pendidikan: Dengan menganalisis kategori program pendidikan (misalnya, kategori “berhasil”, “sedang berkembang”, “belum berhasil”), pendidik dan pembuat kebijakan dapat mengevaluasi efektivitas suatu program atau kurikulum dan merancang perbaikan yang dibutuhkan.

1.3.4 Sosial dan Politik

  • Studi Perilaku Sosial: Dalam ilmu sosial, data kategori digunakan untuk menganalisis perilaku masyarakat berdasarkan kategori tertentu, seperti kelompok usia, status sosial, atau afiliasi politik. Ini membantu dalam memahami kecenderungan sosial atau politik tertentu dalam suatu kelompok populasi.

  • Pemilu dan Survei Politik: Data kategori sering digunakan dalam survei politik untuk mengelompokkan pemilih berdasarkan partai pilihan, tingkat dukungan, atau isu-isu yang diutamakan. Ini penting untuk strategi kampanye dan analisis hasil pemilu.

1.3.5 Lingkungan dan Konservasi

  • Analisis Penggunaan Lahan: Data kategori dapat digunakan untuk mengelompokkan penggunaan lahan seperti “pertanian”, “hutan”, atau “perkebunan”. Ini membantu dalam perencanaan pengelolaan sumber daya alam dan konservasi, serta untuk mengidentifikasi area yang membutuhkan perlindungan lebih.

  • Pemantauan Keanekaragaman Hayati: Data kategori dapat digunakan untuk mengklasifikasikan spesies berdasarkan tingkat kelangkaan atau status konservasi mereka (misalnya, “terancam punah”, “rentan”, “aman”), yang sangat penting untuk usaha perlindungan keanekaragaman hayati.

1.3.6 Olahraga dan Kesehatan Fisik

  • Analisis Performa Atlet: Dalam olahraga, data kategori digunakan untuk mengelompokkan atlet berdasarkan kategori performa, misalnya “pemula”, “menengah”, atau “ahli”. Ini memungkinkan pelatih untuk menyusun program latihan yang sesuai dengan tingkat kemampuan masing-masing atlet.

  • Penyusunan Program Latihan: Data kategori mengenai kebugaran fisik (misalnya, kategori “aktif”, “kurang aktif”, “tidak aktif”) dapat membantu dalam menyusun program latihan yang sesuai untuk individu atau kelompok dengan tingkat kebugaran yang berbeda.

1.3.7 Industri Teknologi dan Pengembangan Produk

  • Umpan Balik Pengguna: Analisis data kategori terkait umpan balik pengguna produk atau perangkat lunak dapat membantu pengembang untuk memahami kelebihan dan kekurangan produk berdasarkan kategori respon (misalnya, kategori “sangat puas”, “tidak puas”, “masalah teknis”).

  • Pengembangan Fitur Baru: Dengan menganalisis preferensi pengguna berdasarkan kategori fitur yang paling sering digunakan atau diinginkan, perusahaan teknologi dapat mengembangkan fitur baru yang lebih sesuai dengan kebutuhan pengguna

1.3.8 Keamanan dan Kriminalitas

  • Mengidentifikasi Pola Kejahatan: Data kategori dapat digunakan untuk mengelompokkan jenis kejahatan berdasarkan kategori seperti pencurian, penyerangan, atau penipuan. Ini memungkinkan pihak berwenang untuk mengidentifikasi pola kejahatan di suatu daerah, seperti waktu dan lokasi kejadian yang sering terjadi. Dengan informasi ini, tindakan pencegahan dan pengamanan dapat dirancang lebih efektif

  • Klasifikasi Bukti: Dalam penyelidikan kriminal, data kategori dapat digunakan untuk mengklasifikasikan jenis bukti yang ditemukan di tempat kejadian perkara (TKP). Bukti seperti senjata, jejak kaki, atau barang bukti lain dapat dianalisis berdasarkan kategori tertentu untuk membantu penyidik memahami lebih baik kejadian-kejadian yang berkaitan dengan kasus.

2 Metode Dalam Analisis Data Kategori

Berbagai metode dapat digunakan dalam Analisis Data Kategori, tergantung pada tujuan dan klasifikasi penelitian. Beberapa metode yang umum meliputi:

2.1 Tabel Kontingensi

  • Tabel yang menunjukkan distribusi frekuensi data kategori dari dua (atau lebih) variabel.

  • Tujuan: Untuk melihat hubungan atau pola antar kategori

  • Contoh: Melihat hubungan antara jenis kelamin dengan preferensi produk.

2.2 Chi-Square Test

  • Uji statistik untuk mengetahui apakah terdapat hubungan signifikan antara dua variabel kategori.

  • Tujuan: Menilai apakah hubungan antara dua variabel terjadi secara kebetulan atau tidak.

  • Contoh: Apakah ada hubungan antara tingkat pendidikan dengan status pekerjaan.

2.3 Regresi Logistik

  • Digunakan saat variabel dependen bersifat kategori (biasanya biner: ya/tidak, 0/1).

  • Tujuan: Memprediksi kemungkinan suatu kejadian berdasarkan variabel-variabel independen.

  • Contoh: Memprediksi kemungkinan seseorang membeli produk berdasarkan jenis kelamin, umur, dan lokasi.

2.4 Correspondence Analysis (CA)

  • Metode eksploratif yang digunakan untuk menggambarkan hubungan antara dua variabel kategori dalam bentuk grafik dua dimensi.

  • Tujuan: Visualisasi asosiasi antar kategori.

  • Contoh: Menunjukkan kecenderungan kelompok umur memilih produk tertentu.

2.5 Analisis Korelasi Cramer’s V

  • Ukuran kekuatan hubungan antara dua variabel kategori.

  • Tujuan: Mengetahui seberapa kuat hubungan antar dua kategori setelah uji Chi-Square dilakukan.

  • Skala: 0 (tidak ada hubungan) sampai 1 (hubungan sangat kuat)

Analisis Data Kategori sangat berperan penting dalam statistik yang memiliki beragam penerapan di berbagai bidang. Dengan menggunakan pendekatan yang sesuai, analisi ini mampu mengungkap pola, keterkaitan, serta tren dalam data yang bersifat kategorikal. Seiring berkembangnya teknologi, metode dalam data kategori ini juga ikut berkembang sehingga mendukung proses pengambilan keputusan yang lebih akurat dan berbasis data. Oleh karena itu, pemahaman analisis ini penting bagi peneliti, pelaku bisnis, pembuat kebijakan, dan profesional bidang tersebut.

3 Distribusi Probabilitas Dalam Data Kategori

Distribusi Probabilitas dalam Data Kategori menggambarkan kemungkinan (probability) terjadinya setiap kategori dalam suatu variabel kategorikal. Beberapa distribusi dalam data kategori ini meliputi:

3.1 Distribusi Bernoulli

Distribusi Bernoulli digunakan untuk memodelkan percobaan biner, yaitu percobaan dengan dua kemungkinan hasil: sukses (dilambangkan dengan 1) dengan probabilitas (p), dan gagal (dilambangkan dengan 0) dengan probabilitas (1-p). Fungsi probabilitasnya diberikan oleh:

\[ P(X = x) = p^x (1 - p)^{1 - x}, \quad x \in \{0, 1\} \]

Keterangan:

  • X: Variabel acak biner (0 atau 1)

  • p: Probabilitas sukses (X = 1)

  • 1-p: Probabilitas gagal (X = 0)

Contoh Variabel Acak Bernoulli:

  • Hasil dari lemparan koin (Gambar= 1, Angka= 0)

  • Keberhasilan atau kegagalan dalam suatu percobaan klinis

Contoh Kasus:

Sebuah aplikasi streaming ingin mengetahui apakah seorang pengguna akan menonton trailer film baru (sukses = menonton, gagal = tidak menonton). Berdasarkan data sebelumnya, probabilitas seorang pengguna menonton trailer adalah 0,4.

Pertanyaan: Berapakah probabilitas seseorang pengguna menonton trailer dan tidak menonton trailer?

Perhitungan Melalui R

set.seed(123)
bernoulli_sample <- rbinom(n = 10, size = 1, prob = 0.4)
kable(bernoulli_sample, col.names = "Hasil", caption = "Simulasi 10 Percobaan Bernoulli (1 = Menonton, 0 = Tidak Menonton)")
Simulasi 10 Percobaan Bernoulli (1 = Menonton, 0 = Tidak Menonton)
Hasil
0
1
0
1
1
0
0
1
0
0

Interpretasi: Hasil perhitungan menunjukkan 10 pengguna acak, di mana 1 berarti pengguna menonton trailer dan 0 berarti tidak menonton.

3.2 Distribusi Binomial

Distribusi Binomial adalah generalisasi dari distribusi Bernoulli, yang memodelkan jumlah keberhasilan dalam (n) percobaan independen, di mana setiap percobaan memiliki probabilitas sukses (p). Fungsi probabilitasnya adalah:

\[ P(X = x) = \binom{n}{x} p^x (1 - p)^{n - x} \]

Keterangan:

  • X: Jumlah keberhasilan dalam n percobaan

  • n: Jumlah percobaan

  • k: Jumlah keberhasilan yang diamati

  • p: Probabilitas keberhasilan dalam satu percobaan

  • \(\binom{n}{x}\): Kombinasi “n memilih k”, dihitung sebagai \(\frac{n!}{k!(n - k)!}\)

Contoh Variabel Acak Binomial:

  • Jumlah keberhasilan dalam 20 kali lemparan koin

  • Jumlah jawaban benar pada soal pilihan ganda

Contoh Kasus:

Sebuah perusahaan e-commerce mengirimkan 12 email promosi ke pelanggan, dan probabilitas seorang pelanggan membuka email adalah 0,3.

Pertanyaan: Berapakah probabilitas tepat 4 pelanggan membuka email dari 12 email yang dikirim?

Perhitungan Melalui R

set.seed(123)
binomial_sample <- rbinom(n = 10, size = 12, prob = 0.3)
kable(binomial_sample, col.names = "Jumlah Membuka Email", caption = "Simulasi 10 Percobaan Binomial")
Simulasi 10 Percobaan Binomial
Jumlah Membuka Email
3
5
3
6
6
1
4
6
4
3

Interpretasi: Hasil perhitungan menunjukkan jumlah pelanggan yang membuka email dalam 10 kelompok pengiriman email, masing-masing terdiri dari 12 email.

3.3 Distribusi Multinomial

Distribusi Multinomial adalah generalisasi dari distribusi Binomial untuk percobaan dengan lebih dari dua kemungkinan hasil. Jika suatu eksperimen dilakukan (n) kali, dan setiap percobaan dapat menghasilkan salah satu dari (k) kategori dengan probabilitas (p1, p2, …, pk), maka distribusi probabilitasnya adalah:

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

Keterangan:

  • Xi : Frekuensi kemunculan kategori ke-i

  • n : Jumlah total percobaan

  • xi : Jumlah kejadian kategori ke-i

  • pi : Probabilitas kategori ke-i

Contoh Variabel Acak Multinomial:

  • Jumlah suara yang diperoleh dari masing-masing kotak pemilu tersebut

  • Distribusi warna baju dalam satu toko

Contoh Kasus:

Sebuah toko buku mengamati preferensi pembelian pelanggan terhadap tiga genre buku: fiksi, non-fiksi, dan anak-anak, dengan probabilitas masing-masing 0,5, 0,3, dan 0,2. Dalam satu hari, toko mencatat pembelian dari 15 pelanggan.

Pertanyaan: Berapakah probabilitas 7 pelanggan membeli buku fiksi, 5 membeli non-fiksi, dan 3 membeli buku anak-anak?

Perhitungan Melalui R

set.seed(123)
multinomial_sample <- rmultinom(n = 1, size = 15, prob = c(0.5, 0.3, 0.2))
kable(multinomial_sample, col.names = "Jumlah", caption = "Simulasi Distribusi Multinomial (Fiksi, Non-Fiksi, Anak-Anak)")
Simulasi Distribusi Multinomial (Fiksi, Non-Fiksi, Anak-Anak)
Jumlah
6
4
5

Interpretasi: Hasil perhitungan menunjukkan distribusi pembelian buku dari 15 pelanggan, dengan jumlah pelanggan per genre.

3.4 Distribusi Poisson

Distribusi Poisson digunakan untuk memodelkan jumlah kejadian dalam interval waktu atau ruang tertentu, dengan rata-rata kejadian per unit (\(\lambda\)) waktu atau ruang. Fungsi probabilitasnya adalah:

\[ P(X = x) = \frac{\lambda^x e^{-\lambda}}{x!}, \quad x = 0, 1, 2, \dots \]

Keterangan:

  • X: Jumlah kejadian dalam interval tertentu

  • \(\lambda\): Rata-rata kejadian dalam interval tersebut

  • k: Jumlah kejadian yang diamati

Contoh Variabel Acak Poisson:

  • Jumlah panggilan telepon yang diterima dalam satu jam

  • Peluang toko pakaian mendapat komplain dari 5 pelanggan selama 2 jam

Contoh Kasus:

Sebuah pusat layanan pelanggan menerima rata-rata 5 panggilan masuk per 15 menit selama jam sibuk.

Pertanyaan: Berapakah probabilitas pusat layanan menerima tepat 4 panggilan dalam 15 menit?

Perhitungan Melalui R

set.seed(123)
poisson_sample <- rpois(10, lambda = 5)
kable(poisson_sample, col.names = "Jumlah Panggilan", caption = "Simulasi 10 Interval Distribusi Poisson")
Simulasi 10 Interval Distribusi Poisson
Jumlah Panggilan
4
7
4
8
9
2
5
8
5
5

Interpretasi: Hasil perhitungan menunjukkan jumlah panggilan masuk dalam 10 interval 15 menit, mengikuti distribusi Poisson dengan rata-rata 5 panggilan.

4 Desain Sampling Dalam Analisis Data Kategori

Dalam Analisis Data Kategori, desain sampling berperan penting dalam mengambil sampel dari populasi agar data yang dikumpulkan mewakili populasi secara valid dan efisien, seperti:

Secara umum, desain sampling dalam analisis data kategori dapat dikelompokkan ke dalam dua pendekatan utama, yaitu prospective sampling dan retrospective sampling.

4.1 Prospective Sampling

Prospective sampling adalah metode pengambilan sampel yang dilakukan pada periode awal tertentu untuk meneliti perkembangan subjek penelitian dari waktu ke waktu, dengan tujuan mengidentifikasi dan mengendalikan variabel-variabel penting yang memengaruhi hasil penelitian. Pendekatan ini memungkinkan peneliti untuk mengelola variabel bebas sebelum pengukuran hasil dilakukan, sehingga sering digunakan dalam penelitian kausal dan eksperimental.

4.1.1 Eksperimen

Dalam penelitian, eksperimen melibatkan pengalokasian subjek secara acak ke dalam kelompok perlakuan dan kelompok kontrol. Teknik sampling yang umum digunakan dalam desain eksperimen meliputi:

  • Simple Random Sampling (SRS): Setiap individu dalam populasi memiliki peluang yang sama untuk dipilih secara acak.

  • Stratified Random Sampling: Populasi dibagi ke dalam kelompok (strata) berdasarkan karakteristik tertentu, lalu sampel diambil secara acak dari masing-masing stratum.

  • Cluster Sampling: Populasi dikelompokkan menjadi kelompok-kelompok kecil (cluster), kemudian beberapa cluster dipilih secara acak untuk dianalisis semua unitnya.

4.1.2 Studi Kohort

Studi kohort adalah penelitian observasional yang mengamati kelompok individu dengan karakteristik tertentu dari waktu ke waktu untuk mempelajari kejadian tertentu. Teknik sampling yang biasanya digunakan dalam studi kohort meliputi:

  • Census Sampling: Mengamati seluruh anggota populasi tertentu dalam penelitian.

  • Systematic Sampling: Memilih individu berdasarkan interval tertentu dari daftar populasi yang terurut.

  • Matched Sampling: Memasangkan individu dalam kelompok kohort dengan individu serupa dalam kelompok lain berdasarkan variabel tertentu.

4.2 Retrospective Sampling

Retrospective sampling adalah metode pengambilan sampel yang dilakukan dengan melihat data masa lalu untuk mengidentifikasi hubungan antara faktor risiko tertentu dengan hasil yang telah terjadi. Pendekatan ini sering digunakan dalam studi observasional untuk mengevaluasi keterkaitan antara variabel tertentu.

4.2.1 Studi Kasus-Kontrol

Studi kasus-kontrol melibatkan perbandingan antara kelompok individu yang memiliki kondisi tertentu (kasus) dengan kelompok individu yang tidak memiliki kondisi tersebut (kontrol). Teknik sampling yang umum digunakan dalam studi kasus-kontrol meliputi:

  • Purposive Sampling: Pemilihan sampel berdasarkan karakteristik yang relevan dengan tujuan penelitian.

  • Snowball Sampling: Subjek awal merekrut subjek lain yang memiliki karakteristik serupa untuk menjadi bagian dari sampel.

  • Incidence Density Sampling: Kasus dan kontrol dipilih dari populasi yang sama dengan memperhitungkan periode waktu kemunculan kasus.

4.2.2 Studi Kohort Retrospektif

Studi kohort retrospektif menggunakan data historis untuk mengelompokkan individu berdasarkan paparan tertentu, kemudian menganalisis hasil yang telah terjadi. Teknik sampling yang sering digunakan meliputi:

  • Convenience Sampling: Pemilihan subjek berdasarkan ketersediaan data yang sudah ada.

  • Quota Sampling: Sampel dipilih untuk mencerminkan proporsi tertentu dalam populasi.

  • Case-Based Sampling: Sampel dipilih berdasarkan karakteristik kasus yang telah terjadi.

5 Tabel Kontingensi 2 x 2

Tabel Kontingensi 2 x 2 adalah bentuk sederhana yang digunakan untuk menganalisis hubungan antara dua variabel kategorik. Dalam berbagai analisis statistik, tabel ini digunakan untuk melihat apakah terdapat asosiasi antara dua variabel yang bersifat kategorik. Secara umum, tabel kontingensi 2 x 2 memiliki struktur sebagai berikut:

Kategori 1 (+) Kategori 2 (-) Total
Grup 1 n11 n12 n1.
Grup 2 n21 n22 n2.
Total n.1 n.2 n

5.1 Distribusi Peluang dalam Tabel Kontingensi 2 x 2

5.1.1 Peluang Bersama

Peluang bersama adalah probabilitas bahwa kedua variabel terjadi secara bersamaan dalam tabel kontingensi. Peluang bersama dihitung sebagai:

\[ P(A \cap B) = \frac{n_{ij}}{n} \]

5.1.2 Peluang Marginal

Peluang marginal adalah probabilitas kejadian suatu variabel tanpa mempertimbangkan variabel lainnya. Peluang marginal dihitung sebagai:

\[ P(A) = \frac{n_{A}}{n} \]

5.1.3 Peluang Bersyarat

Peluang bersyarat adalah probabilitas suatu kejadian terjadi dengan syarat kejadian lain telah terjadi. Peluang bersyarat dihitung sebagai:

\[ P(B|A) = \frac{P(A \cap B)}{P(A)} \]

5.1.4 Contoh Kasus Distribusi Peluang

Berikut ini merupakan hasil survei terhadap mahasiswa Universitas Bikini Bottom dengan dua variabel kategorikal: Jenis Kelamin (Pria, Wanita) dan Status Merokok (Perokok Aktif, Perokok Pasif). Dikumpulkannya data sekitar 200 responden sehingga hasilnya disusun dalam tabel kontingensi 2 x 2 berikut:

Perokok Aktif (+) Perokok Pasif (-) Total
Pria 89 37 126
Wanita 12 62 74
Total 101 99 200

Tahapan 1 : Menghitung Peluang Bersama

  • \(P(\text{Pria dan Aktif}) = \frac{89}{200} = 0.445\)
  • \(P(\text{Pria dan Pasif}) = \frac{37}{200} = 0.185\)
  • \(P(\text{Wanita dan Aktif}) = \frac{12}{200} = 0.06\)
  • \(P(\text{Wanita dan Pasif}) = \frac{62}{200} = 0.31\)

Tahapan 2 : Menghitung Peluang Marginal

  • \(P(\text{Pria}) = \frac{126}{200} = 0.63\)
  • \(P(\text{Wanita}) = \frac{74}{200} = 0.37\)
  • \(P(\text{Aktif}) = \frac{101}{200} = 0.505\)
  • \(P(\text{Pasif}) = \frac{99}{200} = 0.495\)

Tahapan 3 : Menghitung Peluang Bersyarat

  • \(P(\text{Pria | Aktif}) = \frac{P(\text{Pria dan Aktif})}{P(\text{Aktif})} = \frac{0.445}{0.505} \approx 0.881\)
  • \(P(\text{Pria | Pasif}) = \frac{P(\text{Pria dan Pasif})}{P(\text{Pasif})} = \frac{0.185}{0.495} \approx 0.373\)
  • \(P(\text{Wanita | Aktif}) = \frac{P(\text{Pria dan Pasif})}{P(\text{Aktif})} = \frac{0.06}{0.505} \approx 0.119\)
  • \(P(\text{Wanita | Pasif}) = \frac{P(\text{Wanita dan Pasif})}{P(\text{Pasif})} = \frac{0.31}{0.495} \approx 0.626\)
  • \(P(\text{Aktif | Pria}) = \frac{P(\text{Pria dan Aktif})}{P(\text{Pria})} = \frac{0.445}{0.63} \approx 0.706\)
  • \(P(\text{Aktif | Wanita}) = \frac{P(\text{Wanita dan Aktif})}{P(\text{Wanita})} = \frac{0.06}{0.37} \approx 0.162\)
  • \(P(\text{Aktif | Pria}) = \frac{P(\text{Pria dan Pasif})}{P(\text{Pria})} = \frac{0.185}{0.63} \approx 0.294\)
  • \(P(\text{Pasif | Wanita}) = \frac{P(\text{Wanita dan Pasif})}{P(\text{Wanita})} = \frac{0.31}{0.37} \approx 0.838\)

Perhitungan melalui R

# Data Observasi 
data = matrix(c(89, 37, 12, 62), nrow = 2, byrow = TRUE)
colnames(data) = c("Perokok Aktif (+)", "Perokok Pasif (-)")
rownames(data) = c("Pria", "Wanita")
n = sum(data)

# Peluang Bersama
P_joint = data/n

# Peluang Marginal
P_Marginal_Rows = rowSums(data)/n
P_Marginal_Cols = colSums(data)/n

# Peluang Bersyarat
P_Conditional_Smoke = data/colSums(data)
P_Conditional_Gender = data/rowSums(data)

# Hasil Perhitungan
list(Peluang_Bersama = P_joint, 
     Peluang_Marginal_Baris = P_Marginal_Rows,
     Peluang_Marginal_Kolom = P_Marginal_Cols,
     Peluang_Bersyarat_StatusMerokok = P_Conditional_Smoke,
     Peluang_Bersyarat_JenisKelamin = P_Conditional_Gender)
## $Peluang_Bersama
##        Perokok Aktif (+) Perokok Pasif (-)
## Pria               0.445             0.185
## Wanita             0.060             0.310
## 
## $Peluang_Marginal_Baris
##   Pria Wanita 
##   0.63   0.37 
## 
## $Peluang_Marginal_Kolom
## Perokok Aktif (+) Perokok Pasif (-) 
##             0.505             0.495 
## 
## $Peluang_Bersyarat_StatusMerokok
##        Perokok Aktif (+) Perokok Pasif (-)
## Pria           0.8811881         0.3663366
## Wanita         0.1212121         0.6262626
## 
## $Peluang_Bersyarat_JenisKelamin
##        Perokok Aktif (+) Perokok Pasif (-)
## Pria           0.7063492         0.2936508
## Wanita         0.1621622         0.8378378

Interpretasi

  • Peluang Bersama menunjukkan probabilitas gabungan dari kejadian tertentu dalam tabel. Berdasarkan hasil perhitungan, didapatkan bahwa sekitar 44.5% dari total responden adalah Pria yang Perokok Aktif, menunjukkan dominasi pria dalam kategori ini. Sebaliknya, hanya 6% dari total responden adalah Wanita yang Perokok Aktif, menunjukkan proporsi kecil Wanita dalam kebiasaan Merokok.
  • Peluang Marginal menunjukkan probabilitas suatu kejadian tanpa mempertimbangkan variabel lain. Berdasarkan hasil perhitungan, didapatkan bahwa sebaanyak 63% dari total responden adalah Pria, menunjukkan mayoritas responden adalah Pria. Kemudian, sebanyak 50.5% dari total responden merupakan Perokok Aktif, menunjukkan kebiasaan merokok yang cukup umum di kelompok ini.
  • Peluang Bersyarat menunjukkan bagaimana probabilitas berubah ketika informasi tentang variabel lain diberikan. Berdasarkan hasil perhitungan,jika seseorang diketahui merokok aktif, hanya 11.88% kemungkinan ia wanita, menunjukkan bahwa wanita jarang menjadi perokok aktif. Selain itu, jika seseorang adalah pria, terdapat peluang 70.63% bahwa ia merokok secara aktif, menunjukkan mayoritas pria memiliki kebiasaan merokok.

5.2 Ukuran Asosiasi dalam Data Kategori 2 x 2

Dalam analisis statistik, ukuran asosiasi digunakan untuk mengevaluasi kekuatan dan arah hubungan antara dua variabel biner, seperti paparan (misalnya, merokok/tidak merokok) dan hasil (misalnya, penyakit/tidak penyakit). Dalam tabel kontingensi 2 x 2, ukuran ini membantu peneliti memahami hubungan antara variabel, baik dalam konteks kausal maupun prediktif. Berikut adalah beberapa ukura asosiasi yang umum digunakan:

  • Risk Difference (RD): Mengukur selisih risiko antara dua kelompok.

  • Relative Risk (RR): Mengukur perbandingan risiko relatif antara dua kelompok.

  • Odds Ratio (OR): Membandingkan peluang kejadian antara dua kelompok.

  • Uji Chi-Square dan Fisher’s Exact Test: Menguji signifikansi hubungan antar variabel secara statistik.

5.2.1 Risk Difference (RD)

Risk Difference (RD), atau selisih risiko, adalah ukuran asosiasi yang menghitung perbedaan risiko absolut kejadian tertentu antara kelompok yang terpapar dan kelompok yang tidak terpapar. Ukuran ini sering digunakan dalam epidemiologi untuk mengevaluasi efek paparan terhadap hasil tertentu, dengan mempertimbangkan proporsi kejadian pada masing-masing kelompok.

\[ RD = \frac{n_{11}}{n_{1.}} - \frac{n_{21}}{n_{2.}} \]

Keterangan:

  • Jika (RD > 0): Risiko kejadian lebih tinggi pada Kelompok 1 dibandingkan Kelompok 2.
  • Jika (RD < 0): Risiko kejadian lebih rendah pada Kelompok 1 dibandingkan Kelompok 2.
  • Jika (RD = 0): Tidak ada perbedaan risiko antara dua kelompok

5.2.2 Relative Risk (RR)

Relative Risk (RR), atau risiko relatif, adalah ukuran asosiasi yang membandingkan risiko kejadian tertentu pada kelompok yang terpapar dengan risiko pada kelompok yang tidak terpapar. Ukuran ini sering digunakan untuk mengevaluasi seberapa besar paparan tertentu meningkatkan atau menurunkan risiko kejadian dibandingkan kelompok kontrol.

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

Keterangan:

  • Jika (RR > 1): Kejadian lebih sering terjadi pada Kelompok 1 dibandingkan Kelompok 2.
  • Jika (RR < 1): Kejadian lebih jarang terjadi pada Kelompok 1 dibandingkan Kelompok 2.
  • Jika (RR = 1): Tidak ada perbedaan risiko antara dua kelompok.

5.2.3 Odds Ratio (OR)

Odds Ratio (OR) adalah ukuran asosiasi yang membandingkan peluang kejadian pada kelompok terpapar dengan peluang kejadian pada kelompok tidak terpapar. Ukuran ini sering digunakan dalam epidemiologi dan statistik, khususnya pada studi kasus-kontrol, kohort, dan eksperimental.

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

Keterangan:

  • Jika (OR > 1): Peluang kejadiian lebih tinggi pada Kelompok 1 dibandingkan Kelompok 2.

  • Jika (OR < 1): Peluang kejadian lebih rendah pada Kelompok 1 dibandingkan Kelompok 2.

  • Jika (OR = 1): Tidak ada perbedaan peluang kejadian antara dua kelompok.

5.2.4 Contoh Kasus Ukuran Asosiasi

Dengan menggunakan tabel kontingensi 2 x 2 sebelumnya, tentukan ukuran asosiasinya!

Perokok Aktif (+) Perokok Pasif (-) Total
Pria 89 37 126
Wanita 12 62 74
Total 101 99 200

Perhitungan Melalui R

Tahapan 1: Menghitung Risk Difference

RD <- function(n11, n12, n21, n22) {
(n11 / (n11 + n12)) - (n21 / (n21 + n22))
}
RD(89, 37, 12, 62)
## [1] 0.544187

Interpretasi:

Risk Difference menunjukkan perbedaan risiko antara dua kelompok. Berdasarkan hasil perhitungan, didapatkan nilai RD sebesar 0.544187. Karena RD (0.544187) > 0, maka risiko kejadian lebih tinggi pada Pria untuk menjadi perokok aktif dibandingkan Wanita, menunjukkan adanya asosiasi kuat antara jenis kelamin dengan status merokok.

Tahapan 2: Menghitung Relative Risk

RR <- function(n11, n12, n21, n22) {
(n11 / (n11 + n12)) / (n21 / (n21 + n22))
}
RR(89, 37, 12, 62)
## [1] 4.35582

Interpretasi:

Relative Risk menggambarkan seberapa besar kemungkinan terjadi antara dua kelompok. Berdasarkan hasil perhitungan, didapatkan nilai RR sebesar 4.35582 (RR > 1). Artinya, Pria memiliki risiko 4.35 kali lebih besar untuk menjadi Perokok Aktif dibandingkan Wanita, yang menunjukkan hubungan yang signifikan antara jenis kelamin dengan status merokok.

Tahapan 3: Menghitung Odds Ratio

OR <- function(n11, n12, n21, n22) {
(n11 * n22) / (n12 * n21)
}
OR(89, 37, 12, 62)
## [1] 12.42793

Interpretasi:

Odds Ratio menunjukkan perbandingan Odds antara dua kelompok. Berdasarkan hasil perhitungan, didapatkan nilai OR sebesar 12.42793 (OR > 1). Artinya, Odds pria untuk menjadi perokok aktif adalah 12.43 kali lebih besar dibandingkan odds wanita, menunjukkan asosiasi yang sangat kuat antara jenis kelamin dan status merokok.

6 Inferensi Tabel Kontingensi Dua Arah

Proses inferensi dilakukan untuk membuat generalisasi tentang hubungan antar variabel di tingkat populasi berdasarkan data sampel. Inferensi ini dapat digunakan untuk mengevaluasi apakah terdapat asosiasi yang signifikan antara dua variabel kategorik, dengan pendekatan berikut:

6.1 Estimasi

Estimasi bertujuan untuk memperkirakan parameter populasi berdasarkan data sampel. Estimasi dibagi menjadi:

6.1.1 Estimasi Titik

Estimasi titik adalah metode untuk memperkirakan parameter populasi tertentu menggunakan satu nilai spesifik yang dihitung dari data sampel. Dalam konteks tabel kontingensi, estimasi titik sering digunakan untuk menghitung proporsi dalam kategori tertentu.

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

Keterangan:

  • \(\hat{p}\): Estimasi proporsi dari kategori tertentu dalam populasi.
  • \(x\): Jumlah individu dalam kategori tertentu dalam sampel.
  • \(n\): Total ukuran sampel.

Estimasi interval memberikan rentang nilai yang mungkin berisi parameter populasi, dengan tingkat kepercayaan tertentu (biasanya 95%). Estimasi ini memperhitungkan ketidakpastian statistik dari data sampel untuk memberikan gambaran yang lebih lengkap tentang parameter populasi.

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

Keterangan:

  • \(\hat{p}\): Estimasi proporsi dari kategori tertentu dalam populasi.
  • \(Z_{\alpha/2}\): Nilai kritis dari distribusi normal standar untuk tingkat kepercayaan tertentu.
  • \(n\): Total ukuran sampel.

6.2 Pengujian Hipotesis

6.2.1 Pengujian Proporsi

Pengujian Proporsi digunakan untuk membandingkan proporsi suatu kejadian antara dua kelompok dalam tabel kontingensi. Tujuannya adalah untuk mengetahui apakah terdapat perbedaan proporsi yang signifikan antara kedua kelompok tersebut.

Tabel Kontingensi 2 x 2 memiliki struktur sebagai berikut:

Kategori 1 (+) Kategori 2 (-) Total
Grup 1 n11 n12 n1.
Grup 2 n21 n22 n2.
Total n.1 n.2 n

6.2.1.1 Formulasi Uji Proporsi

Menggunakan uji z dua proporsi, dengan hipotesis:

  • Hipotesis Nol (H0): Tidak ada perbedaan proporsi antara dua kelompok, yaitu p1 = p2

  • Hipotesis Alternatif (H1): Terdapat perbedaan proporsi antara dua kelompok, yaitu p1 \(\neq\) p2

Estimasi proporsi dalam masing-masing kelompok diberikan oleh:

\[ \hat{p}1 = \frac{n_{11}}{n_{1+}}, \quad \hat{p}2 = \frac{n_{21}}{n_{2+}} \]

Estimasi proporsi gabungan:

\[ \hat{p} = \frac{n_{11} + n_{21}}{n_{1+} + n_{2+}} \]

Statistik uji untuk uji proporsi dua sampel:

\[ Z = \frac{\hat{p}1 - \hat{p}2}{\sqrt{\hat{p} \times (1 - \hat{p}) \times \left( \frac{1}{n_{1+}} + \frac{1}{n_{2+}} \right)}} \]

Statistik uji Z mengikuti distribusi normal baku N(0,1), dan p-value dihitung berdasarkan nilai kritis dari distribusi normal. Apabila |Z| lebih besar dari nilai kritis untuk tingkat signifikansi \(\alpha\), maka hipotesis nol ditolak sehingga terdapat perbedaan yang signifikan antara dua proporsi tersebut. Pengujian ini sangat cocok digunakan dalam studi kohort dan eksperimen klinis.

6.2.1.2 Contoh Kasus:

Dengan menggunakan tabel kontingensi sebelumnya, Lakukanlah pengujian proprosi!

Perokok Aktif (+) Perokok Pasif (-) Total
Pria 89 37 126
Wanita 12 62 74
Total 101 99 200

Tahapan 1 : Menghitung Proporsi Sampel

  • \(\hat{p}_1 = \frac{89}{126} \approx 0.706\)
  • \(\hat{p}_2 = \frac{12}{74} \approx 0.162\)

Tahapan 2 : Menghitung Proporsi Gabungan

\[ \hat{p} = \frac{89 + 12}{126 + 74} = \frac{101}{200} = 0.505 \]

Tahapan 3 : Menghitung Statistik Uji Z

\[ Z = \frac{0.706 - 0.162}{\sqrt{0.505 \times (1 - 0.505) \times \left( \frac{1}{126} + \frac{1}{74} \right)}} \]

\[ Z = \frac{0.544}{\sqrt{0.505 \times 0.495 \times 0.021}} \]

\[ Z = \frac{0.544}{\sqrt{0.00525}} \approx 7.50791 \]

Interpretasi:

Karena Z = 7.50791 lebih besar dari nilai kritis untuk \(\alpha = 0.05\) (yaitu 1.96), maka \(H_0\) ditolak sehingga terdapat Perbedaan yang signifikan antara dua proporsi.

Perhitungan Melalui R

## Data Observasi
set.seed(123)
data<- matrix(c(89, 37, 12, 62), nrow = 2, byrow = TRUE)
dimnames(data) <- list("Gender" = c("Pria", "Wanita"), "Status Merokok" = c("Aktif", "Pasif"))
print(data)
##         Status Merokok
## Gender   Aktif Pasif
##   Pria      89    37
##   Wanita    12    62
## Pengujian Proporsi
prop_test <- prop.test(x = c(data[1,1], data[2,1]),
n = c(sum(data[1,]), sum(data[2,])))

print(prop_test)
## 
##  2-sample test for equality of proportions with continuity correction
## 
## data:  c(data[1, 1], data[2, 1]) out of c(sum(data[1, ]), sum(data[2, ]))
## X-squared = 53.074, df = 1, p-value = 3.212e-13
## alternative hypothesis: two.sided
## 95 percent confidence interval:
##  0.4178040 0.6705701
## sample estimates:
##    prop 1    prop 2 
## 0.7063492 0.1621622

Interpretasi:

Berdasarkan hasil perhitungan, didapatkan bahwa nilai p-value sebesar 3.212e-13. Karena p-value < 0.05, maka terdapat perbedaan proporsi kejadian antara kelompok Pria dan Wanita.

6.2.2 Pengujian Asosiasi

Pengujian Asosiasi digunakan untuk mengukur hubungan antara dua variabel kategori dalam tabel kontingensi. Terdapat ukuran utama dalam pengujian ini:

  1. Risk Difference (RD): Mengukur selisih risiko antara dua kelompok.
  2. Relative Risk (RR): Mengukur perbandingan risiko antara dua kelompok.
  3. Odds Ratio (OR): Mengukur perbandingan odds antara dua kelompok.

6.2.2.1 Formulasi Uji Asosiasi

Untuk setiap pengujian asosiasi, hipotesis yang diuji adalah:

  • Hipotesis Nol (H0): Tidak ada asosiasi antara dua variabel

  • Hipotesis Alternatif (H1): Terdapat asosiasi antara dua variabel

6.2.2.2 Risk Difference (RD)

Risk Difference mengukur selisih risiko absolut kejadian antara dua kelompok.

\[ RD = (\frac{n_{11}}{n_{1+}}) - (\frac{n_{21}}{n_{2+}}) \]

Standar Error untuk RD:

\[ SE(RD) = \sqrt{\frac{\hat{p}_1 \times (1 - \hat{p}1)}{n{1+}} + \frac{\hat{p}_2 \times (1 - \hat{p}2)}{n{2+}}} \]

Statistik Uji Z:

\[ Z_{RD} = \frac{RD}{SE(RD)} \]

6.2.2.3 Relative Risk (RR)

Relative Risk (RR) mengukur rasio risiko kejadian antara Kelompok 1 dan Kelompok 2.

\[ RR = \frac{\frac{n_{11}}{n_{1+}}}{\frac{n_{21}}{n_{2+}}} \]

Standar Error untuk log(RR):

\[ SE(\ln RR) = \sqrt{\frac{1}{n_{11}} - \frac{1}{n_{1+}} + \frac{1}{n_{21}} - \frac{1}{n_{2+}}} \]

Statistik Uji Z:

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

6.2.2.4 Odds Ratio (OR)

Odds Ratio (OR) membandingkan peluang kejadian antara dua kelompok, sering digunakan dalam studi kasus-kontrol untuk mengukur asosiasi.

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

Standar Error untuk Log(OR):

\[ SE(\ln OR) = \sqrt{\frac{1}{n_{11}} + \frac{1}{n_{12}} + \frac{1}{n_{21}} + \frac{1}{n_{22}}} \]

Statistik Uji Z:

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

6.2.2.5 Contoh Kasus:

Dengan menggunakan tabel kontingensi sebelumnya, Lakukanlah pengujian proprosi!

Perokok Aktif (+) Perokok Pasif (-) Total
Pria 89 37 126
Wanita 12 62 74
Total 101 99 200

Perhitungan Manual untuk RD:

  • Misalkan \(\hat{p}_1 = \frac{89}{126} \approx 0.706\)

  • Misalkan \(\hat{p}_2 = \frac{12}{74} \approx 0.162\)

  • Risk Difference:

\[ RD = 0.706 - 0.162 = 0.544 \]

  • Standard Error:

\[ SE(RD) = \sqrt{\frac{0.706 \times (1 - 0.706)}{126} + \frac{0.162 \times (1 - 0.162)}{74}} \approx 0.059 \]

  • Statistik Uji Z:

\[ Z_{RD} = \frac{0.544}{0.059} = 9.22 \]

Perhitungan Manual untuk RR:

\[ RR = \frac{\frac{89}{126}}{\frac{12}{74}} \approx 4.354 \]

  • Standar Error:

\[ SE(\ln RR) = \sqrt{\frac{1}{89} - \frac{1}{126} + \frac{1}{12} - \frac{1}{74}} \approx 0.2704 \]

  • Statistik Uji Z:

\[ Z_{RR} = \frac{ln 4.354}{0.2704} = 5.44187 \]

Perhitungan Manual untuk OR:

\[ R = \frac{89 \times 62}{37 \times 12} = \frac{5518}{444} \approx 12.428 \]

Standar Error untuk Log(OR):

\[ SE(\ln OR) = \sqrt{\frac{1}{89} + \frac{1}{37} + \frac{1}{12} + \frac{1}{62}} \approx 0.3711 \]

Statistik Uji Z:

\[ Z_{OR} = \frac{ln 12.428}{0.3711} \approx 6.790228 \]

Perhitungan Melalui R

# Data Observasi
n11 <- 89; n12 <- 37; n21 <- 12; n22 <- 62
n1. <- n11 + n12
n2. <- n21 + n22

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

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

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

# Hasil Perhitungan
list(RiskDifference = rd,
     SE_RiskDifference = se_rd,
     Z_RiskDifference = z_rd,
     RelativeRisk = rr,
     SE_RelativeRisk = se_ln_rr,
     Z_RelativeRisk = z_rr,
     OddsRatio = or,
     SE_OddsRatio = se_ln_or,
     Z_OddsRatio = z_or)
## $RiskDifference
## [1] 0.544187
## 
## $SE_RiskDifference
## [1] 0.05901027
## 
## $Z_RiskDifference
## [1] 9.221904
## 
## $RelativeRisk
## [1] 4.35582
## 
## $SE_RelativeRisk
## [1] 0.2704057
## 
## $Z_RelativeRisk
## [1] 5.44187
## 
## $OddsRatio
## [1] 12.42793
## 
## $SE_OddsRatio
## [1] 0.3711137
## 
## $Z_OddsRatio
## [1] 6.790228

Interpretasi:

  • Risk Difference (RD) mengukur perbedaan risiko absolut.
  • Relative Risk (RR) membandingkan kemungkinan kejadian antara dua kelompok.
  • Odds Ratio (OR) membandingkan peluang kejadian dua kelompok.
  • Standard Error dan Statistik Uji Z digunakan untuk menilai signifikansi statistik masing-masing ukuran asosiasi.

6.2.3 Pengujian Independensi

Pengujian Independensi digunakan untuk menentukan apakah terdapat hubungan statistik antara dua variabel kategorikal.

6.2.3.1 Uji Chi-Square

Uji Chi-Square digunakan untuk menguji apakah terdapat hubungan antara dua variabel kategorikal. Secara umum, Chi-Square dibentuk sebagai berikut:

\[ \chi^2 = \sum{i=1}^r \sum{j=1}^c \frac{(O_{ij} - E_{ij})^2}{E_{ij}} \]

di mana:

  • \(O_{ij}\): Frekuensi yang diamati pada sel \((i,j)\).
  • \(E_{ij}\): Frekuensi yang diharapkan pada sel \((i,j)\), yang dihitung sebagai:

\[ E_{ij} = \frac{(R_i \times C_j)}{N} \]

dengan:

  • \(R_i\): Total baris ke-i.
  • \(C_j\): Total kolom ke-j.
  • \(N\): Total sampel.

6.2.3.2 Partisi Chi-Square

Partisi Chi-Square digunakan untuk mengidentifikasi kategori mana yang berkontribusi pada hubungan signifikan dalam tabel kontingensi \(I \times J\). Jika uji Chi-Square menunjukkan hubungan signifikan, partisi Chi-Square membantu menguraikan efek tersebut pada subkelompok yang lebih kecil.

6.2.3.2.1 Langkah-Langkah Partisi Chi-Square
  1. Menggunakan tabel \(I \times J\) dan menghitung Chi-Square keseluruhan.
  2. Memisahkan tabel menjadi beberapa tabel 2 x 2 sebanyak \((I-1)(J-1)\).
  3. Menghitung statistik Chi-Square pada masing-masing tabel 2 x 2.
  4. Menginterpretasikan kategori yang memberikan kontribusi signifikan

6.2.3.3 Uji Likelihood Ratio (G2)

Uji Likelihood Ratio (G²) adalah alternatif dari uji Chi-Square untuk menguji hipotesis independensi antar variabel dalam tabel kontingensi \(I \times J\).

Statistik Uji ini diberikan oleh:

\[ G^2 = 2 \sum_{i=1}^I \sum_{j=1}^J n_{ij} \ln \left( \frac{n_{ij}}{\hat{\mu}_{ij}} \right) \]

di mana:

  • \(n_{ij}\): Frekuensi yang diamati pada sel \((i,j)\)
  • \(\hat{\mu}{ij}\): Frekuensi yang diharapkan pada sel \((i,j)\), yang dihitung sebagai \(\hat{\mu}{i,j}=n \cdot \hat{p}_j\), dengan \(\hat{p}_i\) dan \(\hat{p}_j\) adalah proporsi marginal.
  • Statistik ( G^2 ) mengikuti distribusi Chi-Square dengan derajat kebebasan \((I-1)(J-1)\).
  • Tolak hipotesis nol jika \(G^2 \geq \chi^2_{(I-1)(J-1), 1-\alpha}\)

6.2.3.4 Uji Exact Fisher

Uji Fisher’s Exact digunakan untuk menguji independensi dalam tabel kontingensi 2 x 2, terutama ketika ukuran sampel kecil atau frekuensi harapan kecil (< 5), sehingga uji Chi-Square tidak dapat digunakan dengan akurat.

Keunggulan:

  • Cocok untuk ukuran sampel kecil.

  • Tidak memerlukan asumsi normalitas atau Chi-Square.

  • Memberikan hasil yang lebih akurat dibandingkan Chi-Square pada data dengan frekuensi kecil.

Kekurangan:

  • Perhitungan bisa menjadi sangat berat secara komputasi jika ukuran tabel besar.

  • Hanya cocok untuk tabel kontingensi kecil (misalnya 2x2 atau 3x3).

6.2.3.4.1 Distribusi Hipergeometrik

Distribusi Hipergeometrik menggambarkan probabilitas mengambil \(x\) bola putih dalam pengembalian dari kumpulan \(N\) bola yang terdiri dari \(K\) bola putih dan \(N-K\) bola hitam. Secara umum, dibentuk sebagai berikut:

\[ P(X = x) = \frac{\binom{n_{1+}}{x} \binom{n_{2+}}{n_{+1} - x}}{\binom{N}{n_{+1}}} \]

dengan:

  • \(N\): Total sampel.
  • \(K\): Jumlah objek dalam kategori tertentu.
  • \(n\): Jumlah objek yang diambil dalam kategori tertentu.
  • \(x\): Jumlah kejadian yang diamati dalam sampel.

6.3 Analisis Residual

Analisis residual membantu mengidentifikasi sel-sel dalam tabel kontingensi yang menunjukkan penyimpangan signifikan dari model independensi. Residual mengukur perbedaan antara frekuensi yang diamati dan yang diharapkan, memungkinkan peneliti untuk menentukan sel mana yang berkontribusi pada hubungan antar variabel. Menurut Agresti (2013), jika residual sama dengan 0, maka:

  • Tidak ada hubungan signifikan antar variabel pada tabel.
  • Variabel bersifat independen atau memiliki korelasi yang lemah.

Jika residual tidak sama dengan 0, maka: - Residual Positif: Frekuensi yang diamati lebih tinggi dari yang diharapkan, menunjukkan hubungan positif antar kategori. - Residual Negatif: Frekuensi yang diamati lebih rendah dari yang diharapkan, menunjukkan hubungan negatif antar kategori.

Analisis ini berperan penting dalam memahami pola hubungan antar variabel kategorik, terutama dalam tabel dengan banyak sel, dan membantu mengidentifikasi sel-sel yang menyimpang secara signifikan dari independensi.

6.3.1 Jenis Residual

6.3.1.1 Pearson Residual

Pearson Residual mengukur penyimpangan antara frekuensi yang diamati dan yang diharapkan, dinormalkan dengan akar dari frekuensi yang diharapkan.

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

di mana:

  • \(O_{ij}\): Frekuensi yang diamati pada sel \((i,j)\)
  • \(E_{ij}\): Frekuensi yang diharapkan pada sel \((i,j)\), yang dihitung sebagai \(E_{ij} = n \cdot p_i \cdot p_j\)

6.3.1.2 Standardized Residual

Standardized residual menyesuaikan Pearson residual dengan mempertimbangkan probabilitas marginal, sehingga lebih akurat untuk mengidentifikasi penyimpangan signifikan.

\[ r_{ij} = \frac{O_{ij} - E_{ij}}{\sqrt{E_{ij} \times (1 - p_i) \times (1 - p_j)}} \]

di mana:

  • \(p_i\), \(p_j\): Probabilitas marginal dari baris dan kolom.

6.3.2 Mendeteksi Outlier

Dalam analisis data kategori, outlier merujuk pada sel-sel dalam tabel kontingensi yang menunjukkan nilai residual yang sangat besar, baik positif maupun negatif. Nilai ini menunjukkan bahwa terdapat kategori yang memiliki frekuensi observasi yang jauh lebih tinggi atau lebih rendah dibandingkan dengan nilai ekspektasi berdasarkan asumsi independensi.

6.3.2.1 Pearson Residual

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

Jika \(|e_{ij}| > 2\), maka sel tersebut dianggap sebagai outlier signifikan.

6.3.2.2 Standardized Residual

\[ r_{ij} = \frac{O_{ij} - E_{ij}}{\sqrt{E_{ij} \times (1 - p_i) \times (1 - p_j)}} \]

Jika \(|r_{ij}| > 2\), maka sel tersebut dianggap sebagai outlier signifikan.

7 Tabel Kontingensi Tiga Arah

Tabel kontingensi tiga arah merupakan pengembangan dari tabel dua arah, dan digunakan untuk menganalisis keterkaitan antara tiga variabel kategori sekaligus. Dalam berbagai kasus, relasi antara dua variabel (misalnya \(X\) dan \(Y\)) dapat dipengaruhi oleh variabel ketiga \(Z\), yang dikenal sebagai variabel kontrol atau kovariat. Analisis dengan tabel ini berguna terutama ketika terdapat potensi faktor perancu yang bisa memengaruhi hubungan antara dua variabel utama. Seperti:

7.1 Tabel Parsial dan Marginal

Tabel kontingensi tiga arah dapat dibagi menjadi:

  • Tabel Parsial: Menyajikan hubungan antara \(X\) dan \(Y\) dalam masing-masing kategori \(Z\). Hal ini memungkinkan analisis bersyarat dengan efek \(Z\) yang dikendalikan.
  • Tabel Marginal: Menyajikan hubungan antara \(X\) dan \(Y\) tanpa memperhitungan \(Z\), dengan menjumlahkan seluruh kategori \(Z\). Hal ini memberikan gambaran umum mengenai hubungan \(X\) dan \(Y\), tetapi bisa menyesatkan karena mengabaikan pengaruh \(Z\), seperti yang terlihat pada Paradoks Simpson

Penggunaan tabel marginal dapat menunjukkan pola asosiasi secara keseluruhan, tetapi sering kali mengabaikan variabel kovariat yang penting untuk analisis lebih dalam. Oleh karena itu, analisis menggunakan tabel parsial sering lebih disukai dalam penelitian ilmiah agar hasilnya lebih akurat dan bermakna.

Contoh Data

Z (Jenis Kelamin) X (Merokok) Y (Kanker) Tidak Kanker Total
Pria Ya 40 60 100
Pria Tidak 10 90 100
Wanita Ya 30 70 100
Wanita Tidak 15 85 100

Tabel Frekuensi Parsial

Tabel Frekuensi Parsial menyajikan hubungan antara dua variabel kategori dalam tabel kontingensi tiga arah dengan mempertahanakn satu variabel sebagai kontrol. Tabel ini membantu dalam memahami hubungan bersyarat antara variabel dalam analisis data kategori.

Tabel Frekuensi Parsial dihitung dengan membagi tabel kontingensi tiga arah berdasarkan kategori variabel kontrol.

Tabel Frekuensi Parsial untuk Z (Jenis Kelamin) = Pria

Kanker (+) Tidak Kanker (-) Total
Merokok 40 60 100
Tidak Merokok 10 90 100
Total 50 150 200

Tabel Frekuensi Parsial untuk Z (Jenis Kelamin) = Wanita

Kanker (+) Tidak Kanker (-) Total
Merokok 30 70 100
Tidak Merokok 15 85 100
Total 45 155 200

Implementasi dalam R

data3 <- array(c(40, 10, 60, 90, 30, 15, 70, 85),
        dim = c(2, 2, 2),
        dimnames = list(
        Merokok = c("Ya", "Tidak"),
        Kanker = c("Ya", "Tidak"),
        Gender = c("Pria", "Wanita")
))

# Ekstrak tabel parsial berdasarkan usia
freq_parsial_pria <- data3[, , "Pria"]
freq_parsial_wanita <- data3[, , "Wanita"]

# Hasil Perhitungan
freq_parsial_pria
##        Kanker
## Merokok Ya Tidak
##   Ya    40    60
##   Tidak 10    90
freq_parsial_wanita
##        Kanker
## Merokok Ya Tidak
##   Ya    30    70
##   Tidak 15    85

Kesimpulan

Tabel Frekuensi Parsial memungkinkan analisis hubungan antara dua variabel dengan mempertimbangkan variabel kontrol. Ini membantu mengidentifkasi pola yang mungkin tersembunyi dalam tabel.

Tabel Frekuensi Marginal

Tabel Frekuensi Marginal menampilkan jumlah total observasi untuk setiap variabel dengan mengabaikan variabel lainnya dalam tabel kontingensi tiga arah. Tabel ini membantu dalam memahami distribusi kategori secara agregat tanpa mempertimbangkan hubungan antarvariabel. Tabel frekuensi marginal dihitung dengan menjumlahkan frekuensi dari tabel kontingensi tiga arah berdasarkan variabel yang tersisa.

Tabel Frekuensi Marginal untuk X (Merokok) dan Y (Kanker):

X (Merokok) Y (Kanker) Tidak Kanker
Ya 70 130
Tidak 25 175

Tabel Frekuensi Marginal untuk Z (Jenis Kelamin) dan Y (Kanker):

Z (Jenis Kelamin) Y (Kanker) Tidak Kanker
Pria 50 150
Wanita 45 155

Implementasi dalam R

data3 <- array(c(40, 10, 60, 90, 30, 15, 70, 85),
        dim = c(2, 2, 2),
        dimnames = list(
        Merokok = c("Ya", "Tidak"),
        Kanker = c("Ya", "Tidak"),
        Gender = c("Pria", "Wanita")
))

# Ekstrak tabel marginal
freq_marginal_X <- apply(data3, 1, sum)
freq_marginal_Z <- apply(data3, 3, sum)

# Hasil Perhitungan
freq_marginal_X
##    Ya Tidak 
##   200   200
freq_marginal_Z
##   Pria Wanita 
##    200    200

7.2 Inferensi Tabel Kontingensi Tiga Arah

Tabel Kontingensi Tiga Arah digunakan untuk menganalisis hubungan antara dua variabel kategorik dengan mempertimbangkan variabel kontrol. Tabel ini terdiri dari beberapa tabel parsial (2x2) untuk setiap tingkat \(Z\), serta tabel marginal yang mengabaikan \(Z\). Ukuran asosiasi yang digunakan adalah odds ratio

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

Apabila odds ratio parsial relatif konstan pada semua strata, maka dapat menghitung odds ratio bersama menggunakan metode estimasi Mantel-Haenszel.

7.2.1 Independensi Bersyarat

Independensi bersyarat adalah konsep penting dalam analisis tabel kontingensi tiga arah, yang merujuk pada kondisi di mana dua variabel, \(X\) dan \(Y\), independen pada setiap level variabel ketiga, \(Z\). Pengujian independensi bersyarat ini dilakukan dengan metode statistik seperti Pengujian Cochran-Mantel-Haenszel (CMH).

Dua variabel, \(X\) dan \(Y\), dikatakan independen bersyarat terhadap variabel ketiga, \(Z\), jika rasio odds mereka dalam setiap strata \(Z\) sama dengan 1. Secara umum, dapat dibentuk sebagai:

\[ OR(X,Y|Z) = 1 \]

Artinya, setelah mengendalikan pengaruh \(Z\), tidak ada hubungan antara \(X\) dan \(Y\) dalam setiap strata. Meskipun begitu, terdapat beberapa hal yang perlu diperhatikan:

  • Apabila Odds Ratio tidak sama dengan 1, maka terdapat hubungan antara \(X\) dan \(Y\) pada strata tersebut.
  • Meskipun \(X\) dan \(Y\) independen dalam setiap strata \(Z\), hal ini tidak berarti bahwa kedua variabel juga independen dalam tabel marginal. Kasus ini disebut sebagai Paradoks-Simpson.
  • Asumsi independensi bersyarat sering digunakan dalam studi epidemologi, ilmu sosial, dan model pembelajaran mesin yang menganalisis tabel kontingensi terstruktur.

7.2.2 Pengujian Statistik untuk Independensi Bersyarat

7.2.2.1 Metode Cochran-Mantel-Haenszel

Uji Cochran-Mantel-Haenszel (CMH) digunakan untuk menguji hubungan antara dua variabel kategori dengan mempertimbangkan efek dari variabel perancu. Pengujian ini berguna dalam:

  • Menguji hubungan yang dikendalikan oleh faktor perancu dalam tabel kontingensi berlapis (stratified contingency tables).
  • Menguji hipotesis independensi antara dua variabel kategori dengan mempertimbangkan efek dari variabel ketiga.
  • Mengatasi bias akibat confounding, seperti pada studi epidemiologi atau eksperimen sosial.

7.2.2.2 Ide Dasar Uji CMH

Uji CMH berasal dari konsep tabel kontingensi berlapis (stratified 2 x 2 tables), di mana dua variabel utama dipecah menjadi beberapa strata berdasarkan variabel perancu.

7.2.2.3 Hipotesis

  • Hipotesis Nol \((H_0) : \theta_{xy(k)} = 1\) untuk setiap \(k = 1, 2, ..., K\)
  • Hipotesis Alternatif \((H_1) : \theta_{xy(k)} \neq 1\) untuk paling sedikit satu \(k\)

7.2.2.4 Statistik Uji

Statistik uji Cochran-Mantel-Haenszel (CMH) dirumuskan sebagai:

\[ CMH = \frac{\left( \sum_{k=1}^K (n_{11k} - \hat{\mu}{11k}) \right)^2}{\sum{k=1}^K var(\hat{\mu}_{11k})} \]

di mana:

  • \(n_{11k}\): Frekuensi yang diamati pada sel baris 1 kolom 1 untuk strata \(k\)
  • \(\hat{\mu}{11k}\): Frekuensi yang diharapan pada sel baris 1 kolom 1 untuk strata \(k\), yang dihitung sebagai”

\[ \hat{\mu}{11k} = E[n_{11k}] = \frac{n_{1+k} \times n_{+1k}}{n_{++k}} \]

  • Varians dari \(n_{11k}\) dibentuk oleh:

\[ var(\hat{\mu}{11k}) = \frac{n{1+k} \times n_{2+k} \times n_{+1k} \times n_{+2k}}{n_{++k}^2 \times (n_{++k} - 1)} \]

  • Statistik CMH mengiktui distribusi Chi-square dengan derajat kebebasan \((db) = 1\)

  • Tolak \(H_0\) jika \(CMH > \chi^2_{(1), 1-\alpha}\) atau p-value < \(\alpha\).

7.2.3 Odds Ratio Bersama

7.2.3.1 Penaksir (Khusus Tabel 2 x 2 x K)

  • Dalam tabel kontingensi 2 x 2 x \(K\), terdapat \(K\) tabel parsial sehingga ada sebanyak \(K\) odds ratio bersyarat.
  • Apabila nilai-nilai odds ratio bersyarat relatif sama (tidak berbeda secara ekstrem) dan memiliki arah yang sama, maka dapat ditentukannya sebuah nilai tunggal untuk odds ratio yang disebut odds ratio bersama.
  • Odds ratio bersama ditaksir oleh statistik Mantel-Haenszel.

7.2.3.2 Rumus Odds Ratio Bersama

Odds Ratio Bersama dibentuk oleh:

\[ OR_{MH} = \frac{\sum_{k=1}^K \frac{n_{11k} \times n_{22k}}{n_{++k}}}{\sum_{k=1}^K \frac{n_{12k} \times n_{21k}}{n_{++k}}} \]

di mana:

  • \(n_{11k}\): Frekuensi sel baris 1 kolom 1 pada tabel parsial ke-\(k\).
  • \(n_{12k}\): Frekuensi sel baris 1 kolom 2 pada tabel parsial ke-\(k\).
  • \(n_{21k}\): Frekuensi sel baris 2 kolom 1 pada tabel parsial ke-\(k\).
  • \(n_{22k}\): Frekuensi sel baris 2 kolom 2 pada tabel parsial ke-\(k\).
  • \(n_{..k}\): Total observasi dalam tabel parsial ke-\(k\).

7.2.3.3 Standard Error log Odds Ratio Bersama

Standard Error untuk log odds ratio bersama dibentuk oleh:

\[ \hat{\sigma}^2[\log(\hat{\theta}{MH})] = \frac{\sum \left( (n{11k} + n_{22k}) \left( \frac{n_{11k} \times n_{22k}}{n_{++k}} \right) / n_{++k}^2 \right)}{2 \left( \sum \frac{n_{11k} \times n_{22k}}{n_{++k}} \right)^2} + \frac{\sum \left( (n_{11k} + n_{22k}) \left( \frac{n_{11k} \times n_{22k}}{n_{++k}} \right) + (n_{12k} + n_{21k}) \left( \frac{n_{12k} \times n_{21k}}{n_{++k}} \right) \right) / n_{++k}^2}{2 \left( \sum \frac{n_{11k} \times n_{22k}}{n_{++k}} \right) \left( \sum \frac{n_{12k} \times n_{21k}}{n_{++k}} \right)} + \frac{\sum \left( (n_{12k} + n_{21k}) \left( \frac{n_{12k} \times n_{21k}}{n_{++k}} \right) / n_{++k}^2 \right)}{2 \left( \sum \frac{n_{12k} \times n_{21k}}{n_{++k}} \right)^2} \]

di mana:

  • \(\hat{\sigma}^2[\log(\hat{\theta}_{MH}]\): Standard Error dari log odds ratio bersama.
  • \(( n_{11k} ), ( n_{12k} ), ( n_{21k} ), ( n_{22k} )\): Frekuensi pada sel-sel tabel parsial 2 x 2 untuk strata \(k\).
  • \(n_{++k}\): Total observasi pada strata \(k\).
  • Rumus ini terdiri dari tiga komponen yang menjumlahkan kontribusi varians dari setiap strata, dengan pembagi berdasarkan estimasi odds ratio bersama.

7.2.3.4 Interval Kepercayaan log Odds Ratio Bersama

\[ \log(\hat{\theta}{MH}) \pm Z{\alpha/2} \hat{\sigma}[\log(\hat{\theta}_{MH})] \]

di mana:

  • \(\log(\hat{\theta}_{MH})\): Logaritma dari odds ratio bersama Mantel-Haenszel.
  • \(Z_{\alpha/2}\): Nilai kritis dari distribusi normal standar untuk tingkat kepercayaan \(1-\alpha\).
  • \(hat{\sigma}[\log(\hat{\theta}_{MH})]\): Standard Error dari log odds ratio bersama.

7.2.4 Uji Homogenitas Odds Ratio dengan Statistik Breslow-Day

7.2.4.1 Homogenitas Asosiasi dalam Tabel Kontingensi Tiga Arah

  • Asosiasi homogen terjadi jika odds ratio pada setiap tabel parsial bernilai sama:

\[ \theta_{XY(1)} = \theta_{XY(2)} = \cdots = \theta_{XY(K)} \] - Apabila odds ratio konstan di semua strata variabel kontrol \((Z)\), maka tidak ada interaksi antara variabel \(X\) dan \(Y\) dalam pengaruhnya terhadap \(Z\).

  • Apabila odds ratio berbeda-beda antar level \(Z\), maka terdapat interaksi antara \(X\) dan \(Y\) dalam hubungannya dengan \(Z\).

7.2.4.2 Pengujian Homogenitas dengan Statistik Breslow-Day

  • Hipotesis Nol \(H_0 : \theta_{XY(1)} = \cdots = \theta_{XY(K)}\) (odds ratio sama di semua strata).
  • Hipotesis Alternatif \(H_1\): Setidaknya terdapat satu odds ratio yang berbeda.

Statistik Uji Bresslow-Day (BD) digunakan untuk menguji homogenitas odds ratio. Secara matematis, dirumuskan sebagai:

\[ \chi^2_{HBD} = \sum_{j=1}^K \frac{(a_j - \hat{a}j)^2}{Var(a_j \mid OR{MH})} \]

di mana:

  • \(a_j\): Jumlah kasus terpapar yang diamati dalam strata \(j\).
  • \(\hat{a}_j\): Jumlah kasus terpapar yang diharapkan berdasarkan hipotesis nol.
  • \(Var(a_j \mid OR_{MH})\): Varians dari \(a_j\) berdasarkan odds ratio bersama \(OR_{MH}\).
  • Statistik BD mengikuti distribusi Chi-square dengan db = K - 1.
  • Apabila BD lebih besar dari nilai kritis \(\chi^2_{(K-1), 1-\alpha}\), maka tolak \(H_0\). Jika tidak, maka \(H_0\) gagal ditolak.

7.2.4.3 Perhitungan Manual Step by Step

1. Estimasi Rasio Odds Gabungan (Mantel=Haenszel OR)

Estimasi rasio odds gabungan \((\hat {OR}_{MH})\) dapat dibentuk sebagai:

\[ OR_{MH} = \frac{\sum_{j=1}^K \frac{a_j \times d_j}{n_j}}{\sum_{j=1}^K \frac{b_j \times c_j}{n_j}} \]

di mana:

  • \(( a_j ), ( b_j ), ( c_j ), ( d_j )\): Elemen dalam tabel kontingensi 2 x 2 untuk strata \(j\).
  • \((n_j)\): Total observasi pada strata \(j\).

2. Menentukan Nilai Ekspektasi \(\hat{a}_j\)

Nilai Ekspektasi \(\hat{a}_j\) diperoleh dengan mencari solusi dari persamaan kuadrat berikut:

\[ -m_1 \times n_1 \times OR_{MH} + (m_2 - m_3 + OR_{MH} \times (m_1 + m_4)) \hat{a}j + (1 - OR{MH}) \hat{a}_j^2 = 0 \]

di mana:

  • \(( m_1 ), ( m_2 ), ( m_3 ), ( m_4 )\): Total marginal pada strata \(j\).
  • \((n_1), (n_2), (n_3), (n_4)\): Total observasi pada strata \(j\).
  • Persamaan kuadrat ini diselesaikan untuk mendapatkan \(\hat{a}_j\)

3. Menghitung Varians \(Var(a_j \mid OR_{MH})\)

Varians \(Var(a_j \mid OR_{MH})\) dapat dibentuk sebagai:

\[ Var(a_j \mid OR_{MH}) = \left( \frac{1}{\hat{a}_j} + \frac{1}{\hat{b}_j} + \frac{1}{\hat{c}_j} + \frac{1}{\hat{d}_j} \right)^{-1} \]

di mana:

  • \(\hat{b}_j = m_{1j} - \hat{a}_j\)
  • \(\hat{c}_j = m_{1j} - \hat{a}_j\)
  • \(\hat{d}_j = m_{2j} - \hat{c}_j\)
  • Varians ini dihitung berdasarkan nilai ekspektasi untuk setiap strata.

4. Menghitung Statistik Uji Breslow-Day

Statistik Uji Breslow-Day dapat dibentuk oleh:

\[ \chi^2_{HBD} = \sum_{j=1}^K \frac{(a_j - \hat{a}j)^2}{Var(a_j \mid OR{MH})} \]

di mana:

  • \(a_j\): Jumlah kasus terpapar yang diamati dalam strata \(j\).
  • \(\hat{a}_j\): Jumlah kasus terpapar yang diharapkan berdasarkan hipotesis nol.
  • \(Var(a_j \mid OR_{MH})\): Varians dari \(a_j\) berdasarkan odds ratio bersama \(OR_{MH}\).

5. Koreksi Tarone

Korelasi Tarone ditetapkan untuk menyesuaikan statistik uji:

\[ \chi^2_{HBDT} = \chi^2_{HBD} - \frac{\left( \sum_{j=1}^K (a_j - \hat{a}j) \right)^2}{\sum{j=1}^K Var(a_j \mid OR_{MH})} \]

Koreksi ini memperhitungkan kemungkinan bias yang muncul karena varians yang digunakan dalam statistik uji tidak memperhitungkan ketergantungan antar strata.

6. P-value dan Keputusan Hipotesis

P-value dihitung berdasarkan distribusi chi-square dengan derajat kebebasan:

\[ df = K - 1 \]

dan

\[ p = 1 - \chi^2(\chi^2_{HBDT}, df) \]

Jika P-value < 0.05, maka \(H_0\) ditolak dan dapat disimpulkan bahwa rasio odds heterogen pada seluruh strata.

7.2.4.4 Kesimpulan

  • Statistik Breslow-Day \(\chi^2_{HBD}\) menguji apakah rasio odds homogen di seluruh strata.
  • Estimasi ekspektasi \(\hat{a}_j\) diperoleh dari solusi persamaan kuadrat.
  • Korelasi Tarone \(\chi^2_{HBDT}\) digunakan untuk mengurangi bias.
  • P-value dihitung berdasarkan distribusi Chi-Square untuk menentukan apakah \(H_0\) dapat ditolak.

8 Generalized Linear Model (GLM)

Generalized Linear Model (GLM) adalah bentuk perluasan dari regresi linear klasik. GLM memungkinkan kita untuk memodelkan data ketika variabel respon tidak mengikuti distribusi normal dan/atau saat hubungan antara variabel respon dan prediktor tidak bersifat linier terhadap rata-ratanya.

GLM memiliki tiga komponen utama, yaitu:

  1. Distribusi dari Exponential Family sebagai model untuk variabel respon.
  2. Fungsi Link, yang menghubungkan nilai harapan dari respon dengan kombinasi linier prediktor.
  3. Fungsi Linier Prediktor, yang dituliskan sebagai \(\eta = X \beta\).

8.1 Exponential Family

Sebuah distribusi dikatakan termasuk dalam keluarga eksponensial jika bentuk fungsi densitas atau peluangnya dapat dinyatakan sebagai:

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

Contoh distribusi yang termasuk dalam Exponential Family adalah sebagai:

  • Distribusi Normal
  • Distribusi Binomial
  • Distribusi Poisson
  • Distribusi Gamma
  • Distribusi Bernoulli
  • Distribusi Uniform

8.1.0.1 Contoh Pembuktian: Distribusi Poisson

Fungsi probabilitas Distribusi Poisson adalah:

\[ P(Y = y) = \frac{\lambda^y e^{-\lambda}}{y!}, \quad x = 0,1,2, \ldots \] Kita ingin membuktikan bahwa bentuk ini dapat ditulis dalam bentuk umum exponential family:

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

Tahapan 1 : Ubah ke Bentuk Eksponensial

Mulai dari:

\[ f(y; \lambda) = \frac{\lambda^y e^{-\lambda}}{y!} \]

Menggunakan identitas logaritma:

\[ \lambda^y = e^{y \log \lambda} \]

sehingga:

\[ f(y; \lambda) = \frac{e^{y \log \lambda - \lambda}}{y!} = \exp \left( y \log \lambda - \lambda - \log y! \right) \]

Tahapan 2 : Samakan dengan Bentuk Exponential Family

Bentuknya sudah cocok dengan:

\[ \exp \left( y \theta - b(\theta) + c(y) \right) \]

Sehingga kita punya:

  • \(\theta = \log \lambda\)
  • \(b(\theta) = e^\theta = \lambda\)
  • \(c(y) = -\log(y!)\)
  • \(\phi = 1\) (distribusi Poisson tidak memiliki paramter eksplisit)

Tahapan 3 : Kesimpulan

Karena fungsi probabilitas dari Poisson dapat dituliskan dalam bentuk:

\[ f(y; \theta) = \exp\left\{ y \theta - e^\theta - \log y! \right\} \]

maka distribusi Poisson adalah bagian dari exponential family dengan:

  • Natural parameter: \(\theta = \log \lambda\)
  • Fungsi partisi: \(b(\theta) = e^\theta\)
  • Fungsi tambahan: \(c(y) = -\log y!\)

8.2 Model Regresi Logistik

Persamaan regresi logistik adalah bentuk regresi linear yang menggunakan kombinasi linear dari koefisien untuk menghasilkan prediksi. Namun, regresi logistik membatasi hasil prediksinya menjadi nilai biner, yaitu 0 atau 1, dengan menggunakan fungsi aktivasi signoid. Hasil yang diprediksi oleh model terletak dalam rentang antara 0 hingga 1 serta mengikuti bentuk kurva S (S-shaped).

Regresi logistik digunakan untuk mengklasifikasikan hubungan antara satu atau lebih variabel independen ke dalam kelas-kelas diskrit. Model ini tidak untuk prediksi numerik, melainkan untuk memperkirakan probabilitas apakah suatu objek termasuk dalam kategori tertentu atau tidak.

Sebagai contoh, angka 0 dapat mewakili kelas negatif, sedangkan angka 1 mewakili kelas positif. Regresi logistik biasanya diterapkan pada masalah klasifikasi biner, di mana variabel hasil hanya memiliki dua kemungkinan kategori (0 atau 1).

Berikut merupakan beberapa contoh pengaplikasian klasifikasi biner di mana respons biner diiharapkan atau tersirat:

  • Memprediksi risiko serangan jantung: Dengan model logistik, tenaga medis dapat mengevaluasi hubungan antara variabel seperti kadar kolesterol untuk memperkirakan apakah seseorang berpotensi mengalami serangan jantung, serta aplikasi lain dalam dunia medis.
  • Menilai peluang diterima di Universitas: Sistem aplikasi dapat memperkirakan probabilitas seorang pelamar diterima di universitas tertentu berdasarkan skor seperti GRE, GMAT, atau TOEFL, serta probabilitas keberhasilan mereka di program studi tertentu.
  • Mendeteksi email spam: Sistem email dapat mengidentifikasi apakah sebuah email termasuk spam atau bukan dengan menganalisis variabel prediktor dan menerapkan algoritma regresi logistik untuk klasifikasi email tersebut.

Salah satu keunggulan utama regresi logistik adalah kemudahan penerapannya dalam metode pembelajaran mesin. Model ini dapat diolah secara efektif melalui proses training (pelatihan) dan testing (pengujian). Proses pelatihan bertujuan untuk mengenali pola dalam data (misalnya gambar) dan mengaitkannya dengan kelas tertentu (label). Melatih model regresi logistik memungkinkan pembelajaran mesin untuk mengenali hubungan antara prediktor dan respons, sehingga dapat digunakan untuk klasifikasi yang akurat.

1. Cocok untuk data yang dapat dipisahkan secara linear

Pastikan data yang digunakan dapat dipisahkan secara linier dengan membuat grafik yang memisahkan data ke dalam dua kelas menggunakan garis lurus. Dalam regresi logistik, variabel respons \((Y)\) hanya memiliki dua nilai. Oleh karena itu, jika pemisahan dapat dilakukan secara efektif, maka data tersebut dapat diklasifikasikan ke dalam dua kelas berbeda.

2. Memberikan wawasan yang berharga

Regresi logistik dapat memberikan informasi penting tentang hubungan antara variabel independen/prediktor (dengan menghitung koefisien regresi) dan variabel dependen/respons (apakah bernilai positif atau negatif).

3. Persamaan dan Asumsi dalam Regresi Logistik

Dalam regresi logistik, fungsi sigmoid digunakan untuk mengubah prediksi menjadi probabilitas. Fungsi sigmoid menghasilkan kurva berbentuk S (S-shaped) yang memetakan setiap nilai riil ke rentang antara 0 dan 1. Dengan demikian, jika nilai yang dihasilkan dari fungsi sigmoid lebih besar dari ambang batas tertentu (biasanya dihitung berdasarkan observasi), data akan diklasifikasikan ke dalam kelas tertentu. Sebaliknya, jika nilainya lebih kecil dari ambang batas, data akan masuk ke kelas lainnya.

Sebagai contoh:

  • Jika hasil fungsi signoid lebih dari 0.5, maka hasil diklasifikan sebagai 1 (kelas positif).
  • Jika hasilnya kurang dari 0.5, maka hasil diklasifikan sebagai 0 (kelas negatif).
  • Jika grafik menuju ke arah negatif secara ekstrem, maka nilai prediksi \(y\) akan menjadi 0, ataupun sebaliknya.

Dengan kata lain, jika keluaran fungsi signoid adalah 0.78, maka terdapat peluang sebesar 78% bahwa peristiwa tersebut akan terjadi —- misalnya dalam kasus pelemparan dadu. Secara matematis, fungsi signoid dibentuk oleh:

\[ f(x) = \frac{1}{1 + e^{-x}} \]

Apabila nilai prediksi lebih besar dari ambang batas (misalnya 0.5), maka hasil diklasifikan sebagai 1. Jika kurang dari 0.5, diklasifikan sebagai 0.

Contoh Kasus: Simulasi dan Visualisasi Regresi Logistik

# Simulasi Data untuk Regresi Logistik
set.seed(123)
n <- 200
x <- rnorm(n)
log_odds <- -0.3 + 2 * x
prob <- 1 / (1 + exp(-log_odds))
y <- rbinom(n, 1, prob)

# Data Frame
data <- data.frame(y = y, x = x)

Estimasi Model Regresi Logistik

# Model regresi logistik
model <- glm(y ~ x, data = data, family = binomial)
summary(model)
## 
## Call:
## glm(formula = y ~ x, family = binomial, data = data)
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  -0.4238     0.1796  -2.360   0.0183 *  
## x             1.9081     0.2839   6.721 1.81e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 272.12  on 199  degrees of freedom
## Residual deviance: 191.30  on 198  degrees of freedom
## AIC: 195.3
## 
## Number of Fisher Scoring iterations: 5

Interpretasi:

  • Intercept: nilai log-odds saat x = 0
  • Koefisien x: perubahan log-odds untuk setiap satu satuan peningkatan pada x
  • Nilai p: menunjukkan signifikansi statistik dari prediktor

Koefisien Log-Odds

exp(coef(model))
## (Intercept)           x 
##    0.654584    6.740552

Visualisasi Kurva

# Visualisasi Data
library(ggplot2)
data$pred <- predict(model, type = "response")
ggplot(data, aes(x = x, y = y)) +
geom_point(alpha = 0.5, color = "maroon") +
geom_line(aes(y = pred), color = "violet", linewidth = 1.5) +
labs(title = "Kurva Logit pada Regresi Logistik",
x = "X (Prediktor)",
y = "Probabilitas / Respons") +
theme_minimal()

Evaluasi Model

data$pred_class <- ifelse(data$pred > 0.5, 1, 0)
table(Predicted = data$pred_class, Actual = data$y)
##          Actual
## Predicted  0  1
##         0 96 27
##         1 20 57

Interpretasi:

  • Model Regresi Logistik mampu memprediksi probabilitas berdasarkan hubungan antara variabel \(X\) dan \(Y\).
  • Kurva legit menunjukkan bentuk S yang memisahkan dua kelas secara probabilistik.
  • Koefisien dapat diinterpretasikan dalam bentuk log-odds atau odds ratio.
  • Evaluasi model menunjukkan performa klasifikasi yang baik jika p-value signifikan dan prediksi sesuai dengan observasi.

8.3 Model Regresi Poisson

Regresi Poisson digunakan untuk mengatasi variabel respons adalah data cacah, yaitu bilangan bulat non-negatif. Model ini merupakan bagian dari Generalized Linear Model (GLM) dengan asumsi bahwa variabel respons adalah Distribusi Poisson.

Distribusi Poisson memiliki probabilitas:

\[ P(Y = y) = \frac{e^{-\mu}\mu^y}{y!} \]

Persamaan tersebut dapat dibentuk dalam format exponential family sehingga:

\[ f(y; \lambda) = \exp \left\{ y \log(\lambda) - \lambda - \log(y!) \right\} \]

dengan:

  • \(\theta = \log(\lambda)\)
  • \(b(\theta) = e^\theta = \lambda\)
  • \(\phi = 1\)
  • \(c(y, \phi) = -\log(y!)\)

Maka, distribusi Poisson termasuk dalam exponential family.

8.3.0.2 Estimasi Parameter

Estimasi parameter \(\beta\) dilakukan dengan metode Maximum Likelihood Estimation (MLE). Log-likehood fungsi untuk regresi Poisson sebagai:

\[ l(\beta) = \sum_{i=1}^n \left[ y_i x_i^T \beta - \exp(x_i^T \beta) - \log(y_i!) \right] \]

Nilai \(\beta\) dapat diperoleh melalui metode numerik seperti iterasi Newton-Raphson.

Contoh Kasus: Data Simulasi

Regresi Poisson digunakan untuk memodelkan data cacah. Oleh karena itu, akan digunakan dataset warpbreaks dari R base package yang berisi jumlah patahan benang pada mesin tenun. Secara matematis, dibentuk sebagai berikut:

data("warpbreaks")
head(warpbreaks)
##   breaks wool tension
## 1     26    A       L
## 2     30    A       L
## 3     54    A       L
## 4     25    A       L
## 5     70    A       L
## 6     52    A       L
summary(data)
##        y              x                 pred            pred_class   
##  Min.   :0.00   Min.   :-2.30917   Min.   :0.007923   Min.   :0.000  
##  1st Qu.:0.00   1st Qu.:-0.62576   1st Qu.:0.165511   1st Qu.:0.000  
##  Median :0.00   Median :-0.05874   Median :0.369158   Median :0.000  
##  Mean   :0.42   Mean   :-0.00857   Mean   :0.420000   Mean   :0.385  
##  3rd Qu.:1.00   3rd Qu.: 0.56840   3rd Qu.:0.659434   3rd Qu.:1.000  
##  Max.   :1.00   Max.   : 3.24104   Max.   :0.996861   Max.   :1.000
summary(warpbreaks)
##      breaks      wool   tension
##  Min.   :10.00   A:27   L:18   
##  1st Qu.:18.25   B:27   M:18   
##  Median :26.00          H:18   
##  Mean   :28.15                 
##  3rd Qu.:34.00                 
##  Max.   :70.00
  • Breaks : Jumlah patahan benang (Variabel target)
  • Wool : Tipe wol (A/B)
  • Tension : Tingkat ketegangan (L/M/H)

Permodelan Regresi Poisson

poissonmodel <- glm(breaks ~ wool + tension, data = warpbreaks, family = poisson)
summary(poissonmodel)
## 
## Call:
## glm(formula = breaks ~ wool + tension, family = poisson, data = warpbreaks)
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  3.69196    0.04541  81.302  < 2e-16 ***
## woolB       -0.20599    0.05157  -3.994 6.49e-05 ***
## tensionM    -0.32132    0.06027  -5.332 9.73e-08 ***
## tensionH    -0.51849    0.06396  -8.107 5.21e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 297.37  on 53  degrees of freedom
## Residual deviance: 210.39  on 50  degrees of freedom
## AIC: 493.06
## 
## Number of Fisher Scoring iterations: 4

Interpretasi Koefisien:

  • Intercept: Nilai log dari rata-rata patahan pada referensi (wool A dan tension L)
  • Koefisien wool B: Efek tambahan dari menggunakan wol tipe B
  • Koefisien tension M, tension H: Efek tambahan dari ketegangan M dan H dibandingkan :
exp(coef(poissonmodel))
## (Intercept)       woolB    tensionM    tensionH 
##  40.1235380   0.8138425   0.7251908   0.5954198
  • Berdasarkan hasil perhitungan, didapatkan nilai Intercept sebesar 40.1235380, nilai woolB sebesar 0.8138425, nilai tensionM sebesar 0.7251908, serta nilai tensionH sebesar 0.5954198.
  • Karena semua nilai koefisien (OR) lebih kecil dari 1, maka efek tersebut dapat menurunkan jumlah patahan tersebut.

Visualisasi Prediksi

warpbreaks$predicted <- predict(poissonmodel, type = "response")
library(ggplot2)
ggplot(warpbreaks, aes(x = tension, y = breaks, color = wool)) +
geom_jitter(width = 0.2, alpha = 0.6) +
geom_point(aes(y = predicted), shape = 18, size = 3, color = "maroon") +
facet_wrap(~wool) +
labs(title = "Prediksi Jumlah Patahan Benang berdasarkan Wol dan Ketegangan",
x = "Tingkat Ketegangan",
y = "Jumlah Patahan Benang",
color = "Jenis Wol") +
theme_minimal()

Evaluasi Model

plot(poissonmodel$residuals, main = "Residual Plot", ylab = "Residual", xlab = "Index", pch = 19, col = "purple")

  • Regresi Poisson menunjukkan bahwa jenis wol dan tingkat ketegangan sangat berpengaruh terhadap jumlah patahan benang.
  • Koefisien negatif menunjukkan penurunan rata-rata patahan.
  • Model tersebut dapat digunakan untuk memprediksi jumlah patahan pada kombinasi woll dan tension tertentu.

9 Inferensi GLM

Dalam Generalized Linear Model (GLM), inferensi statistik memberikan pemahaman tentang efek variabel, baik dari distribusi, efek variabel tertentu, Wald test, Likelihood Ratio test maupun interval kepercayaan untuk mengukur tingkat ketidakpastian. Berikut merupakan ekspektasi dan varians dalam GLM:

1. Ekspektasi Estimator

Ekspektasi menunjukkan apakah suatu estimator tak bias, yaitu:

\[ E(\hat{\beta}) = \beta \]

Dalam GLM, MLE dari \(\hat{\beta}\) bersifat asymptotically unbiased

2. Varians Estimator

Varians menunjukkan presisi dari estimasi parameter:

\[ \text{Var}(\hat{\beta}) \approx (X^T W X)^{-1} \]

di mana \(W\) adalah matriks koefisien yang tergantung pada distribusi dan fungsi link.

9.0.0.1 Distribusi Asimptotik Estimator

Dengan ukuran sampel besar:

\[ \hat{\beta} \sim N(\beta, \text{Var}(\hat{\beta})) \]

Maka, distribusi ini adalah dasar dari:

  • Uji Wald
  • Confidence Interval
  • P-value

9.0.0.2 Varians dalam GLM Tidak Konstan

Tidak seperti regresi linier (OLS) yang mengasumsikan homoskedastisitas:

\[ \text{Var}(Y) = \sigma^2 \]

Maka, dalam GLM:

\[ \text{Var}(Y) = \phi V(\mu) \]

dengan:

  • \(\phi\) = parameter dispersi
  • \(V(\mu)\) = fungsi variansi

Contoh Kasus: Regresi Poisson

# Simulasi Data
set.seed(123)
x = rnorm(200)
mu = exp(0.5 + 0.8 + x)
y = rpois(200, mu)
model = glm(y ~ x, family = poisson)

summary(model)
## 
## Call:
## glm(formula = y ~ x, family = poisson)
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  1.33929    0.03912   34.23   <2e-16 ***
## x            0.96247    0.02664   36.13   <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: 1420.02  on 199  degrees of freedom
## Residual deviance:  216.84  on 198  degrees of freedom
## AIC: 822.47
## 
## Number of Fisher Scoring iterations: 5

9.1 Mencari Ekspektasi dan Varians Dalam GLM

9.1.1 Ekspektasi

Jika diturunkan berdasarkan fungsi momen:

\[ E[Y] = \int y f(y; \theta) dy = \mu \]

untuk exponential family:

\[ \log f(y; \theta) = y\theta - b(\theta) + c(y) \]

atau:

\[ \log f(y; \theta) = y\theta - b(\theta) + c(y, \phi) \]

maka turunan pertama:

\[ E[Y] = \frac{\partial b}{\partial \theta} = y - b'(\theta) \]

dan ekspektasi dari turunan pertama:

\[ EY = E[y - b'(\theta)] = y - b'(\theta) = 0 \]

sehingga:

\[ \mu = b'(\theta) \]

9.1.2 Varians

diturunkan pada turunan kedua:

\[ \frac{\partial^2 b}{\partial \theta^2} = -b''(\theta) \]

sehingga:

\[ \text{Var}(Y) = b''(\theta) = \phi V(\mu) \]

9.2 Metode Penaksiran Parameter

Pada Maximum Likelihood Estimation (MLE):

  • Prinsip dasar: Memaksimalkan fungsi likelihood/log-likelihood.

  • Tahapan:

    • Turunan pertama = 0

    • Turunan kedua < 0

Namun, karena bentuk GLM tidak eksplisit, digunakan metode numerik, yaitu Newton-Raphson, di mana:

  • Menggunakan score vector (gradien)
  • Menggunakan Hessian Matrix
  • Menggunakan Iterasi, dengan:

\[ \beta^{(t+1)} = \beta^{(t)} - H^{-1}(\beta^{(t)})U(\beta^{(t)}) \]

Terdapat juga Fisher Scoring sebagai modifikasi Newton-Raphson dengan mengganti Hessian dengan matriks informasi Fisher, serta IRLS (Iteratively Reweighted Least Square) sebagai modifikasi dari Fisher Scoring dengan hasil estimasi yang mirip dengan Least Square.

9.2.0.1 Implementasi Newton-Raphson

Statistik score ke-\(j\):

\[ U_j(\beta) = \frac{\partial \log L(\beta)}{\partial \beta_j} \]

Turunan kedua:

\[ H_{jk}(\beta) = \frac{\partial^2 \log L(\beta)}{\partial \beta_j \partial \beta_k} \]

Taylor expansion:

\[ U(\beta)^T \approx U(\beta) + H(\beta)(\beta^* - \beta) \]

Estimasi parameter:

\[ \hat{\beta} = \beta_0 - H^{-1}(\beta_0) U(\beta_0) \]

9.3 Diagnostik Model GLM

Diagnostik digunakan untuk memvalidasi apakah model sudah tepat.

  • Uji Formal
  • Grafik antara nilai prediksi vs nilai aktual

9.3.0.1 Statistik Devians

  • Mengukur apakah ada model lain yang lebih baik.
  • Nilai devians besar -> model tidak cocok.
  • Devians adalah:

\[ D = -2 \sum \left[ \log \left( \frac{y_i}{\hat{y}_i} \right) - (y_i - \hat{y}_i) \right] \]

  • Devians membandingkan model terhadap saturated model.
  • Jika devians semakin kecil, maka model semakin cocok.

9.3.0.2 Statistik Chi-Kuadrat Pearson

  • Menguji apakah model lebih baik daripada tidak ada model sama sekali.
  • Statistik:

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

  • Jika signifikan, maka model lebih baik daripada tidak ada model sama sekali.

9.3.0.3 Catatan

  • Untuk data yang dikelompokkan, statistik devians dan chi-kuadrat Pearson mengikuti distribusi Chi-Square.
  • Untuk data yang tidak dikelompokkan, maka tidak mengikuti distribusi Chi-Square.
  • Devians diminimalkan oleh MLE -> cocok digunakan untuk evaluasi model.

9.3.0.4 Analisis Residual

  • Residual adalah selisih antara observasi dengan prediksi.
  • Dapat digunakan untuk memeriksa penyimpangan sistematik.
  • Dapat diplot untuk menilai asumsi model.

9.4 Detail Metode Estimasi dan Inferensi Regresi Logistik

Regresi Logistik memanfaatkan metode probabilitas untuk mengestimasi parameter dengan pendekatan Maximum Likelihood Estimation (MLE). Fungsi model logistik adalah sebagai berikut:

\[ \pi(x) = \frac{\exp(\beta_0 + \beta_1 x)}{1 + \exp(\beta_0 + \beta_1 x)} \]

Log-likelihood untuk n observasi:

\[ l(\beta) = \sum_{i=1}^n \left[ y_i \log(\pi_i) + (1 - y_i) \log(1 - \pi_i) \right] \]

9.4.0.1 Estimasi dengan Newton-Raphson

Model log-likelihood untuk probabilitas:

\[ \pi_i = \frac{1}{1 + \exp(-x_i^T \beta)} \]

Log-likelihood untuk observasi:

\[ l(\beta) = \sum_{i=1}^n \left[ y_i \log(\pi_i) + (1 - y_i) \log(1 - \pi_i) \right] \]

9.4.0.2 Langkah-langkah Newton-Raphson

1. Turunan Pertama (Score Function):

\[ U(\beta) = \frac{\partial l(\beta)}{\partial \beta} = X^T (y - \pi) \]

2. Turunan Kedua (Hessian Matrix):

\[ H(\beta) = -X^T W X \]

3. Iterasi Newton-Raphson:

\[ \beta^{(t+1)} = \beta^{(t)} + (X^T W X)^{-1} X^T (y - \pi^{(t)}) \]

9.4.0.3 Inferensi Parameter

1. Uji Wald

Tujuan Uji Wald: Untuk menguji signifikansi parameter \(\beta_j\) dalam permodelan regresi logistik, melalui hipotesis:

  • \(H_0 : \beta_j = 0\)
  • \(H_1 : \beta_j \neq 0\)

Dalam teori estimasi MLE, estimator \(\beta_j\) mendekati distribusi normal:

\[ \hat{\beta}_j \sim N(\beta_j, \text{Var}(\hat{\beta}_j)) \]

Jika \(H_0\) benar (yaitu \(\beta_j = 0\)), maka:

\[ Z = \frac{\hat{\beta}_j}{SE(\hat{\beta}_j)} \sim N(0, 1) \]

Dengan statistik Wald:

\[ W = Z^2 = \left( \frac{\hat{\beta}_j}{SE(\hat{\beta}_j)} \right)^2 \sim \chi^2_1 \]

Simulasi dan Uji Wald dengan Tahapan:

set.seed(123)
n <- 100
x <- rnorm(n)
log_odds <- -0.5 + 1.2 * x
p <- 1 / (1 + exp(-log_odds))
y <- rbinom(n, 1, p)
data <- data.frame(x, y)
model <- glm(y ~ x, data = data, family = binomial)
summary(model)
## 
## Call:
## glm(formula = y ~ x, family = binomial, data = data)
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  -0.3097     0.2296  -1.349    0.177    
## x             1.2663     0.3080   4.111 3.94e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 137.99  on 99  degrees of freedom
## Residual deviance: 114.76  on 98  degrees of freedom
## AIC: 118.76
## 
## Number of Fisher Scoring iterations: 4

Tahapan 1 : Mengambil nilai koefisien dan SE

beta_hat <- coef(model)["x"]
se_beta <- summary(model)$coefficients["x", "Std. Error"]

Tahapan 2 : Menghitung Statistik Z

Z <- beta_hat / se_beta; Z
##        x 
## 4.110965

Tahapan 3 : Menghitung Statistik Wald

Wald_stat <- Z^2; Wald_stat
##        x 
## 16.90003

Tahapan 4 : Menghitung p-value

p_value <- 1 - pchisq(Wald_stat, df = 1); p_value
##            x 
## 3.940095e-05

Interpretasi

Berdasarkan hasil perhitungan, didapatkan nilai p-value sebesar 3.940095e-05. Karena p-value < 0.05, maka koefisien signifikan yang menunjukkan bahwa variabel prediktor berpengaruh.

2. Uji Likelihood Ratio (Chi-square)

Membandingkan model penuh dengan model tanpa prediktor.

# Model null
model_null <- glm(y ~ 1, data = data, family = binomial)

# Likelihood ratio test
anova(model_null, model, test = "Chisq")
## Analysis of Deviance Table
## 
## Model 1: y ~ 1
## Model 2: y ~ x
##   Resid. Df Resid. Dev Df Deviance  Pr(>Chi)    
## 1        99     137.99                          
## 2        98     114.76  1   23.229 1.438e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Evaluasi Kebaikan Model

  1. Akaike Informmation Criterion (AIC) = Semakin kecil AIC, semakin baik model.
AIC(model)
## [1] 118.7598
  1. Bayesian Information Criterion (BIC) = Alternatif terhadap AIC, menghukum kompleksitas model.
BIC(model)
## [1] 123.9701

Interpretasi

  • Estimasi regresi logistik dilakukan dengan MLE melalui iterasi Newton-Raphson.
  • Inferensi Parameter dapat dilakukan dengan uji Wald dan Likelihood ratio (uji Chi-Square).
  • AIC dan BIC digunakan untuk mengevaluasi kompleksitas dan kecocokan model.

9.5 Detail Metode Estimasi dan Inferensi Regresi Poisson

Model Regresi Poisson digunakan untuk memodelkan data count (jumlah kejadian) di mana variabel respons mengikuti distribusi Poisson. Estimasi dilakukan dengan Maximum Likelihood Estimation (MLE), dan inferensi dilakukan dengan uji Wald dan Likelihood Ratio Test.

  • Model Distribusi Poisson:

\[ P(Y_i = y_i) = \frac{e^{-\lambda} \lambda^{y_i}}{y_i!} \]

  • Model Regresi Poisson:

\[ \log(\lambda_i) = x_i^T \beta \]

  • MLE Log-likehood fungsi:

\[ l(\beta) = \sum_{i=1}^n \left[ y_i \log(\lambda_i) - \lambda_i - \log(y_i!) \right] \]

dengan:

\[ \lambda_i = \exp(x_i^T \beta) \]

Estimasi Paramter model regresi Poisson dilakukan dengan MLE menggunakan metode Iteratively Reweighted Least Squares (IRLS) secara manual, hingga konvergen.

Tahap 1 : Definisikan Model Regresi Poisson

\[ \log(\lambda_i) = x_i^T \beta \]

sehingga

\[ \lambda_i = \exp(x_i^T \beta)\ \]

Tahap 2 : Mencari Log-likelihood yang dimaksimalkan

\[ l(\beta) = \sum_{i=1}^n \left[ y_i \log(\lambda_i) - \lambda_i - \log(y_i!) \right] \]

Tahap 3 : Formulasi Iteratif

\[ \beta^{(t+1)} = (X^T W X)^{-1} X^T W z^{(t)} \]

dengan:

  • \(W = \text{diag}(w_i\)
  • \(w_i = \lambda_i\)
  • \(z_i = x_i^T \beta + \frac{y_i - \lambda_i}{\lambda_i}\)

dan

\[ \eta_i = \log(\lambda_i) = x_i^T \beta \]

10 Regresi Logistik dengan Prediktor Nominal, Ordinal, dan Rasio

Regresi Logistik digunakan untuk memodelkan hubungan antara variabel dependen biner (misalnya, 0 atau 1) dengan satu atau lebih variabel independen (prediktor) yang dapat bersifat nominal, ordinal, atau rasio. Dalam penerapannya, prediktor yang digunakan memiliki skala pengukuran berbeda, yaitu:

10.1 Simulasi Data

Misalkan kita membuat dataset simulasi dengan 400 observasi.

n = 400

Jenis_Kelamin = sample(c("Laki-laki", "Wanita"), n, replace=TRUE)
Pendidikan = sample(c("SMA", "Sarjana", "Master", "Doktor"), n, replace=TRUE,
                    prob=c(0.4, 0.3, 0.2, 0.1))
Pendapatan = rnorm(n, mean=50, sd=15)

logit_p = -2 + 0.5 * (Jenis_Kelamin == "Perempuan") + 0.8 * as.numeric(factor(Pendidikan, ordered=TRUE)) + 0.03 * Pendapatan
p = 1/(1+exp(-logit_p))

set.seed(123)
sukses = rbinom(n, 1, p)

sim_data = tibble (sukses, Jenis_Kelamin, Pendidikan, Pendapatan)

head(sim_data)
## # A tibble: 6 × 4
##   sukses Jenis_Kelamin Pendidikan Pendapatan
##    <int> <chr>         <chr>           <dbl>
## 1      1 Wanita        Master           62.7
## 2      1 Wanita        SMA              38.3
## 3      1 Laki-laki     SMA              66.7
## 4      0 Wanita        Master           53.7
## 5      1 Laki-laki     SMA              74.8
## 6      1 Laki-laki     Sarjana          28.1

Interpretasi: Dataset yang berisi 400 observasi dengan variabel Jenis Kelamin, Pendidikan, Pendapatan, dan Status Keberhasilan.

10.2 Eksplorasi Data

sim_data %>%
  dplyr::group_by(sukses) %>%
  dplyr::summarise(
    Jumlah = dplyr::n(),
    Mean_Pendapatan = mean(Pendapatan)
  )
## # A tibble: 2 × 3
##   sukses Jumlah Mean_Pendapatan
##    <int>  <int>           <dbl>
## 1      0     69            43.9
## 2      1    331            51.5

Interpretasi: Distribusi jumlah sukses dan gagal, serta rata-rata pendapatan pada masing-masing kelompok.

10.3 Perlakuan Variabel Ordinal

10.3.1 Treat sebagai Nominal (Dummy)

sim_data_nominal = sim_data %>%
  mutate(
    Pendidikan = factor(Pendidikan, levels = c("SMA", "Sarjana", "Master", "Doktor"))
  )

model_nominal = glm(sukses ~ Jenis_Kelamin + Pendidikan + Pendapatan,
                    data = sim_data_nominal,
                    family = binomial)
summary(model_nominal)
## 
## Call:
## glm(formula = sukses ~ Jenis_Kelamin + Pendidikan + Pendapatan, 
##     family = binomial, data = sim_data_nominal)
## 
## Coefficients:
##                      Estimate Std. Error z value Pr(>|z|)    
## (Intercept)          0.990246   0.530460   1.867 0.061934 .  
## Jenis_KelaminWanita -0.490160   0.287342  -1.706 0.088037 .  
## PendidikanSarjana   -0.680859   0.383749  -1.774 0.076025 .  
## PendidikanMaster    -1.525646   0.385588  -3.957 7.60e-05 ***
## PendidikanDoktor    -1.971174   0.491024  -4.014 5.96e-05 ***
## Pendapatan           0.035027   0.009606   3.646 0.000266 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 367.86  on 399  degrees of freedom
## Residual deviance: 325.14  on 394  degrees of freedom
## AIC: 337.14
## 
## Number of Fisher Scoring iterations: 5

Keterangan: Model ini menggunakan Pendidikan sebagai variabel dummy, dengan baseline “SMA”. Setiap koefisien membandingkan kategori terhadap baseline.

Interpretasi Koefisien

  • Intercept (-0.299)

Nilai intercept dalam analisis regresi logistik ini menunjukkan log-odds dasar sebesar -0.2990 ketika semua variabel prediktor bernilai nol. Ini merupakan titik awal prediksi probabilitas keberhasilan sebelum mempertimbangkan pengaruh variabel lain seperti jenis kelamin atau pendidikan. Nilai negatif ini mengindikasikan bahwa tanpa adanya pengaruh dari variabel independen, peluang keberhasilan cenderung rendah, meskipun interpretasi lebih lanjut perlu melihat konteks data secara keseluruhan.

  • Jenis_KelaminWanita (+0.31206)

Variabel ini menunjukkan bahwa menjadi perempuan memiliki efek menurunkan log-odds keberhasilan sebesar 0.3120, dengan tingkat signifikansi p < 0.05. Artinya, ada bukti statistik yang cukup kuat bahwa jenis kelamin perempuan memiliki pengaruh negatif terhadap peluang keberhasilan dibandingkan laki-laki (yang menjadi acuan). Namun, besarnya efek ini relatif kecil, sehingga perlu dilihat bersama faktor lain untuk memahami dampak keseluruhan.

  • PendidikanSarjana (-0.59865)

Variabel ini mengindikasikan bahwa memiliki pendidikan sarjana menurunkan log-odds keberhasilan sebesar 0.5965 dengan signifikansi p < 0.01. Hal ini menunjukkan bahwa dibandingkan dengan kelompok acuan (mungkin tanpa gelar atau pendidikan rendah), sarjana memiliki peluang keberhasilan yang lebih rendah secara statistik signifikan. Fenomena ini mungkin dipengaruhi oleh faktor konteks sosial atau pekerjaan yang tidak tercakup dalam model ini.

  • PendidikanMaster (-1.09430)

Pendidikan master memiliki efek penurunan log-odds sebesar 1.0943 dengan signifikansi p < 0.001. Ini menandakan bahwa dibandingkan kelompok acuan, individu dengan gelar master mengalami penurunan peluang keberhasilan yang lebih besar dan sangat signifikan secara statistik. Efek yang lebih kuat ini bisa mencerminkan dinamika tertentu, seperti ekspektasi karier atau saturasi di lapangan kerja untuk tingkat pendidikan ini.

  • PendidikanDoktor (-1.51256)

Variabel ini menunjukkan penurunan log-odds sebesar 1.5125 dengan signifikansi p < 0.001, menegaskan bahwa pendidikan doktor memiliki pengaruh negatif yang sangat signifikan terhadap peluang keberhasilan dibandingkan kelompok acuan. Besaran efek ini yang paling besar di antara variabel pendidikan menunjukkan bahwa semakin tinggi jenjang pendidikan, semakin rendah peluang keberhasilan, yang mungkin terkait dengan faktor spesifik seperti spesialisasi atau pasar tenaga kerja

  • Pendapatan (0.05196)

Berbeda dengan variabel lain, pendapatan memiliki efek positif dengan peningkatan log-odds sebesar 0.0519 per unit dan signifikansi p < 0.001. Ini berarti setiap kenaikan pendapatan meningkatkan peluang keberhasilan secara signifikan, menunjukkan bahwa aspek ekonomi memainkan peran penting dalam model ini. Efeknya kecil per unit, tetapi akumulasi dapat memberikan dampak besar tergantung pada rentang pendapatan

10.3.2 Treat sebagai Rasio (Numeric Rank)

sim_data_numeric <- sim_data %>%
  mutate(
    Pendidikan_numeric = case_when(
      Pendidikan == "SMA" ~ 1,
      Pendidikan == "Sarjana" ~ 2,
      Pendidikan == "Master" ~ 3,
      Pendidikan == "Doktor" ~ 4
      )
)

model_numeric <- glm(sukses ~ Jenis_Kelamin + Pendidikan + Pendapatan, data = sim_data_numeric, family = binomial)
summary(model_numeric)
## 
## Call:
## glm(formula = sukses ~ Jenis_Kelamin + Pendidikan + Pendapatan, 
##     family = binomial, data = sim_data_numeric)
## 
## Coefficients:
##                      Estimate Std. Error z value Pr(>|z|)    
## (Intercept)         -0.980927   0.609518  -1.609 0.107540    
## Jenis_KelaminWanita -0.490160   0.287342  -1.706 0.088037 .  
## PendidikanMaster     0.445527   0.467886   0.952 0.340989    
## PendidikanSarjana    1.290314   0.465475   2.772 0.005571 ** 
## PendidikanSMA        1.971174   0.491024   4.014 5.96e-05 ***
## Pendapatan           0.035027   0.009606   3.646 0.000266 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 367.86  on 399  degrees of freedom
## Residual deviance: 325.14  on 394  degrees of freedom
## AIC: 337.14
## 
## Number of Fisher Scoring iterations: 5

Interpretasi Model menggunakan Pendidikan sebagai angka bertingkat 1-4. Koefisien Pendidikan_numeric mengukur efek kenaikan satu tingkat pendidikan terhadap peluang sukses.

Perbandingan Model

list(
  AIC_Nominal = AIC(model_nominal),
  AIC_Numeric = AIC(model_numeric)
)
## $AIC_Nominal
## [1] 337.1419
## 
## $AIC_Numeric
## [1] 337.1419

Keterangan: Model dengan nilai AIC lebih kecil lebih disukai.

Interpretasi Koefisien

  • Intercept (-1.81155)

Nilai intercept dalam analisis regresi logistik ini menunjukkan log-odds dasar sebesar -1.81155 ketika semua variabel prediktor bernilai nol. Nilai negatif yang cukup besar ini mengindikasikan bahwa tanpa pengaruh variabel independen, peluang keberhasilan cenderung sangat rendah, sehingga konteks data dan variabel lain perlu dipertimbangkan untuk interpretasi lebih lanjut.

  • Jenis_KelaminWanita (+0.31206)

Variabel ini menunjukkan bahwa menjadi perempuan menurunkan log-odds keberhasilan sebesar 0.31205 dengan signifikansi p < 0.001. Efek ini sangat signifikan secara statistik, menandakan bahwa jenis kelamin perempuan memiliki pengaruh negatif terhadap peluang keberhasilan dibandingkan laki-laki (acuan), meskipun besarnya efek relatif moderat.

  • PendidikanMaster (+0.41825)

Pendidikan master meningkatkan log-odds keberhasilan sebesar 0.41205 dengan signifikansi p < 0.01. Ini menunjukkan bahwa dibandingkan kelompok acuan, individu dengan gelar master memiliki peluang keberhasilan yang lebih tinggi secara signifikan, meskipun efeknya tidak sebesar variabel lain seperti pendapatan.

  • PendidikanSarjana (+0.91391)

Variabel ini mengindikasikan bahwa memiliki pendidikan sarjana meningkatkan log-odds keberhasilan sebesar 0.91391 dengan signifikansi p < 0.001. Efek positif dan sangat signifikan ini menunjukkan bahwa sarjana memiliki peluang keberhasilan yang lebih tinggi dibandingkan kelompok acuan, mungkin mencerminkan keunggulan kompetensi di pasar kerja.

  • PendidikanSMA (1.51256)

Pendidikan SMA menurunkan log-odds kebesaran sebesar 1.51256 dengan signifikansi p < 0.001. Ini menandakan bahwa dibandingkan kelompok acuan, individu dengan pendidikan SMA memiliki peluang keberhasilan yang jauh lebih rendah secara statistik signifikan, yang bisa terkait dengan keterbatasan kualifikasi.

  • Pendapatan (0.05196)

Variabel pendapatan memiliki efek positif dengan peningkatan log-odds sebesar 0.05196 per unit dan signifikansi p < 0.001. Ini menunjukkan bahwa setiap kenaikan pendapatan meningkatkan peluang keberhasilan secara signifikan, dengan efek yang konsisten meskipun kecil per unit, tergantung pada rentang pendapatan.

11 Pemilihan Model Regresi Logistik dan Evaluasi

Model regresi logistik merupakan salah satu metode analisis statistik yang digunakan untuk memprediksi hubungan antara variabel independen (prediktor) dengan variabel dependen yang bersifat kategorikal (biasanya biner). Pendekatan dalam regresi logistik dapat dibagi menjadi dua jenis utama, yaitu pendekatan Confirmatory dan Exploratory.

11.1 Pendekatan Confirmatory dan Exploratory

Dalam analisis regresi logistik, pemilihan model sangat krusial untuk mendapatkan model yang baik dalam memprediksi probabilitas kejadian suatu peristiwa (respon biner) sehingga membutuhkan pendekatan. Berikut merupakan dua pendekatan utama dalam memahami model tersebut:

  1. Confirmatory (Pendekatan Konfirmatori)

Pendekatan Confirmatory dalam regresi logistik dilakukan dengan tujuan untuk menguji hipotesis tertentu terkait pengaruh variabel prediktor terhadap variabel respons. Pendekatan ini berfokus pada pengujian teori yang telah ditentukan sebelumnya, sehingga pemilihan variabel prediktor dilakukan berdasarkan teori atau pengetahuan yang sudah ada.

Karakteristik

Berikut adalah ciri-ciri utama dari pendekatan confirmatory:

  • Berbasis Teori yang Kuat: Pemilihan variabel prediktor didasarkan pada teori atau hipotesis yang telah mapan. Misalnya, jika teori menyatakan bahwa faktor \(x1\) dan \(x2\) memengaruhi variabel respons \(y\), maka hanya variabel tersebut yang dimasukkan dalam model.

  • Pengujian Hipotesis: Tujuan utama pendekatan ini adalah untuk menguji apakah hubungan antara variabel prediktor dan respons sesuai dengan teori. Pengujian dilakukan dengan melihat signifikansi statistik (biasanya menggunakan nilai p-value).

  • Tidak ada Penambahan atau Pengurangan Variabel secara Otomatis: Variabel yang digunakan dalam model telah ditentukan sejak awal, sehingga tidak ada proses seleksi variabel secara otomatis. Hal ini berbeda dengan pendekatan exploratory yang akan dibahas lebih lanjut.

  • Penggunaan Model Likelihood Ratio Test: Dalam pendekatan ini, model dievaluasi menggunakan uji likelihood ratio test untuk membandingkan model yang lebih sederhana dengan model yang lebih kompleks. Rumus dasar likelihood ratio test adalah:

\[ \Lambda = -2 \left( \ln L_{\text{reduced}} - \ln L_{\text{full}} \right) \]

di mana:

  • \(L_{\text{reduced}}\): Likelihood dari model yang lebih sederhana (dengan lebih sedikit prediktor).
  • \(L_{\text{full}}\): Likelihood dari model yang lebih lengkap (dengan semua prediktor)

Statistik uji \(\Lambda\) mengikuti distribusi chi-square \((\chi^2)\) dengan derajat bebas yang sama dengan selisih jumlah parameter antara kedua model.

Contoh Penggunaan

Misalkan kita memiliki model regresi logistik dengan variabel respons \(y\) (biner, misalnya 0 atau 1) dan dua variabel prediktor \(x_1\) dan \(x_2\). Model regresi logistik dapat ditulis sebagai:

\[ \log \left( \frac{P(y=1)}{P(y=0)} \right) = \beta_0 + \beta_1 x_1 + \beta_2 x_2 \]

di mana: - \(\beta_0\): Intercept - \(\beta_1, \beta_2\): Koefisien regresi untuk \(x_1\) dan \(x_2\) - \(P(y=1)\): Probabilitas bahwa \(y=1\)

Dalam pendekatan sebelumnya, kita menguji apakah \(\beta_1\) dan \(\beta_2\) signifikan secara statistik (misalnya dengan p-value < 0.05). Jika ternyata \(\beta_1\) tidak signifikan, kita tetap mempertahankan variabel \(x_1\) dalam model jika teori mendukung keberadaannya, meskipun hasil statistik menunjukkan sebaliknya.

  1. Exploratory (Pendekatan Eksploratori)

Pendekatan Exploratory digunakan ketika peneliti belum memiliki teori yang kuat tentang hubungan antara variabel prediktor dan respons. Pendekatan ini lebih fleksibel dan bertujuan untuk “mengeksplorasi” data guna menemukan kombinasi prediktor terbaik yang dapat menjelaskan variabel respons.

Karakteristik

Berikut adalah ciri-ciri utama dari pendekatan exploratory:

  • Berbasis Data: Pemilihan variabel prediktor dilakukan berdasarkan kriteria statistik, seperti nilai AIC (Akaike Information Criterion), log-likelihood, atau uji signifikansi statistik.

  • Seleksi Variabel Otomatis: Pendekatan ini sering menggunakan metode seleksi variabel seperti:

    • Forward Selection: Memulai dengan model kosong, lalu menambahkan variabel satu per satu berdasarkan kriteria tertentu (misalnya, variabel yang memberikan peningkatan terbesar pada likelihood).

    • Backward Elimination: Memulai dengan model penuh (semua variabel), lalu menghapus variabel satu per satu yang tidak signifikan.

    • Stepwise Selection: Kombinasi dari forward selection dan backward elimination, di mana variabel dapat ditambahkan atau dihapus pada setiap langkah berdasarkan kriteria tertentu.

  • Tujuan Eksplorasi: Pendekatan ini cocok digunakan ketika peneliti ingin menemukan pola atau hubungan baru dalam data tanpa teori yang kuat sebagai dasar.

Contoh Penggunaan

Misalkan kita memiliki data dengan variabel respons \((y)\) dan tiga variabel prediktor \((x_1, x_2, x_3)\). Dalam pendekatan exploratory, kita dapat memulai dengan model penuh:

\[ \log \left( \frac{P(y=1)}{P(y=0)} \right) = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 x_3 \]

Kemudian, kita menggunakan backward elimination untuk menghapus variabel yang tidak signifikan. Misalnya, jika \(\beta_3\) memiliki p-value > 0.05, maka \(x_3\) dihapus dari model, dan model baru menjadi:

\[ \log \left( \frac{P(y=1)}{P(y=0)} \right) = \beta_0 + \beta_1 x_1 + \beta_2 x_2 \]

Proses ini dapat diulang hingga semua variabel yang tersisa signifikan atau hingga kriteria tertentu (misalnya, AIC minimum) tercapai.

  1. Perbandingan Pendekatan Confirmatory dan Exploratory

Pendekatan confirmatory lebih cocok digunakan ketika peneliti memiliki teori yang jelas dan ingin menguji hipotesis tertentu. Sebaliknya, pendekatan exploratory lebih sesuai untuk penelitian yang bersifat eksploratif, di mana tujuannya adalah untuk menemukan pola atau hubungan baru dalam data. Namun, pendekatan exploratory memiliki risiko overfitting jika tidak dilakukan dengan hati-hati, karena pemilihan variabel yang berbasis data dapat menyesuaikan model terlalu erat dengan data yang ada.

Simulasi Data

library(knitr)
library(dplyr)
library(ggplot2)
library(MASS)
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
## 
##     select
library(caret)
## Warning: package 'caret' was built under R version 4.3.3
## Loading required package: lattice
## Warning: package 'lattice' was built under R version 4.3.3
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.3.3
## 
## Attaching package: 'DescTools'
## The following objects are masked from 'package:caret':
## 
##     MAE, RMSE
set.seed(123)
n = 300
x1 = rnorm(n)
x2 = rbinom(n, 1, 0.5)
x3 = rnorm(n)
lin_pred = -0.5 + 1.5 * x1 - 0.7 * x2 + 0.5 * x3
p = 1 / (1 + exp(-lin_pred))
y = rbinom(n, 1, p)
df = data.frame(y = as.factor(y), x1, x2, x3)
head(df)
##   y          x1 x2         x3
## 1 1 -0.56047565  0  1.4304023
## 2 1 -0.23017749  1  1.0466288
## 3 1  1.55870831  0  0.4352889
## 4 0  0.07050839  0  0.7151784
## 5 0  0.12928774  0  0.9171749
## 6 0  1.71506499  1 -2.6609228

Pemilihan Model

Model Full

model_full = glm(y ~ x1 + x2 + x3, data = df, family = binomial)
summary(model_full)
## 
## Call:
## glm(formula = y ~ x1 + x2 + x3, family = binomial, data = df)
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  -0.6715     0.2091  -3.211  0.00132 ** 
## x1            1.4618     0.2037   7.177 7.10e-13 ***
## x2           -0.6194     0.2999  -2.065  0.03891 *  
## x3            0.9034     0.1757   5.141 2.73e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 387.22  on 299  degrees of freedom
## Residual deviance: 276.53  on 296  degrees of freedom
## AIC: 284.53
## 
## Number of Fisher Scoring iterations: 5

Berdasarkan hasil model regresi logistik binomial, terlihat pada intercept dan variabel \(x_1, x_2, x_3\) menunjukkan pengaruh yang signifikan terhadap variabel respon \(y\). Koefisien negatif pada \(x_1\) dan \(x_2\) serta positif pada \(x_3\) menandakan arah hubungan yang berbeda dengan \(y\), dengan semua variabel memiliki nilai p-value kecil yang menunjukkan pengaruh statistik yang kuat. Nilai residual deviance yang lebih rendah dibandingkan null deviance menunjukkan model ini cukup baik dalam menjelaskan data, didukung oleh nilai AIC yang menunjukkan kebaikan keseluruhan model setelah penyesuaian.

11.2 Metode Stepwise: Forward, Backward, dan Kedua Arah

null_model = glm(y ~ 1, data = df, family = binomial)
step_forward = step(null_model, direction = "forward",
                    scope = formula(model_full), trace = FALSE)
step_backward = step(model_full, direction = "backward", trace = FALSE)
step_both = step(null_model, direction = "both",
                 scope = formula(model_full), trace = FALSE)
AIC(model_full, step_forward, step_backward, step_both)
##               df      AIC
## model_full     4 284.5334
## step_forward   4 284.5334
## step_backward  4 284.5334
## step_both      4 284.5334

11.3 Evaluasi Model: ROC dan AUC

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
pred_prob = predict(step_both, type = "response")
roc_obj = roc(df$y, pred_prob)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
plot(roc_obj, main = "Kurva ROC", col = "red")

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

Berdasarkan kurva ROC yang ditamppilkan, terlihat bahwa grafik menunjukkan hubungan antara sensitivitas dan spesifisitas model, dengan kurva berwarna merah yang menunjukkan performa klasifikasi. Kurva yang naik tajam menuju sudut kiri atas menunjukkan kemampuan model yang baik dalam membedakan kelas positif dan negatif. Area di bawah kurva sebesar 0.8467, menunjukkan akurasi model yang cukup tinggi sehingga model memiliki kemampuan prediksi yang baik.

11.4 Pseudo R-Squared

PseudoR2(step_both, which = c("CoxSnell", "Nagelkerke", "McFadden"))
##   CoxSnell Nagelkerke   McFadden 
##  0.3085327  0.4256055  0.2858406

Pada hasil pseudo R-squared, model menunjukkan ketiga ukuran kebaikan model: CoxSnell (0.3085327), Nagelkerke (0.4256055), dan McFadden (0.2858406). Nilai CoxSnell dan Nagelkerke yang lebih tinggi menunjukkan proporsi variabilitas yang dijelaskan oleh model relatif baik, dengan Nagelkerke memberikan penyesuaian maksimum mendekati 1. Nilai McFadden, meskipun lebih rendah, tetap mengindikasikan kontribusi model yang signifikan terhadap data, menandakan model ini cukup efektif dalam menjelaskan hubungan yang diamati.

11.5 Tabel Klasifikasi dan Evaluasi

pred_class <- ifelse(pred_prob >= 0.5, 1, 0)
conf_matrix <- confusionMatrix(factor(pred_class), df$y, positive = "1")
conf_matrix
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1
##          0 173  47
##          1  23  57
##                                           
##                Accuracy : 0.7667          
##                  95% CI : (0.7146, 0.8134)
##     No Information Rate : 0.6533          
##     P-Value [Acc > NIR] : 1.404e-05       
##                                           
##                   Kappa : 0.4554          
##                                           
##  Mcnemar's Test P-Value : 0.005977        
##                                           
##             Sensitivity : 0.5481          
##             Specificity : 0.8827          
##          Pos Pred Value : 0.7125          
##          Neg Pred Value : 0.7864          
##              Prevalence : 0.3467          
##          Detection Rate : 0.1900          
##    Detection Prevalence : 0.2667          
##       Balanced Accuracy : 0.7154          
##                                           
##        'Positive' Class : 1               
## 
conf_matrix$byClass[c("Sensitivity", "Specificity")]
## Sensitivity Specificity 
##   0.5480769   0.8826531

Berdasarkan confusion matriks, model menunjukkan akurasi yang cukup tinggi dengan nilai kappa yang menunjukkan kesepakatan di atas rata-rata, didukung oleh p-value yang tidak signifikan pada uji McNemar, menegaskan konsistensi prediksi. Sensitivitas dan spesifisitas yang baik mengindikasikan kemampuan model dalam mengenali kelas positif dan negatif, dengan nilai prediksi positif dan negatif yang seimbang.

11.6 Metode Perbandingan Model dalam Regresi Logistik

Tujuan

Menyajikan cara membandingkan model regresi logistik menggunakan ukuran:

  • Deviance

  • AIC (Akaike Information Criterion)

  • Likelihood-Ratio

serta menjelaskan prinsip Parsimony dalam pemilihan model.

library(MASS)
library(broom)
## Warning: package 'broom' was built under R version 4.3.3
library(DescTools)
set.seed(123)

Simulasi Data

n <- 200
x1 <- rnorm(n)
x2 <- rbinom(n, 1, 0.5)
x3 <- rnorm(n)
lin_pred <- -1 + 1.2 * x1 - 0.6 * x2 + 0.8 * x3
p <- 1 / (1 + exp(-lin_pred))
y <- rbinom(n, 1, p)
data <- data.frame(y = as.factor(y), x1, x2, x3); head(data)
##   y          x1 x2         x3
## 1 0 -0.56047565  1 -0.7152422
## 2 0 -0.23017749  0 -0.7526890
## 3 0  1.55870831  1 -0.9385387
## 4 0  0.07050839  1 -1.0525133
## 5 1  0.12928774  0 -0.4371595
## 6 1  1.71506499  0  0.3311792

Pembuatan Model

model1 <- glm(y ~ x1, data = data, family = binomial)
model2 <- glm(y ~ x1 + x2, data = data, family = binomial)
model3 <- glm(y ~ x1 + x2 + x3, data = data, family = binomial)

Perbandingan AIC dan Deviance

model_comp <- data.frame(
  Model = c("Model 1", "Model 2", "Model 3"),
  AIC = c(AIC(model1), AIC(model2), AIC(model3)),
  Deviance = c(deviance(model1), deviance(model2), deviance(model3))
)
model_comp
##     Model      AIC Deviance
## 1 Model 1 199.9136 195.9136
## 2 Model 2 201.7133 195.7133
## 3 Model 3 186.5407 178.5407

Berdasarkan perbandingan AIC dan Deviance, model 3 menunjukkan nilai AIC dan Deviance terendah dibandingkan model 1 dan model 2, yang menunjukkan bahwa model 3 memiliki keseluruhan kebaikan yang lebih baik dan mampu menjelaskan data dengan lebih efisien. Penurunan nilai Deviance dari model 1 ke model 3 mencerminkan peningkatan kecocokan model, sementara AIC yang lebih rendah pada model 3 menunjukkan keseimbangan yang optimal antara kompleksitas dan akurasi, sesuai degan prinsip Parsimony.

11.7 Likelihood-Ratio Test

anova(model1, model2, test = "LRT")
## Analysis of Deviance Table
## 
## Model 1: y ~ x1
## Model 2: y ~ x1 + x2
##   Resid. Df Resid. Dev Df Deviance Pr(>Chi)
## 1       198     195.91                     
## 2       197     195.71  1  0.20031   0.6545

Berdasarkan output uji Likelihood Ratio Test (LRT), penambahan variabel \(x_2\) ke model tidak memberikan peningkatan signifikan terhadap model awal (p-value = 0.6545 > 0.05). Dengan demikian, \(x_2\) tidak berkontribusi signifikan dalam menjelaskan variabel respon \(y\) setelah mempertimbangkan \(x_1\).

anova(model2, model3, test = "LRT")
## Analysis of Deviance Table
## 
## Model 1: y ~ x1 + x2
## Model 2: y ~ x1 + x2 + x3
##   Resid. Df Resid. Dev Df Deviance  Pr(>Chi)    
## 1       197     195.71                          
## 2       196     178.54  1   17.172 3.413e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan output uji LRT, penambahan variabel \(x_3\) ke model secara signifikan meningkatkan model (p-value = 3.41e-05 < 0.001). Artinya, \(x_3\) berkontribusi signifikan dalam menjelaskan variabel respon \(y\) setelah mempertimbangkan \(x_1\) dan \(x_2\).

11.8 Prinisp Parsimony

Model yang lebih kompleks sering kali memiliki AIC dan deviansi yang lebih kecil. Namun, model sederhana bisa lebih disukai karena mengurangi risiko overfitting. Prinsip ini menekankan pentingnya memilih model sederhana yang signifikan berdasarkan AIC, yang mencerminkan keseimbangan antara kesesuaian dan kesederhanaan.

Rumus dan Penjelasan

Rumus AIC

\[ AIC = -2(\log L - k) = -2\log L + 2k \]

Penjelasan: AIC adalah ukuran yang menggabungkan keseimbangan antara kecocokan model (melalui log-likelihood) dan kompleksitas (melalui jumlah parameter \(k\)). Semakin kecil nilai AIC, semakin baik model tersebut, meskipun AIC juga mempertimbangkan penalti untuk model yang terlalu rumit.

Rumus Deviance

\[ D = -2 [\log L(\text{model}) - \log L(\text{model saturasi})] \]

Penjelasan: Deviance mengukur seberapa jauh model saat ini dibandingkan dengan model sempurna (model saturasi). Nilai deviansi yang kecil menunjukkan model memberikan prediksi yang mendekati data aktual.

Rumus Likelihood-Ratio

\[ G^2 = -2(\log L_0 - \log L_1) \]

Penjelasan: Statistik Likelihood-Ratio digunakan untuk menguji apakah penambahan variabel dalam model secara signifikan meningkatkan kecocokan model. Jika $G^2 besar dan p-value kecil, maka model kompleks lebih baik secara statistik dibandingkan model sederhana.

11.9 Evaluasi Tabel Klasifikasi dan Akurasi Model

pred_prob <- predict(model3, type = "response")
pred_class <- factor(ifelse(pred_prob >= 0.5, 1, 0))
conf_matrix <- confusionMatrix(pred_class, data$y, positive = "1")
conf_matrix
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction   0   1
##          0 133  28
##          1  14  25
##                                           
##                Accuracy : 0.79            
##                  95% CI : (0.7269, 0.8443)
##     No Information Rate : 0.735           
##     P-Value [Acc > NIR] : 0.04377         
##                                           
##                   Kappa : 0.4112          
##                                           
##  Mcnemar's Test P-Value : 0.04486         
##                                           
##             Sensitivity : 0.4717          
##             Specificity : 0.9048          
##          Pos Pred Value : 0.6410          
##          Neg Pred Value : 0.8261          
##              Prevalence : 0.2650          
##          Detection Rate : 0.1250          
##    Detection Prevalence : 0.1950          
##       Balanced Accuracy : 0.6882          
##                                           
##        'Positive' Class : 1               
## 

Berdasarkan confusion matrix, model menunjukkan akurasi yang cukup tinggi dengan interval kepercayaan yang sempit, menandakan konsistensi performa. Nilai kappa yang positif menunjukkan kesepakatan di atas kebetulan, didukung oleh p-value uji McNemar yang tidak signifikan, mengindikasikan konsistensi prediksi. Sensitivitas dan spesifisitas yang seimbang mencerminkan kemampuan model dalam mengenali kedua kelas dengan baik, dengan nilai prediksi positif dan negatif yang solid.

Sensitivitas dan Spesifisitas

  • Sensitivitas: Kemampuan model mendeteksi kelas positif secara benar (True Positive Rate)

\[ \text{Sensitivitas} = \frac{TP}{TP + FN} \]

  • Spessifisitas: Kemampuan model mendeteksi kelas negatif secara benar (True Negative Rate)

\[ \text{Spesifisitas} = \frac{TN}{TN + FP} \]

conf_matrix$byClass[c("Sensitivity", "Specificity")]
## Sensitivity Specificity 
##   0.4716981   0.9047619

Kesimpulan

  • Deviance yang kecil menunjukkan kecocokan model yang lebih baik

  • AIC yang rendah menunjukkan keseimbangan antara kecocokan dan kompleksitas

  • Likelihood Ratio Test mengevaluasi apakah model kompleks secara signifikan lebih baik

  • Tabel Klasifikasi membantu dalam menilai kinerja prediksi aktual vs prediksi model

  • Prinsip Parsimony mengutamakan model sederhana jika performanya mirip

11.10 Penjelasan Kurva ROC (Receiver Operating Characteristic)

Kurva ROC menggambarkan trade-off antara True Positive Rate (Sensitivitas) dan False Positive Rate (1 - Spesifisitas) untuk mengevaluasi performa model klasifikasi biner.

1. Definisi

  • Sumbu Y: Sensitivity = True Positive Rate = TP / (TP + FN)

  • Sumbu X: 1 - Specifcity = False Positive Rate = FP / (FP + TN)

  • Garis diagonal (dari kiri bawah ke kanan atas) menunjukkan performa acak (random guess).

  • Kurva yang mendekati pojok kiri atas menunjukkan performa klasifkasi yang lebih baik.

2. Cut-off dan Pergerakan Kurva

Saat cut-of menurun, model mengklasifkasikan lebih banyak pengamatan sebagai positif:

  • Sensitivitas naik

  • Spesifsitas turun

Saat cut-of naik, model menjadi lebih konservatif:

  • Sensitivitas turun

  • Spesifsitas naik

3. Kurva ROC Ideal

Kurva ideal memiliki bentuk:

  • Naik tajam secara vertikal hingga mencapai sensitivitas = 1

  • Lalu bergerak secara horizontal menuju 1 - specifcity = 1

  • Area under the curve (AUC) mendekati 1

4. Interpretasi Luar Area (AUC)

  • AUC = 0.5; menunjukkan bahwa model tidak lebih baik dari tebak acak

  • AUC > 0.7; menunjukkan model cukup baik

  • AUC > 0.9; menunjukkan model sangat baik

  • AUC dikenal juga sebagai concordance index, yaitu probabilitas bahwa model memberikan nilai skor probabilitas yang lebih tinggi untuk kasus positif daripada kasus negatif.

5. Kegunaan Kurva ROC

  • Untuk membandingkan performa beberapa model klasifkasi

  • Untuk memilih threshold (cut-of) optimal berdasarkan kebutuhan aplikasi (misalnya: lebih penting menghindari false negative atau false positive?)

6. Visualisasi dalam R

Kurva ROC dapat dibuat menggunakan package pROC:

library(pROC)
set.seed(123)

# Banyak Data
n <- 150

# Pemisalan Data
x1 <- rnorm(n)
x2 <- rbinom(n, 1, 0.5)
x3 <- rnorm(n)
lin_pred <- -1 + 1.5 * x1 - 0.7 * x2 + 0.6 * x3
p <- 1 / (1 + exp(-lin_pred))
y <- rbinom(n, 1, p)
data <- data.frame(y = as.factor(y), x1, x2, x3)
model <- glm(y ~ x1 + x2 + x3, data = data, family = binomial)
pred <- predict(model, type = "response")
roc_obj <- roc(data$y, pred)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
plot(roc_obj, col="blue")

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

Berdasarkan kurva ROC yang ditampilkan, rafik dengan warna biru menunjukkan hubungan antara sensitivitas dan spesifisitas model, dengan kurva yang naik tajam menuju sudut kiri atas, mengindikasikan performa klasifikasi yang baik. Area di bawah kurva (AUC) sebesar 0.8937 mencerminkan akurasi model yang tinggi, menunjukkan kemampuan yang sangat baik dalam membedakan kelas positif dan negatif, mendekati performa ideal.

7. Simulasi Pemilihan Threshold Optimal

Untuk memilih threshold terbaik, dapat mengevaluasi sensitivitas dan spesifisitas pada berbagai cut-off.

thresholds <- seq(0.1, 0.9, by = 0.05)
results <- data.frame(Threshold = thresholds)
results$Sensitivity <- sapply(thresholds, function(t) {
  pred_class <- ifelse(pred >= t, 1, 0)
  cm <- table(Pred = pred_class, Obs = data$y)
  TP <- cm["1", "1"]
  FN <- cm["0", "1"]
  TP / (TP + FN)
})

results$Specificity <- sapply(thresholds, function(t) {
  pred_class <- ifelse(pred >= t, 1, 0)
  cm <- table(Pred = pred_class, Obs = data$y)
  TN <- cm["0", "0"]
  FP <- cm["1", "0"]
  TN / (TN + FP)
})

print(results)
##    Threshold Sensitivity Specificity
## 1       0.10   0.9210526   0.5267857
## 2       0.15   0.8947368   0.6250000
## 3       0.20   0.8947368   0.7142857
## 4       0.25   0.8157895   0.7678571
## 5       0.30   0.7105263   0.8125000
## 6       0.35   0.6315789   0.8482143
## 7       0.40   0.6052632   0.8839286
## 8       0.45   0.5526316   0.9196429
## 9       0.50   0.4736842   0.9375000
## 10      0.55   0.4473684   0.9642857
## 11      0.60   0.3947368   0.9732143
## 12      0.65   0.3421053   0.9732143
## 13      0.70   0.2631579   0.9732143
## 14      0.75   0.2368421   0.9732143
## 15      0.80   0.2368421   0.9910714
## 16      0.85   0.2105263   1.0000000
## 17      0.90   0.1842105   1.0000000

Cut-off optimal dapat dipilih berdasarkan Maksimum dari Sensitivity + Specificity atau mempertimbangkan trade-off sesuai tujuan aplikasi.

11.11 Precision-Recall Curve (PR Curve)

Kurva Precision-Recall (PR) adalah alat evaluasi performa model klasifikasi, khususnya sangat berguna saat bekerja dengan data yang tidak seimbang.

1. Definisi

  • Precision: Proporsi prediksi positif yang benar-benar positif

\[ \text{Precision} = \frac{TP}{TP + FP} \]

  • Recall: Proporsi kasus positif yang berhasil diprediksi positif

\[ \text{Recall} = \frac{TP}{TP + FN} \]

2. Interpretasi

  • PR Curve menunjukkan bagaimmana presisi berubah saat recall meningkat

  • Idealnya, diinginkan nilai presisi dan recall keduanya tinggi, tetapi biasanya ada trade-off

  • Model dengan performa baik memiliki PR Curve yang melengkung ke pojok kanan atas

3. Area Under PR Curve

  • Luas kurva (AUPRC) mendekati 1; menunjukkan bahwa model sangat baik

  • Baseline AUPRC = prevalensi kelas positif dalam data.

4. PR Curve vs ROC Curve

Aspek PR Curve ROC Cruve
Fokus Semua kelas Kelas positif saja
Kuat di Data seimbang Data tidak seimbang
Sumbu Y Sensitivitas Precision
Sumbu X 1 - Spesifisitas Recall

5. Visualisasi PR Curve di R

library(PRROC)
## Warning: package 'PRROC' was built under R version 4.3.3
## Loading required package: rlang
## Warning: package 'rlang' was built under R version 4.3.3
set.seed(123)

x1 <- rnorm(200)
x2 <- rbinom(200, 1, 0.5)
x3 <- rnorm(200)

lin_pred <- -1 + 1.5 * x1 - 0.7 * x2 + 0.6 * x3
p <- 1 / (1 + exp(-lin_pred))
y <- rbinom(200, 1, p)
data <- data.frame(y = y, x1, x2, x3)
model <- glm(y ~ x1 + x2 + x3, data = data, family = binomial)
prob <- predict(model, type = "response")

pr <- pr.curve(scores.class0 = prob[data$y == 1],
               scores.class1 = prob[data$y == 0],
               curve = TRUE)

plot(pr)

Berdasarkan kurva PR (Precision-Recall) yang ditampilkan, grafik menunjukkan hubungan antara presisi dan recall model, dengan kurva yang menurun seiring peningkatan recall, mengindikasikan trade-off yang wajar. Area di bawah kurva (AUC) sebesar 0.676785 menunjukkan performa model yang sedang, dengan kemampuan yang cukup baik dalam menjaga keseimbangan antara presisi dan recall.

6. Catatan

  • PR Curve sangat informatif untuk aplikasi seperti deteksi penipuan atau diagnosis penyakit langka.

  • Gunakan PR Curve saat:

    • Kelas positif jauh lebih jarang daripada kelas negatif

    • Tujuan aplikasi lebih mementingkan presisi terhadap kelas minoritas

11.12 Pseudo R-squared pada Regresi Logistik

Tujuannya adalah untuk menjelaskan dan menghitung pseudo R-squared dalam regresi logistik:

  • \(R^2_{\text{Cox and Snell}}\)

  • \(R^2_{\text{McFadden}}\)

Simulasi Data

set.seed(123)
n <- 200
x1 <- rnorm(n)
x2 <- rbinom(n, 1, 0.5)
x3 <- rnorm(n)
lin_pred <- -1 + 1.2 * x1 - 0.6 * x2 + 0.8 * x3

p <- 1 / (1 + exp(-lin_pred))
y <- rbinom(n, 1, p)
data <- data.frame(y = as.factor(y), x1, x2, x3); head(data)
##   y          x1 x2         x3
## 1 0 -0.56047565  1 -0.7152422
## 2 0 -0.23017749  0 -0.7526890
## 3 0  1.55870831  1 -0.9385387
## 4 0  0.07050839  1 -1.0525133
## 5 1  0.12928774  0 -0.4371595
## 6 1  1.71506499  0  0.3311792

Model Logistik dan Null Model

model <- glm(y ~ x1 + x2 + x3, data = data, family = binomial); model
## 
## Call:  glm(formula = y ~ x1 + x2 + x3, family = binomial, data = data)
## 
## Coefficients:
## (Intercept)           x1           x2           x3  
##    -1.37451      1.32300     -0.07823      0.77582  
## 
## Degrees of Freedom: 199 Total (i.e. Null);  196 Residual
## Null Deviance:       231.3 
## Residual Deviance: 178.5     AIC: 186.5

Berdasarkan hasil model regresi logistik binomial, intersep menunjukkan efek awal yang signifikan, sementara variabel \(x_1\), \(x_2\), dan \(x_3\) memiliki kontribusi yang bervariasi terhadap respons \(y\), dengan \(x_1\) menunjukkan pengaruh positif yang kuat dan \(x_2\) serta \(x_3\) memiliki efek yang lebih kecil. Nilai residual deviance yang lebih rendah dibandingkan null deviance mengindikasikan model ini cukup baik dalam menjelaskan data, didukung oleh AIC yang menunjukkan keseimbangan yang memadai antara kecocokan dan kompleksitas.

model_null <- glm(y ~ 1, data = data, family = binomial); model_null
## 
## Call:  glm(formula = y ~ 1, family = binomial, data = data)
## 
## Coefficients:
## (Intercept)  
##       -1.02  
## 
## Degrees of Freedom: 199 Total (i.e. Null);  199 Residual
## Null Deviance:       231.3 
## Residual Deviance: 231.3     AIC: 233.3

Berdasarkan hasil model null regresi logistik binomial, intersep menunjukkan efek awal yang signifikan tanpa mempertimbangkan variabel prediktor lain. Nilai null deviance dan residual deviance yang sama mengindikasikan model ini tidak menjelaskan variabilitas data, dengan AIC yang mencerminkan keadaan baseline tanpa penyesuaian tambahan, menunjukkan keterbatasan model dalam memprediksi respons \(y\).

Likelihood dan Rumus

  • \(R^2\) Cox and Snell

\[ R^2_{Cox and Snell} = 1 - \left(\frac{L_0}{L_M}\right)^{2/n} \]

  • \(R^2\) McFadden

\[ R^2_{McFadden} = 1 - \frac{\log L_M}{\log L_0} \]

dengan:

  • \(L_0\): likelihood model null (tanpa prediktor)

  • \(L_M\): likelihood model penuh

Perhitungan Manual R-Squared

logL0 <- logLik(model_null)
logLM <- logLik(model)
L0 <- exp(logL0)
LM <- exp(logLM)

n <- nobs(model)

cox_snell <- 1 - (L0 / LM)^(2 / n)
mcfadden <- 1 - (as.numeric(logLM) / as.numeric(logL0))

r2 <- data.frame(
  R2_Cox_Snell = cox_snell,
  R2_McFadden = mcfadden
)

r2
##   R2_Cox_Snell R2_McFadden
## 1    0.2318271   0.2280616

Perhitungan Otomatis

Menggunakan pscl

if (!require(pscl)) install.packages("pscl"); library(pscl)
## Loading required package: pscl
## Warning: package 'pscl' was built under R version 4.3.3
## Classes and Methods for R originally developed in the
## Political Science Computational Laboratory
## Department of Political Science
## Stanford University (2002-2015),
## by and under the direction of Simon Jackman.
## hurdle and zeroinfl functions by Achim Zeileis.
pR2(model)
## fitting null model for pseudo-r2
##          llh      llhNull           G2     McFadden         r2ML         r2CU 
##  -89.2703659 -115.6444116   52.7480914    0.2280616    0.2318271    0.3382377

Menggunakan DescTools

if (!require(DescTools)) install.packages("DescTools"); library(DescTools)
PseudoR2(model, which = "all")
##        McFadden     McFaddenAdj        CoxSnell      Nagelkerke   AldrichNelson 
##       0.2280616       0.1934728       0.2318271       0.3382377       0.2086983 
## VeallZimmermann           Efron McKelveyZavoina            Tjur             AIC 
##       0.3891638       0.2580563       0.3768188       0.2583411     186.5407319 
##             BIC          logLik         logLik0              G2 
##     199.7340013     -89.2703659    -115.6444116      52.7480914

Interpretasi

  • Nilai \(R^2\) mendekati 1; menunjukkan model memiliki kekuatan prediktif yang baik.

  • McFadden \(R^2\) > 0.2 sering dianggap sebagai model dengan kecocokan yang baik.

  • Cox & Shell \(R^2\) lebih konservatif dan tidak pernah mencapai 1 penuh.

12 Distribusi Multinomial

Distribusi multinomial adalah perluasan dari distribusi binomial yang lebih dari dua kategori.

Jika \(X_1, X_2, ..., X_k\) menyatakan banyaknya kejadian dalam masing-masing dari \(k\) kategori, maka:

\[ P(X_i = x_1, \ldots, X_n = x_n) = \frac{n!}{x_1! \cdot x_2! \cdot \ldots \cdot x_n!} p_1^{x_1} p_2^{x_2} \cdot \ldots \cdot p_n^{x_n} \]

dengan \(\sum_{i=1}^k x_i = n\) dan \(\sum_{i=1}^k p_i = 1\).

12.1 Studi Kasus

Sebuah survei dilakukan terhadap 20 orang yang diminta memilih satu dari tiga fakultas favorit: Kedokteran (FK), Hukum (FH), dan Psikologi (FPsi).

Hasil survei:

  • Kedokteran: 8 orang

  • Hukum: 6 orang

  • Psikologi: 6 orang

Probabilitas teoretik preferensi:

  • \(p_{FK} = \frac{8}{20} = 0.4\)

  • \(p_{FH} = \frac{6}{20} = 0.3\)

  • \(p_{FPsi} = \frac{6}{20} = 0.3\)

Pertanyaannya adalah, berapa peluang bahwa dalam 20 orang akan ada 8 orang yang memilih Kedokteran, 6 orang memilih Hukum, dan 6 orang memilih Psikologi?

Rumus Distribusi Peluang Multinomial

\[ P(X_i = x_1, \ldots, X_n = x_n) = \frac{n!}{x_1! \cdot x_2! \cdot \ldots \cdot x_n!} p_1^{x_1} p_2^{x_2} \cdot \ldots \cdot p_n^{x_n} \]

dengan:

  • \(n = 20, x_1 = 8, x_2 = 6, x_3 = 6\)

  • \(p_{FK} = 0.4, p_{FH} = 0.3, p_{FPsi} = 0.3\)

Perhitungan Manual di R

n <- 20
x <- c(8, 6, 6)
p <- c(0.4, 0.3, 0.3)

# Komponen Koefisien
faktorial_total <- factorial(n)
faktorial_x <- prod(factorial(x))
koefisien <- faktorial_total / faktorial_x

# Hitung peluang
peluang <- koefisien * prod(p^x)
peluang
## [1] 0.0405391

Interpretasi:

Probabilitas bahwa 8 orang yang memilih Fakultas Kedokteran, 6 orang yang memilih Fakultas Hukum, dan 6 orang yang memilih Fakultas Psikologi (dengan proporsi preferensi 0.4, 0.3, dan 0.3) adalah 0.0405391. Distribusi multinomial digunakan untuk menghitung peluang dalam percobaan dalam beberapa kategori hasil. Rumus dasarnya merupakan perluasan dari distribusi binomial untuk lebih dari dua kategori.

12.2 Multinomial Logistic Regression

Model ini digunakan untuk memodelkan hubungan antara satu variabel respon kategorik (>2 kategori) dan satu atau lebih variabel prediktor. Misalkan \(Y\) memiliki \(K\) kategori, dan akan dipilih referensi kategori \(K\), maka model logit untuk kategori \(j\) adalah:

\[ \log \left( \frac{P(Y = j)}{P(Y = K)} \right) = \beta_{j0} + \beta_{j1}x_1 + \cdots + \beta_{jp}x_p \]

di mana \(j = 1, 2, \ldots, K-1\).

12.2.1 Baseline-category Logit Model

Pendekatan ini menggunakan model regresi logistik untuk variabel respons kategorikal dengan banyak kategori. Model ini menghitung logit setiap kategori dibandingkan dengan kategori acuan yang dipilih (baseline), di mana kategori acuan jadi patokan buat semua kategori lainnya.

Persamaan logit-nya adalah:

\[ \log \left( \frac{\pi_j}{\pi_c} \right), \quad j = 1, \ldots, c-1 \]

di mana:

  • \(\pi_j\) adalah probabilitas respons berada di kategori \(j\),

  • \(\pi_c\) adalah probabilitas respons berada di kategori acuan (baseline).

Catatan Diasumsikan ada \(c - 1\) fungsi logit yang digunakan. Kategori acuan biasanya ditetapkan sebagai kategori default \(R\) kecuali disebutkan lain.

Model Regresi

Jika terdapat satu prediktor \(x\), maka bentuk umum model logit-nya adalah:

\[ \log \left( \frac{\pi_j}{\pi_c} \right) = \alpha_j + \beta_j x, \quad j = 1, \ldots, c-1 \]

Contoh Kasus: 3 Kategori Respons

Misalkan respons \(Y\) punya tiga kategori, \(Y \in \{1, 2, 3\}\), dan kita gunakan kategori ke-3 sebagai baseline. Maka:

\[ \log \left( \frac{\pi_1}{\pi_3} \right) = \alpha_1 + \beta_1 x \]

\[ \log \left( \frac{\pi_2}{\pi_3} \right) = \alpha_2 + \beta_2 x \]

Interpretasi dan Model Logit

Satu prediktor \(x\) memengaruhi logit rasio antara kategori ke-1 dan ke-3 serta antara kategori ke-2 dan ke-3. Mengenai relasi antar kategori, jika terdapat dua logit, maka:

\[ \log \left( \frac{\pi_1}{\pi_2} \right) = \log \left( \frac{\pi_1 / \pi_3}{\pi_2 / \pi_3} \right) = \log \left( \frac{\pi_1}{\pi_3} \right) - \log \left( \frac{\pi_2}{\pi_3} \right) \]

\[ = (\alpha_1 + \beta_1 x) - (\alpha_2 + \beta_2 x) = (\alpha_1 - \alpha_2) + (\beta_1 - \beta_2) x \]

Model Baseline-Category Logit:

  • Misalkan tiga kategori respons dengan kategori ke-3 sebagai baseline.

  • Logit antara kategori pertama dan baseline, serta kategori kedua dan baseline, dihitung berdasarkan data.

  • Implementasi di R memungkinkan fungsi multinom (dari package nnet) untuk mengevaluasi baseline.

12.2.2 Estimasi Parameter

Estimasi dilakukan menggunakan metode Maximum Likelihood dengan algoritma iteratif seperti Newton-Raphson. Persamaan Log-likelihood adalah sebagai berikut:

\[ f(\theta) = \sum_{i=1}^n \log P(y_i | x_i; \theta) \]

di mana \(x_i = P(Y = y_i | x_i; \theta)\), dan \(j = 1, \ldots, J\).

12.3 Contoh Kasus

Sebuah perusahaan pembelajaran ingin memahami faktor-faktor yang mempengaruhi preferensi siswa-siswi terhadap jenis metode belajar yang diberikan: Luring, Hybrid, atau Daring.

Perusahaan melakukan survei terhadap 85 siswa dan dikumpulkannya data sebagai berikut:

  • Study: Jenis metode belajar yang dipilih (Luring, Hybrid, Daring)

  • Age: Usia siswa-siswi

  • Department: Jurusan tempat belajar (IPA, IPS, Bahasa)

  • Experience: Lama pengalaman belajar dalam tahun

Tujuannya adalah untuk mengetahui bagaimana usia, jurusan, dan pengalaman sekolah memengaruhi preferensi metode belajar.

12.4 Simulasi Data

set.seed(123)
n <- 85

Department <- sample(c("IPA", "IPS", "Bahasa"), n, replace = TRUE)
Age <- round(rnorm(n, mean = 20, sd = 2))
Experience <- round(pmax(rnorm(n, mean = 10, sd = 4), 0))

# Simulasikan Study berdasarkan probabilitas berbeda per Department
Study <- sapply(Department, function(dep) {
if (dep == "IPA") {
sample(c("Luring", "Hybrid", "Daring"), size = 1, prob = c(0.6, 0.2, 0.2))
} else if (dep == "IPS") {
sample(c("Luring", "Hybrid", "Daring"), size = 1, prob = c(0.3, 0.3, 0.4))
} else {
sample(c("Luring", "Hybrid", "Daring"), size = 1, prob = c(0.4, 0.4, 0.2))
}
})

df <- data.frame(Study = factor(Study), Age, Department = factor(Department), Experience)
df$Study <- relevel(df$Study, ref = "Luring") # baseline
head(df)
##    Study Age Department Experience
## 1 Hybrid  23     Bahasa          6
## 2 Daring  22     Bahasa         13
## 3 Luring  21     Bahasa         10
## 4 Luring  18        IPS         12
## 5 Hybrid  19     Bahasa          6
## 6 Daring  23        IPS          7

12.5 Estimasi Model

library(nnet)
## Warning: package 'nnet' was built under R version 4.3.3
model_mnlogit <- multinom(Study ~ Age + Department + Experience, data = df)
## # weights:  18 (10 variable)
## initial  value 93.382045 
## iter  10 value 78.968386
## final  value 78.894339 
## converged
summary(model_mnlogit)
## Call:
## multinom(formula = Study ~ Age + Department + Experience, data = df)
## 
## Coefficients:
##        (Intercept)         Age DepartmentIPA DepartmentIPS Experience
## Daring   0.4432467 -0.09451879    -0.8093811    1.54102542  0.1027095
## Hybrid   2.0044284 -0.02322590    -1.3973250    0.09285109 -0.1543840
## 
## Std. Errors:
##        (Intercept)       Age DepartmentIPA DepartmentIPS Experience
## Daring     3.23326 0.1570204     0.6987885     0.7300046 0.07053668
## Hybrid     3.36040 0.1634064     0.6844793     0.7464661 0.07751208
## 
## Residual Deviance: 157.7887 
## AIC: 177.7887

Interpretasi:

Model ini menunjukkan bahwa siswa jurusan IPS cenderung memilih metode belajar secara Daring, sementara siswa jurusan IPA cenderung menghindari Hybrid. Usia dan pengalaman sedikit menurunkan peluang memilih Hybrid, tetapi pengalaman justru sedikit menaikkan peluang memilih Daring.

12.6 Nilai P-Value dan Interpretasi

z <- summary(model_mnlogit)$coefficients / summary(model_mnlogit)$standard.errors
pval <- 2 * (1 - pnorm(abs(z)))
round(pval, 4)
##        (Intercept)    Age DepartmentIPA DepartmentIPS Experience
## Daring      0.8910 0.5472        0.2468        0.0348     0.1454
## Hybrid      0.5509 0.8870        0.0412        0.9010     0.0464

Interpretasi:

Semua p-value memiliki nilai yang lebih dari 0.05, yang berarti tidak ada prediktor (Age, Departmenet, Experience) yang secara statistik signifikan dalam membedakan pilihan metode Daring atau Hybrid terhadap kategori referensi. Jadi, meskipun terdapat arah efek, tidak ada bukti kuat bahwa variabel tersebut berpengaruh signifikan secara statistik.

12.7 Prediksi dan Validasi

df$Predicted <- predict(model_mnlogit)
table(Predicted = df$Predicted, Actual = df$Study)
##          Actual
## Predicted Luring Daring Hybrid
##    Luring     22      9      8
##    Daring      5     16      6
##    Hybrid      6      3     10

Kesimpulan:

Model ini menunjukkan confusion matrix hasil prediksi model. Secara umum, model bisa mengklasifikasikan cukup baik untuk kategori “Luring” (22 benar dari 39), tetapi agak lemah untuk “Hybrid” (hanya 10 benar dari 24) dan “Daring” (16 benar dari 28). Hal ini menunjukkan model cenderung lebih akurat untuk metode “Luring”, tetapi sering keliru dalam membedakan antara metode “Daring” dan “Hybrid”.

12.8 Contoh Kasus 2 di R

Pada kasus ini, akan digunakan dataset mtcars untuk memodelkan jenis transmisi mobil berdasarkan horsepower dan berat mobil. Karena jenis transmisi mobil adalah biner, maka dapat memakai multinom() dari packages nnet.

# Dataset 
data(mtcars)

# Memastikan am dalam bentuk faktor (0 = otomatis, 1 = manual)
mtcars$am <- factor(mtcars$am, labels = c("Automatic", "Manual"))

# Model Multinomial (Walau hanya memiliki 2 kelas, tetap bisa digunakan)
model <- multinom(am ~ hp + wt, data = mtcars)
## # weights:  4 (3 variable)
## initial  value 22.180710 
## iter  10 value 5.153535
## iter  20 value 5.030811
## final  value 5.029555 
## converged
# Hasilnya
summary(model)
## Call:
## multinom(formula = am ~ hp + wt, data = mtcars)
## 
## Coefficients:
##                  Values  Std. Err.
## (Intercept) 18.86747203 7.44417193
## hp           0.03625126 0.01773155
## wt          -8.08361260 3.06874953
## 
## Residual Deviance: 10.05911 
## AIC: 16.05911

Model ini memprediksi jenis transmisi (manual vs otomatos) berdasarkan horsepower (hp) dan berat mobil (wt). Koefisien positif untuk hp menunjukkan bahwa mobil dengan tenaga lebih besar cenderung memiliki transmisi manual. Sebaliknya, koefisien negatif untuk wt menunjukkan bahwa mobil yang lebih berat cenderung otomatis.

Interpretasi Koefisien

z <- summary(model)$coefficients / summary(model)$standard.errors
p_values <- 2 * (1 - pnorm(abs(z)))
round(p_values, 4)
## (Intercept)          hp          wt 
##      0.0113      0.0409      0.0084

Nilai p-value menunjukkan apakah variabel prediktor berpengaruh signifikan terhadap log-odds dibandingkan baseline category. Semua nilai p-value < 0.05, artinya keduanya berpengaruh signifikan terhadap jenis transmisi. Sehingga, tenaga dan berat mobil memang berperan penting dalam membedakan jenis mobil manual dan otomatis.

Prediksi dan Visualisasi

mtcars$predicted <- predict(model, newdata = mtcars)
table(Predicted = mtcars$predicted, Actual = mtcars$am)
##            Actual
## Predicted   Automatic Manual
##   Automatic        18      1
##   Manual            1     12

Confusion Matrix ini menunjukkan performa model yang sangat baik. Dari total 32 data, hanya 2 yang salah klasifikasi. Model berhasil memprediksi 18 dari 19 mobil otomatis dan 12 dari 13 mobil manual dengan benar, menghasilkan akurasi sekitar 94%.

ggplot(mtcars, aes(x = hp, y = wt, color = predicted)) +
geom_point(size = 2) +
labs(title = "Multinomial Logistic Regression Predictions",
x = "Horsepower (hp)", y = "Weight (wt)") +
theme_minimal()

Pada visualisasi tersebut, sumbu X menunjukkan tenaga kuda (horsepower) dari kendaraan. Sementara itu, sumbu Y menunjukkan berat kendaraan. Didapatkan bahwa:

  • Mobil yang lebih ringan (wt rendah) dan memiliki tenaga kuda lebih kecil hingga sedang (hp rendah–sedang) cenderung diprediksi sebagai Manual.

  • Mobil yang lebih berat dan/atau bertenaga lebih tinggi umumnya diprediksi sebagai Automatic.

  • Titik-titik tersebar dengan jelas mengikuti pola tersebut, menunjukkan bahwa model cukup baik dalam memisahkan dua kelas berdasarkan dua variabel ini.

Hal ini menunjukkan bahwa kombinasi kedua variabel tersebut cukup informatif untuk memprediksi jenis transmisi mobil pada dataset mtcars.

13 Regresi Logistik Ordinal

Regresi Logistik Ordinal merupakan metode statistik yang digunakan untuk menganalisis hubungan antara variabel respons berupa kategori berurutan dan sejumlah variabel prediktor, misalnya tingkat kepuasan: Rendah, Sedang, Tinggi.

Model ini berbeda dengan:

13.1 Konsep Cumulative Logit Model

Model yang digunakan adalah Cumulative Logit Model dengan asumsi proportional odds:

\[ \text{logit} \left( \frac{P(Y \leq j)}{P(Y > j)} \right) = \alpha_j + \beta x \]

di mana:

  • \(\alpha_j\) : intercept khusus untuk kategori ke \(j\)

  • \(\beta\) : koefisien regresi yang konsisten untuk semua kategori kecuali kumulatif

  • untuk \(c\) kategori, terdapat \((c-1)\) model logit kumulatif

13.2 Interpretasi Koefisien

Koefisien \(\beta\) menjelaskan efek \(x\) terhadap kemungkinan berada pada kategori yang lebih rendah atau sama.

  • Jika \(\beta > 0\): semakin besar \(x\), semakin besar peluang berada di kategori rendah.

  • Jika \(\beta < 0\): semakin besar \(x\), semakin besar peluang berada di kategori tinggi.

  • Rasio Odds dapat dihitung dengan \(OR = e^\beta\)

Contoh Data: Kesulitan Memahami Materi

Misalnya diketahui data fiktif tingkat kesulitan memahami materi (1: Rendah, 2: Sedang, 3: Tinggi) terhadap efektivitas pembelajaran:

set.seed(123)
n <- 300
efektif <- round(runif(n, 1, 10))
satisfaction <- cut(5 + 0.5*efektif + rnorm(n),
                    breaks = c(-Inf, 5.5, 7.5, Inf), 
                    labels = c("Rendah", "Sedang", "Tinggi"),
                    ordered_result = TRUE)
df <- data.frame(satisfaction, efektif); head(df)
##   satisfaction efektif
## 1       Tinggi       4
## 2       Tinggi       8
## 3       Tinggi       5
## 4       Tinggi       9
## 5       Tinggi       9
## 6       Rendah       1

13.3 Estimasi Model Ordinal

model_ord <- polr(satisfaction ~ efektif, data = df, Hess = TRUE)
summary(model_ord)
## Call:
## polr(formula = satisfaction ~ efektif, data = df, Hess = TRUE)
## 
## Coefficients:
##          Value Std. Error t value
## efektif 0.8171     0.0827    9.88
## 
## Intercepts:
##               Value  Std. Error t value
## Rendah|Sedang 0.6836 0.3410     2.0046 
## Sedang|Tinggi 3.8531 0.4244     9.0785 
## 
## Residual Deviance: 358.8558 
## AIC: 364.8558

Berdasarkan hasil estimasi model ordinal yang ditampilkan, koefisien untuk variabel efektif sebesar 0.8171 dengan nilai t sebesar 9.88 menunjukkan adanya pengaruh signifikan terhadap variabel satisfaction, di mana peningkatan efektif meningkatkan peluang kepuasan yang lebih tinggi. Nilai intercept untuk kategori Rendah/Sedang (0.6836) dan Sedang/Tinggi (3.8531) dengan nilai t masing-masing 2.046 dan 9.078 mengindikasikan ambang batas yang signifikan antara kategori kepuasan. Nilai residual dan AIC dapat digunakan untuk mengevaluasi model terbaik, dengan nilai yang lebih rendah menunjukkan model yang lebih baik.

13.4 Nilai P-Value

ctable <- coef(summary(model_ord)); ctable
##                   Value Std. Error  t value
## efektif       0.8171047 0.08270251 9.880047
## Rendah|Sedang 0.6835885 0.34100944 2.004603
## Sedang|Tinggi 3.8530542 0.42441604 9.078484
p <- pnorm(abs(ctable[, "t value"]), lower.tail = FALSE) * 2
(ctable <- cbind(ctable, "p value" = round(p, 4)))
##                   Value Std. Error  t value p value
## efektif       0.8171047 0.08270251 9.880047   0.000
## Rendah|Sedang 0.6835885 0.34100944 2.004603   0.045
## Sedang|Tinggi 3.8530542 0.42441604 9.078484   0.000

Berdasarkan hasil analisis, variabel efektif dan intercept Rendah/Sedang serta Sedang/Tinggi menunjukkan pengaruh statistik signifikan terhadap variabel satisfaction.

13.5 Prediksi Probabilitas

datanew <- data.frame(efektif = 5:9)
predict(model_ord, newdata = datanew, type = "probs")
##        Rendah     Sedang    Tinggi
## 1 0.032235046 0.40990797 0.5578570
## 2 0.014499440 0.24480749 0.7406931
## 3 0.006456796 0.12746971 0.8660735
## 4 0.002862341 0.06107473 0.9360629
## 5 0.001266344 0.02802063 0.9707130

Hasil prediksi probabilitas menunjukkan bahwa untuk nilai efektif sebesar 5.9, peluang kategori Rendah, Sedang, dan Tinggi berturut-turut adalah 0.01263504, 0.02802063, dan 0.9707130 pada pukul 04:03 WIB, 12 Juni 2025. Ini mengindikasikan bahwa kategori Tinggi memiliki probabilitas paling dominan, mencapai 97.07%, sedangkan Rendah dan Sedang memiliki peluang sangat kecil, masing-masing 1.26% dan 2.80%.

13.6 Goodness-of-Fit dan Proportional Odds

Model cumulative logit mengasumsikan efek prediktor sama untuk setiap cutoff. Jika tidak, pertimbangkan model non-proporsional odds seperti Generalized Ordinal Model.

Selain cumulative logit, terdapat alternatif dalam model ordinal lainnya:

  • Adjacent-category logit: Model ini membandingkan probabilitas setiap pasangan kategori berurutan dalam variabel respons ordinal, misalnya probabilitas berada di kategori “Rendah” versus “Sedang” atau “Sedang” versus “Tinggi”. Pendekatan ini memperlakukan setiap transisi antar kategori sebagai analisis terpisah, sehingga cocok untuk memahami perbedaan relatif antar kategori yang berdekatan.

  • Continuation-ratio (sequential) logit: Model ini membandingkan probabilitas suatu kategori dengan semua kategori yang lebih tinggi secara bertahap. Misalnya, probabilitas “Rendah” versus (“Sedang” dan “Tinggi”) digabungkan, lalu “Sedang” versus “Tinggi”. Metode ini berguna untuk menganalisis proses bertahap atau hierarkis dalam data ordinal.

Kesimpulan:

  • Regresi ordinal efektif untuk respon berurutan.

  • Model cumulative logit menginterpretasikan efek dalam bentuk log-odds kumulatif.

  • Implementasi di R dengan fungsi polr() dari package MASS. Jika diperlukan uji lanjut, bisa digunakan uji devians atau likelihood ratio test.

13.7 Asumsi Paralelisme dalam Regresi Logistik Ordinal

Model regresi logistik ordinal yang memuat asumsi Cumulative Logit Model mengandung asumsi Proportional Odds serta asumsi paralelisme (parallel lines assumption). Asumsi tersebut menyatakan bahwa koefisien regresi \((\beta)\) sama untuk setiap kategori kumulatif dari variabel respon.

Berikut merupakan bentuk umum model tersebut:

\[ \log \left( \frac{P(Y \leq j)}{P(Y > j)} \right) = \alpha_j + \beta x \]

untuk \(j = 1, ..., c - 1\)

  • Hanya intercept \((a_j)\) yang berbeda-beda.

  • Koefisien \(\beta\) tetap sama untuk semua fungsi logit kumulatif.

Visualisasi

Dalam asumsi paralelisme, kurva logit kumulatif dari tiap kategori terhadap prediktor akan memiliki kemiringan yang sama, hanya berbeda posisi (intercept).

Konsekuensi Pelanggaran Asumsi

Jika asumsi ini tidak terpenuhi:

  • Efek prediktor berbeda untuk setiap batas kategori

  • Model cumulative logit tidak valid.

  • Diperlukan model alternatif: Generalized Ordinal Logistic Regression dan Partial Proportional Odds Model.

Pengujian Asumsi Paralelisme

Untuk memeriksa asumsi, dapat digunakan:

  • Likelihood Ratio Test antara model proportional dan non-proportional

  • Brant Test (paket brast di R)

Contoh Kasus (dengan package brast):

library(brant)
## Warning: package 'brant' was built under R version 4.3.3
model <- polr(satisfaction ~ efektif, data = df, Hess = TRUE)
brant(model)
## -------------------------------------------- 
## Test for X2  df  probability 
## -------------------------------------------- 
## Omnibus      0.23    1   0.63
## efektif      0.23    1   0.63
## -------------------------------------------- 
## 
## H0: Parallel Regression Assumption holds

Karena semua nilai p-value > 0.05, maka asumsi paralelisme tersebut terpenuhi.

14 Log-Linear Model

Analisis Data Kategorik berperan penting dalam Statistika Terapan karena berbagai fenomena nyata menghasilkan data berbentuk kategorik, seperti jenis kelamin, status pekerjaan, tingkat pendidikan, preferensi konsumen, atau diagnosis medis. Data ini biasanya dianalisis menggunakan tabel kontingensi, model log-linier, dan regresi logistik, dengan masing-masing metode yang memiliki kelebihan dan kekurangan sesuai tujuan analisis dan karakteristik data.

Tabel kontingensi merupakan tahapan awal untuk eksplorasi hubungan antar variabel kategorik. Sebagai contoh, dalam penelitian mengenai pengaruh obat terhadap serangan jantung, tabel kontingensi dapat menunjukkan jumlah pasien yang mengalami atau tidak mengalami serangan jantung berdasarkan jenis obat yang digunakan. Tabel ini membantu mengenali pola awal dan menghitung ukuran asosiasi seperti odds ratio, risk relative, atau statistik chi-square untuk menguji independensi variabel.

Namun, jika tujuannya adalah membangun model statistik yang mampu mengendalikan efek banyak variabel dan interaksinya secara bersamaan, model log-linier menjadi pilihan yang tepat. Model log-linier, sebagai bagian dari Generalized Linear Model (GLM), bekerja pada frekuensi sel dalam tabel kontingensi dengan asumsi distribusi Poisson. Berbeda dari regresi logistik, model log-linier tidak membedakan variabel dependen dan independen, melainkan memperlakukan semua variabel secara simetris. Model ini cocok untuk memahami struktur asosiasi atau independensi antar variabel, bukan untuk prediksi.

Struktur model log-linier ditentukan oleh efek utama setiap variabel dan interaksi antar variabel. Misalnya, pada tabel kontingensi tiga dimensi (seperti jenis kelamin, status merokok, dan penyakit paru), model log-linier dapat menentukan apakah interaksi dua variabel cukup menjelaskan data atau apakah interaksi tiga arah diperlukan untuk memahami hubungan asosiasi. Penyesuaian model dilakukan dengan uji rasio likelihood untuk membandingkan model sederhana dengan model yang lebih kompleks.

Sebaliknya, regresi logistik adalah metode yang umum digunakan ketika ada satu variabel kategorik yang jelas sebagai variabel dependen (misalnya, kejadian penyakit: ya/tidak) dan variabel lain sebagai prediktor, baik kategorik maupun numerik. Model ini memodelkan logit dari probabilitas kejadian (log odds) dan sangat berguna untuk menjelaskan atau memprediksi peluang suatu hasil dalam studi observasional atau eksperimental. Regresi logistik juga memiliki variasi seperti regresi logistik multinomial dan ordinal untuk outcome dengan lebih dari dua kategori.

Secara keseluruhan, tabel kontingensi bersifat deskriptif, model log-linier bersifat eksploratif untuk hubungan simetris, dan regresi logistik bersifat prediktif untuk outcome kategorik. Pemilihan metode bergantung pada apakah analisis bertujuan untuk mendeskripsikan, mengeksplorasi struktur, atau memprediksi hasil berdasarkan variabel penjelas. Kombinasi ketiga metode ini sering digunakan untuk memberikan pemahaman menyeluruh terhadap data kategorik.

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

  1. Tabel Kontingensi: Menyajikan frekuensi gabungan dari dua atau lebih variabel kategorik untuk melihat hubungan awal.

  2. Model Log-Linear: Memodelkan struktur asosiasi dalam tabel kontingensi tanpa membedakan variabel dependen dan independen.

  3. Model Regresi Logistik: Memodelkan probabilitas kategori variabel dependen berdasarkan variabel independen.

Meskipun berlaku untuk data kategorik, namun ketiga metode ini memiliki pendekatan dan tujuan interpretasi yang berbeda.

Tabel Kontingensi

Tabel Kontingensi menyajikan jumlah frekuensi dari kombinasi kategorik antar variabel. Berikut merupakan contoh dari tabel 2x2:

contingency_table = matrix(c(20, 15, 40, 65), nrow=2,
                           dimnames=list(Obat=c("Panadol", "Paramex"),
                                         Serangan=c("Ya", "Tidak")))
contingency_table
##          Serangan
## Obat      Ya Tidak
##   Panadol 20    40
##   Paramex 15    65

Tabel kontingensi bersifat deskriptif dan tidak melibatkan permodelan probabilitas.

Model Loglinear

Model Loglinear memodelkan logaritma dari ekspektasi frekuesni sel dalam tabel kontingensi. Secara matematis, memenuhi persamaan:

\[ \log(\mu_{ij}) = \lambda + \lambda^{A}_i + \lambda^{B}_j + \lambda^{AB}_{ij} \]

Interpretasi:

library(MASS)
loglm(~ Obat * Serangan, data = contingency_table)
## Call:
## loglm(formula = ~Obat * Serangan, data = contingency_table)
## 
## Statistics:
##                  X^2 df P(> X^2)
## Likelihood Ratio   0  0        1
## Pearson            0  0        1

Model Regresi Logistik

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

data_glm = data.frame(
  Serangan = c(1, 0, 1, 0),
  Obat = factor(c("Panadol", "Panadol", "Paramex", "Paramex")),
  Freq = c(20, 15, 40, 65)
)
model_logit = glm(Serangan ~ Obat, weights = Freq, family = binomial, data = data_glm)
summary(model_logit)
## 
## Call:
## glm(formula = Serangan ~ Obat, family = binomial, data = data_glm, 
##     weights = Freq)
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## (Intercept)   0.2877     0.3416   0.842   0.3996  
## ObatParamex  -0.7732     0.3963  -1.951   0.0511 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 191.21  on 3  degrees of freedom
## Residual deviance: 187.35  on 2  degrees of freedom
## AIC: 191.35
## 
## Number of Fisher Scoring iterations: 4

Interpretasi:

Berdasarkan hasil model regresi logistik biner, terlihat bahwa Intercept menunjukkan tidak ada efek signifikan secara statistik. Lalu, koefisien untuk ObatParamex mendekati signifikansi pada ambang batas umum, menunjukkan potensi pengaruh negatif terhadap Serangan, meskipun belum cukup kuat. Nilai Residual Deviance lebih rendah dari Null Deviance, yang mengindikasikan model ini sedikit lebih baik dibandingkan model null, dengan nilai AIC (191.35) yang menunjukkan kebaikan keseluruhan model setelah penyesuaian.

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

14.1 Tabel Kontingensi dan Model Log-linear

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

# Contoh tabel 2x2
matrix(c(30, 20, 50, 70), nrow=2,
       dimnames = list(Obat = c("Timolol", "Placebo"),
                       Serangan = c("Ya", "Tidak")))
##          Serangan
## Obat      Ya Tidak
##   Timolol 30    50
##   Placebo 20    70

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

\[ \log(\mu_{ij}) = \lambda + \lambda^{T}_i + \lambda^{R}_j + \lambda^{TR}_{ij} \]

14.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:

Model saturated dapat dipasang dengan loglm dari package {MASS}

# Data
library(MASS)
data <- matrix(c(35, 65, 45, 55), nrow=2, byrow=TRUE)
dimnames(data) <- list(Obat = c("Timolol", "Placebo"), Serangan = c("Ya", "Tidak"))
ftable(data)
##         Serangan Ya Tidak
## Obat                     
## Timolol          35    65
## Placebo          45    55

Model saturated dapat dipasang dengan logm dari package {MASS}

model_saturated <- loglm(~ Obat * Serangan, data = data)
summary(model_saturated)
## Formula:
## ~Obat * Serangan
## attr(,"variables")
## list(Obat, Serangan)
## attr(,"factors")
##          Obat Serangan Obat:Serangan
## Obat        1        0             1
## Serangan    0        1             1
## attr(,"term.labels")
## [1] "Obat"          "Serangan"      "Obat:Serangan"
## 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

Interpretasi:

Hasil model logistik saturasi menunjukkan bahwa interaksi antara Obat dan Serangan telah dimodelkan sepenuhnya dengan formula Obat * Serangan. Matriks desain menegaskan bahwa model mencakup kedua variabel serta interaksinya, dengan intersep dan respons yang terdefinisikan. Nilai statistik Likelihood Ratio dan Pearson menunjukkan X² sebesar 0 dengan derajat kebebasan 0 dan p-value 1, yang mengindikasikan tidak ada perbedaan signifikan antara model saturasi dan model null, menegaskan bahwa model ini sesuai dengan data yang diberikan.

14.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(~ Obat + Serangan, data = data)
summary(model_indep)
## Formula:
## ~Obat + Serangan
## attr(,"variables")
## list(Obat, Serangan)
## attr(,"factors")
##          Obat Serangan
## Obat        1        0
## Serangan    0        1
## attr(,"term.labels")
## [1] "Obat"     "Serangan"
## 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 2.087576  1 0.1485015
## Pearson          2.083333  1 0.1489147

Interpretasi:

Hasil model logistik independen menunjukkan bahwa Obat dan Serangan dimodelkan sebagai variabel utama tanpa interaksi. Statistik Likelihood Ratio dan Pearson menunjukkan nilai X² masing-masing 2.087576 dan 2.083333 dengan derajat kebebasan 1 dan p-value 0.1485015 serta 0.1489147, yang menandakan tidak ada bukti signifikan untuk menolak model null pada level 0.05, sehingga efek tersebut secara individu tidak cukup kuat untuk memengaruhi hasil.

14.4 Odds Ratio dan Interpretasi

Odds ratio untuk tabel 2x2:

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

Interpretasi nilai OR:

  • OR = 1: Tidak ada asosiasi

  • OR > 1: Asosiasi positif

  • OR < 1: Asosiasi negatif

14.5 Estimasi Parameter

Dalam model saturated:

  • Estimasi dilakukan dengan pembatasan seperti sum-to-zero

  • Estimasi parameter dilakukan dengan iterative proportional fitting (IPF)

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

Nilai log-odds ratio (logOR) yang dihitung sebear **-0.4183685 menunjukkan perbandingan logaritma odds antara dua kategori data, dengan nilai negatif mengindikasikan bahwa peluang kategori pertama lebih rendah dibandingkan kategori kedua.

14.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:
##  ~Obat + Serangan 
## Model 2:
##  ~Obat * Serangan 
## 
##           Deviance df Delta(Dev) Delta(df) P(> Delta(Dev)
## Model 1   2.087576  1                                    
## Model 2   0.000000  0   2.087576         1         0.1485
## Saturated 0.000000  0   0.000000         0         1.0000

14.7 Studi Kasus: Kepercayaan terhadap Surga

Studi dari Agresti (2019) membahas hubungan antara kebahagiaan dan kepercayaan terhadap kehidupan akhirat.

data_survey <- matrix(c(32,190,
                        113,611,
                        51,326),
                      nrow = 3, byrow = TRUE,
                      dimnames = list(Kebahagiaan = c("Tidak", "Cukup", "Sangat"),
                                      Surga = c("Tidak Percaya", "Percaya")))
ftable(data_survey)
##             Surga Tidak Percaya Percaya
## Kebahagiaan                            
## Tidak                        32     190
## Cukup                       113     611
## Sangat                       51     326
loglm(~ Kebahagiaan + Surga, data = data_survey)
## Call:
## loglm(formula = ~Kebahagiaan + Surga, data = data_survey)
## 
## Statistics:
##                        X^2 df  P(> X^2)
## Likelihood Ratio 0.8911136  2 0.6404675
## Pearson          0.8836760  2 0.6428538

Interpretasi:

Analisis regresi logistik mengevaluasi hubungan antara kebahagiaan dan kepercayaan terhadap surga menggunakan data survei dengan mariks kontingensi 2x3. Hasil statistik menunjukkan nilai Likelihood Ratio X² sebesar 0.891136 dengan derajat kebebasan 2 dan p-value 0.6404675, serta Pearson X² sebesar 0.8836760 dengan p-value 0.6428538. Kedua p-value yang besar (> 0.05) menunjukkan tidak ada bukti signifikan bahwa kebahagiaan dan kepercayaan terhadap surga memiliki hubungan yang kuat dalam data ini.

15 Model Log Linear 2 Arah

Model log-linear 2 arah adalah model statistik yang digunakan untuk menganalisis hubungan antara dua variabel kategorikal dalam data kontingensi (tabel silang). Model ini didasarkan pada pendekatan log-linear, di mana hubungan antara frekuensi yang diamati dimodelkan menggunakan transformasi logaritmik. Dalam konteks 2 arah, model ini mempertimbangkan interaksi antara dua variabel tanpa memerlukan variabel dependen atau independen yang eksplisit, melainkan fokus pada distribusi frekuensi bersama.

Secara matematis, model log-linear 2 arah dapat ditulis sebagai:

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

dengan:

Jika \(\lambda_{ij}^{AB} = 0\), maka model menjadi model independen, artinya tidak ada interaksi antara \(A\) dan \(B\).

15.1 Estimasi Parameter log linear 2 arah

Sistem Persamaan Model Log-Linear

\[ Log(\mu_{11})=\lambda+\lambda_1^A+\lambda_1^B+\lambda_{11}^{AB} \]

\[ Log(\mu_{12})=\lambda+\lambda_1^A+\lambda_2^B+\lambda_{12}^{AB} \]

\[ Log(\mu_{21})=\lambda+\lambda_2^A+\lambda_1^B+\lambda_{21}^{AB} \]

\[ Log(\mu_{22})=\lambda+\lambda_2^A+\lambda_2^B+\lambda_{22}^{AB} \]

Constraint Sum-to-Zero

\[ \lambda_1^A+\lambda_2^A=0 \]

\[ \lambda_1^B+\lambda_2^B=0 \]

\[ \lambda_{11}^{AB}+\lambda_{12}^{AB}+\lambda_{21}^{AB}+\lambda_{22}^{AB}=0 \]

Rumus Estimasi Parameter dengan Sum-to-Zero Constraint

\[ \lambda_1^A=1/2[(\log\mu_{11}+\log\mu_{12})-(\log\mu_{21}+\log\mu_{22})] \]

\[ \lambda_1^B=1/2[(\log\mu_{11}+\log\mu_{12})-(\log\mu_{21}+\log\mu_{22})] \]

\[ \lambda_{12}^{AB}=1/4[\log\mu_{12}-\log\mu_{11}-\log\mu_{22}-\log\mu_{21}] \]

15.2 Analisis Data Tabel Kontingensi 2 x 2

Diberikan data:

Sakit Sehat
Merokok Ya 30 20
Merokok Tidak 10 40

Bentuk Model Log-Linear

Model log-linear pada tabel 2x2:

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

dengan constraint sum-to-zero:

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

Estimasi Parameter Model

Misalkan:

  • A1 = Merokok (Ya), A2 = Tidak
  • B1 = Sakit, B2 = Sehat

Observasi:

  • \(n_{11} = 30, \, n_{12} = 20\)
  • \(n_{21} = 10, \, n_{22} = 40\)

\[ \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 \]

Langkah-langkah:

  1. Hitung rata-rata log frekuensi sel:

\[ \lambda = \frac{1}{4} \sum_{i=1}^{2} \sum_{j=1}^{2} \log(n_{ij}) \\ = \frac{1}{4} [\log(30) + \log(20) + \log(10) + \log(40)] \\ = 3.0971 \]

  1. Efek utama A (Merokok)

\[ \lambda^A_1 = \frac{1}{2} \left( [\log(30) + \log(20)] - [\log(10) + \log(40)] \right) \\ = \frac{1}{2} \left( [3.4012 + 2.9957] - [2.3026 + 3.6889] \right) \\ = \frac{1}{2} (6.3969 - 5.9915) \\ = \frac{1}{2} (0.4054) = 0.2027 \\ \lambda^A_2 = -0.2027 \]

  1. Efek utama B (Status)

\[ \lambda^B_1 = \frac{1}{2} \left( [\log(30) + \log(10)] - [\log(20) + \log(40)] \right) \\ = \frac{1}{2} \left( [3.4012 + 2.3026] - [2.9957 + 3.6889] \right) \\ = \frac{1}{2} (5.7038 - 6.6846) \\ = -0.4904 \\ \lambda^B_2 = +0.4904 \]

  1. Efek interaksi:

\[ \lambda^{AB}_{11} = \frac{1}{4} \left( \log(30) - \log(20) - \log(10) + \log(40) \right) \\ = \frac{1}{4} \left( 3.4012 - 2.9957 - 2.3026 + 3.6889 \right) \\ = \frac{1}{4} (1.7918) = 0.4479 \\ \lambda^{AB}_{12} = -0.4479 \\ \lambda^{AB}_{21} = -0.4479 \\ \lambda^{AB}_{22} = +0.4479 \]

Ringkasan parameter:

  • \(\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, \lambda^{AB}_{12} = -0.4479, \lambda^{AB}_{21} = -0.4479, \lambda^{AB}_{22} = 0.4479\)

Odds Ratio dan Interval Kepercayaan

\[ \text{OR} = \frac{n_{11} \cdot n_{22}}{n_{12} \cdot n_{21}} = \frac{30 \times 40}{20 \times 10} = \frac{1200}{200} = 6 \]

Log odds ratio:

\[ \log(\text{OR}) = \log(6) = 1.7918 \]

Standard error (SE):

\[ SE = \sqrt{\frac{1}{n_{11}} + \frac{1}{n_{12}} + \frac{1}{n_{21}} + \frac{1}{n_{22}}} = \sqrt{\frac{1}{30} + \frac{1}{20} + \frac{1}{10} + \frac{1}{40}} \\ = \sqrt{0.0333 + 0.05 + 0.1 + 0.025} = \sqrt{0.2083} = 0.4564 \]

95% Confidence Interval for log(OR):

\[ \log(\text{OR}) \pm 1.96 \times SE = 1.7918 \pm 1.96 \times 0.4564 \\ = (1.7918 - 0.895, \, 1.7918 + 0.895) \\ = (0.8968, \, 2.6868) \]

Back-transform to get CI for OR:

\[ \text{Lower} = \exp(0.8968) = 2.452 \\ \text{Upper} = \exp(2.6868) = 14.68 \]

Jadi, OR = 6 (95% CI: 2.45 – 14.68)

Fitting Model Log Linear dengan R

# Data 2x2
tabel <- matrix(c(30, 20, 10, 40), nrow = 2, byrow = TRUE)
colnames(tabel) <- c("Sakit", "Sehat")
rownames(tabel) <- c("Ya", "Tidak")
tabel
##       Sakit Sehat
## Ya       30    20
## Tidak    10    40
data <- as.data.frame(as.table(tabel))
colnames(data) <- c("Merokok", "Status", "Freq")
data
##   Merokok Status Freq
## 1      Ya  Sakit   30
## 2   Tidak  Sakit   10
## 3      Ya  Sehat   20
## 4   Tidak  Sehat   40
# Model tanpa interaksi
fit_no_inter <- glm(Freq ~ Merokok + Status, family = poisson, data = data)
summary(fit_no_inter)
## 
## Call:
## glm(formula = Freq ~ Merokok + Status, family = poisson, data = data)
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  2.996e+00  1.871e-01  16.013   <2e-16 ***
## MerokokTidak 3.892e-10  2.000e-01   0.000    1.000    
## StatusSehat  4.055e-01  2.041e-01   1.986    0.047 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 21.288  on 3  degrees of freedom
## Residual deviance: 17.261  on 1  degrees of freedom
## AIC: 43.036
## 
## Number of Fisher Scoring iterations: 4
# Model dengan interaksi
fit_inter <- glm(Freq ~ Merokok * Status, family = poisson, data = data)
summary(fit_inter)
## 
## Call:
## glm(formula = Freq ~ Merokok * Status, family = poisson, data = data)
## 
## Coefficients:
##                          Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                3.4012     0.1826  18.629  < 2e-16 ***
## MerokokTidak              -1.0986     0.3651  -3.009  0.00262 ** 
## StatusSehat               -0.4055     0.2887  -1.405  0.16015    
## MerokokTidak:StatusSehat   1.7918     0.4564   3.926 8.65e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 2.1288e+01  on 3  degrees of freedom
## Residual deviance: 3.9968e-15  on 0  degrees of freedom
## AIC: 27.775
## 
## Number of Fisher Scoring iterations: 3

Interpretasi Parameter

  • Parameter utama (intercept) menunjukkan rata-rata log frekuensi sel.
  • Efek “Merokok” dan “Status” menunjukkan perbedaan log frekuensi antar kategori.
  • Interaksi signifikan menunjukkan adanya asosiasi antara Merokok dan Status.

Nilai \(\log(6) = 1.79\) itu sama dengan efek interaksi output R.

16 Daftar Pustaka