I. PENDAHULUAN

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.

A. Pengertian Data Kategori

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.

B. Pengertian Analisis Data Kategori

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.

C. Manfaat Analisis Data Kategori

Analisis data kategori memiliki banyak manfaat, beberapa diantaranya:

  1. 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.

  2. 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.

  3. 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.

D. Tabel Kontingensi

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.

II. TABEL KONTINGENSI DUA ARAH

A. Bentuk Umum

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)

B. Contoh Kasus

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

C. Distribusi Peluang

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.

1. Peluang Bersama (Joint Probability)

π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:

  • \(P(\text{Pendidikan ≤ 8} \cap \text{Setuju}) = \frac{72}{425} = 0.1694\)
  • \(P(\text{Pendidikan ≤ 8} \cap \text{Tidak Setuju}) = \frac{47}{425} = 0.1106\)
  • \(P(\text{Pendidikan 9-12} \cap \text{Setuju}) = \frac{110}{425} = 0.2588\)
  • \(P(\text{Pendidikan 9-12} \cap \text{Tidak Setuju}) = \frac{196}{425} = 0.4612\)

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.

2. Peluang Marginal (Marginal Probability)

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.

3. Peluang Bersyarat (Conditional Probability)

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.

4. Perhitungan dengan R

# 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.

D. Desain Sampling

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.

1. Prospektif

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:

a) Experimental Study

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.

b) Cohort Study

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.

2. Retrospektif

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.

a) Control-Case Study

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.

b) Retrospective Cohort Study

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.

3. Cross Sectional

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.

E. Ukuran Asosiasi

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:

1. Beda Peluang (Difference Probability)

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

2. Resiko Relatif (Relative Risk)

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.

3. Rasio Odds (Odds Ratio)

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.

4. Perhitungan dengan R

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.

F. Inferensi Tabel Kontingensi Dua Arah

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.

G. Estimasi

Estimasi dalam statistik adalah proses menduga nilai suatu parameter berdasarkan data yang diperoleh dari sampel.

1. Jenis Estimasi

Estimasi dibagi menjadi dua jenis yaitu:

a) Estimasi Titik

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

b) Estimasi Interval

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.

2. Estimasi Ukuran Asosiasi

Dilakukan estimasi interval untuk setiap ukuran asosiasi pada tabel kontingensi 2x2 sebagai berikut.

a) Beda Proporsi

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.

b) Resiko Relatif

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.

c) Rasio Odds

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

  • 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.729 kali lebih besar dibandingkan dengan responden yang berpendidikan 9-12 tahun.
  • Interval kepercayaan 95% untuk Odds Ratio ini adalah (1.7659, 4.219) yang berarti kita yakin 95% bahwa nilai Odds Ratio sebenarnya dalam populasi berada dalam rentang 1.7659 hingga 4.219.

H. Uji Proporsi

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.

I. Uji Asosiasi

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.

1. Risk Difference (RD)

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.

2. Relative Risk (RR)

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.

3. Odds Ratio (OR)

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.

J. Uji Independenesi

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.

1. Statistik Pearson Chi-Square

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.

2. Partisi Chi-Square

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

  1. Hitung nilai Chi-Square total dari tabel kontingensi I x J (Uji Chi-Square yang sudah dibahas sebelumnya).
  2. Tentukan bagaimana tabel kontingensi akan dipecah menjadi sub-tabel, seperti berdasarkan jenis kategori atau kelompok umur.
  3. Memecah tabel menjadi beberapa tabel 2×2 sebanyak (I-1)(J-1)
  4. Hitung nilai Chi-Square masing-masing sub-tabel
  5. Jumlahkan semua nilai Chi-Square dari sub-tabel untuk melihat kontribusi total. Hasilnya tidak selalu sama dengan Chi-Square total dari tabel penuh, apalagi jika ada data yang tidak disertakan dalam partisi.
  6. Pastikan jumlah df dari semua partisi sama dengan df dari tabel kontingensi penuh.
  7. Menginterpretasikan kategori mana yang memberikan kontribusi signifkan.

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:

  • \(E_{11} = \frac{93 \times 137}{202} = 63.06\)
  • \(E_{12} = \frac{93 \times 65}{202} = 29.94\)
  • \(E_{21} = \frac{109 \times 137}{202} = 73.94\)
  • \(E_{22} = \frac{109 \times 65}{202} = 35.06\)

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:

  • \(E_{11} = \frac{99 \times 202}{227} = 88.09\)
  • \(E_{12} = \frac{99 \times 25}{227} = 10.9\)
  • \(E_{21} = \frac{128 \times 202}{227} = 113.9\)
  • \(E_{22} = \frac{128 \times 25}{227} = 14.09\)

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.

3. Statistik Likelihood Ratio

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.

4. Uji Exact Fisher

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:

  • \(N\): jumlah total populasi
  • \(K\): jumlah item sukses dalam populasi
  • \(N - K\): jumlah item gagal dalam populasi
  • \(n\): jumlah item yang diambil (ukuran sampel)
  • \(x\): jumlah item sukses dalam sampel
  • \(P(X = x)\): peluang memperoleh tepat \(x\) item sukses dalam pengambilan sebanyak \(n\) item
  • \(\binom{a}{b}\): kombinasi, yaitu banyak cara memilih \(b\) elemen dari \(a\) elemen

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:

  • Mean (rataan): \(\mu = n \cdot \frac{K}{N}\)
  • Varians: \(\sigma^2 = n \cdot \frac{K}{N} \cdot \left(1 - \frac{K}{N} \right) \cdot \frac{N - n}{N - 1}\)
  • Cocok digunakan ketika pemilihan tanpa pengembalian, misalnya pemilihan sampel dari populasi terbatas dalam survei atau audit.

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:

  • \(n_{1+}\): total baris pertama
  • \(n_{2+}\): total baris kedua
  • \(n_{+1}\): total kolom pertama
  • \(n\): total sampel keseluruhan
  • \(n_{11}\): frekuensi pada sel pertama (baris 1, kolom 1)

Perhitungan Manual

Langkah-langkah:

  1. Asumsikan hipotesis nol (tidak ada hubungan antara dua variabel)

  2. 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.

K. Analisis Residual untuk Deteksi Outlier

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:

1. Pearson Residual

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:

  • \(O_{ij}\) adalah nilai observasi pada sel ke-i, j,
  • \(E_{ij}\) adalah nilai ekspektasi pada sel ke-i, j.

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:

  • \(e_{11} = \frac{72 - 50.96}{\sqrt{50.96}} = 2.947\)
  • \(e_{12} = \frac{47 - 68.04}{\sqrt{68.04}} = -2.551\)
  • \(e_{21} = \frac{110 - 131.04}{\sqrt{131.04}} = -1.838\)
  • \(e_{22} = \frac{196 - 174.96}{\sqrt{174.96}} = 1.591\)

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:

  • Sel \(n_{11}\) dengan \(e_{11}\) sebesar 2.947
  • Sel \(n_{12}\) dengan \(e_{12}\) sebesar -2.551

2. Standardized Residual

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:

  • \(O_{ij}\) adalah nilai observasi pada sel ke-i, j,
  • \(E_{ij}\) adalah nilai ekspektasi pada sel ke-i, j,
  • \(p_{i+}\) dan \(p_{+j}\) adalah probabilitas marginal dari baris dan kolom.

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:

  • \(p_{1+} = \frac{119}{425} = 0.28\)
  • \(p_{2+} = \frac{306}{425} = 0.72\)
  • \(p_{+1} = \frac{182}{425} = 0.428\)
  • \(p_{+2} = \frac{243}{425} = 0.572\)

Hitung Standardized Residual:

  • \(r_{11} = \frac{72 - 50.96}{\sqrt{50.96(1 - 0.28)(1 - 0.428)}} = 4.593\)
  • \(r_{12} = \frac{47 - 68.04}{\sqrt{68.04(1 - 0.28)(1 - 0.572)}} = - 3.975\)
  • \(r_{21} = \frac{110 - 131.04}{\sqrt{131.04(1 - 0.72)(1 - 0.428)}} = - 5.308\)
  • \(r_{22} = \frac{196 - 174.96}{\sqrt{174.96(1 - 0.72)(1 - 0.572)}} = 4.594\)

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:

  • Sel \(n_{11}\) dengan \(r_{11}\) sebesar 4.593
  • Sel \(n_{12}\) dengan \(r_{12}\) sebesar -3.975
  • Sel \(n_{21}\) dengan \(r_{21}\) sebesar -5.308
  • Sel \(n_{22}\) dengan \(r_{22}\) sebesar 4.594

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.

III. TABEL KONTINGENSI TIGA ARAH

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.

A. Bentuk Umum

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.

B. Contoh Kasus

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:

  • Orang dengan pendidikan rendah (≤ 8 tahun) cenderung lebih setuju dengan pernyataan yang diajukan, sementara mereka yang memiliki pendidikan lebih tinggi (9-12 tahun) lebih cenderung tidak setuju.
  • Secara keseluruhan, wanita lebih dominan dalam sampel ini daripada pria.
  • Wanita lebih cenderung setuju dengan pernyataan dibandingkan Pria.

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.

C. Distribusi Peluang

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

  • Peluang Bersama (Joint Probability): Peluang dua peristiwa terjadi secara bersamaan. Misalnya, peluang seseorang berpendidikan 9-12 tahun dan berjenis kelamin Pria.
  • Peluang Marginal (Marginal Probability): Peluang satu peristiwa terjadi tanpa mempertimbangkan peristiwa lain. Misalnya, peluang seseorang setuju, tanpa peduli berapa lama dia mengemban pendidikan.
  • Peluang Bersyarat (Conditional Probability): Peluang satu peristiwa terjadi, dengan syarat peristiwa lain sudah diketahui terjadi. Misalnya, peluang seseorang setuju jika diketahui dia seorang wanita.

Untuk tabel kontingensi 3 arah, distribusi peluang terdiri dari beberapa jenis yaitu.

1. Peluang Bersama

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

2. Peluang Marginal

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.

3. Peluang Bersyarat

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

D. Ukuran Asosiasi

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.

1. Beda Peluang (BP)

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.

2. Resiko Relatif (RR)

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.

3. Rasio Odds (OR)

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.

E. Sympson’s Paradox

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.

F. Conditional Independent

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.

  • Conditional Odds Ratio Z = Pria

\[ \text{OR} = \frac{\text{72(196)}}{\text{110(47)}} \approx 2.73 \]

  • Conditional Odds Ratio Z = Wanita

\[ \text{OR} = \frac{\text{158(283)}}{\text{173(85)}} \approx 3.04 \]

  • Marginal Odds Ratio

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

G. Homogenous Association

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.

H. Uji Independenesi

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.

1. Metode Cochran-Mantel-Haenszel

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.

2. Odds Ratio Bersama

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:

  • \(n_{11k}\): Frekuensi sel baris 1 kolom 1 pada strata ke- \(k\)
  • \(n_{12k}\): Frekuensi sel baris 1 kolom 2 pada strata ke- \(k\)
  • \(n_{21k}\): Frekuensi sel baris 2 kolom 1 pada strata ke- \(k\)
  • \(n_{22k}\): Frekuensi sel baris 2 kolom 2 pada strata ke- \(k\)
  • \(n_{..k}\): Total seluruh frekuensi pada strata ke- \(k\)
  • \(K\): Banyaknya strata yang dianalisis

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

  • Untuk k=1 (Pria):

\[ \frac{72 \times 196}{425} = \frac{14112}{425} \approx 33.21 \]

  • Untuk k=2 (Wanita):

\[ \frac{158 \times 283}{699} = \frac{44714}{699} \approx 63.99 \]

  • Total Pembilang:

\[ 33.21 + 63.99 = 97.20 \]

Hitung Penyebut

\[ \sum_{k=1}^{2} \left( \frac{n_{12k} \times n_{21k}}{n_{++k}} \right) \]

  • Untuk k=1 (Pria):

\[ \frac{47 \times 110}{425} = \frac{5170}{425} \approx 12.16 \]

  • Untuk k=2 (Wanita):

\[ \frac{85 \times 173}{699} = \frac{14705}{699} \approx 21.04 \]

  • Total Penyebut:

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

  • \(\hat{\theta}_{MH} = 2.93\)
  • \(\log(2.93) \approx 1.075\)
  • \(Z_{0.975} = 1.96\)

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.

J. Uji Homogenitas: Statistik Breslow-Day

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:

  • \(a_j\) = jumlah kasus terpapar yang diamati dalam strata \(j\).
  • \(\tilde{a}_j\) = jumlah kasus terpapar yang diharapkan berdasarkan hipotesis nol.
  • \(\text{Var}(a_j | \hat{O}_R^{MH})\) = varians dari \(\tilde{a}_j\).

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:

  • \(m_{1j}\) adalah total observasi yang terpapar dalam strata \(j\).
  • \(n_{1j}\) adalah total kasus dalam strata \(j\).

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.

  • Persamaan Kuadrat Untuk Pria (j = 1):

\[ -119 \times 182 \times 2.93 + (331 - 119 + 2.93 \times (182 + 119)) \tilde{a}_1 + (1 - 2.93)\tilde{a}_1^2 = 0 \]

  • Persamaan Kuadrat Untuk Wanita (j = 2):

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

  • Untuk kelompok Pria (j = 1)

\[\tilde{a}_1 \approx 65.6\]

  • Untuk kelompok Wanita (j = 2)

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

  • \(\tilde{b}_j = m_{1j} - \tilde{a}_j\)
  • \(\tilde{c}_j = n_{1j} - \tilde{a}_j\)
  • \(\tilde{d}_j = m_{2j} - \tilde{c}_j\)

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

  • Untuk Pria (j = 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 \]

  • Untuk Wanita (j = 2):

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

  • \(a_j\) = jumlah kasus terpapar yang diamati dalam strata \(j\).
  • \(\tilde{a}_j\) = jumlah kasus terpapar yang diharapkan berdasarkan hipotesis nol.
  • \(\hat{V}ar(a_j|\hat{R}_{MH})\) = varians dari \(\tilde{a}_j\).

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.

IV. GENERALIZED LINEAR MODELS

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):

  1. Distribusi Data: Variabel respons berdistribusi exponential family
  2. Fungsi Link: Fungsi yang menghubungkan rata-rata dari distribusi data dengan kombinasi linier dari prediktor
  3. Fungsi Linear Prediktor: Suatu kombinasi linier dari variabel bebas (independen) yang diproyeksikan ke dalam model untuk memprediksi hasil variabel dependen.

A. Komponen 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:

1. Komponen acak (Random Component)

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:

  • \(a(y) = y^2\)
  • \(b(\theta) = \frac{1}{2\sigma^2}\)
  • \(t(\theta) = 1\)
  • \(s(y) = \frac{1}{\sqrt{2\pi\sigma^2}}\)
  • \(c(\theta) = -\frac{\mu^2}{2\sigma^2}\)
  • \(d(y) = -\frac{2\mu y}{2\sigma^2}\)

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:

  • Bagian yang tidak mengandung parameter \(s(y)\) adalah koefisien yang tidak tergantung pada parameter, yaitu \(\binom{n}{y}\).
  • Komponen fungsi eksponensial \(\exp \left( y \ln p + (n - y) \ln (1 - p) \right)\) mengandung ekspresi eksponensial.
    • \(a(y) = y\)
    • \(b(\theta) = \ln p - \ln (1 - p)\)
    • \(t(\theta) = 1\) (karena tidak ada faktor tambahan yang tergantung pada parameter di luar eksponensial)
    • \(c(\theta) = n \ln (1 - p)\)
    • \(d(y) = 0\)

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:

  • Bagian yang tidak mengandung parameter \(s(y)\) adalah \(\frac{1}{y!}\), yang tidak tergantung pada \(\lambda\).
  • Komponen fungsi eksponensial \(\exp \left( y \ln \lambda - \lambda \right)\) mengandung ekspresi eksponensial.
    • \(a(y) = y\)
    • \(b(\theta) = \ln \lambda\)
    • \(t(\theta) = 1\) (karena tidak ada faktor tambahan yang tergantung pada parameter di luar eksponensial)
    • \(c(\theta) = -\lambda\)
    • \(d(y) = 0\)

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.

2. Komponen sistematik (Systematic Component)

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.

B. GLM untuk Respon Biner

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\).

  1. Ekspektasi dari Respon Biner

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

  1. Varians dari Respon Biner

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

  1. Untuk n Observasi yang Independen dari Respon Biner

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

1. Model Probabilitas Linier

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

  1. Model ini sangat sederhana dan mudah untuk dipahami dan diterapkan.
  2. Tidak memerlukan distribusi tertentu untuk variabel dependen.

Kekurangan

  1. Probabilitas yang diprediksi bisa berada di luar kisaran [0, 1].
  2. Model ini tidak menjamin hasil yang optimal untuk klasifikasi biner karena tidak mempertimbangkan pembatasan probabilitas.

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.

a) Contoh Kasus

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

b) Estimasi Model dengan R

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.

c) Interpretasi Koefisien

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.

d) Statistik Model

Berikut adalah ukuran statistik model yang dibentuk:

  • Residual Standard Error : 0.1667. Ini mengukur seberapa jauh hasil prediksi model dari nilai yang diamati. Nilai ini relatif kecil, menunjukkan model yang baik.
  • R-squared : 0.9769. Ini berarti bahwa model ini dapat menjelaskan 97.69% variasi dalam data.
  • Adjusted R-squared : 0.9074. Ini mengoreksi R-squared untuk jumlah variabel dalam model dan menunjukkan bahwa model cukup baik dalam menjelaskan variasi data.
  • F-statistic : 14.07 dengan p-value 0.193, yang menunjukkan bahwa model ini tidak signifikan secara statistik. Hal ini berarti bahwa secara keseluruhan, variabel yang dimasukkan ke dalam model tidak memberikan kontribusi yang signifikan untuk memprediksi probabilitas pembelian.

e) Prediksi Probabilitas Pembelian

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%

2. Model Regresi Logistik

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:

  • \(P(Y=1|X)\) = probabilitas bahwa \(Y=1\) (misalnya, kejadian sukses).
  • \(\alpha\) = intercept atau 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 log-odds dari probabilitas kejadian.
  • \(X_1, X_2, \dots, X_p\) = variabel independen yang digunakan untuk memprediksi probabilitas kejadian.

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.

a) Contoh Kasus

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

b) Estimasi Model dengan R

# 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.

c) Interpretasi Koefisien

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.

d) Perhitungan Odds Ratio

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.

e) Plot Probabiliitas Prediksi

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:

  • Sumbu X pada plot ini merepresentasikan Usia pelanggan, yang berkisar antara 25 hingga 55 tahun.
  • Sumbu Y menunjukkan Pendapatan bulanan pelanggan, yang berkisar antara 3000 hingga 8000.
  • Sumbu Z menunjukkan probabilitas berlangganan premium yang diprediksi oleh model regresi logistik. Probabilitas ini berkisar antara 0 hingga 1, di mana nilai 0 menunjukkan bahwa pelanggan tidak berlangganan premium dan nilai 1 menunjukkan bahwa pelanggan berlangganan premium.
  • Warna kuning menunjukkan probabilitas yang lebih tinggi (dekat dengan 1), yang berarti pelanggan dengan kombinasi usia dan pendapatan tersebut lebih cenderung berlangganan premium.
  • Warna ungu menunjukkan probabilitas yang lebih rendah (dekat dengan 0), yang berarti pelanggan dengan kombinasi usia dan pendapatan tersebut cenderung tidak berlangganan premium.
  • Dari plot ini, kita dapat melihat bahwa probabilitas berlangganan premium (sumbu Z) meningkat dengan Usia yang lebih tinggi dan Pendapatan yang lebih besar. Namun, terdapat penurunan probabilitas pada sisi kanan (lebih tinggi di Usia dan Pendapatan) yang menunjukkan bahwa probabilitas berlangganan premium tidak selalu meningkat seiring dengan bertambahnya usia dan pendapatan. Hal ini menunjukkan adanya interaksi yang lebih kompleks antara variabel-variabel dalam model.

f) Prediksi dan Visualisasi Kurva Logit

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()

g) Evaluasi Model

# 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.

h) Prediksi Probabilitas untuk Pelanggan Baru

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.

i) Kesimpulan

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.

3. Model Regresi Probit

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.

a) Contoh Kasus

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.

b) Estimasi Model dengan R

# 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}) \]

c) Interpretasi Koefisien

Model tersebut dapat diinterpretasikan sebagai berikut:

  • Intercept (\(\alpha\)) = 2.737: Ini adalah log-odds kelayakan pinjaman ketika Usia, Pendapatan, dan Status Pekerjaan adalah 0.
  • Usia (\(\beta_1\)) = 0.04873: Setiap kenaikan 1 tahun pada usia pemohon meningkatkan log-odds kelayakan pinjaman sebesar 0.04873, tetapi koefisien ini tidak signifikan (p-value = 0.738).
  • Pendapatan (\(\beta_2\)) = -0.000001198: Setiap kenaikan 1 unit dalam pendapatan bulanan pemohon mengurangi log-odds kelayakan pinjaman sebesar -0.000001198, tetapi koefisien ini juga tidak signifikan (p-value = 0.449).
  • Status Pekerjaan (\(\beta_3\)) = 1.704: Pemohon yang memiliki pekerjaan tetap memiliki odds kelayakan pinjaman yang lebih tinggi sebesar 1.704 dibandingkan mereka yang tidak memiliki pekerjaan tetap, namun koefisien ini juga tidak signifikan (p-value = 0.298).

d) Prediksi Probabilitas untuk Pemohon Baru

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.

C. GLM untuk Data Cacah: Model Regresi Poisson

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:

  1. Kejadian bersifat independen: Kejadian satu peristiwa tidak mempengaruhi kejadian lainnya.

  2. 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} \]

  • Jika Rate Ratio > 1, maka variabel independen meningkatkan laju kejadian.
  • Jika Rate Ratio < 1, maka variabel independen mengurangi laju kejadian.
  • Jika Rate Ratio = 1, maka variabel independen tidak mempengaruhi laju kejadian.

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

a) Contoh Kasus

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.

b) Estimasi Model dengan R

# 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:

  • \(\mu_i\) = jumlah kecelakaan yang diprediksi untuk unit ke-\(i\) berdasarkan jumlah kendaraan yang melintas pada hari ke-\(i\).

c) Interpretasi Koefisien

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

  • Rate Ratio sebesar 1.0038 berarti bahwa setiap kenaikan 1 kendaraan yang melintas akan meningkatkan rate kecelakaan sebesar 0.38%. Ini menunjukkan hubungan positif antara jumlah kendaraan dan kecelakaan.

d) Signifikansi Statistik

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.

e) Plot Hasil Prediksi

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).

f) Diagnostik dan Overdispersion

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

  • Dispersion \(\approx 1\) : Model Poisson sesuai dengan data
  • Dispersion < 1 : Model Poisson underdispersi (pertimbangkan model lain)
  • Dispersion > 1 : Model Poisson overdispersi (gunakan model negatif binomial atau quasi-Poisson)

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.

g) Evaluasi Model

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:

  • Residuals tidak terlihat terdistribusi secara acak di sekitar garis referensi. Beberapa titik residual terkelompok di sekitar nilai 0, sementara beberapa titik lainnya tersebar lebih jauh.
  • Terdapat titik yang berada di bawah garis referensi (residual < 0) sangat jauh, menunjukkan bahwa model sedikit over-predict.

h) Prediksi Probabilitas

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.

i) Kesimpulan

  • 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.

D. Perbandingan Model

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)

V. INFERENSI GENERALIZED LINEAR MODELS

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.

A. Ekspektasi dan Varians

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)

  • Untuk regresi logistik, variabel respon mengikuti distribusi Binomial, dan fungsi link yang digunakan adalah logit:

\[ g(\mu) = \log\left(\frac{\mu}{1 - \mu}\right) \]

  • Dalam hal ini, ekspektasi \(\mu\) adalah probabilitas terjadinya suatu kejadian dan diberikan oleh:

\[ E(Y) = \frac{1}{1 + \exp(-\mathbf{X} \boldsymbol{\beta})} \]

3. Regresi Poisson (Poisson)

  • Jika distribusi respon mengikuti distribusi Poisson, fungsi link yang digunakan adalah logaritma:

\[ g(\mu) = \log(\mu) \]

  • Ekspektasi \(\mu\) dalam hal ini adalah nilai rata-rata dari jumlah kejadian dan diberikan oleh:

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

  1. Tentukkan Fungsi Momen dari Variabel Acak : Fungsi momen pertama adalah momen ke-1, yaitu ekspektasi:

\[ \mu_1 = E[X] \]

  1. Tuliskan Fungsi Momen Teoretis : Misalkan kita memiliki fungsi momen teoretis dari distribusi tertentu, seperti distribusi Normal yang memiliki momen pertama \(\mu_1 = \mu\).

  2. 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 \]

  1. Estimasi Parameter Berdasarkan Momen : Dengan membandingkan momen teoretis dan momen sampel, kita dapat mengestimasi parameter distribusi. Untuk contoh distribusi Normal, ekspektasi (\(\mu\)) dapat diestimasi dengan menggunakan momen pertama:

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

  1. Tentukkan Fungsi Momen dari Variabel Acak : Momen pertama adalah ekspektasi, yaitu \(E[X]\), dan momen kedua adalah \(E[X^2]\).

  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.

  3. 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 \]

  1. Estimasi Varians Berdasarkan Momen : Setelah mendapatkan momen pertama dan kedua, varians dapat dihitung dengan menggunakan rumus varians:

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

B. Metode Penaksiran dalam GLM

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

  1. 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.

  2. 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.

C. Metode Optimisasi dalam GLM

Dalam Generalized Linear Model (GLM), optimisasi digunakan untuk menemukan estimasi parameter model yang memaksimalkan fungsi log-likelihood.

1. Metode Newton-Rhapson

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

  1. Inisialisasi Parameter: Tentukan nilai awal untuk parameter model, \(\boldsymbol{\beta}_0\).

  2. Hitung Vektor Score dan Matriks Hessian: Hitung vektor turunan pertama dan matriks Hessian pada iterasi pertama.

  3. Perbarui Parameter: Parameter diperbarui dengan rumus:

\[ \beta_{k+1} = \beta_k - [H(\beta_k)]^{-1} U(\beta_k) \]

  1. Ulangi Hingga Konvergen: Ulangi langkah-langkah ini sampai perubahan parameter sangat kecil, menunjukkan bahwa konvergensi telah tercapai.

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.

2. Metode Fisher’s Scoring

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

  1. Vektor Skor (\(U(\boldsymbol{\beta})\)) dihitung sebagai turunan pertama dari log-likelihood terhadap parameter: \[ U(\beta) = \frac{\partial \ell(\beta)}{\partial \beta} \]

  2. Matriks Informasi Fisher (\(I(\boldsymbol{\beta})\)) dihitung sebagai harapan dari turunan kedua log-likelihood.

  3. Perbarui Parameter menggunakan rumus iteratif Fisher’s Scoring: \[ \beta_{\text{new}} = \beta_{\text{old}} - I^{-1}(\beta) U(\beta) \]

  4. 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.

3. Metode IRLS (Iteratively Reweighted Least Square)

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

  1. Pilih Estimasi Awal untuk Parameter (\(\boldsymbol{\beta}_0\)).

  2. Hitung fungsi link dan fungsi distribusi yang sesuai dengan model.

  3. Hitung Residu: Pada setiap iterasi, hitung residu antara nilai yang diprediksi dan nilai yang diamati.

  4. Hitung Matriks Bobot: Tentukan matriks bobot \(W\) berdasarkan residual dan distribusi yang digunakan.

  5. 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.

  1. Iterasi: Ulangi langkah 3 sampai konvergensi tercapai (yaitu perubahan parameter menjadi sangat kecil).

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.

D. Diagnostik Model

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.

1. Statistik Devians

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).

2. Statistik Chi-Kuadrat Pearson

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.

E. Analisis Residual

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.

1. Pearson Residual

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.

2. Standardized Residual

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\).

3. Perbandingan Pearson Residual dan Standardized Residual

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.

F. Detail Metode Estimasi dan Inferensi Regresi Logistik

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.

1. Estimasi Parameter

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

  1. Turunan Pertama (Score Function)

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

  1. Turunan Kedua (Hessian Matrix)

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

  1. Iterasi Newton-Raphson

\[ \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).

2. Inferensi Parameter

Tujuan utama dari inferensi parameter adalah untuk memperkirakan nilai parameter yang tidak diketahui dan untuk menguji hipotesis tentang parameter tersebut.

a) Uji Wald

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).

b) Uji Likelihood Ratio (Chi-Square)

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.

3. Ukuran Kebaikan Model

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:

a) Akaike Information Criterion (AIC)

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

b) Bayesian Information Criterion (BIC)

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

  1. AIC dan BIC keduanya digunakan untuk memilih model yang terbaik, tetapi BIC lebih konservatif dalam memilih model dengan parameter lebih sedikit.

  2. AIC cenderung lebih toleran terhadap model dengan lebih banyak parameter karena hanya memberikan penalti yang lebih kecil untuk kompleksitas model.

  3. BIC memberikan penalti lebih besar terhadap model yang lebih kompleks, sehingga lebih menghindari overfitting.

G. Detail Metode Estimasi dan Inferensi Regresi Poisson

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.

1. Estimasi Parameter (MLE)

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:

  1. Definisikan Model regresi Poisson

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

  1. Mencari Log-likelihood yang dimaksimalkan

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

  1. Formulasi iteratif

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

2. Inferensi Parameter

a) Uji Wald

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).

b) Uji Likelihood Ratio (Chi-Square)

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.

3. Ukuran Kebaikan Model

a) Akaike Information Criterion (AIC)

Perhitungan dengan R:

AIC(model)
## [1] 168.9702

b) Bayesian Information Criterion (BIC)

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.

VI. REGRESI LOGISTIK

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:

  1. 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).

  2. 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).

  3. 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).

A. Model Dengan Prediktor Nominal, Ordinal dan Rasio

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.

1. Treat Ordinal sebagai Nominal (Dummy)

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.

a) Modeling

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

b) Ringkasan Koefisien Model

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 **

c) Interpretasi Koefisien

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:

  1. (Intercept)
    • Koefisien: -1.0219
    • Odds ratio (exp(-1.0219)): 0.360
    • p-value: 0.02451
    • Interpretasi: Ketika semua prediktor pada kategori referensi (metode pembayaran E-Wallet, kepuasan Rendah, total pengeluaran = 0), odds pembelian ulang adalah 0.360. Nilai p-value < 0.05 menandakan bahwa intercept ini secara statistik signifikan.
  2. metode_pembayaranKartu Kredit
    • Koefisien: -0.4779
    • Odds ratio (exp(-0.4779)): 0.620
    • p-value: 0.01710
    • Interpretasi: Odds pelanggan yang menggunakan Kartu Kredit untuk pembelian ulang adalah 0.62 kali odds pengguna E-Wallet, dengan variabel lain tetap. p-value < 0.05 menunjukkan bahwa perbedaan ini signifikan secara statistik, sehingga penggunaan Kartu Kredit memang berasosiasi negatif dengan peluang pembelian ulang.
  3. tingkat_kepuasanSedang
    • Koefisien: 1.0680
    • Odds ratio (exp(1.0680)): 2.909
    • p-value: 0.0000146
    • Interpretasi: Odds pembelian ulang pelanggan dengan tingkat kepuasan Sedang adalah 2.91 kali dibandingkan dengan kepuasan Rendah, variabel lain tetap. Nilai p-value yang sangat kecil (< 0.001) menunjukkan hubungan ini sangat signifikan secara statistik.
  4. tingkat_kepuasanTinggi
    • Koefisien: 1.2589
    • Odds ratio (exp(1.2589)): 3.520
    • p-value: 0.0000044
    • Interpretasi: Odds pembelian ulang pelanggan dengan kepuasan Tinggi adalah 3.52 kali dibandingkan dengan kepuasan Rendah. Nilai p-value yang jauh di bawah 0.05 menunjukkan efek ini sangat signifikan secara statistik.
  5. total_pengeluaran
    • Koefisien: 0.0052
    • Odds ratio (exp(0.0052)): 1.005
    • p-value: 0.00931
    • Interpretasi: Setiap kenaikan satu unit total pengeluaran meningkatkan odds pembelian ulang sebesar 1.005 kali lipat (naik 0.5%). p-value < 0.05 mengindikasikan bahwa pengaruh total pengeluaran pada odds pembelian ulang signifikan secara statistik meskipun efeknya relatif kecil per satuan pengeluaran.

d) Goodness-of-Fit

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).

  • Null Deviance: 636.98 (df = 499)
  • Residual Deviance: 599.75 (df = 495)

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)

  • Nilai AIC: 609.75

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² Nominal: 0.05844768

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.

e) Visualisasi Prediksi

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.

f) Kesimpulan

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.

2. Treat Ordinal sebagai Rasio (Numeric Rank)

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.

a) Modeling

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:

  • \(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\) : Skor tingkat kepuasan (1 = Rendah, 2 = Sedang, 3 = Tinggi).
  • \(x_3\) : Total pengeluaran (dalam satuan sesuai data, misal ribuan rupiah).

Probabilitas:

\[ P(\text{pembelian ulang} = 1) = \frac{1}{1 + e^{-y}} \]

dengan:

\[ y = -1.4356 - 0.4637x_1 + 0.6198x_2 + 0.00527x_3 \]

b) Ringkasan Koefisien Model

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 **

c) Interpretasi Koefisien

  1. Intercept (-1.435638, p = 0.00488)

    • Penjelasan: Intercept adalah log-odds pembelian ulang ketika semua variabel independen berada pada level referensi (metode_pembayaran = E-Wallet, tingkat_kepuasan_numeric = 0, total_pengeluaran = 0). Nilai negatif (-1.435638) menunjukkan probabilitas pembelian ulang sangat rendah dalam kondisi dasar ini.
    • Signifikansi: Signifikan pada level 0.01 (p = 0.00488), menunjukkan baseline log-odds yang kuat.
  2. metode_pembayaranKartu Kredit (-0.463660, p = 0.01978)

    • Penjelasan: Koefisien negatif menunjukkan pelanggan yang menggunakan Kartu Kredit memiliki log-odds pembelian ulang lebih rendah sebesar 0.463660 dibandingkan E-Wallet (baseline). Dalam odds, pelanggan Kartu Kredit memiliki odds pembelian ulang sekitar exp(-0.463660) ≈ 0.63 kali lebih rendah.
    • Signifikansi: Signifikan pada level 0.05 (p = 0.01978), menunjukkan metode pembayaran berpengaruh negatif.
    • Implikasi: Promosikan E-Wallet (misalnya, dengan diskon) untuk meningkatkan retensi.
  3. tingkat_kepuasan_numeric (0.619785, p = 9.9e-06)

    • Penjelasan: Koefisien positif menunjukkan setiap peningkatan satu unit numerik tingkat kepuasan (misalnya, dari Rendah ke Sedang) meningkatkan log-odds pembelian ulang sebesar 0.619785. Dalam odds, odds pembelian ulang meningkat sekitar exp(0.619785) ≈ 1.86 kali per unit.
    • Signifikansi: Sangat signifikan (p < 0.001), menjadikan tingkat kepuasan prediktor utama.
    • Implikasi: Tingkatkan kepuasan pelanggan (misalnya, dengan layanan lebih baik) untuk mendorong pembelian ulang.
  4. total_pengeluaran (0.005274, p = 0.00810)

    • Penjelasan: Koefisien positif menunjukkan setiap peningkatan satu unit total pengeluaran meningkatkan log-odds pembelian ulang sebesar 0.005274. Dalam odds, setiap 100 unit pengeluaran meningkatkan odds sebesar exp(0.005274 * 100) ≈ 1.69 kali.
    • Signifikansi: Signifikan pada level 0.01 (p = 0.00810), menunjukkan pelanggan dengan pengeluaran tinggi lebih mungkin membeli ulang.
    • Implikasi: Targetkan pelanggan berpengeluaran tinggi untuk program loyalitas guna mempertahankan pembelian.

d) Goodness-of-Fit

Null Deviance dan Residual Deviance

  • Null Deviance: 636.98 (df = 499)
  • Residual Deviance: 604.70 (df = 496)

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)

  • Nilai AIC: 612.7

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²: 0.05066812

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.

e) Visualisasi Prediksi

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.

  • Tren Umum: Probabilitas pembelian ulang meningkat seiring total pengeluaran, sesuai dengan koefisien total_pengeluaran (0.005274, p = 0.00810), dengan tren yang konsisten di semua tingkat kepuasan.
  • Perbedaan Berdasarkan Tingkat Kepuasan:
    • Tingkat kepuasan 3 (biru) menunjukkan probabilitas tertinggi (mendekati 0.9 pada total pengeluaran tinggi), mencerminkan efek kuat koefisien tingkat_kepuasan_numeric (0.619785, p = 9.9e-06).
    • Tingkat kepuasan 2 (hijau) memiliki probabilitas menengah, sedangkan 1 (merah) menunjukkan probabilitas terendah, konsisten dengan urutan numerik.
  • Kesesuaian dengan Model: Pola ini sejalan dengan model, di mana peningkatan tingkat_kepuasan_numeric dan total_pengeluaran meningkatkan probabilitas secara linier, sementara metode_pembayaranKartu Kredit (-0.463660) memengaruhi penurunan relatif.

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.

f) Kesimpulan

Berdasarkan analisis yang telah dilakukan, diperoleh kesimpulan sebagai berikut:

  • Model regresi logistik biner menunjukkan tingkat_kepuasan_numeric (0.619785, p = 9.9e-06) sebagai prediktor terkuat, di mana setiap peningkatan satu unit meningkatkan odds pembelian ulang 1.86 kali.
  • Total_pengeluaran (0.005274, p = 0.00810) juga berpengaruh positif, dengan odds meningkat 1.69 kali per 100 unit pengeluaran.
  • Metode_pembayaranKartu Kredit (-0.463660, p = 0.01978) menurunkan odds sebesar 0.63 kali dibandingkan E-Wallet.
  • Penurunan deviance (636.98 ke 604.70) dan AIC 612.7 menunjukkan model lebih baik dari model nol.
  • McFadden R² (0.0507) mengindikasikan kecocokan model yang rendah, menyarankan perlunya prediktor tambahan.
  • Rekomendasi: Fokus pada peningkatan kepuasan pelanggan dan promosi E-Wallet untuk meningkatkan retensi.

3. Perbandingan Model

a) AIC Model

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 memiliki AIC 609.7455, sedikit lebih rendah dibandingkan model numeric dengan AIC 612.7009.
  • Nilai AIC yang lebih rendah pada model nominal menunjukkan kecocokan yang sedikit lebih baik dengan keseimbangan kecocokan dan kompleksitas, meskipun perbedaannya kecil (2.9554).
  • Model nominal dapat dipilih sebagai pendekatan yang lebih optimal berdasarkan AIC, namun keduanya cukup kompetitif untuk analisis lebih lanjut.

b) Kesimpulan

  • 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.

B. Pemilihan Model Regresi Logistik dan Evaluasi

1. Membangun Model Regresi Logistik

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.

a) Pendekatan Confirmatory

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:

  1. Definisikan Hipotesis: Berdasarkan teori, misalnya, tingkat kepuasan dan total pengeluaran memengaruhi pembelian ulang.
  2. Pilih Variabel: Pilih prediktor yang relevan (misalnya, metode_pembayaran, tingkat_kepuasan, total_pengeluaran) berdasarkan hipotesis.
  3. Uji Model: Gunakan regresi logistik untuk mengestimasi koefisien dan uji signifikansi (p-value) untuk mengkonfirmasi atau menolak hipotesis.
  4. Evaluasi Kecocokan: Gunakan metrik seperti deviance, AIC, dan pseudo-R² (misalnya, McFadden R²) untuk menilai performa model.

Keunggulan:

  • Mengurangi risiko overfitting dengan membatasi variabel pada yang telah dihipotesiskan.
  • Memberikan landasan ilmiah yang kuat untuk interpretasi hasil.

Kelemahan:

  • Terbatas pada hipotesis awal, sehingga mungkin melewatkan hubungan tak terduga.
  • Memerlukan pengetahuan domain yang mendalam sebelum analisis.

b) Pendekatan Exploratory

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:

  1. Eksplorasi Data: Analisis deskriptif dan visualisasi (misalnya, scatter plot total_pengeluaran vs prediksi probabilitas) untuk mengidentifikasi tren.
  2. Seleksi Variabel: Uji berbagai kombinasi prediktor (misalnya, metode_pembayaran, tingkat_kepuasan, total_pengeluaran) untuk melihat yang paling berpengaruh.
  3. Pembangunan Model: Bangun dan sesuaikan model secara iteratif, mengevaluasi dengan metrik seperti deviance, AIC, dan pseudo-R².
  4. Validasi: Periksa hasil untuk hipotesis baru yang dapat diuji lebih lanjut.

Keunggulan:

  • Fleksibel untuk menemukan hubungan tak terduga dalam data.
  • Berguna pada tahap awal untuk menghasilkan wawasan sebelum analisis konfirmatori.

Kelemahan:

  • Berisiko overfitting jika terlalu banyak variabel diuji tanpa validasi eksternal.
  • Hasilnya mungkin kurang robust tanpa landasan teoritis.

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})}} \]

2. Metode Stepwise, Forward, dan Backward

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.

3. Evaluasi Model

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.

a) ROC & AUC

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):

  • Sensitivity naik: Model menangkap lebih banyak kasus positif (TP meningkat), tetapi FP juga meningkat.
  • Specificity turun: Lebih banyak kasus negatif salah diklasifikasikan sebagai positif.

Jika threshold dinaikkan (lebih ketat):

  • Sensitivity turun: Model kehilangan beberapa kasus positif (FN meningkat).
  • Specificity naik: Lebih sedikit kasus negatif yang salah diklasifikasikan (FP menurun).

3. Area Under Curve (AUC)

AUC mengukur keseluruhan performa model:

  • AUC = 0.5: Performa model sama dengan tebakan acak (tidak ada kemampuan diskriminasi).
  • AUC > 0.7: Model cukup baik.
  • AUC > 0.9: Model sangat baik; semakin mendekati 1, semakin baik kemampuan diskriminasi.
  • AUC = 1: Model sempurna, mampu membedakan semua positif dan negatif tanpa kesalahan.
  • AUC dikenal juga sebagai concordance index, yaitu probabilitas bahwa model memberikan nilai skor probabilitas yang lebih tinggi untuk kasus positif daripada kasus negatif.

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

  • Kurva ROC: Plot menunjukkan kurva yang naik tajam ke (0,1) dan mendatar mendekati (1,1), mengindikasikan performa model yang sangat baik dalam membedakan kelas positif dan negatif, dengan Sensitivity tinggi pada False Positive Rate rendah.
  • AUC (0.8576): Nilai AUC 0.8576 menunjukkan kemampuan diskriminasi model yang sangat baik (AUC > 0.8), jauh lebih baik dari acak (0.5), sehingga model dapat diandalkan untuk prediksi (misalnya, pembelian ulang).
  • Konteks Model: Berdasarkan step_both (AIC 188.8671, tanpa \(x_2\)), model yang lebih sederhana ini tetap memberikan performa kuat, cocok untuk aplikasi praktis seperti strategi retensi pelanggan.

b) Pseudo R-Squared

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.

d) Tabel Klasifikasi dan Evaluasi

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.

e) PR Curve

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

    • FN (False Negative): Kasus positif yang salah diprediksi sebagai negatif.

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.

4. Metode Perbandingan Model

Metode perbandingan model dalam regresi logistik melibatkan beberapa pendekatan kunci untuk mengevaluasi kecocokan dan kompleksitas model.

a) Deviance

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.

b) AIC (Akaike Information Criterion)

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\).

c) Likelihood-Ratio

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.

d) Prinsip Parsimony

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.

5. Simulasi Pemilihan Threshold Optimal

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.

6. Ringkasan Evaluasi Model

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.

VII. REGRESI LOGISTIK MULTINOMIAL

Regresi logistik multinomial adalah sebuah metode analisis statistik yang digunakan untuk memprediksi variabel dependen yang bersifat nominal dengan lebih dari dua kategori.

A. Distribusi Multinomial

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%.

B. Persamaan Umum Multinomial Logistic Regression

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

  1. Independensi Observasi: Observasi antar individu tidak berkorelasi.

  2. Independence of Irrelevant Alternatives (IIA): Penambahan atau penghapusan kategori lain tidak memengaruhi rasio odds antara dua kategori.

  3. Linearitas Logit: Hubungan antara variabel independen dan log-odds bersifat linier.

C. Baseline-Category Logit Model

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().

D. Estimasi Parameter

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

  1. 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}) \]

  2. Optimasi: Parameter \(\boldsymbol{\beta}\) dipilih dengan memaksimalkan \(\ell(\boldsymbol{\beta})\) menggunakan algoritma numerik seperti Newton-Raphson atau metode gradien.

  3. 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.

E. Contoh Kasus

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.

1. Simulasi Data

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.

2. Estimasi Model

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.

3. Interpretasi Koefisien

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.

4. Prediksi

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.

5. Visualisasi

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):

    • Titik merah (Car) tersebar di seluruh rentang Salary dan Tenure, tetapi lebih banyak terlihat pada Salary yang lebih tinggi (> 5000 USD) dan Tenure yang lebih panjang (> 5 tahun). Ini sesuai dengan desain simulasi di mana “Car” cenderung dipilih oleh karyawan dengan Salary tinggi dan Tenure tinggi.
  • Kategori Bike (Hijau):

    • Titik hijau (Bike) sangat sedikit, hanya ada satu titik yang terlihat di Salary sekitar 4000 USD dan Tenure sekitar 2 tahun. Ini menunjukkan bahwa model jarang memprediksi “Bike”, kemungkinan karena distribusi data yang tidak seimbang atau hubungan yang lemah dengan Salary dan Tenure.
  • Kategori Public (Biru):

    • Titik biru (Public) juga tersebar di seluruh plot, tetapi lebih terkonsentrasi pada Salary sedang (4000–5500 USD) dan Tenure sedang (3–6 tahun), sesuai dengan desain simulasi di mana “Public” cenderung dipilih pada kondisi tersebut.

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:

    1. Menyeimbangkan distribusi kategori Transport dalam data, terutama meningkatkan proporsi “Bike”.
    2. Menambahkan variabel prediktor lain yang lebih relevan (misalnya, jarak rumah ke kantor).
    3. Menyesuaikan ambang batas Salary dan Tenure untuk membuat pemisahan kategori lebih jelas.

6. Kesimpulan

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.

VIII. REGRESI LOGISTIK ORDINAL

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

  1. Proporsional Odds: Koefisien \(\beta\) konsisten di semua level kategori, sehingga rasio odds tidak bergantung pada ambang batas tertentu.
  2. Independensi Observasi: Observasi antar individu tidak berkorelasi.
  3. Linearitas Logit: Hubungan antara variabel independen dan log-odds bersifat linier.

Model ini sering digunakan untuk analisis seperti penilaian kepuasan (misalnya, sangat tidak puas hingga sangat puas), tingkat pendidikan, atau skala kesehatan dengan urutan tertentu.

A. Konsep Cumulative Logit Model

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.

B. Interpretasi Koefisien

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).

C. Asumsi Paralelisme

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)

D. Estimasi Parameter

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:

  1. 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.

  2. Log-Likelihood: Untuk mempermudah optimasi, digunakan log-likelihood: \[ \ell(\theta, \beta) = \sum_{i=1}^n \log P(Y_i | \mathbf{x}_i, \theta, \beta) \]

  3. 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

  1. Konsistensi: Estimator MLE akan mendekati nilai parameter sebenarnya seiring bertambahnya ukuran sampel.

  2. Efisiensi: Dalam kondisi tertentu, MLE memberikan variansi terkecil di antara estimator yang tidak bias.

  3. 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.

E. Studi Kasus

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

1. Estimasi Model

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.

2. Uji Asumsi Proportional Odds

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.

3. Interpretasi Koefisien dan P-Value

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.

4. Prediksi Probabilitas

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.

F. Goodness-of-Fit

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).

G. Alternatif Model Ordinal

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.

IX. MODEL LOG LINEAR DUA ARAH

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

A. Studi Kasus

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.

B. Model Saturated

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.

C. Model Independent

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.

D. Odds Ratio dan Interpretasi

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.

E. Estimasi Parameter

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:

  1. Inisialisasi frekuensi awal untuk setiap sel berdasarkan distribusi seragam atau estimasi kasar.

  2. Sesuaikan frekuensi yang diharapkan untuk setiap baris agar sesuai dengan total baris yang diamati, dengan mempertahankan proporsi relatif.

  3. Sesuaikan frekuensi yang diharapkan untuk setiap kolom agar sesuai dengan total kolom yang diamati, dengan mempertahankan proporsi dari langkah sebelumnya.

  4. 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.

F. Perbandingan Model

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

anova(model_indep, model_saturated)
## LR tests for hierarchical log-linear models
## 
## Model 1:
##  ~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.

X. MODEL LOG LINEAR TIGA ARAH

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.

A. Jenis-jenis Model

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.


1. Model Saturated

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.


2. Model Homogen (No Three-Way Interaction)

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.


3. Model Conditional Independence

Pada model ini, dimasukkan efek utama dan beberapa interaksi dua arah saja, tergantung pada variabel kondisi. Ada tiga variasi berdasarkan variabel yang dijadikan kondisi.

a. Conditional pada X

\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ij}^{XY} + \lambda_{ik}^{XZ} \]

  • Memasukkan interaksi antara X dengan Y dan X dengan Z.

b. Conditional pada Y

\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ij}^{XY} + \lambda_{jk}^{YZ} \]

  • Memasukkan interaksi antara Y dengan X dan Y dengan Z.

c. Conditional pada Z

\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ik}^{XZ} + \lambda_{jk}^{YZ} \]

  • Memasukkan interaksi antara Z dengan X dan Z dengan Y.

Ciri-ciri:

  • Menyatakan bahwa dua variabel tidak saling bergantung jika sudah dikondisikan pada variabel ketiga.

4. Model Joint Independence

Model ini mengasumsikan bahwa dua dari tiga variabel saling independen terhadap variabel ketiga, dengan memasukkan hanya satu interaksi dua arah.

a. X dan Y independen terhadap Z

\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ij}^{XY} \]

b. X dan Z independen terhadap Y

\[ \log(\mu_{ijk}) = \lambda + \lambda_i^X + \lambda_j^Y + \lambda_k^Z + \lambda_{ik}^{XZ} \]

c. Y dan Z independen terhadap X

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


5. Model Mutual Independence (Tanpa Interaksi)

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.

B. Pengujian Interaksi

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

  1. Mulai dari Model Saturated
  2. Uji \(\rightarrow\) Model Homogeneous
  3. Uji \(\rightarrow\) Model Conditional Independence
  4. Uji \(\rightarrow\) Model Joint Independence
  5. Uji \(\rightarrow\) Model Independence

Catatan: Jika pada suatu tahap model ditolak, pengujian bisa dihentikan di tahap tersebut. Model yang diambil adalah model yang memiliki interaksi signifikan.

C. Studi Kasus

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.

D. Pembuatan Model

1. Model Saturated

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

  • Goodness-of-fit model saturated ditandai dengan nilai residual deviance yang hampir nol (1.7986e-14) pada 0 degrees of freedom. Ini menunjukkan bahwa model sepenuhnya cocok dengan data (karena semua interaksi tiga arah diikutkan).
  • Null deviance yang jauh lebih besar (1632) juga menegaskan bahwa model saturated memberikan peningkatan yang signifikan dalam menjelaskan data dibandingkan model intercept saja.
  • AIC = 103.02 dapat digunakan untuk perbandingan dengan model yang lebih sederhana.
  • Secara praktis, ini berarti model saturated menggambarkan pola frekuensi persis (tidak ada penyimpangan), tapi interpretasi harus hati-hati: model terlalu kompleks dan tidak menyederhanakan pola relasi yang mungkin lebih berguna dalam analisis parsimonious.

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.

2. Model Homogenous

Model log-linear homogenous memasukkan semua efek utama dan semua interaksi dua arah, tanpa interaksi tiga arah. Secara matematis, model ini dapat dituliskan sebagai berikut:

\[ \log(\mu_{ijk}) = \lambda + \lambda_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.

3. Uji Interaksi (Saturated vs Homogenous)

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.

4. Model Conditional on X

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.

5. Uji Interaksi (Homogenous vs Conditional on X)

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.

6. Model Conditional on Y

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:

  • (Intercept): Frekuensi baseline yang sangat besar (Exp(Coef)=457), untuk pria yang diterima di Dept A.
  • AdmitRejected: Mahasiswa yang ditolak memiliki expected count 0.46 kali lebih kecil dibandingkan yang diterima.
  • GenderFemale: Wanita memiliki expected count 0.31 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.62 dan 0.54).
  • AdmitRejected:DeptC: Mahasiswa yang ditolak di Dept C memiliki expected count sekitar 3.35 kali lebih tinggi dibandingkan yang diterima, menunjukkan pola khusus di Dept C.
  • AdmitRejected:GenderFemale: Wanita yang ditolak memiliki expected count 1.84 kali lebih besar dibandingkan baseline (pria yang diterima), menunjukkan pola unik di data.

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.

7. Uji Interaksi (Homogenous vs Conditional on Y)

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.

8. Model Conditional on Z

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

  • (Intercept): Baseline frekuensi sangat besar (Exp(Coef)=475), untuk pria yang diterima di Dept A.
  • AdmitRejected: Mahasiswa yang ditolak memiliki expected count sekitar 0.73 kali lebih kecil dibandingkan yang diterima.
  • GenderFemale: Wanita memiliki expected count 0.096 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.68 dan 0.39).
  • GenderFemale:DeptC: Wanita di Dept C memiliki expected count sekitar 13.9 kali lebih besar dibandingkan baseline, menunjukkan pola yang sangat unik.
  • AdmitRejected:GenderFemale: Wanita yang ditolak memiliki expected count 1.84 kali lebih besar dibandingkan baseline pria yang diterima.

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.

9. Uji Interaksi (Homogenous vs Conditional on Z)

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.

E. Pemilihan Model Terbaik

1. Ringkasan Model Log Linier

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

2. Ringkasan Pengujian Interaksi 3 Arah dan 2 Arah

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

3. Kesimpulan Pemilihan Model Terbaik

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.

F. Model Terbaik

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

  • (Intercept): Nilai baseline (Exp(Coef)=531.43), untuk 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 expected count 0.13 kali lebih kecil dibandingkan pria.
  • DeptB: Mahasiswa di Dept B memiliki expected count sekitar 0.67 kali lebih kecil dibandingkan Dept A.
  • DeptC: Mahasiswa di Dept C memiliki expected count sekitar 0.21 kali lebih kecil dibandingkan Dept A.
  • AdmitRejected:DeptB: Interaksi ini tidak signifikan, dengan expected count relatif stabil (1.05 kali baseline).
  • AdmitRejected:DeptC: Mahasiswa yang ditolak di Dept C memiliki expected count sekitar 3.35 kali lebih tinggi dibandingkan yang diterima, menunjukkan pola khusus di Dept C.
  • GenderFemale:DeptB: Wanita di Dept B memiliki expected count sekitar 0.34 kali lebih kecil dibandingkan pria di Dept B.
  • GenderFemale:DeptC: Wanita di Dept C memiliki expected count 13.9 kali lebih besar dibandingkan pria di Dept A, menunjukkan pola penerimaan yang sangat berbeda di Dept C.

Interpretasi Goodness-of-Fit

  • Model final memiliki residual deviance sebesar 20.064 (df=3), yang relatif kecil dibandingkan null deviance (1632). Hal ini menunjukkan bahwa model final cukup baik dalam menjelaskan variasi data.
  • Selain itu, AIC=117.08 menunjukkan trade-off yang wajar antara kecocokan model dan kompleksitasnya, menjadikan model ini parsimonious dan stabil.

Kesimpulan Model Final

  • Model final ini hanya mencakup efek utama serta interaksi dua arah signifikan antara Dept dengan Admit dan Dept dengan Gender, tanpa interaksi antara status penerimaan (Y) dan jenis kelamin (Z).
  • Model ini berhasil menangkap pola utama yang signifikan dalam data penerimaan mahasiswa di tiga departemen, sambil tetap menjaga parsimony dan kemudahan interpretasi.

G. Nilai Dugaan Model Terbaik

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.

1. Perhitungan Manual

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

2. Perhitungan Dengan R

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

REFERENSI

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.