Analisis Data Kategori
Program Studi S1 Statistika · FMIPA · Universitas Padjadjaran

Gregorius Adiyatma Pradana
Mata Kuliah: Analisis Data Kategori &nbsp;·&nbsp; Tugas Individu<br>
11 March 2026

1 Bagian 1: Definisi Analisis Data Kategori

1.1 Apa Itu Analisis Data Kategori?

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:

  • Mendeskripsikan pola dan distribusi dalam data yang berskala nominal atau ordinal,
  • Menguji hipotesis tentang ada atau tidaknya hubungan antar variabel kategori, dan
  • Memodelkan hubungan antara variabel respons kategori dengan satu atau lebih variabel penjelas.

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).

1.2 Karakteristik Variabel Kategori

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.2.1 Jenis-Jenis Variabel 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).

1.3 Contoh Penerapan dalam Penelitian

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

  • Agresti, A. (2013). Categorical Data Analysis (3rd ed.). John Wiley & Sons.
  • Hosmer, D. W., & Lemeshow, S. (2000). Applied Logistic Regression (2nd ed.). John Wiley & Sons.
  • Fleiss, J. L., Levin, B., & Paik, M. C. (2003). Statistical Methods for Rates and Proportions (3rd ed.). John Wiley & Sons.

2 Bagian 2: Tabel Kontingensi

2.1 Definisi Tabel Kontingensi

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.

2.2 Struktur Tabel Kontingensi \(2 \times 2\)

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:

  • \(a\) = jumlah individu yang merokok dan terkena penyakit jantung
  • \(b\) = jumlah individu yang merokok tetapi tidak terkena penyakit jantung
  • \(c\) = jumlah individu yang tidak merokok tetapi terkena penyakit jantung
  • \(d\) = jumlah individu yang tidak merokok dan tidak terkena penyakit jantung
  • \(n_{i+}\) = total baris ke-\(i\) (marginal baris)
  • \(n_{+j}\) = total kolom ke-\(j\) (marginal kolom)
  • \(n = a + b + c + d\) = total keseluruhan observasi

2.3 Konsep Joint Distribution (Distribusi Bersama)

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.

2.4 Konsep Marginal Distribution (Distribusi Marginal)

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.

2.5 Konsep Conditional Probability (Probabilitas Bersyarat)

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.


3 Bagian 3: Ukuran Asosiasi

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.

3.1 Odds (Peluang)

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.

3.2 Odds Ratio (Rasio Odds)

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.

3.3 Relative Risk (Risiko Relatif)

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.

3.4 Perbandingan OR dan RR

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.


4 Bagian 4: Contoh Perhitungan Manual

4.1 Latar Belakang Kasus

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?

4.2 Data dan Tabel Kontingensi

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\]

4.3 Langkah 1: Distribusi Marginal

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.

4.4 Langkah 2: Distribusi Bersama (Joint Distribution)

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%).

4.5 Langkah 3: Probabilitas Bersyarat

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.

4.6 Langkah 4: Menghitung Odds

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.

4.7 Langkah 5: Menghitung Odds Ratio (OR)

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.

4.8 Langkah 6: Menghitung Relative Risk (RR)

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.

4.9 Langkah 7: Uji Chi-Square Manual

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:

  • \(H_0\): Status merokok dan kanker paru saling independen (tidak ada hubungan)
  • \(H_1\): Status merokok dan kanker paru tidak independen (ada hubungan)

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.

4.10 Ringkasan Seluruh Perhitungan Manual

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

5 Bagian 5: Analisis Menggunakan R

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.

5.1 Membuat Tabel Kontingensi

# ── 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 ===
print(data_kanker)
#>               Kanker Paru Tidak Kanker Paru
#> Merokok                60                40
#> Tidak Merokok          20                80
cat("\n=== TABEL DENGAN TOTAL MARGIN ===\n\n")
#> 
#> === TABEL DENGAN TOTAL MARGIN ===
print(addmargins(data_kanker))
#>               Kanker Paru Tidak Kanker Paru Sum
#> Merokok                60                40 100
#> Tidak Merokok          20                80 100
#> Sum                    80               120 200

5.2 Menghitung Distribusi Marginal dan Joint Distribution

n <- sum(data_kanker)

# ── Joint distribution (proporsi tiap sel terhadap total) ─────────────────────
cat("=== JOINT DISTRIBUTION ===\n\n")
#> === JOINT DISTRIBUTION ===
print(round(data_kanker / n, 4))
#>               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 ===
print(round(rowSums(data_kanker) / n, 4))
#>       Merokok Tidak Merokok 
#>           0.5           0.5
# ── Marginal distribution kolom (Kanker Paru) ─────────────────────────────────
cat("\n=== MARGINAL DISTRIBUTION — Kanker Paru ===\n\n")
#> 
#> === MARGINAL DISTRIBUTION — Kanker Paru ===
print(round(colSums(data_kanker) / n, 4))
#>       Kanker Paru Tidak Kanker Paru 
#>               0.4               0.6

5.3 Menghitung Probabilitas Bersyarat

# ── Probabilitas bersyarat: proporsi dalam tiap baris ─────────────────────────
cat("=== PROBABILITAS BERSYARAT P(Kanker Paru | Status Merokok) ===\n\n")
#> === PROBABILITAS BERSYARAT P(Kanker Paru | Status Merokok) ===
prob_bersyarat <- prop.table(data_kanker, margin = 1)
print(round(prob_bersyarat, 4))
#>               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
cat("\nP(Kanker | Tidak Merokok) =", round(p_kanker_tidak_merokok, 4), "\n")
#> 
#> P(Kanker | Tidak Merokok) = 0.2

5.4 Menghitung Odds dan Odds Ratio

# ── 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
cat("Odds (Tidak Merokok) =", round(odds_tidak_merokok, 4), "\n")
#> Odds (Tidak Merokok) = 0.25
cat("Odds Ratio (OR)      =", round(OR, 4),                 "\n")
#> Odds Ratio (OR)      = 6

5.5 Menghitung Relative Risk

# ── Relative Risk ─────────────────────────────────────────────────────────────
RR <- p_kanker_merokok / p_kanker_tidak_merokok

cat("Relative Risk (RR) =", round(RR, 4), "\n")
#> Relative Risk (RR) = 3

5.6 Uji Chi-Square

Uji Chi-Square digunakan untuk menguji apakah terdapat hubungan yang signifikan secara statistik antara dua variabel kategori, dengan hipotesis:

  • \(H_0\): Status merokok dan kanker paru bersifat independen (tidak ada hubungan)
  • \(H_1\): Status merokok dan kanker paru tidak independen (ada hubungan)
# ── 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) ===
print(hasil_chisq$expected)
#>               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) ===
print(round(hasil_chisq$residuals, 4))
#>               Kanker Paru Tidak Kanker Paru
#> Merokok            3.1623            -2.582
#> Tidak Merokok     -3.1623             2.582

5.7 Visualisasi Data

# ── 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
)

5.8 Verifikasi: Manual vs R

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.


6 Bagian 6: Interpretasi Hasil

6.1 Interpretasi Statistik

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.

6.2 Interpretasi Substantif

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:

  • Pemasangan peringatan bergambar (pictorial health warnings) pada kemasan rokok untuk meningkatkan kesadaran masyarakat
  • Larangan iklan rokok di media massa dan tempat-tempat yang dapat diakses anak-anak
  • Program berhenti merokok (smoking cessation programs) yang disubsidi pemerintah dan tersedia di fasilitas kesehatan
  • Penetapan kawasan tanpa rokok di tempat umum, tempat kerja, dan fasilitas pendidikan
  • Cukai rokok yang tinggi untuk mengurangi keterjangkauan rokok, terutama bagi remaja

Implikasi bagi Praktik Klinis dan Skrining

Dari sudut pandang medis, temuan ini memperkuat beberapa rekomendasi klinis penting:

  • Dokter sebaiknya secara aktif menanyakan dan mendokumentasikan riwayat merokok setiap pasien sebagai bagian rutin dari asesmen risiko kanker
  • Perokok aktif — terutama yang telah merokok lebih dari 20 tahun — sangat dianjurkan untuk menjalani skrining kanker paru secara berkala menggunakan CT scan dosis rendah
  • Intervensi penghentian merokok (konseling, terapi pengganti nikotin, atau obat-obatan) harus diprioritaskan sebagai strategi pencegahan primer dalam pelayanan kesehatan primer

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:

  1. Data bersifat ilustratif — Data pada contoh ini disederhanakan untuk keperluan pembelajaran dan tidak mewakili data penelitian nyata.

  2. 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.

  3. 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.

  4. Representativitas sampel — Generalisasi temuan ke populasi yang lebih luas hanya valid apabila sampel diambil secara representatif menggunakan teknik sampling yang tepat.

6.3 Simpulan

Berdasarkan analisis data kategori menggunakan tabel kontingensi \(2 \times 2\) yang telah dilakukan secara menyeluruh, dapat ditarik simpulan sebagai berikut:

  1. Terdapat hubungan yang signifikan secara statistik antara kebiasaan merokok dan kejadian kanker paru (\(\chi^2 = 33{,}33\), \(p < 0{,}001\), \(df = 1\)).

  2. Perokok memiliki risiko terkena kanker paru 3 kali lebih besar (RR = 3,00) dibandingkan bukan perokok.

  3. Odds terkena kanker paru pada perokok 6 kali lebih besar (OR = 6,00) dibandingkan bukan perokok.

  4. 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.


6.4 Referensi

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