Analisis data kategori (categorical data analysis) adalah sekumpulan metode statistik yang dirancang khusus untuk menganalisis data yang nilainya berupa kategori atau kelompok, bukan bilangan kontinu yang bisa dijumlahkan atau dirata-ratakan secara langsung.
Dalam kehidupan sehari-hari, banyak sekali informasi yang kita kumpulkan berwujud kategori. Ketika dokter mencatat apakah seorang pasien merokok atau tidak, ketika petugas sensus mencatat golongan darah penduduk, atau ketika peneliti mencatat apakah seorang responden puas atau tidak puas dengan suatu layanan — semua itu adalah contoh data kategori.
Menurut Agresti (2013), analisis data kategori mencakup metode untuk:
Metode ini sangat umum dipakai di berbagai bidang seperti kesehatan masyarakat, epidemiologi, ilmu sosial, ekonomi, dan pendidikan.
💡 Definisi Ringkas
Data kategori adalah data yang nilainya berupa label atau nama — bukan angka yang memiliki makna kuantitatif. Setiap observasi hanya dapat masuk ke dalam satu kategori yang telah ditentukan, dan kategori-kategori tersebut bersifat mutually exclusive (saling lepas) serta exhaustive (mencakup semua kemungkinan).
Variabel kategori memiliki sejumlah karakteristik khas yang membedakannya dari variabel numerik. Pemahaman terhadap karakteristik ini penting agar kita dapat memilih metode analisis yang tepat.
| No. | Karakteristik | Penjelasan |
|---|---|---|
| 1 | Diskrit | Nilai-nilainya terbatas; tidak ada nilai “di antara” dua kategori |
| 2 | Nominal | Kategori tanpa urutan alami (contoh: jenis kelamin, golongan darah) |
| 3 | Ordinal | Kategori dengan urutan bermakna, namun jarak antar kategori tidak pasti |
| 4 | Biner / Dikotomi | Hanya dua kategori (contoh: ya/tidak, lulus/tidak lulus) |
| 5 | Tidak bermakna dirata-rata | Menghitung rata-rata dari “laki-laki” dan “perempuan” tidak memiliki makna statistik |
| 6 | Diringkas dengan frekuensi | Ringkasan utamanya adalah hitungan (count) dan proporsi tiap kategori |
1. Variabel Nominal
Variabel nominal memiliki kategori-kategori yang tidak memiliki urutan atau tingkatan. Setiap kategori hanya merupakan label yang membedakan satu kelompok dari yang lain.
Contoh: jenis kelamin (laki-laki, perempuan), warna mata (cokelat, hitam, biru), agama, dan golongan darah (A, B, AB, O).
2. Variabel Ordinal
Variabel ordinal memiliki kategori yang tersusun dalam urutan bermakna, namun jarak (interval) antara dua kategori yang berurutan tidak diketahui secara pasti dan tidak dianggap sama.
Contoh: tingkat pendidikan (SD < SMP < SMA < S1 < S2 < S3), tingkat nyeri (ringan, sedang, berat), dan skala kepuasan (sangat tidak puas hingga sangat puas).
3. Variabel Biner (Dikotomi)
Variabel biner adalah kasus khusus dari variabel nominal yang hanya memiliki tepat dua kategori. Variabel ini sangat sering muncul dalam penelitian kesehatan dan sosial.
Contoh: status penyakit (sakit/sehat), keputusan (ya/tidak), hasil ujian (lulus/tidak lulus), dan kebiasaan merokok (merokok/tidak merokok).
Analisis data kategori diterapkan secara luas di berbagai disiplin ilmu. Berikut beberapa contoh nyata dari berbagai bidang:
🏥 Bidang Kesehatan & Epidemiologi
Peneliti ingin mengetahui apakah kebiasaan merokok berhubungan dengan kejadian kanker paru. Kedua variabel — status merokok (ya/tidak) dan status kanker (ya/tidak) — adalah data kategori biner. Dengan tabel kontingensi dan uji chi-square, hubungan antar keduanya dapat diuji secara statistik.
👥 Ilmu Sosial
Seorang sosiolog menganalisis apakah jenis kelamin memengaruhi pilihan jurusan di perguruan tinggi. Jenis kelamin (laki-laki/perempuan) dan pilihan jurusan (IPA/IPS/Bahasa) keduanya merupakan variabel kategori nominal.
💰 Ekonomi & Keuangan
Peneliti ekonomi menguji apakah tingkat pendidikan seseorang berhubungan dengan status kepemilikan rumah (memiliki/tidak memiliki). Tingkat pendidikan adalah variabel ordinal, sementara status kepemilikan rumah adalah variabel biner.
📚 Pendidikan
Seorang peneliti pendidikan membandingkan metode pengajaran (tatap muka vs. daring) terhadap kelulusan ujian (lulus/tidak lulus). Analisis data kategori memungkinkan peneliti mengevaluasi efektivitas masing-masing metode secara kuantitatif.
📚 Referensi Utama
Tabel kontingensi (contingency table) adalah sebuah tabel yang digunakan untuk merangkum dan menyajikan frekuensi bersama dari dua atau lebih variabel kategori secara bersamaan. Tabel ini disebut juga tabel silang (cross-tabulation atau crosstab) karena setiap sel pada tabel merupakan perpotongan antara kategori-kategori dari dua variabel yang berbeda.
Tabel kontingensi paling sederhana adalah tabel berukuran \(2 \times 2\), yang digunakan ketika masing-masing dari dua variabel hanya memiliki dua kategori. Namun, tabel kontingensi dapat diperluas menjadi \(r \times c\) untuk variabel dengan \(r\) baris dan \(c\) kolom.
Konsep tabel kontingensi pertama kali dipopulerkan oleh Karl Pearson pada awal abad ke-20 sebagai alat untuk mempelajari hubungan antar variabel kategori dalam data observasional.
Untuk menjelaskan struktur tabel kontingensi, kita gunakan contoh hubungan antara Status Merokok (variabel baris) dan Penyakit Jantung (variabel kolom).
| Penyakit Jantung (Ya) | Penyakit Jantung (Tidak) | Total Baris | |
|---|---|---|---|
| Merokok (Ya) | \(a\) | \(b\) | \(a + b = n_{1+}\) |
| Merokok (Tidak) | \(c\) | \(d\) | \(c + d = n_{2+}\) |
| Total Kolom | \(a + c = n_{+1}\) | \(b + d = n_{+2}\) | \(n\) |
Keterangan notasi:
Distribusi bersama (joint distribution) menggambarkan probabilitas dua kejadian terjadi secara bersamaan dalam satu observasi. Secara matematis, distribusi bersama dinotasikan sebagai \(P(X = i, Y = j)\), yaitu proporsi frekuensi sel \((i, j)\) terhadap total observasi.
\[P(X = i,\; Y = j) = \frac{n_{ij}}{n}\]
Sifat penting dari distribusi bersama adalah bahwa seluruh probabilitas bersama dalam satu tabel harus berjumlah tepat sama dengan 1:
\[\sum_{i=1}^{r}\sum_{j=1}^{c} P(X = i, Y = j) = 1\]
Contoh penerapan — probabilitas seseorang merokok dan terkena penyakit jantung secara bersamaan:
\[P(\text{Merokok},\; \text{Jantung}) = \frac{a}{n}\]
Distribusi bersama memberikan gambaran menyeluruh tentang pola kombinasi dua variabel dalam populasi.
Distribusi marginal adalah probabilitas suatu variabel tanpa memperhatikan nilai variabel lainnya. Distribusi ini diperoleh dengan menjumlahkan (marginalisasi) sel-sel pada satu arah — seluruh baris atau seluruh kolom.
\[P(X = i) = \sum_{j=1}^{c} P(X = i, Y = j) = \frac{n_{i+}}{n}\]
\[P(Y = j) = \sum_{i=1}^{r} P(X = i, Y = j) = \frac{n_{+j}}{n}\]
Dalam contoh kita, distribusi marginal untuk variabel Status Merokok adalah:
\[P(\text{Merokok}) = \frac{a + b}{n} \qquad \text{dan} \qquad P(\text{Tidak Merokok}) = \frac{c + d}{n}\]
Dan distribusi marginal untuk variabel Penyakit Jantung adalah:
\[P(\text{Jantung}) = \frac{a + c}{n} \qquad \text{dan} \qquad P(\text{Tidak Jantung}) = \frac{b + d}{n}\]
Distribusi marginal berguna ketika kita ingin mengetahui karakteristik masing-masing variabel secara terpisah, tanpa mempertimbangkan variabel lainnya.
Probabilitas bersyarat adalah probabilitas suatu kejadian terjadi, dengan syarat bahwa suatu kejadian lain sudah diketahui atau sudah terjadi. Ini adalah konsep yang paling penting dalam analisis tabel kontingensi karena memungkinkan kita membandingkan risiko antar kelompok secara langsung.
Secara matematis, probabilitas bersyarat \(Y = j\) diberikan \(X = i\) dinotasikan:
\[P(Y = j \mid X = i) = \frac{P(X = i,\; Y = j)}{P(X = i)} = \frac{n_{ij}}{n_{i+}}\]
Dalam contoh kita, probabilitas terkena penyakit jantung jika diketahui seseorang merokok adalah:
\[P(\text{Jantung} \mid \text{Merokok}) = \frac{a}{a + b}\]
Dan probabilitas terkena penyakit jantung jika diketahui seseorang tidak merokok adalah:
\[P(\text{Jantung} \mid \text{Tidak Merokok}) = \frac{c}{c + d}\]
Perbandingan antara kedua probabilitas bersyarat ini menjadi dasar untuk menghitung ukuran asosiasi seperti Relative Risk dan Odds Ratio pada bagian berikutnya.
⚠️ Konsep Independensi
Dua variabel \(X\) dan \(Y\) dikatakan independen (tidak saling berhubungan) apabila:
\[P(Y = j \mid X = i) = P(Y = j) \quad \text{untuk semua } i \text{ dan } j\]
Artinya, mengetahui nilai \(X\) tidak memberikan informasi tambahan apa pun tentang \(Y\). Sebaliknya, jika nilai probabilitas bersyarat berbeda antar kelompok, maka ada indikasi asosiasi antara kedua variabel.
Setelah memahami struktur tabel kontingensi dan distribusi probabilitasnya, langkah selanjutnya adalah mengukur kekuatan hubungan (asosiasi) antara dua variabel. Terdapat beberapa ukuran asosiasi yang umum digunakan, masing-masing dengan cara perhitungan dan interpretasi yang berbeda.
Odds adalah perbandingan antara probabilitas suatu kejadian terjadi dengan probabilitas kejadian tersebut tidak terjadi. Odds bukanlah probabilitas itu sendiri, melainkan rasio antara dua probabilitas komplementer.
\[\boxed{\text{Odds} = \frac{P(\text{kejadian terjadi})}{P(\text{kejadian tidak terjadi})} = \frac{p}{1-p}}\]
Dalam konteks tabel kontingensi \(2 \times 2\), odds terkena kejadian pada masing-masing kelompok adalah:
\[\text{Odds}_{\text{Kelompok 1}} = \frac{a/(a+b)}{b/(a+b)} = \frac{a}{b}\]
\[\text{Odds}_{\text{Kelompok 2}} = \frac{c/(c+d)}{d/(c+d)} = \frac{c}{d}\]
Interpretasi Odds:
| Nilai Odds | Makna |
|---|---|
| Odds = 1 | Peluang kejadian sama besar dengan peluang tidak kejadian |
| Odds > 1 | Kejadian lebih mungkin terjadi daripada tidak terjadi |
| Odds < 1 | Kejadian lebih mungkin tidak terjadi |
Sebagai contoh, odds = 3 berarti kejadian tersebut 3 kali lebih mungkin terjadi dibandingkan tidak terjadi. Odds = 0,5 berarti kejadian tersebut 2 kali lebih mungkin tidak terjadi dibandingkan terjadi.
Odds Ratio (OR) adalah perbandingan antara odds suatu kejadian pada Kelompok 1 terhadap odds pada Kelompok 2. OR mengukur seberapa besar perbedaan kecenderungan antar dua kelompok dalam mengalami suatu kejadian.
\[\boxed{OR = \frac{\text{Odds Kelompok 1}}{\text{Odds Kelompok 2}} = \frac{a/b}{c/d} = \frac{ad}{bc}}\]
Rumus \(\dfrac{ad}{bc}\) sering disebut sebagai cross-product ratio karena melibatkan perkalian silang dari keempat sel pada tabel \(2 \times 2\).
Interpretasi Odds Ratio:
| Nilai OR | Makna |
|---|---|
| OR = 1 | Tidak ada asosiasi; odds kedua kelompok sama |
| OR > 1 | Kelompok 1 memiliki odds lebih tinggi untuk mengalami kejadian |
| OR < 1 | Kelompok 1 memiliki odds lebih rendah (efek protektif terhadap kejadian) |
OR sangat sering digunakan dalam studi case-control karena sifatnya yang simetris. Selain itu, OR memiliki sifat yang menarik: nilai OR tidak berubah apabila baris dan kolom tabel ditukar posisinya.
Relative Risk (RR) atau Risk Ratio adalah perbandingan antara probabilitas (bukan odds) suatu kejadian pada Kelompok 1 dengan probabilitas pada Kelompok 2. RR lebih intuitif karena langsung menyatakan “berapa kali lebih berisiko” tanpa perlu interpretasi tambahan.
\[\boxed{RR = \frac{P(\text{Kejadian} \mid \text{Kelompok 1})}{P(\text{Kejadian} \mid \text{Kelompok 2})} = \frac{a/(a+b)}{c/(c+d)}}\]
Interpretasi Relative Risk:
| Nilai RR | Makna |
|---|---|
| RR = 1 | Risiko sama di kedua kelompok; tidak ada asosiasi |
| RR > 1 | Kelompok 1 memiliki risiko lebih tinggi |
| RR < 1 | Kelompok 1 memiliki risiko lebih rendah (efek protektif) |
Misalnya, RR = 2,5 berarti individu di Kelompok 1 memiliki risiko 2,5 kali lebih besar untuk mengalami kejadian tersebut dibandingkan individu di Kelompok 2.
Meskipun keduanya mengukur asosiasi, OR dan RR memiliki perbedaan mendasar yang perlu dipahami:
| Aspek | Odds Ratio (OR) | Relative Risk (RR) |
|---|---|---|
| Basis perhitungan | Odds | Probabilitas |
| Kemudahan interpretasi | Kurang intuitif | Lebih intuitif dan langsung |
| Cocok untuk studi | Case-control, Regresi Logistik | Kohort, Cross-sectional |
| Saat kejadian langka | OR ≈ RR | RR langsung tepat |
| Saat kejadian umum (> 10%) | OR melebih-lebihkan kekuatan asosiasi | RR lebih akurat |
💡 Aturan Praktis: Kapan Menggunakan OR vs RR?
Ketika prevalensi suatu kejadian kurang dari 10% (kejadian langka), nilai OR dan RR akan sangat berdekatan sehingga OR dapat digunakan sebagai pendekatan RR. Namun ketika prevalensi lebih dari 10%, OR akan menghasilkan nilai yang lebih besar dari RR, sehingga interpretasi OR harus lebih berhati-hati dan tidak boleh langsung diterjemahkan sebagai “berapa kali lebih berisiko”. Dalam kondisi ini, gunakan RR apabila desain studi memungkinkan.
Dalam kasus ini, kita menggunakan data dari sebuah studi observasional untuk menyelidiki hubungan antara kebiasaan merokok dengan kejadian kanker paru-paru.
Kanker paru merupakan salah satu penyebab kematian akibat kanker tertinggi di dunia. Rokok mengandung lebih dari 70 zat karsinogenik yang dapat merusak DNA sel-sel saluran pernapasan dan memicu pertumbuhan sel kanker secara tidak terkendali. Pertanyaan statistiknya adalah: apakah terdapat asosiasi yang bermakna antara merokok dan kanker paru, dan seberapa besar kekuatan asosiasi tersebut?
Studi dilakukan terhadap 200 orang yang dibagi menjadi dua kelompok berdasarkan status merokoknya. Setelah pemeriksaan medis, diperoleh data sebagai berikut:
| Kanker Paru (Ya) | Kanker Paru (Tidak) | Total | |
|---|---|---|---|
| Merokok (Ya) | 60 | 40 | 100 |
| Merokok (Tidak) | 20 | 80 | 100 |
| Total | 80 | 120 | 200 |
Dari tabel tersebut, kita identifikasi nilai-nilai berikut:
\[a = 60, \quad b = 40, \quad c = 20, \quad d = 80, \quad n = 200\]
Sebelum menghitung ukuran asosiasi, kita terlebih dahulu memeriksa distribusi masing-masing variabel secara terpisah untuk memahami komposisi data.
Distribusi marginal Status Merokok:
\[P(\text{Merokok}) = \frac{a + b}{n} = \frac{60 + 40}{200} = \frac{100}{200} = 0{,}50\]
\[P(\text{Tidak Merokok}) = \frac{c + d}{n} = \frac{20 + 80}{200} = \frac{100}{200} = 0{,}50\]
Distribusi marginal Kanker Paru:
\[P(\text{Kanker Paru}) = \frac{a + c}{n} = \frac{60 + 20}{200} = \frac{80}{200} = 0{,}40\]
\[P(\text{Tidak Kanker Paru}) = \frac{b + d}{n} = \frac{40 + 80}{200} = \frac{120}{200} = 0{,}60\]
Kedua kelompok memiliki jumlah yang seimbang (masing-masing 100 orang), dan secara keseluruhan 40% dari seluruh responden terkena kanker paru.
Selanjutnya kita hitung proporsi tiap sel dari total keseluruhan untuk mendapatkan gambaran pola kombinasi kedua variabel:
\[P(\text{Merokok, Kanker}) = \frac{a}{n} = \frac{60}{200} = 0{,}30\]
\[P(\text{Merokok, Tidak Kanker}) = \frac{b}{n} = \frac{40}{200} = 0{,}20\]
\[P(\text{Tidak Merokok, Kanker}) = \frac{c}{n} = \frac{20}{200} = 0{,}10\]
\[P(\text{Tidak Merokok, Tidak Kanker}) = \frac{d}{n} = \frac{80}{200} = 0{,}40\]
Verifikasi: \(0{,}30 + 0{,}20 + 0{,}10 + 0{,}40 = 1{,}00\) ✓
Terlihat bahwa kombinasi paling umum adalah “tidak merokok dan tidak kanker paru” (40%), diikuti oleh “merokok dan kanker paru” (30%).
Langkah krusial dalam mengukur asosiasi adalah membandingkan probabilitas terkena kanker paru antara dua kelompok. Probabilitas bersyarat inilah yang akan menjadi dasar perhitungan RR dan OR.
Probabilitas terkena kanker paru pada kelompok perokok:
\[P(\text{Kanker} \mid \text{Merokok}) = \frac{n_{11}}{n_{1+}} = \frac{a}{a + b} = \frac{60}{60 + 40} = \frac{60}{100} = 0{,}60\]
Probabilitas terkena kanker paru pada kelompok bukan perokok:
\[P(\text{Kanker} \mid \text{Tidak Merokok}) = \frac{n_{21}}{n_{2+}} = \frac{c}{c + d} = \frac{20}{20 + 80} = \frac{20}{100} = 0{,}20\]
🔎 Temuan Awal
Probabilitas terkena kanker paru pada kelompok perokok (0,60) adalah 3 kali lebih besar dibandingkan pada kelompok bukan perokok (0,20). Perbedaan sebesar 40 persentase poin ini sudah memberikan indikasi kuat bahwa terdapat hubungan antara merokok dan kanker paru. Asosiasi ini akan dikuantifikasi secara formal pada langkah berikutnya.
Odds dihitung secara terpisah untuk masing-masing kelompok sebagai perbandingan antara peluang terkena dan tidak terkena kanker paru.
Odds terkena kanker paru pada kelompok perokok:
\[\text{Odds}_{\text{Merokok}} = \frac{P(\text{Kanker} \mid \text{Merokok})}{P(\text{Tidak Kanker} \mid \text{Merokok})} = \frac{a}{b} = \frac{60}{40} = 1{,}50\]
Interpretasi: Pada kelompok perokok, peluang terkena kanker paru 1,5 kali lebih besar daripada peluang tidak terkena. Atau dalam kata lain, di antara setiap 2,5 perokok, diharapkan 1,5 orang akan terkena kanker paru.
Odds terkena kanker paru pada kelompok bukan perokok:
\[\text{Odds}_{\text{Tidak Merokok}} = \frac{P(\text{Kanker} \mid \text{Tidak Merokok})}{P(\text{Tidak Kanker} \mid \text{Tidak Merokok})} = \frac{c}{d} = \frac{20}{80} = 0{,}25\]
Interpretasi: Pada kelompok bukan perokok, odds terkena kanker paru hanya 0,25. Artinya peluang terkena kanker paru 4 kali lebih kecil dibandingkan peluang tidak terkena pada kelompok ini. Kanker paru jauh lebih tidak mungkin terjadi pada bukan perokok.
Odds Ratio dihitung sebagai perbandingan odds antara kelompok perokok (kelompok terekspos) dan bukan perokok (kelompok referensi):
\[OR = \frac{\text{Odds}_{\text{Merokok}}}{\text{Odds}_{\text{Tidak Merokok}}} = \frac{a/b}{c/d} = \frac{ad}{bc}\]
Substitusi nilai dari data:
\[OR = \frac{60 \times 80}{40 \times 20} = \frac{4.800}{800} = \mathbf{6{,}00}\]
✅ Interpretasi OR = 6,00
Odds terkena kanker paru pada kelompok perokok adalah 6 kali lebih besar dibandingkan odds pada kelompok bukan perokok. Nilai OR yang jauh dari 1 ini mengindikasikan asosiasi yang kuat antara kebiasaan merokok dan kejadian kanker paru. Dalam konteks klinis, OR sebesar 6 tergolong asosiasi yang sangat bermakna secara praktis.
Relative Risk dihitung sebagai perbandingan langsung antara probabilitas bersyarat terkena kanker paru pada dua kelompok:
\[RR = \frac{P(\text{Kanker} \mid \text{Merokok})}{P(\text{Kanker} \mid \text{Tidak Merokok})} = \frac{a/(a+b)}{c/(c+d)}\]
Substitusi nilai:
\[RR = \frac{60/100}{20/100} = \frac{0{,}60}{0{,}20} = \mathbf{3{,}00}\]
✅ Interpretasi RR = 3,00
Risiko terkena kanker paru pada kelompok perokok adalah 3 kali lebih besar dibandingkan pada kelompok bukan perokok. Jika seseorang adalah perokok, risiko kanker parunya meningkat sebesar 200% (atau naik 2 kali lipat dari baseline) dibandingkan bukan perokok. Nilai RR inilah yang lebih tepat digunakan untuk komunikasi risiko kepada masyarakat umum.
Untuk menguji apakah hubungan yang terlihat adalah signifikan secara statistik (bukan sekadar kebetulan dari variasi sampel), kita gunakan Uji Chi-Square Pearson. Uji ini membandingkan frekuensi yang teramati (\(O_{ij}\)) dengan frekuensi yang diharapkan jika kedua variabel benar-benar independen (\(E_{ij}\)).
Hipotesis:
Langkah 7a — Menghitung Frekuensi yang Diharapkan (\(E_{ij}\)):
Frekuensi yang diharapkan dihitung berdasarkan asumsi bahwa kedua variabel independen:
\[E_{ij} = \frac{(\text{Total Baris}_i) \times (\text{Total Kolom}_j)}{n}\]
\[E_{11} = \frac{(a+b)(a+c)}{n} = \frac{100 \times 80}{200} = 40\]
\[E_{12} = \frac{(a+b)(b+d)}{n} = \frac{100 \times 120}{200} = 60\]
\[E_{21} = \frac{(c+d)(a+c)}{n} = \frac{100 \times 80}{200} = 40\]
\[E_{22} = \frac{(c+d)(b+d)}{n} = \frac{100 \times 120}{200} = 60\]
Tabel Perbandingan Frekuensi Observasi (\(O\)) dan Ekspektasi (\(E\)):
| Kanker: \(O\) / \(E\) | Tidak Kanker: \(O\) / \(E\) | |
|---|---|---|
| Merokok | 60 / 40 | 40 / 60 |
| Tidak Merokok | 20 / 40 | 80 / 60 |
Terlihat bahwa frekuensi observasi berbeda cukup jauh dari frekuensi ekspektasi, terutama pada sel (Merokok, Kanker) yang selisihnya mencapai 20.
Langkah 7b — Menghitung Statistik Chi-Square:
\[\chi^2 = \sum_{i}\sum_{j} \frac{(O_{ij} - E_{ij})^2}{E_{ij}}\]
\[\chi^2 = \frac{(60-40)^2}{40} + \frac{(40-60)^2}{60} + \frac{(20-40)^2}{40} + \frac{(80-60)^2}{60}\]
\[\chi^2 = \frac{(20)^2}{40} + \frac{(-20)^2}{60} + \frac{(-20)^2}{40} + \frac{(20)^2}{60}\]
\[\chi^2 = \frac{400}{40} + \frac{400}{60} + \frac{400}{40} + \frac{400}{60}\]
\[\chi^2 = 10{,}000 + 6{,}667 + 10{,}000 + 6{,}667 = \mathbf{33{,}33}\]
Langkah 7c — Pengambilan Keputusan:
Derajat bebas: \(df = (r-1)(c-1) = (2-1)(2-1) = 1\)
Nilai kritis pada \(\alpha = 0{,}05\): \(\chi^2_{(1; 0,05)} = 3{,}841\)
Karena \(\chi^2_{\text{hitung}} = 33{,}33 \gg \chi^2_{\text{tabel}} = 3{,}841\), maka kita menolak \(H_0\) dengan sangat kuat.
📊 Keputusan Uji Chi-Square
\(\chi^2 = 33{,}33 > \chi^2_{\text{tabel}} = 3{,}841\) pada \(df = 1\) dan \(\alpha = 0{,}05\), sehingga \(H_0\) ditolak. Terdapat cukup bukti statistik untuk menyimpulkan bahwa status merokok dan kejadian kanker paru tidak independen — dengan kata lain, terdapat hubungan yang signifikan antara keduanya.
| Ukuran | Formula | Perhitungan | Nilai |
|---|---|---|---|
| \(P(\text{Kanker} \mid \text{Merokok})\) | \(a/(a+b)\) | \(60/100\) | 0,60 |
| \(P(\text{Kanker} \mid \text{Tidak Merokok})\) | \(c/(c+d)\) | \(20/100\) | 0,20 |
| Odds (Merokok) | \(a/b\) | \(60/40\) | 1,50 |
| Odds (Tidak Merokok) | \(c/d\) | \(20/80\) | 0,25 |
| Odds Ratio (OR) | \(ad/bc\) | \(4800/800\) | 6,00 |
| Relative Risk (RR) | \((a/n_{1+})/(c/n_{2+})\) | \(0{,}60/0{,}20\) | 3,00 |
| Chi-Square (\(\chi^2\)) | \(\sum(O-E)^2/E\) | \(10+6{,}67+10+6{,}67\) | 33,33 |
Pada bagian ini kita melakukan analisis yang identik dengan perhitungan manual di atas menggunakan bahasa pemrograman R. Tujuannya adalah untuk memverifikasi kebenaran perhitungan manual dan sekaligus menunjukkan cara implementasi analisis data kategori secara komputasional yang efisien.
# ── Membuat matriks data ──────────────────────────────────────────────────────
data_kanker <- matrix(
c(60, 40,
20, 80),
nrow = 2,
byrow = TRUE
)
rownames(data_kanker) <- c("Merokok", "Tidak Merokok")
colnames(data_kanker) <- c("Kanker Paru", "Tidak Kanker Paru")
# ── Tampilkan tabel kontingensi ───────────────────────────────────────────────
cat("=== TABEL KONTINGENSI ===\n\n")#> === TABEL KONTINGENSI ===
#> Kanker Paru Tidak Kanker Paru
#> Merokok 60 40
#> Tidak Merokok 20 80
#>
#> === TABEL DENGAN TOTAL MARGIN ===
#> Kanker Paru Tidak Kanker Paru Sum
#> Merokok 60 40 100
#> Tidak Merokok 20 80 100
#> Sum 80 120 200
n <- sum(data_kanker)
# ── Joint distribution (proporsi tiap sel terhadap total) ─────────────────────
cat("=== JOINT DISTRIBUTION ===\n\n")#> === JOINT DISTRIBUTION ===
#> Kanker Paru Tidak Kanker Paru
#> Merokok 0.3 0.2
#> Tidak Merokok 0.1 0.4
# ── Marginal distribution baris (Status Merokok) ──────────────────────────────
cat("\n=== MARGINAL DISTRIBUTION — Status Merokok ===\n\n")#>
#> === MARGINAL DISTRIBUTION — Status Merokok ===
#> Merokok Tidak Merokok
#> 0.5 0.5
# ── Marginal distribution kolom (Kanker Paru) ─────────────────────────────────
cat("\n=== MARGINAL DISTRIBUTION — Kanker Paru ===\n\n")#>
#> === MARGINAL DISTRIBUTION — Kanker Paru ===
#> Kanker Paru Tidak Kanker Paru
#> 0.4 0.6
# ── Probabilitas bersyarat: proporsi dalam tiap baris ─────────────────────────
cat("=== PROBABILITAS BERSYARAT P(Kanker Paru | Status Merokok) ===\n\n")#> === PROBABILITAS BERSYARAT P(Kanker Paru | Status Merokok) ===
#> Kanker Paru Tidak Kanker Paru
#> Merokok 0.6 0.4
#> Tidak Merokok 0.2 0.8
# ── Ekstrak nilai spesifik yang diperlukan ────────────────────────────────────
p_kanker_merokok <- prob_bersyarat["Merokok", "Kanker Paru"]
p_kanker_tidak_merokok <- prob_bersyarat["Tidak Merokok", "Kanker Paru"]
cat("\nP(Kanker | Merokok) =", round(p_kanker_merokok, 4))#>
#> P(Kanker | Merokok) = 0.6
#>
#> P(Kanker | Tidak Merokok) = 0.2
# ── Ekstrak nilai keempat sel ─────────────────────────────────────────────────
a <- data_kanker["Merokok", "Kanker Paru"]
b <- data_kanker["Merokok", "Tidak Kanker Paru"]
cc <- data_kanker["Tidak Merokok", "Kanker Paru"] # pakai 'cc' karena 'c' adalah fungsi R
d <- data_kanker["Tidak Merokok", "Tidak Kanker Paru"]
# ── Hitung Odds masing-masing kelompok ────────────────────────────────────────
odds_merokok <- a / b
odds_tidak_merokok <- cc / d
# ── Hitung Odds Ratio ─────────────────────────────────────────────────────────
OR <- (a * d) / (b * cc)
cat("Odds (Merokok) =", round(odds_merokok, 4), "\n")#> Odds (Merokok) = 1.5
#> Odds (Tidak Merokok) = 0.25
#> Odds Ratio (OR) = 6
# ── Relative Risk ─────────────────────────────────────────────────────────────
RR <- p_kanker_merokok / p_kanker_tidak_merokok
cat("Relative Risk (RR) =", round(RR, 4), "\n")#> Relative Risk (RR) = 3
Uji Chi-Square digunakan untuk menguji apakah terdapat hubungan yang signifikan secara statistik antara dua variabel kategori, dengan hipotesis:
# ── Uji Chi-Square Pearson (tanpa koreksi kontinuitas) ────────────────────────
hasil_chisq <- chisq.test(data_kanker, correct = FALSE)
print(hasil_chisq)#>
#> Pearson's Chi-squared test
#>
#> data: data_kanker
#> X-squared = 33.333, df = 1, p-value = 7.764e-09
# ── Tampilkan frekuensi yang diharapkan (E_ij) ────────────────────────────────
cat("\n=== FREKUENSI YANG DIHARAPKAN (E_ij) ===\n\n")#>
#> === FREKUENSI YANG DIHARAPKAN (E_ij) ===
#> Kanker Paru Tidak Kanker Paru
#> Merokok 40 60
#> Tidak Merokok 40 60
# ── Tampilkan residual standar ────────────────────────────────────────────────
cat("\n=== RESIDUAL STANDAR (O - E) / sqrt(E) ===\n\n")#>
#> === RESIDUAL STANDAR (O - E) / sqrt(E) ===
#> Kanker Paru Tidak Kanker Paru
#> Merokok 3.1623 -2.582
#> Tidak Merokok -3.1623 2.582
# ── Persiapan: hitung proporsi per kelompok ───────────────────────────────────
proporsi <- prop.table(data_kanker, margin = 1) * 100
# ── Atur margin agar legenda tidak terpotong ──────────────────────────────────
par(mar = c(5, 5.5, 4.5, 9), xpd = TRUE)
bp <- barplot(
t(proporsi),
beside = TRUE,
col = c("#C0392B", "#2980B9"),
names.arg = c("Merokok", "Tidak Merokok"),
ylab = "Persentase (%)",
xlab = "Status Merokok",
main = "Proporsi Kejadian Kanker Paru\nBerdasarkan Status Merokok",
ylim = c(0, 90),
border = NA,
cex.lab = 1.1,
cex.main = 1.15,
cex.names = 1.05
)
# ── Label persentase di atas tiap batang ──────────────────────────────────────
text(
x = bp,
y = t(proporsi) + 3,
labels = paste0(round(t(proporsi), 0), "%"),
cex = 0.95,
font = 2
)
# ── Legenda di sisi kanan luar area plot ──────────────────────────────────────
legend(
x = max(bp) + 1.8,
y = 88,
legend = c("Kanker Paru", "Tidak Kanker Paru"),
fill = c("#C0392B", "#2980B9"),
border = NA,
bty = "n",
cex = 0.92
)Sebagai konfirmasi akhir, berikut perbandingan langsung antara hasil perhitungan manual dan hasil yang diperoleh dari R:
# ── Kumpulkan hasil manual ────────────────────────────────────────────────────
hasil_manual <- c(0.6000, 0.2000, 1.5000, 0.2500, 6.0000, 3.0000, 33.33)
# ── Kumpulkan hasil R ─────────────────────────────────────────────────────────
hasil_r <- c(
round(p_kanker_merokok, 4),
round(p_kanker_tidak_merokok, 4),
round(odds_merokok, 4),
round(odds_tidak_merokok, 4),
round(OR, 4),
round(RR, 4),
round(hasil_chisq$statistic, 2)
)
# ── Susun tabel perbandingan ──────────────────────────────────────────────────
ukuran <- c(
"P(Kanker | Merokok)",
"P(Kanker | Tidak Merokok)",
"Odds (Merokok)",
"Odds (Tidak Merokok)",
"Odds Ratio (OR)",
"Relative Risk (RR)",
"Chi-Square"
)
verif <- data.frame(
Ukuran = ukuran,
Manual = hasil_manual,
R = hasil_r,
Status = ifelse(abs(hasil_manual - hasil_r) < 0.01, "Cocok", "Berbeda")
)
print(verif, row.names = FALSE)#> Ukuran Manual R Status
#> P(Kanker | Merokok) 0.60 0.60 Cocok
#> P(Kanker | Tidak Merokok) 0.20 0.20 Cocok
#> Odds (Merokok) 1.50 1.50 Cocok
#> Odds (Tidak Merokok) 0.25 0.25 Cocok
#> Odds Ratio (OR) 6.00 6.00 Cocok
#> Relative Risk (RR) 3.00 3.00 Cocok
#> Chi-Square 33.33 33.33 Cocok
Seluruh hasil perhitungan manual cocok dengan output R, yang mengkonfirmasi kebenaran proses perhitungan langkah demi langkah yang telah dilakukan.
Berdasarkan seluruh perhitungan — baik yang dilakukan secara manual maupun yang dikonfirmasi melalui R — berikut adalah ringkasan dan interpretasi statistik dari kasus hubungan merokok dan kanker paru:
1. Probabilitas Bersyarat — Perbedaan Antar Kelompok yang Mencolok
Probabilitas terkena kanker paru berbeda secara substansial antara kedua kelompok. Pada kelompok perokok, probabilitasnya mencapai \(P(\text{Kanker} \mid \text{Merokok}) = 0{,}60\), sedangkan pada kelompok bukan perokok hanya \(P(\text{Kanker} \mid \text{Tidak Merokok}) = 0{,}20\). Perbedaan sebesar 40 persentase poin ini merupakan sinyal awal yang sangat kuat tentang adanya asosiasi antara kedua variabel.
2. Odds Ratio = 6,00 — Asosiasi yang Kuat
Nilai OR sebesar 6,00 menyatakan bahwa odds terkena kanker paru pada kelompok perokok adalah 6 kali lebih besar dibandingkan kelompok bukan perokok. Secara konvensional dalam epidemiologi, nilai OR antara 2–3 sudah dianggap asosiasi yang cukup kuat, sehingga OR = 6 menunjukkan asosiasi yang sangat kuat. Perlu diingat bahwa karena prevalensi kanker paru dalam data ini cukup tinggi (40%), nilai OR cenderung melebih-lebihkan kekuatan asosiasi dibandingkan RR.
3. Relative Risk = 3,00 — Risiko 3 Kali Lebih Besar
Nilai RR sebesar 3,00 menyatakan bahwa probabilitas terkena kanker paru pada perokok adalah 3 kali lebih besar dibandingkan bukan perokok. Dalam konteks ini, RR lebih direkomendasikan daripada OR karena memberikan estimasi yang lebih akurat ketika prevalensi kejadian tidak tergolong langka. Secara persentase, merokok meningkatkan risiko kanker paru sebesar (3,00 - 1) × 100% = 200% di atas baseline.
4. Uji Chi-Square — Signifikansi Statistik yang Sangat Kuat
Dengan nilai \(\chi^2 = 33{,}33\) pada \(df = 1\), nilai \(p\)-value yang diperoleh jauh di bawah 0,001 (bahkan jauh di bawah 0,0001). Karena \(p\text{-value} \ll \alpha = 0{,}05\), kita menolak hipotesis nol dengan kepercayaan yang sangat tinggi. Dapat disimpulkan bahwa terdapat hubungan yang signifikan secara statistik antara kebiasaan merokok dan kejadian kanker paru.
Dari sisi konten atau makna dalam konteks penelitian kesehatan, hasil analisis ini memiliki implikasi yang luas dan penting:
Merokok Terbukti sebagai Faktor Risiko yang Kuat
Data menunjukkan secara kuantitatif bahwa merokok merupakan faktor risiko yang sangat bermakna untuk kanker paru. Seseorang yang merokok memiliki risiko 3 kali lebih besar untuk menderita kanker paru dibandingkan yang tidak merokok. Temuan ini selaras dengan konsensus ilmiah global yang telah didukung oleh ribuan penelitian epidemiologi sejak studi klasik Doll & Hill (1950) yang pertama kali mendemonstrasikan kaitan antara rokok dan kanker paru secara sistematis.
Implikasi bagi Kebijakan Kesehatan Publik
Bukti kuantitatif seperti yang dihasilkan analisis ini menjadi landasan ilmiah untuk berbagai kebijakan kesehatan yang telah diterapkan di banyak negara:
Implikasi bagi Praktik Klinis dan Skrining
Dari sudut pandang medis, temuan ini memperkuat beberapa rekomendasi klinis penting:
Implikasi bagi Edukasi Masyarakat
Angka RR = 3 memiliki kekuatan komunikasi yang tinggi dalam kampanye kesehatan. Pesan “merokok meningkatkan risiko kanker paru hingga 3 kali lipat” mudah dipahami oleh masyarakat umum tanpa perlu latar belakang statistik, sehingga efektif digunakan dalam materi penyuluhan, poster kesehatan, dan iklan layanan masyarakat.
⚠️ Catatan Metodologis Penting
Meskipun hasil analisis menunjukkan asosiasi yang kuat dan signifikan, beberapa hal penting perlu diperhatikan dalam menafsirkan temuan ini:
Data bersifat ilustratif — Data pada contoh ini disederhanakan untuk keperluan pembelajaran dan tidak mewakili data penelitian nyata.
Variabel perancu (confounding variables) — Dalam penelitian nyata, banyak faktor lain yang juga memengaruhi risiko kanker paru, seperti usia, jenis kelamin, riwayat keluarga, paparan polutan udara, dan konsumsi alkohol. Faktor-faktor ini perlu dikontrol agar estimasi asosiasi tidak bias.
Kausalitas vs asosiasi — Uji Chi-Square hanya membuktikan adanya asosiasi statistik, bukan hubungan sebab-akibat (causality). Untuk menyimpulkan kausalitas, diperlukan desain studi kohort longitudinal yang dapat membuktikan bahwa paparan (merokok) mendahului kejadian (kanker paru), serta memenuhi kriteria kausalitas Bradford Hill.
Representativitas sampel — Generalisasi temuan ke populasi yang lebih luas hanya valid apabila sampel diambil secara representatif menggunakan teknik sampling yang tepat.
Berdasarkan analisis data kategori menggunakan tabel kontingensi \(2 \times 2\) yang telah dilakukan secara menyeluruh, dapat ditarik simpulan sebagai berikut:
Terdapat hubungan yang signifikan secara statistik antara kebiasaan merokok dan kejadian kanker paru (\(\chi^2 = 33{,}33\), \(p < 0{,}001\), \(df = 1\)).
Perokok memiliki risiko terkena kanker paru 3 kali lebih besar (RR = 3,00) dibandingkan bukan perokok.
Odds terkena kanker paru pada perokok 6 kali lebih besar (OR = 6,00) dibandingkan bukan perokok.
Analisis data kategori melalui tabel kontingensi dan ukuran asosiasi terbukti menjadi alat yang efektif, informatif, dan mudah dikomunikasikan dalam mengungkap serta mengkuantifikasi hubungan antar variabel kategori, khususnya dalam penelitian kesehatan dan epidemiologi.
Agresti, A. (2013). Categorical Data Analysis (3rd ed.). John Wiley & Sons.
Doll, R., & Hill, A. B. (1950). Smoking and carcinoma of the lung: Preliminary report. British Medical Journal, 2(4682), 739–748.
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. (2000). Applied Logistic Regression (2nd ed.). John Wiley & Sons.
Rothman, K. J., Greenland, S., & Lash, T. L. (2008). Modern Epidemiology (3rd ed.). Lippincott Williams & Wilkins.
Laporan ini dibuat menggunakan R Markdown dan
dipublikasikan di RPubs.
Program Studi S1
Statistika · FMIPA · Universitas Padjadjaran · 2026