Analisis Data Kategori adalah cabang statistika yang berfokus pada data yang berbentuk frekuensi atau cacahan hasil klasifikasi observasi ke dalam kategori-kategori tertentu. Data jenis ini tidak berskala numerik kontinu, melainkan hanya menyatakan keanggotaan suatu kelompok atau kelas.
Dalam kehidupan sehari-hari, data kategori sangat mudah dijumpai. Di bidang kesehatan misalnya, seseorang diklasifikasikan berdasarkan status vaksinasi, jenis kelamin, atau ada tidaknya suatu penyakit. Di bidang sosial, seseorang dikelompokkan berdasarkan tingkat pendidikan, status pekerjaan, atau golongan pendapatan. Karena data semacam ini tidak dapat diperlakukan seperti data numerik biasa, diperlukan metode analisis yang khusus.
Salah satu pendekatan yang paling mendasar dan banyak digunakan dalam analisis data kategori adalah tabel kontingensi. Tabel ini memungkinkan kita untuk melihat bagaimana dua variabel kategori saling berhubungan, sekaligus menjadi dasar untuk menghitung berbagai ukuran kekuatan asosiasi antarvariabel. Laporan ini membahas konsep tabel kontingensi dua arah beserta tiga ukuran asosiasi utama yang umum digunakan, yaitu beda peluang, risiko relatif, dan odds ratio.
Tabel Kontingensi (contingency table) adalah tabel klasifikasi silang (cross-tabulation) yang menyajikan distribusi frekuensi bersama dari dua atau lebih variabel kategori secara simultan. Melalui tabel ini, dapat dilihat seberapa sering setiap kombinasi kategori muncul dalam data.
Tabel kontingensi diberi nama berdasarkan jumlah variabel yang terlibat. Jika hanya ada dua variabel, disebut tabel kontingensi dua arah. Jika ada tiga variabel, disebut tabel kontingensi tiga arah. Apabila variabel yang terlibat lebih dari tiga, maka disebut tabel kontingensi multi arah. Dalam laporan ini, fokus pembahasan ada pada tabel kontingensi dua arah karena merupakan bentuk yang paling dasar dan paling banyak digunakan.
Misalkan terdapat dua variabel kategori, yaitu variabel \(X\) dengan \(I\) kategori dan variabel \(Y\) dengan \(J\) kategori. Tabel klasifikasi silang antara keduanya membentuk tabel berukuran \(I \times J\), di mana setiap sel berisi frekuensi observasi yang termasuk dalam kombinasi kategori tertentu.
| X Y | \(y_1\) | \(y_2\) | \(\cdots\) | \(y_J\) | Total |
|---|---|---|---|---|---|
| \(x_1\) | \(n_{11}\) | \(n_{12}\) | \(\cdots\) | \(n_{1J}\) | \(n_{1\cdot}\) |
| \(x_2\) | \(n_{21}\) | \(n_{22}\) | \(\cdots\) | \(n_{2J}\) | \(n_{2\cdot}\) |
| \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\ddots\) | \(\vdots\) | \(\vdots\) |
| \(x_I\) | \(n_{I1}\) | \(n_{I2}\) | \(\cdots\) | \(n_{IJ}\) | \(n_{I\cdot}\) |
| Total | \(n_{\cdot 1}\) | \(n_{\cdot 2}\) | \(\cdots\) | \(n_{\cdot J}\) | \(n_{\cdot\cdot}\) |
Notasi yang digunakan: \(n_{ij}\) adalah frekuensi sel baris ke-\(i\) kolom ke-\(j\); \(n_{i\cdot}\) adalah total marginal baris ke-\(i\) yang diperoleh dengan menjumlahkan semua nilai pada baris tersebut; \(n_{\cdot j}\) adalah total marginal kolom ke-\(j\); dan \(n_{\cdot\cdot}\) adalah total keseluruhan observasi.
Bentuk paling sederhana dari tabel kontingensi dua arah adalah ketika masing-masing variabel hanya memiliki dua kategori, sehingga terbentuk tabel berukuran \(2 \times 2\). Berikut adalah strukturnya beserta notasi lengkap yang digunakan dalam perhitungan:
| X Y | \(y_1\) | \(y_2\) | Total |
|---|---|---|---|
| \(x_1\) | \(n_{11}\) | \(n_{12}\) | \(n_{1\cdot}\) |
| \(x_2\) | \(n_{21}\) | \(n_{22}\) | \(n_{2\cdot}\) |
| Total | \(n_{\cdot 1}\) | \(n_{\cdot 2}\) | \(n_{\cdot\cdot}\) |
Dari tabel di atas berlaku hubungan berikut:
Apabila variabel \(X\) dan \(Y\) merupakan variabel acak dan sampel dipilih secara acak dari suatu populasi, maka tabel kontingensi tersebut memiliki distribusi peluang. Terdapat tiga jenis distribusi peluang yang perlu dipahami.
Peluang bersama \(\pi_{ij}\) menyatakan peluang bahwa suatu observasi secara serentak masuk ke kategori \(X = i\) dan \(Y = j\). Estimasinya diperoleh dari proporsi frekuensi sel terhadap total keseluruhan:
\[\pi_{ij} = P(X = i,\ Y = j), \quad \text{diestimasi oleh} \quad \hat{\pi}_{ij} = \frac{n_{ij}}{n_{\cdot\cdot}}\]
Sifat: \(\displaystyle\sum_{i}\sum_{j} \pi_{ij} = 1\)
Peluang marginal adalah peluang yang hanya memperhatikan satu variabel saja, tanpa mempertimbangkan variabel lainnya. Peluang marginal diperoleh dengan menjumlahkan peluang bersama sepanjang satu dimensi:
Marginal untuk X (baris ke-i): \[\pi_{i\cdot} = \sum_{j=1}^{J} \pi_{ij} = \pi_{i1} + \pi_{i2}\]
Marginal untuk Y (kolom ke-j): \[\pi_{\cdot j} = \sum_{i=1}^{I} \pi_{ij} = \pi_{1j} + \pi_{2j}\]
Sifat: \(\displaystyle\sum_{i} \pi_{i\cdot} = \sum_{j} \pi_{\cdot j} = 1\)
Penjumlahan total: \(\pi_{11} + \pi_{12} + \pi_{21} + \pi_{22} = \pi_{1\cdot} + \pi_{2\cdot} = \pi_{\cdot 1} + \pi_{\cdot 2} = 1\)
Peluang bersyarat menyatakan peluang suatu kategori \(Y\) terjadi dengan kondisi bahwa kategori \(X\) tertentu sudah diketahui. Jika variabel \(X\) dijadikan syarat, maka peluang bersyarat \(Y = j\) diberikan \(X = h\) adalah:
\[\pi_{j|h} = P(Y = j \mid X = h) = \frac{\pi_{hj}}{\pi_{h\cdot}}\]
dengan sifat \(\displaystyle\sum_{j} \pi_{j|h} = 1\) untuk setiap nilai \(h\).
Distribusi peluang bersyarat untuk tabel 2 x 2 apabila \(X\) dijadikan syarat adalah sebagai berikut:
| X Y | \(y_1\) | \(y_2\) | Total |
|---|---|---|---|
| \(x_1\) | \(\pi_{1 \mid 1}\) | \(\pi_{2 \mid 1}\) | 1 |
| \(x_2\) | \(\pi_{1 \mid 2}\) | \(\pi_{2 \mid 2}\) | 1 |
Di sini \(\pi_{j|i}\) adalah peluang kategori \(Y\) ke-\(j\) bersyarat variabel \(X\) ke-\(i\), dan berlaku \(\pi_{1|i} + \pi_{2|i} = 1\) untuk setiap \(i\).
Kondisi Independensi: Jika \(X\) dan \(Y\) saling bebas (independen), maka berlaku: \[\pi_{hj} = \pi_{h\cdot} \times \pi_{\cdot j} \quad \text{atau ekuivalen} \quad \pi_{j|h} = \pi_{\cdot j}\] Artinya, peluang variabel respons \(Y = j\) tidak bergantung pada kategori \(X\) — distribusi bersyarat \(Y\) sama untuk setiap baris \(X\).
Cara data dikumpulkan sangat memengaruhi interpretasi tabel kontingensi dan ukuran asosiasi yang tepat digunakan. Terdapat tiga jenis desain sampling yang relevan.
| Desain | Penjelasan | Contoh di Indonesia | Distribusi Relevan |
|---|---|---|---|
| Prospektif | Pengelompokan variabel X (prediktor) ditetapkan terlebih dahulu, kemudian variabel respons Y diamati setelahnya. Peneliti memiliki kendali atas pengelompokan. | Uji klinis obat antihipertensi (kelompok diberi obat vs plasebo, lalu diamati tekanan darahnya); Studi kohort perokok dan kanker paru di Indonesia | Peluang bersyarat Y diberikan X |
| Retrospektif | Variabel respons Y (outcome) ditetapkan terlebih dahulu, kemudian ditelusuri prediktor X yang melatarbelakanginya. Perbandingan distribusi Y bersyarat X tidak bisa dikerjakan langsung. | Studi kasus-kontrol pasien HIV/AIDS di RSCM Jakarta: pasien ditetapkan lebih dulu, lalu ditelusuri riwayat perilaku risikonya | Peluang bersyarat X diberikan Y |
| Cross Sectional | Sampel acak diambil dari populasi, lalu setiap unit diklasifikasikan menurut X dan Y secara bersamaan. Peneliti hanya mengamati apa yang terjadi. | Survei Kesehatan Dasar (Riskesdas) oleh Kemenkes RI: responden diklasifikasikan menurut status gizi dan wilayah tempat tinggal secara bersamaan | Peluang bersama |
Hubungan antara dua variabel acak \(X\) dan \(Y\) yang keduanya bersifat kategori dalam tabel kontingensi disebut asosiasi. Asosiasi dalam tabel kontingensi dibentuk berdasarkan distribusi peluang bersyaratnya. Pada tabel kontingensi dua arah terdapat tiga jenis ukuran asosiasi, yaitu beda peluang, risiko relatif, dan rasio odds.
Jika \(Y\) merupakan variabel respons, beda peluang bersyarat \(Y = j\) untuk dua kategori dari \(X\), yaitu \(h\) dan \(i\), memberikan indikasi ada tidaknya asosiasi antara keduanya:
\[\Delta = \pi_{j|h} - \pi_{j|i}\]
Nilai beda sebesar nol, atau \(\pi_{j|h} = \pi_{j|i}\), mencerminkan keadaan tidak terdapat asosiasi, artinya peluang nilai variabel respons \(Y = j\) tidak bergantung pada kategori \(X\). Sehingga berlaku:
\[\pi_{j|h} = \pi_{j|i} = \pi_{\cdot j} \quad \Longrightarrow \quad X \text{ dan } Y \text{ independen}\]
Rentang nilai: \(-1 \leq \Delta \leq 1\)
Nilai \(\Delta > 0\) menunjukkan kelompok \(h\) memiliki peluang lebih tinggi untuk mengalami respons \(Y = j\), sedangkan \(\Delta < 0\) menunjukkan sebaliknya.
Keterbatasan Beda Peluang: Beda peluang antara dua baris mungkin menghasilkan nilai yang sama walaupun peluang-peluangnya tidak sama. Beda peluang akan memberikan kesimpulan yang keliru pada saat peluang-peluang yang terlibat bernilai sangat kecil. Misalnya, selisih antara 0,04 dan 0,02 menghasilkan \(\Delta = 0,02\) yang terlihat kecil, padahal secara relatif kelompok pertama memiliki risiko dua kali lebih besar. Untuk situasi seperti ini, risiko relatif menjadi pilihan yang lebih informatif.
Risiko Relatif (RR) merupakan alternatif yang dapat mengatasi keterbatasan beda peluang. RR adalah rasio antara dua peluang bersyarat, yaitu antara peluang \(Y = j\) dalam baris \(X = h\) dengan \(X = i\):
\[RR = \frac{\pi_{j|h}}{\pi_{j|i}}\]
Nilai RR berkisar dalam interval \(0\) sampai \(\infty\). Nilai RR sama dengan 1 mengindikasikan tidak adanya asosiasi antara variabel \(X\) dengan variabel \(Y\):
\[RR = 1 \quad \Longrightarrow \quad \pi_{j|h} = \pi_{j|i} \quad \Longrightarrow \quad Y \text{ dan } X \text{ independen}\]
Nilai \(RR > 1\) menunjukkan kelompok \(h\) berisiko lebih tinggi mengalami respons \(j\), sementara \(RR < 1\) menunjukkan risiko yang lebih rendah dibandingkan kelompok \(i\).
Catatan Penggunaan RR: Risiko relatif dapat diinterpretasikan secara langsung hanya pada desain prospektif (clinical trial atau cohort study). Pada desain retrospektif (case-control study), RR tidak dapat dihitung secara valid karena total baris tidak mencerminkan proporsi populasi yang sesungguhnya. Dalam situasi tersebut, odds ratio menjadi ukuran yang lebih tepat digunakan.
Beda peluang dan risiko relatif membandingkan sebuah respons \(Y\) menurut dua baris berbeda dari \(X\). Perbandingan dua respons \(Y\) dalam \(X\) yang sama menghasilkan sebuah odds. Kemungkinan terjadinya respons \(j\) dalam \(X = i\) berbanding dengan respons \(k\) juga dalam \(X = i\) dinyatakan dalam odds berikut:
\[\Psi_i(j,k) = \frac{\pi_{j|i}}{\pi_{k|i}}, \quad j \neq k = 1, \ldots, J; \quad i = 1, \ldots, I\]
Apabila \(X\) dan \(Y\) keduanya merupakan variabel respons, maka berdasarkan definisi peluang bersyarat, odds dalam baris \(i\) untuk \(Y = j\) dan \(k\) adalah:
\[\Psi_i(j,k) = \frac{\pi_{ij}}{\pi_{ik}}\]
Hasilnya merupakan nilai non-negatif yang memperlihatkan apakah \(j\) lebih mungkin terjadi dibanding \(k\). Sebuah nilai \(> 1\) memperlihatkan bahwa \(j\) lebih mungkin dibanding \(k\). Misalnya jika \(\Psi_i(j,k) = 4\), artinya respons \(j\) empat kali lebih mungkin terjadi dibandingkan respons \(k\) apabila \(X = i\).
Asosiasi antara \(X\) dengan \(Y\) diperlihatkan melalui rasio dua buah odds — misalnya odds baris 1 dan odds baris 2 — yang disebut odds ratio. Untuk dua buah level \(X\), yaitu \(h\) dan \(i\), odds ratio respons \(j\) dan \(k\) adalah:
\[\Psi_{hi}(j,k) = \frac{\Psi_h(j,k)}{\Psi_i(j,k)} = \frac{\pi_{j|h} / \pi_{k|h}}{\pi_{j|i} / \pi_{k|i}}\]
Yang dapat disederhanakan menjadi perkalian silang (cross product):
\[\Psi_{hi}(j,k) = \frac{\pi_{j|h} \times \pi_{k|i}}{\pi_{j|i} \times \pi_{k|h}} = \frac{\pi_{hj} \times \pi_{ik}}{\pi_{ij} \times \pi_{hk}}\]
Untuk tabel 2 x 2 secara khusus, odds ratio merupakan cross product dari elemen-elemen pada diagonal:
\[\boxed{OR = \frac{n_{11} \times n_{22}}{n_{12} \times n_{21}} = \frac{ad}{bc}}\]
| \(y_1\) | \(y_2\) | Total | |
|---|---|---|---|
| \(x_1\) | \(a = n_{11}\) | \(b = n_{12}\) | \(n_{1\cdot}\) |
| \(x_2\) | \(c = n_{21}\) | \(d = n_{22}\) | \(n_{2\cdot}\) |
| Total | \(n_{\cdot 1}\) | \(n_{\cdot 2}\) | \(n_{\cdot\cdot}\) |
Nilai odds ratio berkisar dalam interval \(0\) sampai \(\infty\). Nilai OR sama dengan 1 mengindikasikan tidak adanya asosiasi. Nilai \(OR > 1\) mengindikasikan bahwa subjek-subjek dalam baris \(h\) lebih mungkin menghasilkan respons \(j\) dibandingkan dengan subjek dalam baris \(i\), sebanyak \(\Psi_{hi}\) kalinya.
Catatan penting: Untuk tabel \(I \times J\) yang lebih besar, tidak perlu menghitung seluruh kombinasi 2 x 2. Cukup diwakili oleh sebanyak \((I-1) \times (J-1)\) odds ratio saja, dengan menetapkan satu kategori dari baris dan satu dari kolom sebagai patokan (baseline). OR juga berlaku untuk semua desain sampling dan merupakan parameter utama dalam model regresi logistik.
Untuk memperjelas konsep yang telah diuraikan, berikut disajikan contoh perhitungan menggunakan data survei hipotetis yang menggambarkan hubungan antara status aktivitas fisik dan kejadian hipertensi pada 250 responden dewasa.
| Aktivitas Fisik (X) | Hipertensi (\(y_1\)) | Tidak Hipertensi (\(y_2\)) | Total |
|---|---|---|---|
| Aktif Berolahraga | 30 | 95 | 125 |
| Tidak Aktif Berolahraga | 95 | 30 | 125 |
| Total | 125 | 125 | 250 |
Dari tabel tersebut diperoleh: \(a = 30\), \(b = 95\), \(c = 95\), \(d = 30\), dengan total baris masing-masing \(n_{1\cdot} = n_{2\cdot} = 125\).
\[\hat{\pi}_{11} = \frac{30}{250} = 0{,}12, \quad \hat{\pi}_{12} = \frac{95}{250} = 0{,}38\] \[\hat{\pi}_{21} = \frac{95}{250} = 0{,}38, \quad \hat{\pi}_{22} = \frac{30}{250} = 0{,}12\]
Verifikasi: \(0{,}12 + 0{,}38 + 0{,}38 + 0{,}12 = 1\) \(\checkmark\)
\[\hat{\pi}_{1\cdot} = \frac{125}{250} = 0{,}50 \quad \text{(peluang aktif berolahraga)}\] \[\hat{\pi}_{\cdot 1} = \frac{125}{250} = 0{,}50 \quad \text{(peluang hipertensi)}\]
\[\hat{\pi}_{1|1} = P(\text{Hipertensi} \mid \text{Aktif}) = \frac{30}{125} = 0{,}24\]
\[\hat{\pi}_{1|2} = P(\text{Hipertensi} \mid \text{Tidak Aktif}) = \frac{95}{125} = 0{,}76\]
\[\Delta = \hat{\pi}_{1|1} - \hat{\pi}_{1|2} = 0{,}24 - 0{,}76 = \mathbf{-0{,}52}\]
\[RR = \frac{\hat{\pi}_{1|1}}{\hat{\pi}_{1|2}} = \frac{0{,}24}{0{,}76} = \mathbf{0{,}316}\]
\[\Psi_1 = \frac{\hat{\pi}_{1|1}}{\hat{\pi}_{2|1}} = \frac{0{,}24}{0{,}76} = \frac{30}{95} \approx 0{,}316 \quad \text{(odds aktif)}\]
\[\Psi_2 = \frac{\hat{\pi}_{1|2}}{\hat{\pi}_{2|2}} = \frac{0{,}76}{0{,}24} = \frac{95}{30} \approx 3{,}167 \quad \text{(odds tidak aktif)}\]
\[OR = \frac{\Psi_1}{\Psi_2} = \frac{0{,}316}{3{,}167} \approx \mathbf{0{,}0997}\]
Verifikasi dengan perkalian silang:
\[OR = \frac{a \times d}{b \times c} = \frac{30 \times 30}{95 \times 95} = \frac{900}{9025} \approx \mathbf{0{,}0997} \checkmark\]
# Membuat matriks tabel kontingensi
data_hipertensi <- matrix(
c(30, 95, 95, 30),
nrow = 2,
byrow = TRUE,
dimnames = list(
c("Aktif Berolahraga", "Tidak Aktif"),
c("Hipertensi", "Tidak Hipertensi")
)
)
data_hipertensi Hipertensi Tidak Hipertensi
Aktif Berolahraga 30 95
Tidak Aktif 95 30
Hipertensi Tidak Hipertensi
Aktif Berolahraga 0.12 0.38
Tidak Aktif 0.38 0.12
Aktif Berolahraga Tidak Aktif
0.5 0.5
Hipertensi Tidak Hipertensi
Aktif Berolahraga 0.24 0.76
Tidak Aktif 0.76 0.24
a <- data_hipertensi[1, 1]
b <- data_hipertensi[1, 2]
c <- data_hipertensi[2, 1]
d <- data_hipertensi[2, 2]
beda_peluang <- (a / (a + b)) - (c / (c + d))
risiko_relatif <- (a / (a + b)) / (c / (c + d))
odds_ratio <- (a * d) / (b * c)
cat("Beda Peluang :", round(beda_peluang, 4), "\n")Beda Peluang : -0.52
Risiko Relatif : 0.3158
Odds Ratio : 0.0997
Pearson's Chi-squared test with Yates' continuity correction
data: data_hipertensi
X-squared = 65.536, df = 1, p-value = 5.706e-16
proporsi <- prop.table(data_hipertensi, margin = 1)
barplot(
t(proporsi),
beside = TRUE,
col = c("#1d6fa4", "#a8dadc"),
ylim = c(0, 0.95),
ylab = "Proporsi",
xlab = "Status Aktivitas Fisik",
main = "Proporsi Hipertensi berdasarkan Status Aktivitas Fisik",
legend.text = colnames(proporsi),
args.legend = list(x = "topright", bty = "n", cex = 0.95)
)Proporsi Kejadian Hipertensi berdasarkan Status Aktivitas Fisik
Berdasarkan data yang dianalisis, diperoleh nilai beda peluang sebesar \(-0,52\). Nilai negatif ini menunjukkan bahwa kelompok yang aktif berolahraga memiliki peluang mengalami hipertensi yang lebih rendah dibandingkan kelompok yang tidak aktif, dengan selisih sebesar 52 poin persentase. Secara rinci, hanya 24% dari kelompok aktif yang mengalami hipertensi, sedangkan pada kelompok tidak aktif angka tersebut mencapai 76%.
Risiko relatif yang diperoleh sebesar 0,316 memperkuat temuan tersebut. Artinya, risiko terkena hipertensi pada kelompok aktif berolahraga hanya sekitar 31,6% dari risiko yang dialami kelompok tidak aktif, atau dengan kata lain kelompok aktif memiliki risiko hipertensi sekitar tiga kali lebih rendah. Sementara itu, odds ratio sebesar 0,0997 menunjukkan bahwa odds kelompok aktif mengalami hipertensi hanya sekitar sepersepuluh dari odds kelompok tidak aktif. Karena prevalensi hipertensi dalam data ini cukup tinggi, OR terlihat jauh lebih ekstrem dibandingkan RR, yang merupakan konsekuensi wajar dari perbedaan karakteristik kedua ukuran ini.
Hasil uji chi-square menunjukkan nilai yang signifikan secara statistik dengan \(p\)-value jauh di bawah 0,05. Hal ini berarti terdapat asosiasi yang bermakna antara status aktivitas fisik dan kejadian hipertensi dalam data ini, dan asosiasi tersebut sangat kecil kemungkinannya terjadi hanya karena kebetulan.
Secara keseluruhan, ketiga ukuran asosiasi yang dihitung semuanya mengarah pada kesimpulan yang sama: terdapat hubungan yang kuat dan negatif antara kebiasaan berolahraga dengan kejadian hipertensi. Kelompok yang tidak aktif secara fisik memiliki kecenderungan yang jauh lebih besar untuk mengalami hipertensi dibandingkan kelompok yang rutin berolahraga.
Agresti, A. (2002). Categorical Data Analysis (2nd ed.). John Wiley & Sons.
Agresti, A. (2007). An Introduction to Categorical Data Analysis (2nd ed.). John Wiley & Sons.
Jaya, I G. N. M. (2021). Materi Kuliah Analisis Data Kategori — Tabel Kontingensi Dua Arah. Program Studi S1 Statistika FMIPA Universitas Padjadjaran.
R Core Team (2024). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria. https://www.R-project.org/