Humaira Zeanova
140610230030
Analisis data kategori berfokus pada data yang berupa pengelompokan atau klasifikasi ke dalam kategori-kategori tertentu, yang tidak memiliki urutan yang jelas atau hubungan numerik. Analisis ini digunakan untuk menguji hipotesis yang melibatkan variabel kategorikal.
Data kategorikal mengacu pada bentuk informasi yang dapat disimpan dan diidentifikasi berdasarkan nama atau labelnya. Ini adalah jenis data kualitatif yang dapat dikelompokkan ke dalam kategori alih-alih diukur secara numerik. Data kategori terdiri dari 2 jenis, yaitu data nominal dan data ordinal. Data nominal adalah jenis data yang terdiri dari kategori-kategori yang tidak dapat diurutkan atau diberi peringkat sedangkan data ordinal adalah jenis data yang memiliki nilai perbandingan tetapi tidak diketahui nilai intrinsiknya.
Mugenda & Mugenda (2003) dalam bukunya “Research Methods: Quantitative and Qualitative Approaches” menjelaskan bahwa analisis data kategori bertujuan untuk menggambarkan data dengan memperhatikan frekuensi atau distribusi kategori-kategori yang ada. Metode ini sering digunakan ketika data berbentuk nominal (misalnya jenis kelamin, status perkawinan) atau ordinal (misalnya tingkat pendidikan, kepuasan pelanggan). Analisis data kategori termasuk dalam teknik statistik yang digunakan untuk menganalisis variabel kategori, yang melibatkan metode seperti uji chi-square, regresi logistik, dan analisis kontingensi.
Analisis data kategori memiliki banyak manfaat, beberapa diantaranya:
Memahami Pola dan Hubungan antar Kategori
Analisis data kategori memungkinkan untuk mengukur dan menguji asosiasi atau ketergantungan antara dua atau lebih variabel kategori. Salah satu metode yang sering digunakan dalam statistika adalah uji chi-square (χ²), yang digunakan untuk menguji apakah ada hubungan signifikan antara dua variabel kategori dalam sebuah sampel. Ini sangat berguna ketika kita ingin mengetahui apakah ada hubungan antara faktor-faktor tertentu, misalnya, apakah jenis kelamin berhubungan dengan pilihan produk, atau apakah lokasi geografis berhubungan dengan perilaku konsumen. Teknik ini memberikan wawasan tentang apakah hubungan antara kategori bersifat kebetulan atau memiliki pola yang signifikan secara statistik.
Membantu Pengambilan Keputusan
Analisis data kategori sering digunakan dalam pengambilan keputusan bisnis dan kebijakan. Misalnya, dalam survei pelanggan, perusahaan dapat menganalisis preferensi atau tingkat kepuasan pelanggan berdasarkan kategori tertentu (seperti usia, status sosial, atau lokasi). Informasi ini dapat membantu perusahaan dalam merancang produk atau layanan yang lebih sesuai dengan kebutuhan pasar atau target audiens mereka.
Memudahkan Penyajian Data
Data kategori, karena sifatnya yang berbentuk kelompok, lebih mudah dipahami dan disajikan dalam bentuk yang ringkas. Misalnya, kita bisa menggunakan tabel kontingensi, diagram batang, atau grafik untuk menunjukkan distribusi kategori data. Penyajian ini mempermudah audiens dalam memahami informasi yang disampaikan tanpa harus berurusan dengan angka atau perhitungan rumit.
Tabel kontingensi atau yang sering disebut tabulasi silang (Cross Tabulation atau Cross Classification) adalah tabel yang berisi data jumlah atau frekuensi atau beberapa klasifikasi (kategori). Cross Tabulation adalah suatu metode statistik yang menggambarkan dua atau lebih variabel secara simultan dan hasilnya ditampilkan dalam bentuk tabel yang merefleksikan distribusi bersama dua atau lebih variabel dengan jumlah kategori yang terbatas. Metode cross tabulation dapat menjawab hubungan antara dua atau lebih variabel penelitian tetapi bukan hubungan sebab akibat. Semakin bertambah jumlah variabel yang ditabulasikan maka semakin kompleks interpretasinya (Agresti, 2007). Variabel X terdiri dari I kategori dan variabel Y terdiri dari J kategori. Tabel klasifikasi silang antara X dengan Y adalah Tabel kontingensi I x J.
Tabel kontingensi yang paling sederhana adalah tabel kontingensi 2 arah dengan variabel X memiliki 2 kategori dan variabel Y memiliki 2 kategori yang disebut Tabel kontingensi 2 x 2. Struktur dari tabel kontingensi 2x2 dapat dilihat pada tabel berikut.
dimana:
xi = kategori ke-i variabel X dengan i = 1, 2
yj = kategori ke-j variabel Y dengan j = 1, 2
n11 = jumlah observasi dalam kategori x1 dan y1
n12 = jumlah observasi dalam kategori x1 dan y2
n21 = jumlah observasi dalam kategori x2 dan y1
n22 = jumlah observasi dalam kategori x2 dan y2
n1. = jumlah observasi dalam x1 (n1. = n11 + n12)
n2. = jumlah observasi dalam x2 (n2. = n21 + n22)
n.1 = jumlah observasi dalam y1 (n.1 = n11 + n21)
n.2 = jumlah observasi dalam y2 (n.2 = n12 + n22)
n.. = total keseluruhan sampel (n.. = n11 + n12 + n21 + n22)
Data yang digunakan diperoleh dari Pusat Penelitian Pendapat Nasional (National Opinion Research Center), Amerika Serikat yang merupakan hasil dari General Social Survey, 1975 yang dilakukan untuk melihat perbandingan dari jenis kelamin dan tingkat pendidikan responden dalam menentukan sikap terhadap peran wanita. Pernyataan yang diajukan adalah “Wanita sebaiknya menjaga atau memelihara rumah mereka dan ikut suami selamanya”. Data berdasarkan responden berjenis kelamin Pria disajikan pada tabel berikut.
dimana:
X = Masa pendidikan responden dalam tahun yaitu ≤ 8 dan 9-12
Y = Jawaban responden yaitu setuju dan tidak setuju dengan pernyataan diatas
Distribusi peluang terdapat pada tabel kontingensi dimana variabel X dan Y merupakan variabel acak dan pemilihan sampel dilakukan secara acak. Berikut ini adalah perhitungan distribusi peluang dari tabel kontingensi 2x2.
πij adalah peluang bersama untuk kategori X ke-i dan kategori Y ke-j.
Penaksir peluang bersama dirumuskan sebagai berikut: \[ \hat{\pi}_{ij} = p_{ij} = \frac{n_{ij}}{n} \]
Berikut adalah hasil perhitungan peluang bersama:
Interpretasi
Peluang bersama menunjukkan probabilitas terjadinya dua peristiwa sekaligus, misalnya seseorang berpendidikan ≤8 dan setuju dengan pernyataan memiliki peluang sebesar 0.1694. Nilai ini mencerminkan proporsi responden dalam sampel yang memenuhi kedua kondisi tersebut secara bersamaan.
Distribusi marginal adalah jumlah total dari setiap baris dan kolom dalam tabel peluang bersama.
Penaksir peluang marginal baris dirumuskan sebagai berikut:
\[ \hat{\pi}_{i+} = p_{i+} = \frac{n_{i+}}{n} = \sum_{j=1}^{J} p_{ij} \]
Penaksir peluang marginal kolom dirumuskan sebagai berikut:
\[ \hat{\pi}_{+j} = p_{+j} = \frac{n_{+j}}{n} = \sum_{i=1}^{I} p_{ij} \]
Berikut adalah hasil perhitungan peluang marginal:
\(P(\text{Pendidikan ≤ 8}) = \frac{119}{425} = 0.2800\)
\(P(\text{Pendidikan 9-12}) = \frac{306}{425} = 0.7200\)
\(P(\text{Setuju}) = \frac{182}{425} = 0.4282\)
\(P(\text{Tidak Setuju}) = \frac{243}{425} = 0.5717\)
Interpretasi
Peluang marginal mengukur probabilitas terjadinya satu peristiwa tanpa mempertimbangkan kejadian lainnya, misalnya probabilitas responden yang berpendidikan ≤8 adalah sebesar 0.28, tanpa memperhatikan apakah mereka setuju atau tidak setuju. Nilai ini diperoleh dari penjumlahan peluang bersama di sepanjang baris atau kolom tabel kontingensi.
Apabila variabel X yang menjadi syarat maka distribusi peluang Y bersyarat X maka
Penaksir peluang bersyarat dirumuskan sebagai berikut:
\[ \hat{\pi}_{j|i} = p_{j|i} = \frac{n_{ij}}{n_{i+}} \] Dimana tiap i berlaku Σπj|i = 1
Berikut adalah hasil perhitungan peluang bersyarat:
\(P(\text{Setuju} \mid \text{Pendidikan ≤ 8}) = \frac{72}{119} = 0.605\)
\(P(\text{Setuju} \mid \text{Pendidikan 9-12}) = \frac{110}{306} = 0.359\)
\(P(\text{Tidak Setuju} \mid \text{Pendidikan ≤ 8}) = \frac{47}{119} = 0.395\)
\(P(\text{Tidak Setuju} \mid \text{Pendidikan 9-12}) = \frac{196}{306} = 0.641\)
Interpretasi
Peluang bersyarat menunjukkan probabilitas suatu peristiwa terjadi dengan syarat peristiwa lainnya telah terjadi, misalnya probabilitas seseorang setuju dengan syarat mereka berpendidikan ≤8 adalah sebesar 0.605. Adapun nilai P(Setuju|≤8) > P(Setuju|9-12), hal ini menunjukkan bahwa responden dengan pendidikan ≤8 tahun lebih cenderung setuju dengan pernyataan dibandingkan dengan responden dengan pendidikan 9-12 tahun. Interpretasi ini membantu memahami hubungan antar variabel dengan mengisolasi efek salah satu variabel terhadap variabel lainnya.
# Input Data
data <- matrix(c(72,47,110,196), nrow = 2, byrow = TRUE)
colnames(data) <- c("Setuju", "Tidak Setuju")
rownames(data) <- c("≤8", "9-12")
n <- sum(data)
# Peluang Bersama
P_joint <- data / n
# Peluang Marginal
P_marginal_rows <- rowSums(data) / n
P_marginal_cols <- colSums(data) / n
# Peluang Bersyarat
P_conditional <- data / rowSums(data)
# Hasil
list(Peluang_Bersama = P_joint, Peluang_Marginal_Baris = P_marginal_rows, Peluang_Marginal_Kolom = P_marginal_cols, Peluang_Bersyarat = P_conditional)
## $Peluang_Bersama
## Setuju Tidak Setuju
## ≤8 0.1694118 0.1105882
## 9-12 0.2588235 0.4611765
##
## $Peluang_Marginal_Baris
## ≤8 9-12
## 0.28 0.72
##
## $Peluang_Marginal_Kolom
## Setuju Tidak Setuju
## 0.4282353 0.5717647
##
## $Peluang_Bersyarat
## Setuju Tidak Setuju
## ≤8 0.6050420 0.3949580
## 9-12 0.3594771 0.6405229
Dari perhitungan ini, kita dapat mengetahui bahwa:
Tabel kontingensi 2 × 2 sangat berguna untuk menganalisis keterkaitan antara dua variabel kategorik secara sistematis.
Konsep peluang bersama, marginal, dan bersyarat merupakan landasan penting dalam mengevaluasi hubungan statistik antar variabel dalam tabel kontingensi.
Proses perhitungan manual yang dikombinasikan dengan pemrograman R dapat meningkatkan kecepatan dan akurasi analisis data.
Visualisasi dan struktur tabel membantu dalam menyederhanakan interpretasi hasil bagi peneliti maupun pembaca awam.
Penggunaan R juga memungkinkan integrasi analisis statistik lanjutan seperti uji chi-square untuk memperkuat kesimpulan.
Desain sampling adalah strategi sistematis dalam memilih sampel dari populasi yang bertujuan untuk memperoleh data yang representatif, terutama dalam analisis data kategorik seperti preferensi, sikap, atau klasifikasi sosial. Desain ini menjadi sangat penting karena menentukan validitas, efisiensi, dan sejauh mana hasil analisis dapat digeneralisasikan ke populasi yang lebih luas. Tanpa desain sampling yang tepat, analisis terhadap data kategorik seperti distribusi frekuensi atau uji asosiasi dapat menghasilkan kesimpulan yang bias atau menyesatkan. Secara umum, desain sampling dibagi menjadi beberapa jenis sebagai berikut.
Prospective sampling adalah metode pengambilan sampel dalam penelitian di mana subjek dipilih terlebih dahulu dan kemudian diikuti atau diamati ke depan dalam kurun waktu tertentu untuk melihat perkembangan, kejadian, atau outcome tertentu. Metode ini umum digunakan dalam studi longitudinal atau kohort, khususnya dalam bidang epidemiologi dan ilmu kesehatan, karena memungkinkan peneliti untuk mengamati hubungan sebab-akibat secara lebih jelas. Dengan prospective sampling, data dikumpulkan secara berurutan dari waktu ke waktu, sehingga mengurangi risiko bias ingatan (recall bias) dan memberikan kontrol yang lebih baik terhadap variabel yang berubah seiring waktu. Beberapa jenis desain sampling dari metode ini yaitu:
Dalam penelitian eksperimental, partisipan dialokasikan secara acak ke dalam kelompok perlakuan dan kelompok kontrol. Beberapa teknik sampling yang sering digunakan antara lain:
Simple Random Sampling: Setiap anggota populasi memiliki peluang yang sama untuk terpilih sebagai sampel.
Stratified Random Sampling: Populasi dibagi ke dalam kelompok (strata) berdasarkan karakteristik tertentu, kemudian sampel diambil secara acak dari masing-masing strata tersebut.
Cluster Sampling: Populasi dibagi ke dalam sejumlah kelompok (cluster), lalu beberapa cluster dipilih secara acak untuk dianalisis lebih lanjut.
Cohort study adalah jenis penelitian observasional di mana sekelompok individu (kohort) yang memiliki karakteristik atau pengalaman tertentu diikuti dari waktu ke waktu untuk melihat hubungan antara faktor risiko dan kejadian (outcome) tertentu. Teknik sampling yang umum digunakan dalam cohort study yaitu:
Systematic Sampling: Pemilihan dilakukan berdasarkan interval tetap dari daftar populasi (misalnya setiap ke-10 orang).
Sensus Sampling: Teknik pengambilan data di mana seluruh anggota populasi dijadikan sampel.
Matched Sampling: Setiap individu dalam kelompok kohort dipasangkan dengan individu serupa dalam kelompok lain berdasarkan variabel tertentu.
Retrospective sampling adalah metode pengambilan sampel di mana peneliti memilih subjek berdasarkan kejadian atau outcome yang sudah terjadi, lalu menelusuri kembali data atau kondisi sebelumnya untuk mencari faktor risiko atau penyebab. Retrospective sampling umum digunakan pada studi berikut.
Case-control study adalah jenis penelitian observasional yang membandingkan sekelompok individu dengan outcome tertentu (kasus) dengan kelompok tanpa outcome tersebut (kontrol), untuk menelusuri paparan atau faktor risiko di masa lalu. Studi ini cocok untuk meneliti penyakit langka atau kejadian dengan jangka waktu panjang karena lebih cepat dan hemat biaya dibanding studi kohort. Teknik sampling yang umum digunakan pada studi ini yaitu:
Purposive Sampling: Kasus dan kontrol dipilih secara sengaja berdasarkan kriteria tertentu.
Snowball Sampling: Teknik sampling non-probabilitas di mana partisipan awal merekomendasikan atau merekrut responden lain dari jaringan mereka yang memiliki kriteria serupa.
Incidence Density Sampling: Metode pengambilan kontrol dalam studi kasus-kontrol berbasis kohort, di mana kontrol dipilih dari individu yang masih berisiko saat kasus terjadi.
Dalam studi kohort retrospektif, informasi dari masa lalu dimanfaatkan untuk mengklasifikasikan individu berdasarkan riwayat paparannya, kemudian dianalisis untuk melihat outcome yang muncul. Beberapa teknik sampling yang umum diterapkan antara lain:
Convenience Sampling: Teknik pengambilan sampel berdasarkan kemudahan akses atau ketersediaan data, tanpa acak.
Quota Sampling: Pemilihan sampel untuk memenuhi jumlah tertentu dalam kategori atau kelompok agar mencerminkan proporsi populasi.
Case-Based Sampling: Sampel ditentukan berdasarkan adanya karakteristik kasus atau outcome yang telah terjadi sebelumnya.
Cross-sectional study adalah jenis penelitian observasional yang mengamati data atau variabel pada satu titik waktu tertentu untuk menganalisis hubungan antar variabel dalam populasi. Studi ini tidak melihat hubungan sebab-akibat secara langsung, tetapi berguna untuk menggambarkan situasi saat ini dalam populasi. Teknik sampling yang umum digunakan antara lain:
Simple Random Sampling: Setiap individu memiliki peluang yang sama untuk dipilih.
Stratified Sampling: Populasi dibagi menjadi strata berdasarkan karakteristik tertentu, lalu sampel diambil dari setiap strata.
Cluster Sampling: Digunakan ketika populasi tersebar luas; beberapa kelompok (cluster) dipilih secara acak lalu seluruh anggota dalam cluster diamati.
Asosiasi adalah hubungan antara variabel X dan Y yang keduanya bersifat kategori dalam tabel kontingensi. Terdapat tiga jenis ukuran asosiasi dalam tabel kontingensi dua arah diantaranya:
Beda Peluang (atau bisa disebut juga sebagai Beda Proporsi dan Risk Difference) mengacu pada selisih antara proporsi dua kejadian atau kondisi. Jika Y merupakan variabel respon, beda peluang bersyarat Y = j untuk dua kategori dari X, h dan i memberikan indikasi ada tidaknya asosiasi antara keduanya.
Beda Peluang (BP) dihitung dengan rumus:
\[ BP = p_{j|h} - p_{j|i} \]
Jika BP > 0, maka risiko kejadian lebih tinggi pada kelompok x1 dibandingkan kelompok x2.
Jika BP < 0, maka risiko kejadian lebih rendah pada kelompok x1 dibandingkan kelompok x2.
Jika BP = 0, maka tidak ada perbedaan risiko antara dua kelompok.
Berikut adalah hasil perhitungan Beda Peluang:
\[ \text{BP} = p_{\text{1|1}} - p_{\text{1|2}} = 0.605 - 0.359 = 0.246 \]
Interpretasi
Beda peluang sebesar 0.246 menunjukkan peluang responden dengan pendidikan ≤ 8 tahun yang setuju terhadap pernyataan lebih tinggi 0.246 dibandingkan dengan responden dengan pendidkan 9-12 tahun
Risiko relatif (RR) adalah rasio antara dua peluang bersyarat yaitu antara peluang Y=j dalam baris X=h dengan X=i.
Resiko Relatif (RR) dihitung dengan rumus:
\[ RR = \frac{p_{j|h}}{p_{j|i}} \]
Jika RR > 1, maka kejadian lebih sering terjadi pada kelompok x1 dibandingkan kelompok x2
Jika RR < 1, maka kejadian lebih jarang terjadi pada kelompok x1 dibandingkan kelompok x2
Jika RR = 1, maka tidak ada perbedaan risiko antara dua kelompok.
Berikut adalah hasil perhitungan Resiko Relatif:
\[ RR = \frac{p_{1|1}}{p_{1|2}} = \frac{0.605}{0.359} = 1.683 \]
Interpretasi
Nilai Risiko Relatif (RR) sebesar 1.683 menunjukkan bahwa responden dengan pendidikan ≤ 8 tahun memiliki kemungkinan 1.683 kali lebih besar untuk setuju dengan pernyataan “Wanita sebaiknya menjaga atau memelihara rumah mereka dan ikut suami selamanya”, dibandingkan dengan responden yang berpendidikan 9-12 tahun.
Odds ratio adalah rasio dari dua odds, yaitu peluang relatif untuk terjadinya suatu kejadian pada satu grup dibandingkan dengan grup lainnya. Nilai odds berada diantara 1 sampai tak hingga. Jika nilai OR = 1, artinya tidak terdapat asosiasi antara variabel X dan variabel Y. Sebelum menghitung odds ratio, perlu ditentukan terlebih dahulu satu kategori dari baris dan satu dari kolom untuk dijadikan patokan (baseline).
Odds Ratio untuk tabel kontingensi 2 x 2 dihitung dengan rumus:\[ OR = \frac{n_{11} n_{22}}{n_{12} n_{21}} \]
Jika OR > 1, maka peluang kejadian lebih besar pada kelompok x1 dibandingkan kelompok x2
Jika OR < 1, maka peluang kejadian lebih kecil pada kelompok x1 dibandingkan kelompok x2
Jika OR = 1, maka tidak ada perbedaan peluang kejadian antara dua kelompok.
Berikut adalah hasil perhitungan Odds Ratio:
\[ OR = \frac{n_{11} n_{22}}{n_{12} n_{21}} = \frac{72 \times 196}{47 \times 110} = 2.729 \]
Interpretasi
Nilai Odds Ratio (OR) sebesar 2.729 menunjukkan bahwa peluang responden dengan pendidikan ≤ 8 tahun untuk setuju terhadap pernyataan “Wanita sebaiknya menjaga atau memelihara rumah mereka dan ikut suami selamanya” adalah sekitar 2.73 kali lebih besar dibandingkan dengan responden yang berpendidikan 9-12 tahun.
uk_asosiasi <- function(n11, n12, n21, n22) {
# Beda Peluang
BP <- (n11 / (n11 + n12)) - (n21 / (n21 + n22))
# Resiko Relatif
RR <- (n11 / (n11 + n12)) / (n21 / (n21 + n22))
# Odds Ratio
OR <- (n11 * n22) / (n12 * n21)
hasil <- list(
Beda_Peluang = BP,
Resiko_Relatif = RR,
Odds_Ratio = OR
)
return(hasil)
}
uk_asosiasi(72, 47, 110, 196)
## $Beda_Peluang
## [1] 0.2455649
##
## $Resiko_Relatif
## [1] 1.683117
##
## $Odds_Ratio
## [1] 2.729594
Dari perhitungan ini, kita dapat mengetahui bahwa:
Besar hubungan antara paparan dan outcome dapat diukur melalui nilai beda peluang, resiko relatif, dan odds ratio.
Arah dan kekuatan asosiasi antara variabel kategori dapat diinterpretasikan secara kuantitatif untuk mendukung kesimpulan penelitian.
Menurut Walpole dan Myers (2012), inferensi statistik adalah proses membuat estimasi, prediksi, atau keputusan tentang populasi berdasarkan data sampel yang diperoleh secara acak dari populasi tersebut. Dalam konteks tabel kontingensi dua arah, inferensi digunakan untuk menganalisis hubungan antara dua variabel kategorikal yang disusun dalam tabel kontingensi. Tujuan utama dari inferensi pada tabel ini adalah untuk memahami hubungan antara variabel-variabel tersebut melalui estimasi dan pengujian hipotesis. Inferensi statistika dibagi menjadi dua kategori, yaitu:
Estimasi: Estimasi dalam statistik adalah proses untuk menaksir atau memperkirakan nilai suatu parameter populasi berdasarkan data dari sampel. Estimasi yang baik harus bersifat tidak bias, efisien, dan konsisten agar dapat merepresentasikan karakteristik populasi secara akurat.
Uji Hipotesis: Uji hipotesis dalam inferensi statistik adalah suatu prosedur untuk mengevaluasi klaim atau pernyataan tentang parameter populasi berdasarkan data sampel. Tujuan utamanya adalah untuk menentukan apakah terdapat cukup bukti dari data sampel untuk menolak hipotesis nol (H₀), yang biasanya menyatakan bahwa tidak ada efek atau perbedaan. Beberapa contoh uji hipotesis dalam tabel kontingensi dua arah yaitu uji proporsi, uji independensi dan uji asosiasi.
Estimasi dalam statistik adalah proses menduga nilai suatu parameter berdasarkan data yang diperoleh dari sampel.
Estimasi dibagi menjadi dua jenis yaitu:
Estimasi titik (point estimation) adalah metode dalam statistik yang digunakan untuk memberikan satu nilai numerik sebagai perkiraan terbaik dari suatu parameter populasi berdasarkan data sampel.
Estimasi titik proporsi memiliki rumus:
\[ \hat{p} = \frac{x}{n} \]
dimana:
\(\hat{p}\) = estimasi titik proporsi
\(x\) = jumlah individu dalam kategori tertentu
\(n\) = total jumlah individu dalam sampel
Estimasi interval adalah metode dalam statistik yang digunakan untuk memperkirakan nilai suatu parameter populasi dengan memberikan rentang nilai (interval) yang memiliki tingkat kepercayaan tertentu. Berbeda dengan estimasi titik yang memberikan satu nilai tunggal, estimasi interval mencakup dua nilai batas—batas bawah dan batas atas—di mana parameter populasi diyakini berada, dengan tingkat kepercayaan tertentu (misalnya 95%). Estimasi ini memberikan gambaran lebih lengkap tentang ketidakpastian estimasi dan seberapa besar kemungkinan parameter populasi berada dalam rentang tersebut. Sebagai contoh, interval kepercayaan 95% menunjukkan bahwa ada 95% kemungkinan parameter populasi berada dalam rentang tersebut jika pengambilan sampel diulang berkali-kali.
Estimasi interval proporsi dihitung dengan rumus :
\[ \hat{p} \pm Z_{\alpha/2} \sqrt{\frac{\hat{p}(1 - \hat{p})}{n}} \]
dimana:
\(\hat{p}\) adalah estimasi titik proporsi (jumlah individu dalam kategori tertentu dibagi total individu dalam sampel)
\(Z_{\alpha/2}\) adalah nilai kritis dari distribusi normal standar yang sesuai dengan tingkat kepercayaan (misalnya, untuk 95% tingkat kepercayaan, \(Z \approx 1.96\))
\(n\) adalah jumlah individu dalam sampel.
Dilakukan estimasi interval untuk setiap ukuran asosiasi pada tabel kontingensi 2x2 sebagai berikut.
Penaksir Beda Proporsi (BP) dihitung dengan rumus:
\[ BP = p_{j|h} - p_{j|i} \]
Standard Error untuk BP dihitung dengan rumus:
\[ se(BP) = \sqrt{ \frac{p_{j|h}(1 - p_{j|h})}{n_{h+}} + \frac{p_{j|i}(1 - p_{j|i})}{n_{i+}} } \]
Untuk sampel besar, interval kepercayaan 100(1-α)% bagi BP yaitu:
\[ (p_{j|h} - p_{j|i}) \pm Z_{\alpha/2} \cdot se(BP) \]
Berikut adalah hasil perhitungan estimasi interval Beda Peluang dengan α = 5%.
Beda Peluang antara Pendidikan ≤ 8 dan Pendidikan 9-12 adalah:
\[ \text{BP} = p_{\text{≤8, Setuju}} - p_{\text{9-12, Setuju}} = 0.605 - 0.359 = 0.246 \]
Standard Error (SE) dihitung dengan rumus:
\[ se(BP) = \sqrt{\frac{p_{\text{≤8, Setuju}}(1 - p_{\text{≤8, Setuju}})}{n_{\text{≤8}}}+ \frac{p_{\text{9-12, Setuju}}(1 - p_{\text{9-12, Setuju}})}{n_{\text{9-12}}}} \]
\[ se(BP) = \sqrt{\frac{0.605(1 - 0.605)}{119} + \frac{0.359(1 - 0.359)}{306}} = \sqrt{\frac{0.605 \times 0.395}{119} + \frac{0.359 \times 0.641}{306}} \] \[ = \sqrt{\frac{0.239975}{119} + \frac{0.230879}{306}} = \sqrt{0.002016 + 0.000755} = \sqrt{0.002771} = 0.0525 \]
Interval kepercayaan 95% untuk Beda Peluang (BP) adalah:
\[ \text{CI} = BP \pm Z_{\alpha/2} \cdot se(BP) \]
\[ \text{CI} = 0.246 \pm 1.96 \times 0.0527 \]
Batas bawah dan batas atas interval kepercayaan:
\[ \text{CI Lower} = 0.246 - 1.96 \times 0.0527 = 0.246 - 0.1033 = 0.1426 \]
\[ \text{CI Upper} = 0.246 + 1.96 \times 0.0527 = 0.246 + 0.1033 = 0.3485 \]
Jadi, interval kepercayaan 95% untuk Beda Peluang adalah:
\[ (0.1426, 0.3485) \\ \]
Perhitungan dengan R
hitung_bp_ci <- function(n11, n12, n21, n22, z = 1.96) {
# Hitung total per baris
n1_total <- n11 + n12
n2_total <- n21 + n22
# Hitung proporsi kejadian pada masing-masing kelompok
p1 <- n11 / n1_total
p2 <- n21 / n2_total
# Beda proporsi
bp <- p1 - p2
# Standard error
se <- sqrt((p1 * (1 - p1)) / n1_total + (p2 * (1 - p2)) / n2_total)
# Confidence Interval
ci_lower <- bp - z * se
ci_upper <- bp + z * se
# Keluaran hasil
list(
p1 = p1,
p2 = p2,
BP = bp,
SE = se,
CI_lower = ci_lower,
CI_upper = ci_upper
)
}
hitung_bp_ci(n11 = 72, n12 = 47, n21 = 110, n22 = 196)
## $p1
## [1] 0.605042
##
## $p2
## [1] 0.3594771
##
## $BP
## [1] 0.2455649
##
## $SE
## [1] 0.05254123
##
## $CI_lower
## [1] 0.1425841
##
## $CI_upper
## [1] 0.3485457
Interpretasi
Beda peluang sebesar 0.246 menunjukkan peluang responden dengan pendidikan ≤ 8 tahun yang setuju terhadap pernyataan lebih tinggi 0.246 dibandingkan dengan responden dengan pendidkan 9-12 tahun
Interval kepercayaan 95% untuk beda peluang ini adalah (0.1426, 0.3485), yang berarti kita yakin 95% bahwa nilai Beda Peluang sebenarnya dalam populasi berada dalam rentang 0.1426 hingga 0.3485.
Penaksir Resiko Relatif (RR) dihitung dengan:
\[ RR = \frac{p_{j|h}}{p_{j|i}} \]
Standard Error untuk \(\ln(RR)\) dihitung dengan:
\[ se(\ln RR) = \sqrt{\frac{(1 - p_{j|h})}{p_{j|h} n_{h+}} + \frac{(1 - p_{j|i})}{p_{j|i} n_{i+}}} \]
Untuk sampel besar, interval kepercayaan 100(1 - α)% bagi \(\ln(RR)\) yaitu:
\[ \ln RR \pm Z_{\alpha/2} \cdot se(\ln RR) \]
Penaksir odds ratio \(\ln(RR)\) memiliki distribusi asimptotis normal.
Berikut perhitungan untuk estimasi interval Resiko Relatif dengan α = 5%.
RR dihitung sebagai:
\[ RR = \frac{p_{1|1}}{p_{1|2}} = \frac{0.605}{0.359} = 1.683 \]
Standard Error bagi \(\ln(RR)\) dihitung dengan rumus:
\[ se(\ln RR) = \sqrt{\frac{(1 - p_{\text{≤8, Setuju}})}{p_{\text{≤8, Setuju}} n_{\text{≤8}}} + \frac{(1 - p_{\text{9-12, Setuju}})}{p_{\text{9-12, Setuju}} n_{\text{9-12}}}} \]
\[ se(\ln RR) = \sqrt{\frac{(1 - 0.605)}{0.605 \times 119} + \frac{(1 - 0.359)}{0.359 \times 306}} = \sqrt{\frac{0.395}{71.995} + \frac{0.641}{109.484}} = \sqrt{0.00548 + 0.00586} = \sqrt{0.01134} = 0.1063 \]
Untuk sampel besar, interval kepercayaan 95% bagi \(\ln(RR)\) dihitung dengan rumus:
\[ \ln(RR) \pm Z_{\alpha/2} \times se(\ln(RR)) \]
\[ \ln(RR) = \ln(1.683) = 0.5206 \]
Batas bawah dan batas atas dari interval kepercayaan adalah:
\[ \text{CI Lower} = 0.5206 - 1.96 \times 0.1063 = 0.514 - 0.2087 = 0.3122 \]
\[ \text{CI Upper} = 0.5206 + 1.96 \times 0.1063 = 0.514 + 0.2087 = 0.729 \]
Diperoleh Confidence Interval untuk \(\ln(RR)\) adalah:
\[ (0.3122, 0.729) \]
Untuk mendapatkan CI untuk \(RR\), dioperasikan antilog (eksponensial) dari batas bawah dan batas atas \(\ln(RR)\).
\[ \text{CI Lower} = e^{0.3122} \approx 1.3664 \]
\[ \text{CI Upper} = e^{0.729} \approx 2.0731 \]
Jadi, Confidence Interval untuk \(RR\) adalah:
\[ (1.3664,\ 2.0731) \]
Perhitungan dengan R
# Fungsi untuk menghitung RR dan CI
hitung_RR_ci <- function(n11, n12, n21, n22) {
# Probabilitas masing-masing kelompok
p1 <- n11 / (n11 + n12)
p2 <- n21 / (n21 + n22)
# Hitung Risk Ratio
RR <- p1 / p2
# Hitung ln(RR)
ln_RR <- log(RR)
# Hitung standard error ln(RR)
se_lnRR <- sqrt((1 - p1) / (p1 * (n11 + n12)) + (1 - p2) / (p2 * (n21 + n22)))
# Hitung CI 95% untuk ln(RR)
z <- 1.96
CI_lower_ln <- ln_RR - z * se_lnRR
CI_upper_ln <- ln_RR + z * se_lnRR
# Konversi ke antilog (eksponensial)
CI_lower <- exp(CI_lower_ln)
CI_upper <- exp(CI_upper_ln)
# Tampilkan hasil
return(list(
RR = RR,
ln_RR = ln_RR,
se_lnRR = se_lnRR,
CI_lnRR = c(CI_lower_ln, CI_upper_ln),
CI_RR = c(CI_lower, CI_upper)
))
}
hitung_RR_ci(n11 = 72, n12 = 47, n21 = 110, n22 = 196)
## $RR
## [1] 1.683117
##
## $ln_RR
## [1] 0.5206474
##
## $se_lnRR
## [1] 0.1063413
##
## $CI_lnRR
## [1] 0.3122185 0.7290762
##
## $CI_RR
## [1] 1.366453 2.073165
Interpretasi
Nilai Risiko Relatif (RR) sebesar 1.683 menunjukkan bahwa responden dengan pendidikan ≤ 8 tahun memiliki kemungkinan 1.683 kali lebih besar untuk setuju dengan pernyataan “Wanita sebaiknya menjaga atau memelihara rumah mereka dan ikut suami selamanya”, dibandingkan dengan responden yang berpendidikan 9-12 tahun.
Kelompok dengan pendidikan ≤ 8 tahun secara signifikan lebih tinggi, yaitu antara 1.36 sampai 2.07 kali lipat, dibandingkan kelompok dengan pendidikan 9-12 tahun. Karena CI tidak mencakup angka 1, maka hubungan ini tidak terjadi secara kebetulan dan dapat dianggap signifikan secara statistik pada tingkat kepercayaan 95%.
Interval kepercayaan 95% untuk resiko relatif ini adalah (1.3664, 2.0731) yang berarti kita yakin 95% bahwa nilai resiko relatif sebenarnya dalam populasi berada dalam rentang 1.3664 hingga 2.0731.
Penaksir Odds Ratio dihitung dengan rumus:
\[ \hat{\theta} = \frac{n_{11} n_{22}}{n_{12} n_{21}} \]
Standard error bagi penaksir log odds ratio dihitung dengan rumus:
\[ se(\ln \hat{\theta}) = \sqrt{\frac{1}{n_{11}} + \frac{1}{n_{12}} + \frac{1}{n_{21}} + \frac{1}{n_{22}}} \]
Untuk sampel besar, interval kepercayaan 100(1 - α)% bagi penaksir log odds ratio yaitu:
\[ \ln \hat{\theta} \pm Z_{\alpha/2} \cdot se(\ln \hat{\theta}) \]
Penaksir log odds ratio \(\ln(OR)\) memiliki distribusi asimptotis normal.
Berikut perhitungan untuk estimasi interval Odds Ratio dengan α = 5%.
Odds Ratio dihitung dengan rumus:
\[ OR = \frac{n_{11} n_{22}}{n_{12} n_{21}} = \frac{72 \times 196}{47 \times 110} = 2.729 \]
\[ \ln(OR) = \ln(2.729) = 1.0041 \]
Standard error bagi penaksir log odds ratio adalah:
\[ se(\ln OR) = \sqrt{\frac{1}{n_{11}} + \frac{1}{n_{12}} + \frac{1}{n_{21}} + \frac{1}{n_{22}}} \]
\[ se(\ln OR) = \sqrt{\frac{1}{72} + \frac{1}{47} + \frac{1}{110} + \frac{1}{196}} = \sqrt{0.01389 + 0.02128 + 0.00909 + 0.00510} = \sqrt{0.04936} = 0.2221 \]
Untuk sampel besar, interval kepercayaan 95% bagi \(\ln(OR)\) dihitung dengan rumus:
\[ \ln(OR) \pm Z_{\alpha/2} \times se(\ln OR) \]
Confidence Interval dihitung sebagai:
\[ CI_{\text{lower}} = 1.0041 - 1.96 \times 0.222 = 1.018 - 0.435 = 0.5687 \]
\[ CI_{\text{upper}} = 1.0041 + 1.96 \times 0.222 = 1.018 + 0.435 = 1.4396 \]
Sehingga Confidence Interval untuk \(\ln(OR)\) adalah:
\[ (0.5687, 1.4396) \] Untuk mendapatkan CI untuk \(OR\), dioperasikan antilog (eksponensial) dari batas bawah dan batas atas \(\ln(OR)\).
\[ \text{CI Lower} = e^{0.5687} \approx 1.7659 \]
\[ \text{CI Upper} = e^{1.4396} \approx 4.219 \]
Jadi, Confidence Interval untuk \(OR\) adalah:
\[ (1.7659,\ 4.219) \]
Perhitungan dengan R
# Fungsi perhitungan Odds Ratio dan CI-nya
hitung_OR_ci <- function(n11, n12, n21, n22) {
# Hitung Odds Ratio
OR <- (n11 * n22) / (n12 * n21)
# Log OR
ln_OR <- log(OR)
# Standard error log(OR)
se_lnOR <- sqrt(1/n11 + 1/n12 + 1/n21 + 1/n22)
# CI 95% untuk ln(OR)
z <- 1.96
CI_lower_ln <- ln_OR - z * se_lnOR
CI_upper_ln <- ln_OR + z * se_lnOR
# CI 95% untuk OR (eksponensial)
CI_lower <- exp(CI_lower_ln)
CI_upper <- exp(CI_upper_ln)
# Tamplikan hasil
return(list(
OR = OR,
ln_OR = ln_OR,
se_lnOR = se_lnOR,
CI_lnOR = c(CI_lower_ln, CI_upper_ln),
CI_OR = c(CI_lower, CI_upper)
))
}
hitung_OR_ci(72, 47, 110, 196)
## $OR
## [1] 2.729594
##
## $ln_OR
## [1] 1.004153
##
## $se_lnOR
## [1] 0.2221676
##
## $CI_lnOR
## [1] 0.5687043 1.4396013
##
## $CI_OR
## [1] 1.765977 4.219013
Interpretasi
Uji proporsi bertujuan untuk menguji apakah proporsi kejadian pada satu kelompok berbeda secara signifikan dengan proporsi kejadian pada kelompok lain. Untuk menguji hipotesis bahwa tidak ada perbedaan proporsi antara dua kelompok, kita menggunakan uji z dua proporsi, adapun perhitungan uji proporsi untuk contoh kasus sebagai berikut:
Hipotesis
Hipotesis Nol (H₀): Tidak ada perbedaan proporsi antara dua kelompok (\(p_1 = p_2\))
Hipotesis Alternatif (H₁): Terdapat perbedaan proporsi antara dua kelompok (\(p_1 \neq p_2\))
Taraf Signifikansi
α = 5%
Statistik Uji
Statistik Uji untuk Uji Proporsi Dua Sampel:
\[ Z = \frac{\hat{p}_1 - \hat{p}_2}{\sqrt{\hat{p}(1 - \hat{p}) \left( \frac{1}{n_1} + \frac{1}{n_2} \right)}} \]
Perhitungan Manual
Estimasi proporsi dalam masing-masing kelompok:
\[ \hat{p}_1 = \frac{n_{11}}{n_1.} = \frac{72}{119} = 0.605 \]
\[ \quad \hat{p}_2 = \frac{n_{21}}{n_2.} = \frac{110}{306} = 0.3594 \]
Estimasi Proporsi Gabungan (Pooling Proportion):
\[ \hat{p} = \frac{n_{11} + n_{21}}{n_1. + n_2.} = \frac{182}{425} = 0.4282 \]
Sehingga diperoleh nilai statistik uji Z:
\[ Z = \frac{\hat{p}_1 - \hat{p}_2}{\sqrt{\hat{p}(1 - \hat{p}) \left( \frac{1}{n_1.} + \frac{1}{n_2.} \right)}} = \frac{0.605 - 0.3594}{\sqrt{0.4282(1 - 0.4282) \left( \frac{1}{119} + \frac{1}{306} \right)}} = 4.5943 \]
Perhitungan dengan R
set.seed(7)
data<- matrix(c(72, 47, 110, 196), nrow = 2, byrow = TRUE)
dimnames(data) <- list("Pendidikan" = c("≤ 8", "9-12"), "Jawaban" = c("Setuju", "Tidak Setuju"))
print(data)
## Jawaban
## Pendidikan Setuju Tidak Setuju
## ≤ 8 72 47
## 9-12 110 196
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 = 20.11, df = 1, p-value = 7.31e-06
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## 0.1367503 0.3543795
## sample estimates:
## prop 1 prop 2
## 0.6050420 0.3594771
Nilai Kritis
Nilai Z tabel
\[ Z_{\alpha/2} = Z_{0.05/2} = Z_{0.025} = 1.96 \]
Nilai Chi-Square tabel
\[ X^2_{(\text{df=1;α=0.05})} = 3.841 \]
Kriteria Uji
Berdasarkan nilai Z: Tolak H0 jika Z hitung > Z tabel
Berdasarkan nilai Chi-Square: Tolak H0 jika Chi Square hitung > Chi Square tabel
Keputusan
Berdasarkan nilai Z: nilai Z hitung (4.594) > Z tabel (1.96) maka Tolak H0
Berdasarkan nilai Chi-Square: Chi Square hitung (20.11) > Chi Square tabel (3.841) maka Tolak H0
Kesimpulan
Berdasarkan taraf signifikansi 5%, dapat disimpulkan bahwa terdapat perbedaan proporsi jawaban yang signifikan antara kelompok pendidikan ≤ 8 tahun dan pendidikan 9-12 tahun.
Uji asosiasi adalah suatu uji statistik yang digunakan untuk mengetahui apakah terdapat hubungan yang signifikan antara dua variabel kategorik. Tiga ukuran utama dalam uji asosiasi yaitu sebagai berikut.
Risk Difference mengukur selisih risiko absolut antara dua kelompok. Perhitungan uji asosiasi dengan RD sebagai berikut:
Hipotesis
Hipotesis Nol (H₀): Tidak ada asosiasi antara dua variabel
Hipotesis Alternatif (H₁): Ada asosiasi antara dua variabel.
Taraf Signifikansi
α = 5%
Statistik Uji
Statistik uji Z dihitung dengan:
\[ Z_{RD} = \frac{RD}{SE(RD)} \]
Perhitungan Manual
RD dihitung dengan:
\[ \text{RD} = p_{\text{1|1}} - p_{\text{1|2}} = 0.605 - 0.359 = 0.246 \]
Standard Error untuk RD dihitung dengan:
\[ SE(RD) = \sqrt{\frac{\hat{p}_1(1 - \hat{p}_1)}{n_1.} + \frac{\hat{p}_2(1 - \hat{p}_2)}{n_2.}} = \sqrt{\frac{0.605(1 - 0.605)}{119} + \frac{0.359(1 - 0.359)}{306}} = 0.0525 \]
Diperoleh nilai Z hitung:
\[ Z_{RD} = \frac{RD}{SE(RD)} = \frac{0.246}{0.0525} = 4.674 \]
Perhitungan dengan R
hitung_Z_RD <- function(n11, n12, n21, n22) {
# Total sampel untuk masing-masing kelompok
n1. <- n11 + n12
n2. <- n21 + n22
# Estimasi proporsi untuk masing-masing kelompok
p1 <- n11 / n1.
p2 <- n21 / n2.
# Risk Difference (RD)
rd <- p1 - p2
# Standard Error untuk RD
se_rd <- sqrt((p1 * (1 - p1) / n1.) + (p2 * (1 - p2) / n2.))
# Z untuk RD
z_rd <- rd / se_rd
# Mengembalikan hasil
return(list(
RD = rd,
SE_RD = se_rd,
Z_RD = z_rd
))
}
hitung_Z_RD(n11 = 72, n12 = 47, n21 = 110, n22 = 196)
## $RD
## [1] 0.2455649
##
## $SE_RD
## [1] 0.05254123
##
## $Z_RD
## [1] 4.673756
Nilai Kritis
\[ Z_{\alpha/2} = Z_{0.05/2} = Z_{0.025} = 1.96 \]
Kriteria Uji
Tolak H0 jika Z hitung > Z tabel
Keputusan
Nilai Z hitung (4.674) > Z tabel (1.96) maka Tolak H0
Kesimpulan
Berdasarkan taraf signifikansi 5%, dapat disimpulkan bahwa terdapat hubungan yang signifikan antara variabel pendidikan dengan variabel jawaban.
Relative Risk (RR) adalah rasio yang menggambarkan perbandingan kemungkinan kejadian suatu peristiwa antara dua kelompok. Perhitungan uji asosiasi dengan RR sebagai berikut:
Hipotesis
Hipotesis Nol (H₀): Tidak ada asosiasi antara dua variabel
Hipotesis Alternatif (H₁): Ada asosiasi antara dua variabel.
Taraf Signifikansi
α = 5%
Statistik Uji
Statistik uji Z dihitung dengan:
\[ Z_{RR} = \frac{lnRR}{SE(lnRR)} \]
Perhitungan Manual
RR dihitung dengan:
\[ RR = \frac{p_{1|1}}{p_{1|2}} = \frac{0.605}{0.359} = 1.683 \]
Standard Error untuk log(RR) dihitung dengan:
\[ SE(\ln RR) = \sqrt{\frac{1}{n_{11}} - \frac{1}{n_1.} + \frac{1}{n_{21}} - \frac{1}{n_2.}} = \sqrt{\frac{1}{72} - \frac{1}{119} + \frac{1}{110} - \frac{1}{306}} = 0.1063 \]
Diperoleh nilai Z hitung:
\[ Z_{RR} = \frac{lnRR}{SE(lnRR)} = \frac{ln(1.683)}{0.1063} = \frac{0.5206}{0.1063} = 4.896 \]
Perhitungan dengan R
hitung_Z_RR <- function(n11, n12, n21, n22) {
# Total sampel untuk masing-masing kelompok
n1. <- n11 + n12
n2. <- n21 + n22
# Estimasi proporsi untuk masing-masing kelompok
p1 <- n11 / n1.
p2 <- n21 / n2.
# Relative Risk (RR)
rr <- p1 / p2
# Standard Error untuk ln(RR)
se_ln_rr <- sqrt(1/n11 - 1/n1. + 1/n21 - 1/n2.)
# Z untuk RR
z_rr <- log(rr) / se_ln_rr
# Mengembalikan hasil
return(list(
RR = rr,
SE_ln_RR = se_ln_rr,
Z_RR = z_rr
))
}
hitung_Z_RR(n11 = 72, n12 = 47, n21 = 110, n22 = 196)
## $RR
## [1] 1.683117
##
## $SE_ln_RR
## [1] 0.1063413
##
## $Z_RR
## [1] 4.896005
Nilai Kritis
\[ Z_{\alpha/2} = Z_{0.05/2} = Z_{0.025} = 1.96 \]
Kriteria Uji
Tolak H0 jika Z hitung > Z tabel
Keputusan
Nilai Z hitung (4.896) > Z tabel (1.96) maka Tolak H0
Kesimpulan
Berdasarkan taraf signifikansi 5%, dapat disimpulkan bahwa terdapat hubungan yang signifikan antara variabel pendidikan dengan variabel jawaban.
Odds Ratio (OR) adalah rasio yang membandingkan peluang terjadinya suatu peristiwa antara dua kelompok, dengan menghitung perbandingan antara odds kejadian pada kelompok yang terpapar dan kelompok yang tidak terpapar. Perhitungan uji asosiasi dengan OR sebagai berikut:
Hipotesis
Hipotesis Nol (H₀): Tidak ada asosiasi antara dua variabel
Hipotesis Alternatif (H₁): Ada asosiasi antara dua variabel.
Taraf Signifikansi
α = 5%
Statistik Uji
Statistik uji Z dihitung dengan:
\[ Z_{OR} = \frac{lnOR}{SE(lnOR)} \]
Perhitungan Manual
OR dihitung dengan:
\[ OR = \frac{n_{11} n_{22}}{n_{12} n_{21}} = \frac{72 \times 196}{47 \times 110} = 2.729 \]
Standard Error untuk log(OR) dihitung dengan:
\[ SE(\ln OR) = \sqrt{\frac{1}{n_{11}} + \frac{1}{n_{12}} + \frac{1}{n_{21}} + \frac{1}{n_{22}}} = \sqrt{\frac{1}{72} + \frac{1}{47} + \frac{1}{110} + \frac{1}{196}} = 0.2221 \]
Diperoleh nilai Z hitung:
\[ Z_{OR} = \frac{lnOR}{SE(lnOR)} = \frac{ln(2.729)}{0.2221} = \frac{1.004}{0.2221} = 4.52 \]
Perhitungan dengan R
hitung_Z_OR <- function(n11, n12, n21, n22) {
# Total sampel untuk masing-masing kelompok
n1. <- n11 + n12
n2. <- n21 + n22
# Estimasi proporsi untuk masing-masing kelompok
p1 <- n11 / n1.
p2 <- n21 / n2.
# Odds Ratio (OR)
or <- (n11*n22)/(n12*n21)
# Standard Error untuk ln(OR)
se_ln_or <- sqrt(1/n11 + 1/n12 + 1/n21 + 1/n22)
# Z untuk OR
z_or <- log(or) / se_ln_or
# Mengembalikan hasil
return(list(
OR = or,
SE_ln_OR = se_ln_or,
Z_OR = z_or
))
}
hitung_Z_OR(n11 = 72, n12 = 47, n21 = 110, n22 = 196)
## $OR
## [1] 2.729594
##
## $SE_ln_OR
## [1] 0.2221676
##
## $Z_OR
## [1] 4.519799
Nilai Kritis
\[ Z_{\alpha/2} = Z_{0.05/2} = Z_{0.025} = 1.96 \]
Kriteria Uji
Tolak H0 jika Z hitung > Z tabel
Keputusan
Nilai Z hitung (4.52) > Z tabel (1.96) maka Tolak H0
Kesimpulan
Berdasarkan taraf signifikansi 5%, dapat disimpulkan bahwa terdapat hubungan yang signifikan antara variabel pendidikan dengan variabel jawaban.
Independensi adalah kondisi di mana variabel-variabel acak tidak memiliki pengaruh satu sama lain. Kebebasan (Independensi) dua variabel kategori ditunjukkan oleh:
\[\pi_{ij} = \pi_{i+} \pi_{+j}\]
Maka hipotesis untuk menguji kebebasan adalah:
\(H_0 : \pi_{ij} = \pi_{i+} \pi_{+j} \quad \text{(Variabel X dan Y saling bebas)}\)
\(H_1 : \pi_{ij} \neq \pi_{i+} \pi_{+j} \quad \text{(Variabel X dan Y tidak saling bebas)}\)
Uji independensi dapat dilakukan dengan berbagai statistik uji berikut.
Hipotesis
H₀: Tidak ada hubungan antara variabel X (Pendidikan) dan variabel Y (Setuju/Tidak Setuju)
H₁: Ada hubungan antara variabel X (Pendidikan) dan variabel Y (Setuju/Tidak Setuju)
Taraf Signifikansi
α = 5%
Statistik Uji
Rumus Chi-Square adalah:
\[ \chi^2 = \sum \frac{(O - E)^2}{E} \]
dimana:
O = nilai observasi dalam tabel kontingensi
E = nilai ekspektasi
\[ 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
Perhitungan Manual
Berikut perhitungan nilai yang diharapkan \(E_{ij}\) pada masing-masing kategori:
\(E_{11} = \frac{119 \times 182}{425} = 50.96\)
\(E_{12} = \frac{119 \times 243}{425} = 68.04\)
\(E_{21} = \frac{306 \times 182}{425} = 131.04\)
\(E_{22} = \frac{306 \times 243}{425} = 174.96\)
Perhitungan \(\chi^2\) yaitu sebagai berikut.
\[ \chi^2 = \frac{(72 - 50.95)^2}{50.95} + \frac{(47 - 68.04)^2}{68.04} + \frac{(110 - 131.04)^2}{131.04} + \frac{(196 - 174.96)^2}{174.96} = 21.11 \]
Perhitungan dengan R
# Input Data
set.seed(7)
data<- matrix(c(72, 47, 110, 196), nrow = 2, byrow = TRUE)
dimnames(data) <- list("Pendidikan" = c("≤ 8", "9-12"), "Jawaban" = c("Setuju", "Tidak Setuju"))
print(data)
## Jawaban
## Pendidikan Setuju Tidak Setuju
## ≤ 8 72 47
## 9-12 110 196
# Uji Chi-Square
chisq_test <- chisq.test(data)
print(chisq_test)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: data
## X-squared = 20.11, df = 1, p-value = 7.31e-06
Perbedaan nilai Chi-Square ini dipengaruhi oleh Yates’ continuity correction.
Nilai Kritis
Nilai Chi-Square tabel
\[ X^2_{(\text{df=1;α=0.05})} = 3.841 \] Dengan:
df = (r - 1)(c - 1) = (2 - 1)(2 - 1) = 1
r = jumlah baris
c = jumlah kolom
Kriteria Uji
Tolak H0 jika Chi Square hitung > Chi Square tabel
Keputusan
Nilai Chi Square hitung (21.11) > Chi Square tabel (3.841) maka Tolak H0.
Kesimpulan
Berdasarkan keputusan tolak H0, artinya terdapat hubungan yang signifikan antara variabel Pendidikan dan jawaban responden Setuju/Tidak Setuju. Dengan kata lain, pendidikan tidak saling bebas dengan jawaban responden.
Partisi Chi-Square adalah teknik untuk memecah nilai statistik Chi-Square total dari tabel kontingensi menjadi beberapa bagian sesuai dengan struktur data, sehingga dapat diketahui komponen atau sel mana yang memberikan kontribusi terbesar terhadap nilai Chi-Square (Sudjana, 1996). Ini dilakukan untuk:
Mengidentifikasi sumber utama perbedaan atau hubungan antar variabel dalam tabel kontingensi.
Mengetahui kelompok mana yang menyumbang paling besar terhadap ketidaksesuaian antara data aktual dan data harapan.
Menjadi alat bantu dalam analisis lanjutan atau eksploratif, setelah analisis Chi-Square utama menunjukkan adanya asosiasi yang signifikan.
Partisi Chi-Square ini juga dapat mengidentifikasi Simpson’s Paradox, yaitu tren yang muncul dalam beberapa kelompok data dapat menghilang atau bahkan berbalik arah ketika data tersebut digabungkan.
Langkah-langkah Partisi Chi-Square
Contoh Kasus
Khusus untuk contoh kasus Partisi Chi-Square akan berbeda dengan contoh kasus sebelumnya. Penelitian digunakan untuk mengetahui adakah hubungan antara tingkat pendidikan masyarakat dengan jenis bank yang dipilih (Bank Swasta Nasional, Bank Swasta Asing dan Bank Pemerintah) untuk menyimpan uangnya. Pendidikan masyarakat dikelompokkan menjadi dua yaitu lulusan SMA dan Perguruan Tinggi. Berdasarkan permasalahan tersebut didapatkan data sebagai berikut:
Hipotesis
H₀: Tidak ada hubungan antara variabel X (Lulusan) dan variabel Y (Jenis Bank)
H₁: Ada hubungan antara variabel X (Lulusan) dan variabel Y (Jenis Bank)
Taraf Signifikansi
α = 5%
Statistik Uji
Rumus Chi-Square adalah:
\[ \chi^2 = \sum \frac{(O - E)^2}{E} \]
dimana:
O = nilai observasi dalam tabel kontingensi
E = nilai ekspektasi
\[ 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.
Perhitungan Manual
Perhitungan 1: Uji Chi Square Keseluruhan
Berikut perhitungan nilai yang diharapkan \(E_{ij}\) pada masing-masing kategori:
\(E_{11} = \frac{99 \times 137}{227} = 59.75\)
\(E_{12} = \frac{99 \times 65}{227} = 28.36\)
\(E_{13} = \frac{99 \times 25}{227} = 10.89\)
\(E_{21} = \frac{128 \times 137}{227} = 77.25\)
\(E_{22} = \frac{128 \times 65}{227} = 36.64\)
\(E_{23} = \frac{128 \times 25}{227} = 14.11\)
Perhitungan \(\chi^2\) yaitu sebagai berikut:
\[ \chi^2 = \frac{(71 - 59.75)^2}{59.75} + \frac{(22 - 28.36)^2}{28.36} + \frac{(6 - 10.89)^2}{10.89} + \frac{(66 - 77.25)^2}{77.25} + \frac{(43 - 36.64)^2}{36.64} + \frac{(19 - 14.11)^2}{14.11} \]
\[ \chi^2 = \frac{126.56}{59.75} + \frac{40.45}{28.36} + \frac{23.90}{10.89} + \frac{126.56}{77.25} + \frac{40.45}{36.64} + \frac{23.90}{14.11} \]
\[ \chi^2 = 2.12 + 1.43 + 2.20 + 1.64 + 1.10 + 1.69 = 10.18 \]
Diperoleh Chi-Square hitung sebesar 10.18.
Tabel kontingensi akan dipecah menjadi sub-tabel berdasarkan Jenis Bank. Tabel dipecah menjadi tabel 2×2 sebanyak (I-1)(J-1) = (2-1)(3-1) = (1)(2) = 2 sub-tabel. Pengelompokan berdasarkan jenis bank ini karena jenis bank mencerminkan segmentasi pasar. Lulusan PT mungkin lebih banyak terpapar informasi keuangan, sehingga memilih bank berbeda dari lulusan SMA. Pendidikan bisa memengaruhi preferensi terhadap citra bank, akses layanan digital, hingga kenyamanan transaksi.
Perhitungan 2: Partisi 1 (Bank Pemerintah vs. Bank Swasta Nasional)
Partisi ini memungkinkan kita melihat perbedaan preferensi antara dua jenis bank domestik: apakah lulusan SMA dan PT memiliki kecenderungan berbeda dalam memilih bank yang berbasis negara vs swasta lokal.
Berikut perhitungan nilai yang diharapkan \(E_{ij}\) pada masing-masing kategori:
Perhitungan \(\chi^2\) yaitu sebagai berikut:
\[ \chi^2 = \frac{(71 - 63.06)^2}{63.06} + \frac{(22 - 29.94)^2}{29.94} + \frac{(66 - 73.94)^2}{73.94} + \frac{(43 - 35.06)^2}{35.06} \]
\[ \chi^2 = \frac{62.99}{63.06} + \frac{62.99}{29.94} + \frac{62.99}{73.94} + \frac{62.99}{35.06} \]
\[ \chi^2 = 1.00 + 2.10 + 0.85 + 1.80 = 5.75 \]
Diperoleh Chi-Square hitung sebesar 5.75.
Perhitungan 3: Partisi 2 (Bank Pemerintah + Bank Swasta Nasional vs Bank Swasta Asing)
Partisi ini menyederhanakan dua entitas lokal vs asing. Dari perspektif nasabah, memilih bank asing menunjukkan preferensi terhadap layanan yang lebih global/internasional. Ini dapat menunjukkan apakah lulusan PT, misalnya, lebih nyaman dengan layanan bank asing dibanding lulusan SMA.
Berikut perhitungan nilai yang diharapkan \(E_{ij}\) pada masing-masing kategori:
Perhitungan \(\chi^2\) yaitu sebagai berikut:
\[ \chi^2 = \frac{(93 - 88.09)^2}{88.09} + \frac{(6 - 10.9)^2}{10.9} + \frac{(109 - 113.9)^2}{113.9} + \frac{(19 - 14.09)^2}{14.09} \]
\[ \chi^2 = \frac{24.40}{88.06} + \frac{24.40}{10.94} + \frac{24.40}{113.94} + \frac{24.40}{14.06} \]
\[ \chi^2 = 0.28 + 2.23 + 0.21 + 1.74 = 4.39 \]
Diperoleh Chi-Square hitung sebesar 4.39.
Perhitungan dengan R
# Data Observasi Keseluruhan
data_all <- matrix(c(71, 22, 6, 66, 43, 19), nrow = 2, byrow = TRUE)
colnames(data_all) <- c("Bank Pemerintah", "Bank Swasta Nasional", "Bank Swasta Asing")
rownames(data_all) <- c("SMA", "PT")
data_all
## Bank Pemerintah Bank Swasta Nasional Bank Swasta Asing
## SMA 71 22 6
## PT 66 43 19
# Data Partisi 1
data_part1 <- matrix(c(71, 22, 66, 43), nrow = 2, byrow = TRUE)
colnames(data_part1) <- c("Bank Pemerintah", "Bank Swasta Nasional")
rownames(data_part1) <- c("SMA", "PT")
data_part1
## Bank Pemerintah Bank Swasta Nasional
## SMA 71 22
## PT 66 43
# Data Partisi 2
data_part2 <- matrix(c(93, 6, 109, 19), nrow = 2, byrow = TRUE)
colnames(data_part2) <- c("Bank Pemerintah + Bank Swasta Nasional", "Bank Swasta Asing")
rownames(data_part2) <- c("SMA", "PT")
data_part2
## Bank Pemerintah + Bank Swasta Nasional Bank Swasta Asing
## SMA 93 6
## PT 109 19
# Uji Chi-Square
chi_test_all <- chisq.test(data_all); chi_test_all
##
## Pearson's Chi-squared test
##
## data: data_all
## X-squared = 10.189, df = 2, p-value = 0.006132
chi_test1 <- chisq.test(data_part1); chi_test1
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: data_part1
## X-squared = 5.0349, df = 1, p-value = 0.02484
chi_test2 <- chisq.test(data_part2); chi_test2
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: data_part2
## X-squared = 3.5437, df = 1, p-value = 0.05977
Perbedaan nilai Chi-Square ini dipengaruhi oleh Yates’ continuity correction. Dalam pengujian ini, nilai statistik uji yang digunakan akan berasal dari hasil perhitungan R.
Nilai Kritis
Nilai Chi-Square tabel
Untuk Uji Chi-Square Keseluruhan:
\[ X^2_{(\text{df=2;α=0.05})} = 5.991 \]
Dengan:
df = (r - 1)(c - 1) = (2 - 1)(3 - 1) = 2
Untuk Uji Chi-Square Partisi:
\[ X^2_{(\text{df=1;α=0.05})} = 3.841 \]
Dengan:
df = (r - 1)(c - 1) = (2 - 1)(2 - 1) = 1
Kriteria Uji
Tolak H0 jika Chi Square hitung > Chi Square tabel
Keputusan
Untuk Keseluruhan: Nilai Chi Square hitung (10.189) > Chi Square tabel (5.991) maka Tolak H0.
Untuk Partisi 1: Nilai Chi Square hitung (5.0349) > Chi Square tabel (3.841) maka Tolak H0.
Untuk Partisi 2: Nilai Chi Square hitung (3.5437) < Chi Square tabel (3.841) maka Terima H0.
Kesimpulan
Hasil uji keseluruhan menunjukkan bahwa terdapat hubungan yang signifikan antara Lulusan seseorang dengan Jenis Bank yang dipilih untuk menyimpan uang.
Hasil uji partisi 1 menunjukkan bahwa terdapat hubungan yang signifikan antara Lulusan seseorang dengan Bank Pemerintah dan Bank Swasta Nasional. Sehingga ada perbedaan antara Bank Pemerintah dan Bank Swasta Nasional.
Hasil uji partisi 2 menunjukkan bahwa tidak terdapat hubungan yang signifikan antara Lulusan seseorang dengan Bank Pemerintah + Bank Swasta Nasional dan Bank Swasta Asing. Sehingga gabungan antara Bank Pemerintah + Bank Swasta Nasional tidak berbeda signifikan dengan Bank Swasta Asing.
Berdasarkan Partisi Chi-Square ini dapat disimpulkan bahwa Lulusan lebih mempengaruhi pilihan antara Bank Pemerintah dan Bank Swasta Nasional, tetapi tidak berpengaruh signifkan terhadap pilihan Bank Swasta Asing.
Statistik Likelihood Ratio menjadi alternatif statistik uji lainnya jika ukuran sampel besar di dalam tabel kontingensi. Perhitungan Statistik Likelihood Ratio dan uji seterusnya akan kembali menggunakan contoh kasus pertama.
Hipotesis
H₀: Tidak ada hubungan antara variabel X (Pendidikan) dan variabel Y (Setuju/Tidak Setuju)
H₁: Ada hubungan antara variabel X (Pendidikan) dan variabel Y (Setuju/Tidak Setuju)
Taraf Signifikansi
α = 5%
Statistik Uji
Nilai statistik uji \(G^2\) dihitung dengan rumus:
\[ G^2 = 2 \sum_{i} \sum_{j} O_{ij} \times \ln \left( \frac{O_{ij}}{E_{ij}}\right) \]
dimana:
O = nilai observasi dalam tabel kontingensi
E = nilai ekspektasi
\[ 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
Perhitungan Manual
Diketahui data sebagai berikut.
Hitung Frekuensi Ekspektasi:
\(E_{11} = \frac{119 \times 182}{425} = 50.96\)
\(E_{12} = \frac{119 \times 243}{425} = 68.04\)
\(E_{21} = \frac{306 \times 182}{425} = 131.04\)
\(E_{22} = \frac{306 \times 243}{425} = 174.96\)
Hitung Statistik Uji G²:
\[ G^2 = 2 \left[ 72 \ln \left( \frac{72}{50.96} \right) + 47 \ln \left( \frac{47}{68.04} \right) + 110 \ln \left( \frac{110}{131.04} \right) + 196 \ln \left( \frac{196}{174.96} \right) \right] \]
\[ G^2 = 2 \left[ 72(0.353) + 47(-0.377) + 110(-0.174) + 196(0.114) \right] \]
\[ G^2 = 2 \left[ 25.42 - 17.72 - 19.14 + 22.34 \right] = 21.004 \]
Perhitungan dengan R
# Data Observasi
data <- matrix(c(72, 47, 110, 196), nrow = 2, byrow = TRUE)
colnames(data) <- c("Setuju", "Tidak Setuju")
rownames(data) <- c("≤ 8", "9-12")
# Hitung Frekuensi Ekspektasi
ekspektasi <- chisq.test(data)$expected; ekspektasi
## Setuju Tidak Setuju
## ≤ 8 50.96 68.04
## 9-12 131.04 174.96
# Hitung Statistik G²
G2 <- 2 * sum(data * log(data / ekspektasi)); G2
## [1] 21.00445
Nilai Kritis
\[ \chi^2_{0.95, 1} = 3.841 \]
Kriteria Uji
Tolak H0 jika \[G^2 \geq \chi^2_{(1 - \alpha/2)(I - 1)(J - 1)}\]
Keputusan
Karena \(G^2 = 21.004 > 3.841\), maka Tolak H₀
Kesimpulan
Berdasarkan perhitungan, terdapat hubungan yang signifikan antara Pendidikan dan Jawaban (Setuju/Tidak Setuju). Pendidikan mempengaruhi kecenderungan seseorang dalam menjawab pernyataan kesetaraan gender tersebut.
Fisher’s Exact Test adalah uji statistik yang digunakan untuk mengukur signifikansi hubungan antara dua variabel kategorik dalam tabel kontingensi 2x2, terutama ketika ukuran sampel kecil atau ketika frekuensi harapan dalam salah satu sel kurang dari 5. Uji ini pertama kali dirancang oleh Sir Ronald A. Fisher, seorang tokoh terkemuka di bidang statistik, yang menerapkannya dalam konteks studi-studi ilmiah di bidang biologi dan kedokteran. Fisher’s Exact Test memperoleh relevansi tinggi dalam situasi data dengan jumlah kasus yang terbatas, karena metode ini tidak mensyaratkan distribusi data mengikuti pola normal, sehingga sangat ideal untuk analisis data kategorik berskala kecil. Sebelum melakukan uji Exact Fisher, perlu diketahui perhitungan distribusi hipergeometrik.
Distribusi Hipergeometrik
Distribusi hipergeometrik adalah distribusi probabilitas diskrit yang menggambarkan peluang terambilnya sejumlah item sukses dari suatu populasi terbatas tanpa pengembalian. Dengan kata lain, distribusi ini digunakan untuk menghitung probabilitas mendapatkan \(x\) elemen “berhasil” dalam \(n\) kali pengambilan acak dari populasi yang terdiri dari dua kategori (berhasil dan gagal), tanpa pengembalian setelah tiap pengambilan.
Persamaan Distribusi Hipergeometrik:
\[ P(X = x) = \frac{\binom{K}{x} \cdot \binom{N - K}{n - x}}{\binom{N}{n}} \]
dimana:
Contoh:
Dalam sebuah kotak terdapat 10 bola: 4 merah dan 6 putih. Jika diambil 3 bola tanpa pengembalian, peluang mendapatkan 2 bola merah adalah:
Perhitungan Manual
\[ P(X = 2) = \frac{\binom{4}{2} \cdot \binom{6}{1}}{\binom{10}{3}} = \frac{6 \cdot 6}{120} = \frac{36}{120} = 0.3 \]
Perhitungan dengan R
# Definisi parameter
N <- 10 # Total populasi
K <- 4 # Jumlah kategori sukses (bola putih)
n <- 3 # Jumlah sampel diambil
x <- 2 # Jumlah sukses dalam sampel
# Hitung probabilitas P(X = 2)
dhyper(x, m = K, n = N - K, k = n)
## [1] 0.3
Karakteristik:
Contoh Kasus
Seorang peneliti ingin mengetahui apakah terdapat hubungan antara jenis kelamin dan keputusan membeli produk baru dalam survei awal pemasaran. Penelitian dilakukan di Desa Sariwangi yang memiliki populasi kecil, dan jumlah responden terbatas, sehingga uji Fisher lebih tepat digunakan dibanding uji Chi-Square.
Data yang dikumpulkan ditampilkan dalam tabel berikut:
Hipotesis
\(H_0 : \theta = 1 \quad (\text{Variabel X dan Y saling bebas})\)
\(H_1 : \theta > 1 \quad (\text{Variabel X dan Y tidak saling bebas})\)
Statistik Uji
Nilai p-value dihitung berdasarkan distribusi dari frekuensi \(n_{11}\), dengan distribusi hipergeometrik berikut:
\[ P(n_{11}) = \frac{\binom{n_{1+}}{n_{11}} \cdot \binom{n_{2+}}{n_{+1} - n_{11}}}{\binom{n}{n_{+1}}} \]
dimana:
Perhitungan Manual
Langkah-langkah:
Asumsikan hipotesis nol (tidak ada hubungan antara dua variabel)
Hitung probabilitas tabel yang diamati menggunakan distribusi hipergeometrik
Data Empiris
\[ P(X = 7) = \frac{\binom{9}{7} \cdot \binom{32-9}{21-7}}{\binom{32}{21}} = \frac{6375600}{225792840} = 0.228 \]
Kemungkinan 1
\[ P(X = 8) = \frac{\binom{9}{8} \cdot \binom{32-9}{21-8}}{\binom{32}{21}} = \frac{302841}{225792840} = 0.0798 \]
Kemungkinan 2
\[ P(X = 9) = \frac{\binom{9}{9} \cdot \binom{32-9}{21-9}}{\binom{32}{21}} = \frac{1352078}{225792840} = 0.0104 \]
Kemungkinan 3
\[ P(X = 6) = \frac{\binom{9}{6} \cdot \binom{32-9}{21-6}}{\binom{32}{21}} = \frac{2820556}{225792840} = 0.3192 \]
Kemungkinan 4
\[ P(X = 5) = \frac{\binom{9}{5} \cdot \binom{32-9}{21-5}}{\binom{32}{21}} = \frac{4247984}{225792840} = 0.2394 \]
Kemungkinan 5
\[ P(X = 4) = \frac{\binom{9}{4} \cdot \binom{32-9}{21-4}}{\binom{32}{21}} = \frac{4247984}{225792840} = 0.0985 \]
Kemungkinan 6
\[ P(X = 3) = \frac{\binom{9}{3} \cdot \binom{32-9}{21-3}}{\binom{32}{21}} = \frac{2820556}{225792840} = 0.0219 \]
Kemungkinan 7
\[ P(X = 2) = \frac{\binom{9}{2} \cdot \binom{32-9}{21-2}}{\binom{32}{21}} = \frac{6375600}{225792840} = 0.00247 \]
Kemungkinan 8
\[ P(X = 1) = \frac{\binom{9}{1} \cdot \binom{32-9}{21-1}}{\binom{32}{21}} = \frac{1593900}{225792840} = 0.000123 \]
Kemungkinan 9
\[ P(X = 0) = \frac{\binom{9}{0} \cdot \binom{32-9}{21-0}}{\binom{32}{21}} = \frac{253}{225792840} = 1.96e-06 \]
P-value untuk uji Exact Fisher adalah kumulatif nilai p-value untuk setiap tabel yang lebih kecil sama dengan nilai p-value tabel empiris. Sehingga:
\[ \text{P-Value} = 0.228 + 0.0798 + 0.0104 + 0.0985 + 0.0219 + 0.00247 + 0.00012 + 1.96e-06 = 0.441 \]
Perhitungan dengan R
Cara Manual
empiris <- choose(9, 7) * choose(32-9, 21-7) / choose(32, 21)
k1 <- choose(9, 8) * choose(32-9, 21-8) / choose(32, 21)
k2 <- choose(9, 9) * choose(32-9, 21-9) / choose(32, 21)
k3 <- choose(9, 6) * choose(32-9, 21-6) / choose(32, 21)
k4 <- choose(9, 5) * choose(32-9, 21-5) / choose(32, 21)
k5 <- choose(9, 4) * choose(32-9, 21-4) / choose(32, 21)
k6 <- choose(9, 3) * choose(32-9, 21-3) / choose(32, 21)
k7 <- choose(9, 2) * choose(32-9, 21-2) / choose(32, 21)
k8 <- choose(9, 1) * choose(32-9, 21-1) / choose(32, 21)
k9 <- choose(9, 0) * choose(32-9, 21-0) / choose(32, 21)
list(Peluang_Empiris = empiris,
Peluang_Kemungkinan_1 = k1,
Peluang_Kemungkinan_2 = k2,
Peluang_Kemungkinan_3 = k3,
Peluang_Kemungkinan_4 = k4,
Peluang_Kemungkinan_5 = k5,
Peluang_Kemungkinan_6 = k6,
Peluang_Kemungkinan_7 = k7,
Peluang_Kemungkinan_8 = k8,
Peluang_Kemungkinan_9 = k9)
## $Peluang_Empiris
## [1] 0.2280098
##
## $Peluang_Kemungkinan_1
## [1] 0.07980341
##
## $Peluang_Kemungkinan_2
## [1] 0.01047924
##
## $Peluang_Kemungkinan_3
## [1] 0.3192137
##
## $Peluang_Kemungkinan_4
## [1] 0.2394102
##
## $Peluang_Kemungkinan_5
## [1] 0.09858069
##
## $Peluang_Kemungkinan_6
## [1] 0.02190682
##
## $Peluang_Kemungkinan_7
## [1] 0.002470694
##
## $Peluang_Kemungkinan_8
## [1] 0.0001235347
##
## $Peluang_Kemungkinan_9
## [1] 1.960868e-06
pvalue <- k1+k2+k5+k6+k7+k8+k9+empiris; pvalue
## [1] 0.4413761
Cara Package
data <- matrix(c(7, 14, 2, 9), nrow = 2, byrow = TRUE)
fisher.test(data)
##
## Fisher's Exact Test for Count Data
##
## data: data
## p-value = 0.4414
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.3131772 26.3547167
## sample estimates:
## odds ratio
## 2.196747
Dapat diketahui bahwa hasil perhitungan manual dengan perhitungan R menghasilkan nilai p-value yang sama.
Kriteria Uji
Tolak H0 jika p-value < α
Keputusan
Karena p-value (0.441) > α (0.05), maka Terima H₀
Kesimpulan
Berdasarkan perhitungan, tidak terdapat hubungan yang signifikan antara Jenis Kelamin dan Keputusan Membeli. Dengan ini diketahui bahwa Jenis Kelamin tidak mempengaruhi kecenderungan seseorang dalam memutuskan akan membeli barang tersebut atau tidak.
Residual dalam tabel kontingensi digunakan untuk menentukan sel-sel yang paling berkontribusi pada hubungan antara dua variabel kategori. Konsep ini mengukur perbedaan antara frekuensi yang teramati di setiap sel dan frekuensi yang diharapkan jika variabel-variabel tersebut independen. Residual yang besar, baik positif maupun negatif, menunjukkan bahwa frekuensi yang diamati dalam sel tersebut sangat berbeda dari yang diharapkan, yang mengindikasikan adanya hubungan yang kuat antara variabel pada sel tersebut. Sebaliknya, residual yang kecil menunjukkan bahwa frekuensi observasi mendekati frekuensi yang diharapkan, yang berarti bahwa sel tersebut tidak memberikan kontribusi signifikan terhadap asosiasi antar variabel. Dengan kata lain, residual yang besar pada sel tertentu membantu dalam mengidentifikasi pola atau ketidaksesuaian yang mungkin tidak terlihat dalam analisis awal. Ini memberikan gambaran yang lebih mendalam mengenai interaksi antar kategori, sehingga analisis lebih lanjut dapat diarahkan pada sel-sel yang menunjukkan perbedaan yang signifikan antara nilai yang diamati dan yang diharapkan (Agresti, 2013). Interpretasi nilai residual yaitu:
Jika residual mendekati 0: Artinya frekuensi yang diamati dalam sel tabel kontingensi hampir sama dengan frekuensi yang diharapkan berdasarkan asumsi bahwa variabel-variabel tersebut independen. Artinya, tidak ada perbedaan signifikan antara data yang sebenarnya dan model yang diharapkan, sehingga sel tersebut tidak banyak berkontribusi terhadap hubungan antar variabel. Dalam konteks ini, hubungan antara kategori variabel yang diuji cenderung lemah atau tidak ada sama sekali. Secara garis besar, variabel baris dan kolom dalam tabel tidak memiliki hubungan kuat atau tidak menunjukkan pola keterkaitan yang jelas.
Jika residual besar positif: Menunjukkan bahwa frekuensi yang diamati dalam sel tersebut lebih besar daripada yang diharapkan. Hal ini mengindikasikan bahwa ada hubungan yang lebih kuat atau asosiasi positif antara variabel-variabel tersebut daripada yang diprediksi oleh model independensi. Dalam hal ini, variabel-variabel kategori di dalam sel tersebut cenderung terjadi bersama-sama lebih sering dari yang diharapkan, menunjukkan adanya keterkaitan yang signifikan. Secara garis besar, terdapat hubungan positif yang kuat antara kategori tersebut.
Jika residual besar negatif: Mengindikasikan bahwa frekuensi yang diamati jauh lebih kecil daripada yang diharapkan. Ini berarti bahwa hubungan antara kategori variabel tersebut lebih lemah dari yang diharapkan oleh model independensi, atau bahkan ada ketidakhadiran asosiasi yang signifikan antara variabel pada sel tersebut. Jika residual negatif sangat besar, hal ini mungkin menunjukkan bahwa kategori tertentu jarang terjadi bersama-sama, lebih sedikit dari yang diperkirakan oleh model independensi. Secara garis besar, terdapat hubungan negatif yang kuat antara kategori tersebut.
Outlier dalam analisis data kategori merujuk pada sel dalam tabel kontingensi yang memiliki nilai residual sangat besar, baik positif maupun negatif. Kehadiran outlier ini mengindikasikan bahwa terdapat kategori dengan frekuensi observasi yang jauh lebih tinggi atau lebih rendah dibandingkan dengan nilai yang diharapkan, berdasarkan anggapan bahwa variabel-variabel tersebut saling independen.
Residual dalam tabel kontingensi terdiri dari beberapa jenis, diantaranya:
Pearson residual adalah ukuran statistik yang digunakan untuk menilai seberapa besar perbedaan antara frekuensi yang diamati dan frekuensi yang diharapkan dalam sebuah tabel kontingensi, dengan mengoreksi perbedaan ini berdasarkan variabilitas yang diharapkan. Residual ini dihitung dengan mengurangi nilai yang diharapkan dari nilai yang diamati, kemudian membaginya dengan akar kuadrat dari nilai yang diharapkan. Pearson residual sering digunakan untuk mendeteksi ketidaksesuaian yang signifikan antara data yang teramati dan model yang diharapkan, serta membantu mengidentifikasi sel-sel dalam tabel yang memberikan kontribusi terbesar terhadap ketidaksesuaian tersebut.
Pearson Residual dihitung dengan rumus:
\[ e_{ij} = \frac{O_{ij} - E_{ij}}{\sqrt{E_{ij}}} \]
dimana:
Perhitungan Manual
Diberikan data berikut ini.
Hitung Frekuensi Ekspektasi:
\(E_{11} = \frac{119 \times 182}{425} = 50.96\)
\(E_{12} = \frac{119 \times 243}{425} = 68.04\)
\(E_{21} = \frac{306 \times 182}{425} = 131.04\)
\(E_{22} = \frac{306 \times 243}{425} = 174.96\)
Hitung Pearson Residual:
Perhitungan dengan R
# Data Observasi
dataku <- matrix(c(72, 47, 110, 196), nrow = 2, byrow = TRUE)
# Hitung nilai ekspektasi
ekspektasi <- chisq.test(dataku)$expected
# Pearson Residual
pearson_residual <- (dataku - ekspektasi) / sqrt(ekspektasi); pearson_residual
## [,1] [,2]
## [1,] 2.947345 -2.550725
## [2,] -1.837993 1.590656
Kriteria Uji
Jika nilai \(|e_{ij}|\) > 2, maka sel tersebut dianggap sebagai indikasi adanya outlier.
Interpretasi
Berdasarkan hasil perhitungan Pearson Residual, dapat disimpulkan bahwa terdapat dua sel yang menunjukkan indikasi adanya outlier pada tabel kontingensi tersebut, yaitu:
Standardized residual adalah ukuran statistik yang digunakan untuk mengidentifikasi sejauh mana nilai residual pada sel dalam tabel kontingensi menyimpang dari nilai yang diharapkan, dengan mempertimbangkan variabilitas data (Montgomery, 2012). Berbeda dengan Pearson residual, standardized residual dihitung dengan membagi residual dengan simpangan baku dari nilai ekspektasi, sehingga memberikan skala yang lebih konsisten untuk membandingkan sel yang berbeda. Nilai standardized residual yang besar (positif atau negatif) menunjukkan adanya perbedaan yang signifikan antara nilai yang diamati dan yang diharapkan, yang dapat mengindikasikan hubungan atau asosiasi yang kuat antar variabel.
Standardized Residual dihitung dengan:
\[ r_{ij} = \frac{O_{ij} - E_{ij}}{\sqrt{E_{ij}(1 - p_{i+})(1 - p_{+j})}} \]
dimana:
Perhitungan Manual
Hitung Frekuensi Ekspektasi:
\(E_{11} = \frac{119 \times 182}{425} = 50.96\)
\(E_{12} = \frac{119 \times 243}{425} = 68.04\)
\(E_{21} = \frac{306 \times 182}{425} = 131.04\)
\(E_{22} = \frac{306 \times 243}{425} = 174.96\)
Hitung Probabilitas Marginal:
Hitung Standardized Residual:
Perhitungan dengan R
# Data Observasi
dataku <- matrix(c(72, 47, 110, 196), nrow = 2, byrow = TRUE)
# Hitung nilai ekspektasi
ekspektasi <- chisq.test(dataku)$expected
# Hitung total baris, kolom, dan keseluruhan
row_sum <- rowSums(dataku)
col_sum <- colSums(dataku)
total_sum <- sum(dataku)
# Hitung Standardized Residual
standardized_residual <- (dataku - ekspektasi) / (sqrt(ekspektasi * (1 - row_sum / total_sum) * (1 - col_sum / total_sum)))
# Menampilkan hasil
standardized_residual
## [,1] [,2]
## [1,] 4.593631 -3.975472
## [2,] -5.307910 4.593631
Kriteria Uji
Jika nilai \(|r_{ij}|\) > 3, maka sel tersebut dianggap sebagai outlier signifikan yang mungkin mempengaruhi kesimpulan analisis.
Interpretasi
Berdasarkan hasil perhitungan Standardized Residual, dapat disimpulkan bahwa keseluruhan sel yang menunjukkan adanya outlier yang signifikan pada tabel kontingensi tersebut, yaitu:
Perbedaan Pearson Residual dengan Standardized Residual
Analisis residual pada tabel kontingensi memberikan wawasan tentang seberapa besar kontribusi setiap sel terhadap keterkaitan antara variabel kategori. Residual Pearson digunakan untuk mengukur seberapa besar perbedaan antara nilai yang diamati dan yang diharapkan berdasarkan asumsi independensi, sehingga dapat menunjukkan ketidaksesuaian antara data yang teramati dengan model yang diharapkan. Di sisi lain, residual yang distandarisasi mempertimbangkan pengaruh probabilitas marginal untuk baris dan kolom, yang membantu mengurangi kemungkinan bias dalam interpretasi hasil. Dengan demikian, standardized residual memberikan gambaran yang lebih adil dan objektif mengenai perbedaan antara nilai yang diamati dan yang diharapkan, karena sudah memperhitungkan distribusi total di baris dan kolom. Keduanya, baik residual Pearson maupun residual distandarisasi, memainkan peran penting dalam mengidentifikasi pola atau hubungan yang lebih mendalam dalam data kategori, sekaligus menghindari misinterpretasi yang bisa terjadi akibat perbedaan besar dalam ukuran baris atau kolom.
Tabel kontingensi 3 arah (atau tabel kontingensi tiga dimensi) adalah tabel yang digunakan untuk menganalisis hubungan antara tiga variabel kategori. Tabel ini memperluas konsep tabel kontingensi dua arah, di mana data yang ada disusun dalam tiga dimensi, yaitu baris, kolom, dan lapisan tambahan. Setiap sel dalam tabel ini menunjukkan frekuensi atau jumlah kejadian yang terjadi untuk kombinasi spesifik dari ketiga variabel yang dianalisis.
Tabel kontingensi 3 arah memiliki bentuk umum sebagai berikut.
Tabel kontingensi tiga arah dapat dipecah menjadi:
Tabel Parsial: Merupakan tabel yang menampilkan hubungan antara X dan Y pada setiap kategori Z. Ini memungkinkan analisis hubungan bersyarat, di mana efek Z dikendalikan.
Tabel Marginal: Merupakan tabel yang diperoleh dengan mengabaikan Z, yaitu dengan menjumlahkan semua kategori Z. Ini memberikan gambaran umum hubungan antara X dan Y tanpa mempertimbangkan Z, yang bisa menyebabkan distorsi interpretasi, seperti dalam Simpson’s Paradox.
Data yang digunakan diperoleh dari Pusat Penelitian Pendapat Nasional (National Opinion Research Center), Amerika Serikat yang merupakan hasil dari General Social Survey, 1975 yang dilakukan untuk melihat perbandingan dari jenis kelamin dan tingkat pendidikan responden dalam menentukan sikap terhadap peran wanita. Pernyataan yang diajukan adalah “Wanita sebaiknya menjaga atau memelihara rumah mereka dan ikut suami selamanya”. Data disajikan dalam tabel dibawah ini dengan variabel-variabelnya sebagai berikut:
dimana:
Z = Jenis kelamin responden terdiri dari pria dan wanita
X = Masa pendidikan responden dalam tahun yaitu ≤ 8 dan 9-12
Y = Jawaban responden yaitu setuju dan tidak setuju dengan pernyataan diatas
Tabel kontingensi tiga arah tersebut dapat dibagi menjadi:
Tabel Parsial Pria
Tabel Parsial Wanita
Tabel Marginal
Penyusunan dalam R
# Data Observasi untuk Tabel Kontingensi
data <- array(c(72, 158, 110, 173, 47, 85, 196, 283),
dim = c(2, 2, 2),
dimnames = list(
Jenis_Kelamin = c("Pria", "Wanita"),
Pendidikan = c("<= 8", "9-12"),
Jawaban = c("Setuju", "Tidak Setuju")
))
# Ekstrak tabel parsial berdasarkan jenis kelamin
freq_parsial_pria <- data[1, , ]
freq_parsial_wanita <- data[2, , ]
# Hitung frekuensi marginal untuk jenis kelamin dan pendidikan
freq_marginal_jenis_kelamin <- apply(data, 1, sum)
freq_marginal_pendidikan <- apply(data, 2, sum)
freq_marginal_jawaban <- apply(data, 3, sum)
freq_marginal_tanpa_Z <- apply(data, c(2, 3), sum)
# Tampilkan hasil
list(Tabel_Parsial_Pria = freq_parsial_pria,
Tabel_Parsial_Wanita = freq_parsial_wanita,
Tabel_Marginal_JK = freq_marginal_jenis_kelamin,
Tabel_Marginal_Pendidikan = freq_marginal_pendidikan,
Tabel_Marginal_Jawaban = freq_marginal_jawaban,
Tabel_Marginal_Tanpa_Z = freq_marginal_tanpa_Z)
## $Tabel_Parsial_Pria
## Jawaban
## Pendidikan Setuju Tidak Setuju
## <= 8 72 47
## 9-12 110 196
##
## $Tabel_Parsial_Wanita
## Jawaban
## Pendidikan Setuju Tidak Setuju
## <= 8 158 85
## 9-12 173 283
##
## $Tabel_Marginal_JK
## Pria Wanita
## 425 699
##
## $Tabel_Marginal_Pendidikan
## <= 8 9-12
## 362 762
##
## $Tabel_Marginal_Jawaban
## Setuju Tidak Setuju
## 513 611
##
## $Tabel_Marginal_Tanpa_Z
## Jawaban
## Pendidikan Setuju Tidak Setuju
## <= 8 230 132
## 9-12 283 479
Berdasarkan tabel kontingensi ini, kita dapat mengindikasikan bahwa:
Latar Belakang
Mengangkat isu peran gender, khususnya pandangan terhadap perempuan dan peran mereka dalam rumah tangga, sangat penting untuk menggali persepsi masyarakat yang masih dipengaruhi oleh norma-norma tradisional. Dengan mendukung kesetaraan gender, saya ingin mengeksplorasi bagaimana pendidikan dan jenis kelamin memengaruhi pandangan ini. Pendidikan yang lebih tinggi dan kesadaran sosial diharapkan dapat mengarah pada pandangan yang lebih progresif mengenai peran perempuan dalam keluarga, yang seharusnya tidak terikat oleh stereotip. Melalui analisis ini, diharapkan dapat mengungkap perubahan sosial yang telah terjadi atau hambatan-hambatan yang masih ada dalam mencapai kesetaraan gender.
Adapun pemilihan variabel pada analisis ini didasari oleh beberapa hal. Pemilihan jenis kelamin sebagai variabel cofounder (Z) adalah karena perempuan dan laki-laki sering kali memiliki pandangan yang berbeda mengenai pembagian peran domestik (Lindsey, 2015). Risman (2004) juga mengemukakan bahwa dalam struktur keluarga tradisional, peran gender sering kali terpisah dengan jelas, dengan perempuan diberi tugas domestik dan laki-laki di luar rumah, yang memperkuat ketidaksetaraan gender dalam masyarakat. Oleh karena itu, penting untuk mengeksplorasi bagaimana jenis kelamin mempengaruhi respons terhadap pernyataan ini.
Berikutnya, variabel pendidikan dipilih sebagai variabel independen (X) karena tingkat pendidikan yang lebih tinggi sering kali berhubungan dengan pandangan yang lebih progresif mengenai kesetaraan gender. Pendidikan memiliki pengaruh signifikan dalam membentuk persepsi individu terhadap peran sosial dan gender. Damayanti et al. (2023) menyoroti bahwa pendidikan memainkan peran strategis dalam mengurangi stereotip gender dan mengubah pola pikir diskriminatif, sehingga meningkatkan partisipasi perempuan dan laki-laki dalam berbagai sektor kehidupan.
Variabel dependen (Y) yang merepresentasikan jawaban terhadap pernyataan “Wanita sebaiknya menjaga atau memelihara rumah mereka dan ikut suami selamanya” dengan pilihan “setuju” atau “tidak setuju”, dipilih sebagai variabel respon dalam penelitian ini karena berfungsi untuk mengukur sikap atau pandangan responden terkait peran tradisional gender. Dalam konteks penelitian sosial, variabel dependen adalah variabel yang diamati dan diukur untuk mengetahui pengaruh atau hubungan dengan variabel independen. Dengan menjadikan jawaban terhadap pernyataan tersebut sebagai variabel dependen, penelitian dapat mengidentifikasi dan menganalisis bagaimana faktor-faktor tersebut mempengaruhi pandangan individu mengenai peran tradisional gender.
Berikut ini adalah perhitungan distribusi peluang dari tabel parsial pria, tabel parsial wanita dan tabel marginal.
Penaksir Peluang Bersama dirumuskan sebagai berikut: \[ \hat{\pi}_{ij} = p_{ij} = \frac{n_{ij}}{n} \]
Penaksir Peluang Marginal Baris dirumuskan sebagai berikut:
\[ \hat{\pi}_{i+} = p_{i+} = \frac{n_{i+}}{n} = \sum_{j=1}^{J} p_{ij} \]
Penaksir Peluang Marginal Kolom dirumuskan sebagai berikut:
\[ \hat{\pi}_{+j} = p_{+j} = \frac{n_{+j}}{n} = \sum_{i=1}^{I} p_{ij} \]
Penaksir Peluang Bersyarat dirumuskan sebagai berikut:
\[ \hat{\pi}_{j|i} = p_{j|i} = \frac{n_{ij}}{n_{i+}} \] Dimana tiap i berlaku Σπj|i = 1
Perhitungan dengan R
Tabel Parsial Pria
data <- matrix(c(72,47,110,196), nrow = 2, byrow = TRUE)
colnames(data) <- c("Setuju", "Tidak Setuju")
rownames(data) <- c("≤8", "9-12")
n <- sum(data)
# Peluang Bersama
P_joint <- data / n
# Peluang Marginal
P_marginal_rows <- rowSums(data) / n
P_marginal_cols <- colSums(data) / n
# Peluang Bersyarat
P_conditional <- data / rowSums(data)
# Hasil
list(Peluang_Bersama = P_joint, Peluang_Marginal_Baris = P_marginal_rows, Peluang_Marginal_Kolom = P_marginal_cols, Peluang_Bersyarat = P_conditional)
## $Peluang_Bersama
## Setuju Tidak Setuju
## ≤8 0.1694118 0.1105882
## 9-12 0.2588235 0.4611765
##
## $Peluang_Marginal_Baris
## ≤8 9-12
## 0.28 0.72
##
## $Peluang_Marginal_Kolom
## Setuju Tidak Setuju
## 0.4282353 0.5717647
##
## $Peluang_Bersyarat
## Setuju Tidak Setuju
## ≤8 0.6050420 0.3949580
## 9-12 0.3594771 0.6405229
Tabel Parsial Wanita
data <- matrix(c(158, 85, 173, 283), nrow = 2, byrow = TRUE)
colnames(data) <- c("Setuju", "Tidak Setuju")
rownames(data) <- c("≤8", "9-12")
n <- sum(data)
# Peluang Bersama
P_joint <- data / n
# Peluang Marginal
P_marginal_rows <- rowSums(data) / n
P_marginal_cols <- colSums(data) / n
# Peluang Bersyarat
P_conditional <- data / rowSums(data)
# Hasil
list(Peluang_Bersama = P_joint, Peluang_Marginal_Baris = P_marginal_rows, Peluang_Marginal_Kolom = P_marginal_cols, Peluang_Bersyarat = P_conditional)
## $Peluang_Bersama
## Setuju Tidak Setuju
## ≤8 0.2260372 0.1216023
## 9-12 0.2474964 0.4048641
##
## $Peluang_Marginal_Baris
## ≤8 9-12
## 0.3476395 0.6523605
##
## $Peluang_Marginal_Kolom
## Setuju Tidak Setuju
## 0.4735336 0.5264664
##
## $Peluang_Bersyarat
## Setuju Tidak Setuju
## ≤8 0.6502058 0.3497942
## 9-12 0.3793860 0.6206140
Tabel Marginal
data <- matrix(c(230, 132, 283, 479), nrow = 2, byrow = TRUE)
colnames(data) <- c("Setuju", "Tidak Setuju")
rownames(data) <- c("≤8", "9-12")
n <- sum(data)
# Peluang Bersama
P_joint <- data / n
# Peluang Marginal
P_marginal_rows <- rowSums(data) / n
P_marginal_cols <- colSums(data) / n
# Peluang Bersyarat
P_conditional <- data / rowSums(data)
# Hasil
list(Peluang_Bersama = P_joint, Peluang_Marginal_Baris = P_marginal_rows, Peluang_Marginal_Kolom = P_marginal_cols, Peluang_Bersyarat = P_conditional)
## $Peluang_Bersama
## Setuju Tidak Setuju
## ≤8 0.2046263 0.1174377
## 9-12 0.2517794 0.4261566
##
## $Peluang_Marginal_Baris
## ≤8 9-12
## 0.3220641 0.6779359
##
## $Peluang_Marginal_Kolom
## Setuju Tidak Setuju
## 0.4564057 0.5435943
##
## $Peluang_Bersyarat
## Setuju Tidak Setuju
## ≤8 0.6353591 0.3646409
## 9-12 0.3713911 0.6286089
Interpretasi
Untuk tabel kontingensi 3 arah, distribusi peluang terdiri dari beberapa jenis yaitu.
Peluang bersama dihitung dengan rumus:
\[ P(Z, X, Y) = \frac{f(Z, X, Y)}{N} \]
Perhitungan Manual
Sebagai contoh, akan dihitung peluang seseorang berjenis kelamin Pria, menempuh pendidikan ≤ 8 tahun, dan setuju dengan pernyataan.
\[ P(Pria, ≤8, Setuju) = \frac{72}{1124} = 0.064 \] Perhitungan dengan R
data <- array(c(72, 158, 110, 173, 47, 85, 196, 283),
dim = c(2, 2, 2),
dimnames = list(
Jenis_Kelamin = c("Pria", "Wanita"),
Pendidikan = c("<= 8", "9-12"),
Jawaban = c("Setuju", "Tidak Setuju")
))
# Hitung probabilitas bersama
total <- sum(data)
p_bersama <- data / total
ftable(p_bersama)
## Jawaban Setuju Tidak Setuju
## Jenis_Kelamin Pendidikan
## Pria <= 8 0.06405694 0.04181495
## 9-12 0.09786477 0.17437722
## Wanita <= 8 0.14056940 0.07562278
## 9-12 0.15391459 0.25177936
Peluang marginal dihitung dengan menjumlahkan peluang bersama untuk variabel yang lain:
\[ P(X = x) = \sum_{y} \sum_{z} P(X = x, Y = y, Z = z) \]
atau
\[ P(Y = y) = \sum_{x} \sum_{z} P(X = x, Y = y, Z = z) \]
atau
\[ P(Z = z) = \sum_{x} \sum_{y} P(X = x, Y = y, Z = z) \]
Perhitungan Manual
Sebagai contoh, akan dihitung peluang seseorang setuju dengan pernyataan:
\[ P(Y = Setuju) = \frac{72+110+158+173}{1124} = 0.456 \]
Perhitungan dengan R
data <- array(c(72, 158, 110, 173, 47, 85, 196, 283),
dim = c(2, 2, 2),
dimnames = list(
Jenis_Kelamin = c("Pria", "Wanita"),
Pendidikan = c("<= 8", "9-12"),
Jawaban = c("Setuju", "Tidak Setuju")
))
# Hitung probabilitas bersama
total <- sum(data)
p_bersama <- data / total
# Hitung probabilitas marginal
marginal_X <- apply(p_bersama, 1, sum)
marginal_Y <- apply(p_bersama, 2, sum)
marginal_Z <- apply(p_bersama, 3, sum)
# Tampilkan hasil
list(Marginal_X = marginal_X,
Marginal_Y = marginal_Y,
Marginal_Z = marginal_Z)
## $Marginal_X
## Pria Wanita
## 0.3781139 0.6218861
##
## $Marginal_Y
## <= 8 9-12
## 0.3220641 0.6779359
##
## $Marginal_Z
## Setuju Tidak Setuju
## 0.4564057 0.5435943
Tabel peluang marginal memfasilitasi pemahaman terhadap distribusi probabilitas setiap variabel secara terpisah, tanpa melibatkan variabel lainnya. Hal ini memberikan pemahaman yang berharga dalam menganalisis data kategori menggunakan tabel kontingensi tiga arah.
Peluang bersyarat dihitung dengan rumus:
\[ P(X = x \mid Y = y, Z = z) = \frac{P(X = x, Y = y, Z = z)}{P(Y = y, Z = z)} \]
atau
\[ P(Y = y \mid X = x, Z = z) = \frac{P(X = x, Y = y, Z = z)}{P(X = x, Z = z)} \]
atau
\[ P(Z = z \mid X = x, Y = y) = \frac{P(X = x, Y = y, Z = z)}{P(X = x, Y = y)} \]
Perhitungan Manual
Sebagai contoh, akan dihitung peluang seseorang berjenis kelamin Wanita, jika diketahui bahwa dia setuju dan menempuh pendidikan 9-12 tahun:
\[ P(\text{Z = Wanita} \mid \text{X = Pendidikan } 9-12, \text{Y = Setuju}) = \frac{P(\text{X = Pendidikan } 9-12, \text{Y = Setuju}, \text{Z = Wanita})}{P(\text{X = Pendidikan } 9-12, \text{Y = Setuju})} \]
\[ P(\text{X = Pendidikan } 9-12, \text{Y = Setuju}, \text{Z = Wanita}) = \frac{173}{1124} = 0.1539 \]
\[ P(\text{X = Pendidikan } 9-12, \text{Y = Setuju}) = \frac{110+173}{1124} = 0.2517 \]
Sehingga,
\[ P(\text{Z = Wanita} \mid \text{X = Pendidikan } 9-12, \text{Y = Setuju}) = \frac{0.1539}{0.2517} = 0.6114 \]
Perhitungan dengan R
# Data yang diberikan dalam bentuk array
data <- array(c(72, 110, 47, 196, 158, 173, 85, 283),
dim = c(2, 2, 2),
dimnames = list(
Pendidikan = c("<= 8", "9-12"),
Jawaban = c("Setuju", "Tidak Setuju"),
Jenis_Kelamin = c("Pria", "Wanita")
))
# Hitung probabilitas bersama
total <- sum(data)
p_bersama <- data / total
# Hitung probabilitas marginal
marginal_X <- apply(p_bersama, 1, sum)
marginal_Y <- apply(p_bersama, 2, sum)
marginal_Z <- apply(p_bersama, 3, sum)
p_X_Y_Setuju <- sum(p_bersama["9-12", "Setuju", ])
p_X_Y_Setuju_Z_Wanita <- p_bersama["9-12", "Setuju", "Wanita"]
# P(Z = Wanita | X = Pendidikan 9-12, Y = Setuju)
p_Z_given_XY <- p_X_Y_Setuju_Z_Wanita / p_X_Y_Setuju
p_Z_given_XY
## [1] 0.6113074
Ukuran asosiasi dalam tabel kontingensi digunakan untuk mengukur kekuatan hubungan antara dua variabel kategori. Berikut nilai ukuran asosiasi untuk tabel parsial dan marginal:
| Ukuran Asosiasi | Parsial Pria | Parsial Wanita | Marginal |
|---|---|---|---|
| Beda Peluang | 0.246 | 0.271 | 0.264 |
| Risiko Relatif | 1.683 | 1.714 | 1.711 |
| Odds Ratio | 2.730 | 3.041 | 2.949 |
Adapun perhitungan ukuran asosiasi dalam tabel kontingensi tiga arah sebagai berikut.
Beda Peluang (BP) dihitung dengan rumus:
\[ BP = P(Y \mid X_1, Z) - P(Y \mid X_2, Z) \]
Perhitungan Manual
Misalkan kita ingin mengetahui beda peluang Setuju antara dua tingkat pendidikan, khusus untuk Wanita.
Beda peluang dicari dengan rumus:
\[ BP = P(Y = Setuju \mid X_1 = ≤ 8, Z = Wanita) - P(Y = Setuju \mid X_2 = 9-12, Z = Wanita) \] \[ P(\text{Setuju} \mid \leq 8, \text{Wanita}) = \frac{P(\text{Setuju}, \leq 8, \text{Wanita})}{P(\leq 8, \text{Wanita})} = \frac{158/1124}{243/1124} \approx 0.6502 \]
\[ P(\text{Setuju} \mid 9\text{-}12, \text{Wanita}) = \frac{P(\text{Setuju} , 9\text{-}12, \text{Wanita})}{P( 9\text{-}12, \text{Wanita})} = \frac{173/1124}{456/1124} \approx 0.3794 \]
\[ BP = 0.6502 - 0.3794 = 0.2708 \]
Perhitungan dengan R
# Data array 3 arah
data <- array(c(72, 110, 47, 196, 158, 173, 85, 283),
dim = c(2, 2, 2),
dimnames = list(
Pendidikan = c("<= 8", "9-12"),
Jawaban = c("Setuju", "Tidak Setuju"),
Jenis_Kelamin = c("Pria", "Wanita")
))
# Hitung total untuk wanita dengan pendidikan tertentu
total_wanita_9_12 <- sum(data["9-12", , "Wanita"])
total_wanita_8_bawah <- sum(data["<= 8", , "Wanita"])
# Ambil jumlah yang menjawab Setuju untuk tiap pendidikan
setuju_wanita_9_12 <- data["9-12", "Setuju", "Wanita"]
setuju_wanita_8_bawah <- data["<= 8", "Setuju", "Wanita"]
# Hitung peluang bersyarat
p_setuju_wanita_9_12 <- setuju_wanita_9_12 / total_wanita_9_12
p_setuju_wanita_8_bawah <- setuju_wanita_8_bawah / total_wanita_8_bawah
# Hitung beda peluang
beda_peluang <- p_setuju_wanita_8_bawah - p_setuju_wanita_9_12
# Tampilkan hasil
beda_peluang
## [1] 0.2708198
Interpretasi
Nilai Beda Peluang sebesar 0.2708 menunjukkan bahwa terdapat selisih positif antara peluang wanita dengan pendidikan ≤ 8 tahun dan wanita dengan pendidikan 9-12 tahun yang setuju terhadap pernyataan tersebut. Artinya, wanita dengan pendidikan rendah cenderung lebih setuju dengan pernyataan daripada wanita dengan pendidikan menengah.
Resiko Relatif dihitung dengan rumus:
\[ RR = \frac{P(Y|X_1, Z)}{P(Y|X_2, Z)} \]
Perhitungan Manual
Berikut perhitungan resiko relatif Setuju antara dua tingkat pendidikan, khusus untuk Wanita.
\[ RR = \frac{P(Y = Setuju \mid X_1 = ≤ 8, Z = Wanita)}{P(Y = Setuju \mid X_2 = 9-12, Z = Wanita)} \]
\[ P(\text{Setuju} \mid \leq 8, \text{Wanita}) = \frac{P(\text{Setuju}, \leq 8, \text{Wanita})}{P(\leq 8, \text{Wanita})} = \frac{158/1124}{243/1124} \approx 0.6502 \]
\[ P(\text{Setuju} \mid 9\text{-}12, \text{Wanita}) = \frac{P(\text{Setuju} , 9\text{-}12, \text{Wanita})}{P( 9\text{-}12, \text{Wanita})} = \frac{173/1124}{456/1124} \approx 0.3794 \]
\[ RR = \frac{0.6502}{0.3794} = 1.714 \] Perhitungan dengan R
data <- array(c(72, 110, 47, 196, 158, 173, 85, 283),
dim = c(2, 2, 2),
dimnames = list(
Pendidikan = c("<= 8", "9-12"),
Jawaban = c("Setuju", "Tidak Setuju"),
Jenis_Kelamin = c("Pria", "Wanita")
))
# Hitung total untuk wanita dengan pendidikan tertentu
total_wanita_9_12 <- sum(data["9-12", , "Wanita"])
total_wanita_8_bawah <- sum(data["<= 8", , "Wanita"])
# Ambil jumlah yang menjawab Setuju untuk tiap pendidikan
setuju_wanita_9_12 <- data["9-12", "Setuju", "Wanita"]
setuju_wanita_8_bawah <- data["<= 8", "Setuju", "Wanita"]
# Hitung peluang bersyarat
p_setuju_wanita_9_12 <- setuju_wanita_9_12 / total_wanita_9_12
p_setuju_wanita_8_bawah <- setuju_wanita_8_bawah / total_wanita_8_bawah
# Hitung resiko relatif
resiko_relatif <- p_setuju_wanita_8_bawah / p_setuju_wanita_9_12
# Tampilkan hasil
resiko_relatif
## [1] 1.713837
Interpretasi
Risiko Relatif (RR) sebesar 1.714 menunjukkan bahwa wanita dengan tingkat pendidikan ≤ 8 memiliki kemungkinan 1.714 kali lebih besar untuk setuju dibandingkan dengan wanita yang memiliki tingkat pendidikan 9-12.
Odds Ratio dihitung dengan rumus:
\[ OR = \frac{P(Y | X_1, Z) / (1 - P(Y | X_1, Z))}{P(Y | X_2, Z) / (1 - P(Y | X_2, Z))} \]
Perhitungan Manual
Berikut perhitungan Odds Ratio Setuju antara dua tingkat pendidikan, khusus untuk Wanita.
\[ OR = \frac{P(\text{Setuju} \mid \leq 8, \text{Wanita})/(1-P(\text{Setuju} \mid \leq 8, \text{Wanita}))}{P(\text{Setuju} \mid 9\text{-}12, \text{Wanita})/(1-P(\text{Setuju} \mid 9\text{-}12, \text{Wanita}))} \]
\[ P(\text{Setuju} \mid \leq 8, \text{Wanita}) = \frac{P(\text{Setuju}, \leq 8, \text{Wanita})}{P(\leq 8, \text{Wanita})} = \frac{158/1124}{243/1124} \approx 0.6502 \]
\[ P(\text{Setuju} \mid 9\text{-}12, \text{Wanita}) = \frac{P(\text{Setuju} , 9\text{-}12, \text{Wanita})}{P( 9\text{-}12, \text{Wanita})} = \frac{173/1124}{456/1124} \approx 0.3794 \]
\[ OR = \frac{0.6502/(1-0.6502)}{0.3794/(1-0.3794)} = 3.041 \]
Perhitungan dengan R
# Data array 3 arah
data <- array(c(72, 110, 47, 196, 158, 173, 85, 283),
dim = c(2, 2, 2),
dimnames = list(
Pendidikan = c("<= 8", "9-12"),
Jawaban = c("Setuju", "Tidak Setuju"),
Jenis_Kelamin = c("Pria", "Wanita")
))
# Hitung total untuk wanita dengan pendidikan tertentu (untuk pembagi)
total_wanita_9_12 <- sum(data["9-12", , "Wanita"])
total_wanita_8_bawah <- sum(data["<= 8", , "Wanita"])
# Ambil jumlah yang menjawab Setuju untuk tiap pendidikan
setuju_wanita_9_12 <- data["9-12", "Setuju", "Wanita"]
setuju_wanita_8_bawah <- data["<= 8", "Setuju", "Wanita"]
# Hitung peluang bersyarat
p_setuju_wanita_9_12 <- setuju_wanita_9_12 / total_wanita_9_12
p_setuju_wanita_8_bawah <- setuju_wanita_8_bawah / total_wanita_8_bawah
# Hitung odds ratio
odds_ratio <- (p_setuju_wanita_8_bawah / (1 - p_setuju_wanita_8_bawah)) / ( p_setuju_wanita_9_12 / (1 - p_setuju_wanita_9_12))
# Tampilkan hasil
odds_ratio
## [1] 3.040734
Interpretasi
Odds Ratio (OR) sebesar 3.041 menunjukkan bahwa wanita dengan tingkat pendidikan ≤ 8 memiliki kemungkinan 3.041 kali lebih besar untuk setuju dibandingkan dengan wanita yang memiliki tingkat pendidikan 9-12.
Kesimpulan
Berdasarkan perhitungan tersebut diketahui bahwa nilai ukuran asosiasi tabel tiga arah dapat dihitung dengan setiap kombinasi dua variabel, dengan memisahkan satu variabel tetap sebagai kondisi (atau kontrol). Sehingga hasilnya akan sama seperti ukuran asosiasi tabel parsial. Sebagai contoh, jika satu variabel tetap yang ditentukan adalah variabel Z = Wanita, maka nilai ukuran asosiasi tabel kontingensi tiga arah akan sama dengan ukuran asosiasi tabel parsial Wanita.
Simpson’s Paradox adalah fenomena statistik di mana hubungan antara dua variabel dalam populasi dapat muncul, menghilang, atau berbalik arah ketika populasi tersebut dibagi ke dalam subpopulasi (Sprenger, 2021).
Dalam konteks tabel kontingensi 3 arah, fenomena ini terjadi ketika hubungan antara dua variabel bergantung pada variabel ketiga yang diabaikan. Misalnya, dalam sebuah analisis, sebuah kelompok mungkin menunjukkan bahwa dua variabel memiliki hubungan positif, tetapi ketika variabel ketiga diperhitungkan, hubungan ini justru menjadi negatif atau bahkan hilang sama sekali. Paradox ini menunjukkan bahwa kesimpulan yang diambil dari data agregat bisa sangat berbeda dengan kesimpulan yang diambil dari data yang terpisah berdasarkan kelompok atau kategori tertentu.
Dalam survei tersebut, terdapat kekhawatiran akan munculnya Simpson’s Paradox karena interaksi antara tiga variabel: jenis kelamin, tingkat pendidikan, dan jawaban setuju atau tidak terhadap peran wanita. Simpson’s Paradox terjadi ketika tren yang terlihat dalam subkelompok data berubah atau bahkan berbalik arah saat data tersebut digabungkan. Misalnya, jika dalam setiap tingkat pendidikan, pria lebih banyak yang setuju dengan pernyataan tersebut dibandingkan wanita, tetapi secara keseluruhan (tanpa memisahkan berdasarkan tingkat pendidikan), wanita tampak lebih banyak yang setuju, maka ini merupakan contoh Simpson’s Paradox. Fenomena ini dapat menyesatkan analisis jika variabel perancu (dalam hal ini, tingkat pendidikan) tidak diperhitungkan. Oleh karena itu, dilakukan pemeriksaan data secara terpisah berdasarkan kategori tingkat pendidikan untuk mengidentifikasi kemungkinan terjadinya Simpson’s Paradox.
Perhitungan Proporsi Setuju per Kelompok adalah sebagai berikut.
Kelompok Pendidikan ≤8
\[ Pria=\frac{72}{119} = 0.605 \] \[ Wanita=\frac{158}{243} = 0.650 \] Diketahui bahwa Wanita lebih banyak setuju daripada pria di tingkat pendidikan ≤8 tahun.
Kelompok Pendidikan 9-12
\[ Pria=\frac{110}{306} = 0.359 \] \[ Wanita=\frac{173}{456} = 0.379 \]
Diketahui bahwa wanita juga lebih banyak setuju daripada pria di tingkat pendidikan 9-12 tahun.
Kelompok Keseluruhan
\[ Pria=\frac{182}{425} = 0.428 \] \[ Wanita=\frac{331}{699} = 0.474 \]
Wanita tetap lebih banyak setuju daripada pria secara keseluruhan.
Interpretasi
Sehingga dapat disimpulkan bahwa tidak terdapat Sympson’s Paradox karena dari hasil tersebut terlihat bahwa asosiasi marginal sama dengan asosiasi bersyarat dimana dalam setiap tingkat pendidikan maupun secara keseluruhan, Wanita tetap lebih banyak setuju dibandingkan Pria.
Kesimpulan
Berdasarkan tabel ukuran asosiasi untuk tabel parsial dan marginal sebelumnya, nampak bahwa tidak terdapat perbedaan yang signifikan di antara ukuran asosiasi antar tabel dimana tren untuk Pria dan Wanita konsisten dengan nilai Marginal untuk semua ukuran asosiasi. Namun, identifikasi Simpson’s Paradox, bisa diketahui lebih lanjut dengan mengganti variabel Z untuk mengevaluasi apakah perubahan tren pada data kelompok terbalik saat digabungkan.
Dua variabel acak X dan Y dikatakan kondisional independen mengingat variabel Z jika dan hanya jika distribusi bersama X dan Y tidak dipengaruhi oleh Z. Artinya, pengetahuan tentang X tidak memberikan informasi tambahan mengenai Y setelah kita mengetahui nilai dari Z, dan sebaliknya.
Conditional Independent ini dapat dituliskan sebagai:
\[ P(X, Y \mid Z) = P(X \mid Z) \cdot P(Y \mid Z) \]
Selain melalui persamaan tersebut, Conditional Independent juga dapat diketahui melalui Odds Ratio. Conditional Independent terjadi ketika Odds Ratio X dan Y pada setiap Z sama dengan 1 (satu) tetapi Odds Ratio X dan Y tanpa melihat Z tidak sama dengan 1 (satu).
Untuk itu, dilakukan perhitungan odds ratio dengan X = Pendidikan, Y = Jawaban dan Z = Jenis Kelamin sebagai berikut.
\[ \text{OR} = \frac{\text{72(196)}}{\text{110(47)}} \approx 2.73 \]
\[ \text{OR} = \frac{\text{158(283)}}{\text{173(85)}} \approx 3.04 \]
\[ \text{OR} = \frac{\text{230(479)}}{\text{283(132)}} \approx 2.95 \]
Interpretasi
Karena nilai odds ratio di setiap Z tidak sama dengan 1, begitupun pada odds ratio tanpa Z, maka dapat disimpulkan bahwa Conditional Independent tidak terjadi. Namun untuk dipastikan lebih lanjut, dapat dilakukan uji hipotesis.
Asosiasi homogen dalam tabel kontingensi 3 arah merujuk pada kondisi di mana hubungan antara dua variabel tetap konsisten (homogen) pada setiap tingkat variabel ketiga. Asosiasi Homogen terjadi ketika Odds Ratio pada setiap tabel parsial bernilai sama. Sebelumnya telah diketahui bahwa nilai Odds Ratio untuk setiap Z yaitu:
\[ \theta_{xy(Pria)} = \frac{(72 \times 196)}{(110 \times 47)} = \frac{14112}{5170} \approx 2.73 \]
\[ \theta_{xy(Wanita)} = \frac{(158 \times 283)}{(173 \times 85)} = \frac{44714}{14705} \approx 3.04 \]
Interpretasi
Nilai Odds Ratio antar strata (Jenis Kelamin) tidak berbeda jauh, maka asosiasi dianggap homogen atau asosiasi antara Pendidikan dan Jawaban responden relatif seragam di antara Pria dan Wanita. Artinya, pola preferensi seseorang menjawab Setuju berdasarkan pendidikan sama untuk semua Jenis Kelamin. Untuk dipastikan lebih lanjut, dilakukan uji statistik Breslow-Day.
Uji independensi dalam tabel kontingensi 3 arah adalah pengujian terhadap hipotesis bahwa dua atau lebih variabel kategorik bersifat bebas (independen) satu sama lain, baik secara marginal maupun bersyarat, dengan mempertimbangkan struktur tiga dimensi dari data.
Metode Cochran–Mantel–Haenszel (CMH) adalah teknik statistik yang digunakan untuk menganalisis data kategorikal yang telah dibagi ke dalam strata atau lapisan, dengan tujuan menguji hubungan antara dua variabel biner sambil mengendalikan efek variabel perancu (Mantel N., 1963). Metode ini memungkinkan peneliti untuk mengevaluasi apakah terdapat asosiasi antara variabel prediktor dan hasil setelah mempertimbangkan stratifikasi data. Metode Cochran-Mantel-Haenzel diselesaikan dengan tahapan sebagai berikut. Ide Dasar Uji CMH Uji CMH berangkat dari konsep tabel kontingensi berlapis (stratifed 2 × 2 tables), di mana dua variabel utama dipecah menjadi beberapa strata berdasarkan variabel perancu.
Hipotesis
\(H_0 : \theta_{xy(k)} = 1 \quad \text{untuk setiap} \quad k = 1, 2, \dots, K\)
\(H_1 : \theta_{xy(k)} \neq 1 \quad \text{untuk paling sedikit satu} \quad k\)
Taraf Signifikansi
α = 5%
Statistik Uji CMH
Statistik Uji CMH dihitung dengan rumus:
\[ CMH = \frac{\left[ \sum_k (n_{11k} - \mu_{11k}) \right]^2}{\sum_k \text{var}(n_{11k})} \]
dimana:
\(n_{11k}\): Frekuensi yang diamati pada cell (1,1) strata ke-k
\(\mu_{11k}\): Frekuensi yang diharapkan pada cell (1,1) strata ke-k \[ \mu_{11k} = E(n_{11k}) = \frac{n_{1.k} \times n_{.1k}}{n_{..k}} \]
\(\text{var}(n_{11k})\): Variansi dari \(n_{11k}\) Variansi dari \(n_{11k}\) diberikan oleh:
\[ \text{var}(n_{11k}) = \frac{n_{1.k} \times n_{2.k} \times n_{.1k} \times n_{.2k}}{n_{..k}^2 \times (n_{..k} - 1)} \]
Perhitungan Manual
Berikut perhitungan untuk uji CMH pada data contoh kasus dengan strata variabel Z (Jenis Kelamin).
Perhitungan Nilai Harapan
Nilai harapan dihitung dengan rumus:
\[ \mu_{11k} = \frac{n_{1+k} \times n_{+1k}}{n_{++k}} \]
Untuk Pria (k = 1)
\[ \mu_{11,1} = \frac{119 \times 182}{425} = \frac{21658}{425} = 50.97 \]
Untuk Wanita (k = 2)
\[ \mu_{11,2} = \frac{243 \times 331}{699} = \frac{80433}{699} = 115.07 \]
Perhitungan Varians
\[ Var(n_{11k}) = \frac{n_{1+k} \times n_{0+k} \times n_{+1k} \times n_{+0k}}{n_{++k}^2 \times (n_{++k} - 1)} \]
Untuk Pria (k = 1)
\[ Var(n_{11,1}) = \frac{119 \times 306 \times 182 \times 243}{425^2 \times (425 - 1)} = \frac{1610010564}{76505000} \approx 21.04 \]
Untuk Wanita (k = 2)
\[ Var(n_{11,2}) = \frac{243 \times 456 \times 331 \times 368}{699^2 \times (699 - 1)} = \frac{13495650264}{341208498} \approx 39.55 \]
Sehingga,
\[ X^2_{CMH} = \frac{\left( \sum_k (n_{11k} - \mu_{11k}) \right)^2}{\sum_k Var(n_{11k})} = \frac{((72 - 50.97) + (158 - 115.07))^2}{21.04 + 39.55} = \frac{4093.28}{60.59} \approx 67.58 \]
Perhitungan dengan R
datacmh <- array(c(72, 47, 110, 196,
158, 85, 173, 283),
dim = c(2, 2, 2),
dimnames = list(
Pendidikan = c("≤ 8", "9-12"),
Jawaban = c("Setuju", "Tidak Setuju"),
Jenis_Kelamin = c("Pria", "Perempuan")
))
datacmh
## , , Jenis_Kelamin = Pria
##
## Jawaban
## Pendidikan Setuju Tidak Setuju
## ≤ 8 72 110
## 9-12 47 196
##
## , , Jenis_Kelamin = Perempuan
##
## Jawaban
## Pendidikan Setuju Tidak Setuju
## ≤ 8 158 173
## 9-12 85 283
cmh_base <- mantelhaen.test(datacmh, correct = FALSE)
cmh_base
##
## Mantel-Haenszel chi-squared test without continuity correction
##
## data: datacmh
## Mantel-Haenszel X-squared = 67.525, df = 1, p-value < 2.2e-16
## alternative hypothesis: true common odds ratio is not equal to 1
## 95 percent confidence interval:
## 2.256431 3.796167
## sample estimates:
## common odds ratio
## 2.926737
Berdasarkan perhitungan R, diperoleh nilai statistik CMH sebesar 67.525. Perbedaan dengan hasil perhitungan manual disebabkan oleh adanya continuity correction pada perhitungan R.
Nilai Kritis
Nilai Chi-Square tabel db = 1 dan taraf signifikansi 0.05:
\(\chi^2_{(0.05, df=1)} = 3.841\)
Kriteria Uji
Tolak hipotesis nol H0 jika:
\[ CMH > \chi^2_{(1)} \quad \text{atau} \quad p\text{-value} < \alpha \]
Keputusan
Karena nilai CMH (67.58) > Chi-Square tabel (3.841), maka Tolak H0.
Kesimpulan
Berdasarkan taraf signifikansi 5%, dapat disimpulkan bahwa ada hubungan signifikan antara lama pendidikan dengan respon jawaban setelah mengontrol jenis kelamin dan disimpulkan bahwa X dan Y tidak independen bersyarat terhadap Z. Dengan demikian, hasil perhitungan manual dengan odds ratio sama dengan hasil uji statistik.
Karena nilai-nilai odds ratio bersyarat relatif sama dalam arti tidak berbeda secara ekstrim dan mempunyai arah yang sama maka kita dapat menentukan sebuah nilai tunggal untuk odds ratio yang disebut dengan odds ratio bersama.
Odds ratio bersama ditaksir oleh statistik Mantel-Haenzel sebagai berikut.
\[ \hat{\theta}_{MH} = \frac{ \displaystyle \sum_{k=1}^{K} \left( \frac{n_{11k} \cdot n_{22k}}{n_{..k}} \right) }{ \displaystyle \sum_{k=1}^{K} \left( \frac{n_{12k} \cdot n_{21k}}{n_{..k}} \right) } \]
dimana:
Perhitungan Manual
Berikut perhitungan untuk Odds Ratio Bersama berdasarkan contoh kasus.
Hitung Pembilang
\[ \sum_{k=1}^{2} \left( \frac{n_{11k} \times n_{22k}}{n_{++k}} \right) \]
\[ \frac{72 \times 196}{425} = \frac{14112}{425} \approx 33.21 \]
\[ \frac{158 \times 283}{699} = \frac{44714}{699} \approx 63.99 \]
\[ 33.21 + 63.99 = 97.20 \]
Hitung Penyebut
\[ \sum_{k=1}^{2} \left( \frac{n_{12k} \times n_{21k}}{n_{++k}} \right) \]
\[ \frac{47 \times 110}{425} = \frac{5170}{425} \approx 12.16 \]
\[ \frac{85 \times 173}{699} = \frac{14705}{699} \approx 21.04 \]
\[ 12.16 + 21.04 = 33.20 \]
Hasil Odds Ratio Gabungan (Mantel-Haenszel)
\[ \hat{\theta}_{MH} = \frac{97.20}{33.20} \approx 2.93 \]
Standard error untuk log odds ratio bersama
\[ \hat{\sigma}^2[\log(\hat{\theta}_{MH})] = \]
\[ \frac{\sum (n_{11k} + n_{12k})(n_{11k}n_{22k})/n_{..k}^2}{2(\sum n_{11k}n_{22k}/n_{..k})^2} + \]
\[ \frac{\sum (n_{11k} + n_{22k})(n_{12k}n_{21k})/n_{..k}^2}{2(\sum n_{12k}n_{21k}/n_{..k})(\sum n_{11k}n_{22k}/n_{..k})} + \]
\[ \frac{\sum (n_{12k} + n_{21k})(n_{12k}n_{21k})/n_{..k}^2}{2(\sum n_{12k}n_{21k}/n_{..k})^2} \]
Bagian 1:
\[ \sum (n_{11k} + n_{12k})(n_{11k}n_{22k})/n_{..k}^2 \]
k = 1 (Pria):
\[
(72 + 47)(72 \times 196)/425^2 = 119 \times 14112 / 180625 = 1,043,328 /
180625 \approx 5.77
\]
k = 2 (Wanita):
\[
(158 + 85)(158 \times 283)/699^2 = 243 \times 44,714 / 488601 =
10,868,002 / 488601 \approx 22.25
\]
\[ \text{Jumlah} = 5.77 + 22.25 = 28.02 \]
Bagian 2:
\[ \sum (n_{11k} + n_{22k})(n_{12k}n_{21k})/n_{..k}^2 \]
k = 1 (Pria):
\[
(72 + 196)(47 \times 110)/425^2 = 268 \times 5170 / 180625 = 1,386,560 /
180625 \approx 7.67
\]
k = 2 (Wanita):
\[
(158 + 283)(85 \times 173)/699^2 = 441 \times 14,705 / 488601 =
6,483,405 / 488601 \approx 13.27
\]
\[ \text{Jumlah} = 7.67 + 13.27 = 20.94 \]
Bagian 3:
\[ \sum (n_{12k} + n_{21k})(n_{12k}n_{21k})/n_{..k}^2 \]
k = 1 (Pria):
\[
(47 + 110)(47 \times 110)/425^2 = 157 \times 5170 / 180625 = 811,690 /
180625 \approx 4.49
\]
k = 2 (Wanita):
\[
(85 + 173)(85 \times 173)/699^2 = 258 \times 14,705 / 488601 = 3,794,490
/ 488601 \approx 7.77
\]
\[ \text{Jumlah} = 4.49 + 7.77 = 12.26 \]
Perhitungan Varians \(\hat{\sigma}^2[\log(\hat{\theta}_{MH})]\)
\[ \text{Bagian 1} = \frac{28.02}{2(97.20)^2} = \frac{28.02}{2(9447.84)} = \frac{28.02}{18895.68} \approx 0.00148 \]
\[ \text{Bagian 2} = \frac{20.94}{2(33.20)(97.20)} = \frac{20.94}{2(3225.04)} = \frac{20.94}{6450.08} \approx 0.00324 \]
\[ \text{Bagian 3} = \frac{12.26}{2(33.20)^2} = \frac{12.26}{2(1102.24)} = \frac{12.26}{2204.48} \approx 0.00556 \]
Total Varians
\[ \hat{\sigma}^2[\log(\hat{\theta}_{MH})] = 0.00148 + 0.00324 + 0.00556 = 0.01028 \]
Standard Error
\[ SE = \sqrt{0.01028} \approx 0.1014 \]
Interval Kepercayaan 95%
\[ \log(\hat{\theta}_{MH}) \pm Z_{\alpha/2} \cdot SE \]
Batas Bawah dan Atas:
\[ 1.075 - 1.96 \times 0.1014 = 1.075 - 0.1987 = 0.8763 \]
\[ 1.075 + 1.96 \times 0.1014 = 1.075 + 0.1987 = 1.2737 \]
Kembali ke Skala OR (Eksponensial)
\[
\exp(0.8763) \approx 2.26
\]
\[
\exp(1.2737) \approx 3.79
\]
Interval Kepercayaan 95% Odds Ratio Bersama
\[ (2.26, 3.79) \] Perhitungan dengan R
datacmh <- array(c(72, 47, 110, 196,
158, 85, 173, 283),
dim = c(2, 2, 2),
dimnames = list(
Pendidikan = c("≤ 8", "9-12"),
Jawaban = c("Setuju", "Tidak Setuju"),
Jenis_Kelamin = c("Pria", "Perempuan")
))
# Menghitung odds ratio bersama
mh_test <- mantelhaen.test(datacmh, correct = FALSE)
mh_test
##
## Mantel-Haenszel chi-squared test without continuity correction
##
## data: datacmh
## Mantel-Haenszel X-squared = 67.525, df = 1, p-value < 2.2e-16
## alternative hypothesis: true common odds ratio is not equal to 1
## 95 percent confidence interval:
## 2.256431 3.796167
## sample estimates:
## common odds ratio
## 2.926737
Berdasarkan perhitungan R, diperoleh nilai odds ratio bersama yang sama dengan perhitungan manual yaitu sebesar 2.93.
Kesimpulan
Odds Ratio gabungan (CMH) yaitu sebesar 2.93.
Artinya responden yang berpendidikan ≤ 8 tahun memiliki peluang 2.93
kali lebih besar untuk setuju dengan pernyataan “Wanita sebaiknya
menjaga atau memelihara rumah mereka dan ikut suami selamanya”,
dibandingkan dengan responden yang berpendidikan 9-12 tahun, setelah
mengontrol jenis kelamin (Pria dan Wanita).
Standard Error log(OR) sebesar 0.1014 menunjukkan bahwa estimasi log(OR) cukup presisi — semakin kecil SE, semakin akurat estimasi OR-nya.
Interval Kepercayaan 95% untuk OR berada di rentang 2.40 sampai 3.57. Artinya, dengan tingkat keyakinan 95%, responden yang berpendidikan ≤ 8 tahun memiliki peluang antara 2.40 hingga 3.57 kali lebih besar untuk menyetujui pernyataan dibandingkan dengan mereka yang berpendidikan 9–12 tahun, setelah mengontrol jenis kelamin. Karena seluruh interval lebih besar dari 1, maka hubungan ini secara statistik signifikan.
Uji Breslow-Day adalah metode statistik yang digunakan untuk menguji homogenitas rasio odds (odds ratio) di antara beberapa strata dalam data kontingensi 2x2, dengan tujuan menilai konsistensi pengaruh suatu variabel eksposur terhadap outcome di berbagai subkelompok (Breslow & Day, 1980). Uji ini sangat berguna dalam analisis stratifikasi, khususnya untuk mendeteksi adanya interaksi atau pengaruh perancu dalam studi epidemiologi atau data klinis. Kelebihannya terletak pada kemampuannya menguji homogenitas secara efisien dalam konteks data kategorik, namun memiliki keterbatasan seperti sensitivitas terhadap ukuran sampel kecil dan hanya relevan untuk tabel 2x2 per strata (Kleinbaum & Klein, 2010).
Hipotesis
\[ H_0 : \theta_{xy(1)} = \theta_{xy(2)} = \dots = \theta_{xy(K)} (\text{odds ratio sama di seluruh strata}) \]
\[ H_1 : \text{Setidaknya ada satu odds ratio yang berbeda} \]
Taraf Signifikansi
α = 5%
Statistik Uji
Statistik uji Breslow-Day (BD) dihitung dengan rumus:
\[ X^2_{HBD} = \sum_{j=1}^{K} \frac{(a_j - \tilde{a}_j)^2}{\text{Var}(a_j | \hat{O}_R^{MH})} \]
dimana:
Perhitungan Manual
Perhitungan Uji Breslow-Day untuk contoh kasus tabel kontingensi tiga arah terdiri dari beberapa tahap sebagai berikut.
1. Estimasi Rasio Odds Bersama (Mantel-Haenszel OR)
Hitung Pembilang:
\[ \sum_{k=1}^{2} \left( \frac{n_{11k} \times n_{22k}}{n_{++k}} \right) = \frac{72 \times 196}{425} + \frac{158 \times 283}{699} = \frac{14112}{425} + \frac{44714}{699} = 33.21 + 63.99 = 97.20 \]
Hitung Penyebut:
\[ \sum_{k=1}^{2} \left( \frac{n_{12k} \times n_{21k}}{n_{++k}} \right) = \frac{47 \times 110}{425} + \frac{85 \times 173}{699} = \frac{5170}{425} + \frac{14705}{699} = 12.16 + 21.04 = 33.20 \]
Hasil Odds Ratio Gabungan (Mantel-Haenszel)
\[ \hat{\theta}_{MH} = \frac{97.20}{33.20} \approx 2.93 \]
2. Menentukan Nilai Ekspektasi \(\tilde{a}_j\)
Nilai ekspektasi \(\tilde{a}_j\) diperoleh dengan mencari solusi dari persamaan kuadrat:
\[ -m_{1j}n_{1j} \hat{R}_{MH} + (n_{2j} - m_{1j} + \hat{R}_{MH}(n_{1j} + m_{1j})) \tilde{a}_j + (1 - \hat{R}_{MH})\tilde{a}_j^2 = 0 \]
dengan:
Solusi positif dari persamaan kuadrat yang memenuhi \(0 < \tilde{a}_j \leq \min(n_{1j}, m_{1j})\) digunakan sebagai nilai ekspektasi \(\tilde{a}_j\). Berikut perhitungannnya. Dengan menggunakan nilai \(\hat{\theta}_{MH} = 2.93\), kita akan menghitung nilai ekspektasi \(\tilde{a}_j\) untuk masing-masing strata (Pria dan Wanita). Kita akan menyelesaikan persamaan kuadrat untuk kedua strata.
\[ -119 \times 182 \times 2.93 + (331 - 119 + 2.93 \times (182 + 119)) \tilde{a}_1 + (1 - 2.93)\tilde{a}_1^2 = 0 \]
\[ -243 \times 331 \times 2.93 + (699 - 243 + 2.93 \times (331 + 243)) \tilde{a}_2 + (1 - 2.93)\tilde{a}_2^2 = 0 \] Diperoleh:
\[\tilde{a}_1 \approx 65.6\]
\[\tilde{a}_2 \approx 124.15\]
3. Menghitung Varians \(\hat{V}ar(a_j|\hat{R}_{MH})\)
\[ \hat{V}ar(a_j|\hat{R}_{MH}) = \left( \frac{1}{\tilde{a}_j} + \frac{1}{\tilde{b}_j} + \frac{1}{\tilde{c}_j} + \frac{1}{\tilde{d}_j} \right)^{-1} \]
dengan:
Berikut perhitungannya.
\[ \hat{Var}(a_j|\hat{O}_R^{MH}) = \left( \frac{1}{\tilde{a}_j} + \frac{1}{\tilde{b}_j} + \frac{1}{\tilde{c}_j} + \frac{1}{\tilde{d}_j} \right)^{-1} \]
\[ \hat{Var}(a_1|\hat{O}_R^{MH}) = \left( \frac{1}{65.6} + \frac{1}{119-65.6} + \frac{1}{182-65.6} + \frac{1}{306} \right)^{-1} \]
\[ = (\frac{19855117}{433238472})^{-1} = 21.82 \]
\[ \hat{Var}(a_2|\hat{O}_R^{MH}) = \left( \frac{1}{124.15} + \frac{1}{243-124.15} + \frac{1}{331-124.15} + \frac{1}{456} \right)^{-1} \]
\[ = (\frac{175426621}{2861554134})^{-1} = 42.56 \]
4. Menghitung Statistik Uji Breslow-Day
\[ X^2_{HBD} = \sum_{j=1}^{K} \frac{(a_j - \tilde{a}_j)^2}{\hat{V}ar(a_j|\hat{R}_{MH})} \]
dengan:
Sehingga:
\[ X^2_{\text{HBD}} = \frac{(a_1 - \tilde{a_1})^2}{\text{Var}(a_1|\hat{R}_{MH})} + \frac{(a_2 - \tilde{a_2})^2}{\text{Var}(a_2|\hat{R}_{MH})} \]
\[ X^2_{\text{HBD}} = \frac{(72 - 65.6)^2}{20.1} + \frac{(158 - 124.15)^2}{36.704} = 1.85 + 31.22 = 33.25 \]
5. Koreksi Tarone
Koreksi Tarone diterapkan untuk menyesuaikan statistik uji:
\[ X^2_{HBDT} = X^2_{HBD} - \frac{\left(\sum_{j=1}^{K} (a_j - \tilde{a}_j)\right)^2}{\sum_{j=1}^{K} \hat{V}ar(a_j|\hat{R}_{MH})} \]
Koreksi ini memperhitungkan kemungkinan bias yang muncul karena varians yang digunakan dalam statistik uji tidak memperhitungkan ketergantungan antar strata.
\[ X^2_{HBDT} = 33.25 - \frac{(72-65.6 + 158 - 124.15)^2}{21.82+42.56} = 0.1518 \]
6. Hitung P-value
P-value dihitung berdasarkan distribusi chi-square dengan derajat kebebasan:
\[ df = K - 1 = 2 -1 = 1 \]
\[ p = 1-\chi^2(X^2_{HBDT}, df)=1 - \chi^2(0.1518, 1) = 1 - 0.303 = 0.697 \]
Perhitungan dengan R
Secara Manual
dataku <- array(
c(72, 110, 47, 196,
158, 173, 85, 283),
dim = c(2, 2, 2),
dimnames = list(
Pendidikan = c("≤8", "9-12"),
Jawaban = c("Setuju", "Tidak Setuju"),
Jenis_Kelamin = c("Pria", "Wanita")))
breslowday.test <- function(x) {
#Find the common OR based on Mantel-Haenszel
or.hat.mh <- mantelhaen.test(x)$estimate
#Number of strata
K <- dim(x)[3]
#Value of the Statistic
X2.HBD <- 0
#Value of aj, tildeaj and Var.aj
a <- tildea <- Var.a <- numeric(K)
for (j in 1:K) {
#Find marginals of table j
mj <- apply(x[,,j], MARGIN=1, sum)
nj <- apply(x[,,j], MARGIN=2, sum)
#Solve for tilde(a)_j
coef <- c(-mj[1]*nj[1] * or.hat.mh, nj[2]-mj[1]+or.hat.mh*(nj[1]+mj[1]),
1-or.hat.mh)
sols <- Re(polyroot(coef))
#Take the root, which fulfills 0 < tilde(a)_j <= min(n1_j, m1_j)
tildeaj <- sols[(0 < sols) & (sols <= min(nj[1],mj[1]))]
#Observed value
aj <- x[1,1,j]
#Determine other expected cell entries
tildebj <- mj[1] - tildeaj
tildecj <- nj[1] - tildeaj
tildedj <- mj[2] - tildecj
#Compute \hat{\Var}(a_j | \widehat{\OR}_MH)
Var.aj <- (1/tildeaj + 1/tildebj + 1/tildecj + 1/tildedj)^(-1)
#Compute contribution
X2.HBD <- X2.HBD + as.numeric((aj - tildeaj)^2 / Var.aj)
#Assign found value for later computations
a[j] <- aj ; tildea[j] <- tildeaj ; Var.a[j] <- Var.aj
}
#Compute Tarone corrected test
X2.HBDT <-as.numeric( X2.HBD - (sum(a) - sum(tildea))^2/sum(Var.aj) )
#Compute p-value based on the Tarone corrected test
p <- 1-pchisq(X2.HBDT, df=K-1)
res <- list(X2.HBD=X2.HBD,X2.HBDT=X2.HBDT,p=p)
class(res) <- "bdtest"
return(res)
}
print.bdtest <- function(x) {
cat("Breslow and Day test (with Tarone correction):\n")
cat("Breslow-Day X-squared =",x$X2.HBD,"\n")
cat("Breslow-Day-Tarone X-squared =",x$X2.HBDT,"\n\n")
cat("Test for test of a common OR: p-value = ",x$p,"\n\n")
}
breslowday.test(dataku)
## Breslow and Day test (with Tarone correction):
## Breslow-Day X-squared = 0.1518147
## Breslow-Day-Tarone X-squared = 0.151813
##
## Test for test of a common OR: p-value = 0.6968088
Menggunakan Package
dataku <- array(
c(72, 110, 47, 196,
158, 173, 85, 283),
dim = c(2, 2, 2),
dimnames = list(
Pendidikan = c("≤8", "9-12"),
Jawaban = c("Setuju", "Tidak Setuju"),
Jenis_Kelamin = c("Pria", "Wanita")))
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.4.3
breslow_test <- BreslowDayTest(dataku)
print(breslow_test)
##
## Breslow-Day test on Homogeneity of Odds Ratios
##
## data: dataku
## X-squared = 0.15181, df = 1, p-value = 0.6968
Nilai Kritis
Nilai Chi-Square tabel db = 1 dan taraf signifikansi 0.05:
\(\chi^2_{(0.05, df=1)} = 3.841\)
Kriteria Uji
Tolak H₀ jika:
\[ X^2_{HBDT} > \chi^2_{(K-1)} \quad \text{atau} \quad p\text{-value} < \alpha \]
Keputusan
Karena p-value = 0.6968 ≥ 0.05 dan BD (0.15) < Chi Square tabel (3.84), maka gagal Tolak H₀.
Kesimpulan
Berdasarkan hasil uji Breslow-Day, tidak terdapat bukti yang cukup untuk menolak hipotesis nol. Dengan demikian, dapat disimpulkan bahwa odds ratio pada seluruh strata bersifat homogen. Artinya, asumsi homogenitas antar strata terpenuhi, sehingga hasil analisis Cochran-Mantel-Haenszel (CMH) untuk mendapatkan odds ratio gabungan menjadi lebih akurat.
Generalized Linear Models (GLM) adalah suatu kerangka statistika yang memperluas konsep dari model linier klasik untuk mencakup berbagai jenis distribusi data yang tidak harus normal. GLM menghubungkan variabel dependen dengan prediktor melalui suatu fungsi link dan memungkinkan model untuk menangani jenis data yang lebih kompleks seperti data binomial, Poisson, dan lain-lain. Model ini sangat fleksibel dan dapat digunakan untuk berbagai jenis aplikasi statistik yang melibatkan data non-normatif.
Tiga komponen utama dalam Generalized Linear Models (GLM):
Generalized Linear Models (GLM) terdiri dari tiga komponen utama yang bekerja bersama untuk memodelkan hubungan antara variabel independen dan variabel dependen dalam situasi yang lebih kompleks daripada model linier biasa. Tiga komponen ini adalah:
Komponen acak adalah nilai-nilai pengamatan variabel respon Y yang saling bebas dan berdistribusi keluarga eksponensial (exponential family). Komponen ini mengacu pada asumsi distribusi dari data, yang bisa berupa distribusi normal, Poisson, binomial, atau distribusi lain sesuai dengan jenis data yang dimiliki. Misalnya, jika data adalah jumlah kejadian dalam suatu periode waktu, maka distribusinya bisa mengikuti distribusi Poisson.
Suatu variabel acak \(Y\) yang tergantung pada parameter tunggal \(\theta\) tergolong kedalam keluarga eksponen, dengan bentuk distribusi:
\[ f(y; \theta) = s(y) t(\theta) \exp \left( a(y) b(\theta) \right) \tag{1} \]
dimana \(a\), \(b\), \(s\), dan \(t\) merupakan fungsi yang diketahui, dan \(\theta\) merupakan parameter.
Bentuk di atas dapat dinyatakan sebagai berikut:
\[ f(y; \theta) = \exp \left( a(y) b(\theta) + c(\theta) + d(y) \right) \tag{2} \]
dimana:
\[ s(y) = \exp d(y) \] \[ t(\theta) = \exp c(\theta) \]
Jika \(a(y) = y\), maka Persamaan (2) disebut bentuk kanonik, dan \(b(\theta)\) merupakan natural parameter dari distribusi tersebut.
Beberapa distribusi yang termasuk ke dalam keluarga eksponensial diantaranya: Distribusi Normal, Distribusi Binomial, Distribusi Poisson, Distribusi Gamma
Pembuktian Distribusi Normal Merupakan Keluarga Eksponensial
Misalkan \(Y\) memiliki distribusi normal dengan parameter \(\mu\) (rata-rata) dan \(\sigma^2\) (varians). Fungsi kepadatan probabilitas (PDF) untuk distribusi normal adalah:
\[ f(y; \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp \left( -\frac{(y - \mu)^2}{2\sigma^2} \right) \]
Distribusi eksponensial dalam bentuk umum adalah:
\[ f(y; \theta) = s(y) t(\theta) \exp \left( a(y) b(\theta) \right) \]
Sehingga dapat ditulis ulang fungsi PDF normal sebagai berikut:
\[ f(y; \mu, \sigma^2) = \exp \left( -\frac{(y - \mu)^2}{2\sigma^2} \right) \times \frac{1}{\sqrt{2\pi\sigma^2}} \]
\[ f(y; \mu, \sigma^2) = \exp \left( -\frac{y^2 - 2\mu y + \mu^2}{2\sigma^2} \right) \times \frac{1}{\sqrt{2\pi\sigma^2}} \]
Identifikasi bagian-bagian berikut:
Dengan bentuk ini, dapat disimpulkan bahwa distribusi normal merupakan bagian dari bentuk keluarga distribusi eksponensial.
Pembuktian Distribusi Binomial Merupakan Keluarga Eksponensial
Misalkan \(Y\) memiliki distribusi binomial dengan parameter \(n\) (jumlah percobaan) dan \(p\) (probabilitas sukses dalam setiap percobaan). Fungsi massa probabilitas (PMF) untuk distribusi binomial adalah:
\[ f(y; n, p) = \binom{n}{y} p^y (1 - p)^{n - y} \]
di mana \(y = 0, 1, 2, \dots, n\), \(p\) adalah probabilitas sukses, dan \(1 - p\) adalah probabilitas kegagalan.
Distribusi eksponensial dalam bentuk umum adalah:
\[ f(y; \theta) = s(y) t(\theta) \exp \left( a(y) b(\theta) \right) \]
PMF distribusi binomial dapat dipecah menjadi dua bagian:
\[ f(y; n, p) = \binom{n}{y} \exp \left( y \ln p + (n - y) \ln (1 - p) \right) \]
Bagian-bagian distribusi binomial dengan komponen dalam bentuk keluarga eksponensial dapat dicocokkan:
Sehingga, PMF distribusi binomial dalam bentuk keluarga distribusi eksponensial adalah sebagai berikut:
\[ f(y; n, p) = \binom{n}{y} \exp \left( y \ln p + n \ln (1 - p) \right) \]
Karena fungsi massa probabilitas distribusi binomial dapat ditulis dalam bentuk yang sesuai dengan keluarga distribusi eksponensial, maka distribusi binomial termasuk dalam keluarga distribusi eksponensial.
Pembuktian Distribusi Poisson Merupakan Keluarga Eksponensial
Misalkan \(Y\) memiliki distribusi Poisson dengan parameter \(\lambda\) (rata-rata jumlah kejadian dalam suatu interval). Fungsi massa probabilitas (PMF) untuk distribusi Poisson adalah:
\[ f(y; \lambda) = \frac{\lambda^y e^{-\lambda}}{y!} \quad \text{untuk} \quad y = 0, 1, 2, \dots \]
di mana \(y\) adalah jumlah kejadian yang diamati dan \(\lambda\) adalah parameter distribusi yang menyatakan tingkat kejadian rata-rata dalam unit waktu atau ruang.
Distribusi eksponensial dalam bentuk umum adalah:
\[ f(y; \theta) = s(y) t(\theta) \exp \left( a(y) b(\theta) \right) \]
PMF distribusi Poisson dapat dipisahkan bagian eksponensial dan koefisien yang tergantung pada parameter \(\lambda\):
\[ f(y; \lambda) = \frac{1}{y!} \exp \left( y \ln \lambda - \lambda \right) \]
Bagian-bagian distribusi Poisson dengan komponen dalam bentuk keluarga distribusi eksponensial dicocokkan sebagai berikut:
PMF distribusi Poisson dalam bentuk keluarga distribusi eksponensial sebagai berikut:
\[ f(y; \lambda) = \frac{1}{y!} \exp \left( y \ln \lambda - \lambda \right) \]
Karena fungsi massa probabilitas distribusi Poisson dapat ditulis dalam bentuk yang sesuai dengan keluarga distribusi eksponensial, maka distribusi Poisson termasuk dalam keluarga distribusi eksponensial.
Komponen ini berisi kombinasi linier dari variabel-variabel independen yang digunakan untuk memprediksi nilai variabel dependen. Dalam GLM, ini adalah persamaan linier dari prediktor yang dipengaruhi oleh parameter model. Komponen sistematik ini berupa jumlah tertimbang dari variabel independen yang bisa dilihat dalam bentuk η=Xβ, di mana X adalah matriks prediktor, dan β adalah vektor koefisien.
Komponen sistematik berbentuk satu set parameter \(\beta_1, \beta_2, \dots, \beta_p\) dan
variabel explanatory \(\mathbf{X} =
[X_1^{\top}, X_2^{\top}, \dots, X_n^{\top}]^{\top}\),
atau \(\mathbf{X}\) yang membentuk
kombinasi linier dari \(\boldsymbol{\beta}\), yaitu:
\[ \eta = \alpha + \beta_1 X_1 + \beta_2 X_2 + \beta_3 X_3 + \dots + \beta_p X_p \]
yang disebut sebagai linier predictor.
Fungsi penghubung adalah fungsi matematis yang menghubungkan ekspektasi nilai variabel dependen (misalnya, rata-rata) dengan komponen sistematik (kombinasi linier dari prediktor). Fungsi ini memungkinkan transformasi untuk memastikan hubungan antara variabel dependen dan prediktor linier. Sebagai contoh, dalam regresi logistik, fungsi penghubung yang digunakan adalah logit, yaitu log odds dari probabilitas suatu kejadian. Ini menjelaskan bagaimana \(\mu = E(y)\) berhubungan dengan variabel explanatory dalam linier prediktor. Beberapa link function yang digunakan dalam GLM yaitu:
\[ g(\mu) = \mu \quad \Rightarrow \quad \text{Bentuk regresi biasa untuk Y kontinu (Respon Y ~ Normal)} \]
\[ g(\mu) = \log \mu \quad \Rightarrow \quad \text{Loglinier (Respon Y ~ Poisson)} \]
\[ \log \mu = \alpha + \beta_1 X_1 + \dots + \beta_k X_k \]
\[ g(\mu) = \log \left( \frac{\mu}{1 - \mu} \right) \quad \Rightarrow \quad \text{Model logit (Respon biner), dimana} \quad \mu = \pi; \quad 0 < \pi < 1 \]
Distribusi biner atau distribusi Bernoulli menggambarkan eksperimen dengan dua kemungkinan hasil: sukses atau gagal. Variabel acak \(Y\) dengan dua hasil;
dimana:
\(Y = 1\) = Sukses dan memiliki probabilitas \(P(Y=1) = \pi\)
\(Y = 0\) = Gagal dan memiliki probabilitas \(P(Y=0) = 1 - \pi\).
Ekspektasi adalah rata-rata teoretis dari variabel acak. Untuk distribusi Bernoulli, nilai harapan \(E(Y)\) hanya tergantung pada probabilitas keberhasilan \(\pi\), karena \(Y\) hanya bisa bernilai 1 (sukses) atau 0 (gagal). Dengan demikian, ekspektasi \(Y\) adalah \(\pi\), yaitu probabilitas keberhasilan. Ekspektasi atau nilai harapan dari variabel acak \(Y\) untuk distribusi Bernoulli adalah:
\[ E(Y) = 1 \cdot \pi + 0 \cdot (1 - \pi) = \pi \]
Varians mengukur seberapa jauh nilai observasi \(Y\) tersebar dari nilai ekspektasi \(E(Y)\). Untuk distribusi Bernoulli, varians adalah \(\pi (1 - \pi)\), yang menunjukkan bahwa varians maksimum terjadi ketika \(\pi = 0.5\) (di mana probabilitas sukses dan gagal adalah sama), dan variansnya akan lebih kecil jika salah satu probabilitas mendekati 0 atau 1. Varians dari \(Y\) untuk distribusi Bernoulli adalah:
\[ V(Y) = \pi (1 - \pi) \]
Jika kita melakukan eksperimen Bernoulli berulang sebanyak \(n\) kali, jumlah keberhasilan (misalnya, jumlah “sukses”) akan mengikuti distribusi binomial dengan parameter \(n\) (jumlah percobaan) dan \(\pi\) (probabilitas keberhasilan di setiap percobaan). Dengan kata lain, \(\pi\) adalah fungsi dari variabel penjelas \(X\), yaitu \(\pi(x)\) yang bergantung pada faktor-faktor yang ada dalam model prediksi. Jika kita memiliki \(n\) observasi independen dari respon biner dengan parameter \(\pi\), maka jumlah keberhasilan akan mengikuti distribusi Binomial dengan parameter \(n\) dan \(\pi\):
\[ Y \sim \text{Binomial}(n, \pi) \]
Model Probabilitas Linier (Linear Probability Model) adalah model regresi yang digunakan untuk memprediksi probabilitas kejadian suatu peristiwa dalam kasus variabel dependen biner (misalnya, 1 untuk sukses dan 0 untuk gagal). Model ini mengasumsikan bahwa hubungan antara variabel independen dan probabilitas respon bersifat linier.
Model ini mengasumsikan bahwa probabilitas kejadian \(P(Y=1)\) dapat diprediksi oleh fungsi linier dari variabel independen \(X\).
Fungsi dari model probabilitas linier adalah sebagai berikut:
\[ P(Y=1) = \alpha + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_p X_p \]
dimana:
\(P(Y=1)\) = probabilitas bahwa \(Y = 1\) (misalnya, kejadian sukses)
\(\alpha\) = intercept (konstanta)
\(\beta_1, \beta_2, \dots, \beta_p\) = koefisien regresi yang menunjukkan hubungan antara masing-masing variabel independen \(X_1, X_2, \dots, X_p\) dengan probabilitas \(P(Y=1)\)
\(X_1, X_2, \dots, X_p\) = variabel independen yang digunakan untuk memprediksi probabilitas kejadian
Estimasi Parameter
Untuk mengestimasi parameter \(\alpha, \beta_1, \beta_2, \dots, \beta_p\), kita menggunakan metode kuadrat terkecil (Least Squares). Persamaan estimasi parameter adalah dengan meminimalkan jumlah kuadrat kesalahan (residual), yaitu selisih antara nilai yang diamati \(Y\) dan nilai yang diprediksi oleh model:
\[ \text{Minimalkan} \quad \sum_{i=1}^{n} (Y_i - (\alpha + \beta_1 X_{1i} + \beta_2 X_{2i} + \dots + \beta_p X_{pi}))^2 \]
Ini adalah fungsi objektif yang akan diminimalkan untuk mencari estimasi parameter \(\alpha, \beta_1, \dots, \beta_p\).
Salah satu masalah utama dari Model Probabilitas Linier adalah bahwa probabilitas yang diprediksi \(P(Y=1)\) tidak selalu berada dalam kisaran yang sah untuk probabilitas, yaitu antara 0 dan 1. Model ini dapat menghasilkan nilai probabilitas yang kurang dari 0 atau lebih dari 1, yang tentu saja tidak bermakna dalam konteks probabilitas.
Keuntungan
Kekurangan
Meskipun Model Probabilitas Linier sering digunakan sebagai pendekatan awal, model ini tidak umum digunakan dalam praktik untuk klasifikasi biner karena masalah yang disebutkan sebelumnya. Sebagai gantinya, Model Regresi Logistik lebih sering digunakan karena probabilitas yang diprediksi selalu berada dalam kisaran yang valid [0, 1] melalui fungsi logit.
Seorang manajer pemasaran di sebuah perusahaan e-commerce ingin mengetahui probabilitas sukses kampanye pemasaran berdasarkan beberapa faktor. Sukses kampanye pemasaran didefinisikan sebagai ketika seorang pelanggan melakukan pembelian setelah melihat iklan.
Berikut adalah data yang dikumpulkan untuk setiap pelanggan:
| Pelanggan | Usia (X₁) | Jam di Website (X₂) | Diskon (X₃) | Pembelian (Y) |
|---|---|---|---|---|
| 1 | 25 | 1.5 | 20 | 1 |
| 2 | 34 | 2.0 | 15 | 0 |
| 3 | 42 | 3.5 | 30 | 1 |
| 4 | 28 | 1.0 | 10 | 0 |
| 5 | 37 | 2.8 | 25 | 1 |
Berikut adalah implementasi model probabilitas linier di R.
# Membuat data frame
data <- data.frame(
Usia = c(25, 34, 42, 28, 37),
Jam_Website = c(1.5, 2.0, 3.5, 1.0, 2.8),
Diskon = c(20, 15, 30, 10, 25),
Pembelian = c(1, 0, 1, 0, 1)
)
# Membuat model probabilitas linier
model <- lm(Pembelian ~ Usia + Jam_Website + Diskon, data = data)
# Melihat ringkasan model
summary(model)
##
## Call:
## lm(formula = Pembelian ~ Usia + Jam_Website + Diskon, data = data)
##
## Residuals:
## 1 2 3 4 5
## -2.778e-02 -2.778e-02 -8.333e-02 -1.908e-16 1.389e-01
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -7.037e-01 2.400e+00 -0.293 0.818
## Usia 3.087e-16 1.054e-01 0.000 1.000
## Jam_Website -6.481e-01 1.247e+00 -0.520 0.695
## Diskon 1.352e-01 8.163e-02 1.656 0.346
##
## Residual standard error: 0.1667 on 1 degrees of freedom
## Multiple R-squared: 0.9769, Adjusted R-squared: 0.9074
## F-statistic: 14.07 on 3 and 1 DF, p-value: 0.193
Diperoleh persamaan model probabilitas linier untuk memprediksi probabilitas bahwa seorang pelanggan akan melakukan pembelian sebagai berikut:
\[ P(Y=1|X) = -0.7037 + 3.087 \times 10^{-16} \cdot X_1 - 0.6481 \cdot X_2 + 0.1352 \cdot X_3 \]
dimana:
\(P(Y=1|X)\) = probabilitas bahwa pelanggan akan melakukan pembelian.
\(X_1\) = Usia pelanggan.
\(X_2\) = Jam yang dihabiskan di website.
\(X_3\) = Diskon yang diterima pelanggan.
Model yang dibentuk dapat diinterpretasikan sebagai berikut:
Intercept (\(\alpha\)) : -0.7037. Ini menunjukkan bahwa jika semua variabel independen \(X_1\), \(X_2\), dan \(X_3\) bernilai 0, probabilitas pelanggan melakukan pembelian adalah -0.7037. Meskipun angka ini tidak bermakna secara langsung, ini hanya menunjukkan bahwa intercept tidak memiliki interpretasi praktis dalam konteks probabilitas.
Koefisien untuk Usia (\(\beta_1\)) : \(3.087 \times 10^{-16}\). Ini menunjukkan bahwa perubahan dalam usia pelanggan memiliki pengaruh yang sangat kecil (dekat dengan 0) terhadap probabilitas pembelian.
Koefisien untuk Jam_Website (\(\beta_2\)) : -0.6481. Ini menunjukkan bahwa setiap tambahan 1 jam yang dihabiskan pelanggan di website mengurangi probabilitas pembelian sebesar 0.6481, meskipun ini tidak signifikan secara statistik.
Koefisien untuk Diskon (\(\beta_3\)) : 0.1352. Ini berarti bahwa setiap tambahan 1% diskon yang diberikan meningkatkan probabilitas pembelian sebesar 0.1352.
Namun, meskipun koefisien untuk Diskon menunjukkan pengaruh positif, nilai p-value untuk variabel ini adalah 0.346, yang lebih besar dari 0.05, menunjukkan bahwa pengaruh diskon terhadap probabilitas pembelian tidak signifikan secara statistik.
Berikut adalah ukuran statistik model yang dibentuk:
Untuk memprediksi probabilitas pembelian untuk seorang pelanggan baru dengan Usia 30 tahun, menghabiskan 2 jam di website, dan mendapatkan diskon 20%, kita bisa menggantikan nilai-nilai tersebut dalam persamaan model:
\[ P(Y=1) = -0.7037 + 3.087 \times 10^{-16} \cdot 30 - 0.6481 \cdot 2 + 0.1352 \cdot 20 = 0.7041 \]
# Menghitung probabilitas untuk pelanggan baru
probabilitas_baru <- -0.7037 + (3.087 * 10^(-16)) * 30 - 0.6481 * 2 + 0.1352 * 20
probabilitas_baru
## [1] 0.7041
Artinya, peluang pembelian untuk seorang pelanggan baru dengan Usia 30 tahun, menghabiskan 2 jam di website, dan mendapatkan diskon 20% adalah sebesar 70.41%
Model Regresi Logistik adalah model statistik yang digunakan untuk memodelkan hubungan antara variabel independen dan variabel dependen biner (misalnya, 1 = sukses, 0 = gagal). Model ini merupakan bagian dari Generalized Linear Models (GLM) yang menggunakan fungsi logit sebagai fungsi penghubung (link function), yang memastikan bahwa probabilitas yang diprediksi berada dalam rentang yang valid antara 0 dan 1.
Model regresi logistik mengasumsikan bahwa log-odds dari probabilitas kejadian suatu peristiwa dapat diprediksi melalui kombinasi linier dari variabel independen.
Bentuk umum model regresi logistik yaitu:
\[ \log \left( \frac{\mu}{1 - \mu} \right) = X\beta \]
\[ \log \left( \frac{P(Y=1|X)}{1 - P(Y=1|X)} \right) = \alpha + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_p X_p \]
dimana:
Fungsi link function logit dapat dinyatakan dalam bentuk berikut:
\[ g(\mu) = \log \left( \frac{\mu}{1 - \mu} \right) \]
Fungsi inverse link digunakan untuk menghitung probabilitas \(\mu\) berdasarkan model regresi logistik, dan dapat dituliskan sebagai berikut:
\[ \mu = \frac{\exp(X\beta)}{1 + \exp(X\beta)} \]
Keunggulan utama dari regresi logistik adalah kemudahannya dalam diterapkan pada metode pembelajaran mesin. Model pembelajaran mesin dapat dibangun dengan efektif melalui proses pelatihan dan pengujian. Tujuan dari pelatihan adalah untuk mengidentifikasi pola dalam data masukan (seperti gambar) dan menghubungkannya dengan hasil yang sesuai (label). Melatih model regresi logistik menggunakan algoritma regresi tidak memerlukan daya komputasi yang besar. Oleh karena itu, regresi logistik lebih mudah diimplementasikan, dipahami, dan dilatih jika dibandingkan dengan metode pembelajaran mesin lainnya.
Setelah model regresi logistik dipelajari, probabilitas kejadian \(P(Y=1|X)\) dihitung dengan mengubah logit ke dalam bentuk probabilitas menggunakan fungsi sigmoid:
\[ P(Y=1|X) = \frac{1}{1 + \exp(-(\alpha + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_p X_p))} \]
Jika nilai prediksi lebih besar dari ambang batas (misalnya 0.5), maka diklasifkasikan sebagai 1. Jika kurang dari 0.5, diklasifkasikan sebagai 0. Fungsi sigmoid menghasilkan kurva berbentuk huruf S (S-shaped curve), yang mengkonversi setiap nilai riil menjadi nilai dalam rentang antara 0 dan 1.
Plot Kurva Sigmoid
# Simulasi data untuk regresi logistik
set.seed(42)
n <- 100
x <- seq(-4, 4, length.out = n)
log_odds <- -0.5 + 1.5 * x
prob <- 1 / (1 + exp(-log_odds))
y <- rbinom(n, 1, prob)
# Buat data frame
data <- data.frame(x = x, y = y, prob = prob)
plot(x, y, pch = 16, col = "darkblue",
xlab = "X", ylab = "Y / Probabilitas",
main = "Simulasi Regresi Logistik dengan Kurva Sigmoid")
lines(x, prob, col = "red", lwd = 2)
abline(h = 0.5, col = "blue", lty = 2)
legend("topleft",
legend = c("Data Biner (0/1)", "Kurva Logistik", "Ambang 0.5"),
col = c("darkblue", "red", "blue"),
pch = c(16, NA, NA),
lty = c(NA, 1, 2),
lwd = c(NA, 2, 1),
pt.cex = 1.5,
bty = "n")
Kurva sigmoid dalam regresi logistik menunjukkan hubungan non-linear antara variabel prediktor dan probabilitas output. Pendekatan ini efektif untuk klasifkasi biner seperti deteksi penyakit, email spam, dan prediksi ya/tidak.
Estimasi Parameter
Dalam Generalized Linear Models (GLM), parameter model (yaitu, \(\alpha, \beta_1, \beta_2, \dots, \beta_p\)) diestimasi dengan menggunakan metode likelihood maksimum (Maximum Likelihood Estimation, MLE). Tujuan dari MLE adalah untuk menemukan nilai parameter yang memaksimalkan fungsi likelihood, yaitu peluang untuk mendapatkan data yang diamati, berdasarkan parameter model.
Untuk regresi logistik, fungsi likelihood diberikan oleh:
\[ L(\alpha, \beta_1, \beta_2, \dots, \beta_p) = \prod_{i=1}^{n} \left( P(Y_i = 1|X_i) \right)^{Y_i} \left( 1 - P(Y_i = 1|X_i) \right)^{1 - Y_i} \]
Fungsi log-likelihood (log-likelihood) adalah logaritma dari fungsi likelihood, dan estimasi parameter dilakukan dengan memaksimalkan fungsi log-likelihood:
\[ \text{log-likelihood} = \sum_{i=1}^{n} \left[ Y_i \log(P(Y_i = 1|X_i)) + (1 - Y_i) \log(1 - P(Y_i = 1|X_i)) \right] \]
Setelah parameter \(\alpha, \beta_1, \beta_2, \dots, \beta_p\) diestimasi, kita dapat menghitung probabilitas kejadian \(P(Y=1|X)\) untuk setiap observasi.
Seorang manajer pemasaran ingin memprediksi probabilitas seorang pelanggan untuk berlangganan layanan premium berdasarkan beberapa faktor. Variabel dependen adalah apakah pelanggan berlangganan layanan premium (1 = ya, 0 = tidak). Variabel independen yang digunakan untuk memprediksi berlangganan layanan premium adalah Usia pelanggan, Pendapatan bulanan, dan Jumlah bulan berlangganan layanan sebelumnya.
Berikut adalah data yang dikumpulkan untuk 10 pelanggan:
| Pelanggan | Usia (X₁) | Pendapatan Bulanan (X₂) | Bulan Berlangganan Sebelumnya (X₃) | Berlangganan Premium (Y) |
|---|---|---|---|---|
| 1 | 25 | 3000 | 12 | 1 |
| 2 | 40 | 5000 | 24 | 0 |
| 3 | 35 | 4500 | 18 | 1 |
| 4 | 50 | 7000 | 30 | 0 |
| 5 | 28 | 3500 | 10 | 1 |
| 6 | 33 | 6000 | 20 | 0 |
| 7 | 45 | 5500 | 22 | 1 |
| 8 | 55 | 8000 | 35 | 0 |
| 9 | 38 | 4000 | 15 | 1 |
| 10 | 30 | 3700 | 12 | 0 |
Model regresi logistik yang digunakan untuk memprediksi probabilitas berlangganan layanan premium berdasarkan Usia, Pendapatan, dan Bulan Berlangganan Sebelumnya dapat dituliskan sebagai berikut:
\[ \log \left( \frac{P(Y=1|X)}{1 - P(Y=1|X)} \right) = \alpha + \beta_1 \cdot X_1 + \beta_2 \cdot X_2 + \beta_3 \cdot X_3 \]
# Membuat data frame
data <- data.frame(
Usia = c(25, 40, 35, 50, 28, 33, 45, 55, 38, 30),
Pendapatan = c(3000, 5000, 4500, 7000, 3500, 6000, 5500, 8000, 4000, 3700),
Bulan_Berlangganan = c(12, 24, 18, 30, 10, 20, 22, 35, 15, 12),
Berlangganan_Premium = c(1, 0, 1, 0, 1, 0, 1, 0, 1, 0)
)
# Membuat model regresi logistik
model_logistik <- glm(Berlangganan_Premium ~ Usia + Pendapatan + Bulan_Berlangganan, data = data, family = binomial)
# Menampilkan ringkasan model
summary(model_logistik)
##
## Call:
## glm(formula = Berlangganan_Premium ~ Usia + Pendapatan + Bulan_Berlangganan,
## family = binomial, data = data)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.115896 5.504443 0.021 0.983
## Usia 0.591475 0.675946 0.875 0.382
## Pendapatan -0.003538 0.005236 -0.676 0.499
## Bulan_Berlangganan -0.276327 0.440283 -0.628 0.530
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 13.8629 on 9 degrees of freedom
## Residual deviance: 7.3742 on 6 degrees of freedom
## AIC: 15.374
##
## Number of Fisher Scoring iterations: 7
Diperoleh persamaan logit model regresi logistik sebagai berikut:
\[ \log \left( \frac{P(Y=1|X)}{1 - P(Y=1|X)} \right) = 0.1159 + 0.5915 \cdot X_1 - 0.0035 \cdot X_2 - 0.2763 \cdot X_3 \]
dimana:
\(P(Y=1|X)\) = probabilitas bahwa pelanggan berlangganan layanan premium.
\(X_1\) = Usia pelanggan.
\(X_2\) = Pendapatan bulanan pelanggan.
\(X_3\) = Bulan Berlangganan Sebelumnya pelanggan.
Berdasarkan hasil model, kita dapat menginterpretasikan koefisien-koefisien model sebagai berikut:
Intercept (\(\alpha\)) = 0.1159: Ini adalah log-odds dari probabilitas berlangganan layanan premium ketika semua variabel independen (Usia, Pendapatan, dan Bulan Berlangganan) bernilai 0.
Koefisien untuk Usia (\(\beta_1\)) = 0.5915: Setiap kenaikan 1 tahun pada usia pelanggan meningkatkan log-odds dari berlangganan layanan premium sebesar 0.5915.
Koefisien untuk Pendapatan (\(\beta_2\)) = -0.0035: Setiap kenaikan 1 unit pada pendapatan bulanan mengurangi log-odds dari berlangganan layanan premium sebesar 0.0035.
Koefisien untuk Bulan Berlangganan Sebelumnya (\(\beta_3\)) = -0.2763: Setiap tambahan 1 bulan berlangganan sebelumnya mengurangi log-odds dari berlangganan layanan premium sebesar 0.2763.
exp(coef(model_logistik))
## (Intercept) Usia Pendapatan Bulan_Berlangganan
## 1.1228786 1.8066517 0.9964685 0.7585652
Odds ratio untuk Intercept sebesar 1.122 tidak memberikan informasi langsung yang bermakna dalam konteks prediksi probabilitas. Nilai ini biasanya digunakan sebagai titik referensi dalam perhitungan model.
Odds ratio untuk Usia adalah 1.8067. Ini berarti bahwa untuk setiap kenaikan 1 tahun pada usia pelanggan, odds (kemungkinan relatif) bahwa pelanggan akan berlangganan layanan premium akan meningkat sebesar 80.67%. Dengan kata lain, semakin tua usia pelanggan, semakin besar kemungkinan mereka untuk berlangganan layanan premium.
Odds ratio untuk Pendapatan adalah 0.9965. Ini berarti bahwa setiap kenaikan 1 unit dalam pendapatan bulanan pelanggan, odds bahwa pelanggan akan berlangganan layanan premium akan berkurang sebesar 0.35%. Meskipun ini menunjukkan penurunan odds, karena nilai odds ratio mendekati 1, pengaruh pendapatan terhadap probabilitas berlangganan premium sangat kecil.
Odds ratio untuk Bulan Berlangganan Sebelumnya adalah 0.7586. Ini berarti bahwa untuk setiap tambahan 1 bulan berlangganan sebelumnya, odds bahwa pelanggan akan berlangganan layanan premium akan berkurang sebesar 24.14%. Artinya, semakin banyak bulan pelanggan berlangganan sebelumnya, semakin kecil kemungkinan mereka untuk berlangganan premium lagi.
Grid
library(plotly)
## Warning: package 'plotly' was built under R version 4.4.3
## Loading required package: ggplot2
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
# Membuat grid untuk prediksi
grid <- expand.grid(
Usia = seq(min(data$Usia), max(data$Usia), length.out = 30),
Pendapatan = seq(min(data$Pendapatan), max(data$Pendapatan), length.out = 30),
Bulan_Berlangganan = seq(min(data$Bulan_Berlangganan), max(data$Bulan_Berlangganan), length.out = 30)
)
# Menghasilkan prediksi probabilitas untuk seluruh grid
grid$Prediksi <- predict(model_logistik, newdata = grid, type = "response")
# Membuat plot 3D
fig <- plot_ly(
x = grid$Usia,
y = grid$Pendapatan,
z = grid$Prediksi,
type = "scatter3d",
mode = "markers",
marker = list(size = 5, color = grid$Prediksi, colorscale = 'Viridis', showscale = TRUE)
)
# Menampilkan plot 3D
fig
Ini adalah plot 3D yang menunjukkan hubungan antara tiga variabel, yaitu Usia (x), Pendapatan (y), dan Probabilitas Prediksi (z) yang dihasilkan dari model regresi logistik. Interpretasi:
Plot X = Usia
# library(ggplot2)
data$pred <- predict(model_logistik, type = "response")
ggplot(data, aes(x = Usia, y = pred)) +
geom_point(alpha = 0.5, color = "red") + # Menambahkan titik data
geom_line(aes(y = pred), color = "red", linewidth = 1.5) + # Menambahkan garis prediksi
labs(title = "Kurva Logit pada Regresi Logistik",
x = "Usia (Prediktor)",
y = "Probabilitas Berlangganan Premium") +
theme_minimal()
Plot X = Pendapatan
# library(ggplot2)
ggplot(data, aes(x = Pendapatan, y = pred)) +
geom_point(alpha = 0.5, color = "red") + # Menambahkan titik data
geom_line(aes(y = pred), color = "red", linewidth = 1.5) + # Menambahkan garis prediksi
labs(title = "Kurva Logit pada Regresi Logistik",
x = "Pendapatan (Prediktor)",
y = "Probabilitas Berlangganan Premium") +
theme_minimal()
Plot X = Bulan Berlangganan
data$pred <- predict(model_logistik, type = "response")
# library(ggplot2)
ggplot(data, aes(x = Bulan_Berlangganan, y = pred)) +
geom_point(alpha = 0.5, color = "red") + # Menambahkan titik data
geom_line(aes(y = pred), color = "red", linewidth = 1.5) + # Menambahkan garis prediksi
labs(title = "Kurva Logit pada Regresi Logistik",
x = "Bulan Berlangganan (Prediktor)",
y = "Probabilitas Berlangganan Premium") +
theme_minimal()
# Klasifikasi dan confusion matrix
data$pred <- predict(model_logistik, type = "response")
data$pred_class <- ifelse(data$pred > 0.5, 1, 0)
# Membuat confusion matrix
conf_matrix <- table(Predicted = data$pred_class, Actual = data$Berlangganan_Premium)
# Menghitung akurasi
accuracy <- sum(diag(conf_matrix)) / sum(conf_matrix)
print(list(Confusion_Matrix = conf_matrix, Akurasi = accuracy))
## $Confusion_Matrix
## Actual
## Predicted 0 1
## 0 4 1
## 1 1 4
##
## $Akurasi
## [1] 0.8
Berdasarkan perhitungan diketahui bahwa:
80% akurasi berarti bahwa model ini berhasil memprediksi dengan benar 80% dari total kasus yang ada.
Meskipun 80% adalah nilai yang relatif baik, kita juga harus memperhatikan false positives (FP) dan false negatives (FN). Dalam hal ini, model salah mengklasifikasikan 1 pelanggan yang tidak berlangganan premium sebagai berlangganan, dan 1 pelanggan yang berlangganan premium sebagai tidak berlangganan.
Misalnya, ingin diprediksi probabilitas berlangganan premium untuk seorang pelanggan yang memiliki Usia = 35 tahun, Pendapatan = 4500 dan Bulan Berlangganan Sebelumnya = 15 bulan.
Substitusikan nilai-nilai tersebut ke dalam persamaan model:
\[ \log \left( \frac{P(Y=1|X)}{1 - P(Y=1|X)} \right) = 0.1159 + (0.5915 \cdot 35) - (0.0035 \cdot 4500) - (0.2763 \cdot 15) \]
\[ \log \left( \frac{P(Y=1|X)}{1 - P(Y=1|X)} \right) = 0.1159 + 20.7025 - 15.75 - 4.1445 \]
\[ \log \left( \frac{P(Y=1|X)}{1 - P(Y=1|X)} \right) = 1.9239 \]
Kemudian, gunakan fungsi sigmoid untuk menghitung probabilitas:
\[ P(Y=1|X) = \frac{1}{1 + \exp(-(\alpha + \beta_1 \cdot X_1 + \beta_2 \cdot X_2 + \beta_3 \cdot X_3))} \]
\[ P(Y=1|X) = \frac{1}{1 + \exp(-1.9239)} \approx 0.716 \]
Perhitungan dengan R
# Menghitung log-odds dan probabilitas untuk pasien baru
log_odds <- 0.1159 + (0.5915 * 35) + (-0.0035 * 4500) + (-0.2763 * 15)
probabilitas_berlangganan <- 1 / (1 + exp(-log_odds))
probabilitas_berlangganan
## [1] 0.7158361
Hasil prediksi menunjukkan bahwa pelanggan baru dengan karakteristik tersebut memiliki probabilitas 71.58% untuk berlangganan layanan premium.
Model regresi logistik yang digunakan untuk memprediksi berlangganan premium menunjukkan hasil yang cukup baik dengan akurasi 80% dan memberikan wawasan penting tentang pengaruh Usia, Pendapatan, dan Bulan Berlangganan Sebelumnya terhadap keputusan pelanggan untuk berlangganan layanan premium. Meskipun demikian, model ini dapat lebih disempurnakan dengan penambahan variabel dan penyesuaian threshold untuk meningkatkan kinerja dan akurasi prediksi.
Model regresi probit digunakan untuk memodelkan probabilitas kejadian suatu peristiwa, yang dalam kasus ini memiliki dua hasil (biner). Berbeda dengan regresi logistik yang menggunakan fungsi logit (log-odds), model probit menggunakan fungsi probit (fungsi distribusi kumulatif dari distribusi normal standar) untuk menghubungkan probabilitas dengan variabel independen.
Bentuk umum model regresi probit adalah:
\[ P(Y = 1 | X) = \Phi(\alpha + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_p X_p) \]
dimana:
\(P(Y = 1 | X)\) = probabilitas bahwa peristiwa \(Y = 1\) terjadi, diberikan nilai variabel independen \(X\).
\(\Phi\) = fungsi distribusi kumulatif normal standar, yang mengubah nilai linier yang dihitung oleh model menjadi probabilitas antara 0 dan 1.
\(\alpha\) = intercept atau konstanta.
\(\beta_1, \beta_2, \dots, \beta_p\) = koefisien regresi yang menunjukkan seberapa besar pengaruh masing-masing variabel prediktor terhadap hasil.
\(X_1, X_2, \dots, X_p\) = variabel independen (prediktor) yang mempengaruhi probabilitas kejadian.
Fungsi probit (\(\Phi\)) adalah fungsi distribusi kumulatif dari distribusi normal standar dan dapat dihitung sebagai:
\[ \Phi(z) = \int_{-\infty}^z \frac{1}{\sqrt{2 \pi}} e^{-t^2 / 2} dt \]
Fungsi ini mengubah nilai linier (misalnya, \(\alpha + \beta_1 X_1 + \dots + \beta_p X_p\)) menjadi probabilitas yang terletak di antara 0 dan 1. Dengan demikian, regresi probit digunakan untuk mengatasi masalah probabilitas yang lebih besar dari 1 atau lebih kecil dari 0, yang mungkin terjadi jika kita menggunakan model linear biasa.
Estimasi Parameter
Estimasi parameter dalam model regresi probit dilakukan dengan menggunakan maximum likelihood estimation (MLE), yang bertujuan untuk menemukan nilai parameter yang memaksimalkan kemungkinan data yang diamati.
Untuk model regresi probit, fungsi likelihood diberikan oleh:
\[ L(\alpha, \beta_1, \beta_2, \dots, \beta_p) = \prod_{i=1}^{n} P(Y_i = 1 | X_i)^{y_i} \cdot P(Y_i = 0 | X_i)^{(1 - y_i)} \]
dimana:
\(n\) = jumlah total pengamatan
\(y_i\) = nilai aktual untuk observasi ke-\(i\) (\(y_i = 1\) jika kejadian terjadi, \(y_i = 0\) jika kejadian tidak terjadi)
\(P(Y_i = 1 | X_i)\) = probabilitas bahwa \(Y = 1\) (misalnya, berlangganan premium) untuk pengamatan ke-\(i\), yang dihitung sebagai fungsi distribusi normal kumulatif:
\[ P(Y_i = 1 | X_i) = \Phi(\alpha + \beta_1 X_{i1} + \beta_2 X_{i2} + \dots + \beta_p X_{ip}) \]
\(\Phi\) adalah fungsi distribusi kumulatif dari distribusi normal standar.
Log-likelihood adalah logaritma dari fungsi likelihood. Fungsi log-likelihood untuk model regresi probit adalah sebagai berikut:
\[ \log L(\alpha, \beta_1, \beta_2, \dots, \beta_p) = \sum_{i=1}^{n} \left[ y_i \log(\Phi(\alpha + \beta_1 X_{i1} + \dots + \beta_p X_{ip})) + (1 - y_i) \log(1 - \Phi(\alpha + \beta_1 X_{i1} + \dots + \beta_p X_{ip})) \right] \]
Fungsi log-likelihood ini digunakan dalam estimasi parameter dengan menggunakan metode maximum likelihood estimation (MLE). MLE mencari parameter yang memaksimalkan nilai log-likelihood ini.
Estimasi parameter (\(\alpha, \beta_1, \beta_2, \dots, \beta_p\)) dilakukan dengan mengoptimalkan log-likelihood menggunakan teknik iteratif, seperti Newton-Raphson atau BFGS (Broyden–Fletcher–Goldfarb–Shanno), yang banyak digunakan dalam statistik untuk menemukan solusi optimal dalam model statistik.
Setelah parameter (\(\alpha\), \(\beta_1, \dots, \beta_p\)) diestimasi, kita bisa menginterpretasikan koefisien regresi probit. Namun, koefisien regresi probit tidak memiliki interpretasi yang mudah seperti pada regresi logistik (yang menggunakan log-odds). Untuk interpretasi yang lebih mudah, kita sering kali menggunakan marginal effects, yang mengukur perubahan dalam probabilitas untuk perubahan unit dari variabel independen.
Marginal effect untuk variabel \(X_j\) dapat dihitung sebagai:
\[ \frac{\partial P(Y = 1 | X)}{\partial X_j} = \phi(\alpha + \beta_1 X_1 + \dots + \beta_p X_p) \cdot \beta_j \]
Dimana \(\phi\) adalah fungsi densitas distribusi normal standar.
Seorang karyawan memiliki data pelanggan bank dan ingin memprediksi apakah seorang pemohon pinjaman layak menerima pinjaman (1 = layak, 0 = tidak layak) berdasarkan beberapa faktor, yaitu Usia pemohon, Pendapatan bulanan, dan Status pekerjaan. Model regresi probit akan digunakan untuk memodelkan probabilitas kelayakan penerima pinjaman berdasarkan variabel independen yang diberikan.
Karyawan tersebut memiliki data berikut untuk 10 pemohon:
| Pemohon | Usia | Pendapatan (Rp) | Status Pekerjaan | Kelayakan Pinjaman (Y) |
|---|---|---|---|---|
| 1 | 25 | 3,000,000 | Tetap | 1 |
| 2 | 40 | 5,000,000 | Tidak Tetap | 0 |
| 3 | 30 | 4,500,000 | Tetap | 1 |
| 4 | 50 | 6,000,000 | Tetap | 0 |
| 5 | 35 | 3,800,000 | Tidak Tetap | 1 |
| 6 | 28 | 4,200,000 | Tetap | 0 |
| 7 | 45 | 5,500,000 | Tetap | 1 |
| 8 | 38 | 4,000,000 | Tidak Tetap | 0 |
| 9 | 32 | 4,800,000 | Tetap | 1 |
| 10 | 42 | 6,500,000 | Tidak Tetap | 0 |
Model regresi probit yang digunakan untuk memprediksi probabilitas pengajuan pinjaman dapat dituliskan sebagai:
\[ P(Y = 1 | X) = \Phi(\alpha + \beta_1 \cdot \text{Usia} + \beta_2 \cdot \text{Pendapatan} + \beta_3 \cdot \text{Status Pekerjaan}) \]
dimana:
\(P(Y = 1 | X)\) = probabilitas pengajuan pinjaman.
\(\Phi\) = fungsi distribusi kumulatif normal standar.
\(\alpha\) = intercept.
\(\beta_1\), \(\beta_2\), \(\beta_3\) = koefisien regresi yang akan dipelajari.
Usia, Pendapatan, dan Status Pekerjaan = variabel independen.
# Membuat data frame
data_pinjam <- data.frame(
Usia = c(25, 40, 30, 50, 35, 28, 45, 38, 32, 42),
Pendapatan = c(3000000, 5000000, 4500000, 6000000, 3800000, 4200000, 5500000, 4000000, 4800000, 6500000),
Status_Pekerjaan = c(1, 0, 1, 1, 0, 1, 1, 0, 1, 0), # 1 = Tetap, 0 = Tidak Tetap
Kelayakan_Pinjam = c(1, 0, 1, 0, 1, 0, 1, 0, 1, 0)
)
# Membuat model regresi probit
model_probit <- glm(Kelayakan_Pinjam ~ Usia + Pendapatan + Status_Pekerjaan,
data = data_pinjam,
family = binomial(link = "probit"))
# Menampilkan ringkasan model
summary(model_probit)
##
## Call:
## glm(formula = Kelayakan_Pinjam ~ Usia + Pendapatan + Status_Pekerjaan,
## family = binomial(link = "probit"), data = data_pinjam)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 2.737e+00 2.983e+00 0.918 0.359
## Usia 4.873e-02 1.458e-01 0.334 0.738
## Pendapatan -1.198e-06 1.583e-06 -0.756 0.449
## Status_Pekerjaan 1.704e+00 1.638e+00 1.040 0.298
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 13.8629 on 9 degrees of freedom
## Residual deviance: 9.9516 on 6 degrees of freedom
## AIC: 17.952
##
## Number of Fisher Scoring iterations: 8
Diperoleh model regresi probit berikut:
\[ P(Y = 1 | X) = \Phi(2.737 + 0.04873 \cdot \text{Usia} - 1.198 \times 10^{-6} \cdot \text{Pendapatan} + 1.704 \cdot \text{Status Pekerjaan}) \]
Model tersebut dapat diinterpretasikan sebagai berikut:
Karyawan ingin memprediksi probabilitas untuk pemohon baru yang berusia 30 tahun, memiliki pendapatan Rp 5.000.000 per bulan, dan Status Pekerjaan tetap (1).
# Menghitung log-odds (nilai dalam distribusi normal standar)
log_odds <- 2.737 + (0.04873 * 30) + (-1.198e-06 * 5000000) + (1.704 * 1)
# Menghitung probabilitas dengan fungsi distribusi kumulatif normal (probit)
probabilitas <- pnorm(log_odds)
# Menampilkan probabilitas
probabilitas
## [1] 0.465296
Artinya, pemohon ini memiliki probabilitas sebesar 46.52% untuk dianggap layak menerima pinjaman, berdasarkan model regresi probit yang telah dibangun.
Model regresi Poisson adalah model statistik yang digunakan untuk memodelkan variabel dependen count data atau data hitung, yaitu data yang menunjukkan jumlah kejadian dari suatu peristiwa dalam interval waktu tertentu, ruang, atau unit lainnya. Model ini sangat berguna ketika data yang dianalisis berbentuk bilangan bulat non-negatif (misalnya, jumlah kejadian suatu peristiwa seperti jumlah kecelakaan dalam sehari, jumlah panggilan telepon, jumlah pelanggan yang datang ke toko, dll).
Bentuk umum dari model regresi Poisson yaitu:
\[ \log(\lambda_i) = \alpha + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_p X_p \]
dimana:
\(\lambda_i\) = rata-rata jumlah kejadian yang diharapkan (rate) untuk unit ke-\(i\), yang ingin diprediksi.
\(\alpha\) = intercept atau konstanta.
\(X_1, X_2, \dots, X_p\) = variabel independen atau prediktor.
\(\beta_1, \beta_2, \dots, \beta_p\) = koefisien regresi untuk masing-masing variabel independen.
Model regresi Poisson mengasumsikan bahwa data yang diamati mengikuti distribusi Poisson, yang memiliki fungsi probabilitas massa sebagai berikut:
\[ P(Y = y) = \frac{\lambda^y e^{-\lambda}}{y!} \]
dimana:
\(P(Y = y)\) = probabilitas terjadinya \(y\) kejadian.
\(\lambda\) = rata-rata kejadian per unit waktu atau ruang.
\(y\) = jumlah kejadian yang diamati.
\(e\) = basis logaritma natural.
Model regresi Poisson mengasumsikan:
Kejadian bersifat independen: Kejadian satu peristiwa tidak mempengaruhi kejadian lainnya.
Rata-rata kejadian yang dihitung dalam satu interval adalah konstan. Artinya, rate kejadian tetap di seluruh data.
Perbedaan Model Poisson dengan Model Regresi Linier
Perbedaan utama antara model Poisson dan model regresi linier adalah bahwa model Poisson digunakan untuk count data (data yang hanya mengambil nilai bulat non-negatif), sedangkan regresi linier digunakan untuk data kontinu.
Model regresi Poisson menangani distribusi data yang bersifat skewed (terdistorsi), di mana banyak kejadian yang terjadi sangat sedikit, dan sedikit kejadian yang terjadi sangat banyak.
Sebagai contoh, dalam kasus jumlah kecelakaan dalam sebulan, banyak bulan akan memiliki sedikit kecelakaan, tetapi beberapa bulan mungkin memiliki kecelakaan yang sangat banyak.
Koefisien dalam model regresi Poisson diinterpretasikan dalam konteks rate ratio. Jika kita memiliki koefisien \(\beta_j\) untuk variabel \(X_j\), perubahan satu unit dalam \(X_j\) akan menyebabkan perubahan dalam log rate kejadian sebesar \(\beta_j\). Untuk interpretasi yang lebih mudah, kita sering kali mengubah koefisien ke dalam rate ratio dengan cara:
\[ \text{Rate Ratio} = e^{\beta_j} \]
Estimasi Parameter
Estimasi parameter dalam model regresi Poisson dilakukan dengan menggunakan metode maximum likelihood estimation (MLE). MLE berusaha mencari parameter \(\alpha\) dan \(\beta_1, \beta_2, \dots, \beta_p\) yang memaksimalkan fungsi likelihood untuk data yang diamati. Log-likelihood fungsi untuk regresi Poisson:
\[ 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.
Fungsi Link
Fungsi link kanonik untuk distribusi Poisson adalah fungsi logaritma:
\[ g(\mu) = \log(\mu) \]
Sehingga modelnya menjadi:
\[ \log(\mu_i) = x_i^T \beta \]
Dan fungsi inverse link adalah:
\[ \mu_i = \exp(x_i^T \beta) \]
Misalkan kita ingin memodelkan jumlah kecelakaan lalu lintas pada suatu jalan berdasarkan jumlah kendaraan yang melintas. Dalam hal ini, jumlah kecelakaan (Y) adalah data count atau data hitung yang mengikuti distribusi Poisson, karena kita menghitung jumlah kejadian (kecelakaan) yang terjadi dalam suatu interval waktu atau ruang tertentu.
Misalkan kita memiliki data berikut untuk 9 hari:
| Hari | Jumlah Kendaraan | Jumlah Kecelakaan |
|---|---|---|
| 1 | 100 | 3 |
| 2 | 150 | 5 |
| 3 | 200 | 6 |
| 4 | 250 | 8 |
| 5 | 300 | 9 |
| 6 | 350 | 10 |
| 7 | 400 | 12 |
| 8 | 450 | 15 |
| 9 | 500 | 18 |
Model regresi Poisson yang digunakan untuk memprediksi jumlah kecelakaan (Y) berdasarkan jumlah kendaraan yang melintas (X) adalah:
\[ \log(\mu_i) = \alpha + \beta \cdot \text{Kendaraan}_i \]
dimana:
\(\mu_i\) = jumlah kecelakaan yang diprediksi untuk unit ke-\(i\).
\(\alpha\) = intercept atau konstanta.
\(\beta\) = koefisien yang mengukur pengaruh jumlah kendaraan terhadap jumlah kecelakaan.
Kendaraan = jumlah kendaraan yang melintas pada suatu hari.
# Membuat data frame
data_kecelakaan <- data.frame(
Kendaraan = c(100, 150, 200, 250, 300, 350, 400, 450, 500),
Kecelakaan = c(3, 5, 6, 8, 9, 10, 12, 15, 18)
)
# Membangun model regresi Poisson
model_poisson <- glm(Kecelakaan ~ Kendaraan, data = data_kecelakaan, family = poisson)
# Menampilkan ringkasan model
summary(model_poisson)
##
## Call:
## glm(formula = Kecelakaan ~ Kendaraan, family = poisson, data = data_kecelakaan)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.9982890 0.3408031 2.929 0.0034 **
## Kendaraan 0.0038037 0.0008969 4.241 2.22e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 19.76752 on 8 degrees of freedom
## Residual deviance: 0.45674 on 7 degrees of freedom
## AIC: 40.367
##
## Number of Fisher Scoring iterations: 4
Berdasarkan perhitungan diperoleh model poisson:
\[ \log(\mu_i) = 0.9983 + 0.0038037 \cdot \text{Kendaraan}_i \]
Fungsi inverse link (untuk memperoleh nilai \(\mu_i\) yang diprediksi) adalah:
\[ \mu_i = \exp(0.9983 + 0.0038037 \cdot \text{Kendaraan}_i) \]
dimana:
Model tersebut dapat diinterpretasikan sebagai berikut:
Koefisien Intercept (\(\alpha\)) : 0.9983. Nilai ini merupakan log rate jumlah kecelakaan pada hari ketika jumlah kendaraan adalah 0. Meskipun secara praktis, jumlah kendaraan tidak mungkin 0, namun ini memberi kita nilai baseline atau titik awal untuk prediksi model.
Koefisien Kendaraan (\(\beta\)): 0.0038037. Setiap tambahan satu unit kendaraan yang melintas meningkatkan log rate kecelakaan sebesar 0.0038. Untuk interpretasi yang lebih mudah, kita dapat mengubah koefisien menjadi rate ratio dengan menghitung \(e^\beta\). Dalam hal ini:
\[ e^{\beta} = e^{0.0038037} \approx 1.0038 \]
Nilai signifikansi statistik dapat diinterpretasikan sebagai:
Intercept : p-value = 0.0034, yang menunjukkan bahwa intercept signifikan pada tingkat 1% (karena p-value < 0.01).
Kendaraan : p-value = 2.22e-05, yang menunjukkan bahwa koefisien kendaraan sangat signifikan pada tingkat 0.001 (karena p-value < 0.001).
Null deviance : 19.76752 dengan 8 derajat kebebasan.
Residual deviance : 0.45674 dengan 7 derajat kebebasan.
Pengurangan dari null deviance ke residual deviance menunjukkan bahwa model memberikan peningkatan yang signifikan dalam menjelaskan variabilitas data, karena nilai residual deviance jauh lebih rendah.
AIC (Akaike Information Criterion) : 40.367. Nilai AIC yang lebih rendah menunjukkan bahwa model ini relatif lebih baik dalam menjelaskan data tanpa overfitting.
Line
plot(data_kecelakaan$Kendaraan, data_kecelakaan$Kecelakaan, pch = 16, col = "darkgray",
main = "Data dan Hasil Prediksi", xlab = "Jumlah Kendaraan", ylab = "Jumlah Kecelakaan")
# Membuat data baru untuk prediksi (range dari data kendaraan)
newdata <- data.frame(Kendaraan = seq(min(data_kecelakaan$Kendaraan), max(data_kecelakaan$Kendaraan), length.out = 100))
# Prediksi menggunakan model
pred <- predict(model_poisson, newdata = newdata, type = "response")
# Plot hasil prediksi
lines(newdata$Kendaraan, pred, col = "blue", lwd = 2)
Scatter
# Membuat prediksi
data_kecelakaan$predicted <- predict(model_poisson, type = "response")
ggplot(data_kecelakaan, aes(x = Kendaraan, y = Kecelakaan)) +
geom_jitter(width = 0.2, alpha = 0.6, color = "red") + # Plot data asli
geom_point(aes(y = predicted), shape = 18, size = 3, color = "black") + # Plot prediksi
labs(title = "Prediksi Jumlah Kecelakaan Berdasarkan Jumlah Kendaraan",
x = "Jumlah Kendaraan",
y = "Jumlah Kecelakaan") +
theme_minimal()
Interpretasi
Titik data asli (berwarna abu) menunjukkan hubungan positif antara jumlah kendaraan dan jumlah kecelakaan, yang berarti semakin banyak kendaraan, jumlah kecelakaan cenderung meningkat.
Kurva biru ini adalah hasil dari model regresi Poisson, yang menunjukkan hubungan yang diprediksi antara jumlah kendaraan dan jumlah kecelakaan.
Hubungan ini tampak non-linier, yang menjelaskan mengapa kurva regresi Poisson digunakan untuk menggambarkan data, bukan garis lurus.
Model Poisson tampaknya cukup cocok dengan data, mengingat kurva biru mengikuti tren dari titik data yang diamati dengan mulus. Hal ini konsisten dengan karakteristik regresi Poisson, yang sering digunakan untuk memodelkan data hitungan yang mengikuti distribusi Poisson (di mana variabel respon mewakili hitungan seperti kecelakaan, kejadian, dll).
Overdispersi dalam konteks model regresi Poisson terjadi ketika variance data lebih besar daripada mean. Hal ini dapat disebabkan oleh beberapa faktor, seperti variabilitas yang tidak terduga akibat adanya faktor yang tidak tercakup dalam model, seperti faktor musiman atau lingkungan yang mempengaruhi jumlah kejadian. Faktor yang tidak terobservasi juga bisa meningkatkan variabilitas data, misalnya, faktor individu atau eksternal yang tidak tercatat. Selain itu, data kluster—di mana kejadian-kejadian tertentu terjadi lebih sering dalam kelompok atau kluster—seperti kecelakaan yang sering terjadi di lokasi tertentu atau pada waktu tertentu, dapat menyebabkan overdispersi.
Jika data mengalami overdispersi, model regresi Poisson mungkin menghasilkan estimasi yang bias atau tidak efisien. Hal ini terjadi karena model Poisson mengasumsikan bahwa mean = variance (\(E[Y]=Var[Y]\)), yang tidak lagi berlaku jika terdapat overdispersi.
Untuk mendeteksi overdispersi dalam model Poisson, kita dapat membandingkan rasio deviance dengan degree of freedom. Jika deviance lebih besar daripada degree of freedom secara signifikan, itu adalah indikasi bahwa model mengalami overdispersi. Perhitungan ukuran dispersion pada R sebagai berikut.
dispersion <- sum(residuals(model_poisson, type = "pearson")^2) / model_poisson$df.residual
dispersion
## [1] 0.06301479
Kriteria Nilai Dispersion
Karena berdasarkan perhitungan diperoleh nilai dispersion 0.06 < 1, maka dapat disimpulkan bahwa model poisson mengalami overdispersi yang artinya variansi data lebih kecil dari rata-rata, yang menunjukkan bahwa model Poisson melebih-lebihkan variabilitas dalam data. Dalam kasus ini, data tidak menunjukkan variasi yang cukup untuk mendukung model Poisson.
Plot residual adalah alat untuk mengevaluasi apakah model yang digunakan cocok untuk data yang ada. Jika residuals tersebar secara acak di sekitar garis horizontal pada residual = 0 dan tidak membentuk pola yang jelas, maka model dianggap cocok dan memenuhi asumsi dasar regresi Poisson, yaitu homoskedastisitas (variansi residual yang seragam).
# Plot residual
plot(model_poisson$residuals, main = "Residual Plot", ylab = "Residual", xlab = "Index", pch = 19, col = "black")
abline(h = 0, col = "blue", lty = 2)
Berdasarkan plot tersebut kita dapat mengetahui bahwa:
Akan diprediksi jumlah kecelakaan jika jumlah kendaraan yang melintas diketahui sebanyak 550, 600, dan 650. Maka perhitungannya sebagai berikut:
# Data baru untuk prediksi
new_data <- data.frame(Kendaraan = c(550, 600, 650))
# Prediksi jumlah kecelakaan untuk kendaraan baru
prediksi_kecelakaan <- predict(model_poisson, new_data, type = "response")
# Menampilkan hasil prediksi
prediksi_kecelakaan
## 1 2 3
## 21.98435 26.58950 32.15932
Berdasarkan perhitungan tersebut, diketahui bahwa prediksi jumlah kecelakaan ketika jumlah kendaraan sebanyak 550 adalah sebanyak 22 kecelakaan, ketika kendaraan sebanyak 600 diprediksi terdapat sebanyak 27 kecelakaan dan ketika kendaraan sebanyak 650 terdapat 32 kecelakaan.
Pengaruh Kendaraan terhadap Kecelakaan : Setiap kenaikan jumlah kendaraan meningkatkan probabilitas terjadinya kecelakaan. Hal ini bisa dilihat dari rate ratio sebesar 1.0038, yang mengindikasikan bahwa untuk setiap tambahan satu kendaraan, rate kecelakaan akan meningkat sebesar 0.38%.
Signifikansi Variabel : Baik intercept maupun jumlah kendaraan menunjukkan tingkat signifikansi yang tinggi (p-value < 0.05), yang berarti model ini memberikan hasil yang cukup valid dan koefisien dapat diinterpretasikan dengan percaya diri.
Model yang Baik : Berdasarkan penurunan deviance dan nilai AIC yang relatif rendah, kita dapat menyimpulkan bahwa model regresi Poisson ini sesuai untuk data yang digunakan dan dapat digunakan untuk memprediksi jumlah kecelakaan berdasarkan jumlah kendaraan yang melintas. Namun dapat mencoba menggunakan metode alternatif lainnya seperti negative binomial.
Berikut adalah perbandingan antara Model Probabilitas Linier, Model Regresi Logistik, Model Regresi Probit, dan Model Regresi Poisson:
| Kriteria | Model Probabilitas Linier | Model Regresi Logistik | Model Regresi Probit | Model Regresi Poisson |
|---|---|---|---|---|
| Tipe Data | Data kontinu | Data biner (0 atau 1) | Data biner (0 atau 1) | Data hitung (count data) |
| Fungsi Link | Identitas (linear) | Logit | Probit (CDF normal) | Log (kanonik Poisson) |
| Persamaan Model | \(\mu = \alpha + \beta X\) | \(\log\left(\frac{\mu}{1-\mu}\right) = \alpha + \beta X\) | \(\Phi^{-1}(\mu) = \alpha + \beta X\) | \(\log(\mu) = \alpha + \beta X\) |
| Jenis Variabel Dependen | Kontinu (misalnya skor) | Biner (0 atau 1) | Biner (0 atau 1) | Count (angka kejadian) |
| Fungsi Distribusi | Normal | Bernoulli | Bernoulli | Poisson |
| Estimasi Parameter | OLS (Least Squares) | MLE (Maximum Likelihood) | MLE (Maximum Likelihood) | MLE (Maximum Likelihood) |
| Interpretasi Koefisien | Perubahan rata-rata | Odds Ratio | Perubahan probabilitas | Rate Ratio |
| Aplikasi | Prediksi skor atau nilai | Prediksi probabilitas | Prediksi probabilitas | Prediksi jumlah kejadian |
| Kelebihan | Mudah dihitung, sederhana | Model yang lebih fleksibel | Model lebih tepat untuk distribusi normal | Memodelkan data hitung dengan baik |
| Kekurangan | Tidak cocok untuk data biner | Tidak menangani data hitung | Memerlukan distribusi normal | Memiliki asumsi varian = rata-rata (Poisson) |
Inferensi dalam Generalized Linear Model (GLM) berfokus pada estimasi parameter model dan pengujian hipotesis terkait hubungan antara variabel prediktor dan respon. Proses inferensi ini dilakukan dengan menggunakan metode estimasi maksimum likelihood (MLE), yang bertujuan untuk menemukan nilai parameter model (\(\boldsymbol{\beta}\)) yang memaksimalkan kemungkinan data yang diamati, berdasarkan distribusi yang dipilih untuk variabel respon. Setelah parameter diestimasi, inferensi statistik melibatkan pengujian hipotesis, seperti uji signifikan untuk parameter (\(\boldsymbol{\beta}\)) menggunakan nilai Wald, likelihood ratio test (LRT), atau score test. Selain itu, interval kepercayaan untuk parameter dapat dihitung untuk memberikan rentang nilai yang mungkin untuk parameter tersebut. Inferensi juga mencakup penilaian kecocokan model dengan menggunakan berbagai ukuran seperti deviance, AIC, atau BIC untuk memilih model terbaik.
Dalam Generalized Linear Model (GLM), inferensi statistik membutuhkan pemahaman terhadap ekspektasi dan varians dari estimator model, terutama untuk mengembangkan alat-alat uji seperti Wald test, Likelihood Ratio test, dan interval kepercayaan. Dalam GLM, ekspektasi atau nilai rata-rata dari variabel respon ditentukan oleh fungsi link yang menghubungkan rata-rata variabel respon dengan kombinasi linier dari variabel prediktor.
Secara umum, GLM dapat ditulis sebagai:
\[ g(\mu) = \mathbf{X} \boldsymbol{\beta} \]
di mana:
\(\mu = E(Y)\) adalah ekspektasi dari variabel respon \(Y\),
\(g(\mu)\) adalah fungsi link yang menghubungkan ekspektasi \(\mu\) dengan kombinasi linier dari prediktor,
\(\mathbf{X}\) adalah matriks prediktor, dan
\(\boldsymbol{\beta}\) adalah vektor parameter model.
Ekspektasi dalam GLM
Ekspektasi dalam GLM adalah nilai rata-rata dari variabel respon yang diberikan oleh distribusi tertentu. Dalam konteks GLM, ekspektasi \(E(Y)\) tergantung pada fungsi link \(g\) dan bentuk distribusi yang digunakan.
Ekspektasi menunjukkan apakah suatu estimator tak bias, yaitu:
\[ E[\hat{\beta}] = \beta \]
Dalam GLM, MLE dari \(\hat{\beta}\) bersifat asymptotically unbiased.
1. Regresi Linier (Normal)
Jika distribusi respon mengikuti distribusi Normal, maka fungsi link yang digunakan adalah identitas, yaitu \(g(\mu) = \mu\).
Ekspektasi \(E(Y)\) adalah nilai rata-rata dari variabel respon yang dapat diprediksi menggunakan model linier:
\[E(Y) = \mathbf{X} \boldsymbol{\beta}\]
2. Regresi Logistik (Binomial)
\[ g(\mu) = \log\left(\frac{\mu}{1 - \mu}\right) \]
\[ E(Y) = \frac{1}{1 + \exp(-\mathbf{X} \boldsymbol{\beta})} \]
3. Regresi Poisson (Poisson)
\[ g(\mu) = \log(\mu) \]
\[ E(Y) = \exp(\mathbf{X} \boldsymbol{\beta}) \]
Mencari Nilai Ekspektasi Berdasarkan Fungsi Momen
Fungsi momen adalah pendekatan untuk menemukan nilai ekspektasi dan parameter distribusi dengan cara menghubungkan momen dari distribusi teoretis dengan momen dari sampel data.
Momen ke-\(n\) dari suatu distribusi probabilitas untuk variabel acak \(X\) didefinisikan sebagai:
\[ \mu_n = E[X^n] \]
Untuk mencari nilai ekspektasi (\(E[X]\)) menggunakan fungsi momen, kita dapat mengikuti langkah-langkah berikut:
\[ \mu_1 = E[X] \]
Tuliskan Fungsi Momen Teoretis : Misalkan kita memiliki fungsi momen teoretis dari distribusi tertentu, seperti distribusi Normal yang memiliki momen pertama \(\mu_1 = \mu\).
Bandingkan dengan Momen Sampel : Momen sampel dihitung sebagai rata-rata dari data yang diamati:
\[ \hat{\mu}_n = \frac{1}{n} \sum_{i=1}^{n} X_i^n \]
\[ E[X] = \hat{\mu}_1 = \frac{1}{n} \sum_{i=1}^{n} X_i \]
Metode fungsi momen memberikan cara yang sederhana untuk mengestimasi nilai ekspektasi dan parameter distribusi dengan mencocokkan momen sampel dengan momen teoretis. Pendekatan ini sangat berguna ketika distribusi data tidak diketahui dan dapat digunakan untuk berbagai jenis distribusi.
Ekspektasi dalam Generalized Linear Model menggambarkan nilai rata-rata dari variabel respon berdasarkan fungsi link dan distribusi yang digunakan. Model ini memungkinkan fleksibilitas dalam memilih distribusi dan hubungan antara variabel prediktor dan respon. Pemilihan distribusi yang tepat dan fungsi link yang sesuai dengan data sangat penting dalam membangun model yang akurat.
Varians dalam GLM
Varians dalam Generalized Linear Model (GLM) menggambarkan sejauh mana variabel respon \(Y\) tersebar di sekitar nilai ekspektasinya \(\mu\). Varians ini bergantung pada distribusi yang dipilih untuk data dan fungsi link yang digunakan.
Dalam GLM, varians dari variabel respon \(Y\) dapat dinyatakan sebagai:
\[ \text{Var}(Y) = \phi \cdot V(\mu) \]
di mana:
\(\phi\) adalah parameter skala (biasanya 1, kecuali untuk distribusi seperti Gamma dan Inverse Gaussian),
\(V(\mu)\) adalah varians fungsi dari ekspektasi \(\mu\).
Varians dari estimator \(\hat{\beta}\) dalam Generalized Linear Model (GLM) juga dapat dihitung dengan pendekatan berikut:
\[ \text{Var}(\hat{\beta}) \approx [X^\top W X]^{-1} \]
di mana \(W\) adalah matriks bobot yang tergantung pada distribusi dan fungsi link.
Sebagai contoh, untuk regresi Poisson (distribusi Poisson), varians \(Y\) adalah sama dengan ekspektasi \(\mu\), yaitu:
\[ \text{Var}(Y) = \mu \]
Untuk regresi binomial (distribusi Binomial), varians \(Y\) adalah:
\[ \text{Var}(Y) = \mu (1 - \mu) / n \]
di mana \(n\) adalah jumlah percobaan dalam setiap observasi.
Mencari Varians Berdasarkan Fungsi Momen
Dalam metode fungsi momen, varians dari suatu variabel acak dapat ditemukan dengan menggunakan momen kedua, yang menggambarkan penyebaran data di sekitar nilai ekspektasinya. Varians adalah selisih antara momen kedua dan kuadrat dari ekspektasi (momen pertama).
Momen ke-\(n\) dari suatu distribusi probabilitas untuk variabel acak \(X\) didefinisikan sebagai:
\[ \mu_n = E[X^n] \]
Momen pertama (\(\mu_1\)) adalah ekspektasi \(E[X]\), sedangkan momen kedua (\(\mu_2\)) adalah \(E[X^2]\). Varians dapat dihitung dengan rumus:
\[ \text{Var}(X) = E[X^2] - (E[X])^2 \]
Langkah-Langkah:
Tentukkan Fungsi Momen dari Variabel Acak : Momen pertama adalah ekspektasi, yaitu \(E[X]\), dan momen kedua adalah \(E[X^2]\).
Tuliskan Fungsi Momen Teoretis : Misalkan kita memiliki fungsi momen teoretis dari distribusi tertentu. Sebagai contoh, untuk distribusi Normal, momen pertama adalah \(\mu\) dan momen kedua adalah \(\mu^2 + \sigma^2\), di mana \(\mu\) adalah rata-rata dan \(\sigma^2\) adalah varians.
Bandingkan dengan Momen Sampel : Momen sampel ke-\(n\) dihitung sebagai rata-rata dari data yang diamati:
\[ \hat{\mu}_n = \frac{1}{n} \sum_{i=1}^{n} X_i^n \]
\[ \hat{\text{Var}}(X) = \hat{\mu}_2 - (\hat{\mu}_1)^2 \]
dimana:
\(\hat{\mu}_1 = \frac{1}{n} \sum_{i=1}^{n} X_i\) adalah estimasi momen pertama (ekspektasi),
\(\hat{\mu}_2 = \frac{1}{n} \sum_{i=1}^{n} X_i^2\) adalah estimasi momen kedua.
Dengan menggunakan metode fungsi momen, varians dapat diestimasi dengan menghitung momen kedua (\(E[X^2]\)) dan mengurangkan kuadrat dari momen pertama (\(E[X]\)). Pendekatan ini memungkinkan kita untuk memperkirakan varians distribusi meskipun distribusi itu tidak diketahui secara langsung. Varians ini digunakan dalam proses estimasi parameter dan untuk menentukan ketepatan model yang digunakan, baik dalam mengukur ketidakpastian estimasi maupun dalam pengujian hipotesis.
Distribusi Asimptotik Estimator
Dengan ukuran sampel besar:
\[ \hat{\beta} \sim N(\beta, \text{Var}(\hat{\beta})) \]
Distribusi ini adalah dasar dari Uji Wald, Confidence interval, dan P-value.
Kesimpulan
Ekspektasi adalah rata-rata atau nilai yang diharapkan dari suatu estimator. Ekspektasi digunakan untuk mengetahui ketakbiasan estimasi
Varians adalah ukuran sebaran dari nilai estimator di sekitar nilai ekspektasinya. Varians digunakan untuk mengukur presisi dan menyusun uji statistik
Distribusi asimptotik dari estimator adalah distribusi yang diperoleh ketika ukuran sampel menjadi sangat besar. Distribusi asimptotik dari \(\hat{\beta}\) sangat bergantung pada kedua konsep ini
Varians dalam GLM tidak konstan dan bergantung pada bentuk distribusi data yang digunakan. Hal ini berpengaruh pada bagaimana model menangani data yang memiliki varians yang tidak konstan, yang dikenal sebagai heteroskedastisitas dalam konteks regresi.
Metode Maximum Likelihood Estimation (MLE), atau dalam bahasa Indonesia disebut Penaksiran Maksimum Likelihood, adalah metode yang paling umum digunakan dalam Generalized Linear Model (GLM). MLE bertujuan untuk mencari estimasi parameter model dengan memaksimalkan fungsi likelihood (atau log-likelihood), yang mencerminkan seberapa besar kemungkinan data yang diamati diberikan parameter tertentu.
Prinsip Dasar dari MLE
Memaksimalkan fungsi likelihood atau log-likelihood, yang menggambarkan sejauh mana parameter model mendekati data yang diamati.
Dalam praktiknya, fungsi likelihood biasanya lebih mudah ditangani jika menggunakan log-likelihood, karena bentuk logaritmik mempermudah perhitungan dan penyelesaian masalah optimisasi.
Langkah-langkah dalam MLE
Turunan pertama dari fungsi log-likelihood disamakan dengan nol: Langkah pertama dalam metode MLE adalah menghitung turunan pertama dari log-likelihood dan menyamakan hasilnya dengan nol. Proses ini mencari titik maksimum dari fungsi log-likelihood untuk mendapatkan estimasi parameter yang paling sesuai.
Turunan kedua lebih kecil dari nol: Untuk memastikan bahwa titik yang ditemukan adalah titik maksimum, turunan kedua dari log-likelihood harus lebih kecil dari nol pada titik tersebut. Ini menunjukkan bahwa titik tersebut adalah titik maksimum, bukan titik minimum atau titik belok.
Dalam Generalized Linear Model (GLM), solusi eksplisit untuk turunan pertama dan kedua tidak selalu mudah diperoleh secara analitik. Hal ini karena bentuk dari log-likelihood dalam GLM seringkali sangat kompleks. Oleh karena itu, solusi untuk estimasi parameter model biasanya diperoleh melalui metode optimisasi numerik, seperti metode Newton-Raphson atau Gradient Descent, yang dapat menemukan solusi secara iteratif.
Dalam Generalized Linear Model (GLM), optimisasi digunakan untuk menemukan estimasi parameter model yang memaksimalkan fungsi log-likelihood.
Metode Newton-Raphson adalah metode iteratif yang digunakan untuk mencari solusi numerik dari sistem persamaan. Dalam konteks GLM, metode ini digunakan untuk menemukan estimasi parameter dengan cara memperbarui nilai parameter secara berulang hingga konvergen.
1. Vektor Turunan Pertama (Vector Score atau Gradient)
Pada tahap pertama, metode ini menggunakan vektor turunan pertama, yang disebut vector score atau gradient. Vektor turunan pertama ini menghitung perubahan fungsi log-likelihood terhadap perubahan parameter. Ini memberikan arah di mana parameter perlu diperbarui untuk meningkatkan fungsi log-likelihood.
Formula umum untuk turunan pertama dalam GLM adalah:
\[ U(\beta) = \frac{\partial \ell(\beta)}{\partial \beta} \]
dimana:
\(\ell(\boldsymbol{\beta})\) = log-likelihood
\(\boldsymbol{\beta}\) = parameter model
2. Matriks Turunan Kedua (Matrix Hessian)
Selain vektor turunan pertama, metode Newton-Raphson juga menggunakan matriks turunan kedua, yang dikenal dengan nama matrix Hessian. Matriks Hessian adalah matriks dari turunan kedua dari fungsi log-likelihood. Ini digunakan untuk memberikan informasi tentang kelengkungan fungsi log-likelihood, yang menunjukkan seberapa cepat fungsi log-likelihood berubah di sekitar titik tertentu. Matriks ini digunakan untuk menentukan seberapa besar langkah yang diambil dalam perbaikan parameter.
Formula umum untuk matriks Hessian \(\mathbf{H}(\boldsymbol{\beta})\) dalam GLM adalah:
\[ H(\beta) = \frac{\partial^2 \ell(\beta)}{\partial \beta^2} \]
Proses Iteratif Newton-Raphson
Inisialisasi Parameter: Tentukan nilai awal untuk parameter model, \(\boldsymbol{\beta}_0\).
Hitung Vektor Score dan Matriks Hessian: Hitung vektor turunan pertama dan matriks Hessian pada iterasi pertama.
Perbarui Parameter: Parameter diperbarui dengan rumus:
\[ \beta_{k+1} = \beta_k - [H(\beta_k)]^{-1} U(\beta_k) \]
Metode Newton-Raphson sangat efisien dalam optimisasi GLM karena menggabungkan informasi dari turunan pertama dan kedua. Dengan menggunakan vector score (vektor turunan pertama) dan matrix Hessian (matriks turunan kedua), metode ini dapat mempercepat konvergensi dan memberikan estimasi parameter yang lebih akurat dalam GLM. Namun, metode ini membutuhkan perhitungan turunan kedua yang dapat menjadi mahal secara komputasional, terutama untuk model dengan banyak parameter.
Fisher’s Scoring adalah modifikasi dari metode Newton-Raphson yang digunakan untuk mengoptimalkan estimasi parameter dalam model statistik, termasuk Generalized Linear Model (GLM). Perbedaan utama antara kedua metode ini terletak pada penggunaan matriks informasi Fisher menggantikan matriks Hessian.
Perbedaan Utama:
Newton-Raphson menggunakan matriks Hessian, yaitu matriks dari turunan kedua fungsi log-likelihood. Matriks Hessian menggambarkan kelengkungan atau sejauh mana fungsi log-likelihood berubah dengan perubahan parameter.
Fisher’s Scoring, di sisi lain, menggantikan matriks Hessian dengan matriks informasi Fisher. Matriks ini adalah ekspektasi dari matriks Hessian dan mengukur informasi yang diperoleh dari data mengenai parameter yang ingin diestimasi.
Matriks informasi Fisher (\(I(\boldsymbol{\beta})\)) merupakan harapan dari matriks Hessian, yang dinyatakan sebagai:
\[ I(\beta) = -E\left[\frac{\partial^2 \ell(\beta)}{\partial \beta^2}\right] \]
dimana:
\(\ell(\boldsymbol{\beta})\) = log-likelihood
\(I(\boldsymbol{\beta})\) = informasi Fisher. Matriks ini memiliki peran yang sangat penting karena memberikan informasi tentang seberapa banyak data mengungkapkan mengenai parameter yang diestimasi.
Langkah-langkah Fisher’s Scoring
Vektor Skor (\(U(\boldsymbol{\beta})\)) dihitung sebagai turunan pertama dari log-likelihood terhadap parameter: \[ U(\beta) = \frac{\partial \ell(\beta)}{\partial \beta} \]
Matriks Informasi Fisher (\(I(\boldsymbol{\beta})\)) dihitung sebagai harapan dari turunan kedua log-likelihood.
Perbarui Parameter menggunakan rumus iteratif Fisher’s Scoring: \[ \beta_{\text{new}} = \beta_{\text{old}} - I^{-1}(\beta) U(\beta) \]
Ulangi langkah 2 dan 3 sampai konvergensi tercapai.
Keunggulan Fisher’s Scoring:
Fisher’s Scoring lebih stabil dibandingkan dengan metode Newton-Raphson karena menggunakan informasi ekspektasi, yang sering kali lebih mudah dihitung dan lebih stabil, terutama dalam kasus distribusi yang tidak memiliki bentuk sederhana.
Metode ini cenderung lebih cepat untuk model-model yang lebih kompleks dan lebih sedikit bergantung pada asumsi yang kuat terkait kelengkungan fungsi log-likelihood.
IRWLS adalah salah satu metode yang digunakan dalam Generalized Linear Model (GLM) untuk mengestimasi parameter model. Metode ini merupakan variasi dari Least Squares yang diterapkan secara iteratif dan diberi bobot ulang di setiap langkah untuk menangani data yang lebih kompleks, terutama dalam konteks GLM yang melibatkan fungsi link dan distribusi yang tidak selalu memenuhi asumsi normalitas.
Langkah-langkah dalam IRLS
Pilih Estimasi Awal untuk Parameter (\(\boldsymbol{\beta}_0\)).
Hitung fungsi link dan fungsi distribusi yang sesuai dengan model.
Hitung Residu: Pada setiap iterasi, hitung residu antara nilai yang diprediksi dan nilai yang diamati.
Hitung Matriks Bobot: Tentukan matriks bobot \(W\) berdasarkan residual dan distribusi yang digunakan.
Perbarui Parameter:
Perbarui parameter dengan menghitung estimasi parameter baru menggunakan rumus Weighted Least Squares:
\[ \beta_{\text{new}} = (X^T W X)^{-1} X^T W y \]
dimana:
\(\mathbf{X}\) = matriks prediktor,
\(W\) = matriks bobot,
\(\mathbf{y}\) = vektor nilai observasi.
Keunggulan IRWLS
IRWLS sangat efektif untuk model Generalized Linear Models dengan distribusi non-normal dan fungsi link yang tidak linear.
Metode ini lebih fleksibel dibandingkan metode Least Squares standar karena dapat menangani data dengan distribusi yang berbeda, seperti distribusi Poisson, binomial, atau Gamma.
IRWLS juga mengatasi masalah heteroskedastisitas (varians yang tidak konstan) dengan memberikan bobot yang sesuai berdasarkan distribusi dan fungsi link.
Teknik-teknik yang digunakan untuk menentukan apakah model taksiran valid ataukah tidak, secara umum disebut diagnostik model. Teknik-teknik ini dapat dilakukan melalui uji statistik formal tetapi sering juga dilakukan melalui gambaran secara grafis/plot dari fit value yang dibandingkan terhadap nilai pengamatan.
Statistik Devians digunakan untuk mengukur sejauh mana model yang diusulkan cocok dengan data yang diamati. Statistik ini adalah ukuran penting dalam model Generalized Linear Model (GLM) dan digunakan untuk membandingkan seberapa baik model yang berbeda dalam menggambarkan data. Devians dapat digunakan untuk memilih antara beberapa model yang berbeda berdasarkan kebaikan kecocokan model. Jika nilai devians besar, maka model yang diusulkan tidak cocok dengan data.
Statistik devians didefinisikan sebagai:
\[ D = 2 \sum \left[ y_i \log \left( \frac{y_i}{\mu_i} \right) - (y_i - \mu_i) \right] \]
dimana:
\(y_i\) = nilai yang diamati untuk observasi ke-\(i\),
\(\mu_i\) = nilai prediksi (ekspektasi) untuk observasi ke-\(i\),
\(D\) = devians untuk seluruh data.
Rumus ini mengukur sejauh mana prediksi model (\(\mu_i\)) mendekati nilai yang sebenarnya (\(y_i\)). Semakin besar devians, semakin buruk kecocokan model dengan data. Devians juga digunakan untuk membandingkan model yang diusulkan dengan model saturated. Model saturated adalah model yang memaksimalkan kecocokan dengan data dengan jumlah parameter yang sangat besar, sehingga model ini selalu menghasilkan devians yang paling kecil (0).
Bertujuan untuk menguji apakah model yang diajukan lebih baik daripada model yang tidak memuat parameter sama sekali (model kosong). Model kosong adalah model yang tidak mengandung variabel prediktor, dan uji ini membantu menentukan apakah penambahan variabel prediktor ke dalam model memberikan peningkatan yang signifikan dalam kecocokan model.
Statistik Chi-Square dihitung dengan: \[ X^2 = \sum \frac{(y_i - \mu_i)^2}{\mu_i} \]
dimana:
\(y_i\) = nilai observasi yang diamati untuk data ke-\(i\),
\(\mu_i\) = nilai prediksi atau ekspektasi yang dihitung berdasarkan model yang diajukan.
Hasil Uji
Jika nilai statistik signifikan: Ini menunjukkan bahwa model yang diajukan lebih baik daripada model kosong (tanpa parameter). Artinya, variabel prediktor dalam model memberikan informasi yang berguna untuk memprediksi variabel respon.
Jika nilai statistik tidak signifikan: Ini menunjukkan bahwa model yang diusulkan tidak memberikan peningkatan yang berarti dibandingkan dengan model kosong, dan model tersebut tidak cocok dengan data.
Catatan
Statistik devians dan chi-kuadrat Pearson mengikuti distribusi Chi-Square. Ini berarti bahwa statistik ini dapat digunakan untuk menguji apakah devians dari model sesuai dengan distribusi Chi-Square yang diharapkan, yang sering kali digunakan untuk uji kebaikan model dalam GLM.
Jika data tidak dikelompokkan, statistik devians tidak mengikuti distribusi Chi-Square. Dalam hal ini, perlu menggunakan pendekatan lain untuk menguji kebaikan model, karena distribusi deviansnya tidak sesuai dengan distribusi Chi-Square.
Maximum Likelihood Estimation (MLE) digunakan untuk mengestimasi parameter model sedemikian rupa agar devians diminimalkan. Dengan meminimalkan devians, MLE memberikan estimasi parameter yang paling sesuai dengan data, yang juga cocok digunakan untuk evaluasi model secara keseluruhan.
Dalam Generalized Linear Model (GLM), nilai selisih (residual) antara nilai yang diamati dan nilai yang diprediksi tidak selalu mengikuti distribusi normal dan mungkin memiliki batas tertentu (terutama jika menggunakan distribusi seperti Poisson atau Binomial). Oleh karena itu, untuk memastikan analisis residual yang lebih tepat, kita perlu mengubah bentuk residual ini agar lebih sesuai dengan model yang digunakan.
Pearson residual adalah bentuk standar dari residual yang digunakan dalam GLM. Pearson residual digunakan untuk menormalkan atau menstandarisasi residual, sehingga dapat lebih mudah dianalisis, terutama ketika distribusi data tidak normal.
Pearson residual dapat dihitung sebagai berikut:
\[ \text{Pearson residual} = e_i = \frac{y_i - \hat{\mu}_i}{\sqrt{\widehat{\text{Var}}(y_i)}} \]
dimana:
\(y_i\) = nilai observasi untuk data ke-\(i\),
\(\mu_i\) = nilai prediksi untuk data ke-\(i\),
\(Var(y_i)\) = varians dari distribusi \(y_i\), yang tergantung pada model dan distribusi yang digunakan.
Standardized Residual adalah jenis lain dari residual yang digunakan untuk menormalkan selisih antara nilai observasi (\(y_i\)) dan nilai prediksi (\(\hat{\mu}_i\)) dengan cara membaginya dengan standard error dari prediksi tersebut. Dengan cara ini, residual standar memberikan ukuran yang lebih konsisten dan memudahkan perbandingan antar observasi, terlepas dari perbedaan skala atau variabilitas.
Standardized residual dihitung dengan rumus:
\[ \text{Standardized residual} = \frac{y_i - \hat{\mu}_i}{SE} \]
dimana:
\(y_i\) = nilai observasi untuk data ke-\(i\),
\(\hat{\mu}_i\) = nilai prediksi atau nilai fit (fitted value) untuk data ke-\(i\),
\(SE\) = standard error dari prediksi \(\hat{\mu}_i\).
Dalam Generalized Linear Model (GLM), baik Pearson Residual maupun Standardized Residual digunakan untuk menganalisis kecocokan model dengan data. Berikut adalah perbandingan keduanya dalam bentuk tabel:
| Kriteria | Pearson Residual | Standardized Residual |
|---|---|---|
| Rumus | \(e_i = \frac{y_i - \mu_i}{\sqrt{Var(y_i)}}\) | \(e_i = \frac{y_i - \hat{\mu}_i}{SE}\) |
| Pembagi | Varians dari data (\(Var(y_i)\)) | Standard Error (\(SE\)) dari prediksi \(\hat{\mu}_i\) |
| Tujuan | Menyelaraskan residual dengan distribusi data yang diharapkan | Menstandarisasi residual untuk memungkinkan perbandingan yang lebih adil antar observasi |
| Tujuan Penggunaan | Mengukur seberapa besar selisih antara nilai observasi dan prediksi yang dihitung berdasarkan varians data | Menormalkan residual untuk evaluasi kesalahan relatif terhadap ketidakpastian prediksi |
| Penggunaan Umum | Digunakan ketika distribusi data sudah diketahui dan varians cukup stabil | Digunakan untuk menormalkan residual dalam model yang lebih kompleks atau ketika distribusi tidak diketahui |
| Kelebihan | Menggunakan varians data untuk penyesuaian yang lebih akurat pada model | Menyediakan ukuran kesalahan yang lebih konsisten antar observasi |
Pearson Residual lebih mengutamakan distribusi data dan variansnya, sementara Standardized Residual lebih mengutamakan standard error dari prediksi, memberikan cara yang lebih langsung untuk membandingkan kesalahan antar observasi.
Regresi Logistik adalah jenis regresi yang digunakan untuk memodelkan probabilitas dari variabel respon biner (0/1), berdasarkan satu atau lebih variabel prediktor. Fungsi model logistik adalah persamaan yang menggambarkan hubungan antara prediktor dan probabilitas kejadian (p). Probabilitas kejadian (\(\pi(x)\)) dihitung menggunakan fungsi logistik yang diberikan oleh:
\[ \pi(x) = \frac{\exp(\beta_0 + \beta_1 x)}{1 + \exp(\beta_0 + \beta_1 x)} \]
dimana:
\(x\) = variabel prediktor (misalnya, umur, tingkat pendidikan, dll.).
\(\beta_0\) = intercept (parameter model).
\(\beta_1\) = koefisien untuk variabel prediktor \(x\).
Untuk melakukan estimasi parameter dalam model logistik, kita menggunakan Maximum Likelihood Estimation (MLE). MLE adalah metode yang digunakan untuk menemukan nilai parameter (\(\beta_0, \beta_1\)) yang memaksimalkan kemungkinan data yang diamati, berdasarkan model.
Log-likelihood untuk n observasi dalam regresi logistik adalah:
\[ \ell(\beta) = \sum_{i=1}^{n} \left[ y_i \log(\pi_i) + (1 - y_i) \log(1 - \pi_i) \right] \]
dimana:
\(y_i\) = nilai observasi (0 atau 1) untuk data ke-\(i\).
\(\pi_i\) = probabilitas kejadian untuk data ke-\(i\), yang dihitung menggunakan fungsi model logistik
Log-likelihood menghitung sejauh mana model yang diusulkan (dengan parameter \(\beta_0\) dan \(\beta_1\)) sesuai dengan data yang diamati.
Metode Newton-Raphson digunakan untuk mencari nilai parameter \(\beta\) yang memaksimalkan fungsi log-likelihood pada model regresi logistik.
Probabilitas kejadian untuk model logistik dapat dihitung dengan fungsi logistik yang diberikan oleh:
\[ \pi_i = \frac{1}{1 + \exp(-x_i^T \beta)} \]
dimana:
\(\pi_i\) = probabilitas kejadian untuk observasi ke-\(i\),
\(x_i\) = vektor prediktor untuk observasi ke-\(i\),
\(\beta\) = vektor parameter model yang ingin kita estimasi.
Tahapan Newton-Raphson
\[ U(\beta) = \frac{\partial \ell(\beta)}{\partial \beta} = X^T (y - \pi) \]
Turunan pertama dari log-likelihood (sering disebut score function) adalah fungsi yang menggambarkan perubahan log-likelihood terhadap perubahan parameter \(\beta\). Dalam konteks regresi logistik, ini dihitung sebagai hasil perkalian antara matriks desain \(X^T\) dan selisih antara nilai observasi \(y\) dan prediksi probabilitas \(\pi\). \(\pi\) di sini adalah probabilitas yang diprediksi untuk setiap data dengan menggunakan model logistik. Score function ini sangat penting untuk menemukan titik maksimum dari fungsi likelihood saat menggunakan metode estimasi seperti Newton-Raphson.
\[ H(\beta) = -X^T W X, \quad \text{dengan} \quad W = \text{diag}(\pi_i (1 - \pi_i)) \]
Turunan kedua dari log-likelihood adalah matriks Hessian, yang memberikan informasi tentang kelengkungan fungsi log-likelihood. Hessian sangat penting untuk algoritma optimasi karena digunakan untuk mengetahui seberapa cepat fungsi log-likelihood berubah pada titik tertentu. Dalam regresi logistik, Hessian dihitung dengan menggunakan matriks desain \(X^T\), matriks diagonal \(W\), yang berisi varians dari probabilitas yang diprediksi (\(\pi_i(1 - \pi_i)\)). Varians ini berkaitan dengan ketidakpastian prediksi yang lebih besar untuk nilai yang dekat dengan 0 atau 1.
\[ \beta^{(t+1)} = \beta^{(t)} + (X^T W^{(t)} X)^{-1} X^T (y - \pi^{(t)}) \]
Algoritma Newton-Raphson adalah metode iteratif untuk mencari estimasi parameter yang memaksimalkan log-likelihood. Dalam rumus ini, \(\beta^{(t)}\) adalah parameter pada iterasi ke-\(t\), dan \(\beta^{(t+1)}\) adalah parameter yang diperbarui pada iterasi berikutnya. Pembaruan dilakukan dengan menghitung invers dari Hessian (yang melibatkan matriks \(X^T W^{(t)} X\)) dan mengalikan dengan score function \((X^T (y - \pi^{(t)}))\). Proses ini diulang sampai konvergensi tercapai, yaitu ketika perubahan parameter antara dua iterasi bertambah kecil.
Estimasi MLE dengan Newton-Raphson (Manual di R)
# Data simulasi
set.seed(77)
x <- rnorm(50)
beta_true <- c(-1, 2)
X <- cbind(1, x)
eta <- X %*% beta_true
p <- 1 / (1 + exp(-eta))
y <- rbinom(50, 1, p)
beta <- c(0, 0)
tol <- 1e-6
max_iter <- 100
for (i in 1:max_iter) {
eta <- X %*% beta
pi_hat <- 1 / (1 + exp(-eta))
W <- diag(as.numeric(pi_hat * (1 - pi_hat)))
z <- eta + solve(W) %*% (y - pi_hat)
beta_new <- solve(t(X) %*% W %*% X) %*% t(X) %*% W %*% z
if (sum(abs(beta_new - beta)) < tol) break
beta <- beta_new
}
beta
## [,1]
## -1.377062
## x 2.299338
Interpretasi
Intercept (β₀) = -1.377062: Ini adalah estimasi parameter untuk intercept (konstanta) model regresi logistik. Artinya, ketika nilai prediktor x adalah 0, probabilitas kejadian (y = 1) adalah sekitar exp(-1.377062) / (1 + exp(-1.377062)) ≈ 0.20 (dengan menggunakan fungsi logistik).
Koefisien (β₁) = 2.299338: Ini adalah estimasi parameter untuk prediktor x dalam model regresi logistik. Artinya, setiap peningkatan satu unit pada x meningkatkan log-odds dari kejadian y = 1 sebesar 2.299338. Dengan kata lain, x memiliki pengaruh positif terhadap probabilitas y = 1.
Estimasi parameter pada model regresi logistik dilakukan dengan MLE.
Newton-Raphson adalah metode numerik yang digunakan untuk memaksimalkan log-likelihood.
Prosedur identik dengan IRLS (Iteratively Reweighted Least Squares) dalam implementasi GLM
Iterasi didasarkan pada turunan pertama (score) dan kedua (Hessian).
Tujuan utama dari inferensi parameter adalah untuk memperkirakan nilai parameter yang tidak diketahui dan untuk menguji hipotesis tentang parameter tersebut.
Uji ini digunakan untuk menentukan apakah suatu parameter dalam model memiliki pengaruh yang signifikan terhadap variabel respon, atau apakah parameter tersebut dapat diabaikan (yaitu, nilai parameter tersebut adalah nol atau tidak berbeda secara signifikan dari nol).
Hipotesis
Hipotesis Nol (H₀): Parameter signifikan (\(\beta_j = 0\)).
Hipotesis Alternatif (H₁): Parameter tidak signifikan (\(\beta_j \neq 0\)).
Taraf Signifikansi
α = 5%
Statistik Uji
Dari teori estimasi MLE, estimator \(\hat{\beta}_j\) mendekati distribusi normal:
\[ \hat{\beta}_j \sim N(\beta_j, \text{Var}(\hat{\beta}_j)) \]
Jika \(H\) benar (yaitu \(\beta_j = 0\)), maka:
\[ Z = \frac{\hat{\beta}_j}{SE(\hat{\beta}_j)} \sim N(0, 1) \]
Statistik Wald dihitung dengan:
\[ W = Z^2 = \left( \frac{\hat{\beta}_j}{SE(\hat{\beta}_j)} \right)^2 = \frac{\hat{\beta}_j^2}{Var(\hat{\beta}_j)} \]
dimana:
\(W\) = Statistik uji Wald
\(Z\) = Nilai statistik z
\(\hat{\beta_j}\): Estimasi koefisien parameter model untuk variabel independen ke-\(j\)
\(SE(\hat{\beta_j})\): Kesalahan standar dari estimasi koefisien \(\hat{\beta_j}\)
\(Var(\hat{\beta_j})\): Varians dari estimasi koefisien \(\hat{\beta_j}\)
Perhitungan dengan R
set.seed(33)
n <- 30
x <- rnorm(n)
log_odds <- -0.3 + 1.4 * 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.0685 0.4515 -0.152 0.879
## x 2.0755 0.8995 2.307 0.021 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 41.455 on 29 degrees of freedom
## Residual deviance: 30.841 on 28 degrees of freedom
## AIC: 34.841
##
## Number of Fisher Scoring iterations: 5
beta_hat <- coef(model)["x"]
se_beta <- summary(model)$coefficients["x", "Std. Error"]
Z <- beta_hat / se_beta
Wald_stat <- Z^2
p_value <- 1 - pchisq(Wald_stat, df = 1)
list(Z_hitung = Z, Statistik_Wald = Wald_stat, P_value = p_value)
## $Z_hitung
## x
## 2.307342
##
## $Statistik_Wald
## x
## 5.323826
##
## $P_value
## x
## 0.02103578
Kriteria Uji
Tolak H0 jika p-value < α
Keputusan
Karena p-value (0.021) < α (0.05), maka Tolak H₀
Kesimpulan
Berdasarkan perhitungan dengan taraf signifikansi 5%, dapat disimpulkan bahwa parameter signifikan yang artinya variabel prediktor (X) berpengaruh secara nyata terhadap variabel respon (Y).
Uji Likelihood Ratio (LR Test) adalah salah satu metode statistik yang digunakan untuk membandingkan dua model statistik: model alternatif dan model null (biasanya model yang lebih sederhana atau model tanpa parameter). Uji ini digunakan untuk menguji apakah ada peningkatan yang signifikan dalam kecocokan model dengan data ketika parameter tambahan atau variabel prediktor ditambahkan.
Hipotesis
Hipotesis Nol (H₀): Tidak ada perbedaan signifikan antara model null dan model alternatif.
Hipotesis Alternatif (H₁): Model alternatif memberikan kecocokan yang lebih baik daripada model null.
Taraf Signifikansi
α = 5%
Statistik Uji
Statistik uji likelihood ratio dihitung dengan rumus: \[ \Lambda = -2 (\ell_0 - \ell_1) \]
dimana:
\(\ell_0\) = nilai log-likelihood dari model null,
\(\ell_1\) = nilai log-likelihood dari model alternatif.
Perhitungan dengan R
# 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 29 41.455
## 2 28 30.841 1 10.615 0.001122 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Kriteria Uji
Tolak H0 jika p-value < α
Keputusan
Karena p-value (0.001) < α (0.05), maka Tolak H₀
Kesimpulan
Model 1 (y ~ 1) adalah model null (tanpa variabel prediktor), dan Model 2 (y ~ x) adalah model alternatif (dengan variabel prediktor x). Deviance dari Model 1 adalah 41.455, sedangkan Deviance dari Model 2 adalah 30.841, yang menunjukkan bahwa model alternatif yang memasukkan variabel x memiliki kecocokan yang lebih baik terhadap data dibandingkan dengan model null. Nilai p-value yang kurang dari 0.05 menunjukan bahwa selisih deviance ini signifikan.
Ukuran kebaikan model merujuk pada metrik atau statistik yang digunakan untuk mengevaluasi sejauh mana model yang diusulkan cocok dengan data yang diamati. Beberapa nilai statistik yang menunjukkan ukuran kebaikan model yaitu:
Akaike Information Criterion (AIC) adalah ukuran kebaikan model yang digunakan untuk memilih model statistik terbaik di antara beberapa model yang bersaing. Model dengan AIC lebih rendah lebih disukai karena model tersebut memberikan keseimbangan yang lebih baik antara kecocokan dan kompleksitas. Menurut Akaike (1974), AIC dirancang untuk memilih model yang memberikan penjelasan terbaik terhadap data dengan jumlah parameter yang lebih sedikit, tanpa mengorbankan kualitas model secara signifikan.
AIC dihitung menggunakan rumus berikut:
\[ \text{AIC} = 2k - 2 \log L \]
dimana:
\(k\) = jumlah parameter dalam model.
\(\log L\) = log-likelihood dari model, yang mengukur seberapa baik model memprediksi data yang diamati.
Perhitungan dengan R
AIC(model)
## [1] 34.8408
Bayesian Information Criterion (BIC), juga dikenal sebagai Schwarz Information Criterion (SIC), adalah ukuran yang digunakan untuk memilih model statistik terbaik di antara beberapa model yang bersaing, dengan memperhitungkan baik kecocokan model dengan data maupun kompleksitas model (jumlah parameter). BIC memberikan penalti lebih besar dibandingkan dengan Akaike Information Criterion (AIC) untuk model yang lebih kompleks, sehingga lebih konservatif dalam memilih model dengan banyak parameter.
Menurut Schwarz (1978), BIC dihitung dengan:
\[ \text{BIC} = \log(n)k - 2 \log L \]
dimana:
\(n\) = jumlah data atau jumlah observasi
\(k\) = jumlah parameter dalam model
\(L\) = nilai likelihood dari model
Perhitungan dengan R
BIC(model)
## [1] 37.6432
Perbandingan BIC dengan AIC
AIC dan BIC keduanya digunakan untuk memilih model yang terbaik, tetapi BIC lebih konservatif dalam memilih model dengan parameter lebih sedikit.
AIC cenderung lebih toleran terhadap model dengan lebih banyak parameter karena hanya memberikan penalti yang lebih kecil untuk kompleksitas model.
BIC memberikan penalti lebih besar terhadap model yang lebih kompleks, sehingga lebih menghindari overfitting.
Model regresi Poisson digunakan untuk menganalisis data hitung (jumlah kejadian) di mana variabel respons mengikuti distribusi Poisson. Estimasi parameter dilakukan menggunakan metode Maximum Likelihood Estimation (MLE), sementara inferensi statistik dilakukan melalui uji Wald dan Uji Rasio Likelihood.
Fungsi distribusi Poisson menggambarkan probabilitas terjadinya suatu kejadian dalam interval tertentu. Fungsi probabilitas massa (PMF) dari distribusi Poisson untuk variabel acak \(Y\) yang mengikuti distribusi Poisson dengan parameter \(\lambda\) (rate atau rata-rata kejadian) diberikan oleh rumus:
\[ P(Y = y) = \frac{\lambda^y e^{-\lambda}}{y!}, \quad y = 0, 1, 2, \dots \]
dimana:
\(y\) = jumlah kejadian,
\(\lambda\) = rata-rata jumlah kejadian dalam interval,
\(e\) = bilangan Euler.
Regresi Poisson digunakan untuk memodelkan hubungan antara variabel respon yang dihitung (count data) dengan satu atau lebih variabel prediktor. Model regresi Poisson mengasumsikan bahwa variabel respon \(Y\) pada waktu \(i\) mengikuti distribusi Poisson dengan parameter \(\lambda_i\), yang dihubungkan dengan variabel prediktor \(X_i\) melalui fungsi link logaritma.
Model regresi Poisson dapat dituliskan sebagai:
\[ \log(\lambda_i) = \beta_0 + \beta_1 X_{i1} + \dots + \beta_p X_{ip} \]
dimana:
\(\lambda_i\) = tingkat kejadian (rate) untuk observasi ke-\(i\),
\(X_{i1}, \dots, X_{ip}\) = variabel prediktor untuk observasi ke-\(i\),
\(\beta_0, \beta_1, \dots, \beta_p\) = parameter model yang ingin diestimasi.
Secara intuitif, model ini mengasumsikan bahwa log dari parameter \(\lambda_i\) (yang merupakan rate kejadian) dipengaruhi oleh kombinasi linier dari variabel prediktor.
Estimasi parameter dalam regresi Poisson dilakukan dengan menggunakan Maximum Likelihood Estimation (MLE), yaitu metode yang digunakan untuk mencari nilai parameter yang memaksimalkan kemungkinan data yang diamati. Dalam konteks regresi Poisson, MLE dilakukan dengan memaksimalkan fungsi likelihood berdasarkan distribusi Poisson.
Fungsi likelihood untuk regresi Poisson diberikan oleh:
\[ L(\beta) = \prod_{i=1}^{n} \frac{\lambda_i^{y_i} e^{-\lambda_i}}{y_i!} \]
dimana:
\(y_i\) = nilai observasi untuk kejadian pada waktu \(i\),
\(\lambda_i = e^{\beta_0 + \beta_1 X_i}\) = rata-rata kejadian pada waktu \(i\), yang bergantung pada prediktor \(X_i\).
Karena produk dalam fungsi likelihood sangat besar, kita lebih sering bekerja dengan log-likelihood, yang lebih mudah dihitung. Log-likelihood untuk model regresi Poisson adalah:
\[ \ell(\beta) = \sum_{i=1}^{n} \left( y_i \log(\lambda_i) - \lambda_i - \log(y_i!) \right) \]
Dengan substitusi \(\lambda_i = e^{\beta_0 + \beta_1 X_i}\), kita memperoleh:
\[ \ell(\beta) = \sum_{i=1}^{n} \left( y_i (\beta_0 + \beta_1 X_i) - e^{\beta_0 + \beta_1 X_i} - \log(y_i!) \right) \]
Tujuan dari MLE adalah untuk mencari nilai parameter \(\beta_0, \beta_1, \dots, \beta_p\) yang memaksimalkan fungsi log-likelihood ini.
Estimasi parameter model regresi Poisson menggunakan pendekatan Maximum Likelihood Estimation (MLE) dengan metode Iteratively Reweighted Least Squares (IRLS) secara manual, tanpa menggunakan glm(). Tahapan IRLS:
\[ \log(\lambda_i) = x_i^T \beta \quad \text{sehingga} \quad \lambda_i = \exp(x_i^T \beta) \]
Pada tahap ini, model regresi Poisson didefinisikan dengan menghubungkan logaritma dari parameter \(\lambda_i\) (rate atau intensitas kejadian) dengan variabel prediktor \(x_i\) menggunakan koefisien \(\beta\). Di sini, \(\lambda_i\) dianggap sebagai ekspektasi dari jumlah kejadian untuk setiap unit observasi, yang diprediksi oleh model.
\[ \ell(\beta) = \sum_{i=1}^{n} \left[ y_i \log(\lambda_i) - \lambda_i - \log(y_i!) \right] \]
Tahap kedua adalah mendefinisikan fungsi log-likelihood untuk model Poisson, yang digunakan untuk mengukur seberapa baik model menjelaskan data yang diamati. Log-likelihood ini akan dimaksimalkan untuk mencari estimasi parameter \(\beta\). Komponen dalam rumus mencakup nilai observasi \(y_i\) dan prediksi \(\lambda_i\), dengan faktor \(y_i!\) yang berasal dari distribusi Poisson.
\[ \beta^{(t+1)} = (X^T W^{(t)} X)^{-1} X^T W^{(t)} Z^{(t)} \]
dimana:
\(W = \text{diag}(\lambda_i)\)
\(z = \eta + \frac{y - \lambda}{\lambda}\)
\(\eta_i = \log(\lambda_i) = x_i^T \beta\)
Pada tahap ini, estimasi parameter \(\beta\) dilakukan menggunakan metode iteratif, seperti dalam algoritma iterasi Newton-Raphson. Pembaruan nilai \(\beta\) dilakukan pada setiap iterasi dengan memanfaatkan matriks desain \(X\) dan matriks bobot \(W^{(t)}\) yang berisi nilai \(\lambda_i\). Vektor \(Z^{(t)}\) berisi informasi mengenai kesalahan model, dan \(\eta_i\) adalah prediksi logaritmik untuk setiap data.
Perhitungan dengan R
set.seed(12)
n <- 60
x <- rnorm(n)
X <- cbind(1, x) # add intercept
beta_true <- c(0.4, 0.9)
eta <- X %*% beta_true
lambda <- exp(eta)
y <- rpois(n, lambda)
# Inisialisasi
beta <- c(0, 0)
tol <- 1e-6
max_iter <- 100
for (i in 1:max_iter) {
eta <- X %*% beta
lambda <- exp(eta)
W <- diag(as.numeric(lambda))
z <- eta + (y - lambda) / lambda
beta_new <- solve(t(X) %*% W %*% X) %*% t(X) %*% W %*% z
if (sum(abs(beta_new - beta)) < tol) {
cat("Konvergen pada iterasi ke-", i, "\n")
break
}
beta <- beta_new
}
## Konvergen pada iterasi ke- 9
model_glm <- glm(y ~ x, family = poisson)
list(Model_GLM = summary(model_glm), Hasil_IRLS = beta)
## $Model_GLM
##
## Call:
## glm(formula = y ~ x, family = poisson)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.39051 0.11596 3.368 0.000758 ***
## x 1.00148 0.09275 10.798 < 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: 158.76 on 59 degrees of freedom
## Residual deviance: 45.60 on 58 degrees of freedom
## AIC: 168.97
##
## Number of Fisher Scoring iterations: 5
##
##
## $Hasil_IRLS
## [,1]
## 0.3905134
## x 1.0014814
Berdasarkan hasil tersebut diketahui bahwa Hasil manual IRLS sangat mendekati hasil glm() dari R. Metode ini memberikan pemahaman mendalam atas mekanisme di balik fungsi glm(). IRLS juga memberikan cara iteratif untuk menghitung estimasi MLE dalam regresi Poisson.
Hipotesis
Hipotesis Nol (H₀): Parameter signifikan (\(\beta_j = 0\)).
Hipotesis Alternatif (H₁): Parameter tidak signifikan (\(\beta_j \neq 0\)).
Taraf Signifikansi
α = 5%
Statistik Uji
Dari teori estimasi MLE, estimator \(\hat{\beta}_j\) mendekati distribusi normal:
\[ \hat{\beta}_j \sim N(\beta_j, \text{Var}(\hat{\beta}_j)) \]
Jika \(H\) benar (yaitu \(\beta_j = 0\)), maka:
\[ Z = \frac{\hat{\beta}_j}{SE(\hat{\beta}_j)} \sim N(0, 1) \]
Statistik Wald dihitung dengan:
\[ W = Z^2 = \left( \frac{\hat{\beta}_j}{SE(\hat{\beta}_j)} \right)^2 = \frac{\hat{\beta}_j^2}{Var(\hat{\beta}_j)} \]
dimana:
\(W\) = Statistik uji Wald
\(Z\) = Nilai statistik z
\(\hat{\beta_j}\): Estimasi koefisien parameter model untuk variabel independen ke-\(j\)
\(SE(\hat{\beta_j})\): Kesalahan standar dari estimasi koefisien \(\hat{\beta_j}\)
\(Var(\hat{\beta_j})\): Varians dari estimasi koefisien \(\hat{\beta_j}\)
Perhitungan dengan R
set.seed(12)
n <- 60
x <- rnorm(n)
X <- cbind(1, x) # add intercept
beta_true <- c(0.4, 0.9)
eta <- X %*% beta_true
lambda <- exp(eta)
y <- rpois(n, lambda)
# Inisialisasi
beta <- c(0, 0)
tol <- 1e-6
max_iter <- 100
for (i in 1:max_iter) {
eta <- X %*% beta
lambda <- exp(eta)
W <- diag(as.numeric(lambda))
z <- eta + (y - lambda) / lambda
beta_new <- solve(t(X) %*% W %*% X) %*% t(X) %*% W %*% z
if (sum(abs(beta_new - beta)) < tol) {
cat("Konvergen pada iterasi ke-", i, "\n")
break
}
beta <- beta_new
}
## Konvergen pada iterasi ke- 9
model <- glm(y ~ x, family = poisson)
beta_hat <- coef(model)["x"]
se_beta <- summary(model)$coefficients["x", "Std. Error"]
Z <- beta_hat / se_beta
Wald_stat <- Z^2
p_value <- 1 - pchisq(Wald_stat, df = 1)
list(Z_hitung = Z, Statistik_Wald = Wald_stat, P_value = p_value)
## $Z_hitung
## x
## 10.79821
##
## $Statistik_Wald
## x
## 116.6013
##
## $P_value
## x
## 0
Kriteria Uji
Tolak H0 jika p-value < α
Keputusan
Karena p-value (0.00) < α (0.05), maka Tolak H₀
Kesimpulan
Berdasarkan perhitungan dengan taraf signifikansi 5%, dapat disimpulkan bahwa parameter signifikan yang artinya variabel prediktor (X) berpengaruh secara nyata terhadap variabel respon (Y).
Hipotesis
Hipotesis Nol (H₀): Tidak ada perbedaan signifikan antara model null dan model alternatif.
Hipotesis Alternatif (H₁): Model alternatif memberikan kecocokan yang lebih baik daripada model null.
Taraf Signifikansi
α = 5%
Statistik Uji
Statistik uji likelihood ratio dihitung dengan rumus: \[ \Lambda = -2 (\ell_0 - \ell_1) \]
dimana:
\(\ell_0\) = nilai log-likelihood dari model null,
\(\ell_1\) = nilai log-likelihood dari model alternatif.
Perhitungan dengan R
# Model null
model_null <- glm(y ~ 1, family = poisson)
# 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 59 158.76
## 2 58 45.60 1 113.17 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Kriteria Uji
Tolak H0 jika p-value < α
Keputusan
Karena p-value (2.2e-16) < α (0.05), maka Tolak H₀
Kesimpulan
Model 1 (y ~ 1) adalah model null (tanpa variabel prediktor), dan Model 2 (y ~ x) adalah model alternatif (dengan variabel prediktor x). Deviance dari Model 1 adalah 158.76, sedangkan Deviance dari Model 2 adalah 45.6, yang menunjukkan bahwa model alternatif yang memasukkan variabel x memiliki kecocokan yang jauh lebih baik terhadap data dibandingkan dengan model null. Nilai p-value yang kurang dari 0.05 menunjukan bahwa selisih deviance ini sangat signifikan.
Perhitungan dengan R:
AIC(model)
## [1] 168.9702
Perhitungan dengan R:
BIC(model)
## [1] 173.1589
Estimasi parameter regresi Poisson dilakukan menggunakan Maximum Likelihood Estimation (MLE) untuk memperoleh parameter yang paling sesuai dengan data yang ada. Untuk pengujian hipotesis, digunakan uji Wald dan Uji Likelihood Ratio untuk mengevaluasi signifikansi parameter dalam model. Selain itu, AIC (Akaike Information Criterion) dan BIC (Bayesian Information Criterion) digunakan untuk mengevaluasi dan memilih model terbaik dengan mempertimbangkan keseimbangan antara kompleksitas model dan kecocokan terhadap data.
Regresi logistik merupakan salah satu metode statistik esensial yang digunakan untuk memodelkan hubungan antara variabel respons biner (variabel yang hanya memiliki dua kategori, seperti “Ya/Tidak” atau “Lulus/Gagal”) dengan satu atau lebih variabel prediktor. Keunggulan metode ini adalah kemampuannya untuk menangani berbagai jenis skala pengukuran pada variabel prediktor secara bersamaan. Dalam penerapannya, prediktor yang digunakan dapat memiliki skala pengukuran berbeda, yaitu:
Nominal
Variabel ini bersifat kategorikal tanpa adanya urutan atau tingkatan yang melekat. Setiap kategori dianggap setara dan hanya berfungsi sebagai pembeda. Contoh Jenis Kelamin (Laki-laki, Perempuan), Lokasi (Kota, Desa), atau Status Pernikahan (Menikah, Lajang, Cerai).
Ordinal
Variabel ini adalah variabel kategorikal yang memiliki urutan atau tingkatan logis, namun jarak (interval) antar kategorinya tidak selalu sama atau dapat diukur. Contoh: Tingkat Pendidikan (SMA < Sarjana < Master < Doktor), Tingkat Kepuasan (Rendah < Sedang < Tinggi), atau Skala Likert (Sangat Tidak Setuju < … < Sangat Setuju).
Rasio
Variabel ini adalah variabel numerik kontinu yang memiliki nilai nol absolut yang bermakna, dan rasio antar nilai juga memiliki makna. Contoh: Pendapatan (dalam juta rupiah per bulan), Usia (dalam tahun), atau Durasi Waktu (dalam jam).
Contoh Kasus
Sebuah perusahaan e-commerce ingin memprediksi apakah pelanggan akan melakukan pembelian ulang (repeat purchase) dalam 30 hari setelah transaksi pertama. Variabel respon adalah biner: 0 = Tidak Membeli Ulang, 1 = Membeli Ulang. Data dikumpulkan dari 500 pelanggan secara acak untuk mengevaluasi pengaruh tiga faktor: metode pembayaran (nominal), tingkat kepuasan layanan (ordinal), dan total pengeluaran (rasio). Tujuannya adalah membangun model regresi logistik biner untuk memprediksi probabilitas pembelian ulang dan memberikan rekomendasi untuk meningkatkan retensi pelanggan.
Simulasi Data
library(tibble)
# Simulasi data untuk regresi logistik biner
set.seed(123)
n <- 500
metode_pembayaran <- sample(c("Kartu Kredit", "E-Wallet"), n, replace = TRUE, prob = c(0.4, 0.6)) # Nominal, 2 kategori
tingkat_kepuasan <- sample(c("Rendah", "Sedang", "Tinggi"), n, replace = TRUE, prob = c(0.2, 0.5, 0.3)) # Ordinal
tingkat_kepuasan <- factor(tingkat_kepuasan, levels = c("Rendah", "Sedang", "Tinggi"), ordered = TRUE)
total_pengeluaran <- rnorm(n, mean = 200, sd = 50) # Rasio
# Membuat logit untuk probabilitas pembelian ulang
logit_p <- -2 + 0.4 * (metode_pembayaran == "E-Wallet") +
0.7 * as.numeric(tingkat_kepuasan) + 0.005 * total_pengeluaran
# Mengubah logit menjadi probabilitas
p <- 1 / (1 + exp(-logit_p))
# Simulasi variabel respon biner (0 = Tidak, 1 = Ya)
set.seed(777)
pembelian_ulang <- rbinom(n, 1, p)
# Mengubah pembelian_ulang menjadi faktor untuk interpretasi
pembelian_ulang <- factor(pembelian_ulang, levels = c(0, 1), labels = c("Tidak", "Ya"))
# Membuat dataset
sim_data <- tibble(pembelian_ulang, metode_pembayaran, tingkat_kepuasan, total_pengeluaran)
head(sim_data)
## # A tibble: 6 × 4
## pembelian_ulang metode_pembayaran tingkat_kepuasan total_pengeluaran
## <fct> <chr> <ord> <dbl>
## 1 Tidak E-Wallet Sedang 170.
## 2 Ya Kartu Kredit Sedang 150.
## 3 Ya E-Wallet Sedang 251.
## 4 Tidak Kartu Kredit Sedang 238.
## 5 Tidak Kartu Kredit Sedang 125.
## 6 Ya E-Wallet Sedang 195.
Eksplorasi Data
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# Eksplorasi data dalam list
list(
Frekuensi_Metode = table(sim_data$metode_pembayaran, sim_data$pembelian_ulang),
Frekuensi_Kepuasan = table(sim_data$tingkat_kepuasan, sim_data$pembelian_ulang),
Rata_rata_Pengeluaran = sim_data %>%
group_by(pembelian_ulang) %>%
summarise(Rata_rata = mean(total_pengeluaran, na.rm = TRUE), SD = sd(total_pengeluaran, na.rm = TRUE))
)
## $Frekuensi_Metode
##
## Tidak Ya
## E-Wallet 90 215
## Kartu Kredit 77 118
##
## $Frekuensi_Kepuasan
##
## Tidak Ya
## Rendah 56 48
## Sedang 71 171
## Tinggi 40 114
##
## $Rata_rata_Pengeluaran
## # A tibble: 2 × 3
## pembelian_ulang Rata_rata SD
## <fct> <dbl> <dbl>
## 1 Tidak 191. 51.5
## 2 Ya 204. 49.6
Interpretasi
Secara keseluruhan, hasil eksplorasi data menunjukkan bahwa metode pembayaran E-Wallet, tingkat kepuasan layanan yang lebih tinggi, serta pengeluaran yang lebih besar berasosiasi dengan kemungkinan pembelian ulang yang lebih tinggi dalam 30 hari setelah transaksi pertama. Temuan ini dapat dijadikan dasar untuk pengembangan model regresi logistik serta pembuatan strategi peningkatan retensi pelanggan di perusahaan e-commerce terkait.
Dalam regresi logistik, perlakuan terhadap variabel ordinal sering kali dilakukan dengan cara “treat as nominal (dummy)”, yaitu memperlakukan variabel ordinal seolah-olah tidak memiliki urutan atau tingkatan antar kategorinya. Setiap kategori pada variabel ordinal diubah menjadi variabel dummy (indikator biner) yang merepresentasikan ada atau tidaknya keanggotaan dalam suatu kategori tertentu. Misalnya, untuk variabel tingkat pendidikan dengan kategori SD, SMP, SMA, dan Perguruan Tinggi, pendekatan ini akan membuat tiga variabel dummy (dengan salah satu sebagai referensi), seperti “1 jika SMP, 0 jika tidak”, dan seterusnya. Meskipun pendekatan ini mengabaikan informasi urutan, hal ini berguna ketika kita tidak yakin bahwa jarak antar kategori bersifat proporsional atau linier.
# Create dataset for nominal model with dummy coding
sim_data_nominal <- sim_data %>%
mutate(
tingkat_kepuasan = factor(tingkat_kepuasan, levels = c("Rendah", "Sedang", "Tinggi"), ordered = FALSE)
)
# Build logistic regression model
model_nominal <- glm(pembelian_ulang ~ metode_pembayaran + tingkat_kepuasan + total_pengeluaran,
data = sim_data_nominal, family = binomial)
# Summary of the model
summary(model_nominal)
##
## Call:
## glm(formula = pembelian_ulang ~ metode_pembayaran + tingkat_kepuasan +
## total_pengeluaran, family = binomial, data = sim_data_nominal)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.021893 0.454381 -2.249 0.02451 *
## metode_pembayaranKartu Kredit -0.477877 0.200403 -2.385 0.01710 *
## tingkat_kepuasanSedang 1.068024 0.246413 4.334 1.46e-05 ***
## tingkat_kepuasanTinggi 1.258914 0.274289 4.590 4.44e-06 ***
## total_pengeluaran 0.005205 0.002001 2.600 0.00931 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 636.98 on 499 degrees of freedom
## Residual deviance: 599.75 on 495 degrees of freedom
## AIC: 609.75
##
## Number of Fisher Scoring iterations: 4
Catatan: Model menggunakan tingkat_kepuasan sebagai variabel dummy dan baseline “Rendah”. Setiap koefsien membandingkan kategori terhadap baseline.
Model Regresi Logistik
Berdasarkan output tersebut, model regresi logistik yang terbentuk dapat dituliskan sebagai berikut:
\[ \log \left( \frac{P(Y=1)}{1 - P(Y=1)} \right) = -1.022 - 0.478 x_1 + 1.068 x_2 + 1.259 x_3 + 0.00521 x_4 \]
dimana:
\(Y\) = Variabel respon, 1 jika pembelian ulang, 0 jika tidak.
\(x_1\) = 1 jika metode pembayaran Kartu Kredit, 0 jika E-Wallet (baseline).
\(x_2\) = 1 jika tingkat kepuasan Sedang, 0 jika bukan.
\(x_3\) = 1 jika tingkat kepuasan Tinggi, 0 jika bukan (baseline: Rendah).
\(x_4\) = Total pengeluaran.
Perhitungan Probabilitas
\[ P(\text{pembelian ulang} = 1) = \frac{1}{1 + e^{-y}} \]
dengan:
\[ y = -1.022 - 0.478x_1 + 1.068x_2 + 1.259x_3 + 0.00521x_4 \]
| Term | Estimate | Std.Error | z value | p.value | Sig |
|---|---|---|---|---|---|
| (Intercept) | -1.0219 | 0.4544 | -2.249 | 0.02451 | * |
| metode_pembayaranKartu Kredit | -0.4779 | 0.2004 | -2.385 | 0.01710 | * |
| tingkat_kepuasanSedang | 1.0680 | 0.2464 | 4.334 | 0.0000146 | *** |
| tingkat_kepuasanTinggi | 1.2589 | 0.2743 | 4.590 | 0.0000044 | *** |
| total_pengeluaran | 0.0052 | 0.0020 | 2.600 | 0.00931 | ** |
Koefisien dalam model regresi logistik biner merepresentasikan perubahan dalam log-odds dari pembelian ulang (Ya) untuk setiap unit perubahan dalam variabel independen, dengan variabel lain dianggap konstan. Berikut adalah interpretasi masing-masing koefisien:
Null Deviance dan Residual Deviance
Null deviance menunjukkan kecocokan model tanpa variabel
prediktor (hanya intercept), sedangkan residual deviance
menunjukkan kecocokan model setelah memasukkan variabel prediktor
(metode_pembayaran, tingkat_kepuasan, dan
total_pengeluaran).
Penurunan dari null deviance (636.98) ke residual deviance (599.75) mengindikasikan bahwa model dengan variabel prediktor memberikan kecocokan yang lebih baik dibandingkan model tanpa prediktor. Selisih deviance (636.98 - 599.75 = 37.23) dapat digunakan untuk uji likelihood ratio test untuk memastikan apakah model secara signifikan lebih baik dari model nol.
Akaike Information Criterion (AIC)
AIC digunakan untuk membandingkan model dengan mempertimbangkan kecocokan dan kompleksitas model. Nilai AIC yang lebih rendah menunjukkan model yang lebih baik dalam hal keseimbangan antara kecocokan dan kesederhanaan. Namun, AIC hanya bermakna ketika membandingkan dengan model lain yang dibangun pada data yang sama. Untuk saat ini, AIC sebesar 609.75 dapat digunakan sebagai baseline untuk perbandingan dengan model lain di masa depan.
McFadden R²
McFadden R² adalah ukuran pseudo-R² yang digunakan untuk mengevaluasi kecocokan model regresi logistik. Uji ini menghitung rasio log-likelihood antara model nol (hanya intercept) dan model dengan prediktor.
McFadden R² dihitung dengan rumus:
\[ R^2_{\text{McFadden}} = 1 - \frac{\text{logLik(model penuh)}}{\text{logLik(model nol)}} \]
Nilai McFadden R² berkisar antara 0 hingga 1, di mana nilai lebih tinggi menunjukkan kecocokan model yang lebih baik. Namun, nilai ini biasanya lebih rendah dibandingkan R² pada regresi linier, dan nilai antara 0.2 hingga 0.4 sering dianggap sebagai kecocokan yang baik dalam konteks regresi logistik.
nullmod <- glm(pembelian_ulang ~ 1, data = sim_data, family = binomial)
r2_nominal <- 1 - (logLik(model_nominal)/logLik(nullmod))
list(
McFadden_R2_Nominal = r2_nominal
)
## $McFadden_R2_Nominal
## 'log Lik.' 0.05844768 (df=5)
Nilai McFadden R² sebesar 0.0584 menunjukkan bahwa model dengan prediktor (metode_pembayaran, tingkat_kepuasan, dan total_pengeluaran) hanya menjelaskan sekitar 5.84% dari variabilitas dalam probabilitas pembelian ulang dibandingkan model nol. Nilai ini tergolong rendah, yang mengindikasikan bahwa model memiliki kecocokan yang terbatas dalam menjelaskan variabilitas data. Untuk meningkatkan kecocokan, perusahaan dapat mempertimbangkan untuk menambahkan variabel prediktor lain yang relevan, seperti frekuensi pembelian atau demografi pelanggan.
Visualisasi memungkinkan kita untuk melihat bagaimana probabilitas pembelian ulang bervariasi berdasarkan pengeluaran pelanggan dan metode pembayaran yang digunakan.
library(ggplot2)
sim_data_nominal <- sim_data_nominal %>% mutate(predicted = predict(model_nominal, type = "response"))
sim_data_nominal %>%
ggplot(aes(x = total_pengeluaran, y = predicted, color = tingkat_kepuasan)) +
geom_point(alpha = 0.6) +
labs(title = "Prediksi Probabilitas (Ordinal sebagai Nominal)",
x = "Total Pengeluaran",
y = "Prediksi Probabilitas Pembelian Ulang") +
theme_minimal()
Interpretasi Plot
Plot ini menunjukkan hubungan antara total pengeluaran (sumbu x) dan prediksi probabilitas pembelian ulang (sumbu y), dengan tingkat kepuasan (Rendah: pink, Sedang: hijau, Tinggi: biru). Probabilitas pembelian ulang meningkat seiring total pengeluaran, konsisten dengan koefisien total_pengeluaran (0.005205, p = 0.00931).
Untuk setiap nilai total pengeluaran, kelompok dengan tingkat kepuasan lebih tinggi memiliki probabilitas pembelian ulang yang juga lebih tinggi. Jarak antar kelompok cukup konsisten, menandakan pengaruh tingkat kepuasan yang cukup kuat dan stabil terhadap probabilitas pembelian ulang.
Pola ini sejalan dengan model regresi logistik, di mana probabilitas meningkat bertahap dengan total pengeluaran dan dipengaruhi tingkat kepuasan, mencerminkan efek ordinal dari variabel tersebut.
Berdasarkan analisis yang telah dilakukan, diperoleh kesimpulan sebagai berikut:
Analisis regresi logistik terhadap data 500 pelanggan e-commerce menunjukkan bahwa ada beberapa faktor utama yang mempengaruhi kemungkinan pembelian ulang dalam 30 hari setelah transaksi pertama.
Metode pembayaran, tingkat kepuasan layanan, dan total pengeluaran terbukti berpengaruh signifikan terhadap probabilitas pembelian ulang.
Pelanggan yang menggunakan E-Wallet memiliki kemungkinan pembelian ulang lebih tinggi dibandingkan pengguna Kartu Kredit.
Pelanggan dengan tingkat kepuasan sedang maupun tinggi jauh lebih berpeluang melakukan pembelian ulang dibandingkan dengan pelanggan yang tingkat kepuasannya rendah.
Semakin besar total pengeluaran, semakin tinggi pula kemungkinan pelanggan untuk membeli ulang, meskipun efek kenaikannya cenderung bertahap.
Visualisasi prediksi probabilitas memperlihatkan tren yang konsisten, yaitu pada semua tingkat kepuasan, kenaikan pengeluaran diikuti peningkatan peluang pembelian ulang. Pada setiap level pengeluaran, probabilitas tertinggi terdapat pada pelanggan dengan kepuasan paling tinggi.
Upaya perusahaan untuk meningkatkan kepuasan pelanggan, mendorong penggunaan E-Wallet, serta meningkatkan total pengeluaran berpotensi efektif dalam meningkatkan retensi pelanggan dan frekuensi pembelian ulang.
Mengolah variabel ordinal seperti tingkat kepuasan (Rendah, Sedang, Tinggi) sebagai rasio (numeric rank) melibatkan penugasan nilai numerik berdasarkan urutan, misalnya 1 untuk Rendah, 2 untuk Sedang, dan 3 untuk Tinggi. Pendekatan ini mengasumsikan bahwa perbedaan antara kategori bersifat konstan dan dapat diukur secara kuantitatif, mirip dengan skala rasio, meskipun dalam realitas ordinal hanya mencerminkan urutan tanpa jarak yang pasti.
Keunggulan:
Memungkinkan penggunaan analisis statistik yang lebih kompleks, seperti regresi linier atau model yang memanfaatkan hubungan numerik langsung.
Dapat menangkap tren linier jika ada hubungan monontonik yang kuat antara tingkat kepuasan dan variabel respons (misalnya, pembelian ulang).
Kelemahan:
Mengabaikan sifat ordinal asli yang tidak memiliki jarak yang sama antara kategori (misalnya, perbedaan antara Rendah dan Sedang mungkin tidak sama dengan Sedang dan Tinggi).
Risiko bias jika asumsi linearitas tidak terpenuhi, yang dapat menghasilkan interpretasi yang kurang akurat.
Penerapan dalam Model:
Jika tingkat kepuasan diperlakukan sebagai variabel ordinal yang diubah menjadi skor numerik (misal: Rendah = 1, Sedang = 2, Tinggi = 3), maka dalam model regresi logistik, koefisien regresi akan menunjukkan perubahan log-odds pembelian ulang untuk setiap kenaikan satu tingkat kepuasan. Pendekatan ini mengasumsikan bahwa kenaikan dari Rendah ke Sedang dan dari Sedang ke Tinggi memiliki jarak yang sama. Hal ini berbeda dengan pendekatan sebelumnya yang memperlakukan tingkat kepuasan sebagai variabel nominal menggunakan variabel dummy, di mana pengaruh masing-masing kategori dibandingkan langsung dengan kategori referensi tanpa mengasumsikan adanya jarak yang tetap antar kategori.
sim_data_numeric <- sim_data %>%
mutate(
tingkat_kepuasan_numeric = case_when(
tingkat_kepuasan == "Rendah" ~ 1,
tingkat_kepuasan == "Sedang" ~ 2,
tingkat_kepuasan == "Tinggi" ~ 3
)
)
model_numeric <- glm(pembelian_ulang ~ metode_pembayaran + tingkat_kepuasan_numeric + total_pengeluaran, data = sim_data_numeric, family = binomial)
summary(model_numeric)
##
## Call:
## glm(formula = pembelian_ulang ~ metode_pembayaran + tingkat_kepuasan_numeric +
## total_pengeluaran, family = binomial, data = sim_data_numeric)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.435638 0.510049 -2.815 0.00488 **
## metode_pembayaranKartu Kredit -0.463660 0.198956 -2.330 0.01978 *
## tingkat_kepuasan_numeric 0.619785 0.140247 4.419 9.9e-06 ***
## total_pengeluaran 0.005274 0.001992 2.648 0.00810 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 636.98 on 499 degrees of freedom
## Residual deviance: 604.70 on 496 degrees of freedom
## AIC: 612.7
##
## Number of Fisher Scoring iterations: 4
Berdasarkan output model regresi logistik biner dengan tingkat_kepuasan_numeric sebagai variabel numerik, modelnya adalah:
\[ \log \left( \frac{P(Y=1)}{1 - P(Y=1)} \right) = -1.4356 - 0.4637 x_1 + 0.6198 x_2 + 0.00527 x_3 \]
dimana:
Probabilitas:
\[ P(\text{pembelian ulang} = 1) = \frac{1}{1 + e^{-y}} \]
dengan:
\[ y = -1.4356 - 0.4637x_1 + 0.6198x_2 + 0.00527x_3 \]
| term | estimate | std.error | z value | p.value | Sig |
|---|---|---|---|---|---|
| (Intercept) | -1.435638 | 0.510049 | -2.815 | 0.00488 | ** |
| metode_pembayaranKartu Kredit | -0.463660 | 0.198956 | -2.330 | 0.01978 | * |
| tingkat_kepuasan_numeric | 0.619785 | 0.140247 | 4.419 | 9.9e-06 | *** |
| total_pengeluaran | 0.005274 | 0.001992 | 2.648 | 0.00810 | ** |
Intercept (-1.435638, p = 0.00488)
metode_pembayaranKartu Kredit (-0.463660, p = 0.01978)
tingkat_kepuasan_numeric (0.619785, p = 9.9e-06)
total_pengeluaran (0.005274, p = 0.00810)
Null Deviance dan Residual Deviance
Penurunan dari null deviance (636.98) ke residual deviance (604.70) mengindikasikan bahwa model dengan prediktor memberikan kecocokan yang lebih baik dibandingkan model nol. Selisih deviance (636.98 - 604.70 = 32.28) dapat digunakan untuk uji likelihood ratio test untuk memastikan apakah model secara signifikan lebih baik dari model nol.
Akaike Information Criterion (AIC)
AIC digunakan untuk membandingkan model dengan mempertimbangkan kecocokan dan kompleksitas. Nilai AIC yang lebih rendah menunjukkan model yang lebih baik dalam keseimbangan kecocokan dan kesederhanaan. AIC 612.7 dapat digunakan sebagai baseline untuk perbandingan dengan model lain pada data yang sama di masa depan.
McFadden R²
nullmod <- glm(pembelian_ulang ~ 1, data = sim_data_numeric, family = binomial)
r2_numeric <- 1 - (logLik(model_numeric) / logLik(nullmod))
list(
McFadden_R2_Numeric = r2_numeric
)
## $McFadden_R2_Numeric
## 'log Lik.' 0.05066812 (df=4)
Nilai McFadden R² sebesar 0.0507 menunjukkan bahwa model dengan prediktor (metode_pembayaran, tingkat_kepuasan_numeric, dan total_pengeluaran) menjelaskan sekitar 5.07% dari variabilitas dalam probabilitas pembelian ulang dibandingkan model nol. Nilai ini tergolong rendah, mengindikasikan kecocokan model yang terbatas dalam menjelaskan variabilitas data. Untuk meningkatkan kecocokan, perusahaan dapat mempertimbangkan penambahan variabel prediktor lain yang relevan, seperti frekuensi pembelian atau demografi pelanggan.
sim_data_numeric <- sim_data_numeric %>% mutate(predicted = predict(model_numeric, type = "response"))
sim_data_numeric %>%
ggplot(aes(x = total_pengeluaran, y = predicted, color = as.factor(tingkat_kepuasan_numeric))) +
geom_point(alpha = 0.6) +
labs(title = "Prediksi Probabilitas (Ordinal sebagai Numeric)", x = "Total Pengeluaran", y = "Prediksi Probabilitas") +
theme_minimal()
Interpretasi
Plot ini menunjukkan hubungan antara total pengeluaran (sumbu x) dan prediksi probabilitas pembelian ulang (sumbu y), dengan tingkat_kepuasan_numeric (1 = Rendah, 2 = Sedang, 3 = Tinggi) diwakili oleh warna berbeda (merah, hijau, biru). Data poin dan garis tren menunjukkan pola prediksi berdasarkan model regresi logistik numerik.
Garis tren untuk setiap tingkat kepuasan (1, 2, 3) kemungkinan mewakili regresi lokal atau rata-rata prediksi berdasarkan total pengeluaran dalam kelompok tersebut. Kehadiran garis ini wajar karena model numerik memperlakukan tingkat_kepuasan_numeric sebagai variabel kontinu, memungkinkan visualisasi tren linier yang berbeda untuk setiap kategori numerik, dipengaruhi juga oleh interaksi dengan variabel lain seperti metode_pembayaran.
Berdasarkan analisis yang telah dilakukan, diperoleh kesimpulan sebagai berikut:
list(
AIC_Nominal = AIC(model_nominal),
AIC_Numeric = AIC(model_numeric)
)
## $AIC_Nominal
## [1] 609.7455
##
## $AIC_Numeric
## [1] 612.7009
Kesimpulan Perbandingan AIC
Model Nominal: Tingkat_kepuasan dengan perlakuan nominal (koefisien tertinggi pada tingkat kepuasan tinggi dan sedang) merupakan prediktor paling berpengaruh terhadap pembelian ulang (p < 0.001). Total_pengeluaran (koefisien 0.00521, p = 0.00931) dan metode_pembayaran Kartu Kredit (koefisien -0.4779, p = 0.01710) juga signifikan. Nilai AIC sebesar 609.75 dan McFadden R² sebesar 0.0584 menunjukkan kecocokan model yang lebih baik dibanding model numerik.
Model Numerik: Tingkat_kepuasan_numeric (koefisien 0.6198, p = 9.9e-06) tetap menjadi prediktor utama, diikuti total_pengeluaran (koefisien 0.00527, p = 0.00810) dan metode_pembayaran Kartu Kredit (koefisien -0.4637, p = 0.01978) yang keduanya signifikan. Nilai AIC adalah 612.70 dan McFadden R² sebesar 0.0507, menunjukkan kecocokan model sedikit lebih rendah.
Perbandingan: Model nominal lebih unggul secara statistik berdasarkan AIC dan McFadden R². Kedua model konsisten menunjukkan bahwa peningkatan kepuasan pelanggan, peningkatan total pengeluaran, dan promosi penggunaan E-Wallet berpotensi meningkatkan retensi pelanggan.
Catatan: Semua hasil berbasis data simulasi, sehingga hasil bisa berbeda jika menggunakan data nyata.
Dalam analisis regresi logistik, pemilihan model memegang peranan penting untuk memperoleh model yang efektif dalam memprediksi probabilitas terjadinya suatu peristiwa (respon biner). Dua pendekatan utama dalam pengembangan model ini adalah pendekatan Konfirmatori dan Eksploratori.
Pendekatan konfirmatori dalam membangun model regresi logistik melibatkan pengujian hipotesis yang telah ditentukan sebelumnya berdasarkan teori atau pengetahuan domain, bukan eksplorasi data secara bebas. Fokusnya adalah memverifikasi hubungan kausal antara variabel independen (prediktor) dan variabel dependen (respons biner) dengan mengandalkan kerangka teoritis yang kuat.
Langkah Utama:
Keunggulan:
Kelemahan:
Pendekatan eksploratori dalam membangun model regresi logistik berfokus pada penemuan pola atau hubungan dalam data tanpa asumsi hipotesis awal yang kaku. Pendekatan ini cocok untuk analisis awal atau ketika pengetahuan domain terbatas, memungkinkan identifikasi variabel potensial yang relevan.
Langkah Utama:
Keunggulan:
Kelemahan:
Jenis Proses Seleksi Model:
Forward Selection: Proses dimulai dari model tanpa prediktor (model kosong), kemudian variabel-variabel dimasukkan satu per satu ke dalam model. Setiap penambahan variabel didasarkan pada signifikansi statistik, dan hanya variabel yang signifikan yang dipertahankan.
Backward Elimination: Metode ini dimulai dari model yang memuat semua variabel (model penuh). Selanjutnya, variabel yang tidak signifikan secara statistik dihapus satu per satu hingga tersisa hanya variabel yang signifikan.
Stepwise Selection: Merupakan kombinasi dari kedua pendekatan sebelumnya, di mana variabel dapat ditambahkan maupun dihapus secara dinamis berdasarkan kriteria signifikansi. Proses ini memungkinkan model beradaptasi secara optimal terhadap data.
Tujuan utama dari proses seleksi ini adalah untuk memperoleh model yang parsimonious, yaitu model yang sederhana namun tetap memiliki kemampuan prediksi yang baik dan tidak overfitting.
Pemilihan Pendekatan:
Pemilihan antara pendekatan confirmatory (konfirmatori) dan exploratory (eksploratori) sangat bergantung pada tujuan analisis. Pendekatan confirmatory digunakan ketika peneliti sudah memiliki hipotesis atau teori yang jelas mengenai variabel mana yang penting untuk dimasukkan ke dalam model. Sementara itu, pendekatan exploratory digunakan ketika peneliti ingin mengidentifikasi model terbaik semata-mata berdasarkan pola yang muncul dari data.
Dalam aplikasi nyata, kedua pendekatan ini sering dikombinasikan: teori dan pengetahuan sebelumnya digunakan sebagai landasan awal, lalu seleksi model secara eksploratori dilakukan untuk menyesuaikan dan menyempurnakan model agar sesuai dengan data empiris. Dengan demikian, model akhir yang dihasilkan dapat memberikan interpretasi yang kuat secara teoritis sekaligus memiliki performa prediksi yang optimal.
Simulasi Data
library(knitr)
library(dplyr)
library(ggplot2)
library(MASS)
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
## The following object is masked from 'package:plotly':
##
## select
library(caret)
## Warning: package 'caret' was built under R version 4.4.3
## Loading required package: lattice
##
## Attaching package: 'caret'
## The following objects are masked from 'package:DescTools':
##
## MAE, RMSE
library(pROC)
## Warning: package 'pROC' was built under R version 4.4.3
## Type 'citation("pROC")' for a citation.
##
## Attaching package: 'pROC'
## The following objects are masked from 'package:stats':
##
## cov, smooth, var
library(DescTools)
set.seed(786)
n <- 210
x1 <- rnorm(n)
x2 <- rbinom(n, 1, 0.4)
x3 <- rnorm(n)
lin_pred <- -0.8 + 1.5 * x1 - 0.7 * x2 + 0.3 * 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 1.0326308 1 -1.5043389
## 2 0 -0.1710067 1 -1.6802542
## 3 0 -0.3048861 0 -0.2802896
## 4 0 -1.0017807 1 -0.7965927
## 5 1 2.1865765 1 0.7834413
## 6 0 -1.2407206 0 0.3092976
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) -1.1504 0.2617 -4.396 1.10e-05 ***
## x1 1.7343 0.2583 6.715 1.89e-11 ***
## x2 -0.2548 0.3756 -0.679 0.4974
## x3 0.4261 0.2045 2.083 0.0372 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 262.98 on 209 degrees of freedom
## Residual deviance: 182.40 on 206 degrees of freedom
## AIC: 190.4
##
## Number of Fisher Scoring iterations: 5
Berdasarkan output model regresi logistik biner, model matematis dalam bentuk log-odds adalah:
\[ \text{log-odds}(y) = -1.1504 + 1.7343 \cdot x_1 - 0.2548 \cdot x_2 + 0.4261 \cdot x_3 \]
Keterangan:
\(y\): Log-odds variabel respons biner.
\(x_1\): Variabel prediktor pertama.
\(x_2\): Variabel prediktor kedua.
\(x_3\): Variabel prediktor ketiga.
Probabilitas variabel respons dihitung dengan:
\[ P(y = 1) = \frac{1}{1 + e^{-(\text{log-odds})}} \]
Proses seleksi model dilakukan dalam R sebagai berikut.
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 190.4038
## step_forward 3 188.8671
## step_backward 3 188.8671
## step_both 3 188.8671
Hasil seleksi model menggunakan pendekatan forward, backward, dan both menunjukkan perbedaan AIC antara model_full dan model hasil seleksi:
AIC Model Full: 190.4038 (df = 4)
Model_full mencakup semua variabel prediktor (\(x_1\), \(x_2\), \(x_3\)) dengan intercept. Namun, koefisien
\(x_2\) (-0.2548, p = 0.4974) tidak
signifikan (p > 0.05), yang menunjukkan variabel ini mungkin tidak
berkontribusi kuat terhadap model.
AIC Model Seleksi (Forward, Backward, Both):
188.8671 (df = 3)
Ketiga metode seleksi menghasilkan model yang sama dengan AIC lebih
rendah (188.8671) dan derajat kebebasan lebih kecil (df = 3). Ini
menunjukkan bahwa satu variabel (kemungkinan besar \(x_2\)) dihapus dari model_full
karena tidak signifikan, sehingga model menjadi lebih sederhana tanpa
mengorbankan kecocokan.
Penjelasan Perbedaan AIC:
Penurunan AIC dari 190.4038 ke 188.8671 (selisih 1.5367) mengindikasikan
model hasil seleksi lebih baik dalam hal keseimbangan kecocokan dan
kompleksitas. Selisih AIC > 2 sering dianggap sebagai bukti kuat
bahwa model yang lebih sederhana lebih baik, meskipun dalam kasus ini
selisihnya sedikit lebih kecil. Penghapusan \(x_2\) konsisten dengan p-value-nya yang
tinggi, menunjukkan variabel tersebut tidak relevan.
Evaluasi model dalam konteks regresi logistik merujuk pada proses untuk menilai seberapa baik model yang telah dibangun dalam memprediksi probabilitas suatu kejadian (respon biner). Tujuan utama dari evaluasi ini adalah untuk mengukur kinerja model dalam mengklasifikasikan data dengan benar, serta mengidentifikasi area yang perlu diperbaiki.
Kurva ROC (Receiver Operating Characteristic) adalah alat visual yang digunakan untuk mengevaluasi performa model klasifikasi biner dengan menggambarkan trade-off antara True Positive Rate (Sensitivity) dan False Positive Rate (1 - Specificity) pada berbagai threshold klasifikasi. Kurva ini membantu menilai seberapa baik model membedakan kelas positif dan negatif.
1. Definisi
True Positive Rate (TPR) atau Sensitivity dihitung dengan:
\[ \text{Sensitivity} = \frac{\text{TP}}{\text{TP} + \text{FN}} \]
Mengukur proporsi kasus positif yang benar-benar terdeteksi oleh model (misalnya, pelanggan yang benar-benar melakukan pembelian ulang).
False Positive Rate (FPR) atau 1 - Specificity dihitung dengan:
\[ \text{FPR} = 1 - \text{Specificity} = \frac{\text{FP}}{\text{FP} + \text{TN}} \]
Mengukur proporsi kasus negatif yang salah diklasifikasikan sebagai positif (misalnya, pelanggan yang tidak membeli ulang tetapi diprediksi melakukannya).
Garis Diagonal (Baseline):
Garis dari kiri bawah ke kanan atas (dari 0,0 ke 1,1) menunjukkan performa acak (random guess), dengan Area Under Curve (AUC) = 0.5.
Kurva ROC yang Baik:
Kurva yang mendekati sudut kiri atas (TPR tinggi, FPR rendah) menunjukkan performa klasifikasi yang lebih baik, dengan AUC mendekati 1.
2. Cut-off dan Pergeseran Kurva
Saat threshold klasifikasi diubah, model mengklasifikasikan lebih banyak atau lebih sedikit pengamatan sebagai positif, memengaruhi Sensitivity dan Specificity:
Jika threshold diturunkan (lebih longgar):
Jika threshold dinaikkan (lebih ketat):
3. Area Under Curve (AUC)
AUC mengukur keseluruhan performa model:
4. Kurva ROC Ideal
Kurva ROC ideal memiliki bentuk:
Mulai dari (0,0), naik vertikal ke (0,1) (Sensitivity = 1, FPR = 0), lalu horizontal ke (1,1).
Ini menunjukkan model dapat mengklasifikasikan semua kasus positif tanpa kesalahan (FPR = 0) sebelum mengklasifikasikan negatif.
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 = "blue")
auc(roc_obj)
## Area under the curve: 0.8576
Interpretasi Kurva ROC dan AUC
Pseudo R-Squared digunakan untuk mengevaluasi kecocokan model regresi logistik, karena R-Squared tradisional (seperti pada regresi linier) tidak dapat diterapkan langsung pada model biner. Tiga metrik yang umum digunakan adalah Cox & Snell R², McFadden R² dan Nagelkerke yang membandingkan likelihood model dengan dan tanpa prediktor.
1. Cox & Snell R-Squared
Cox & Snell R² mengukur proporsi variabilitas yang dijelaskan oleh model, dengan memanfaatkan rasio log-likelihood model penuh dan model nol (hanya intercept). Namun, nilai maksimumnya tidak mencapai 1.
Cox & Snell R² dihitung dengan rumus:
\[ R^2_{\text{Cox \& Snell}} = 1 - \left( \frac{L_{\text{null}}}{L_{\text{full}}} \right)^{2/n} \]
dimana:
- \(L_{\text{null}}\): Likelihood model nol.
- \(L_{\text{full}}\): Likelihood model penuh (dengan prediktor).
- \(n\): Jumlah observasi.
Kelebihan: Memberikan gambaran kecocokan model yang relatif mudah dihitung.
Kelemahan: Nilai maksimumnya dibatasi oleh \(1 - L_{\text{null}}^{2/n}\), sehingga tidak selalu mencapai 1 meskipun model sempurna.
2. McFadden R-Squared
McFadden R² juga membandingkan log-likelihood model penuh dan model nol, tetapi menggunakan pendekatan rasio langsung tanpa penyesuaian berbasis sampel, sehingga lebih sering digunakan dalam regresi logistik.
McFadden R² dihitung dengan rumus:\[ R^2_{\text{McFadden}} = 1 - \frac{\log(L_{\text{full}})}{\log(L_{\text{null}})} \]
dimana:
- \(\log(L_{\text{full}})\): Log-likelihood model penuh.
- \(\log(L_{\text{null}})\): Log-likelihood model nol.
Kelebihan: Interpretasi lebih intuitif, dengan nilai antara 0 dan 1. Nilai 0.2–0.4 sering dianggap sebagai kecocokan yang baik dalam regresi logistik.
Kelemahan: Cenderung menghasilkan nilai yang lebih rendah dibandingkan R² tradisional, sehingga perlu konteks untuk interpretasi.
3. Nagelkerke R-Squared
Nagelkerke R² adalah modifikasi dari Cox & Snell R² untuk mengatasi keterbatasan nilai maksimumnya yang tidak mencapai 1. Nagelkerke R² menormalkan Cox & Snell R² dengan pembagi yang memungkinkan nilai maksimum hingga 1, sehingga memberikan ukuran kecocokan yang lebih sebanding dengan R² tradisional dalam regresi linier.
Nagelkerke R² dihitung dengan rumus: \[ R^2_{\text{Nagelkerke}} = \frac{1 - \left( \frac{L_{\text{null}}}{L_{\text{full}}} \right)^{2/n}}{1 - L_{\text{null}}^{2/n}} \]
dimana:
- \(L_{\text{null}}\): Likelihood model nol (hanya intercept).
- \(L_{\text{full}}\): Likelihood model penuh (dengan prediktor).
- \(n\): Jumlah observasi.
Kelebihan:
Nilai dapat mencapai 1, memberikan gambaran yang lebih intuitif tentang proporsi variabilitas yang dijelaskan.
Cocok untuk membandingkan model dengan jumlah prediktor yang berbeda.
Kelemahan:
Tetap merupakan pseudo-R², sehingga interpretasinya tidak sama persis dengan R² regresi linier.
Bergantung pada distribusi data, sehingga sensitif terhadap sample size.
Perhitungan Package
1. Menggunakan ‘PseudoR2’
PseudoR2(step_both, which = c("CoxSnell", "Nagelkerke", "McFadden"))
## CoxSnell Nagelkerke McFadden
## 0.3171659 0.4441147 0.3046424
2. Menggunakan ‘pscl’
library(pscl)
## Warning: package 'pscl' was built under R version 4.4.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(step_both)
## fitting null model for pseudo-r2
## llh llhNull G2 McFadden r2ML r2CU
## -91.4335386 -131.4913938 80.1157104 0.3046424 0.3171659 0.4441147
3. Menggunakan ‘rcompanion’
library(rcompanion)
## Warning: package 'rcompanion' was built under R version 4.4.3
nagelkerke(step_both)
## $Models
##
## Model: "glm, y ~ x1 + x3, binomial, df"
## Null: "glm, y ~ 1, binomial, df"
##
## $Pseudo.R.squared.for.model.vs.null
## Pseudo.R.squared
## McFadden 0.304642
## Cox and Snell (ML) 0.317166
## Nagelkerke (Cragg and Uhler) 0.444115
##
## $Likelihood.ratio.test
## Df.diff LogLik.diff Chisq p.value
## -2 -40.058 80.116 4.0095e-18
##
## $Number.of.observations
##
## Model: 210
## Null: 210
##
## $Messages
## [1] "Note: For models fit with REML, these statistics are based on refitting with ML"
##
## $Warnings
## [1] "None"
4. Menggunakan ‘DescTools’
library(DescTools)
PseudoR2(step_both, which = "all")
## McFadden McFaddenAdj CoxSnell Nagelkerke AldrichNelson
## 0.3046424 0.2818272 0.3171659 0.4441147 0.2761509
## VeallZimmermann Efron McKelveyZavoina Tjur AIC
## 0.4966660 0.3395672 0.4856240 0.3445449 188.8670772
## BIC logLik logLik0 G2
## 198.9083998 -91.4335386 -131.4913938 80.1157104
Perhitungan Manual
logL0 <- logLik(null_model)
logLM <- logLik(step_both)
L0 <- exp(logL0)
LM <- exp(logLM)
n <- nobs(step_both)
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.3171659 0.3046424
Berdasarkan perhitungan di atas, diperoleh:
Tabel Pseudo R-Squared untuk Model
step_both
| Metrik | Nilai |
|---|---|
| Cox & Snell | 0.3171659 |
| Nagelkerke | 0.4441147 |
| McFadden | 0.3046424 |
Interpretasi
Cox & Snell R² (0.3172): Model menjelaskan sekitar 31.72% variabilitas dalam data dibandingkan model nol, tetapi nilai ini dibatasi oleh ukuran sampel (tidak mencapai 1 meskipun model sempurna).
Nagelkerke R² (0.4441): Setelah normalisasi, model menjelaskan 44.41% variabilitas, menunjukkan kecocokan yang cukup baik (nilai > 0.4 sering dianggap baik untuk model logistik).
McFadden R² (0.3046): Model menjelaskan 30.46% variabilitas log-likelihood dibandingkan model nol, yang termasuk dalam kisaran kecocokan baik (0.2–0.4).
Secara keseluruhan, model step_both (AIC 188.8671, tanpa \(x_2\)) menunjukkan performa yang baik dalam menjelaskan variabilitas respons biner, didukung oleh AUC 0.8576 dari kurva ROC.
Tabel klasifikasi (confusion matrix) adalah alat evaluasi
performa model klasifikasi biner yang membandingkan prediksi model
dengan nilai aktual. Dalam konteks ini, kode
confusionMatrix dari R menghasilkan matriks untuk
mengevaluasi prediksi model regresi logistik biner berdasarkan
threshold tertentu (misalnya, 0.5). Berikut penjelasan
teoritisnya:
1. Definisi Tabel Klasifikasi
Tabel klasifikasi mencakup empat elemen utama:
True Positive (TP): Kasus positif yang diprediksi positif (misalnya, pembelian ulang = 1, diprediksi 1).
True Negative (TN): Kasus negatif yang diprediksi negatif (misalnya, pembelian ulang = 0, diprediksi 0).
False Positive (FP): Kasus negatif yang diprediksi positif (salah prediksi sebagai 1).
False Negative (FN): Kasus positif yang diprediksi negatif (salah prediksi sebagai 0).
2. Metrik Evaluasi
Dari tabel klasifikasi, beberapa metrik penting dapat dihitung:
Accuracy:
\[
\text{Accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} +
\text{FP} + \text{FN}}
\]
Mengukur proporsi prediksi yang benar secara keseluruhan.
Sensitivity (Recall atau True Positive
Rate):
\[
\text{Sensitivity} = \frac{\text{TP}}{\text{TP} + \text{FN}}
\]
Mengukur kemampuan model mendeteksi kasus positif.
Specificity (True Negative Rate):
\[
\text{Specificity} = \frac{\text{TN}}{\text{TN} + \text{FP}}
\]
Mengukur kemampuan model mendeteksi kasus negatif.
Precision (Positive Predictive Value):
\[
\text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}}
\]
Mengukur proporsi prediksi positif yang benar-benar positif.
F1-Score:
\[
\text{F1-Score} = 2 \cdot \frac{\text{Precision} \cdot
\text{Sensitivity}}{\text{Precision} + \text{Sensitivity}}
\]
Rata-rata harmonik dari Precision dan Sensitivity, berguna untuk
mengevaluasi keseimbangan.
3. Keunggulan dan Kelemahan
Keunggulan: Memberikan gambaran detail tentang performa model pada kelas tertentu, termasuk kesalahan prediksi (FP, FN).
Kelemahan: Bergantung pada threshold (0.5 dalam kasus ini). Jika distribusi kelas tidak seimbang, threshold ini mungkin tidak optimal, sehingga memerlukan analisis lanjutan seperti kurva ROC (AUC 0.8576 pada kasus ini).
Perhitungan Tabel Klasifikasi
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 125 29
## 1 18 38
##
## Accuracy : 0.7762
## 95% CI : (0.7137, 0.8307)
## No Information Rate : 0.681
## P-Value [Acc > NIR] : 0.0015
##
## Kappa : 0.4614
##
## Mcnemar's Test P-Value : 0.1447
##
## Sensitivity : 0.5672
## Specificity : 0.8741
## Pos Pred Value : 0.6786
## Neg Pred Value : 0.8117
## Prevalence : 0.3190
## Detection Rate : 0.1810
## Detection Prevalence : 0.2667
## Balanced Accuracy : 0.7206
##
## 'Positive' Class : 1
##
Interpretasi
Akurasi (0.7762): Model step_both memprediksi dengan benar 77.62% kasus (95% CI: 0.7137–0.8307), lebih baik dari No Information Rate (0.681, p = 0.0015), menunjukkan performa yang signifikan.
Sensitivity (0.5672) dan Specificity (0.8741): Model lebih baik dalam mendeteksi kasus negatif (0) dibandingkan positif (1, pembelian ulang), dengan Balanced Accuracy 0.7206.
Kappa (0.4614): Nilai Kappa menunjukkan keseluruhan model cukup baik (0.4–0.6), tetapi masih ada ruang untuk perbaikan, terutama pada Sensitivity untuk kelas positif.
Kurva Precision-Recall (PR) adalah alat evaluasi performa model klasifikasi biner, khususnya sangat berguna saat bekerja dengan data yang tidak seimbang (class imbalance). Berbeda dengan Kurva ROC yang mempertimbangkan semua kelas, PR Curve fokus pada performa prediksi kelas positif dengan mengevaluasi Precision dan Recall pada berbagai threshold.
1. Definisi
Precision (Presisi): Proporsi prediksi positif yang benar-benar positif.
\[ \text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}} \]
TP (True Positive): Kasus positif yang diprediksi benar.
FP (False Positive): Kasus negatif yang salah diprediksi sebagai positif.
Recall (Sensitivitas): Proporsi kasus positif yang berhasil diprediksi positif.
\[ \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} \]
2. Interpretasi
PR Curve menunjukkan bagaimana Precision berubah saat Recall meningkat: Saat threshold diturunkan, Recall meningkat (lebih banyak kasus positif terdeteksi), tetapi Precision mungkin menurun karena peningkatan False Positive.
Idealnya, kita ingin Precision dan Recall keduanya tinggi: Namun, biasanya ada trade-off antara keduanya, tergantung pada threshold yang dipilih.
Model dengan performa baik memiliki PR Curve yang melengkung ke pojok kanan atas: Ini menunjukkan kemampuan model menjaga Precision tinggi sambil meningkatkan Recall.
3. Area Under PR Curve (AUPRC)
Luas kurva (AUPRC) mendekati 1 menunjukkan model sangat baik: Semakin tinggi AUPRC, semakin baik model dalam menyeimbangkan Precision dan Recall.
Baseline AUPRC = prevalensi kelas positif dalam data: Jika AUPRC jauh di atas prevalensi, model memiliki performa yang signifikan di atas tebakan acak.
4. PR Curve vs ROC Curve
| Aspek | ROC Curve | Precision-Recall Curve |
|---|---|---|
| Fokus | Semua kelas | Kelas positif saja |
| Kuat di | Data seimbang | Data tidak seimbang |
| Sumbu Y | Sensitivitas (Recall) | Precision |
| Sumbu X | 1 - Spesifisitas | Recall |
Kelebihan PR Curve: Lebih informatif pada data tidak seimbang karena fokus pada kelas minoritas (misalnya, pembelian ulang dalam kasus ini), di mana Precision dan Recall lebih relevan daripada Specificity.
Kelemahan: Kurang menangkap performa kelas negatif, sehingga harus digunakan bersama metrik lain jika kelas negatif juga penting.
Visualisasi PR Curve
library(PRROC)
## Warning: package 'PRROC' was built under R version 4.4.3
## Loading required package: rlang
data <- data.frame(y = df$y, x1 = df$x1, x3 = df$x3)
pr <- pr.curve(scores.class0 = pred_prob[data$y == 1],
scores.class1 = pred_prob[data$y == 0],
curve = TRUE)
plot(pr, main = "Precision-Recall Curve untuk Model step_both")
Interpretasi
Bentuk Kurva PR: Kurva dimulai tinggi pada Precision (1.0) saat Recall rendah, tetapi turun tajam saat Recall meningkat, menunjukkan trade-off yang signifikan antara Precision dan Recall.
AUPRC (0.7196): Area Under PR Curve sebesar 0.7196 lebih tinggi dari prevalensi kelas positif (0.3190), menunjukkan performa model yang baik dalam menangani ketidakseimbangan data, meskipun tidak optimal (ideal AUPRC = 1).
Konteks Model: Dengan Precision 0.6786 dan Sensitivity 0.5672 (dari confusion matrix), model step_both (AIC 188.8671) cukup baik untuk kelas positif, tetapi threshold mungkin perlu disesuaikan untuk meningkatkan Recall tanpa mengorbankan Precision terlalu banyak.
Metode perbandingan model dalam regresi logistik melibatkan beberapa pendekatan kunci untuk mengevaluasi kecocokan dan kompleksitas model.
Deviance adalah metrik yang digunakan untuk mengevaluasi kecocokan model regresi logistik dengan mengukur perbedaan antara data yang diamati dan prediksi model. Dalam konteks regresi logistik, deviance dihitung berdasarkan log-likelihood dan terbagi menjadi dua jenis: null deviance dan residual deviance. Null deviance mencerminkan kecocokan model tanpa prediktor (hanya intercept), sedangkan residual deviance menunjukkan kecocokan model setelah menyertakan prediktor.
Rumus deviance adalah:
\[ \text{Deviance} = -2 \cdot \log(L_{\text{model}}) \]
dengan selisih deviance (\(D_{\text{null}} - D_{\text{residual}}\)) digunakan untuk uji likelihood ratio guna menilai apakah prediktor signifikan meningkatkan kecocokan model. Penurunan deviance yang besar mengindikasikan model yang lebih baik, tetapi harus diimbangi dengan prinsip parsimony untuk menghindari overfitting.
Keunggulan: Memberikan gambaran kuantitatif tentang seberapa baik model menjelaskan data.
Kelemahan: Tidak memberikan interpretasi langsung seperti R²; hanya bermakna dalam perbandingan model.
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 191.6447 187.6447
## 2 Model 2 192.9573 186.9573
## 3 Model 3 190.4038 182.4038
Interpretasi
Model 1 (y ~ x1): Dengan AIC 191.6447 dan Deviance 187.6447, model ini adalah baseline sederhana yang hanya menggunakan \(x_1\). Nilai AIC dan Deviance menunjukkan kecocokan yang cukup, tetapi ada ruang untuk perbaikan dengan penambahan variabel.
Model 2 (y ~ x1 + x2): AIC meningkat menjadi 192.9573 dan Deviance turun sedikit ke 186.9573. Peningkatan AIC menunjukkan bahwa penambahan \(x_2\) tidak meningkatkan kecocokan secara efektif, didukung oleh peningkatan kompleksitas yang tidak sebanding dengan penurunan Deviance, menandakan \(x_2\) mungkin tidak signifikan.
Model 3 (y ~ x1 + x2 + x3): AIC turun ke 190.4038 dan Deviance turun signifikan ke 182.4038. Penurunan AIC dan Deviance menunjukkan bahwa penambahan \(x_3\) meningkatkan kecocokan model, menjadikan Model 3 lebih baik dibandingkan Model 1 dan 2. Selisih Deviance (187.6447 - 182.4038 = 5.24) dapat diuji dengan likelihood-ratio test untuk konfirmasi statistik.
Kesimpulan: Model 3 adalah yang paling optimal berdasarkan AIC terendah dan penurunan Deviance yang signifikan, menunjukkan \(x_3\) berkontribusi penting. Model 2 tampak kurang efisien, mungkin karena \(x_2\) tidak relevan, sesuai dengan prinsip parsimony yang mendukung model sederhana namun informatif.
AIC (Akaike Information Criterion) adalah metrik yang digunakan untuk memilih model statistik yang optimal dengan menyeimbangkan kecocokan terhadap data dan kompleksitas model, dikembangkan oleh Hirotugu Akaike pada tahun 1974. AIC didasarkan pada konsep information theory, khususnya prinsip minimasi Kullback-Leibler divergence antara model dan distribusi data yang sebenarnya.
Rumus AIC adalah:
\[ \text{AIC} = -2 \cdot \log(L) + 2k \]
dimana:
\(L\) = likelihood maksimum model
\(k\) = jumlah parameter (termasuk intercept).
Penambahan \(2k\) bertindak sebagai penalti untuk kompleksitas, mendorong model yang lebih sederhana kecuali ada peningkatan signifikan dalam likelihood. Model dengan AIC terendah dianggap lebih baik. AIC tidak memberikan ukuran mutlak kecocokan, melainkan alat relatif untuk perbandingan, dan selisih > 2 sering dianggap mendukung model yang lebih baik.
Keunggulan: Memungkinkan perbandingan model dengan jumlah prediktor berbeda dan mencegah overfitting.
Kelemahan: Sensitif terhadap ukuran sampel; untuk data besar, variasi AIC kecil dapat diabaikan.
Konteks Kasus: Dalam analisis sebelumnya, penurunan AIC dari 191.6447 (Model 1) ke 190.4038 (Model 3) menunjukkan peningkatan kecocokan dengan penambahan \(x_3\).
Likelihood-Ratio (LR) adalah metode statistik yang digunakan untuk membandingkan kecocokan dua model bersarang dalam regresi logistik, khususnya untuk menguji apakah penambahan variabel prediktor meningkatkan performa model secara signifikan. Konsep ini didasarkan pada perbandingan log-likelihood antara model yang lebih sederhana (model nol atau model terbatas) dan model yang lebih kompleks (model penuh).
Statistik LR dihitung sebagai:
\[ \text{LR} = -2 \cdot [\log(L_{\text{null}}) - \log(L_{\text{full}})] \]
di mana \(L_{\text{null}}\) dan \(L_{\text{full}}\) adalah likelihood masing-masing model, dan perbedaan ini mengikuti distribusi chi-square (\(\chi^2\)) dengan derajat kebebasan sesuai jumlah parameter yang ditambahkan. Nilai p yang kecil dari uji ini menunjukkan bahwa model penuh lebih baik.
Keunggulan: Memberikan dasar statistik yang kuat untuk memilih model dengan bukti empiris.
Kelemahan: Mengasumsikan model bersarang dan sensitif terhadap ukuran sampel yang kecil.
Perhitungan
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 208 187.65
## 2 207 186.96 1 0.68737 0.4071
Residual Deviance: Turun dari 187.65 (df = 208) pada Model 1 ke 186.96 (df = 207) pada Model 2, dengan selisih deviance 0.68737 (df = 1).
P-value (0.4071): Tidak signifikan (p > 0.05), menunjukkan bahwa penambahan \(x_2\) tidak meningkatkan kecocokan model secara statistik dibandingkan Model 1. Ini konsisten dengan peningkatan AIC pada Model 2 (192.9573 vs 191.6447).
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 207 186.96
## 2 206 182.40 1 4.5535 0.03285 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual Deviance: Turun dari 186.96 (df = 207) pada Model 2 ke 182.40 (df = 206) pada Model 3, dengan selisih deviance 4.5535 (df = 1).
P-value (0.03285): Signifikan pada level 0.05 (p < 0.05), menunjukkan bahwa penambahan \(x_3\) meningkatkan kecocokan model secara signifikan dibandingkan Model 2. Ini didukung oleh penurunan AIC dari 192.9573 ke 190.4038.
Kesimpulan
Penambahan \(x_2\) tidak memberikan kontribusi signifikan, sesuai dengan p-value tinggi dan AIC yang lebih buruk.
Penambahan \(x_3\) meningkatkan kecocokan model secara statistik, mendukung Model 3 sebagai pilihan terbaik berdasarkan uji Likelihood-Ratio dan penurunan AIC.
Prinsip Parsimony, sering disebut sebagai Occam’s Razor, adalah pedoman dalam pemodelan statistik yang menekankan pemilihan model paling sederhana di antara model-model yang memiliki performa serupa dalam menjelaskan data. Dalam konteks regresi logistik, prinsip ini mendorong penggunaan model dengan jumlah parameter minimal yang masih mampu menangkap pola utama dalam data, menghindari overfitting yang dapat terjadi jika model terlalu kompleks. Prinsip ini tidak memiliki rumus matematis spesifik, tetapi diterapkan melalui metrik seperti AIC atau uji Likelihood-Ratio untuk membandingkan model. Misalnya, dalam analisis sebelumnya, model step_both (AIC 188.8671, tanpa \(x_2\)) lebih disukai dibandingkan model_full (AIC 190.4038) karena lebih sederhana dengan performa yang sebanding, sejalan dengan prinsip parsimony.
Keunggulan: Mengurangi risiko overfitting, meningkatkan generalisasi model, dan mempermudah interpretasi.
Kelemahan: Dapat mengabaikan variabel yang mungkin memiliki efek kecil tetapi relevan dalam konteks tertentu.
Konteks Kasus: Penghapusan \(x_2\) (p = 0.4974) dalam step_both mencerminkan prinsip parsimony, karena variabel tersebut tidak signifikan dan tidak meningkatkan kecocokan model secara berarti.
Untuk menentukan threshold terbaik, kita dapat membandingkan nilai sensitivitas dan spesifisitas pada berbagai nilai cut-off. Proses ini melibatkan evaluasi kinerja model dalam mengklasifikasikan data pada beberapa ambang probabilitas, sehingga dapat dipilih cut-off yang memberikan keseimbangan optimal antara sensitivitas (kemampuan model mendeteksi kasus positif) dan spesifisitas (kemampuan model mengidentifikasi kasus negatif) sesuai tujuan analisis.
Misalnya, kita ingin menentukan threshold terbaik untuk model step_both:
thresholds <- seq(0.1, 0.9, by = 0.05)
results <- data.frame(Threshold = thresholds)
results$Sensitivity <- sapply(thresholds, function(t) {
pred_class <- ifelse(pred_prob >= t, 1, 0)
cm <- table(Pred = pred_class, Obs = df$y)
TP <- cm["1", "1"]
FN <- cm["0", "1"]
TP / (TP + FN)
})
results$Specificity <- sapply(thresholds, function(t) {
pred_class <- ifelse(pred_prob >= t, 1, 0)
cm <- table(Pred = pred_class, Obs = df$y)
TN <- cm["0", "0"]
FP <- cm["1", "0"]
TN / (TN + FP)
})
results$Sum_Sens_Spec <- results$Sensitivity + results$Specificity
best_row <- results[which.max(results$Sum_Sens_Spec), ]
list(
Tabel_Results = results,
Threshold_Optimal = list(
Threshold = best_row$Threshold,
Sensitivity = best_row$Sensitivity,
Specificity = best_row$Specificity,
Sum_Sens_Spec = best_row$Sum_Sens_Spec
)
)
## $Tabel_Results
## Threshold Sensitivity Specificity Sum_Sens_Spec
## 1 0.10 0.9850746 0.4685315 1.453606
## 2 0.15 0.9402985 0.5384615 1.478760
## 3 0.20 0.9104478 0.6153846 1.525832
## 4 0.25 0.8507463 0.7132867 1.564033
## 5 0.30 0.7910448 0.7482517 1.539297
## 6 0.35 0.7761194 0.7762238 1.552343
## 7 0.40 0.7164179 0.7902098 1.506628
## 8 0.45 0.6716418 0.8601399 1.531782
## 9 0.50 0.5671642 0.8741259 1.441290
## 10 0.55 0.4925373 0.9090909 1.401628
## 11 0.60 0.4328358 0.9230769 1.355913
## 12 0.65 0.3880597 0.9370629 1.325123
## 13 0.70 0.3432836 0.9720280 1.315312
## 14 0.75 0.2835821 0.9860140 1.269596
## 15 0.80 0.2089552 0.9860140 1.194969
## 16 0.85 0.1492537 0.9860140 1.135268
## 17 0.90 0.1044776 0.9930070 1.097485
##
## $Threshold_Optimal
## $Threshold_Optimal$Threshold
## [1] 0.25
##
## $Threshold_Optimal$Sensitivity
## [1] 0.8507463
##
## $Threshold_Optimal$Specificity
## [1] 0.7132867
##
## $Threshold_Optimal$Sum_Sens_Spec
## [1] 1.564033
Penentuan Threshold Optimal
Threshold (cut-off) dalam model klasifikasi logistik adalah nilai ambang yang digunakan untuk memutuskan apakah probabilitas prediksi suatu observasi dikategorikan sebagai kelas positif atau negatif. Pemilihan threshold yang tepat sangat penting agar model dapat memberikan keseimbangan yang baik antara sensitivitas (kemampuan mendeteksi kasus positif) dan spesifisitas (kemampuan mengenali kasus negatif).
Salah satu metode untuk memilih threshold optimal adalah dengan mencari nilai threshold yang memaksimalkan jumlah sensitivitas dan spesifisitas (Sensitivity + Specificity). Threshold optimal adalah nilai yang menghasilkan keseimbangan terbaik antara kedua ukuran tersebut, sehingga model tidak terlalu banyak menghasilkan false positive maupun false negative.
Interpretasi
Berdasarkan hasil evaluasi, threshold optimal yang diperoleh adalah 0.25. Pada threshold ini, model mencapai nilai sensitivitas sebesar 0.8507 dan spesifisitas sebesar 0.7133, sehingga penjumlahan sensitivitas dan spesifisitas adalah 1.5640.
Artinya, dengan menggunakan threshold 0.25:
Model mampu mendeteksi sekitar 85% dari semua kasus positif secara benar (sensitivitas).
Model juga berhasil mengenali sekitar 71% dari semua kasus negatif secara benar (spesifisitas).
Threshold ini memberikan keseimbangan yang baik antara sensitivitas dan spesifisitas, sehingga model dapat meminimalkan kesalahan klasifikasi baik pada kasus positif maupun negatif.
Threshold optimal ini dapat digunakan sebagai dasar pengambilan keputusan klasifikasi pada aplikasi serupa yang membutuhkan trade-off antara deteksi positif dan pengenalan negatif.
Tabel Rangkuman Ukuran Evaluasi dan Kebaikan Model
| Ukuran Evaluasi | Fungsi | Syarat Penggunaan | Kriteria Disebut Baik | Kapan Digunakan |
|---|---|---|---|---|
| ROC (Kurva ROC) | Menggambarkan trade-off Sensitivity dan 1-Specificity. | Model klasifikasi biner. | Kurva mendekati sudut kiri atas. | Evaluasi performa diskriminasi model. |
| AUC (Area Under Curve) | Mengukur kemampuan diskriminasi model. | Memerlukan Kurva ROC. | AUC > 0.8, mendekati 1 untuk performa sempurna. | Ringkasan kuantitatif performa ROC. |
| Pseudo R-Squared | Mengukur variabilitas yang dijelaskan model. | Model logistik biner. | Cox & Snell 0.2–0.4, Nagelkerke > 0.4, McFadden 0.2–0.4. | Menilai kecocokan model relatif. |
| Tabel Klasifikasi | Menyediakan TP, TN, FP, FN, dan metrik evaluasi. | Data biner dengan threshold tertentu. | Accuracy > 0.7, Sensitivity & Specificity seimbang. | Analisis performa pada kelas tertentu. |
| PR Curve | Menunjukkan trade-off Precision dan Recall. | Data tidak seimbang. | Kurva ke kanan atas, AUPRC > prevalensi. | Fokus pada kelas minoritas. |
| Deviance | Mengukur perbedaan data diamati dan prediksi. | Model logistik biner. | Penurunan deviance signifikan (p < 0.05). | Menguji kontribusi prediktor. |
| AIC | Menyeimbangkan kecocokan dan kompleksitas. | Perbandingan model berbeda prediktor. | AIC terendah di antara model. | Memilih model optimal (parsimony). |
| Likelihood-Ratio | Menguji signifikansi perbedaan kecocokan. | Model bersarang. | p-value < 0.05 (model penuh lebih baik). | Validasi statistik penambahan prediktor. |
Regresi logistik multinomial adalah sebuah metode analisis statistik yang digunakan untuk memprediksi variabel dependen yang bersifat nominal dengan lebih dari dua kategori.
Distribusi multinomial adalah generalisasi dari distribusi binomial untuk kasus di mana setiap percobaan memiliki lebih dari dua hasil kategori (misalnya, tingkat kepuasan: Rendah, Sedang, Tinggi). Namun, Distribusi multinomial tidak menganggap urutan/tingkatan pada kategori. Ia memperlakukan semua kategori secara setara (nominal), tanpa memperhitungkan hubungan atau urutan antara kategori tersebut. Distribusi ini mengasumsikan percobaan independen dengan probabilitas tetap untuk setiap kategori, dan jumlah total percobaan tetap.
Fungsi probabilitas distribusi multinomial adalah:
\[ P(X_1 = x_1, X_2 = x_2, ..., X_k = x_k) = \frac{n!}{x_1! x_2! \cdots x_k!} p_1^{x_1} p_2^{x_2} \cdots p_k^{x_k} \]
dimana:
\(n\) = jumlah percobaan
\(x_i\) = jumlah kejadian kategori \(i\)
\(p_i\) = probabilitas kategori \(i\) dengan \(\sum p_i = 1\).
Distribusi ini sering digunakan dalam analisis data kategorikal, seperti regresi logistik multinomial, untuk memodelkan hubungan antara prediktor dan variabel respons dengan lebih dari dua kategori.
Keunggulan : Cocok untuk data kategorikal dengan beberapa kelas.
Kelemahan : Mengasumsikan independensi dan probabilitas tetap, yang mungkin tidak selalu realistis.
Contoh Kasus
Sebuah survei kepuasan pelanggan dilakukan dengan 100 responden, di mana setiap responden memilih salah satu dari tiga kategori: Rendah (probabilitas 0.2), Sedang (0.5), dan Tinggi (0.3). Berapa probabilitas mendapatkan 20 responden memilih Rendah, 50 memilih Sedang, dan 30 memilih Tinggi?
Penyelesaian Manual
Gunakan rumus distribusi multinomial:
\[ P(X_1 = x_1, X_2 = x_2, X_3 = x_3) = \frac{n!}{x_1! x_2! x_3!} p_1^{x_1} p_2^{x_2} p_3^{x_3} \]
Substitusi \(n = 100\), \(x_1 = 20\), \(x_2 = 50\), \(x_3 = 30\), \(p_1 = 0.2\), \(p_2 = 0.5\), \(p_3 = 0.3\):
\[ P(20, 50, 30) = \frac{100!}{20! \cdot 50! \cdot 30!} \cdot 0.2^{20} \cdot 0.5^{50} \cdot 0.3^{30} \]
Penyelesaian Menggunakan R
n <- 100
x <- c(20, 50, 30)
p <- c(0.2, 0.5, 0.3)
# Hitung 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.009117628
Artinya, peluang untuk mendapatkan 20 responden memilih Rendah, 50 memilih Sedang, dan 30 memilih Tinggi adalah sebesar 0.009117 atau 0.9%.
Multinomial Logistic Regression adalah metode statistik untuk memodelkan hubungan antara variabel dependen kategorikal dengan lebih dari dua kategori (non-ordinal) dan satu atau lebih variabel independen. Berbeda dengan regresi logistik biner, model ini menangani kasus di mana variabel dependen memiliki \(k\) kategori (k > 2).
Konsep Dasar
Dalam regresi logistik multinomial, probabilitas bahwa observasi \(i\) termasuk dalam kategori \(j\) dimodelkan sebagai:
\[ P(Y_i = j | \mathbf{x}_i) = \frac{\exp(\mathbf{x}_i^T \boldsymbol{\beta}j)}{\sum{m=1}^k \exp(\mathbf{x}_i^T \boldsymbol{\beta}_m)} \]
dimana:
\(Y_i\): Kategori variabel dependen untuk observasi \(i\).
\(\mathbf{x}_i\): Vektor variabel independen untuk observasi \(i\).
\(\boldsymbol{\beta}_j\): Vektor koefisien regresi untuk kategori \(j\).
Kategori referensi (biasanya kategori terakhir) memiliki \(\boldsymbol{\beta}_k = 0\) untuk normalisasi.
Model Logit untuk Multinomial Logistic Regression
Misalkan \(Y\) memiliki \(K\) kategori, dan kita pilih referensi (baseline) 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 \]
untuk \(j = 1, 2, \ldots, K-1\).
Asumsi
Independensi Observasi: Observasi antar individu tidak berkorelasi.
Independence of Irrelevant Alternatives (IIA): Penambahan atau penghapusan kategori lain tidak memengaruhi rasio odds antara dua kategori.
Linearitas Logit: Hubungan antara variabel independen dan log-odds bersifat linier.
Baseline-Category Logit Model adalah pendekatan regresi logistik untuk variabel respon kategorik dengan lebih dari dua kategori (nominal). Model ini menetapkan satu kategori sebagai acuan (baseline) dan membandingkan kategori lainnya terhadap baseline tersebut dalam bentuk logit.
Konsep Dasar
Model mengestimasi log-odds probabilitas kategori \(j\) terhadap kategori acuan \(c\):
\[ \log \left( \frac{\pi_j}{\pi_c} \right) = \alpha_j + \beta_{j1}x_1 + \cdots + \beta_{jp}x_p, \quad j = 1, \ldots, c-1 \]
dimana:
\(\pi_j\): Probabilitas respon berada di kategori \(j\).
\(\pi_c\): Probabilitas respon berada di kategori acuan (baseline).
\(\alpha_j\): Intersep untuk kategori \(j\).
\(\beta_{jk}\): Koefisien untuk variabel independen \(x_k\) pada kategori \(j\).
Probabilitas total memenuhi \(\sum_{j=1}^c \pi_j = 1\), dengan \(\pi_c\) sebagai baseline.
Contoh Kasus
Misalkan respon \(Y\) memiliki tiga kategori: \(Y \in \{1, 2, 3\}\), dengan kategori 3 sebagai baseline. Modelnya:
\[ \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 \]
Relasi Antar Kategori
Logit antar kategori (misal 1 vs 2) dapat diturunkan:
\[ \log \left( \frac{\pi_1}{\pi_2} \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 \]
Aplikasi
Digunakan untuk respon dengan kategori > 2.
Menghasilkan \((c-1)\) fungsi logit terhadap baseline.
Logit antar kategori selain baseline dapat diturunkan dari selisih logit terhadap baseline.
Catatan: Kategori baseline bisa ditentukan secara eksplisit; default di R adalah kategori terakhir.
Implementasi di R dapat dilakukan dengan fungsi
multinom() dari paket nnet, dan kategori acuan
dapat ditentukan menggunakan fungsi relevel().
Metode Maximum Likelihood Estimation (MLE) adalah pendekatan statistik untuk mengestimasi parameter model berdasarkan data yang diamati dengan memaksimalkan fungsi likelihood. Dalam konteks regresi logistik multinomial seperti Baseline-Category Logit Model, MLE digunakan untuk menentukan parameter \(\beta_{jk}\).
Fungsi likelihood (\(L\)) mengukur probabilitas data yang diamati diberikan parameter. Untuk data independen dengan probabilitas \(P(Y_i = j | \mathbf{x}_i, \boldsymbol{\beta})\).
Fungsi likelihood didefinisikan sebagai:
\[ L(\boldsymbol{\beta}) = \prod_{i=1}^n P(Y_i | \mathbf{x}_i, \boldsymbol{\beta}) \]
Di mana \(P(Y_i | \mathbf{x}_i, \boldsymbol{\beta})\) adalah probabilitas yang diberikan oleh model, misalnya \(\frac{\exp(\mathbf{x}_i^T \boldsymbol{\beta}_j)}{\sum_{m=1}^c \exp(\mathbf{x}_i^T \boldsymbol{\beta}_m)}\) untuk kategori \(j\).
Proses Estimasi
Log-Likelihood: Untuk mempermudah perhitungan, digunakan log-likelihood:
\[ \ell(\boldsymbol{\beta}) = \log L(\boldsymbol{\beta}) = \sum_{i=1}^n \log P(Y_i | \mathbf{x}_i, \boldsymbol{\beta}) \]
Optimasi: Parameter \(\boldsymbol{\beta}\) dipilih dengan memaksimalkan \(\ell(\boldsymbol{\beta})\) menggunakan algoritma numerik seperti Newton-Raphson atau metode gradien.
Iterasi: Proses berulang hingga konvergensi, di mana perubahan parameter menjadi sangat kecil.
Dalam regresi logistik multinomial, MLE mengestimasi koefisien \(\beta_{jk}\) untuk setiap kategori terhadap baseline, memungkinkan interpretasi log-odds dan prediksi probabilitas kategori.
Sebuah perusahaan multinasional dengan 100 karyawan di tiga divisi utama (Finance, Sales, dan Operations) ingin memahami faktor-faktor yang memengaruhi preferensi metode transportasi karyawan (Transport) untuk merancang kebijakan transportasi yang lebih efisien. Variabel Transport memiliki tiga kategori: “Car”, “Public”, dan “Bike”. Data yang dikumpulkan meliputi divisi karyawan (Division), gaji bulanan dalam dolar (Salary), dan lama kerja dalam tahun (Tenure). Tujuan analisis adalah untuk memprediksi preferensi transportasi karyawan berdasarkan variabel tersebut menggunakan Baseline-Category Logit Model dan mengevaluasi apakah divisi, gaji, atau lama kerja berpengaruh signifikan terhadap pilihan transportasi, sehingga perusahaan dapat menyesuaikan fasilitas seperti subsidi transportasi atau penyediaan parkir.
set.seed(799)
n <- 100
Division <- sample(c("Finance", "Sales", "Operations"), n, replace = TRUE)
Salary <- round(rnorm(n, mean = 500, sd = 100))
Tenure <- round(pmax(rnorm(n, mean = 5, sd = 2), 0))
# Simulasikan Transport berdasarkan probabilitas berbeda per Division
Transport <- sapply(Division, function(div) {
if (div == "Finance") {
sample(c("Car", "Public", "Bike"), size = 1, prob = c(0.5, 0.3, 0.2))
} else if (div == "Sales") {
sample(c("Car", "Public", "Bike"), size = 1, prob = c(0.4, 0.4, 0.2))
} else {
sample(c("Car", "Public", "Bike"), size = 1, prob = c(0.3, 0.5, 0.2))
}
})
df <- data.frame(Transport = factor(Transport), Salary, Division = factor(Division), Tenure)
df$Transport <- relevel(df$Transport, ref = "Car") # baseline
head(df)
## Transport Salary Division Tenure
## 1 Public 361 Operations 6
## 2 Public 473 Sales 3
## 3 Bike 456 Operations 5
## 4 Public 503 Finance 7
## 5 Car 504 Finance 3
## 6 Public 254 Operations 3
dimana:
Variabel dependen: Transport (Car, Public, Bike, dengan Car sebagai baseline).
Variabel independen: Salary (numerik), Division (kategorik: Finance, Sales, Operations), dan Tenure (numerik).
Model ini akan menghasilkan dua persamaan logit: log(P(Public)/P(Car)) dan log(P(Bike)/P(Car)), yang digunakan untuk memprediksi probabilitas masing-masing kategori transportasi.
library(nnet)
model_mnlogit <- multinom(Transport ~ Salary + Division + Tenure, data = df)
## # weights: 18 (10 variable)
## initial value 109.861229
## iter 10 value 98.471577
## final value 98.429490
## converged
summary(model_mnlogit)
## Call:
## multinom(formula = Transport ~ Salary + Division + Tenure, data = df)
##
## Coefficients:
## (Intercept) Salary DivisionOperations DivisionSales Tenure
## Bike 1.613677 -0.002877302 -0.2253717 -0.3685537 -0.16798848
## Public 1.527466 -0.003878195 1.1529381 0.1045159 0.02400596
##
## Std. Errors:
## (Intercept) Salary DivisionOperations DivisionSales Tenure
## Bike 1.657513 0.003007881 0.8152803 0.6447795 0.1557141
## Public 1.327491 0.002442591 0.5938806 0.5401780 0.1175425
##
## Residual Deviance: 196.859
## AIC: 216.859
Berdasarkan output, model Baseline-Category Logit adalah sebagai berikut:
Logit untuk \(Y = \text{Bike}\) vs \(Y = \text{Car}\):
\[ \log \left( \frac{P(Y = \text{Bike})}{P(Y = \text{Car})} \right) = 1.614 - 0.003 \cdot x_1 - 0.225 \cdot \text{I}(x_2 = \text{Operations}) - 0.369 \cdot \text{I}(x_2 = \text{Sales}) - 0.168 \cdot x_3 \]
Logit untuk \(Y = \text{Public}\) vs \(Y = \text{Car}\):
\[ \log \left( \frac{P(Y = \text{Public})}{P(Y = \text{Car})} \right) = 1.527 - 0.004 \cdot x_1 + 1.153 \cdot \text{I}(x_2 = \text{Operations}) + 0.105 \cdot \text{I}(x_2 = \text{Sales}) + 0.024 \cdot x_3 \]
dimana:
\(Y\): Variabel dependen Transport (kategori: Car, Bike, Public, dengan Car sebagai baseline).
\(x_1\): Salary (gaji bulanan dalam dolar).
\(x_2\): Division (kategorik: Finance sebagai referensi, Operations, Sales).
\(x_3\): Tenure (lama kerja dalam tahun).
Penjelasan:
\(\text{I}(x_2 = \text{Operations})\) bernilai 1 jika \(x_2\) adalah “Operations”, 0 jika tidak.
\(\text{I}(x_2 = \text{Sales})\) bernilai 1 jika \(x_2\) adalah “Sales”, 0 jika tidak.
Kategori referensi untuk \(x_2\) adalah “Finance”, sehingga koefisiennya 0 (tidak muncul dalam persamaan).
Koefisien menggambarkan perubahan log-odds memilih “Bike” atau “Public” dibandingkan “Car” per unit perubahan variabel independen.
Hitung P-value
z <- summary(model_mnlogit)$coefficients / summary(model_mnlogit)$standard.errors
pval <- 2 * (1 - pnorm(abs(z)))
round(pval, 4)
## (Intercept) Salary DivisionOperations DivisionSales Tenure
## Bike 0.3303 0.3388 0.7822 0.5676 0.2807
## Public 0.2499 0.1123 0.0522 0.8466 0.8382
Berikut adalah interpretasi setiap koefisien dari model Baseline-Category Logit berdasarkan output koefisien dan nilai p-value. Model ini memprediksi preferensi metode transportasi (Transport: Bike, Public, dengan Car sebagai baseline) berdasarkan variabel Salary, Division (Finance sebagai referensi), dan Tenure.
1. Kategori Bike vs Car - Intercept
(1.613677, p-value = 0.3303)
Log-odds memilih “Bike” dibandingkan “Car” adalah 1.613677 ketika semua
variabel independen bernilai 0 (Salary = 0, Tenure = 0, Division =
Finance). Namun, p-value 0.3303 (> 0.05) menunjukkan
intersep ini tidak signifikan secara statistik pada taraf signifikansi
5%.
Salary (-0.002877302, p-value =
0.3388)
Setiap kenaikan $1 dalam Salary mengurangi log-odds memilih
“Bike” dibandingkan “Car” sebesar 0.002877302, dengan variabel lain
konstan. p-value 0.3388 (> 0.05) menunjukkan efek ini tidak
signifikan secara statistik.
DivisionOperations (-0.2253717, p-value =
0.7822)
Jika karyawan berada di divisi “Operations” (dibandingkan Finance),
log-odds memilih “Bike” dibandingkan “Car” berkurang sebesar 0.2253717.
p-value 0.7822 (> 0.05) menunjukkan perbedaan ini tidak
signifikan.
DivisionSales (-0.3685537, p-value =
0.5676)
Jika karyawan berada di divisi “Sales” (dibandingkan Finance), log-odds
memilih “Bike” dibandingkan “Car” berkurang sebesar 0.3685537.
p-value 0.5676 (> 0.05) menunjukkan efek ini tidak
signifikan.
Tenure (-0.16798848, p-value =
0.2807)
Setiap kenaikan 1 tahun dalam Tenure mengurangi log-odds
memilih “Bike” dibandingkan “Car” sebesar 0.16798848. p-value
0.2807 (> 0.05) menunjukkan efek ini tidak signifikan.
2. Kategori Public vs Car - Intercept
(1.527466, p-value = 0.2499)
Log-odds memilih “Public” dibandingkan “Car” adalah 1.527466 ketika
semua variabel independen bernilai 0. p-value 0.2499 (>
0.05) menunjukkan intersep ini tidak signifikan secara statistik.
Salary (-0.003878195, p-value =
0.1123)
Setiap kenaikan $1 dalam Salary mengurangi log-odds memilih
“Public” dibandingkan “Car” sebesar 0.003878195. p-value 0.1123
(> 0.05) menunjukkan efek ini tidak signifikan, meskipun mendekati
batas signifikansi.
DivisionOperations (1.1529381, p-value =
0.0522)
Jika karyawan berada di divisi “Operations” (dibandingkan Finance),
log-odds memilih “Public” dibandingkan “Car” meningkat sebesar
1.1529381. p-value 0.0522 (sangat mendekati 0.05) menunjukkan
efek ini hampir signifikan pada taraf 5%.
DivisionSales (0.1045159, p-value =
0.8466)
Jika karyawan berada di divisi “Sales” (dibandingkan Finance), log-odds
memilih “Public” dibandingkan “Car” meningkat sebesar 0.1045159.
p-value 0.8466 (> 0.05) menunjukkan efek ini tidak
signifikan.
Tenure (0.02400596, p-value =
0.8382)
Setiap kenaikan 1 tahun dalam Tenure meningkatkan log-odds
memilih “Public” dibandingkan “Car” sebesar 0.02400596. p-value
0.8382 (> 0.05) menunjukkan efek ini tidak signifikan.
Kesimpulan
Tidak ada variabel yang menunjukkan efek signifikan pada taraf 5% berdasarkan p-value. Namun, efek DivisionOperations pada “Public” vs “Car” mendekati signifikansi, menunjukkan potensi hubungan yang perlu diteliti lebih lanjut dengan data yang lebih besar.
Simulasi prediksi dilakukan untuk mengetahui seberapa baik model dalam memprediksi.
df$Predicted <- predict(model_mnlogit)
# Membuat tabel kontingensi untuk membandingkan hasil prediksi dengan data aktual
conf_matrix <- table(Predicted = df$Predicted, Actual = df$Transport)
conf_matrix
## Actual
## Predicted Car Bike Public
## Car 25 9 16
## Bike 0 1 0
## Public 14 8 27
# Menghitung akurasi prediksi
accuracy <- sum(diag(conf_matrix)) / sum(conf_matrix)
cat("Akurasi model: ", round(accuracy * 100, 2), "%\n")
## Akurasi model: 53 %
Berdasarkan tabel kontingensi dan akurasi yang dihasilkan dari model Baseline-Category Logit, berikut adalah interpretasinya:
Tabel Kontingensi
Car: Dari 39 prediksi sebagai “Car”, 25 benar-benar “Car” (25), tetapi 9 salah diprediksi sebagai “Bike” dan 16 salah diprediksi sebagai “Public”.
Bike: Hanya 1 prediksi benar sebagai “Bike” (1), dengan 0 kesalahan prediksi ke “Car” atau “Public”.
Public: Dari 49 prediksi sebagai “Public”, 27 benar-benar “Public” (27), tetapi 14 salah diprediksi sebagai “Car” dan 8 salah diprediksi sebagai “Bike”.
Akurasi Model
Akurasi model adalah 53%, yang dihitung sebagai rasio jumlah prediksi benar (25 + 1 + 27 = 53) terhadap total observasi (39 + 1 + 49 = 89), yaitu \(\frac{53}{89} \approx 0.53\) atau 53%.
Interpretasi: Model ini mampu memprediksi kategori transportasi dengan akurasi sedang (53%). Ini menunjukkan bahwa model cukup baik dalam mengenali pola, tetapi masih ada ruang untuk perbaikan, terutama dalam mengurangi kesalahan prediksi (misalnya, 16 “Car” salah diprediksi sebagai “Public”).
Analisis Tambahan
Model tampaknya lebih akurat memprediksi “Public” (27 dari 49 benar) dibandingkan “Bike” (1 dari 1 benar) dan “Car” (25 dari 39 benar). Namun, frekuensi kesalahan prediksi yang tinggi (misalnya, 14 “Public” salah jadi “Car”) menunjukkan bahwa variabel seperti Salary, Division, dan Tenure mungkin tidak cukup kuat untuk membedakan kategori dengan baik.
Pertimbangan untuk meningkatkan akurasi dapat meliputi penambahan variabel prediktor atau penggunaan data yang lebih besar.
ggplot(df, aes(x = Salary, y = Tenure, color = Predicted)) +
geom_point(size = 2) +
labs(title = "Baseline-Category Logit Predictions",
x = "Salary (USD)", y = "Tenure (Years)") +
theme_minimal()
Plot di atas menunjukkan hasil prediksi model Baseline-Category Logit untuk preferensi metode transportasi karyawan (Transport: Car, Bike, Public) berdasarkan variabel Salary (dalam USD) dan Tenure (dalam tahun). Setiap titik mewakili seorang karyawan, dengan warna menunjukkan kategori Transport yang diprediksi oleh model (merah untuk Car, hijau untuk Bike, biru untuk Public).
Interpretasi Plot
Distribusi Titik:
Titik-titik tersebar merata di rentang Salary (2000–7000 USD) dan Tenure (2–10 tahun), menunjukkan variasi yang baik dalam data.
Tidak ada pemisahan yang sangat jelas antara kategori Transport berdasarkan Salary dan Tenure, karena titik-titik untuk Car, Bike, dan Public bercampur di berbagai wilayah plot.
Kategori Car (Merah):
Kategori Bike (Hijau):
Kategori Public (Biru):
Analisis Pola
Overlap yang Tinggi: Ada banyak tumpang tindih antara kategori Car (merah) dan Public (biru), terutama di Salary 4000–6000 USD dan Tenure 3–7 tahun. Ini menunjukkan bahwa model kesulitan membedakan antara Car dan Public di wilayah tersebut, yang dapat menjelaskan akurasi rendah (sekitar 53% berdasarkan analisis sebelumnya).
Kategori Bike yang Minim: Hanya ada satu titik untuk “Bike”, yang menunjukkan model sangat jarang memprediksi kategori ini. Hal ini bisa disebabkan oleh distribusi data yang tidak seimbang atau variabel prediktor yang kurang kuat untuk menangkap pola “Bike”.
Kesimpulan
Plot menunjukkan bahwa model Baseline-Category Logit belum dapat memisahkan kategori Transport dengan baik berdasarkan Salary dan Tenure, terutama antara “Car” dan “Public”. Distribusi “Bike” yang sangat minim juga menjadi masalah.
Untuk meningkatkan akurasi, disarankan untuk:
Model Baseline-Category Logit berhasil digunakan untuk:
Menganalisis hubungan antara atribut karyawan (Salary, Division, Tenure) dan preferensi metode transportasi (Transport).
Mengetahui faktor signifikan yang memengaruhi pilihan transportasi, meskipun pada analisis ini hanya DivisionOperations untuk “Public” vs “Car” yang mendekati signifikansi (p-value = 0.0522).
Memungkinkan prediksi metode transportasi yang dipilih oleh karyawan baru berdasarkan karakteristiknya, meskipun akurasi model saat ini (53%) masih perlu ditingkatkan untuk aplikasi praktis.
Regresi Logistik Ordinal adalah metode statistik yang digunakan untuk memodelkan hubungan antara variabel dependen ordinal (dengan urutan tertentu namun jarak antar kategori tidak sama) dan satu atau lebih variabel independen. Berbeda dengan regresi logistik multinomial, model ini memanfaatkan sifat ordinal untuk meningkatkan efisiensi dan interpretasi. Model ini mengasumsikan bahwa probabilitas kumulatif untuk setiap kategori atau lebih rendah dimodelkan menggunakan fungsi logit.
Asumsi
Model ini sering digunakan untuk analisis seperti penilaian kepuasan (misalnya, sangat tidak puas hingga sangat puas), tingkat pendidikan, atau skala kesehatan dengan urutan tertentu.
Cumulative Logit Model adalah pendekatan spesifik dalam regresi logistik ordinal yang digunakan untuk memodelkan variabel dependen ordinal dengan memanfaatkan sifat kumulatif kategorinya. Model ini mengasumsikan bahwa ada urutan dalam kategori dependen dan fokus pada probabilitas kumulatif untuk mencapai atau melebihi setiap kategori.
Model ini memodelkan log-odds kumulatif untuk variabel dependen \(Y\) dengan \(J\) kategori (dari 1 hingga \(J\)).
Log-odds untuk probabilitas kumulatif bahwa \(Y \leq j\) dibandingkan dengan \(Y > j\) diberikan oleh:
\[ \log \left( \frac{P(Y \leq j)}{P(Y > j)} \right) = \theta_j - (\beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_p x_p) \]
dimana:
\(\theta_j\)= Parameter ambang batas (threshold) untuk kategori \(j\), dengan \(\theta_1 < \theta_2 < \cdots < \theta_{J-1}\).
\(\beta_k\) = Koefisien untuk variabel independen \(x_k\), yang diasumsikan konstan di seluruh ambang batas (asumsi proporsional odds).
Probabilitas individu untuk setiap kategori \(j\) dapat diperoleh dengan mengurangi probabilitas kumulatif:
\(P(Y = j) = P(Y \leq j) - P(Y \leq j-1)\).
Untuk \(c\) kategori, terdapat (\(c\) − 1) model logit kumulatif.
Dalam Cumulative Logit Model, interpretasi koefisien dilakukan untuk memahami efek variabel independen terhadap variabel dependen ordinal. Koefisien diinterpretasikan dalam bentuk log-odds dan dapat diubah menjadi rasio odds (odds ratio) untuk interpretasi yang lebih intuitif.
Konsep Dasar
Model ini memodelkan log-odds kumulatif untuk variabel dependen \(Y\) dengan \(J\) kategori:
\[ \log \left( \frac{P(Y \leq j)}{P(Y > j)} \right) = \theta_j - (\beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_p x_p) \]
dimana \(\beta_k\) adalah koefisien untuk variabel independen \(x_k\). Tanda negatif pada \(\beta_k\) berasal dari konvensi model, sehingga efek \(x_k\) diinterpretasikan dengan memperhatikan tanda tersebut.
Koefisien \(\beta_k\) menunjukkan perubahan log-odds kumulatif untuk setiap unit perubahan variabel independen \(x_k\), dengan variabel lain konstan.
Karena ada tanda negatif di model, \(\beta_k\) positif berarti peningkatan \(x_k\) mengurangi log-odds \(P(Y \leq j) / P(Y > j)\), sehingga peluang berada di kategori yang lebih tinggi (\(Y > j\)) meningkat. Sebaliknya, \(\beta_k\) negatif meningkatkan peluang berada di kategori yang lebih rendah.
Interpretasi Odds Ratio
Untuk interpretasi yang lebih intuitif, koefisien \(\beta_k\) dapat dieksponensialkan menjadi rasio odds (odds ratio):
\[ \text{Odds Ratio} = \exp(\beta_k) \]
Jika \(\exp(\beta_k) > 1\), setiap unit peningkatan \(x_k\) meningkatkan odds berada di kategori yang lebih tinggi sebesar \(\exp(\beta_k)\) kali, dengan variabel lain konstan.
Jika \(\exp(\beta_k) < 1\), setiap unit peningkatan \(x_k\) mengurangi odds berada di kategori yang lebih tinggi sebesar \(\exp(\beta_k)\) kali.
Jika \(\exp(\beta_k) = 1\), \(x_k\) tidak memengaruhi odds secara signifikan.
Contoh Interpretasi
Misalkan \(\beta_1 = 0.5\) untuk variabel \(x_1\):
Log-odds: Setiap unit peningkatan \(x_1\) meningkatkan log-odds berada di kategori yang lebih rendah sebesar 0.5 (karena tanda negatif pada model, ini berarti peluang ke kategori lebih tinggi meningkat).
Odds Ratio: \(\exp(0.5) \approx 1.649\). Artinya, setiap unit peningkatan \(x_1\) meningkatkan odds berada di kategori yang lebih tinggi sebesar 1.649 kali (atau 64.9% lebih besar), dengan variabel lain konstan.
Catatan
Interpretasi ini bergantung pada asumsi proporsional odds, di mana efek \(\beta_k\) konstan di semua ambang batas kategori.
Koefisien hanya bermakna jika signifikan secara statistik (misalnya, p-value < 0.05).
Asumsi paralelisme, atau sering disebut asumsi proportional odds, adalah asumsi kunci dalam regresi logistik ordinal, khususnya pada model Cumulative Logit. Asumsi ini memastikan bahwa efek variabel independen terhadap log-odds konsisten di semua ambang batas kategori.
Makna Asumsi Paralelisme
Konsistensi Efek: Efek variabel independen \(x_k\) pada log-odds tidak berubah di seluruh kategori. Dengan kata lain, rasio odds untuk setiap unit perubahan \(x_k\) adalah sama, terlepas dari ambang batas kategori yang dibandingkan (misalnya, \(P(Y \leq 1)\) vs \(P(Y > 1)\), atau \(P(Y \leq 2)\) vs \(P(Y > 2)\)).
Paralelisme Garis Logit: Jika digambarkan, garis logit untuk setiap ambang batas \(j\) akan sejajar, hanya bergeser berdasarkan nilai \(\theta_j\).
Uji Asumsi
Asumsi ini dapat diuji menggunakan uji statistik seperti uji Brant atau uji skor (score test). Jika asumsi dilanggar:
Koefisien \(\beta_k\) akan berbeda untuk setiap ambang batas, sehingga model Cumulative Logit tidak lagi sesuai.
Alternatif seperti model partial proportional odds atau regresi logistik multinomial dapat dipertimbangkan.
Implikasi jika Asumsi Dilanggar
Jika asumsi paralelisme tidak terpenuhi, hasil model dapat bias dan interpretasi koefisien menjadi tidak akurat.
Model akan gagal menangkap variasi efek variabel independen di berbagai kategori, yang dapat mengurangi akurasi prediksi.
Pengujian Asumsi Paralelisme
Untuk memeriksa validitas asumsi, dapat digunakan:
Likelihood Ratio Test antara model proportional dan non-proportional
Brant Test (paket brant di R)
Estimasi parameter dalam regresi logistik ordinal, khususnya pada model Cumulative Logit, dilakukan untuk menemukan nilai parameter yang paling sesuai dengan data yang diamati. Proses ini berfokus pada estimasi ambang batas (thresholds) dan koefisien regresi.
Metode Estimasi
Parameter diestimasi menggunakan metode Maximum Likelihood Estimation (MLE), dengan langkah-langkah berikut:
Fungsi Likelihood: Fungsi likelihood \(L(\theta, \beta)\) didefinisikan sebagai probabilitas data yang diamati diberikan parameter: \[ L(\theta, \beta) = \prod_{i=1}^n P(Y_i | \mathbf{x}_i, \theta, \beta) \] di mana \(P(Y_i | \mathbf{x}_i, \theta, \beta)\) adalah probabilitas kumulatif berdasarkan model.
Log-Likelihood: Untuk mempermudah optimasi, digunakan log-likelihood: \[ \ell(\theta, \beta) = \sum_{i=1}^n \log P(Y_i | \mathbf{x}_i, \theta, \beta) \]
Optimasi: Nilai \(\theta_j\) dan \(\beta_k\) yang memaksimalkan \(\ell(\theta, \beta)\) dicari menggunakan algoritma iteratif seperti Newton-Raphson atau metode gradien. Proses ini berulang hingga konvergensi, yaitu ketika perubahan parameter menjadi sangat kecil.
Sifat Estimator
Konsistensi: Estimator MLE akan mendekati nilai parameter sebenarnya seiring bertambahnya ukuran sampel.
Efisiensi: Dalam kondisi tertentu, MLE memberikan variansi terkecil di antara estimator yang tidak bias.
Asimtotik Normal: Untuk sampel besar, distribusi estimator mendekati distribusi normal, yang memungkinkan perhitungan interval kepercayaan dan uji signifikansi.
Variansi dan Uji Signifikansi
Variansi parameter diestimasi dari matriks informasi Fisher, yang merupakan invers dari matriks Hessian negatif dari log-likelihood. Ini digunakan untuk menghitung standar error, yang kemudian digunakan untuk uji hipotesis (misalnya, uji Wald) guna menentukan signifikansi parameter.
Sebuah perusahaan transportasi online ingin menganalisis faktor-faktor yang memengaruhi tingkat kepuasan pelanggan (CustomerSatisfaction) terhadap layanan pengiriman. Tingkat kepuasan diukur dalam skala ordinal: 1 (Tidak Puas), 2 (Cukup), dan 3 (Puas), berdasarkan durasi pengiriman (DeliveryTime dalam jam). Tujuan analisis adalah menggunakan Cumulative Logit Model untuk memodelkan hubungan antara DeliveryTime dan tingkat kepuasan, serta menentukan apakah durasi pengiriman memiliki pengaruh signifikan terhadap kepuasan pelanggan.
Simulasi Data
set.seed(777)
n <- 200
DeliveryTime <- round(runif(n, 1, 10)) # Durasi pengiriman dalam jam (1-10 jam)
CustomerSatisfaction <- cut(8 - 0.7 * DeliveryTime + rnorm(n, sd = 1),
breaks = c(-Inf, 4.5, 6.5, Inf),
labels = c("Tidak Puas", "Cukup", "Puas"),
ordered_result = TRUE)
df <- data.frame(CustomerSatisfaction, DeliveryTime)
head(df)
## CustomerSatisfaction DeliveryTime
## 1 Tidak Puas 7
## 2 Cukup 5
## 3 Cukup 4
## 4 Tidak Puas 10
## 5 Tidak Puas 7
## 6 Puas 1
model_ord <- polr(CustomerSatisfaction ~ DeliveryTime, data = df, Hess = TRUE)
summary(model_ord)
## Call:
## polr(formula = CustomerSatisfaction ~ DeliveryTime, data = df,
## Hess = TRUE)
##
## Coefficients:
## Value Std. Error t value
## DeliveryTime -1.129 0.1224 -9.224
##
## Intercepts:
## Value Std. Error t value
## Tidak Puas|Cukup -5.9655 0.6628 -9.0007
## Cukup|Puas -2.5692 0.4434 -5.7948
##
## Residual Deviance: 221.6775
## AIC: 227.6775
Model cumulative logit yang terbentuk adalah:
\[ \log \left( \frac{P(y \leq j)}{P(y > j)} \right) = \theta_j + \beta x \]
dengan:
j = 1 untuk batas antara kategori 1 (Tidak Puas) dan 2 (Cukup)
j = 2 untuk batas antara kategori 2 (Cukup) dan 3 (Puas)
Diperoleh dua model kumulatif logit:
Untuk j = 1:
\[ \log \left( \frac{P(y \leq 1)}{P(y > 1)} \right) = -5.9655 - 1.129 x \]
Untuk j = 2:
\[ \log \left( \frac{P(y \leq 2)}{P(y > 2)} \right) = -2.5692 - 1.129 x \]
dimana:
\(y\) = CustomerSatisfaction (1 = Tidak Puas, 2 = Cukup, 3 = Puas)
\(x\) = DeliveryTime
Penjelasan
\(\theta_j\) adalah ambang batas (intercepts) yang diperoleh dari output: -5.9655 untuk “Tidak Puas|Cukup” dan -2.5692 untuk “Cukup|Puas”.
\(\beta\) untuk DeliveryTime adalah -1.129, yang menunjukkan efek negatif terhadap log-odds kumulatif, sesuai dengan konvensi model Cumulative Logit.
Tanda negatif pada koefisien menunjukkan bahwa semakin lama DeliveryTime, semakin kecil peluang pelanggan berada di kategori kepuasan yang lebih tinggi (dari “Puas” ke “Tidak Puas”).
Model ini diasumsikan memenuhi asumsi paralelisme, di mana koefisien -1.129 konsisten di semua ambang batas.
Hipotesis
Hipotesis Nol (H₀): Koefisien regresi (β) sama untuk semua kategori cutoff.
Hipotesis Alternatif (H₁): Setidaknya ada satu koefisien regresi (β) yang berbeda pada satu atau lebih kategori cutoff.
Taraf Signifikansi
α = 5%
Statistik Uji
Statistik uji Likelihood Ratio Test (LRT) dihitung dengan rumus: \[ G^2 = -2 \left[ \log L_{\text{proportional}} - \log L_{\text{non-proportional}} \right] \]
dimana:
\(\log L_{\text{proportional}}\) adalah log likelihood model dengan asumsi proportional odds
\(\log L_{\text{non-proportional}}\) adalah log likelihood model tanpa asumsi proportional odds
Perhitungan dengan R
# Model multinomial (tanpa asumsi proportional odds)
model_multinom <- multinom(CustomerSatisfaction ~ DeliveryTime, data = df)
## # weights: 9 (4 variable)
## initial value 219.722458
## iter 10 value 110.156904
## final value 110.154910
## converged
# Log likelihood dari kedua model
logLik_ord <- logLik(model_ord)
logLik_multinom <- logLik(model_multinom)
# Hitung statistik uji LRT
LRT_stat <- -2 * (as.numeric(logLik_ord) - as.numeric(logLik_multinom))
# Hitung derajat bebas (selisih jumlah parameter)
df_LRT <- attr(logLik_multinom, "df") - attr(logLik_ord, "df")
# Hitung p-value
p_value <- pchisq(LRT_stat, df = df_LRT, lower.tail = FALSE)
list(
LRT_Statistic = LRT_stat,
df = df_LRT,
p_value = p_value
)
## $LRT_Statistic
## [1] 1.367695
##
## $df
## [1] 1
##
## $p_value
## [1] 0.2422082
Kriteria Uji
Tolak H0 jika p-value < α
Keputusan
Karena p-value (0.2422) > α (0.05), maka Terima H₀
Kesimpulan
Berdasarkan taraf signifikansi 5%, dapat disimpulkan bahwa model_ord memiliki koefisien regresi (β) sama untuk semua kategori cutoff. Sehingga, asumsi model regresi logistik ordinal sudah terpenuhi.
Perhitungan P-Value
ctable <- coef(summary(model_ord))
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
## DeliveryTime -1.129096 0.1224085 -9.224002 0
## Tidak Puas|Cukup -5.965477 0.6627820 -9.000663 0
## Cukup|Puas -2.569232 0.4433677 -5.794811 0
DeliveryTime (-1.129096, Std. Error = 0.1224085, t value = -9.224002, p-value = 0)
Koefisien: Nilai -1.129096 menunjukkan bahwa setiap kenaikan 1 jam dalam DeliveryTime mengurangi log-odds kumulatif kepuasan pelanggan sebesar 1.129096, dengan asumsi variabel lain konstan. Tanda negatif menunjukkan bahwa waktu pengiriman yang lebih lama menurunkan peluang berada di kategori kepuasan yang lebih tinggi (dari “Puas” ke “Tidak Puas”).
Odds Ratio: Dieksponensialkan, \(\exp(-1.129096) \approx 0.323\). Artinya, setiap kenaikan 1 jam dalam DeliveryTime mengurangi odds berada di kategori kepuasan yang lebih tinggi sebesar 67.7% (1 - 0.323), atau odds menjadi sekitar 32.3% dari odds sebelumnya.
Signifikansi: Nilai t = -9.224002 dengan p-value = 0 (< 0.05) menunjukkan bahwa DeliveryTime memiliki pengaruh sangat signifikan terhadap tingkat kepuasan pelanggan pada taraf signifikansi 5%.
Tidak Puas|Cukup (-5.965477, Std. Error = 0.6627820, t value = -9.000663, p-value = 0)
Koefisien: Nilai -5.965477 adalah ambang batas (threshold) yang menentukan log-odds kumulatif ketika DeliveryTime = 0 untuk membedakan “Tidak Puas” dari “Cukup” dan “Puas”. Nilai ini signifikan negatif, mencerminkan titik awal model.
Signifikansi: Nilai t = -9.000663 dengan p-value = 0 (< 0.05) menunjukkan bahwa ambang batas ini signifikan secara statistik, mendukung struktur model.
Cukup|Puas (-2.569232, Std. Error = 0.4433677, t value = -5.794811, p-value = 0)
Koefisien: Nilai -2.569232 adalah ambang batas untuk membedakan “Cukup” dari “Puas” ketika DeliveryTime = 0. Nilai ini juga signifikan negatif, menunjukkan pemisahan yang jelas antara kategori tengah dan tinggi.
Signifikansi: Nilai t = -5.794811 dengan p-value = 0 (< 0.05) menegaskan bahwa ambang batas ini signifikan, konsisten dengan asumsi paralelisme.
Perhitungan Probabilitas
# Membuat data baru untuk prediksi
newdata <- data.frame(DeliveryTime = 1:10)
# Menghitung probabilitas untuk setiap kategori
probabilities <- predict(model_ord, newdata = newdata, type = "probs")
print(probabilities)
## Tidak Puas Cukup Puas
## 1 0.007873244 0.183651140 0.8084756161
## 2 0.023956103 0.398905018 0.5771388786
## 3 0.070555454 0.623268316 0.3061762297
## 4 0.190141363 0.684994555 0.1248640816
## 5 0.420676813 0.535225554 0.0440976329
## 6 0.691917822 0.293385759 0.0146964189
## 7 0.874153921 0.121046626 0.0047994535
## 8 0.955523278 0.042919881 0.0015568410
## 9 0.985173322 0.014322781 0.0005038970
## 10 0.995157576 0.004679446 0.0001629782
Interpretasi
Pola Probabilitas: Probabilitas “Puas” sangat tinggi pada DeliveryTime pendek (80.85% pada 1 jam) dan menurun drastis seiring bertambahnya waktu pengiriman (0.02% pada 10 jam). Sebaliknya, probabilitas “Tidak Puas” meningkat tajam (dari 0.79% pada 1 jam menjadi 99.52% pada 10 jam). “Cukup” mencapai puncak pada DeliveryTime sedang (68.50% pada 4 jam).
Transisi Kategori: Kategori dominan berubah dari “Puas” (1-2 jam), ke “Cukup” (3-4 jam), lalu ke “Tidak Puas” (5-10 jam), menunjukkan hubungan terbalik yang kuat antara waktu pengiriman dan kepuasan pelanggan.
Tabel berikut menunjukkan DeliveryTime dan CustomerSatisfaction dengan peluang tertinggi untuk setiap waktu pengiriman:
| Delivery Time (jam) | Customer Satisfaction (Peluang Tertinggi) |
|---|---|
| 1 | Puas (80.85%) |
| 2 | Puas (57.71%) |
| 3 | Cukup (62.33%) |
| 4 | Cukup (68.50%) |
| 5 | Cukup (53.52%) |
| 6 | Tidak Puas (69.19%) |
| 7 | Tidak Puas (87.42%) |
| 8 | Tidak Puas (95.55%) |
| 9 | Tidak Puas (98.52%) |
| 10 | Tidak Puas (99.52%) |
Kesimpulan
Hubungan Waktu dan Kepuasan: Waktu pengiriman yang pendek (1-2 jam) cenderung menghasilkan kepuasan tinggi (“Puas”), sementara waktu yang lebih lama (≥5 jam) menyebabkan ketidakpuasan (“Tidak Puas”). Rentang 3-5 jam adalah transisi di mana pelanggan cenderung merasa “Cukup”.
Implikasi: Perusahaan transportasi harus menargetkan waktu pengiriman di bawah 3 jam untuk memastikan kepuasan tinggi, karena setelah 4 jam, peluang ketidakpuasan mulai meningkat signifikan.
Goodness-of-Fit (GoF) digunakan untuk menilai seberapa baik model regresi logistik ordinal, seperti Cumulative Logit Model, sesuai dengan data yang diamati. GoF membantu mengevaluasi apakah model cukup menjelaskan variabilitas dalam data.
Metode Evaluasi
Residual Deviance: Residual Deviance mengukur penyimpangan model dari data. Nilai yang lebih kecil menunjukkan kecocokan yang lebih baik. Dalam output sebelumnya, Residual Deviance = 221.6775, yang dapat dibandingkan dengan model lain.
AIC (Akaike Information Criterion): AIC (227.6775 dari output sebelumnya) mengukur kecocokan model dengan penalti untuk kompleksitas. Model dengan AIC lebih kecil lebih disukai.
Pseudo R-squared: Meskipun tidak langsung setara dengan R-squared pada regresi linier, metrik seperti McFadden’s Pseudo R-squared dapat digunakan untuk mengukur seberapa baik model menjelaskan variabilitas data.
Uji Hosmer-Lemeshow untuk Ordinal: Uji ini membandingkan probabilitas yang diprediksi dengan hasil aktual dalam kelompok-kelompok. p-value > 0.05 menunjukkan model sesuai dengan data.
Kesimpulan
Jika Residual Deviance dan AIC relatif kecil, model dianggap cukup baik. Namun, GoF juga harus dibandingkan dengan model alternatif (misalnya, model tanpa prediktor atau model multinomial).
Ketika asumsi Proportional Odds dalam regresi logistik ordinal (seperti Cumulative Logit Model) tidak terpenuhi atau model tidak cukup menjelaskan data, alternatif model ordinal dapat digunakan. Berikut adalah beberapa alternatif yang umum digunakan.
1. Partial Proportional Odds Model
Konsep: Model ini melonggarkan asumsi Proportional Odds untuk variabel tertentu. Koefisien \(\beta_k\) dapat bervariasi di beberapa ambang batas, sementara tetap mempertahankan sifat ordinal.
Penerapan: Digunakan ketika uji Brant menunjukkan pelanggaran asumsi untuk satu atau lebih prediktor (misalnya, DeliveryTime memiliki efek berbeda di “Tidak Puas|Cukup” vs “Cukup|Puas”).
Keunggulan: Lebih fleksibel dibandingkan model standar, memungkinkan interpretasi yang lebih akurat untuk variabel yang tidak memenuhi paralelisme.
Contoh Sintaks (R): Paket MASS atau
ordinal dapat digunakan dengan spesifikasi tambahan untuk
variabel non-proporsional.
2. Generalized Ordered Logit Model
Konsep: Model ini menghilangkan asumsi Proportional Odds sepenuhnya, memperbolehkan koefisien \(\beta_k\) bervariasi untuk setiap ambang batas. Setiap transisi kategori (misalnya, “Tidak Puas” ke “Cukup” dan “Cukup” ke “Puas”) dimodelkan secara terpisah.
Penerapan: Cocok untuk data dengan efek prediktor yang berbeda secara signifikan di berbagai tingkat ordinal, seperti kepuasan pelanggan dengan faktor tambahan (misalnya, biaya pengiriman).
Keunggulan: Memberikan fleksibilitas penuh, tetapi meningkatkan kompleksitas dan jumlah parameter yang perlu diestimasi.
Contoh Sintaks (R): Paket ordinal
dengan fungsi clm atau vglm dari
VGAM.
3. Continuation Ratio Model
Konsep: Model ini memodelkan rasio peluang transisi berturut-turut (misalnya, \(P(Y = j | Y \geq j)\) vs \(P(Y > j | Y \geq j)\)) untuk setiap kategori. Ini cocok untuk data dengan urutan yang jelas tetapi tidak memerlukan asumsi paralelisme.
Penerapan: Berguna dalam kasus di mana keputusan bertahap (misalnya, dari “Tidak Puas” ke “Cukup” kemudian ke “Puas”) lebih relevan daripada kumulasi.
Keunggulan: Mengatasi pelanggaran Proportional Odds dengan pendekatan yang lebih alami untuk proses bertahap.
Contoh Sintaks (R): Dapat diimplementasikan
dengan paket VGAM menggunakan fungsi
vglm.
4. Stereotype Logit Model
Konsep: Model ini mengasumsikan bahwa kategori ordinal memiliki pola tertentu yang dapat dimodelkan dengan koefisien yang berbeda untuk setiap kategori, tetapi tetap mempertahankan struktur ordinal dengan parameter skala.
Penerapan: Digunakan ketika hubungan antara prediktor dan kategori tidak linier atau ketika asumsi Proportional Odds tidak sesuai.
Keunggulan: Menggabungkan fleksibilitas dengan interpretasi yang tetap berbasis ordinal.
Contoh Sintaks (R): Paket ordinal
atau gnm dapat digunakan.
Pertimbangan Pemilihan
Uji Asumsi: Alternatif ini dipilih jika uji Brant atau skor menunjukkan pelanggaran Proportional Odds (p-value < 0.05).
Kompleksitas Data: Model yang lebih fleksibel (seperti Generalized Ordered Logit) cocok untuk data dengan pola kompleks, tetapi memerlukan sampel yang lebih besar.
Interpretasi: Model sederhana seperti Partial Proportional Odds sering lebih mudah diinterpretasikan dibandingkan model yang sepenuhnya bebas asumsi.
Alternatif model ordinal menyediakan solusi ketika Cumulative Logit Model gagal memenuhi asumsi atau tidak cukup akurat. Pemilihan model tergantung pada karakteristik data dan tujuan analisis, dengan evaluasi GoF sebagai panduan utama.
Analisis data kategorik merupakan elemen penting dalam statistika terapan karena banyak fenomena di kehidupan sehari-hari, seperti jenis kelamin, status pekerjaan, tingkat pendidikan, preferensi konsumen, atau diagnosis medis, menghasilkan data dalam bentuk kategori. Ada tiga metode utama yang digunakan untuk mengolah data ini: tabel kontingensi, model log-linier, dan regresi logistik, dengan masing-masing memiliki kelebihan dan kekurangan yang bergantung pada tujuan analisis dan karakteristik data.
Pendekatan Analisis
Tabel Kontingensi: Metode ini dimanfaatkan sebagai langkah awal untuk mengeksplorasi hubungan antara variabel kategorik. Sebagai contoh, dalam penelitian mengenai pengaruh obat terhadap serangan jantung, tabel kontingensi dapat menampilkan jumlah pasien yang mengalami atau tidak mengalami serangan jantung berdasarkan jenis obat yang digunakan. Tabel ini memungkinkan pengamatan pola awal dan perhitungan ukuran asosiasi seperti odds ratio, risk ratio, atau statistik chi-square untuk menguji apakah variabel-variabel tersebut saling independen.
Model Log-Linier: Sebagai bagian dari Generalized Linear Model (GLM), model log-linier digunakan untuk memodelkan frekuensi sel dalam tabel kontingensi dengan asumsi distribusi Poisson. Model ini tidak membedakan mana variabel dependen atau independen, sehingga sangat sesuai untuk mempelajari struktur asosiasi atau independensi antar variabel. Sebagai ilustrasi, dalam tabel tiga arah (misalnya, jenis kelamin, kebiasaan merokok, dan penyakit paru), model ini dapat menentukan apakah interaksi dua variabel sudah cukup untuk menjelaskan data atau memerlukan interaksi tiga arah, dengan penyesuaian model dilakukan melalui likelihood ratio test.
Regresi Logistik: Metode ini menjadi pilihan utama ketika ada satu variabel kategorik yang secara eksplisit ditetapkan sebagai variabel dependen (contohnya, kejadian penyakit: ya atau tidak) dan satu atau lebih variabel kategorik atau numerik sebagai prediktor. Regresi logistik memodelkan logit dari probabilitas kejadian (yaitu log odds) dan sangat efektif dalam studi observasional atau eksperimental untuk menjelaskan atau memprediksi peluang suatu hasil. Model ini juga memiliki variasi, seperti regresi logistik multinomial dan ordinal, untuk menangani lebih dari dua kategori.
Tabel Perbandingan Ketiga Pendekatan
| Aspek | Tabel Kontingensi | Model Log-Linier | Regresi Logistik |
|---|---|---|---|
| Tujuan | Deskripsi frekuensi gabungan antar variabel kategorik | Pengujian asosiasi dan struktur hubungan antar variabel | Prediksi probabilitas untuk variabel dependen kategorik |
| Variabel Dependen | Tidak ada (deskriptif saja) | Tidak ada (semua variabel simetris) | Ada (satu variabel dependen eksplisit) |
| Distribusi Variabel | Tidak diasumsikan | Poisson (frekuensi sel) | Binomial (probabilitas kejadian) |
| Bentuk Model | Tidak ada (hanya tabel frekuensi) | GLM: log(μ) ~ efek (Generalized Linear Model) | GLM: logit(p) ~ prediktor (Generalized Linear Model) |
| Cocok untuk | Eksplorasi awal dan analisis deskriptif | Tabel dengan > 2 variabel, analisis asosiasi | Studi prediktif, analisis hubungan kausal |
| Jenis Analisis | Statistik deskriptif (chi-square, odds ratio) | Eksploratif (likelihood ratio test, interaksi) | Prediktif (koefisien, odds ratio, probabilitas) |
| Kelebihan | Sederhana, mudah dipahami, tidak memerlukan asumsi | Fleksibel untuk tabel multiway, menangkap interaksi | Dapat mengendalikan banyak prediktor, prediktif kuat |
| Kelemahan | Tidak dapat mengendalikan efek konfounder | Tidak cocok untuk prediksi langsung | Memerlukan asumsi distribusi dan dependensi jelas |
| Contoh Penggunaan | Hubungan jenis kelamin dan status pernikahan | Asosiasi jenis kelamin, merokok, dan penyakit | Prediksi risiko penyakit berdasarkan usia dan gaya hidup |
| Uji Statistik Utama | Chi-square test of independence | Likelihood ratio test, deviance | Wald test, z-test, likelihood ratio test |
| Interpretasi Hasil | Frekuensi dan persentase, ukuran asosiasi | Koefisien efek utama dan interaksi | Koefisien logit, odds ratio, probabilitas prediksi |
| Kebutuhan Data | Data kategorik dalam bentuk frekuensi | Data dalam tabel kontingensi multi-dimensi | Data dengan variabel dependen dan prediktor |
| Kompleksitas Model | Rendah (hanya deskriptif) | Sedang (memerlukan spesifikasi model) | Tinggi (memerlukan estimasi parameter) |
Catatan: Pemilihan pendekatan harus disesuaikan dengan tujuan analisis, struktur data, dan kompleksitas yang diinginkan.
Log-Linear 2 Arah adalah model statistik yang digunakan untuk menganalisis hubungan antara dua variabel kategorik dalam sebuah tabel kontingensi dua arah. Model ini memodelkan frekuensi (jumlah kejadian) pada tiap sel tabel sebagai fungsi logaritma dari efek utama masing-masing variabel dan interaksi di antara keduanya. Dengan model ini, kita bisa mengetahui apakah terdapat asosiasi (hubungan) signifikan antara dua variabel tersebut, ataukah keduanya bersifat independen. Log-linear dua arah sangat bermanfaat sebagai dasar untuk menguji hipotesis independensi dan memahami struktur hubungan sederhana antara dua variabel kategorik sebelum melangkah ke model yang lebih kompleks.
Sebuah studi klinis dilakukan untuk mengevaluasi efektivitas vaksin influenza dalam mencegah infeksi influenza pada kelompok lansia. Pasien dibagi menjadi dua kelompok: satu kelompok menerima vaksin influenza (Vaksin), dan kelompok lain menerima plasebo (Plasebo). Setelah periode pengamatan, dicatat apakah pasien terinfeksi influenza (Ya) atau tidak (Tidak). Tujuan analisis adalah untuk mengetahui apakah vaksin influenza efektif dalam mengurangi risiko infeksi.
Simulasi data
data <- matrix(c(15, 35, 40, 60), nrow = 2,
dimnames = list(Vaksinasi = c("Vaksin", "Plasebo"),
Infeksi = c("Ya", "Tidak")))
data
## Infeksi
## Vaksinasi Ya Tidak
## Vaksin 15 40
## Plasebo 35 60
Tabel kontingensi digunakan untuk memberikan gambaran umum data dan tidak melibatkan pemodelan probabilitas.
Model log-linier adalah pendekatan statistik dalam analisis data kategorik yang digunakan untuk memodelkan logaritma ekspektasi frekuensi sel dalam tabel kontingensi. Model ini merupakan bagian dari Generalized Linear Model (GLM) dengan distribusi Poisson, yang cocok untuk menganalisis hubungan antar variabel kategorik tanpa membedakan variabel dependen dan independen.
Dalam analisis log-linier, model saturasi (saturated model) merupakan bentuk model paling kompleks yang memuat semua efek utama dan seluruh kemungkinan interaksi antar variabel dalam tabel kontingensi. Model ini digunakan ketika ingin memaksimalkan kesesuaian model terhadap data, tanpa menyisakan derajat kebebasan.
Bentuk umum model saturated yaitu:
\[ \log(\mu_{ij}) = \lambda + \lambda_i^A + \lambda_j^B + \lambda_{ij}^{AB} \]
di mana:
\(\mu_{ij}\) = ekspektasi frekuensi sel ke-\((i, j)\)
\(\lambda\) = intersep
\(\lambda_i^A, \lambda_j^B\) = efek utama masing-masing variabel
\(\lambda_{ij}^{AB}\) = efek interaksi dua arah
Karakteristik Utama
Cocok untuk Menyelidiki Asosiasi dan Independensi: Model ini digunakan untuk menguji apakah variabel-variabel dalam tabel kontingensi memiliki hubungan asosiatif atau independen.
Tidak Membedakan Respon dan Penjelas: Berbeda dengan regresi logistik, semua variabel diperlakukan secara simetris.
Diterapkan pada Tabel Multi-Dimensi: Umumnya digunakan untuk tabel dua arah, tiga arah, atau lebih (misalnya, 2 arah, 3 arah, dst.).
Perhitungan Studi Kasus
library(MASS)
model_saturated <- loglm(~ Vaksinasi * Infeksi, data = data)
model_saturated
## Call:
## loglm(formula = ~Vaksinasi * Infeksi, data = data)
##
## Statistics:
## X^2 df P(> X^2)
## Likelihood Ratio 0 0 1
## Pearson 0 0 1
Interpretasi
Nilai X² = 0 dan df = 0: Karena model memuat semua interaksi (model penuh), tidak ada derajat kebebasan yang tersisa untuk menguji goodness-of-fit. Artinya, model memprediksi data dengan sempurna, jadi tidak ada penyimpangan yang bisa dianalisis. Dalam konteks ini, tidak ada informasi yang bisa ditarik tentang hubungan antara vaksinasi dan infeksi, karena model sudah 100% mengikuti data yang diberikan.
p-value = 1 : Ini menyatakan bahwa tidak ada perbedaan antara data yang diamati dan yang diprediksi oleh model (karena memang model memuat seluruh informasi data). Namun, p-value ini tidak bisa digunakan untuk menguji signifikansi hubungan, karena model terlalu sempurna.
Model log-linier merupakan salah satu pendekatan dalam analisis data kategorik, khususnya untuk data yang disusun dalam bentuk tabel kontingensi. Model ini digunakan untuk mempelajari hubungan antar variabel kategorik dengan memodelkan frekuensi sel sebagai fungsi dari efek utama dan interaksi antar variabel. Salah satu bentuk dasar dari model log-linier adalah model independen, yang mengasumsikan bahwa tidak ada interaksi antara variabel-variabel dalam tabel.
Secara umum, model log-linier diturunkan dari Generalized Linear Model (GLM) dengan asumsi distribusi Poisson untuk data hitungan. Untuk dua variabel kategorik, misalnya A dan B;
Model log-linier independen dapat dituliskan dalam bentuk:
\[ \log(\mu_{ij}) = \lambda + \lambda_i^A + \lambda_j^B \]
dimana:
\(\mu_{ij}\) = nilai harapan (ekspektasi) dari frekuensi sel ke-\(i,j\),
\(\lambda\) = konstanta (intersep),
\(\lambda_i^A\) = efek utama dari level ke-\(i\) pada variabel A,
\(\lambda_j^B\) = efek utama dari level ke-\(j\) pada variabel B.
Model ini tidak mencakup komponen interaksi antara A dan B, sehingga mengimplikasikan bahwa variabel A dan B bersifat saling bebas (independen) dalam kaitannya terhadap distribusi frekuensi gabungan. Dalam konteks ini, jika model independen cocok terhadap data, maka tidak terdapat asosiasi yang signifikan antara kedua variabel.
Uji kecocokan model independen dilakukan dengan membandingkan frekuensi yang diamati dengan frekuensi yang diprediksi oleh model. Statistik yang umum digunakan adalah likelihood ratio chi-square atau Pearson chi-square, dengan hipotesis nol bahwa model independen sesuai dengan data. P-value yang kecil (misalnya < 0.05) menunjukkan bahwa model independen tidak sesuai, artinya terdapat hubungan atau ketergantungan antara variabel-variabel tersebut.
Model independen sangat penting sebagai dasar awal dalam analisis log-linier. Jika model ini tidak cocok, maka dapat dipertimbangkan model yang lebih kompleks, seperti model dengan interaksi dua arah atau tiga arah, tergantung pada jumlah variabel dan tujuan analisis.
Perhitungan Studi Kasus
model_indep <- loglm(~ Vaksinasi + Infeksi, data = data)
summary(model_indep)
## Formula:
## ~Vaksinasi + Infeksi
## attr(,"variables")
## list(Vaksinasi, Infeksi)
## attr(,"factors")
## Vaksinasi Infeksi
## Vaksinasi 1 0
## Infeksi 0 1
## attr(,"term.labels")
## [1] "Vaksinasi" "Infeksi"
## 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 1.458565 1 0.2271586
## Pearson 1.435407 1 0.2308841
Interpretasi
Independensi Variabel: Berdasarkan kedua uji statistik (Likelihood Ratio dan Pearson), p-value > 0.05, sehingga kita menyimpulkan bahwa tidak ada bukti asosiasi yang signifikan antara status vaksinasi dan kejadian infeksi influenza dalam data ini. Dengan kata lain, vaksin influenza dalam studi ini tidak menunjukkan efek yang signifikan dalam mencegah infeksi (berdasarkan data simulasi).
Kecocokan Model: Model independen (tanpa interaksi) cukup menjelaskan data, karena tidak ada penyimpangan yang signifikan dari asumsi independensi.
Implikasi Praktis: Hasil ini menunjukkan bahwa vaksin influenza yang diuji mungkin tidak efektif dalam mencegah infeksi, atau data yang ada tidak cukup kuat untuk menunjukkan efeknya. Penelitian lebih lanjut dengan sampel yang lebih besar atau variabel tambahan (misalnya, usia pasien atau dosis vaksin) dapat dilakukan untuk analisis yang lebih mendalam.
Odds Ratio (OR) adalah ukuran asosiasi yang digunakan dalam analisis data kategorik, khususnya pada tabel kontingensi 2x2, untuk mengukur kekuatan hubungan antara dua variabel biner. OR membandingkan odds (rasio peluang) kejadian suatu outcome dalam satu kelompok dibandingkan dengan kelompok lain. Rumus odds ratio untuk tabel 2x2 diberikan sebagai berikut:
\[ OR = \frac{n_{11} n_{22}}{n_{12} n_{21}} \]
dimana:
\(n_{11}\): Frekuensi untuk kelompok pertama dengan outcome pertama (misalnya, Vaksin dan Ya).
\(n_{12}\): Frekuensi untuk kelompok pertama dengan outcome kedua (misalnya, Vaksin dan Tidak).
\(n_{21}\): Frekuensi untuk kelompok kedua dengan outcome pertama (misalnya, Plasebo dan Ya).
\(n_{22}\): Frekuensi untuk kelompok kedua dengan outcome kedua (misalnya, Plasebo dan Tidak).
Interpretasi Nilai Odds Ratio
OR = 1: Tidak ada asosiasi antara variabel independen dan dependen, menunjukkan bahwa peluang kejadian outcome sama di kedua kelompok.
OR > 1: Asosiasi positif, menunjukkan bahwa peluang kejadian outcome lebih tinggi di kelompok pertama dibandingkan kelompok kedua.
OR < 1: Asosiasi negatif, menunjukkan bahwa peluang kejadian outcome lebih rendah di kelompok pertama dibandingkan kelompok kedua.
Perhitungan dengan R
# Ekstrak nilai dari tabel
n11 <- data[1, 1] # Vaksin dan Ya
n12 <- data[1, 2] # Vaksin dan Tidak
n21 <- data[2, 1] # Plasebo dan Ya
n22 <- data[2, 2] # Plasebo dan Tidak
# Hitung odds untuk masing-masing kelompok
odds_vaksin <- n11 / n12
odds_plasebo <- n21 / n22
# Hitung odds ratio
or <- (n11 * n22) / (n12 * n21)
results <- list(
"Odds Vaksin" = odds_vaksin,
"Odds Plasebo" = odds_plasebo,
"Odds Ratio" = or
)
results
## $`Odds Vaksin`
## [1] 0.375
##
## $`Odds Plasebo`
## [1] 0.5833333
##
## $`Odds Ratio`
## [1] 0.6428571
Interpretasi
Nilai OR: Odds Ratio sebesar 0.6428571 menunjukkan adanya asosiasi negatif antara variabel Vaksinasi (Vaksin atau Plasebo) dan Infeksi (Ya atau Tidak).
Makna: Nilai OR < 1 berarti peluang terinfeksi influenza pada kelompok yang divaksinasi lebih rendah dibandingkan kelompok plasebo. Secara spesifik, odds terinfeksi pada kelompok Vaksin adalah 64.29% dari odds pada kelompok Plasebo. Dengan kata lain, vaksinasi mengurangi odds infeksi sebesar 35.71% (1 - 0.6428571) dibandingkan plasebo.
Implikasi Praktis: Hasil ini mengindikasikan bahwa vaksin influenza dalam studi ini memiliki efek protektif terhadap infeksi influenza pada kelompok lansia. Namun, untuk menegaskan signifikansi statistik dari asosiasi ini, uji tambahan seperti chi-square atau perhitungan interval kepercayaan untuk OR perlu dilakukan.
Konteks Kasus: Berdasarkan data (Vaksin: 15 Ya, 35 Tidak; Plasebo: 40 Ya, 60 Tidak), vaksin tampaknya efektif dalam mengurangi risiko infeksi, tetapi interpretasi ini harus didukung oleh uji statistik lebih lanjut untuk memastikan hasilnya bukan karena kebetulan.
Dalam konteks model log-linier, khususnya model saturated, estimasi parameter merupakan langkah kunci untuk memastikan bahwa model dapat merepresentasikan data yang diamati sebaik mungkin dengan memanfaatkan semua informasi yang tersedia dalam tabel kontingensi. Model saturated adalah model yang mencakup semua efek utama dan interaksi hingga tingkat tertinggi yang mungkin, sehingga jumlah parameter yang diestimasi sama dengan jumlah sel dalam tabel kontingensi dikurangi satu (akibat adanya batasan identifikasi). Berikut adalah penjelasan terperinci mengenai metode estimasi dalam model saturated.
1. Estimasi Dilakukan dengan Pembatasan Seperti Sum-to-Zero
Konsep Sum-to-Zero: Dalam model saturated, estimasi parameter memerlukan pembatasan untuk menghindari masalah identifikasi (non-uniqueness) karena jumlah parameter yang diestimasi mendekati atau sama dengan jumlah pengamatan. Pembatasan sum-to-zero menyatakan bahwa jumlah efek utama untuk setiap variabel kategorik harus sama dengan nol. Misalnya, untuk variabel \(A\) dengan kategori \(i\), \(\sum_{i} \lambda_i^A = 0\), dan untuk variabel \(B\) dengan kategori \(j\), \(\sum_{j} \lambda_j^B = 0\). Hal ini memastikan bahwa efek relatif antar kategori dapat diinterpretasikan dengan jelas tanpa redundansi.
Tujuan: Pembatasan ini memungkinkan distribusi efek parameter secara merata di seluruh kategori, sehingga model tetap identifikasi dan koefisien yang dihasilkan dapat diinterpretasikan sebagai deviasi dari efek rata-rata. Dalam tabel 2x2, misalnya, efek utama untuk dua level variabel (seperti Vaksin dan Plasebo) akan saling melengkapi untuk mencapai nol, memastikan bahwa perbedaan antara kategori dapat diukur secara konsisten.
Implikasi: Dengan pembatasan sum-to-zero, estimasi parameter menjadi lebih stabil dan memungkinkan perbandingan langsung antara efek utama dan interaksi, yang sangat berguna dalam analisis asosiasi antar variabel.
2. Estimasi Parameter Dilakukan dengan Iterative Proportional Fitting (IPF)
Konsep IPF: Iterative Proportional Fitting (IPF) adalah algoritma iteratif yang digunakan untuk menyesuaikan parameter model log-linier agar frekuensi yang diharapkan sesuai dengan frekuensi yang diamati dalam tabel kontingensi. Proses ini dimulai dengan nilai awal (biasanya frekuensi rata-rata atau nilai default), kemudian secara berulang menyesuaikan frekuensi yang diharapkan untuk setiap sel berdasarkan marginal total yang diamati hingga konvergensi tercapai.
Langkah-langkah IPF:
Inisialisasi frekuensi awal untuk setiap sel berdasarkan distribusi seragam atau estimasi kasar.
Sesuaikan frekuensi yang diharapkan untuk setiap baris agar sesuai dengan total baris yang diamati, dengan mempertahankan proporsi relatif.
Sesuaikan frekuensi yang diharapkan untuk setiap kolom agar sesuai dengan total kolom yang diamati, dengan mempertahankan proporsi dari langkah sebelumnya.
Ulangi langkah 2 dan 3 secara iteratif hingga perbedaan antara frekuensi yang diharapkan dan frekuensi yang diamati menjadi sangat kecil (konvergensi).
Keunggulan IPF: Metode ini sangat efektif untuk tabel dengan dimensi tinggi (misalnya, 3 arah atau lebih) dan memastikan bahwa model saturated menghasilkan frekuensi yang diharapkan yang sesuai dengan data asli. IPF juga fleksibel untuk menangani data yang memiliki sel dengan frekuensi nol atau sangat kecil.
Hubungan dengan Model Saturated: Dalam model saturated, IPF memungkinkan estimasi parameter yang mencakup semua interaksi hingga tingkat maksimum, sehingga model dapat mereplikasi data yang diamati secara sempurna (fit yang sangat baik). Ini berbeda dengan model yang lebih sederhana (misalnya, model independen), yang hanya memasukkan efek utama.
Estimasi Odds Ratio dan Log-Odds: Dalam konteks ini, estimasi odds ratio dan log-odds dapat dihitung dari parameter yang diestimasi. Rumusnya adalah:
\[ \log OR \sim \log\left(\frac{\text{data}[1,1] \cdot \text{data}[2,2]}{\text{data}[1,2] \cdot \text{data}[2,1]}\right) \]
Nilai ini mencerminkan log-odds ratio yang disesuaikan dengan struktur tabel kontingensi, memberikan wawasan tambahan tentang asosiasi antar variabel.
Catatan
Konteks Model Saturated: Model ini sering digunakan sebagai referensi untuk membandingkan model yang lebih sederhana (misalnya, model independen atau model dengan interaksi tertentu) melalui uji likelihood ratio atau statistik deviasi.
Penerapan Praktis: Dalam analisis data seperti studi vaksinasi dan infeksi, estimasi parameter dengan pembatasan sum-to-zero dan IPF memungkinkan peneliti untuk memahami kontribusi masing-masing variabel dan interaksinya terhadap frekuensi yang diamati secara menyeluruh.
Perhitungan dengan R
# Estimasi odds ratio dan log-odds
logOR <- log((data[1,1] * data[2,2]) / (data[1,2] * data[2,1]))
logOR
## [1] -0.4418328
Interpretasi
Nilai log-odds -0.4418328 menunjukkan adanya efek negatif vaksinasi terhadap kejadian infeksi influenza, yang berarti vaksin cenderung mengurangi risiko infeksi dibandingkan plasebo. Interpretasi ini konsisten dengan odds ratio 0.6428571, yang mengindikasikan efektivitas vaksin dalam studi ini. Namun, kepastian lebih lanjut memerlukan analisis signifikansi statistik.
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:
## ~Vaksinasi + Infeksi
## Model 2:
## ~Vaksinasi * Infeksi
##
## Deviance df Delta(Dev) Delta(df) P(> Delta(Dev)
## Model 1 1.458565 1
## Model 2 0.000000 0 1.458565 1 0.22716
## Saturated 0.000000 0 0.000000 0 1.00000
Interpretasi
Independensi Variabel: Berdasarkan p-value = 0.22716 (> 0.05) dari perbandingan Model 1 dan Model 2, tidak ada bukti statistik yang cukup untuk menyatakan adanya asosiasi signifikan antara Vaksinasi dan Infeksi pada taraf signifikansi 5%. Ini konsisten dengan hasil sebelumnya dari model independen (Likelihood Ratio dan Pearson test) yang juga menunjukkan p-value > 0.05.
Kecocokan Model: Model independen (Model 1) sudah cukup menjelaskan data, karena penambahan interaksi dalam Model 2 tidak memberikan perbaikan yang signifikan (deviance turun hanya 1.458565 dengan p-value yang tidak signifikan).
Implikasi Praktis: Dalam konteks studi ini, hasil ini menunjukkan bahwa vaksin influenza tidak memiliki efek yang signifikan dalam mencegah infeksi influenza berdasarkan data yang ada. Namun, hasil ini perlu diinterpretasikan dengan hati-hati karena ukuran sampel atau faktor lain (seperti variabel pengganggu yang tidak dimasukkan dalam model) dapat memengaruhi hasil. Analisis tambahan dengan data yang lebih besar atau model yang lebih kompleks mungkin diperlukan untuk konfirmasi lebih lanjut.
Model log linear tiga arah adalah teknik analisis statistik yang digunakan untuk mengeksplorasi dan menguji hubungan antara tiga variabel kategorik atau nominal dalam sebuah tabel kontingensi tiga dimensi. Model ini merepresentasikan frekuensi harapan setiap sel sebagai fungsi logaritmik dari efek utama tiap variabel dan interaksi di antara mereka, baik interaksi dua arah maupun tiga arah. Dengan model ini, peneliti dapat menentukan apakah ada asosiasi yang signifikan antara kombinasi variabel, serta mengidentifikasi pola interaksi kompleks di antara ketiga variabel. Model log linear tiga arah sangat berguna dalam studi kasus di mana hubungan antar variabel tidak hanya bersifat sederhana, melainkan juga melibatkan efek gabungan dari ketiganya secara simultan.
Model log-linear banyak digunakan untuk menganalisis data kategorik yang disajikan dalam bentuk tabel kontingensi, terutama ketika melibatkan lebih dari dua variabel. Pada kasus tiga variabel kategorik (misal: \(X\), \(Y\), dan \(Z\)), terdapat beberapa bentuk model log-linear yang bisa dipilih, tergantung pada tingkat interaksi yang ingin dimasukkan dalam model. Berikut penjelasan mengenai berbagai alternatif model log-linear tiga arah beserta rumus dan interpretasinya.
Model saturated adalah model paling lengkap karena memuat semua efek utama dan interaksi, termasuk interaksi tiga arah antara ketiga variabel.
\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ij}^{XY} + \lambda_{ik}^{XZ} + \lambda_{jk}^{YZ} + \lambda_{ijk}^{XYZ} \]
Ciri-ciri:
Semua kemungkinan interaksi (efek utama, dua arah, dan tiga arah) dimasukkan.
Sering digunakan sebagai model pembanding, karena pasti cocok sempurna dengan data (fit sempurna).
Tidak menyisakan derajat bebas untuk pengujian goodness-of-fit.
Model ini mengakomodasi semua efek utama dan interaksi dua arah, namun tidak memasukkan interaksi tiga arah.
\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ij}^{XY} + \lambda_{ik}^{XZ} + \lambda_{jk}^{YZ} \]
Ciri-ciri:
Mengasumsikan hubungan antara dua variabel konsisten pada level variabel ketiga.
Cocok jika tidak ditemukan interaksi tiga arah yang signifikan.
Sering digunakan untuk melihat apakah interaksi tiga arah dibutuhkan dalam model.
Pada model ini, dimasukkan efek utama dan beberapa interaksi dua arah saja, tergantung pada variabel kondisi. Ada tiga variasi berdasarkan variabel yang dijadikan kondisi.
\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ij}^{XY} + \lambda_{ik}^{XZ} \]
\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ij}^{XY} + \lambda_{jk}^{YZ} \]
\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ik}^{XZ} + \lambda_{jk}^{YZ} \]
Ciri-ciri:
Model ini mengasumsikan bahwa dua dari tiga variabel saling independen terhadap variabel ketiga, dengan memasukkan hanya satu interaksi dua arah.
\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ij}^{XY} \]
\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ik}^{XZ} \]
\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{jk}^{YZ} \]
Ciri-ciri:
Hanya satu interaksi dua arah yang dimasukkan ke dalam model.
Mengasumsikan dua variabel berhubungan, tetapi tidak tergantung pada variabel ketiga.
Ini adalah model paling sederhana, yang hanya memasukkan efek utama dari masing-masing variabel tanpa memasukkan interaksi apapun.
\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z \]
Ciri-ciri:
Mengasumsikan semua variabel saling independen.
Sering digunakan sebagai model dasar untuk membandingkan dengan model lain yang lebih kompleks.
Pemilihan Model
Pemilihan bentuk model log-linear tiga arah bergantung pada tujuan analisis dan hubungan antar variabel yang ingin diuji. Model saturated memberikan fleksibilitas penuh namun sering overfitting, sementara model mutual independence sangat restriktif. Untuk aplikasi praktis, uji kecocokan model sangat penting untuk menentukan model mana yang paling sesuai dengan data yang dimiliki.
Model log-linear digunakan untuk menganalisis hubungan antara tiga peubah kategorik (misal: X, Y, dan Z) dalam sebuah tabel kontingensi tiga arah. Salah satu fokus utamanya adalah mengidentifikasi dan menguji ada atau tidaknya interaksi antar variabel.
Jenis Interaksi
Model log-linear tiga arah memiliki berbagai jenis interaksi, diantaranya:
Interaksi tiga arah (XYZ): Adanya ketergantungan simultan antara X, Y, dan Z.
Interaksi dua arah (XY, XZ, YZ): Ketergantungan antara dua variabel, mengabaikan variabel ketiga.
Efek utama (X, Y, Z): Pengaruh masing-masing variabel secara individual.
Tahapan Pengujian Interaksi
Pengujian dilakukan secara bertingkat, dimulai dari interaksi tertinggi.
1. Pengujian Interaksi Tiga Arah (XYZ)
Tujuan: Menilai apakah ada interaksi simultan antara X, Y, dan Z.
Langkah:
Bandingkan model saturated dengan model homogeneous.
Uji deviance (\(G^2\)) atau Pearson chi-square antara kedua model.
Jika tidak signifikan, artinya interaksi tiga arah tidak perlu dimasukkan.
2. Pengujian Interaksi Dua Arah (XY, XZ, YZ)
Tujuan: Menilai interaksi antara pasangan variabel setelah interaksi tiga arah dianggap tidak signifikan.
Langkah:
Bandingkan model homogeneous dengan model conditional independence untuk masing-masing interaksi dua arah.
Lanjutkan pengujian ke model joint independence jika perlu.
Bandingkan model joint independence dengan model tanpa interaksi untuk melihat apakah efek utama saja cukup.
3. Kriteria Pengujian
Gunakan uji deviance (\(G^2\)):
\(G^2 = 2 \sum O_{ijk} \log \left(\frac{O_{ijk}}{E_{ijk}}\right)\)
Nilai p-value dari deviance dibandingkan dengan derajat kebebasan selisih model.
Model diterima jika p-value tidak signifikan (\(p > 0.05\)).
Ilustrasi Alur Pengujian
Catatan: Jika pada suatu tahap model ditolak, pengujian bisa dihentikan di tahap tersebut. Model yang diambil adalah model yang memiliki interaksi signifikan.
Studi kasus ini menggunakan data subset dari dataset
UCBAdmissions yang tersedia di R, memfokuskan hanya pada
tiga departemen pertama (A, B, dan C) untuk menyederhanakan analisis.
Dataset ini mencatat frekuensi penerimaan mahasiswa berdasarkan tiga
variabel kategorikal: status penerimaan (Admit), jenis
kelamin (Gender), dan departemen (Dept).
Tujuan analisis ini adalah untuk mengeksplorasi interaksi antara ketiga
variabel tersebut menggunakan model log-linear tiga arah.
Data
# Muat dataset
data("UCBAdmissions")
# Subset hanya departemen A, B, dan C
UCB_small <- UCBAdmissions[ , , c("A", "B", "C")]
# Konversi ke data frame
df_ucb <- as.data.frame(UCB_small)
# Tampilkan tabel kontingensi 3 arah
ftable(UCB_small)
## Dept A B C
## Admit Gender
## Admitted Male 512 353 120
## Female 89 17 202
## Rejected Male 313 207 205
## Female 19 8 391
Penentuan Kategori Referensi
# Konversi variabel menjadi faktor
df_ucb$Admit <- factor(df_ucb$Admit)
df_ucb$Gender <- factor(df_ucb$Gender)
df_ucb$Dept <- factor(df_ucb$Dept)
# Tentukan kategori referensi
df_ucb$Admit <- relevel(df_ucb$Admit, ref = "Admitted")
df_ucb$Gender <- relevel(df_ucb$Gender, ref = "Male")
df_ucb$Dept <- relevel(df_ucb$Dept, ref = "A")
# Tampilkan data yang sudah di-relevel
head(df_ucb)
## Admit Gender Dept Freq
## 1 Admitted Male A 512
## 2 Rejected Male A 313
## 3 Admitted Female A 89
## 4 Rejected Female A 19
## 5 Admitted Male B 353
## 6 Rejected Male B 207
Dalam kasus ini, kategori referensi yang ditetapkan adalah:
Status Penerimaan (Admit): Admitted
Jenis Kelamin (Gender): Male
Departemen (Dept): A
Kategori referensi ini akan menjadi baseline untuk interpretasi koefisien model log-linear.
Model log-linear saturated memodelkan semua efek utama, interaksi dua
arah, dan interaksi tiga arah. Model ini memodelkan hubungan antara
status penerimaan (Admit), jenis kelamin
(Gender), dan departemen (Dept) terhadap
frekuensi responden. Model saturated memiliki bentuk persamaan:
\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ij}^{XY} + \lambda_{ik}^{XZ} + \lambda_{jk}^{YZ} + \lambda_{ijk}^{XYZ} \]
Pemodelan Dengan R
# Model saturated (interaksi penuh)
model_saturated <- glm(Freq ~ Admit + Gender + Dept +
Admit:Gender + Admit:Dept + Gender:Dept +
Admit:Gender:Dept,
family = poisson(link = "log"),
data = df_ucb)
# Ringkasan hasil model
summary(model_saturated)
##
## Call:
## glm(formula = Freq ~ Admit + Gender + Dept + Admit:Gender + Admit:Dept +
## Gender:Dept + Admit:Gender:Dept, family = poisson(link = "log"),
## data = df_ucb)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 6.23832 0.04419 141.157 < 2e-16 ***
## AdmitRejected -0.49212 0.07175 -6.859 6.94e-12 ***
## GenderFemale -1.74969 0.11484 -15.235 < 2e-16 ***
## DeptB -0.37186 0.06918 -5.375 7.65e-08 ***
## DeptC -1.45083 0.10142 -14.305 < 2e-16 ***
## AdmitRejected:GenderFemale -1.05208 0.26271 -4.005 6.21e-05 ***
## AdmitRejected:DeptB -0.04163 0.11319 -0.368 0.713
## AdmitRejected:DeptC 1.02764 0.13550 7.584 3.34e-14 ***
## GenderFemale:DeptB -1.28357 0.27358 -4.692 2.71e-06 ***
## GenderFemale:DeptC 2.27046 0.16270 13.954 < 2e-16 ***
## AdmitRejected:GenderFemale:DeptB 0.83205 0.51039 1.630 0.103
## AdmitRejected:GenderFemale:DeptC 1.17700 0.29956 3.929 8.53e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 1.6327e+03 on 11 degrees of freedom
## Residual deviance: 1.7986e-14 on 0 degrees of freedom
## AIC: 103.02
##
## Number of Fisher Scoring iterations: 3
# Menghitung Odds
exp(model_saturated$coefficients)
## (Intercept) AdmitRejected
## 512.0000000 0.6113281
## GenderFemale DeptB
## 0.1738281 0.6894531
## DeptC AdmitRejected:GenderFemale
## 0.2343750 0.3492120
## AdmitRejected:DeptB AdmitRejected:DeptC
## 0.9592267 2.7944622
## GenderFemale:DeptB GenderFemale:DeptC
## 0.2770475 9.6838951
## AdmitRejected:GenderFemale:DeptB AdmitRejected:GenderFemale:DeptC
## 2.2980327 3.2446179
Tabel Ringkasan Hasil Model Log-Linear Saturated
| Parameter | Estimate | Std. Error | z value | P-value | Keputusan | Exp(Coef) |
|---|---|---|---|---|---|---|
| (Intercept) | 6.23832 | 0.04419 | 141.157 | < 2e-16 | Signifikan | 512.000000 |
| AdmitRejected | -0.49212 | 0.07175 | -6.859 | 6.94e-12 | Signifikan | 0.6113281 |
| GenderFemale | -1.74969 | 0.11484 | -15.235 | < 2e-16 | Signifikan | 0.1738281 |
| DeptB | -0.37186 | 0.06918 | -5.375 | 7.65e-08 | Signifikan | 0.6894531 |
| DeptC | -1.45083 | 0.10142 | -14.305 | < 2e-16 | Signifikan | 0.2343750 |
| AdmitRejected:GenderFemale | -1.05208 | 0.26271 | -4.005 | 6.21e-05 | Signifikan | 0.3492120 |
| AdmitRejected:DeptB | -0.04163 | 0.11319 | -0.368 | 0.713 | Tidak Signifikan | 0.9592267 |
| AdmitRejected:DeptC | 1.02764 | 0.13550 | 7.584 | 3.34e-14 | Signifikan | 2.7944622 |
| GenderFemale:DeptB | -1.28357 | 0.27358 | -4.692 | 2.71e-06 | Signifikan | 0.2770475 |
| GenderFemale:DeptC | 2.27046 | 0.16270 | 13.954 | < 2e-16 | Signifikan | 9.6838951 |
| AdmitRejected:GenderFemale:DeptB | 0.83205 | 0.51039 | 1.630 | 0.103 | Tidak Signifikan | 2.2980327 |
| AdmitRejected:GenderFemale:DeptC | 1.17700 | 0.29956 | 3.929 | 8.53e-05 | Signifikan | 3.2446179 |
Catatan Interpretasi:
Nilai exp(coef) menyatakan rasio ekspektasi (expected count ratio) dibandingkan baseline.
Efek positif → menaikkan expected count;
Efek negatif → menurunkan expected count.
Koefisien signifikan pada nilai p-value < 0.05.
Interpretasi Koefisien
Beberapa koefisien yang signifikan dan relevan dari model saturated ini memberikan wawasan penting mengenai data penerimaan mahasiswa:
(Intercept): Nilai intercept sangat besar
(Exp(Coef)=512), menunjukkan baseline frekuensi (referensi:
pria, diterima, Dept A).
AdmitRejected: Mahasiswa yang ditolak memiliki peluang sekitar 0.61 kali lebih kecil dibandingkan yang diterima (untuk referensi baseline).
GenderFemale: Peluang penerimaan wanita (di baseline Dept A) sekitar 0.17 kali lebih kecil dibandingkan pria.
DeptB dan DeptC: Mahasiswa di Dept B dan C memiliki peluang lebih kecil dibandingkan Dept A (Exp(Coef)=0.68 dan 0.23).
AdmitRejected:GenderFemale: Interaksi negatif antara ditolak dan wanita (Exp(Coef)=0.35), menunjukkan wanita yang ditolak di baseline Dept A punya peluang lebih kecil.
AdmitRejected:DeptC: Siswa yang ditolak di Dept C justru memiliki peluang lebih besar (Exp(Coef)=2.79), indikasi interaksi khusus.
GenderFemale:DeptC: Wanita di Dept C memiliki peluang sangat besar dibandingkan baseline (Exp(Coef)=9.68), menunjukkan kecenderungan gender yang berbeda di Dept C.
Secara keseluruhan, model menunjukkan ada interaksi kompleks antara status penerimaan, jenis kelamin, dan departemen, terutama di Dept C.
Interpretasi Goodness of Fit
Kesimpulan
Model saturated ini sangat cocok dengan data, dengan residual deviance hampir nol, menunjukkan kecocokan sempurna. Namun, tidak semua parameter atau interaksi signifikan. Efek utama yang paling signifikan adalah:
Penolakan Penerimaan (AdmitRejected): expected count sekitar 0.61 kali lebih kecil dibandingkan yang diterima.
Jenis Kelamin Wanita (GenderFemale): expected count sekitar 0.17 kali lebih kecil dibandingkan pria.
Departemen C (DeptC): expected count sekitar 0.23 kali lebih kecil dibandingkan Dept A.
Selain itu, beberapa interaksi dua arah dan tiga arah signifikan,
seperti interaksi AdmitRejected:DeptC (expected count 2.79
kali lebih tinggi) dan GenderFemale:DeptC (expected count
9.68 kali lebih tinggi), menunjukkan pola yang menarik terutama di
Departemen C. Namun, beberapa interaksi lain tidak signifikan (misalnya
AdmitRejected:DeptB dan
AdmitRejected:GenderFemale:DeptB). Model yang lebih
sederhana (tanpa interaksi tiga arah) perlu dipertimbangkan sebagai
model final yang lebih parsimonious dan mudah diinterpretasikan.
Model log-linear homogenous memasukkan semua efek utama dan semua interaksi dua arah, tanpa interaksi tiga arah. Secara matematis, model ini dapat dituliskan sebagai berikut:
\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ij}^{XY} + \lambda_{ik}^{XZ} + \lambda_{jk}^{YZ} \]
Pemodelan Dengan R
# Model homogenous (tanpa interaksi tiga arah)
model_homogenous <- glm(Freq ~ Admit + Gender + Dept +
Admit:Gender + Admit:Dept + Gender:Dept,
family = poisson(link = "log"),
data = df_ucb)
# Ringkasan hasil model
summary(model_homogenous)
##
## Call:
## glm(formula = Freq ~ Admit + Gender + Dept + Admit:Gender + Admit:Dept +
## Gender:Dept, family = poisson(link = "log"), data = df_ucb)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 6.26761 0.04293 145.986 < 2e-16 ***
## AdmitRejected -0.57125 0.06960 -8.208 2.26e-16 ***
## GenderFemale -1.96648 0.10909 -18.027 < 2e-16 ***
## DeptB -0.40080 0.06797 -5.897 3.71e-09 ***
## DeptC -1.61686 0.09687 -16.691 < 2e-16 ***
## AdmitRejected:GenderFemale -0.19716 0.11712 -1.683 0.0923 .
## AdmitRejected:DeptB 0.03658 0.11001 0.333 0.7395
## AdmitRejected:DeptC 1.31566 0.11675 11.269 < 2e-16 ***
## GenderFemale:DeptB -1.07419 0.22865 -4.698 2.63e-06 ***
## GenderFemale:DeptC 2.69718 0.12981 20.778 < 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: 1632.668 on 11 degrees of freedom
## Residual deviance: 17.197 on 2 degrees of freedom
## AIC: 116.22
##
## Number of Fisher Scoring iterations: 4
# Menghitung Odds
exp(model_homogenous$coefficients)
## (Intercept) AdmitRejected
## 527.2169001 0.5648209
## GenderFemale DeptB
## 0.1399483 0.6697809
## DeptC AdmitRejected:GenderFemale
## 0.1985203 0.8210565
## AdmitRejected:DeptB AdmitRejected:DeptC
## 1.0372562 3.7271928
## GenderFemale:DeptB GenderFemale:DeptC
## 0.3415759 14.8378587
Tabel Ringkasan Hasil Model Log-Linear Homogenous
| Parameter | Estimate | Std. Error | z value | P-value | Keputusan | Exp(Coef) |
|---|---|---|---|---|---|---|
| (Intercept) | 6.26761 | 0.04293 | 145.986 | < 2e-16 | Signifikan | 527.2169001 |
| AdmitRejected | -0.57125 | 0.06960 | -8.208 | 2.26e-16 | Signifikan | 0.5648209 |
| GenderFemale | -1.96648 | 0.10909 | -18.027 | < 2e-16 | Signifikan | 0.1399483 |
| DeptB | -0.40080 | 0.06797 | -5.897 | 3.71e-09 | Signifikan | 0.6697809 |
| DeptC | -1.61686 | 0.09687 | -16.691 | < 2e-16 | Signifikan | 0.1985203 |
| AdmitRejected:GenderFemale | -0.19716 | 0.11712 | -1.683 | 0.0923 | Tidak Signifikan | 0.8210565 |
| AdmitRejected:DeptB | 0.03658 | 0.11001 | 0.333 | 0.7395 | Tidak Signifikan | 1.0372562 |
| AdmitRejected:DeptC | 1.31566 | 0.11675 | 11.269 | < 2e-16 | Signifikan | 3.7271928 |
| GenderFemale:DeptB | -1.07419 | 0.22865 | -4.698 | 2.63e-06 | Signifikan | 0.3415759 |
| GenderFemale:DeptC | 2.69718 | 0.12981 | 20.778 | < 2e-16 | Signifikan | 14.8378587 |
Interpretasi Koefisien
Beberapa koefisien penting dan signifikan dari model homogenous ini menunjukkan pola yang menarik:
(Intercept): Nilai baseline frekuensi
(Exp(Coef)=527), menunjukkan baseline (pria, diterima, Dept
A).
AdmitRejected: Mahasiswa yang ditolak memiliki expected count sekitar 0.56 kali lebih kecil daripada yang diterima.
GenderFemale: Wanita memiliki peluang penerimaan yang 0.14 kali lebih kecil dibandingkan pria.
DeptB dan DeptC: Mahasiswa di Dept B dan C memiliki expected count lebih kecil dibandingkan Dept A (Exp(Coef)=0.66 dan 0.19).
AdmitRejected:DeptC: Interaksi signifikan ini menunjukkan bahwa mahasiswa yang ditolak di Dept C memiliki expected count yang 3.7 kali lebih tinggi, menandakan pola khusus di Dept C.
GenderFemale:DeptC: Wanita di Dept C memiliki peluang 14.8 kali lebih besar dibandingkan baseline pria di Dept A, menunjukkan pola penerimaan yang sangat berbeda di Dept C.
Sementara itu, interaksi dua arah AdmitRejected:GenderFemale dan AdmitRejected:DeptB tidak signifikan, yang artinya interaksi keduanya tidak terlalu berpengaruh dalam menjelaskan pola frekuensi.
Interpretasi Goodness of Fit
Model homogenous memiliki residual deviance 17.197 (df=2) dan AIC 116.22, lebih tinggi dari model saturated (AIC 103.02). Ini menunjukkan bahwa model homogenous cukup baik menjelaskan data, meski tidak sesempurna model saturated.
Kesimpulan
Model homogenous ini cukup baik dalam memodelkan data tanpa interaksi tiga arah, dan beberapa interaksi dua arah signifikan. Model ini menjadi pilihan yang lebih sederhana dibandingkan model saturated, dengan hasil yang masih memadai.
Pengujian ini menggunakan residual deviance dari kedua model (saturated dan homogenous). Berikut tahapannya.
Hipotesis
Hipotesis Nol (H₀): Tidak ada interaksi tiga arah (model homogenous sudah cukup)
Hipotesis Alternatif (H₁): Ada interaksi tiga arah (model saturated diperlukan)
Taraf Signifikansi
α = 5%
Statistik Uji
Statistik uji Selisih Deviance dihitung dengan rumus: \[ D = Deviance(Homogenous) - Deviance(Saturated) \] \[ D = 17.197 - 0 ≈ 17.197 \]
Perhitungan dengan R
# Deviance antar model
Deviance.model <- model_homogenous$deviance - model_saturated$deviance
Deviance.model
## [1] 17.19703
Wilayah Kritis
\(df = df(Homogenous) - df(Saturated) = 2 - 0 = 2\)
Nilai kritis χ²(0.05; 2) ≈ 5.991
Perhitungan Dengan R
derajat.bebas <- (model_homogenous$df.residual - model_saturated$df.residual)
derajat.bebas
## [1] 2
chi.tabel <- qchisq(1 - 0.05, df = derajat.bebas)
chi.tabel
## [1] 5.991465
Kriteria Uji
Tolak H0 jika χ²-hitung > χ²-tabel
Keputusan
Karena χ²-hitung (17.197) > χ²-tabel (5.991), maka Tolak H₀
Kesimpulan
Berdasarkan hasil uji interaksi antara model saturated dan model homogenous, diperoleh bahwa terdapat interaksi tiga arah yang signifikan, sehingga model saturated diperlukan.
Model log-linear conditional pada X hanya memuat efek utama, serta interaksi dua arah antara variabel X dengan Y dan antara X dengan Z. Model ini mengabaikan interaksi antara Y dengan Z maupun interaksi tiga arah. Model ini memiliki bentuk:
\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ij}^{XY} + \lambda_{ik}^{XZ} \]
Pemodelan Dengan R
# Model conditional on Dept (X, tanpa interaksi tiga arah dan Y:Z)
model_conditional_X <- glm(Freq ~ Admit + Gender + Dept +
Admit:Dept + Gender:Dept,
family = poisson(link = "log"),
data = df_ucb)
# Ringkasan hasil model
summary(model_conditional_X)
##
## Call:
## glm(formula = Freq ~ Admit + Gender + Dept + Admit:Dept + Gender:Dept,
## family = poisson(link = "log"), data = df_ucb)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 6.27557 0.04248 147.744 < 2e-16 ***
## AdmitRejected -0.59346 0.06838 -8.679 < 2e-16 ***
## GenderFemale -2.03325 0.10233 -19.870 < 2e-16 ***
## DeptB -0.40575 0.06770 -5.993 2.06e-09 ***
## DeptC -1.53939 0.08305 -18.536 < 2e-16 ***
## AdmitRejected:DeptB 0.05059 0.10968 0.461 0.645
## AdmitRejected:DeptC 1.20915 0.09726 12.432 < 2e-16 ***
## GenderFemale:DeptB -1.07581 0.22860 -4.706 2.52e-06 ***
## GenderFemale:DeptC 2.63462 0.12343 21.345 < 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: 1632.668 on 11 degrees of freedom
## Residual deviance: 20.064 on 3 degrees of freedom
## AIC: 117.08
##
## Number of Fisher Scoring iterations: 4
# Menghitung Odds
exp(model_conditional_X$coefficients)
## (Intercept) AdmitRejected GenderFemale DeptB
## 531.4308682 0.5524126 0.1309091 0.6664800
## DeptC AdmitRejected:DeptB AdmitRejected:DeptC GenderFemale:DeptB
## 0.2145111 1.0518968 3.3506323 0.3410218
## GenderFemale:DeptC
## 13.9380342
Tabel Ringkasan Hasil Model Log-Linear Conditional on Dept (X)
| Parameter | Estimate | Std. Error | z value | P-value | Keputusan | Exp(Coef) |
|---|---|---|---|---|---|---|
| (Intercept) | 6.27557 | 0.04248 | 147.744 | < 2e-16 | Signifikan | 531.4308682 |
| AdmitRejected | -0.59346 | 0.06838 | -8.679 | < 2e-16 | Signifikan | 0.5524126 |
| GenderFemale | -2.03325 | 0.10233 | -19.870 | < 2e-16 | Signifikan | 0.1309091 |
| DeptB | -0.40575 | 0.06770 | -5.993 | 2.06e-09 | Signifikan | 0.6664800 |
| DeptC | -1.53939 | 0.08305 | -18.536 | < 2e-16 | Signifikan | 0.2145111 |
| AdmitRejected:DeptB | 0.05059 | 0.10968 | 0.461 | 0.645 | Tidak Signifikan | 1.0518968 |
| AdmitRejected:DeptC | 1.20915 | 0.09726 | 12.432 | < 2e-16 | Signifikan | 3.3506323 |
| GenderFemale:DeptB | -1.07581 | 0.22860 | -4.706 | 2.52e-06 | Signifikan | 0.3410218 |
| GenderFemale:DeptC | 2.63462 | 0.12343 | 21.345 | < 2e-16 | Signifikan | 13.9380342 |
Interpretasi Koefisien
Beberapa koefisien yang signifikan dalam model conditional on Dept (X) menunjukkan pola menarik:
(Intercept): Menunjukkan baseline frekuensi
(Exp(Coef)=531), untuk mahasiswa pria yang diterima di Dept
A.
AdmitRejected: Mahasiswa yang ditolak memiliki expected count sekitar 0.55 kali lebih kecil dibandingkan yang diterima.
GenderFemale: Wanita memiliki peluang penerimaan yang 0.13 kali lebih kecil dibandingkan pria.
DeptB dan DeptC: Mahasiswa di Dept B dan C memiliki expected count lebih kecil dibandingkan Dept A (Exp(Coef)=0.66 dan 0.21).
AdmitRejected:DeptC: Mahasiswa yang ditolak di Dept C memiliki expected count sekitar 3.35 kali lebih tinggi dibandingkan yang diterima.
GenderFemale:DeptC: Wanita di Dept C memiliki expected count sekitar 13.9 kali lebih besar dibandingkan baseline pria di Dept A, menunjukkan pola yang sangat berbeda di Dept C.
Sementara itu, interaksi dua arah AdmitRejected:DeptB tidak signifikan.
Interpretasi Goodness-of-Fit
Model conditional on Dept memiliki residual deviance 20.064 (df=3), yang relatif kecil dibandingkan null deviance (1632), menunjukkan model ini cukup baik menjelaskan data. Namun, residual deviance masih lebih besar dibandingkan model saturated, yang artinya ada sedikit deviasi yang tidak terjelaskan sepenuhnya.
Kesimpulan
Model conditional on Dept (X) ini sudah cukup baik menjelaskan data, dengan beberapa interaksi dua arah signifikan. Meskipun ada sedikit deviasi yang tidak terjelaskan, model ini tetap menjadi alternatif yang lebih sederhana dibandingkan model saturated, sambil tetap mempertahankan interpretasi yang informatif.
Hipotesis
\(H_0: \lambda_{jk}^{YZ} = 0\) (Tidak ada interaksi antara status penerimaan (Y) dan jenis kelamin (Z) setelah dikondisikan pada departemen (X))
\(H_1: \lambda_{jk}^{YZ} \neq 0\) (Ada interaksi antara status penerimaan (Y) dan jenis kelamin (Z) setelah dikondisikan pada departemen (X))
Taraf Signifikansi
α = 5%
Statistik Uji
Statistik uji Selisih Deviance dihitung dengan rumus: \[ D = Deviance(Conditional on X) - Deviance(Homogenous) \] \[ D = 20.064 - 17.197 = 2.867 \]
Perhitungan dengan R
# Deviance antar model
Deviance.model1 <- model_conditional_X$deviance - model_homogenous$deviance
Deviance.model1
## [1] 2.866606
Wilayah Kritis
\(df = df(Conditional on X) - df(Homogenous) = 3 - 2 = 1\)
Nilai kritis χ²(0.05; 1) ≈ 3.841
Perhitungan Dengan R
derajat.bebas <- (model_conditional_X$df.residual - model_homogenous$df.residual)
derajat.bebas
## [1] 1
chi.tabel <- qchisq(1 - 0.05, df = derajat.bebas)
chi.tabel
## [1] 3.841459
Kriteria Uji
Tolak H0 jika χ²-hitung > χ²-tabel
Keputusan
Karena χ²-hitung (2.867) < χ²-tabel (3.841), maka Terima H₀
Kesimpulan
Berdasarkan uji selisih deviance antara model homogenous dan model conditional on Dept (X), diperoleh keputusan terima H₀.
Artinya, tidak ada interaksi signifikan antara status penerimaan (Admit) dan jenis kelamin (Gender) setelah dikondisikan pada departemen (Dept).
Dengan demikian, model conditional on Dept sudah cukup untuk menjelaskan data dan interaksi dua arah Y:Z tidak perlu dimasukkan ke dalam model final.
Model log-linear conditional pada Y hanya mencakup efek utama serta interaksi dua arah antara X dan Y, serta antara Y dan Z. Model ini tidak mencakup interaksi antara X dan Z, maupun interaksi tiga arah. Bentuk umum model ini yaitu:
\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ij}^{XY} + \lambda_{jk}^{YZ} \]
Pemodelan Dengan R
# Model conditional on Y (Admit) (tanpa interaksi tiga arah dan X:Z)
model_conditional_Y <- glm(Freq ~ Admit + Gender + Dept +
Admit:Dept + Admit:Gender,
family = poisson(link = "log"),
data = df_ucb)
# Ringkasan hasil model
summary(model_conditional_Y)
##
## Call:
## glm(formula = Freq ~ Admit + Gender + Dept + Admit:Dept + Admit:Gender,
## family = poisson(link = "log"), data = df_ucb)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 6.12652 0.04365 140.341 < 2e-16 ***
## AdmitRejected -0.77662 0.07364 -10.547 < 2e-16 ***
## GenderFemale -1.16254 0.06528 -17.807 < 2e-16 ***
## DeptB -0.48509 0.06608 -7.341 2.12e-13 ***
## DeptC -0.62404 0.06906 -9.036 < 2e-16 ***
## AdmitRejected:DeptB 0.05059 0.10968 0.461 0.645
## AdmitRejected:DeptC 1.20915 0.09726 12.432 < 2e-16 ***
## AdmitRejected:GenderFemale 0.61185 0.08963 6.826 8.71e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 1632.67 on 11 degrees of freedom
## Residual deviance: 872.32 on 4 degrees of freedom
## AIC: 967.34
##
## Number of Fisher Scoring iterations: 6
# Menghitung Odds
exp(model_conditional_Y$coefficients)
## (Intercept) AdmitRejected
## 457.8383604 0.4599575
## GenderFemale DeptB
## 0.3126904 0.6156406
## DeptC AdmitRejected:DeptB
## 0.5357737 1.0518968
## AdmitRejected:DeptC AdmitRejected:GenderFemale
## 3.3506323 1.8438424
Tabel Ringkasan Hasil Model Log-Linear Conditional on Admit (Y)
| Parameter | Estimate | Std. Error | z value | P-value | Keputusan | Exp(Coef) |
|---|---|---|---|---|---|---|
| (Intercept) | 6.12652 | 0.04365 | 140.341 | < 2e-16 | Signifikan | 457.8383604 |
| AdmitRejected | -0.77662 | 0.07364 | -10.547 | < 2e-16 | Signifikan | 0.4599575 |
| GenderFemale | -1.16254 | 0.06528 | -17.807 | < 2e-16 | Signifikan | 0.3126904 |
| DeptB | -0.48509 | 0.06608 | -7.341 | 2.12e-13 | Signifikan | 0.6156406 |
| DeptC | -0.62404 | 0.06906 | -9.036 | < 2e-16 | Signifikan | 0.5357737 |
| AdmitRejected:DeptB | 0.05059 | 0.10968 | 0.461 | 0.645 | Tidak Signifikan | 1.0518968 |
| AdmitRejected:DeptC | 1.20915 | 0.09726 | 12.432 | < 2e-16 | Signifikan | 3.3506323 |
| AdmitRejected:GenderFemale | 0.61185 | 0.08963 | 6.826 | 8.71e-12 | Signifikan | 1.8438424 |
Interpretasi Koefisien
Beberapa koefisien yang signifikan dari model conditional on Admit (Y) ini menunjukkan:
Exp(Coef)=457), untuk pria yang diterima di Dept A.Sementara itu, interaksi AdmitRejected:DeptB tidak signifikan.
Interpretasi Goodness-of-Fit
Model conditional on Admit (Y) memiliki residual deviance 872.32 (df=4), yang jauh lebih besar dibandingkan deviance model homogenous (17.197). Ini menunjukkan bahwa model conditional on Admit (Y) kurang baik menjelaskan data secara keseluruhan.
Kesimpulan
Model conditional on Admit (Y) ini menghasilkan residual deviance yang masih cukup besar, menunjukkan bahwa model ini kurang baik menjelaskan data secara keseluruhan. Meskipun beberapa interaksi dua arah signifikan, model ini tidak cukup parsimonious untuk digunakan sebagai model final yang menjelaskan struktur data sepenuhnya.
Hipotesis
\(H_0: \lambda_{ik}^{XZ} = 0\) (Tidak ada interaksi antara departemen (X) dan jenis kelamin (Z) setelah dikondisikan pada status penerimaan (Y))
\(H_1: \lambda_{ik}^{XZ} \neq 0\) (Ada interaksi antara departemen (X) dan jenis kelamin (Z) setelah dikondisikan pada status penerimaan (Y))
Taraf Signifikansi
α = 5%
Statistik Uji
Statistik uji Selisih Deviance dihitung dengan rumus: \[ D = Deviance(Conditional on Y) - Deviance(Homogenous) \] \[ D = 872.32 - 17.197 = 855.123 \]
Perhitungan dengan R
# Deviance antar model
Deviance.model2 <- model_conditional_Y$deviance - model_homogenous$deviance
Deviance.model2
## [1] 855.1222
Wilayah Kritis
\(df = df(Conditional on Y) - df(Homogenous) = 4 - 2 = 2\)
Nilai kritis χ²(0.05; 2) ≈ 5.991
Perhitungan Dengan R
derajat.bebas <- (model_conditional_Y$df.residual - model_homogenous$df.residual)
derajat.bebas
## [1] 2
chi.tabel <- qchisq(1 - 0.05, df = derajat.bebas)
chi.tabel
## [1] 5.991465
Kriteria Uji
Tolak H0 jika χ²-hitung > χ²-tabel
Keputusan
Karena χ²-hitung (855.123) > χ²-tabel (5.991), maka Tolak H₀
Kesimpulan
Interaksi dua arah antara departemen (X) dan jenis kelamin (Z) signifikan setelah dikondisikan pada status penerimaan (Y). Model homogenous lebih baik dibandingkan model conditional on Y.
Model log-linear conditional pada Z hanya mencakup efek utama serta interaksi dua arah antara X dengan Z dan Y dengan Z, tanpa menyertakan interaksi antara X dan Y atau interaksi tiga arah. Bentuk umum Model Conditional on Z yaitu:
\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ik}^{XZ} + \lambda_{jk}^{YZ} \]
Pemodelan Dengan R
# Model conditional on Gender (Z) (tanpa interaksi tiga arah dan X:Y)
model_conditional_Z <- glm(Freq ~ Admit + Gender + Dept +
Dept:Gender + Admit:Gender,
family = poisson(link = "log"),
data = df_ucb)
# Ringkasan hasil model
summary(model_conditional_Z)
##
## Call:
## glm(formula = Freq ~ Admit + Gender + Dept + Dept:Gender + Admit:Gender,
## family = poisson(link = "log"), data = df_ucb)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 6.16378 0.04053 152.085 < 2e-16 ***
## AdmitRejected -0.30647 0.04893 -6.263 3.78e-10 ***
## GenderFemale -2.33910 0.11301 -20.698 < 2e-16 ***
## DeptB -0.38745 0.05475 -7.076 1.48e-12 ***
## DeptC -0.93156 0.06549 -14.224 < 2e-16 ***
## GenderFemale:DeptB -1.07581 0.22860 -4.706 2.52e-06 ***
## GenderFemale:DeptC 2.63462 0.12343 21.345 < 2e-16 ***
## AdmitRejected:GenderFemale 0.61185 0.08963 6.826 8.71e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for poisson family taken to be 1)
##
## Null deviance: 1632.67 on 11 degrees of freedom
## Residual deviance: 166.92 on 4 degrees of freedom
## AIC: 261.94
##
## Number of Fisher Scoring iterations: 5
# Menghitung Odds
exp(model_conditional_Z$coefficients)
## (Intercept) AdmitRejected
## 475.21929825 0.73604061
## GenderFemale DeptB
## 0.09641482 0.67878788
## DeptC GenderFemale:DeptB
## 0.39393939 0.34102183
## GenderFemale:DeptC AdmitRejected:GenderFemale
## 13.93803419 1.84384236
Tabel Ringkasan Hasil Model Log-Linear Conditional on Gender (Z)
| Parameter | Estimate | Std. Error | z value | P-value | Keputusan | Exp(Coef) |
|---|---|---|---|---|---|---|
| (Intercept) | 6.16378 | 0.04053 | 152.085 | < 2e-16 | Signifikan | 475.2192983 |
| AdmitRejected | -0.30647 | 0.04893 | -6.263 | 3.78e-10 | Signifikan | 0.7360406 |
| GenderFemale | -2.33910 | 0.11301 | -20.698 | < 2e-16 | Signifikan | 0.0964148 |
| DeptB | -0.38745 | 0.05475 | -7.076 | 1.48e-12 | Signifikan | 0.6787879 |
| DeptC | -0.93156 | 0.06549 | -14.224 | < 2e-16 | Signifikan | 0.3939394 |
| GenderFemale:DeptB | -1.07581 | 0.22860 | -4.706 | 2.52e-06 | Signifikan | 0.3410218 |
| GenderFemale:DeptC | 2.63462 | 0.12343 | 21.345 | < 2e-16 | Signifikan | 13.9380342 |
| AdmitRejected:GenderFemale | 0.61185 | 0.08963 | 6.826 | 8.71e-12 | Signifikan | 1.8438424 |
Interpretasi Koefisien
Exp(Coef)=475), untuk pria yang diterima di Dept A.Semua interaksi dan efek utama signifikan, kecuali interaksi antara Dept dan GenderFemale di DeptB, yang juga signifikan.
Interpretasi Goodness-of-Fit
Model conditional on Gender (Z) memiliki residual deviance 166.92 (df=4), jauh lebih besar dibandingkan model homogenous (17.197). Ini menunjukkan model conditional on Gender kurang baik dalam menjelaskan data secara keseluruhan.
Kesimpulan
Model conditional on Gender (Z) ini memang menunjukkan beberapa interaksi signifikan, tetapi secara keseluruhan tidak sebaik model homogenous. Residual deviance yang relatif besar menunjukkan ada deviasi yang tidak terjelaskan, sehingga model homogenous tetap lebih baik untuk menggambarkan data.
Hipotesis
\(H_0: \lambda_{ij}^{XY} = 0\) (Tidak ada interaksi antara departemen (X) dan status penerimaan (Y) setelah dikondisikan pada jenis kelamin (Z))
\(H_1: \lambda_{ij}^{XY} \neq 0\) (Ada interaksi antara departemen (X) dan status penerimaan (Y) setelah dikondisikan pada jenis kelamin (Z))
Taraf Signifikansi
α = 5%
Statistik Uji
Statistik uji Selisih Deviance dihitung dengan rumus: \[ D = Deviance(Conditional on Z) - Deviance(Homogenous) \] \[ D = 166.92 - 17.197 = 149.723 \]
Perhitungan dengan R
# Deviance antar model
Deviance.model3 <- model_conditional_Z$deviance - model_homogenous$deviance
Deviance.model3
## [1] 149.7237
Wilayah Kritis
\(df = df(Conditional on Z) - df(Homogenous) = 4 - 2 = 2\)
Nilai kritis χ²(0.05; 2) ≈ 5.991
Perhitungan Dengan R
derajat.bebas <- (model_conditional_Z$df.residual - model_homogenous$df.residual)
derajat.bebas
## [1] 2
chi.tabel <- qchisq(1 - 0.05, df = derajat.bebas)
chi.tabel
## [1] 5.991465
Kriteria Uji
Tolak H0 jika χ²-hitung > χ²-tabel
Keputusan
Karena χ²-hitung (149.723) > χ²-tabel (5.991), maka Tolak H₀
Kesimpulan
Interaksi dua arah antara departemen (X) dan status penerimaan (Y) signifikan setelah dikondisikan pada jenis kelamin (Z). Model homogenous lebih baik dibandingkan model conditional on Z.
| Model | Parameter | Deviance | Jumlah Parameter | df | AIC |
|---|---|---|---|---|---|
| Saturated | \(\lambda + \lambda^X_i + \lambda^Y_j + \lambda^Z_k + \lambda^{XY}_{ij} + \lambda^{XZ}_{ik} + \lambda^{YZ}_{jk} + \lambda^{XYZ}_{ijk}\) | 0.00 | 12 | 0 | 103.02 |
| Homogenous | \(\lambda + \lambda^X_i + \lambda^Y_j + \lambda^Z_k + \lambda^{XY}_{ij} + \lambda^{XZ}_{ik} + \lambda^{YZ}_{jk}\) | 17.197 | 10 | 2 | 116.22 |
| Conditional on X | \(\lambda + \lambda^X_i + \lambda^Y_j + \lambda^Z_k + \lambda^{XY}_{ij} + \lambda^{XZ}_{ik}\) | 20.064 | 8 | 3 | 117.08 |
| Conditional on Y | \(\lambda + \lambda^X_i + \lambda^Y_j + \lambda^Z_k + \lambda^{XY}_{ij} + \lambda^{YZ}_{jk}\) | 872.32 | 8 | 4 | 967.34 |
| Conditional on Z | \(\lambda + \lambda^X_i + \lambda^Y_j + \lambda^Z_k + \lambda^{XZ}_{ik} + \lambda^{YZ}_{jk}\) | 166.92 | 9 | 4 | 261.94 |
| Interaksi | Pengujian | Deviance | df | Chi-square Tabel | Keputusan | Keterangan |
|---|---|---|---|---|---|---|
| XYZ | Saturated vs Homogenous | 17.197 | 2 | 5.991 | Tolak H0 | ada interaksi |
| YZ | Conditional on X vs Homogenous | 2.867 | 1 | 3.841 | Terima H0 | tidak ada interaksi |
| XZ | Conditional on Y vs Homogenous | 855.123 | 2 | 5.991 | Tolak H0 | ada interaksi |
| XY | Conditional on Z vs Homogenous | 149.723 | 2 | 5.991 | Tolak H0 | ada interaksi |
Berdasarkan hasil uji interaksi dua arah dan tiga arah, disimpulkan bahwa model terbaik adalah model log-linear yang memuat semua efek utama dan semua interaksi dua arah, kecuali interaksi antara status penerimaan (Y) dan jenis kelamin (Z).
Meskipun hasil uji menunjukkan bahwa interaksi tiga arah (XYZ) signifikan (Tolak H₀), model saturated yang memuat interaksi tiga arah dianggap terlalu kompleks dan tidak parsimonious. Model saturated memiliki residual deviance = 0 (fit sempurna), tetapi memerlukan semua parameter (12 parameter), sehingga sulit diinterpretasikan dan cenderung overfitting.
Secara praktis, model final diutamakan untuk menemukan pola yang stabil dan ringkas, yaitu hanya memasukkan efek utama dan interaksi dua arah yang signifikan (XY dan XZ). Dengan demikian, meskipun interaksi tiga arah signifikan secara statistik, model final yang lebih sederhana dipilih untuk kemudahan interpretasi dan parsimony.
Dengan demikian, model final terbaik dapat dituliskan sebagai:
\[ \log(\mu_{ijk}) = \lambda + \lambda^X_i + \lambda^Y_j + \lambda^Z_k + \lambda^{XY}_{ij} + \lambda^{XZ}_{ik} \]
Model ini mempertahankan interaksi penting yang signifikan, sehingga cukup baik untuk menjelaskan struktur data secara keseluruhan dan tetap lebih parsimonious dibandingkan model saturated.
Pemodelan Dengan R
# Model terbaik (tanpa interaksi YZ dan interaksi tiga arah)
bestmodel <- glm(Freq ~ Admit + Gender + Dept +
Admit:Dept + Gender:Dept,
family = poisson(link = "log"),
data = df_ucb)
# Ringkasan hasil model
summary(bestmodel)
##
## Call:
## glm(formula = Freq ~ Admit + Gender + Dept + Admit:Dept + Gender:Dept,
## family = poisson(link = "log"), data = df_ucb)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 6.27557 0.04248 147.744 < 2e-16 ***
## AdmitRejected -0.59346 0.06838 -8.679 < 2e-16 ***
## GenderFemale -2.03325 0.10233 -19.870 < 2e-16 ***
## DeptB -0.40575 0.06770 -5.993 2.06e-09 ***
## DeptC -1.53939 0.08305 -18.536 < 2e-16 ***
## AdmitRejected:DeptB 0.05059 0.10968 0.461 0.645
## AdmitRejected:DeptC 1.20915 0.09726 12.432 < 2e-16 ***
## GenderFemale:DeptB -1.07581 0.22860 -4.706 2.52e-06 ***
## GenderFemale:DeptC 2.63462 0.12343 21.345 < 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: 1632.668 on 11 degrees of freedom
## Residual deviance: 20.064 on 3 degrees of freedom
## AIC: 117.08
##
## Number of Fisher Scoring iterations: 4
# Menghitung Odds
exp(bestmodel$coefficients)
## (Intercept) AdmitRejected GenderFemale DeptB
## 531.4308682 0.5524126 0.1309091 0.6664800
## DeptC AdmitRejected:DeptB AdmitRejected:DeptC GenderFemale:DeptB
## 0.2145111 1.0518968 3.3506323 0.3410218
## GenderFemale:DeptC
## 13.9380342
Interpretasi Koefisien
Exp(Coef)=531.43), untuk pria yang diterima di Dept
A.Interpretasi Goodness-of-Fit
Kesimpulan Model Final
Nilai fitted merupakan perkiraan frekuensi yang diharapkan (expected counts) dari model log-linear untuk setiap kombinasi kategori. Nilai ini dihitung melalui fungsi link log dan estimasi koefisien model. Nilai fitted digunakan untuk mengevaluasi kecocokan model dan menjadi dasar dalam penghitungan residual deviance serta analisis goodness-of-fit.
Nilai prediksi (fitted value) secara manual dihitung dengan rumus berikut:
Observasi 1 (Dept A, Male, Admitted)
\[ \hat{\mu}_{111} = \exp(\lambda + \lambda^{\text{Admit}}_{\text{Admitted}} + \lambda^{\text{Gender}}_{\text{Male}} + \lambda^{\text{Dept}}_{\text{A}}) \] \[ = \exp(6.27557 + 0 + 0 + 0) \] \[ = \exp(6.27557) = 531.43 \]
Observasi 2 (Dept A, Male, Rejected)
\[ \hat{\mu}_{112} = \exp(6.27557 + (-0.59346) + 0 + 0) \] \[ = \exp(5.68211) = 293.57 \]
Observasi 3 (Dept A, Female, Admitted)
\[ \hat{\mu}_{113} = \exp(6.27557 + 0 + (-2.03325) + 0) \] \[ = \exp(4.24232) = 69.57 \]
Observasi 4 (Dept A, Female, Rejected)
\[ \hat{\mu}_{114} = \exp(6.27557 + (-0.59346) + (-2.03325) + 0) \] \[ = \exp(3.64886) = 38.43 \]
Observasi 5 (Dept B, Male, Admitted)
\[ \hat{\mu}_{115} = \exp(6.27557 + 0 + 0 + (-0.40575) + 0.05059) \] \[ = \exp(5.92041) = 374.19 \]
Observasi 6 (Dept B, Male, Rejected)
\[ \hat{\mu}_{116} = \exp(6.27557 + (-0.59346) + 0 + (-0.40575) + 0.05059) \] \[ = \exp(5.32695) = 205.81 \]
Observasi 7 (Dept B, Female, Admitted)
\[ \hat{\mu}_{117} = \exp(6.27557 + 0 + (-2.03325) + (-0.40575) + (-1.07581)) \] \[ = \exp(2.76076) = 15.81 \]
Observasi 8 (Dept B, Female, Rejected)
\[ \hat{\mu}_{118} = \exp(6.27557 + (-0.59346) + (-2.03325) + (-0.40575) + (-1.07581)) \] \[ = \exp(2.16730) = 9.19 \]
Observasi 9 (Dept C, Male, Admitted)
\[ \hat{\mu}_{119} = \exp(6.27557 + 0 + 0 + (-1.53939) + 1.20915) \] \[ = \exp(5.94533) = 114.00 \]
Observasi 10 (Dept C, Male, Rejected)
\[ \hat{\mu}_{1110} = \exp(6.27557 + (-0.59346) + 0 + (-1.53939) + 1.20915) \] \[ = \exp(5.35187) = 211.00 \]
Observasi 11 (Dept C, Female, Admitted)
\[ \hat{\mu}_{1111} = \exp(6.27557 + 0 + (-2.03325) + (-1.53939) + 2.63462) \] \[ = \exp(5.33755) = 208.00 \]
Observasi 12 (Dept C, Female, Rejected)
\[ \hat{\mu}_{1112} = \exp(6.27557 + (-0.59346) + (-2.03325) + (-1.53939) + 2.63462) \] \[ = \exp(4.74409) = 385.00 \]
data.frame(
Dept = df_ucb$Dept,
Gender = df_ucb$Gender,
Admit = df_ucb$Admit,
Observed = df_ucb$Freq,
Fitted = round(bestmodel$fitted.values, 2)
)
## Dept Gender Admit Observed Fitted
## 1 A Male Admitted 512 531.43
## 2 A Male Rejected 313 293.57
## 3 A Female Admitted 89 69.57
## 4 A Female Rejected 19 38.43
## 5 B Male Admitted 353 354.19
## 6 B Male Rejected 207 205.81
## 7 B Female Admitted 17 15.81
## 8 B Female Rejected 8 9.19
## 9 C Male Admitted 120 114.00
## 10 C Male Rejected 205 211.00
## 11 C Female Admitted 202 208.00
## 12 C Female Rejected 391 385.00
Agresti, A. (2007). An introduction to categorical data analysis (2nd ed.). John Wiley & Sons.
Agresti, A. (2013). Categorical data analysis (3rd ed.). John Wiley & Sons.
Akaike, H. (1974). A new look at the statistical model identification. IEEE Transactions on Automatic Control, 19(6), 716–723. https://doi.org/10.1109/TAC.1974.1100705
Breslow, N. E., & Day, N. E. (1980). Statistical methods in cancer research, Volume 1: The analysis of case-control studies. IARC.
Christensen, R. (1997). Log-Linear Models and Logistic Regression. Springer.
Kleinbaum, D. G., & Klein, M. (2010). Logistic regression: A self-learning text (3rd ed.). Springer. https://doi.org/10.1007/978-1-4419-1742-3
Mantel, N. (1963). Chi-square tests with one degree of freedom: Extensions of the Mantel-Haenszel procedure. Journal of the American Statistical Association, 58, 690–700. https://doi.org/10.1080/01621459.1963.10500862
Montgomery, D. C., & Peck, E. A. (2012). Introduction to linear regression analysis (5th ed.). John Wiley & Sons.
Schwarz, G. (1978). Estimating the dimension of a model. The Annals of Statistics, 6(2), 461–464. http://www.jstor.org/stable/2958889
Sudjana, N. (1996). Metoda statistika (6th ed.). Tarsito.
Walpole, R. E., Myers, R. H., Myers, S. L., & Ye, K. (2012). Probability and statistics for engineers and scientists (9th ed.). Pearson Education.