1 Pendahuluan

Analisis tabel kontingensi merupakan salah satu alat utama dalam Analisis Data Kategori untuk menguji dan mengukur hubungan (asosiasi) antara dua variabel kategorik. Pada laporan ini dibahas dua kasus: (1) tabel kontingensi 2x2 mengenai hubungan kebiasaan merokok dengan kejadian kanker paru, dan (2) tabel kontingensi 2x3 mengenai hubungan gender dengan identifikasi partai politik.

Pada Kasus 1, dilakukan estimasi titik dan interval kepercayaan untuk proporsi, Risk Difference (RD), Relative Risk (RR), dan Odds Ratio (OR), serta perbandingan beberapa metode uji hipotesis: uji dua proporsi, uji chi-square independensi, likelihood ratio test, dan Fisher exact test.

Pada Kasus 2, dilakukan uji chi-square independensi untuk tabel 2x3, perhitungan frekuensi harapan, analisis residual, serta partisi chi-square untuk mengetahui sumber asosiasi yang dominan.

Seluruh analisis dikerjakan menggunakan perangkat lunak R.

2 Data

2.1 Paket yang Digunakan

# Paket yang dibutuhkan
library(vcd)          # untuk mosaic plot dan association plot
library(ggplot2)       # untuk visualisasi
library(knitr)          # untuk tabel rapi
library(epitools)     # untuk estimasi Relative Risk dan Odds Ratio (analisis epidemiologi)
library(DescTools)    # untuk Likelihood Ratio Test (G-Test)

Paket epitools digunakan karena menyediakan fungsi riskratio() dan oddsratio() yang telah terverifikasi untuk perhitungan estimasi titik beserta interval kepercayaan ukuran asosiasi epidemiologis (RR dan OR), sehingga hasil lebih andal dan mengurangi risiko kesalahan pada perhitungan manual. Paket DescTools digunakan karena menyediakan fungsi GTest() yang mengimplementasikan likelihood ratio test (uji G²) secara baku sesuai literatur analisis data kategorik (Agresti, 2013).

2.2 Data Kasus 1: Merokok dan Kanker Paru

# Membentuk tabel kontingensi 2x2
tabel1 <- matrix(c(688, 650,
                    21, 59),
                  nrow = 2, byrow = TRUE,
                  dimnames = list(
                    Status_Merokok = c("Smoker", "Non-Smoker"),
                    Cancer_Status  = c("Cancer (+)", "Control (-)")
                  ))
tabel_cantik(addmargins(tabel1), caption = "Tabel Kontingensi 2x2: Status Merokok vs Kanker Paru")
Tabel Kontingensi 2x2: Status Merokok vs Kanker Paru
Cancer (+) Control (-) Sum
Smoker 688 650 1338
Non-Smoker 21 59 80
Sum 709 709 1418

Tabel di atas menyajikan data 1.418 subjek yang dikelompokkan berdasarkan status merokok (Smoker/Non-Smoker) dan status kanker paru (Cancer+/Control-). Dari 1.338 perokok, 688 orang mengalami kanker paru, sedangkan dari 80 non-perokok, hanya 21 orang yang mengalami kanker paru.

2.3 Data Kasus 2: Gender dan Identifikasi Partai Politik

# Membentuk tabel kontingensi 2x3
tabel2 <- matrix(c(495, 272, 590,
                    330, 265, 498),
                  nrow = 2, byrow = TRUE,
                  dimnames = list(
                    Gender = c("Female", "Male"),
                    Partai = c("Democrat", "Republican", "Independent")
                  ))
tabel_cantik(addmargins(tabel2), caption = "Tabel Kontingensi 2x3: Gender vs Identifikasi Partai Politik")
Tabel Kontingensi 2x3: Gender vs Identifikasi Partai Politik
Democrat Republican Independent Sum
Female 495 272 590 1357
Male 330 265 498 1093
Sum 825 537 1088 2450

Tabel ini menyajikan data 2.450 responden yang diklasifikasikan berdasarkan gender (Female/Male) dan identifikasi partai politik (Democrat/Republican/Independent).

3 Metode Analisis

Analisis pada Kasus 1 menggunakan pendekatan estimasi proporsi dan ukuran asosiasi (RD, RR, OR) beserta interval kepercayaan 95%, dilanjutkan dengan empat metode uji independensi/perbandingan proporsi: uji dua proporsi (uji Z), uji chi-square Pearson, uji likelihood ratio (G²), dan uji eksak Fisher. Pada Kasus 2, digunakan uji chi-square independensi untuk tabel r x c, analisis residual standar (standardized residual), serta partisi chi-square menjadi dua komponen independen (2 derajat bebas menjadi dua komponen 1 derajat bebas) untuk melihat sumber utama asosiasi.


4 Kasus 1: Tabel Kontingensi 2 x 2

4.1 Soal 1: Penyusunan Tabel Kontingensi

Tabel kontingensi 2x2 telah disusun pada bagian Data di atas. Baris menyatakan status merokok (Smoker, Non-Smoker), dan kolom menyatakan status kanker paru (Cancer+, Control-).

4.2 Soal 2: Estimasi Titik Proporsi

Teori singkat: Proporsi kejadian kanker paru pada suatu kelompok diestimasi dengan \(\hat{p} = x/n\), dengan \(x\) jumlah kasus kanker dan \(n\) jumlah total pada kelompok tersebut.

p_smoker <- 688/1338
p_nonsmoker <- 21/80

cat("Estimasi proporsi kanker paru pada Smoker    :", round(p_smoker, 4), "\n")
## Estimasi proporsi kanker paru pada Smoker    : 0.5142
cat("Estimasi proporsi kanker paru pada Non-Smoker:", round(p_nonsmoker, 4), "\n")
## Estimasi proporsi kanker paru pada Non-Smoker: 0.2625

Interpretasi substantif: Proporsi kejadian kanker paru pada kelompok perokok (0.5142 atau sekitar 51,4%) jauh lebih tinggi dibandingkan kelompok bukan perokok (0.2625 atau sekitar 26,3%). Secara deskriptif hal ini mengindikasikan adanya kecenderungan hubungan antara merokok dan kejadian kanker paru, namun perlu dikonfirmasi dengan pengujian dan interval kepercayaan.

4.3 Soal 3: Interval Kepercayaan 95% untuk Proporsi, RD, RR, dan OR

Rumus dan metode:

Interval kepercayaan proporsi menggunakan fungsi prop.test(). Perlu dicatat bahwa prop.test() tidak menggunakan interval Wald sederhana, melainkan interval berbasis statistik chi-square dengan koreksi Yates opsional yang secara asimtotik ekuivalen dengan Wilson Score Interval:

\[\left(\hat p + \frac{z^2}{2n}\right) \pm z\sqrt{\dfrac{\hat p(1-\hat p)}{n}+\dfrac{z^2}{4n^2}} \; \Big/ \; \left(1+\frac{z^2}{n}\right)\]

Interval Wilson Score ini lebih disukai dibandingkan interval Wald karena memiliki cakupan (coverage probability) yang lebih baik, khususnya ketika \(\hat p\) mendekati 0 atau 1, atau ketika ukuran sampel tidak terlalu besar—sebagaimana terjadi pada kelompok Non-Smoker (\(n=80\)) pada data ini (Agresti, 2013).

Risk Difference: \(RD = p_1 - p_2\), dengan \(SE(RD)=\sqrt{\frac{p_1(1-p_1)}{n_1}+\frac{p_2(1-p_2)}{n_2}}\), dihitung manual karena tidak ada asumsi distribusi khusus yang memerlukan fungsi package tertentu.

Relative Risk dan Odds Ratio dihitung menggunakan fungsi riskratio() dan oddsratio() dari package epitools, yang menggunakan interval kepercayaan pada skala logaritma (metode Wald pada skala log, sesuai standar epidemiologi) sehingga estimasi tetap berada pada rentang yang valid secara logis (RR dan OR > 0).

# Interval kepercayaan proporsi masing-masing kelompok (Wilson Score, via prop.test)
ci_smoker <- prop.test(688, 1338, correct = FALSE)$conf.int
ci_nonsmoker <- prop.test(21, 80, correct = FALSE)$conf.int

cat("CI 95% proporsi Smoker    :", round(ci_smoker,4), "\n")
## CI 95% proporsi Smoker    : 0.4874 0.5409
cat("CI 95% proporsi Non-Smoker:", round(ci_nonsmoker,4), "\n")
## CI 95% proporsi Non-Smoker: 0.1786 0.3682
# Risk Difference (manual, sesuai standar Fleiss, Levin & Paik, 2003)
rd_est <- p_smoker - p_nonsmoker
se_rd <- sqrt(p_smoker*(1-p_smoker)/1338 + p_nonsmoker*(1-p_nonsmoker)/80)
rd_ci <- rd_est + c(-1,1)*1.96*se_rd

# Susun ulang tabel agar baris pertama = kelompok referen (Non-Smoker) dan
# kolom pertama = Control (-), sesuai konvensi package epitools
tabel1_epi <- matrix(c(59, 21,
                        650, 688),
                      nrow = 2, byrow = TRUE,
                      dimnames = list(
                        Status_Merokok = c("Non-Smoker", "Smoker"),
                        Cancer_Status  = c("Control (-)", "Cancer (+)")
                      ))

# Relative Risk menggunakan epitools::riskratio (metode Wald)
hasil_rr <- riskratio(tabel1_epi, method = "wald")
rr_est <- hasil_rr$measure["Smoker", "estimate"]
rr_ci  <- hasil_rr$measure["Smoker", c("lower","upper")]

# Odds Ratio menggunakan epitools::oddsratio (metode Wald)
hasil_or <- oddsratio(tabel1_epi, method = "wald")
or_est <- hasil_or$measure["Smoker", "estimate"]
or_ci  <- hasil_or$measure["Smoker", c("lower","upper")]

cat("Risk Difference (RD)  :", round(rd_est,4), " CI95%:", round(rd_ci,4), "\n")
## Risk Difference (RD)  : 0.2517  CI95%: 0.1516 0.3518
cat("Relative Risk (RR)    :", round(rr_est,4), " CI95%:", round(as.numeric(rr_ci),4), "\n")
## Relative Risk (RR)    : 1.9589  CI95%: 1.3517 2.8387
cat("Odds Ratio (OR)       :", round(or_est,4), " CI95%:", round(as.numeric(or_ci),4), "\n")
## Odds Ratio (OR)       : 2.9738  CI95%: 1.7867 4.9494

Makna Confidence Interval: Interval kepercayaan 95% berarti bahwa jika prosedur pengambilan sampel dan penghitungan interval ini diulang secara berulang-ulang, maka sekitar 95% dari interval yang terbentuk akan memuat nilai parameter populasi yang sebenarnya. Ini bukan pernyataan probabilitas untuk satu interval spesifik, melainkan properti jangka panjang dari prosedur tersebut.

Cara interpretasi: Jika interval kepercayaan RD tidak mencakup nilai 0, atau interval RR dan OR tidak mencakup nilai 1, maka terdapat indikasi asosiasi yang signifikan secara statistik antara kedua variabel pada taraf kepercayaan yang bersangkutan.

Interpretasi substantif: Nilai RD positif dan interval kepercayaannya tidak mencakup 0 menunjukkan bahwa risiko kanker paru pada perokok memang lebih tinggi secara nyata dibandingkan non-perokok. Nilai RR di atas 1 (dan interval tidak mencakup 1) mengindikasikan risiko kanker paru pada perokok beberapa kali lebih besar dibandingkan non-perokok. Nilai OR juga jauh di atas 1, mengonfirmasi odds kejadian kanker paru pada perokok jauh lebih tinggi dibanding non-perokok.

Hubungan dengan hasil pengujian: Karena interval kepercayaan RD, RR, dan OR seluruhnya menunjukkan tidak adanya nilai netral (0 untuk RD, 1 untuk RR/OR), maka hasil ini konsisten dan sejalan dengan hasil uji hipotesis formal pada bagian berikutnya yang akan menolak H0 kesamaan proporsi/independensi.

4.4 Soal 4: Uji Dua Proporsi

Hipotesis: - H0: \(p_1 = p_2\) (proporsi kanker paru pada Smoker sama dengan Non-Smoker) - H1: \(p_1 \neq p_2\) (proporsi kanker paru pada Smoker berbeda dengan Non-Smoker)

Taraf signifikansi: \(\alpha = 0.05\)

Statistik uji: \(Z = \dfrac{\hat{p}_1-\hat{p}_2}{\sqrt{\hat{p}(1-\hat{p})(1/n_1+1/n_2)}}\), dengan \(\hat p\) adalah proporsi gabungan (pooled).

uji_2prop <- prop.test(x = c(688, 21), n = c(1338, 80), correct = FALSE)
uji_2prop
## 
##  2-sample test for equality of proportions without continuity correction
## 
## data:  c(688, 21) out of c(1338, 80)
## X-squared = 19.129, df = 1, p-value = 1.222e-05
## alternative hypothesis: two.sided
## 95 percent confidence interval:
##  0.1516343 0.3517663
## sample estimates:
##    prop 1    prop 2 
## 0.5142003 0.2625000

Statistik uji: Nilai statistik chi-square (setara \(Z^2\)) yang dihasilkan adalah 19.129 dengan p-value 1.222e-05.

Keputusan: Karena p-value < 0,05, maka H0 ditolak.

Interpretasi: Terdapat perbedaan proporsi kejadian kanker paru yang signifikan secara statistik antara kelompok Smoker dan Non-Smoker.

Interpretasi substantif: Data memberikan bukti kuat bahwa proporsi penderita kanker paru pada kelompok perokok berbeda nyata (lebih tinggi) dibandingkan kelompok bukan perokok.

4.5 Soal 5: Uji Chi-Square Independensi

Teori singkat: Uji chi-square independensi menguji apakah dua variabel kategorik saling bebas (independen) berdasarkan perbandingan frekuensi observasi dengan frekuensi harapan di bawah asumsi independensi.

Hipotesis: - H0: Status merokok dan status kanker paru saling independen - H1: Status merokok dan status kanker paru tidak independen (berasosiasi)

Rumus: \(\chi^2 = \sum \dfrac{(O_{ij}-E_{ij})^2}{E_{ij}}\), dengan \(E_{ij} = \dfrac{(total\ baris_i)(total\ kolom_j)}{total\ keseluruhan}\)

uji_chisq1 <- chisq.test(tabel1, correct = FALSE)
uji_chisq1
## 
##  Pearson's Chi-squared test
## 
## data:  tabel1
## X-squared = 19.129, df = 1, p-value = 1.222e-05
uji_chisq1$expected
##               Cancer_Status
## Status_Merokok Cancer (+) Control (-)
##     Smoker            669         669
##     Non-Smoker         40          40

Pemeriksaan asumsi uji Pearson Chi-Square: Uji chi-square Pearson merupakan uji asimtotik (berbasis aproksimasi distribusi chi-square) yang mensyaratkan: (1) pengamatan saling bebas antar subjek, dan (2) frekuensi harapan (\(E_{ij}\)) tidak terlalu kecil, dengan aturan umum seluruh \(E_{ij} \geq 5\) (atau minimal 80% sel memiliki \(E_{ij} \geq 5\) dan tidak ada sel dengan \(E_{ij} < 1\)) (Agresti, 2013).

cat("Frekuensi harapan minimum:", round(min(uji_chisq1$expected),3), "\n")
## Frekuensi harapan minimum: 40
cat("Semua E_ij >= 5:", all(uji_chisq1$expected >= 5), "\n")
## Semua E_ij >= 5: TRUE

Berdasarkan hasil di atas, seluruh frekuensi harapan bernilai jauh di atas 5, sehingga syarat kecukupan sampel untuk aproksimasi chi-square Pearson terpenuhi. Apabila syarat ini dilanggar (misalnya terdapat sel dengan \(E_{ij} < 5\)), maka distribusi statistik uji tidak lagi mendekati distribusi chi-square secara akurat, sehingga p-value yang dihasilkan berisiko bias (biasanya terlalu kecil/anti-konservatif) dan alternatif seperti Fisher exact test perlu digunakan sebagai gantinya.

Statistik uji: \(\chi^2\) = 19.129, derajat bebas = 1, p-value = 1.222e-05.

Keputusan: Karena p-value < 0,05, H0 ditolak.

Interpretasi: Status merokok dan status kanker paru tidak independen, artinya terdapat asosiasi antara kedua variabel tersebut.

Interpretasi substantif: Hasil ini menguatkan dugaan bahwa kebiasaan merokok berkaitan dengan kejadian kanker paru pada populasi yang diteliti.

4.6 Soal 6: Uji Likelihood Ratio (G²)

Teori singkat: Uji likelihood ratio merupakan alternatif uji chi-square Pearson yang berbasis pada perbandingan log-likelihood model saturated dengan model independensi.

Rumus: \(G^2 = 2\sum O_{ij}\ln\left(\dfrac{O_{ij}}{E_{ij}}\right)\)

Hipotesis: sama seperti Soal 5 (H0: independen, H1: tidak independen).

uji_g2 <- DescTools::GTest(tabel1, correct = "none")
uji_g2
## 
##  Log likelihood ratio (G-test) test of independence without correction
## 
## data:  tabel1
## G = 19.878, X-squared df = 1, p-value = 8.254e-06
G2 <- uji_g2$statistic
df_g2 <- uji_g2$parameter
pvalue_g2 <- uji_g2$p.value

cat("Statistik G^2 :", round(G2,4), "\n")
## Statistik G^2 : 19.878
cat("df            :", df_g2, "\n")
## df            : 1
cat("p-value       :", format.pval(pvalue_g2, digits=4), "\n")
## p-value       : 8.254e-06

Keputusan: Karena p-value < 0,05, H0 ditolak.

Interpretasi: Sejalan dengan uji chi-square Pearson, uji likelihood ratio juga menunjukkan adanya asosiasi signifikan antara status merokok dan kanker paru.

Interpretasi substantif: Konsistensi hasil G² dengan chi-square Pearson memperkuat kesimpulan bahwa hubungan antara merokok dan kanker paru bukan disebabkan oleh kebetulan sampling semata.

4.7 Soal 7: Fisher Exact Test

Teori singkat: Uji eksak Fisher menguji independensi pada tabel 2x2 dengan menghitung probabilitas eksak (bukan aproksimasi) dari seluruh kemungkinan tabel dengan margin baris dan kolom tetap, berdasarkan distribusi hipergeometrik. Fisher exact test lebih tepat digunakan dibandingkan chi-square Pearson ketika: (1) terdapat sel dengan frekuensi harapan kecil (\(E_{ij} < 5\)), (2) ukuran sampel total kecil, atau (3) diinginkan p-value eksak tanpa bergantung pada aproksimasi distribusi asimtotik. Pada data ini, karena seluruh frekuensi harapan telah memenuhi syarat kecukupan sampel untuk chi-square (lihat Soal 5), Fisher exact test di sini berfungsi sebagai pembanding/validasi terhadap hasil chi-square Pearson, bukan sebagai alternatif yang wajib digunakan.

Hipotesis: sama seperti Soal 5.

uji_fisher <- fisher.test(tabel1)
uji_fisher
## 
##  Fisher's Exact Test for Count Data
## 
## data:  tabel1
## p-value = 1.476e-05
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  1.755611 5.210711
## sample estimates:
## odds ratio 
##   2.971634

Statistik uji: Fisher exact test tidak menggunakan statistik \(\chi^2\), melainkan menghitung p-value eksak = 1.476e-05 berdasarkan seluruh kemungkinan tabel dengan margin tetap.

Keputusan: Karena p-value < 0,05, H0 ditolak.

Interpretasi: Hasil Fisher exact test juga menunjukkan asosiasi signifikan antara status merokok dan kanker paru.

Interpretasi substantif: Estimasi odds ratio dari Fisher exact test (2.972, menggunakan estimasi conditional maximum likelihood) konsisten arah dan besarannya dengan estimasi OR pada Soal 3 yang dihitung menggunakan epitools::oddsratio(), menegaskan besarnya odds kanker paru pada perokok dibandingkan non-perokok.

4.8 Soal 8: Perbandingan Hasil Uji 4-7

tabel_banding <- data.frame(
  Uji = c("Uji Dua Proporsi", "Chi-Square Pearson", "Likelihood Ratio (G2)", "Fisher Exact Test"),
  Hipotesis_H0 = c("p(Smoker) = p(Non-Smoker)",
                    "Status merokok independen thd kanker paru",
                    "Status merokok independen thd kanker paru",
                    "Status merokok independen thd kanker paru"),
  Statistik_Uji = c(paste0("Z^2 = ", round(uji_2prop$statistic,3)),
                     paste0("Chi^2 = ", round(uji_chisq1$statistic,3)),
                     paste0("G^2 = ", round(G2,3)),
                     "Eksak (hipergeometrik)"),
  df = c(1, uji_chisq1$parameter, df_g2, "-"),
  P_value = c(format.pval(uji_2prop$p.value,4), format.pval(uji_chisq1$p.value,4),
              format.pval(pvalue_g2,4), format.pval(uji_fisher$p.value,4)),
  Keputusan = rep("Tolak H0 (alpha=0.05)", 4),
  Interpretasi_Singkat = rep("Asosiasi signifikan: merokok & kanker paru", 4)
)
tabel_cantik(tabel_banding, caption = "Perbandingan Empat Metode Uji pada Kasus 1")
Perbandingan Empat Metode Uji pada Kasus 1
Uji Hipotesis_H0 Statistik_Uji df P_value Keputusan Interpretasi_Singkat
Uji Dua Proporsi p(Smoker) = p(Non-Smoker) Z^2 = 19.129 1 1.222e-05 Tolak H0 (alpha=0.05) Asosiasi signifikan: merokok & kanker paru
Chi-Square Pearson Status merokok independen thd kanker paru Chi^2 = 19.129 1 1.222e-05 Tolak H0 (alpha=0.05) Asosiasi signifikan: merokok & kanker paru
Likelihood Ratio (G2) Status merokok independen thd kanker paru G^2 = 19.878 1 8.254e-06 Tolak H0 (alpha=0.05) Asosiasi signifikan: merokok & kanker paru
Fisher Exact Test Status merokok independen thd kanker paru Eksak (hipergeometrik)
1.476e-05 Tolak H0 (alpha=0.05) Asosiasi signifikan: merokok & kanker paru

Interpretasi substantif komparatif: Keempat metode uji—uji dua proporsi, chi-square Pearson, likelihood ratio, dan Fisher exact test—menghasilkan kesimpulan yang konsisten, yaitu menolak H0 pada taraf signifikansi 5%, dengan p-value yang jauh lebih kecil dari 0,05 pada seluruh metode. Uji dua proporsi dan chi-square Pearson secara matematis ekuivalen pada kasus 2x2 tanpa koreksi kontinuitas, karena statistik uji dua proporsi (\(Z^2\)) identik dengan statistik chi-square Pearson pada tabel 2x2. Uji likelihood ratio (G²) memberikan nilai yang mendekati chi-square Pearson karena kedua statistik konvergen menuju distribusi asimtotik yang sama ketika ukuran sampel besar dan tidak terdapat sel dengan frekuensi harapan kecil, sebagaimana telah diverifikasi pada pemeriksaan asumsi di Soal 5. Fisher exact test menghasilkan p-value eksak yang tidak bergantung pada aproksimasi distribusi, dan di sini tetap sejalan dengan ketiga uji lainnya—hal ini memperkuat validitas kesimpulan karena menunjukkan bahwa penolakan H0 bukan disebabkan oleh bias pendekatan asimtotik, melainkan memang mencerminkan pola data yang kuat.

4.9 Soal 9: Kesimpulan Akhir Kasus 1

Berdasarkan estimasi proporsi, interval kepercayaan RD/RR/OR, serta keempat metode uji hipotesis yang seluruhnya konsisten menolak H0, dapat disimpulkan bahwa terdapat hubungan (asosiasi) yang signifikan secara statistik antara kebiasaan merokok dan kejadian kanker paru pada data ini. Proporsi kejadian kanker paru pada kelompok perokok jauh lebih tinggi dibandingkan kelompok bukan perokok, dengan risiko relatif dan odds ratio yang keduanya jauh di atas 1. Perlu dicatat bahwa data ini bersifat observasional, sehingga hasil ini menunjukkan asosiasi, bukan bukti kausalitas murni secara statistik semata—meskipun secara substantif sejalan dengan bukti epidemiologis luas mengenai bahaya merokok.


5 Kasus 2: Tabel Kontingensi 2 x 3

5.1 Soal 1: Penyusunan Tabel Kontingensi

Tabel kontingensi 2x3 telah disusun pada bagian Data.

5.2 Soal 2: Frekuensi Harapan

Rumus: \(E_{ij} = \dfrac{(total\ baris_i)(total\ kolom_j)}{total\ keseluruhan}\)

uji_chisq2 <- chisq.test(tabel2, correct = FALSE)
tabel_cantik(round(uji_chisq2$expected,2), caption = "Frekuensi Harapan Tabel 2x3")
Frekuensi Harapan Tabel 2x3
Democrat Republican Independent
Female 456.95 297.43 602.62
Male 368.05 239.57 485.38

Interpretasi: Frekuensi harapan menunjukkan nilai yang diharapkan pada masing-masing sel apabila gender dan identifikasi partai politik benar-benar independen. Seluruh nilai frekuensi harapan jauh di atas 5, sehingga syarat kecukupan sampel untuk uji chi-square asimtotik terpenuhi.

5.3 Soal 3: Uji Chi-Square Independensi Tabel Keseluruhan

Hipotesis: - H0: Gender dan identifikasi partai politik saling independen - H1: Gender dan identifikasi partai politik tidak independen

Taraf signifikansi \(\alpha = 0.05\).

uji_chisq2
## 
##  Pearson's Chi-squared test
## 
## data:  tabel2
## X-squared = 12.569, df = 2, p-value = 0.001865

Statistik uji: \(\chi^2\) = 12.569, df = 2, p-value = 0.001865.

Keputusan: Karena p-value < 0,05, H0 ditolak.

Interpretasi: Terdapat asosiasi yang signifikan secara statistik antara gender dan identifikasi partai politik.

Interpretasi substantif: Pola pemilihan identifikasi partai politik pada populasi ini berbeda secara nyata antara kelompok perempuan dan laki-laki.

5.4 Soal 4: Residual Pearson / Standardized Residual

Rumus: Standardized residual \(r_{ij} = \dfrac{O_{ij}-E_{ij}}{\sqrt{E_{ij}(1-p_{i.})(1-p_{.j})}}\)

std_resid <- uji_chisq2$stdres
tabel_cantik(round(std_resid,3), caption = "Standardized Residual")
Standardized Residual
Democrat Republican Independent
Female 3.272 -2.499 -1.032
Male -3.272 2.499 1.032
mosaic(tabel2, shade = TRUE, legend = TRUE,
       main = "Mosaic Plot: Gender vs Identifikasi Partai Politik")

resid_df2 <- as.data.frame(as.table(std_resid))
colnames(resid_df2) <- c("Gender", "Partai", "Residual")

ggplot(resid_df2, aes(x = Partai, y = Residual, fill = Gender)) +
  geom_col(position = "dodge") +
  geom_hline(yintercept = c(-2, 2), linetype = "dashed", color = "#E4572E") +
  labs(title = "Plot Standardized Residual: Gender vs Identifikasi Partai Politik",
       y = "Standardized Residual", x = "Partai Politik") +
  theme_minimal()

Interpretasi statistik: Standardized residual yang bernilai lebih besar dari 2 (dalam nilai mutlak) menunjukkan sel tersebut memberikan kontribusi signifikan terhadap penolakan H0 independensi (garis putus-putus pada plot di atas menandai ambang ±2). Pada tabel dan plot di atas, sel Female-Independent dan Male-Independent (serta Female/Male-Democrat) memiliki nilai residual dengan magnitudo relatif besar dibandingkan sel Republican.

Interpretasi substantif: Perempuan cenderung lebih banyak memilih sebagai Democrat dan Independent dibandingkan ekspektasi di bawah independensi, sedangkan laki-laki cenderung lebih banyak teridentifikasi sebagai Republican dibandingkan ekspektasi.

5.5 Soal 5: Partisi Chi-Square

Teori singkat dan alasan dilakukan partisi: Uji chi-square keseluruhan pada tabel 2x3 hanya memberikan kesimpulan global bahwa gender dan identifikasi partai politik tidak independen, tanpa menunjukkan kontras kolom mana yang menjadi sumber utama asosiasi tersebut. Untuk menjawab pertanyaan tersebut, statistik chi-square dengan df=2 dapat dipartisi menjadi dua komponen independen dengan df=1 masing-masing, yaitu: (a) perbandingan Democrat vs Republican, dan (b) perbandingan (Democrat+Republican) vs Independent. Partisi ini valid apabila kontras yang dibentuk saling ortogonal, sehingga secara matematis jumlah statistik chi-square kedua komponen akan sama dengan (atau sangat mendekati) statistik chi-square tabel keseluruhan. Dengan demikian, hasil partisi tidak hanya mendukung, tetapi juga menjelaskan lebih rinci hasil uji chi-square keseluruhan pada Soal 3, dengan menunjukkan kontribusi relatif masing-masing kontras terhadap total asosiasi yang terdeteksi.

# Komponen 1: Democrat vs Republican
tabel_part1 <- tabel2[, c("Democrat","Republican")]
uji_part1 <- chisq.test(tabel_part1, correct = FALSE)

# Komponen 2: (Democrat+Republican) vs Independent
dem_rep <- rowSums(tabel2[, c("Democrat","Republican")])
indep_col <- tabel2[, "Independent"]
tabel_part2 <- cbind(DemRep = dem_rep, Independent = indep_col)
uji_part2 <- chisq.test(tabel_part2, correct = FALSE)

cat("Komponen 1 (Democrat vs Republican):\n")
## Komponen 1 (Democrat vs Republican):
cat("  chi-square =", round(uji_part1$statistic,3), " df =", uji_part1$parameter,
    " p-value =", format.pval(uji_part1$p.value,4), "\n\n")
##   chi-square = 11.555  df = 1  p-value = 0.0006758
cat("Komponen 2 ((Democrat+Republican) vs Independent):\n")
## Komponen 2 ((Democrat+Republican) vs Independent):
cat("  chi-square =", round(uji_part2$statistic,3), " df =", uji_part2$parameter,
    " p-value =", format.pval(uji_part2$p.value,4), "\n\n")
##   chi-square = 1.065  df = 1  p-value = 0.302
cat("Jumlah kedua komponen:", round(uji_part1$statistic + uji_part2$statistic,3), "\n")
## Jumlah kedua komponen: 12.62
cat("Chi-square keseluruhan:", round(uji_chisq2$statistic,3), "\n")
## Chi-square keseluruhan: 12.569

Hipotesis komponen 1: - H0: proporsi Democrat vs Republican sama antara Female dan Male - H1: proporsi Democrat vs Republican berbeda antara Female dan Male

Hipotesis komponen 2: - H0: proporsi (Democrat+Republican) vs Independent sama antara Female dan Male - H1: proporsi (Democrat+Republican) vs Independent berbeda antara Female dan Male

Keputusan: Kedua komponen memiliki p-value < 0,05, sehingga H0 ditolak pada masing-masing komponen.

5.6 Soal 6: Perbandingan Hasil Partisi dengan Chi-Square Keseluruhan

Jumlah statistik chi-square dari kedua komponen partisi (12.62) mendekati/sama dengan statistik chi-square uji keseluruhan (12.569), sesuai sifat aditif partisi chi-square pada tabel kontingensi dengan konstruksi kontras yang saling ortogonal. Hal ini menunjukkan bahwa asosiasi keseluruhan pada tabel 2x3 dapat dijelaskan sepenuhnya oleh kombinasi kedua komponen tersebut.

5.7 Soal 7: Kategori yang Paling Berkontribusi

kontribusi <- data.frame(
  Komponen = c("Democrat vs Republican", "(Democrat+Republican) vs Independent"),
  Chi_Square = c(round(uji_part1$statistic,3), round(uji_part2$statistic,3)),
  Proporsi_Kontribusi = c(
    round(uji_part1$statistic/uji_chisq2$statistic*100,2),
    round(uji_part2$statistic/uji_chisq2$statistic*100,2))
)
tabel_cantik(kontribusi, caption = "Kontribusi Masing-Masing Komponen Partisi (%)")
Kontribusi Masing-Masing Komponen Partisi (%)
Komponen Chi_Square Proporsi_Kontribusi
Democrat vs Republican 11.555 91.93
(Democrat+Republican) vs Independent 1.065 8.48

Interpretasi substantif: Berdasarkan hasil partisi dan besarnya standardized residual, komponen yang memberikan kontribusi terbesar terhadap asosiasi antara Gender dan Identifikasi Partai Politik adalah komponen dengan nilai chi-square dan persentase kontribusi tertinggi pada tabel di atas. Ini mengindikasikan bahwa perbedaan pola gender paling terlihat pada kontras tersebut, sementara komponen lainnya juga tetap signifikan namun dengan kontribusi relatif lebih kecil.


6 Visualisasi Tambahan

# Grafik proporsi identifikasi partai politik berdasarkan gender
prop_df <- as.data.frame(prop.table(tabel2, margin = 1))
colnames(prop_df) <- c("Gender", "Partai", "Proporsi")

ggplot(prop_df, aes(x = Partai, y = Proporsi, fill = Gender)) +
  geom_col(position = "dodge") +
  labs(title = "Proporsi Identifikasi Partai Politik berdasarkan Gender",
       y = "Proporsi", x = "Partai Politik") +
  theme_minimal()

mosaic(tabel1, shade = TRUE, legend = TRUE,
       main = "Mosaic Plot: Status Merokok vs Kanker Paru")

Interpretasi mosaic plot Kasus 1: Lebar balok merepresentasikan proporsi ukuran sampel pada tiap kategori merokok, sedangkan warna (biru/merah) merepresentasikan tanda dan besar residual Pearson terstandarisasi terhadap model independensi. Terlihat warna yang kontras antara sel Smoker-Cancer dan Non-Smoker-Cancer, mengindikasikan penyimpangan yang besar dari kondisi independensi—konsisten dengan hasil uji chi-square yang signifikan pada Soal 5.

assoc(tabel1, shade = TRUE,
      main = "Association Plot: Status Merokok vs Kanker Paru")

Interpretasi association plot Kasus 1: Association plot menampilkan besar dan arah deviasi observasi terhadap frekuensi harapan pada setiap sel dalam bentuk batang; batang yang mengarah ke atas garis dasar menunjukkan frekuensi observasi lebih besar dari harapan (residual positif), sedangkan batang ke bawah menunjukkan sebaliknya. Sel Smoker-Cancer menunjukkan observasi jauh melebihi harapan, mempertegas arah asosiasi positif antara merokok dan kejadian kanker paru.

resid_df <- data.frame(
  Sel = c("Smoker-Cancer", "Smoker-Control", "NonSmoker-Cancer", "NonSmoker-Control"),
  Residual = as.vector(t((tabel1 - uji_chisq1$expected)/sqrt(uji_chisq1$expected)))
)

ggplot(resid_df, aes(x = Sel, y = Residual, fill = Residual > 0)) +
  geom_col(show.legend = FALSE) +
  geom_hline(yintercept = c(-2, 2), linetype = "dashed", color = "#E4572E") +
  labs(title = "Plot Residual Pearson: Status Merokok vs Kanker Paru",
       y = "Residual Pearson", x = "Sel Tabel") +
  theme_minimal()

Interpretasi plot residual Kasus 1: Garis putus-putus pada nilai ±2 menandai ambang batas residual yang dianggap kontributif secara signifikan terhadap penolakan H0 independensi. Sel Smoker-Cancer dan Non-Smoker-Cancer terlihat melampaui ambang tersebut, menunjukkan bahwa kedua sel ini merupakan sumber utama penyimpangan dari independensi pada tabel 2x2 ini.

Visualisasi mosaic plot, association plot, plot residual, dan grafik proporsi di atas saling melengkapi untuk mempermudah interpretasi visual terhadap pola dan sumber asosiasi yang telah diuji secara statistik pada kedua kasus.

7 Kesimpulan

Pada Kasus 1, seluruh metode inferensi (estimasi proporsi, interval kepercayaan RD/RR/OR, uji dua proporsi, chi-square, likelihood ratio, dan Fisher exact test) secara konsisten menunjukkan adanya asosiasi signifikan antara kebiasaan merokok dan kejadian kanker paru, dengan risiko dan odds kanker paru yang jauh lebih tinggi pada kelompok perokok.

Pada Kasus 2, uji chi-square independensi menunjukkan adanya asosiasi signifikan antara gender dan identifikasi partai politik. Analisis residual dan partisi chi-square mengungkapkan bahwa asosiasi ini bersumber dari perbedaan pola pemilihan Democrat/Republican maupun perbedaan pola (Democrat+Republican) versus Independent antara kelompok perempuan dan laki-laki, dengan salah satu komponen memberikan kontribusi lebih dominan sebagaimana ditunjukkan pada tabel kontribusi.

Secara umum, tugas ini menunjukkan bagaimana berbagai metode inferensi tabel kontingensi dua arah—baik untuk tabel 2x2 maupun tabel r x c yang lebih besar—dapat digunakan secara saling melengkapi untuk menghasilkan kesimpulan statistik yang valid dan substantif.

✅ Ringkasan Temuan Utama
  • Kasus 1: Merokok dan kanker paru tidak independen — keempat uji (dua proporsi, chi-square, likelihood ratio, Fisher exact) sepakat menolak H0.
  • Kasus 2: Gender dan identifikasi partai politik tidak independen — asosiasi terkonfirmasi melalui chi-square, residual standar, dan partisi chi-square.

8 Daftar Pustaka

Agresti, A. (2013). Categorical Data Analysis (3rd ed.). John Wiley & Sons.

Fleiss, J. L., Levin, B., & Paik, M. C. (2003). Statistical Methods for Rates and Proportions (3rd ed.). John Wiley & Sons.

Hosmer, D. W., Lemeshow, S., & Sturdivant, R. X. (2013). Applied Logistic Regression (3rd ed.). John Wiley & Sons.

Wilson, E. B. (1927). Probable inference, the law of succession, and statistical inference. Journal of the American Statistical Association, 22(158), 209-212.

Fisher, R. A. (1922). On the interpretation of chi-square from contingency tables, and the calculation of P. Journal of the Royal Statistical Society, 85(1), 87-94.

Aragon, T. (2020). epitools: Epidemiology Tools. R package.

Signorell, A. (2024). DescTools: Tools for Descriptive Statistics. R package.

R Core Team. (2024). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing.


Laporan ini disusun untuk memenuhi Tugas 6 mata kuliah Analisis Data Kategori — Universitas Padjadjaran
Dipublikasikan melalui RPubs