Analisis data kategori merupakan cabang statistika yang berfokus pada data yang terukur dalam skala nominal atau ordinal — data yang dikelompokkan ke dalam kategori, bukan diukur secara numerik kontinu.
Dalam laporan ini, kita akan melakukan inferensi statistika pada tabel kontingensi dua arah, yang merupakan alat utama untuk menganalisis hubungan antara dua variabel kategorikal.
Tabel kontingensi (contingency table) adalah tabel yang menyajikan distribusi frekuensi dari dua atau lebih variabel kategorikal secara silang. Tabel ini memungkinkan kita untuk melihat bagaimana kategori dari satu variabel terdistribusi di antara kategori variabel lainnya.
Untuk dua variabel \(X\) (dengan \(I\) kategori baris) dan \(Y\) (dengan \(J\) kategori kolom), tabel kontingensi berukuran \(I \times J\) memiliki sel \((i, j)\) yang berisi frekuensi \(n_{ij}\).
| Simbol | Keterangan |
|---|---|
| \(n_{ij}\) | Frekuensi pada baris ke-\(i\), kolom ke-\(j\) |
| \(n_{i+}\) | Total baris ke-\(i\) (marginal baris) |
| \(n_{+j}\) | Total kolom ke-\(j\) (marginal kolom) |
| \(n\) | Total keseluruhan pengamatan |
| \(\pi_{ij}\) | Probabilitas bersama sel \((i,j)\) |
Joint distribution adalah distribusi probabilitas bersama dari dua variabel sekaligus. Probabilitas bersama sel \((i,j)\) diestimasi dengan:
\[\hat{\pi}_{ij} = \frac{n_{ij}}{n} \tag{1}\]
dengan \(\sum_i \sum_j \hat{\pi}_{ij} = 1\).
Marginal distribution adalah distribusi probabilitas dari salah satu variabel tanpa memperhatikan variabel lainnya, diperoleh dengan menjumlahkan probabilitas bersama sepanjang baris atau kolom.
Marginal untuk variabel baris (X):
\[\hat{\pi}_{i+} = \sum_j \hat{\pi}_{ij} = \frac{n_{i+}}{n} \tag{2}\]
Marginal untuk variabel kolom (Y):
\[\hat{\pi}_{+j} = \sum_i \hat{\pi}_{ij} = \frac{n_{+j}}{n} \tag{3}\]
Conditional probability (peluang bersyarat) adalah probabilitas suatu kejadian terjadi dengan syarat kejadian lain sudah diketahui terjadi:
\[P(Y = j \mid X = i) = \frac{\pi_{ij}}{\pi_{i+}} \approx \frac{n_{ij}}{n_{i+}} \tag{4}\]
Catatan: Perbandingan probabilitas bersyarat inilah yang menjadi dasar ukuran asosiasi seperti Relative Risk dan Odds Ratio.
Ukuran asosiasi digunakan untuk mengukur seberapa kuat hubungan antara dua variabel kategorikal, khususnya pada tabel 2x2.
Risk Difference adalah selisih antara proporsi kejadian pada dua kelompok:
\[RD = \pi_{1|1} - \pi_{1|2} = \frac{n_{11}}{n_{1+}} - \frac{n_{21}}{n_{2+}} \tag{5}\]
Relative Risk (Risiko Relatif) adalah rasio proporsi kejadian antara dua kelompok:
\[RR = \frac{\pi_{1|1}}{\pi_{1|2}} = \frac{n_{11}/n_{1+}}{n_{21}/n_{2+}} \tag{6}\]
Odds Ratio adalah rasio odds antara dua kelompok:
\[OR = \frac{n_{11} \cdot n_{22}}{n_{12} \cdot n_{21}} \tag{7}\]
Keunggulan OR: Dapat digunakan pada studi kasus-kontrol dan tidak bergantung pada marginal total.
Untuk menguji apakah dua variabel kategorikal saling independen, digunakan beberapa uji statistik.
Hipotesis:
\[H_0: \pi_{ij} = \pi_{i+} \cdot \pi_{+j} \quad \text{(independen)}\] \[H_1: \pi_{ij} \neq \pi_{i+} \cdot \pi_{+j} \quad \text{(tidak independen)}\]
Statistik uji Pearson:
\[X^2 = \sum_i \sum_j \frac{(n_{ij} - \hat{\mu}_{ij})^2}{\hat{\mu}_{ij}} \tag{8}\]
dengan frekuensi harapan \(\hat{\mu}_{ij} = \dfrac{n_{i+} \cdot n_{+j}}{n}\).
Statistik ini berdistribusi \(\chi^2\) dengan derajat bebas \((I-1)(J-1)\).
\[G^2 = 2 \sum_i \sum_j n_{ij} \ln\!\left(\frac{n_{ij}}{\hat{\mu}_{ij}}\right) \tag{9}\]
Statistik \(G^2\) juga berdistribusi \(\chi^2_{(I-1)(J-1)}\) dan bersifat aditif — cocok untuk partisi tabel.
Digunakan ketika frekuensi harapan kecil (< 5). Menghitung probabilitas eksak dari distribusi hipergeometrik:
\[P = \frac{\binom{n_{1+}}{n_{11}} \binom{n_{2+}}{n_{21}}}{\binom{n}{n_{+1}}} \tag{10}\]
Sebuah studi kasus-kontrol dilakukan untuk menyelidiki hubungan antara kebiasaan merokok dan kejadian kanker paru. Data dikumpulkan dari 1418 subjek, terdiri dari kelompok kanker dan kelompok kontrol.
data_kasus1 <- matrix(
c(688, 21, 650, 59),
nrow = 2, byrow = FALSE,
dimnames = list(
Status_Merokok = c("Perokok", "Bukan Perokok"),
Hasil = c("Kanker (+)", "Kontrol (-)")
)
)
addmargins(data_kasus1)## Hasil
## Status_Merokok Kanker (+) Kontrol (-) Sum
## Perokok 688 650 1338
## Bukan Perokok 21 59 80
## Sum 709 709 1418
# Proporsi
p1 <- 688 / 1338 # proporsi perokok di antara kanker
p2 <- 21 / 80 # proporsi bukan perokok di antara kanker
# Risk Difference
rd <- p1 - p2
rr_res <- epitools::riskratio(data_kasus1, method = "wald")
or_res <- epitools::oddsratio(data_kasus1, method = "wald")
cat("Risk Difference (RD) :", round(rd, 4), "\n")## Risk Difference (RD) : 0.2517
## Relative Risk (RR) : 1.5181
## Odds Ratio (OR) : 2.9738
Interpretasi:
##
## Pearson's Chi-squared test
##
## data: data_kasus1
## X-squared = 19.129, df = 1, p-value = 1.222e-05
## X^2 df P(> X^2)
## Likelihood Ratio 19.878 1 8.2544e-06
## Pearson 19.129 1 1.2216e-05
##
## Phi-Coefficient : 0.116
## Contingency Coeff.: 0.115
## Cramer's V : 0.116
##
## Fisher's Exact Test for Count Data
##
## data: data_kasus1
## 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
Ketiga uji menghasilkan p-value yang sangat kecil (jauh di bawah \(\alpha = 0.05\)), sehingga kita menolak \(H_0\). Terdapat bukti kuat bahwa status merokok dan kejadian kanker paru tidak independen — dengan kata lain, merokok berasosiasi secara signifikan dengan peningkatan risiko kanker paru.
Analisis ini bertujuan untuk mengetahui apakah terdapat hubungan antara Gender (Female, Male) dengan Identifikasi Partai Politik (Democrat, Republican, Independent).
data_kasus2 <- matrix(
c(495,330,272,265,590,498),
nrow = 2,
dimnames = list(
Gender = c("Female", "Male"),
Ideologi = c("Liberal", "Moderate", "Conservative")
)
)
addmargins(data_kasus2)## Ideologi
## Gender Liberal Moderate Conservative Sum
## Female 495 272 590 1357
## Male 330 265 498 1093
## Sum 825 537 1088 2450
##
## Pearson's Chi-squared test
##
## data: data_kasus2
## X-squared = 12.569, df = 2, p-value = 0.001865
Pearson residuals mengukur kontribusi setiap sel terhadap statistik chi-square:
\[e_{ij} = \frac{n_{ij} - \hat{\mu}_{ij}}{\sqrt{\hat{\mu}_{ij}}} \tag{11}\]
Nilai \(|e_{ij}| > 2\) mengindikasikan sel tersebut berkontribusi besar terhadap asosiasi.
## Pearson Residuals:
## Ideologi
## Gender Liberal Moderate Conservative
## Female 1.7801 -1.4747 -0.5140
## Male -1.9834 1.6431 0.5728
Karena \(G^2\) bersifat aditif, tabel 2x3 dapat dipartisi menjadi dua tabel 2x2 yang independen. Ini membantu mengidentifikasi di mana letak perbedaan yang signifikan.
Skema partisi:
\[X^2_{\text{total}} \approx X^2_{\text{Partisi 1}} + X^2_{\text{Partisi 2}} \tag{12}\]
# Partisi 1: Liberal vs Moderate
sub1 <- data_kasus2[, 1:2]
chisq_sub1 <- chisq.test(sub1)
# Partisi 2: (Liberal + Moderate) vs Conservative
comb_lib_mod <- rowSums(data_kasus2[, 1:2])
sub2 <- cbind(comb_lib_mod, data_kasus2[, 3])
chisq_sub2 <- chisq.test(sub2)
cat("X2 Partisi 1 (Liberal vs Moderate) :",
round(chisq_sub1$statistic, 4), "\n")## X2 Partisi 1 (Liberal vs Moderate) : 11.1777
## X2 Partisi 2 (Liberal+Moderate vs Conservative) : 0.9827
## Total X2 dari Partisi : 12.1603
## X2 Tabel Asli (2x3) : 12.5693
epitools: Aragon, T. J. (2020). epitools:
Epidemiology Tools. CRAN.vcd: Meyer, D., Zeileis, A., & Hornik, K.
(2023). vcd: Visualizing Categorical Data. CRAN.