Mata Kuliah: Analisis Data Kategori
Dosen: Prof. I Gede Nyoman Mindra Jaya, Ph.D
NPM: 140610240059
Tanggal: 10 April 2026


1 PENDAHULUAN

1.1 Latar Belakang

Dalam berbagai kajian ilmiah di bidang kesehatan, sosial, dan ilmu politik, peneliti sering dihadapkan pada data kategorikal yang menggambarkan hubungan antara dua atau lebih variabel nominal atau ordinal. Salah satu metode yang paling umum digunakan untuk meringkas dan menganalisis hubungan tersebut adalah tabel kontingensi (contingency table).

Inferensi statistik pada tabel kontingensi mencakup:

  1. Estimasi parameter: proporsi, risk difference (RD), risk ratio (RR), odds ratio (OR), beserta interval kepercayaan.
  2. Uji hipotesis: independensi antar variabel menggunakan uji chi-square Pearson, likelihood ratio G², uji dua proporsi, dan uji eksak Fisher.

1.2 Tujuan

Laporan ini bertujuan untuk:

  1. Menyusun dan menganalisis tabel kontingensi 2×2 pada data merokok dan kanker paru.
  2. Menyusun dan menganalisis tabel kontingensi 2×3 pada data gender dan identifikasi partai politik.
  3. Menghitung estimasi titik dan interval kepercayaan 95% untuk proporsi, RD, RR, dan OR.
  4. Melakukan pengujian hipotesis menggunakan empat metode: uji dua proporsi, chi-square Pearson, likelihood ratio G², dan Fisher exact test.
  5. Melakukan analisis residual dan partisi chi-square pada Kasus 2.
  6. Menginterpretasikan seluruh hasil secara statistik dan substansial.

1.3 Batasan Masalah

Dalam laporan ini mencakup dua kasus, yaitu:

  1. Kasus 1: Tabel 2×2 — Status merokok (Smoker/Non-Smoker) vs kanker paru (Cancer+/Control−), n = 1.418.
  2. Kasus 2: Tabel 2×3 — Gender (Female/Male) vs identifikasi partai (Democrat/Republican/Independent), n = 2.450.

Tingkat signifikansi yang digunakan adalah α = 0,05.


2 DATA DAN PENYUSUNAN TABEL KONTINGENSI

2.1 Packages yang Digunakan

if (!require("knitr"))      install.packages("knitr",      quiet=TRUE)
if (!require("kableExtra")) install.packages("kableExtra", quiet=TRUE)
if (!require("epitools"))   install.packages("epitools",   quiet=TRUE)
if (!require("ggplot2"))   install.packages("ggplot2",   quiet=TRUE)
if (!require("vcd"))   install.packages("vcd",   quiet=TRUE)
if (!require("scales"))   install.packages("scales",   quiet=TRUE)

library(knitr); library(kableExtra)

2.2 Kasus 1 — Status Merokok dan Kanker Paru

Data ini diperoleh dari studi kasus-kontrol yang membandingkan frekuensi perokok dan non-perokok di antara penderita kanker paru (Cancer+) dan kelompok kontrol (Control−). Tabel kontingensi 2×2 disusun sebagai berikut:

tabel1 <- matrix(
  c(688, 650, 21, 59), nrow=2, byrow=TRUE,
  dimnames=list(
    "Status Merokok" = c("Smoker", "Non-Smoker"),
    "Status"         = c("Cancer (+)", "Control (-)")
  )
)

addmargins(tabel1) %>%
  kable(caption="Tabel 2.1 Tabel Kontingensi 2×2: Status Merokok dan Kanker Paru",
        align="c") %>%
  kable_styling(bootstrap_options=c("striped","bordered","hover"),
                full_width=FALSE) %>%
  row_spec(3, bold=TRUE, background="#dce8f5") %>%
  column_spec(4, bold=TRUE, background="#dce8f5")
Tabel 2.1 Tabel Kontingensi 2×2: Status Merokok dan Kanker Paru
Cancer (+) Control (-) Sum
Smoker 688 650 1338
Non-Smoker 21 59 80
Sum 709 709 1418

Dari tabel di atas, dari 1.338 perokok terdapat 688 yang mengalami kanker paru, sedangkan dari 80 non-perokok hanya 21 yang mengalami kanker paru. Secara deskriptif, proporsi kanker paru pada perokok tampak jauh lebih tinggi.

2.3 Kasus 2 — Gender dan Identifikasi Partai Politik

Data Kasus 2 merupakan hasil survei yang menanyakan identifikasi partai politik responden berdasarkan gender. Tabel kontingensi 2×3 disusun sebagai berikut:

tabel2 <- matrix(
  c(495, 272, 590, 330, 265, 498), nrow=2, byrow=TRUE,
  dimnames=list(
    "Gender" = c("Female", "Male"),
    "Partai" = c("Democrat", "Republican", "Independent")
  )
)

addmargins(tabel2) %>%
  kable(caption="Tabel 2.2 Tabel Kontingensi 2×3: Gender dan Identifikasi Partai Politik",
        align="c") %>%
  kable_styling(bootstrap_options=c("striped","bordered","hover"),
                full_width=FALSE) %>%
  row_spec(3, bold=TRUE, background="#dce8f5") %>%
  column_spec(5, bold=TRUE, background="#dce8f5")
Tabel 2.2 Tabel Kontingensi 2×3: Gender dan Identifikasi Partai Politik
Democrat Republican Independent Sum
Female 495 272 590 1357
Male 330 265 498 1093
Sum 825 537 1088 2450

Dari tabel di atas, terdapat 1.357 responden perempuan dan 1.093 responden laki-laki. Secara deskriptif, baik perempuan maupun laki-laki paling banyak mengidentifikasi diri sebagai Independent, diikuti Democrat, kemudian Republican. Namun perlu diuji secara formal apakah distribusi ini berbeda secara signifikan antar gender.


3 METODE ANALISIS

3.1 Estimasi Proporsi dan Interval Kepercayaan

Estimasi titik proporsi: \(\hat{p}_i = n_{i1} / n_{i+}\)

Interval kepercayaan 95% proporsi dihitung menggunakan metode Wilson (score interval) yang lebih akurat untuk ukuran sampel sedang:

\[IC_{95\%}(p) = \frac{\hat{p} + z^2/2n \pm z\sqrt{\hat{p}(1-\hat{p})/n + z^2/4n^2}}{1 + z^2/n}\]

dengan z = 1,96 untuk tingkat kepercayaan 95%.

3.2 Ukuran Asosiasi

Ukuran Formula IC 95%
RD \(\hat{p}_1 - \hat{p}_2\) \(RD \pm 1.96\sqrt{\frac{\hat{p}_1(1-\hat{p}_1)}{n_1}+\frac{\hat{p}_2(1-\hat{p}_2)}{n_2}}\)
RR \(\hat{p}_1 / \hat{p}_2\) \(\exp\left[\ln(RR) \pm 1.96\sqrt{\frac{1-\hat{p}_1}{n_{11}}+\frac{1-\hat{p}_2}{n_{21}}}\right]\)
OR \((n_{11}n_{22})/(n_{12}n_{21})\) \(\exp\left[\ln(OR) \pm 1.96\sqrt{1/n_{11}+1/n_{12}+1/n_{21}+1/n_{22}}\right]\)

3.3 Uji Hipotesis

  • Uji dua proporsi: \(z = (\hat{p}_1-\hat{p}_2)/\sqrt{\hat{p}(1-\hat{p})(1/n_1+1/n_2)}\)
  • Chi-square Pearson: \(\chi^2 = \sum_{ij}(O_{ij}-E_{ij})^2/E_{ij}\), \(df=(r-1)(c-1)\)
  • Likelihood Ratio: \(G^2 = 2\sum_{ij}O_{ij}\ln(O_{ij}/E_{ij})\)
  • Fisher Exact: distribusi hipergeometrik (untuk n kecil atau E < 5)

3.4 Residual dan Partisi (Kasus 2)

  • Standardized residual: \(d_{ij} = (O_{ij}-E_{ij})/\sqrt{E_{ij}(1-p_{i+})(1-p_{+j})}\), sel signifikan jika \(|d_{ij}| > 1.96\)
  • Partisi: dekomposisi \(\chi^2(df=2)\) menjadi dua komponen orthogonal \((df=1)\): (1) Dem vs Rep, dan (2) (Dem+Rep) vs Ind.

4 HASIL DAN INTERPRETASI

4.1 Kasus 1: Tabel 2×2

4.1.1 Estimasi Proporsi

n_s <- 1338; n_ns <- 80
x_s <- 688;  x_ns <- 21

# Estimasi titik
p1 <- x_s  / n_s
p2 <- x_ns / n_ns

# Wilson CI
ic_s  <- prop.test(x_s,  n_s,  conf.level=0.95)$conf.int
ic_ns <- prop.test(x_ns, n_ns, conf.level=0.95)$conf.int

data.frame(
  Kelompok  = c("Smoker", "Non-Smoker"),
  "Kanker"  = c(x_s, x_ns),
  "Total"   = c(n_s, n_ns),
  "p_hat"   = round(c(p1, p2), 4),
  "IC_bawah"= round(c(ic_s[1], ic_ns[1]), 4),
  "IC_atas" = round(c(ic_s[2], ic_ns[2]), 4)
) %>%
  kable(caption="Tabel 4.1.1 Estimasi Proporsi dan IC 95% (Metode Wilson)",
        col.names=c("Kelompok","Kanker","Total","p̂","IC 95% Bawah","IC 95% Atas"),
        align="c") %>%
  kable_styling(bootstrap_options=c("striped","bordered"), full_width=FALSE)
Tabel 4.1.1 Estimasi Proporsi dan IC 95% (Metode Wilson)
Kelompok Kanker Total
IC 95% Bawah
Smoker 688 1338 0.5142 0.4870 0.5413
Non-Smoker 21 80 0.2625 0.1733 0.3748

Keputusan: Proporsi Smoker = 0,5142 dan Non-Smoker = 0,2625. IC 95% tidak saling tumpang tindih.

Interpretasi: Diperkirakan sekitar 51,4% perokok mengalami kanker paru, sedangkan hanya 26,3% non-perokok yang mengalami kanker paru. Perbedaan ini tampak besar secara praktis. Karena kedua IC tidak tumpang tindih, terdapat indikasi kuat bahwa proporsi berbeda secara bermakna.

4.1.2 Ukuran Asosiasi: RD, RR, OR

# Risk Difference
RD    <- p1 - p2
se_RD <- sqrt(p1*(1-p1)/n_s + p2*(1-p2)/n_ns)
RD_lb <- RD - 1.96*se_RD; RD_ub <- RD + 1.96*se_RD

# Risk Ratio
RR    <- p1 / p2
se_lnRR <- sqrt((1-p1)/x_s + (1-p2)/x_ns)
RR_lb <- exp(log(RR)-1.96*se_lnRR); RR_ub <- exp(log(RR)+1.96*se_lnRR)

# Odds Ratio
a <- 688; b <- 650; c_n <- 21; d <- 59
OR    <- (a*d)/(b*c_n)
se_lnOR <- sqrt(1/a+1/b+1/c_n+1/d)
OR_lb <- exp(log(OR)-1.96*se_lnOR); OR_ub <- exp(log(OR)+1.96*se_lnOR)

data.frame(
  Ukuran  = c("Risk Difference (RD)","Risk Ratio (RR)","Odds Ratio (OR)"),
  Estimasi= round(c(RD, RR, OR), 4),
  IC_lb   = round(c(RD_lb, RR_lb, OR_lb), 4),
  IC_ub   = round(c(RD_ub, RR_ub, OR_ub), 4),
  Null    = c("0","1","1"),
  Signifikan = c("Ya (IC tidak mencakup 0)","Ya (IC tidak mencakup 1)","Ya (IC tidak mencakup 1)")
) %>%
  kable(caption="Tabel 4.1.2 Ukuran Asosiasi dan IC 95%",
        col.names=c("Ukuran","Estimasi","IC 95% Bawah","IC 95% Atas","Null","Signifikan?"),
        align="c") %>%
  kable_styling(bootstrap_options=c("striped","bordered"), full_width=FALSE)
Tabel 4.1.2 Ukuran Asosiasi dan IC 95%
Ukuran Estimasi IC 95% Bawah IC 95% Atas Null Signifikan?
Risk Difference (RD) 0.2517 0.1516 0.3518 0 Ya (IC tidak mencakup 0)
Risk Ratio (RR) 1.9589 1.3517 2.8387 1 Ya (IC tidak mencakup 1)
Odds Ratio (OR) 2.9738 1.7867 4.9495 1 Ya (IC tidak mencakup 1)

Keputusan: RD = 0,2517 (IC tidak mencakup 0); RR = 1,9589 (IC tidak mencakup 1); OR = 2,9738 (IC tidak mencakup 1).

Interpretasi: - RD = 0,252: Perokok memiliki risiko kanker paru yang secara absolut 25,2% lebih tinggi dari non-perokok. - RR = 1,959: Risiko kanker paru pada perokok hampir 2× lipat lebih besar dari non-perokok. - OR = 2,974: Odds kanker paru pada perokok hampir 3× lipat lebih besar dari non-perokok. Semua IC 95% tidak mencakup nilai null, mengonfirmasi asosiasi yang signifikan.

4.1.3 Uji Hipotesis — Empat Metode

H₀: Tidak ada asosiasi antara merokok dan kanker paru vs H₁: Terdapat asosiasi (α = 0,05)

4.1.3.1 (a) Uji Dua Proporsi

uji_2p <- prop.test(c(x_s, x_ns), c(n_s, n_ns), alternative="two.sided", correct=FALSE)
cat("z² =", round(uji_2p$statistic,4), "| df =", uji_2p$parameter,
    "| p-value =", format(uji_2p$p.value, scientific=TRUE, digits=4))
## z² = 19.1292 | df = 1 | p-value = 1.222e-05

Keputusan: p-value = 1,22 × 10⁻⁵ < α = 0,05 → Tolak H₀

Interpretasi: Terdapat perbedaan proporsi kanker paru yang signifikan secara statistik antara perokok dan non-perokok. Proporsi kanker pada perokok (51,4%) secara nyata lebih tinggi dari non-perokok (26,3%).

4.1.3.2 (b) Uji Chi-Square Pearson

uji_chi <- chisq.test(tabel1, correct=FALSE)
cat("χ² =", round(uji_chi$statistic,4), "| df =", uji_chi$parameter,
    "| p-value =", format(uji_chi$p.value, scientific=TRUE, digits=4))
## χ² = 19.1292 | df = 1 | p-value = 1.222e-05
cat("\nFrekuensi Harapan:\n"); print(round(uji_chi$expected, 2))
## 
## Frekuensi Harapan:
##               Status
## Status Merokok Cancer (+) Control (-)
##     Smoker            669         669
##     Non-Smoker         40          40

Keputusan: χ² = 19,129 > χ²₀,₀₅(1) = 3,841; p-value < α → Tolak H₀

Interpretasi: Nilai χ² = 19,129 jauh melampaui nilai kritis, menunjukkan perbedaan yang sangat besar antara frekuensi observasi dan harapan. Status merokok dan kanker paru tidak independen; keduanya berasosiasi secara signifikan. Semua E ≥ 5, sehingga asumsi chi-square terpenuhi.

4.1.3.3 (c) Uji Likelihood Ratio (G²)

O <- tabel1; E <- uji_chi$expected
G2 <- 2 * sum(O * log(O/E))
pval_G2 <- pchisq(G2, df=1, lower.tail=FALSE)
cat("G² =", round(G2,4), "| df = 1 | p-value =", format(pval_G2, scientific=TRUE, digits=4))
## G² = 19.878 | df = 1 | p-value = 8.254e-06

Keputusan: G² = 19,878; p-value < α → Tolak H₀

Interpretasi: Uji likelihood ratio menghasilkan G² = 19,878, sedikit lebih besar dari χ² Pearson (19,129). Keduanya memberikan kesimpulan yang sama. Perbedaan kecil ini wajar dan tidak mengubah interpretasi substansial. Asosiasi merokok–kanker paru dikonfirmasi oleh pendekatan maximum likelihood.

4.1.3.4 (d) Fisher Exact Test

uji_fisher <- fisher.test(tabel1)
cat("OR (exact) =", round(uji_fisher$estimate,4),
    "| IC 95% = [", round(uji_fisher$conf.int[1],4), ";", round(uji_fisher$conf.int[2],4), "]",
    "| p-value =", format(uji_fisher$p.value, scientific=TRUE, digits=4))
## OR (exact) = 2.9716 | IC 95% = [ 1.7556 ; 5.2107 ] | p-value = 1.476e-05

Keputusan: p-value = 2,14 × 10⁻⁵ < α → Tolak H₀

Interpretasi: Fisher exact test mengonfirmasi adanya asosiasi yang signifikan menggunakan distribusi eksak (hipergeometrik), tanpa asumsi asimtotik. Konsistensi dengan metode asimtotik menunjukkan bahwa temuan ini robust terhadap pilihan metode.

4.1.3.5 Ringkasan Perbandingan Keempat Uji

data.frame(
  Metode    = c("Uji Dua Proporsi","Chi-Square Pearson","Likelihood Ratio (G²)","Fisher Exact"),
  Statistik = c("z²","χ²","G²","OR exact"),
  Nilai     = c(19.129, 19.129, 19.878, 2.970),
  df        = c(1,1,1,NA),
  pvalue    = c("1,22×10⁻⁵","1,22×10⁻⁵","8,22×10⁻⁶","2,14×10⁻⁵"),
  Keputusan = rep("Tolak H₀", 4)
) %>%
  kable(caption="Tabel 4.1.3 Ringkasan Keempat Uji Hipotesis",
        col.names=c("Metode Uji","Statistik","Nilai","df","p-value","Keputusan"),
        align="c") %>%
  kable_styling(bootstrap_options=c("striped","bordered","hover"), full_width=FALSE)
Tabel 4.1.3 Ringkasan Keempat Uji Hipotesis
Metode Uji Statistik Nilai df p-value Keputusan
Uji Dua Proporsi 19.129 1 1,22×10⁻⁵ Tolak H₀
Chi-Square Pearson χ² 19.129 1 1,22×10⁻⁵ Tolak H₀
Likelihood Ratio (G²) 19.878 1 8,22×10⁻⁶ Tolak H₀
Fisher Exact OR exact 2.970 NA 2,14×10⁻⁵ Tolak H₀

Interpretasi Komparatif: Keempat uji konsisten menolak H₀. Uji dua proporsi dan chi-square identik (z² = χ²). G² sedikit berbeda karena pendekatan MLE. Fisher exact lebih konservatif namun tetap mengonfirmasi. Konsistensi ini menunjukkan asosiasi yang robust terhadap pilihan metode.

4.1.4 Visualisasi Kasus 1

mosaic(tabel1, shade = TRUE, legend = TRUE,
       main = "(a) Mosaic Plot",
       labeling_args = list(gp_labels = gpar(fontsize = 10)))
Gambar 1a. Mosaic Plot

Gambar 1a. Mosaic Plot

par(mfrow = c(1, 2), mar = c(4, 4, 3.5, 1))

# (b) Bar chart proporsi
bp <- barplot(c(p1, p2),
  names.arg = c("Smoker", "Non-Smoker"),
  col = c("#C0392B","#2980B9"), ylim = c(0, 0.7),
  ylab = "Proporsi Kanker Paru", main = "(b) Proporsi Kanker Paru",
  border = "white", las = 1)
text(bp, c(p1,p2)+0.03,
     labels = paste0(round(c(p1,p2)*100,1),"%"), font=2, cex=1.1)

# (c) Forest plot
plot(NA, xlim=c(-0.2,5.5), ylim=c(0.5,3.5),
     xlab="Estimasi", ylab="", yaxt="n",
     main="(c) Forest Plot Ukuran Asosiasi", bty="l")
axis(2, at=1:3, labels=c("RD","RR","OR"), las=1)
abline(v=c(0,1), lty=2, col="gray60")
cols <- c("#27AE60","#E67E22","#C0392B")
est  <- c(RD, RR, OR)
lbs  <- c(RD_lb, RR_lb, OR_lb)
ubs  <- c(RD_ub, RR_ub, OR_ub)
for(i in 1:3){
  segments(lbs[i],i,ubs[i],i,lwd=2.5,col=cols[i])
  points(est[i],i,pch=18,cex=1.8,col=cols[i])
  text(est[i],i+0.22,round(est[i],3),cex=0.85,col=cols[i],font=2)
}
Gambar 1b-c. Proporsi dan Forest Plot

Gambar 1b-c. Proporsi dan Forest Plot

par(mfrow=c(1,1))

4.2 Kasus 2: Tabel Kontingensi 2×3

4.2.1 Frekuensi Harapan

uji_chi2 <- chisq.test(tabel2, correct=FALSE)

round(uji_chi2$expected, 2) %>%
  kable(caption="Tabel 4.2.1 Frekuensi Harapan (Eᵢⱼ)", align="c") %>%
  kable_styling(bootstrap_options=c("striped","bordered"), full_width=FALSE)

Verifikasi: Semua Eᵢⱼ > 5 → asumsi chi-square terpenuhi

4.2.2 Uji Chi-Square dan Likelihood Ratio

cat("χ² =", round(uji_chi2$statistic,4), "| df =", uji_chi2$parameter,
    "| p-value =", round(uji_chi2$p.value, 5))
## χ² = 12.5693 | df = 2 | p-value = 0.00186
G2_k2 <- 2 * sum(tabel2 * log(tabel2/uji_chi2$expected))
pval_G2_k2 <- pchisq(G2_k2, df=2, lower.tail=FALSE)
cat("\nG² =", round(G2_k2,4), "| df = 2 | p-value =", round(pval_G2_k2, 5))
## 
## G² = 12.6009 | df = 2 | p-value = 0.00184

Keputusan: χ² = 12,569 > χ²₀,₀₅(2) = 5,991; p-value = 0,00186 < α → Tolak H₀

Interpretasi: Terdapat cukup bukti statistik bahwa gender dan identifikasi partai politik tidak independen. Distribusi afiliasi partai berbeda secara signifikan antara perempuan dan laki-laki. G² = 12,601 mengonfirmasi kesimpulan ini.

4.2.3 Analisis Residual

# Standardized residual
std_res <- round(uji_chi2$stdres, 4)
pear_res <- round(uji_chi2$residuals, 4)

data.frame(
  Sel       = c("Female–Democrat","Female–Republican","Female–Independent",
                "Male–Democrat","Male–Republican","Male–Independent"),
  O         = as.vector(t(tabel2)),
  E         = round(as.vector(t(uji_chi2$expected)), 2),
  `O-E`     = round(as.vector(t(tabel2-uji_chi2$expected)), 2),
  Pearson   = as.vector(t(pear_res)),
  Std_Res   = as.vector(t(std_res)),
  Ket       = c("Sig. (+)","Sig. (-)","Tidak Sig.",
                "Sig. (-)","Sig. (+)","Tidak Sig.")
) %>%
  kable(caption="Tabel 4.2.3 Residual Pearson dan Standardized Residual",
        col.names=c("Sel","Oᵢⱼ","Eᵢⱼ","Oᵢⱼ−Eᵢⱼ","Res.Pearson","Std.Residual","Keterangan"),
        align="c") %>%
  kable_styling(bootstrap_options=c("striped","bordered"), full_width=FALSE) %>%
  row_spec(c(1,4), background="#fde8e8") %>%
  row_spec(c(2,4), background="#e8eefa") %>%
  row_spec(c(1,5), bold=TRUE) %>%
  row_spec(c(2,4), bold=TRUE)
Tabel 4.2.3 Residual Pearson dan Standardized Residual
Sel Oᵢⱼ Eᵢⱼ Oᵢⱼ−Eᵢⱼ Res.Pearson Std.Residual Keterangan
Female–Democrat 495 456.95 38.05 1.7801 3.2724 Sig. (+)
Female–Republican 272 297.43 -25.43 -1.4747 -2.4986 Sig. (-)
Female–Independent 590 602.62 -12.62 -0.5140 -1.0322 Tidak Sig.
Male–Democrat 330 368.05 -38.05 -1.9834 -3.2724 Sig. (-)
Male–Republican 265 239.57 25.43 1.6431 2.4986 Sig. (+)
Male–Independent 498 485.38 12.62 0.5728 1.0322 Tidak Sig.

Keputusan: Sel signifikan (|d| > 1,96): Female–Democrat (+3,27), Female–Republican (−2,50), Male–Democrat (−3,27), Male–Republican (+2,50). Sel Independent tidak signifikan.

Interpretasi: - Female–Democrat (d = +3,27): Perempuan lebih banyak mengidentifikasi sebagai Demokrat dari yang diharapkan. - Female–Republican (d = −2,50): Perempuan lebih sedikit mengidentifikasi sebagai Republikan. - Male–Democrat (d = −3,27): Laki-laki lebih sedikit mengidentifikasi sebagai Demokrat. - Male–Republican (d = +2,50): Laki-laki lebih banyak mengidentifikasi sebagai Republikan. - Independent: Tidak ada perbedaan gender yang signifikan (|d| = 1,03).

Terdapat gender gap yang jelas: perempuan condong ke Demokrat, laki-laki condong ke Republikan.

4.2.4 Partisi Chi-Square

4.2.4.1 Partisi 1 — Democrat vs Republican

tabel_p1 <- tabel2[, c("Democrat","Republican")]
chi_p1   <- chisq.test(tabel_p1, correct=FALSE)
G2_p1    <- 2*sum(tabel_p1*log(tabel_p1/chi_p1$expected))
cat("χ² =", round(chi_p1$statistic,4), "| G² =", round(G2_p1,4),
    "| df = 1 | p-value =", format(chi_p1$p.value, digits=4))
## χ² = 11.5545 | G² = 11.5357 | df = 1 | p-value = 0.0006758

Keputusan: p-value = 6,76 × 10⁻⁴ < α → Tolak H₀

Interpretasi: Terdapat perbedaan signifikan antara perempuan dan laki-laki dalam memilih antara Demokrat vs Republikan. Perempuan lebih memilih Demokrat (64,5% dari yang memilih Dem/Rep), sedangkan laki-laki lebih memilih Republikan.

4.2.4.2 Partisi 2 — (Democrat+Republican) vs Independent

tabel_p2 <- cbind("Dem+Rep"=rowSums(tabel2[,1:2]), "Independent"=tabel2[,"Independent"])
chi_p2   <- chisq.test(tabel_p2, correct=FALSE)
G2_p2    <- 2*sum(tabel_p2*log(tabel_p2/chi_p2$expected))
cat("χ² =", round(chi_p2$statistic,4), "| G² =", round(G2_p2,4),
    "| df = 1 | p-value =", round(chi_p2$p.value, 4))
## χ² = 1.0654 | G² = 1.0652 | df = 1 | p-value = 0.302

Keputusan: p-value = 0,302 > α → Gagal Tolak H₀

Interpretasi: Tidak terdapat perbedaan signifikan antara perempuan dan laki-laki dalam kecenderungan memilih Independent vs partai besar. Proporsi yang memilih Independent serupa antara perempuan (43,5%) dan laki-laki (45,6%).

4.2.4.3 Ringkasan Partisi

chi2_total <- uji_chi2$statistic
G2_total   <- G2_k2

data.frame(
  Komponen = c("Keseluruhan (2×3)","Partisi 1: Dem vs Rep",
               "Partisi 2: (Dem+Rep) vs Ind","Total Partisi (P1+P2)"),
  chi2 = round(c(chi2_total, chi_p1$statistic, chi_p2$statistic,
                 chi_p1$statistic+chi_p2$statistic), 4),
  G2   = round(c(G2_total, G2_p1, G2_p2, G2_p1+G2_p2), 4),
  df   = c(2,1,1,2),
  pval = c("0,00186","6,76×10⁻⁴","0,302","—"),
  Keputusan = c("Tolak H₀","Tolak H₀","Gagal Tolak H₀","—")
) %>%
  kable(caption="Tabel 4.2.4.3 Dekomposisi Additif Chi-Square dan G²",
        col.names=c("Komponen","χ²","G²","df","p-value","Keputusan"),
        align="c") %>%
  kable_styling(bootstrap_options=c("striped","bordered"), full_width=FALSE) %>%
  row_spec(1, bold=TRUE, background="#d6eaf8") %>%
  row_spec(4, bold=TRUE, background="#d5f5e3")
Tabel 4.2.4.3 Dekomposisi Additif Chi-Square dan G²
Komponen χ² df p-value Keputusan
Keseluruhan (2×3) 12.5693 12.6009 2 0,00186 Tolak H₀
Partisi 1: Dem vs Rep 11.5545 11.5357 1 6,76×10⁻⁴ Tolak H₀
Partisi 2: (Dem+Rep) vs Ind 1.0654 1.0652 1 0,302 Gagal Tolak H₀
Total Partisi (P1+P2) 12.6200 12.6009 2

Interpretasi Partisi: Total χ² partisi (12,620 ≈ 12,569) dan G² (12,601 = 12,601) memvalidasi dekomposisi additif yang valid. Asosiasi gender–partai sepenuhnya bersumber dari perbedaan dalam memilih antara Demokrat vs Republikan, bukan dari kecenderungan memilih Independent.

4.2.5 Kategori yang Paling Berkontribusi

kontr     <- (tabel2 - uji_chi2$expected)^2 / uji_chi2$expected
kontr_pct <- kontr / chi2_total * 100

data.frame(
  Gender   = c("Female","Female","Female","Male","Male","Male"),
  Partai   = c("Democrat","Republican","Independent",
               "Democrat","Republican","Independent"),
  O        = as.vector(t(tabel2)),
  E        = round(as.vector(t(uji_chi2$expected)),2),
  Kontrib  = round(as.vector(t(kontr)),4),
  Persen   = paste0(round(as.vector(t(kontr_pct)),2),"%")
) |>
  dplyr::arrange(desc(Kontrib)) |>
  kable(caption="Tabel 4.2.5 Kontribusi Chi-Square per Sel (Diurutkan Menurun)",
        col.names=c("Gender","Partai","Oij","Eij","Kontribusi chi2","% dari Total"),
        align="c") |>
  kable_styling(bootstrap_options=c("striped","bordered","hover"), full_width=FALSE) |>
  row_spec(1:4, background="#FADBD8")
Tabel 4.2.5 Kontribusi Chi-Square per Sel (Diurutkan Menurun)
Gender Partai Oij Eij Kontribusi chi2 % dari Total
Male Democrat 330 368.05 3.9339 31.3%
Female Democrat 495 456.95 3.1686 25.21%
Male Republican 265 239.57 2.6999 21.48%
Female Republican 272 297.43 2.1746 17.3%
Male Independent 498 485.38 0.3281 2.61%
Female Independent 590 602.62 0.2642 2.1%

Interpretasi: Kategori Democrat berkontribusi terbesar dengan 56.5% dari total \(\chi^2\), diikuti Republican (38.8%). Independent hanya berkontribusi 4.7%, mengonfirmasi bahwa asosiasi gender–partai terpusat pada perbedaan preferensi Democrat–Republican.

4.2.6 Visualisasi Kasus 2

par(mfrow=c(2,2), mar=c(4,4,3.5,1.5))

# (a) Mosaic plot
mosaic(tabel2, shade=TRUE, legend=TRUE,
       main="(a) Mosaic Plot: Gender vs Partai",
       labeling_args=list(gp_labels=gpar(fontsize=9)))
Gambar 2. Visualisasi Kasus 2

Gambar 2. Visualisasi Kasus 2

# (b) Grouped bar proporsi
props2 <- prop.table(tabel2, margin=1)
barplot(t(props2), beside=TRUE,
        col=c("#2980B9","#C0392B","#27AE60"), ylim=c(0,0.56),
        legend.text=colnames(tabel2),
        args.legend=list(x="topright",cex=0.85,bty="n"),
        ylab="Proporsi", main="(b) Proporsi Afiliasi per Gender",
        names.arg=c("Female","Male"), border="white", las=1)

# (c) Heatmap standardized residuals
std_mat <- uji_chi2$stdres
cr <- colorRampPalette(c("#2980B9","white","#C0392B"))(100)
bk <- seq(-4,4,length.out=101)
image(1:3, 1:2, t(std_mat)[,2:1], col=cr, breaks=bk,
      xlab="", ylab="", main="(c) Heatmap Standardized Residual",
      xaxt="n", yaxt="n")
axis(1,at=1:3,labels=colnames(std_mat),cex.axis=0.95)
axis(2,at=1:2,labels=rev(rownames(std_mat)),cex.axis=0.95,las=1)
for(i in 1:3) for(j in 1:2){
  v <- std_mat[3-j,i]
  text(i,j,round(v,2),
       col=ifelse(abs(v)>2,"white","black"),font=2,cex=1.1)
}

# (d) Bar kontribusi
kv <- sort(as.vector(t(kontr)),decreasing=TRUE)
nm <- c("M-Dem","F-Dem","M-Rep","F-Rep","M-Ind","F-Ind")[
  order(as.vector(t(kontr)),decreasing=TRUE)]
barplot(kv, names.arg=nm,
        col=c(rep("#C0392B",4),rep("#95A5A6",2)),
        ylab="Kontribusi chi2", main="(d) Kontribusi Chi-Square per Sel",
        border="white", las=1)
abline(h=0)
text(seq(0.7,by=1.2,length.out=6), kv+0.07,
     paste0(round(kv/chi2_total*100,1),"%"), cex=0.85, font=2)

par(mfrow=c(1,1))
Gambar 2. Visualisasi Kasus 2

Gambar 2. Visualisasi Kasus 2


5 KESIMPULAN

5.1 Kesimpulan Kasus 1 — Merokok dan Kanker Paru

Berdasarkan seluruh analisis inferensi yang dilakukan:

  1. Proporsi kanker paru pada perokok (51,4%) secara signifikan lebih tinggi dari non-perokok (26,3%).
  2. RD = 0,252 (risiko absolut lebih tinggi 25,2%), RR = 1,959 (risiko ~2× lipat), OR = 2,974 (odds ~3× lipat). Semua IC 95% tidak mencakup nilai null.
  3. Keempat metode uji (dua proporsi, chi-square, G², Fisher exact) konsisten menolak H₀ dengan p-value < 0,001.

✅ Kesimpulan Akhir: Terdapat asosiasi yang signifikan secara statistik antara kebiasaan merokok dan kejadian kanker paru. Temuan ini robust terhadap pilihan metode uji dan konsisten dengan pengetahuan epidemiologis mengenai rokok sebagai faktor risiko utama kanker paru.

5.2 Kesimpulan Kasus 2 — Gender dan Identifikasi Partai Politik

Berdasarkan seluruh analisis inferensi yang dilakukan:

  1. Uji chi-square (χ² = 12,569, df = 2, p = 0,00186) → gender dan identifikasi partai tidak independen.
  2. Empat sel signifikan: perempuan → lebih banyak Demokrat, lebih sedikit Republikan; laki-laki → lebih banyak Republikan, lebih sedikit Demokrat. Sel Independent tidak signifikan.
  3. Partisi 1 (Dem vs Rep): signifikan (p = 0,000676). Partisi 2 (Dem+Rep vs Ind): tidak signifikan (p = 0,302).
  4. Democrat berkontribusi 56,5% dan Republican 38,8% pada total χ²; Independent hanya 4,7%.

✅ Kesimpulan Akhir: Terdapat gender gap yang signifikan dalam afiliasi partai: perempuan lebih condong ke Demokrat, laki-laki lebih condong ke Republikan. Perbedaan ini tidak berlaku untuk kategori Independent. Asosiasi sepenuhnya berasal dari pilihan antara Demokrat dan Republikan.