Analisis data kategori (categorical data analysis) adalah cabang statistika yang berfokus pada pengumpulan, penyajian, dan inferensi terhadap data yang diukur dalam skala nominal atau ordinal — yakni data yang nilainya berupa kategori atau label, bukan angka kontinu (Agresti, 2013).
Berbeda dengan analisis regresi linier yang mengasumsikan variabel respons berdistribusi normal dan bersifat kontinu, analisis data kategori menggunakan distribusi probabilitas diskrit seperti binomial, multinomial, dan Poisson. Metode yang umum digunakan meliputi:
(Agresti, 2013; Hosmer & Lemeshow, 2000)
Variabel kategori memiliki sejumlah karakteristik pembeda sebagai berikut:
| Karakteristik | Penjelasan | Contoh |
|---|---|---|
| Skala Nominal | Kategori tanpa urutan yang bermakna | Jenis kelamin, golongan darah (A/B/AB/O) |
| Skala Ordinal | Kategori dengan urutan, tetapi jarak tidak sama | Tingkat pendidikan (SD < SMP < SMA < PT) |
| Bersifat Diskrit | Nilai hanya berupa bilangan bulat non-negatif | Jumlah pasien, jumlah kejadian |
| Tidak Asumsi Normalitas | Distribusi tidak harus normal | Distribusi multinomial atau Poisson |
| Representasi Frekuensi | Disajikan sebagai frekuensi atau proporsi | Tabel frekuensi, tabel kontingensi |
1. Skala Nominal
Kategori yang hanya berfungsi sebagai label tanpa urutan. Operasi
matematika tidak bermakna. Contoh: status pernikahan (menikah / belum
menikah / cerai), jenis pekerjaan.
2. Skala Ordinal
Kategori yang memiliki urutan yang bermakna, tetapi selisih antar
kategori tidak dapat diukur secara kuantitatif. Contoh: tingkat kepuasan
(sangat puas / puas / netral / tidak puas / sangat tidak puas).
3. Skala Dikotomi / Biner
Variabel kategori dengan tepat dua kemungkinan nilai. Merupakan kasus
khusus skala nominal. Contoh: ya/tidak, sukses/gagal,
hidup/meninggal.
Analisis data kategori diterapkan secara luas di berbagai bidang:
Meneliti hubungan antara faktor risiko (merokok) dan penyakit (kanker paru) menggunakan odds ratio dan relative risk (Rothman, Greenland & Lash, 2008). Juga digunakan dalam surveilans penyakit menular dan analisis wabah.
Menganalisis hubungan antara latar belakang sosioekonomis dan pilihan politik menggunakan uji chi-square dan analisis korespondensi. Banyak digunakan dalam penelitian opini publik dan survei skala besar.
Menganalisis hubungan metode pengajaran (konvensional vs. daring) dengan kelulusan mahasiswa (lulus/tidak lulus). Digunakan pula dalam evaluasi kurikulum dan analisis hasil ujian nasional.
Menguji efektivitas terapi menggunakan tabel kontingensi respons pasien (membaik/tidak membaik) berdasarkan jenis intervensi. Juga digunakan dalam studi diagnosis dan skrining gangguan mental.
Menganalisis preferensi konsumen terhadap produk berdasarkan segmen demografis (usia, jenis kelamin, pendapatan). Digunakan dalam analisis segmentasi pasar dan pengujian A/B marketing.
Tabel kontingensi (contingency table) adalah suatu susunan data berupa matriks dua dimensi (atau lebih) yang menampilkan distribusi frekuensi dari dua atau lebih variabel kategori secara simultan (Agresti, 2013). Tabel ini memungkinkan peneliti untuk mengeksplorasi apakah terdapat hubungan (association) antara variabel-variabel tersebut.
Tabel kontingensi dengan \(r\) baris dan \(c\) kolom disebut tabel \(r \times c\). Kasus paling sederhana adalah tabel \(2 \times 2\) yang memuat dua variabel biner.
Berikut adalah struktur umum tabel kontingensi \(2 \times 2\):
| \(Y = 1\) | \(Y = 0\) | Total Baris | |
|---|---|---|---|
| \(X = 1\) | \(n_{11}\) | \(n_{12}\) | \(n_{1+}\) |
| \(X = 0\) | \(n_{21}\) | \(n_{22}\) | \(n_{2+}\) |
| Total Kolom | \(n_{+1}\) | \(n_{+2}\) | \(n\) |
Misalkan kita meneliti hubungan antara Kebiasaan Merokok dan Kejadian Kanker Paru pada 200 responden:
| Kanker | Tidak Kanker | Total | |
|---|---|---|---|
| Merokok | 60 | 40 | 100 |
| Tidak Merokok | 20 | 80 | 100 |
| Total | 80 | 120 | 200 |
Distribusi bersama (joint distribution) menggambarkan probabilitas setiap kombinasi kategori dua variabel secara bersamaan.
\[\hat{\pi}_{ij} = P(X = i, Y = j) = \frac{n_{ij}}{n}\]
Untuk contoh di atas:
\[\hat{\pi}_{11} = P(\text{Merokok}, \text{Kanker}) = \frac{60}{200} = 0{,}30\] \[\hat{\pi}_{12} = P(\text{Merokok}, \text{Tidak Kanker}) = \frac{40}{200} = 0{,}20\] \[\hat{\pi}_{21} = P(\text{Tidak Merokok}, \text{Kanker}) = \frac{20}{200} = 0{,}10\] \[\hat{\pi}_{22} = P(\text{Tidak Merokok}, \text{Tidak Kanker}) = \frac{80}{200} = 0{,}40\]
Jumlah seluruh probabilitas bersama = \(0{,}30 + 0{,}20 + 0{,}10 + 0{,}40 = 1{,}00\) ✓
Distribusi marginal (marginal distribution) adalah distribusi probabilitas satu variabel, diperoleh dengan menjumlahkan probabilitas bersama sepanjang variabel yang lain.
Marginal baris (variabel \(X\)): \[P(X = i) = \sum_j \hat{\pi}_{ij} = \frac{n_{i+}}{n}\]
Marginal kolom (variabel \(Y\)): \[P(Y = j) = \sum_i \hat{\pi}_{ij} = \frac{n_{+j}}{n}\]
Untuk contoh di atas:
\[P(\text{Merokok}) = \frac{100}{200} = 0{,}50; \quad P(\text{Tidak Merokok}) = \frac{100}{200} = 0{,}50\] \[P(\text{Kanker}) = \frac{80}{200} = 0{,}40; \quad P(\text{Tidak Kanker}) = \frac{120}{200} = 0{,}60\]
Probabilitas bersyarat (conditional probability) adalah probabilitas suatu kejadian, diberikan bahwa kejadian lain telah terjadi.
\[P(Y = j \mid X = i) = \frac{P(X = i, Y = j)}{P(X = i)} = \frac{n_{ij}}{n_{i+}}\]
Untuk contoh kita:
\[P(\text{Kanker} \mid \text{Merokok}) = \frac{n_{11}}{n_{1+}} = \frac{60}{100} = 0{,}60\] \[P(\text{Kanker} \mid \text{Tidak Merokok}) = \frac{n_{21}}{n_{2+}} = \frac{20}{100} = 0{,}20\]
Perbedaan yang mencolok antara \(P(\text{Kanker} \mid \text{Merokok}) = 0{,}60\) dan \(P(\text{Kanker} \mid \text{Tidak Merokok}) = 0{,}20\) mengindikasikan adanya asosiasi yang kuat antara kebiasaan merokok dan kejadian kanker paru.
Dua variabel kategori \(X\) dan \(Y\) dikatakan independen secara statistik jika dan hanya jika:
\[P(X = i, Y = j) = P(X = i) \times P(Y = j) \quad \text{untuk semua } i, j\]
Atau secara ekuivalen: \(P(Y = j \mid X = i) = P(Y = j)\)
Artinya, mengetahui nilai \(X\) tidak memberikan informasi apapun tentang nilai \(Y\).
Jika \(X\) dan \(Y\) independen, maka frekuensi yang diharapkan pada setiap sel adalah:
\[E_{ij} = \frac{n_{i+} \times n_{+j}}{n}\]
Penyimpangan besar dari nilai harapan ini mengindikasikan adanya asosiasi antar variabel.
Untuk mengukur kekuatan hubungan antara dua variabel kategori, digunakan beberapa ukuran asosiasi.
Odds adalah rasio antara probabilitas suatu kejadian terjadi dan probabilitas kejadian tersebut tidak terjadi.
\[\text{Odds} = \frac{P(\text{kejadian terjadi})}{P(\text{kejadian tidak terjadi})} = \frac{p}{1 - p}\]
Odds Ratio (rasio odds) membandingkan odds antara dua kelompok. OR merupakan ukuran asosiasi yang paling umum digunakan dalam studi kasus-kontrol.
\[OR = \frac{\text{Odds kelompok 1}}{\text{Odds kelompok 2}} = \frac{n_{11}/n_{12}}{n_{21}/n_{22}} = \frac{n_{11} \cdot n_{22}}{n_{12} \cdot n_{21}}\]
Interpretasi OR:
| Nilai OR | Interpretasi |
|---|---|
| \(OR = 1\) | Tidak ada asosiasi |
| \(OR > 1\) | Asosiasi positif (faktor meningkatkan risiko) |
| \(OR < 1\) | Asosiasi negatif (faktor menurunkan risiko / protektif) |
| \(OR = 2\) | Odds pada kelompok terpapar 2× lebih besar |
| \(OR = 0{,}5\) | Odds pada kelompok terpapar separuh dari kelompok referensi |
OR bukanlah perkiraan langsung dari risiko relatif (RR), kecuali pada penyakit yang sangat langka (rare disease assumption). Saat prevalensi outcomes cukup tinggi (> 10%), OR cenderung melebih-lebihkan RR. Pilih RR untuk studi kohort dan OR untuk studi kasus-kontrol.
Relative Risk (risiko relatif), disebut juga risk ratio, membandingkan probabilitas (bukan odds) kejadian antara dua kelompok. Digunakan pada studi kohort dan uji klinis.
\[RR = \frac{P(Y=1 \mid X=1)}{P(Y=1 \mid X=0)} = \frac{n_{11}/n_{1+}}{n_{21}/n_{2+}}\]
Interpretasi RR:
| Nilai RR | Interpretasi |
|---|---|
| \(RR = 1\) | Risiko sama pada kedua kelompok |
| \(RR > 1\) | Kelompok terpapar berisiko lebih tinggi |
| \(RR < 1\) | Kelompok terpapar berisiko lebih rendah (protektif) |
Risk Difference (RD) atau attributable risk mengukur selisih absolut probabilitas kejadian antara dua kelompok. Ukuran ini paling relevan untuk menilai dampak populasi dari suatu faktor risiko.
\[RD = P(Y=1 \mid X=1) - P(Y=1 \mid X=0) = \frac{n_{11}}{n_{1+}} - \frac{n_{21}}{n_{2+}}\]
| Ukuran | Simbol | Skala | Nilai Netral | Kelebihan | Keterbatasan |
|---|---|---|---|---|---|
| Odds Ratio | OR | \([0, \infty)\) | 1 | Bisa dihitung di kasus-kontrol; simetris | Melebih-lebihkan RR bila prevalensi tinggi |
| Relative Risk | RR | \([0, \infty)\) | 1 | Interpretasi intuitif (berapa kali lipat) | Tidak langsung dihitung dari kasus-kontrol |
| Risk Difference | RD | \((-1, 1)\) | 0 | Menunjukkan dampak absolut populasi | Bergantung pada baseline prevalensi |
Sebuah studi kasus-kontrol dilakukan pada 200 subjek untuk meneliti hubungan antara kebiasaan merokok dan kejadian kanker paru-paru. Subjek dikelompokkan berdasarkan status merokok (terpapar/tidak terpapar) dan status kesehatan (kasus/kontrol).
Hasil pengamatan disajikan dalam tabel berikut:
| Kanker Paru | Tidak Kanker | Total | |
|---|---|---|---|
| Merokok | \(n_{11} = 60\) | \(n_{12} = 40\) | \(n_{1+} = 100\) |
| Tidak Merokok | \(n_{21} = 20\) | \(n_{22} = 80\) | \(n_{2+} = 100\) |
| Total | \(n_{+1} = 80\) | \(n_{+2} = 120\) | \(n = 200\) |
\[P(\text{Kanker} \mid \text{Merokok}) = \frac{n_{11}}{n_{1+}} = \frac{60}{100} = \mathbf{0{,}60}\]
\[P(\text{Kanker} \mid \text{Tidak Merokok}) = \frac{n_{21}}{n_{2+}} = \frac{20}{100} = \mathbf{0{,}20}\]
\[P(\text{Tidak Kanker} \mid \text{Merokok}) = \frac{n_{12}}{n_{1+}} = \frac{40}{100} = \mathbf{0{,}40}\]
\[P(\text{Tidak Kanker} \mid \text{Tidak Merokok}) = \frac{n_{22}}{n_{2+}} = \frac{80}{100} = \mathbf{0{,}80}\]
\[\text{Odds}_{\text{Merokok}} = \frac{P(\text{Kanker} \mid \text{Merokok})}{P(\text{Tidak Kanker} \mid \text{Merokok})} = \frac{0{,}60}{0{,}40} = \frac{60}{40} = \mathbf{1{,}5}\]
\[\text{Odds}_{\text{Tidak Merokok}} = \frac{P(\text{Kanker} \mid \text{Tidak Merokok})}{P(\text{Tidak Kanker} \mid \text{Tidak Merokok})} = \frac{0{,}20}{0{,}80} = \frac{20}{80} = \mathbf{0{,}25}\]
Cara 1 — Rasio odds antar kelompok: \[OR = \frac{\text{Odds}_{\text{Merokok}}}{\text{Odds}_{\text{Tidak Merokok}}} = \frac{1{,}5}{0{,}25} = \mathbf{6{,}0}\]
Cara 2 — Rumus silang (cross-product): \[OR = \frac{n_{11} \times n_{22}}{n_{12} \times n_{21}} = \frac{60 \times 80}{40 \times 20} = \frac{4800}{800} = \mathbf{6{,}0}\]
\[RR = \frac{P(\text{Kanker} \mid \text{Merokok})}{P(\text{Kanker} \mid \text{Tidak Merokok})} = \frac{0{,}60}{0{,}20} = \mathbf{3{,}0}\]
\[RD = P(\text{Kanker} \mid \text{Merokok}) - P(\text{Kanker} \mid \text{Tidak Merokok}) = 0{,}60 - 0{,}20 = \mathbf{0{,}40}\]
\[E_{11} = \frac{n_{1+} \times n_{+1}}{n} = \frac{100 \times 80}{200} = 40\] \[E_{12} = \frac{n_{1+} \times n_{+2}}{n} = \frac{100 \times 120}{200} = 60\] \[E_{21} = \frac{n_{2+} \times n_{+1}}{n} = \frac{100 \times 80}{200} = 40\] \[E_{22} = \frac{n_{2+} \times n_{+2}}{n} = \frac{100 \times 120}{200} = 60\]
\[\chi^2 = \sum \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}\]
\[= \frac{400}{40} + \frac{400}{60} + \frac{400}{40} + \frac{400}{60} = 10 + 6{,}67 + 10 + 6{,}67 = \mathbf{33{,}33}\]
\(df = (r-1)(c-1) = (2-1)(2-1) = 1\)
Nilai \(\chi^2 = 33{,}33\) dengan \(df = 1\) menghasilkan \(p\text{-value} \ll 0{,}001\), jauh di bawah taraf signifikansi \(\alpha = 0{,}05\). Hasil komputasi R mungkin sedikit berbeda karena penggunaan koreksi Yates.
| Ukuran | Nilai | Formula |
|---|---|---|
| \(P(\text{Kanker}\mid\text{Merokok})\) | 0,60 | \(60/100\) |
| \(P(\text{Kanker}\mid\text{Tidak Merokok})\) | 0,20 | \(20/100\) |
| \(\text{Odds}_{\text{Merokok}}\) | 1,50 | \(60/40\) |
| \(\text{Odds}_{\text{Tidak Merokok}}\) | 0,25 | \(20/80\) |
| Odds Ratio (OR) | 6,00 | \((60 \times 80)/(40 \times 20)\) |
| Relative Risk (RR) | 3,00 | \(0{,}60/0{,}20\) |
| Risk Difference (RD) | 0,40 | \(0{,}60 - 0{,}20\) |
| Chi-Square (\(\chi^2\)) | 33,33 | \(\sum(O-E)^2/E\) |
# Membuat tabel kontingensi
data <- matrix(c(60, 40, 20, 80), nrow = 2, byrow = TRUE)
rownames(data) <- c("Merokok", "Tidak Merokok")
colnames(data) <- c("Kanker", "Tidak Kanker")
# Tampilkan tabel
cat("=== TABEL KONTINGENSI ===\n")## === TABEL KONTINGENSI ===
## Kanker Tidak Kanker
## Merokok 60 40
## Tidak Merokok 20 80
# Tambahkan total marginal
data_with_margin <- addmargins(data)
cat("\n=== TABEL DENGAN TOTAL MARGINAL ===\n")##
## === TABEL DENGAN TOTAL MARGINAL ===
## Kanker Tidak Kanker Sum
## Merokok 60 40 100
## Tidak Merokok 20 80 100
## Sum 80 120 200
## === JOINT DISTRIBUTION (Proporsi Bersama) ===
## Kanker Tidak Kanker
## Merokok 0.3 0.2
## Tidak Merokok 0.1 0.4
##
## === MARGINAL DISTRIBUTION ===
## Marginal Baris (Merokok vs Tidak Merokok):
## Merokok Tidak Merokok
## 0.5 0.5
##
## Marginal Kolom (Kanker vs Tidak Kanker):
## Kanker Tidak Kanker
## 0.4 0.6
##
## === CONDITIONAL PROBABILITY ===
## P(Y | X) - Probabilitas Kanker per Kelompok Merokok:
## Kanker Tidak Kanker
## Merokok 0.6 0.4
## Tidak Merokok 0.2 0.8
## === FREKUENSI YANG DIHARAPKAN (ASUMSI INDEPENDENSI) ===
row_totals <- rowSums(data)
col_totals <- colSums(data)
expected <- outer(row_totals, col_totals) / n
print(round(expected, 2))## Kanker Tidak Kanker
## Merokok 40 60
## Tidak Merokok 40 60
##
## Perbedaan Observasi vs Harapan:
## Kanker Tidak Kanker
## Merokok 20 -20
## Tidak Merokok -20 20
# Perhitungan manual odds ratio
n11 <- data[1, 1]
n12 <- data[1, 2]
n21 <- data[2, 1]
n22 <- data[2, 2]
odds_merokok <- n11 / n12
odds_tidak_merokok <- n21 / n22
OR_manual <- odds_merokok / odds_tidak_merokok
OR_formula <- (n11 * n22) / (n12 * n21)
cat("=== PERHITUNGAN ODDS RATIO ===\n")## === PERHITUNGAN ODDS RATIO ===
## Odds (Merokok) = 60 / 40 = 1.5000
## Odds (Tidak Merokok) = 20 / 80 = 0.2500
cat(sprintf("Odds Ratio (Manual) = %.4f / %.4f = %.4f\n",
odds_merokok, odds_tidak_merokok, OR_manual))## Odds Ratio (Manual) = 1.5000 / 0.2500 = 6.0000
cat(sprintf("Odds Ratio (Silang) = (%d x %d) / (%d x %d) = %.4f\n",
n11, n22, n12, n21, OR_formula))## Odds Ratio (Silang) = (60 x 80) / (40 x 20) = 6.0000
# Relative Risk
RR <- (n11 / (n11 + n12)) / (n21 / (n21 + n22))
cat(sprintf("\nRelative Risk (RR) = %.4f\n", RR))##
## Relative Risk (RR) = 3.0000
# Risk Difference
RD <- (n11 / (n11 + n12)) - (n21 / (n21 + n22))
cat(sprintf("Risk Difference (RD) = %.4f\n", RD))## Risk Difference (RD) = 0.4000
# Interval Kepercayaan Wald untuk ln(OR)
ln_OR <- log(OR_formula)
se_lnOR <- sqrt(1/n11 + 1/n12 + 1/n21 + 1/n22)
z95 <- qnorm(0.975)
CI_lower <- exp(ln_OR - z95 * se_lnOR)
CI_upper <- exp(ln_OR + z95 * se_lnOR)
cat("=== INTERVAL KEPERCAYAAN 95% UNTUK ODDS RATIO ===\n")## === INTERVAL KEPERCAYAAN 95% UNTUK ODDS RATIO ===
## ln(OR) = 1.7918
## SE[ln(OR)]= 0.3227
## OR = 6.0000
## 95% CI = [3.1873, 11.2947]
if (!require(epitools, quietly = TRUE)) install.packages("epitools")
library(epitools)
cat("=== ODDS RATIO DENGAN INTERVAL KEPERCAYAAN 95% ===\n")## === ODDS RATIO DENGAN INTERVAL KEPERCAYAAN 95% ===
## NA
## odds ratio with 95% C.I. estimate lower upper
## Merokok 1 NA NA
## Tidak Merokok 6 3.187331 11.29472
##
## === RELATIVE RISK DENGAN INTERVAL KEPERCAYAAN 95% ===
## NA
## risk ratio with 95% C.I. estimate lower upper
## Merokok 1 NA NA
## Tidak Merokok 2 1.543216 2.59199
## === UJI CHI-SQUARE ===
##
## Pearson's Chi-squared test
##
## data: data
## X-squared = 33.333, df = 1, p-value = 7.764e-09
##
## Frekuensi yang Diharapkan (Expected Frequencies):
## Kanker Tidak Kanker
## Merokok 40 60
## Tidak Merokok 40 60
##
## === PERHITUNGAN CHI-SQUARE MANUAL ===
O <- as.vector(data)
E <- as.vector(chi_result$expected)
chi_sq_manual <- sum((O - E)^2 / E)
cat(sprintf("chi^2 = sum[(O - E)^2 / E] = %.4f\n", chi_sq_manual))## chi^2 = sum[(O - E)^2 / E] = 33.3333
## df = (r-1)(c-1) = (2-1)(2-1) = 1
## p-value = 0.000000
##
## === CHI-SQUARE DENGAN KOREKSI YATES ===
chi_yates <- chisq.test(data, correct = TRUE)
cat(sprintf("chi^2 (Yates) = %.4f, p-value = %.6f\n",
chi_yates$statistic, chi_yates$p.value))## chi^2 (Yates) = 31.6875, p-value = 0.000000
## === UJI FISHER'S EXACT ===
##
## Fisher's Exact Test for Count Data
##
## data: data
## p-value = 1.064e-08
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 3.055033 11.932317
## sample estimates:
## odds ratio
## 5.940316
##
## Odds Ratio (Fisher) = 5.9403
## 95% CI = [3.0550, 11.9323]
Uji Fisher’s Exact direkomendasikan bila frekuensi harapan di salah satu sel < 5 atau ukuran sampel sangat kecil. Untuk sampel besar, uji chi-square memberikan hasil yang mendekati. Dalam kasus ini (semua \(E_{ij} \geq 40\)), kedua uji akan memberikan kesimpulan yang sama.
par(mfrow = c(1, 3), mar = c(4, 4, 3, 1))
# 1. Barplot proporsi berdampingan
prop_data <- prop.table(data, margin = 1)
bp <- barplot(
t(prop_data),
beside = TRUE,
col = c("#E74C3C", "#2ECC71"),
main = "Proporsi Kejadian Kanker\nBerdasarkan Kebiasaan Merokok",
ylab = "Proporsi",
xlab = "Kebiasaan Merokok",
legend = colnames(data),
args.legend = list(x = "topright", bty = "n"),
ylim = c(0, 0.85)
)
text(bp, t(prop_data) + 0.03,
labels = sprintf("%.0f%%", t(prop_data)*100), cex = 0.85)
# 2. Mosaic plot
mosaicplot(
data,
main = "Mosaic Plot:\nMerokok vs Kanker",
col = c("#E74C3C", "#2ECC71"),
xlab = "Kebiasaan Merokok",
ylab = "Status Kanker"
)
# 3. Dot chart ukuran asosiasi
measures <- c("Odds Ratio (OR)", "Relative Risk (RR)", "Risk Diff x10 (RD×10)")
values <- c(6.0, 3.0, 4.0)
dotchart(values, labels = measures,
main = "Ukuran Asosiasi",
xlab = "Nilai",
pch = 19, col = "#2471A3", pt.cex = 1.5)
abline(v = 1, lty = 2, col = "gray50")Nilai statistik uji chi-square adalah \(\chi^2 \approx 33{,}33\) (tanpa koreksi Yates), dengan derajat bebas \(df = 1\) dan \(p\text{-value} < 0{,}001\). Karena \(p\text{-value} \ll \alpha = 0{,}05\), kita menolak \(H_0\) dan menyimpulkan bahwa terdapat hubungan yang signifikan secara statistik antara kebiasaan merokok dan kejadian kanker paru.
\[OR = 6{,}00 \; [95\% \; CI: 3{,}03 \; – \; 12{,}16]\]
Nilai OR = 6,00 dengan interval kepercayaan 95% yang seluruhnya di atas angka 1 menunjukkan bahwa hubungan positif tersebut signifikan secara statistik. Karena nilai 1 tidak termasuk dalam interval kepercayaan, hipotesis nol (tidak ada asosiasi) ditolak.
\[RR = 3{,}00\]
Perokok memiliki risiko terkena kanker paru 3 kali lebih tinggi dibandingkan bukan perokok.
\[RD = 0{,}40\]
Terdapat selisih risiko absolut sebesar 40 persen poin antara kelompok perokok dan bukan perokok.
1. Besarnya Risiko: Perokok memiliki odds terkena kanker paru sebesar 6 kali lipat dibandingkan bukan perokok (\(OR = 6{,}00\)). Ini menunjukkan asosiasi yang kuat dan bermakna secara klinis.
2. Risiko Relatif: Secara langsung, peluang perokok untuk menderita kanker paru adalah 3 kali lebih besar (\(RR = 3{,}00\)) dibandingkan kelompok bukan perokok.
3. Dampak Populasi: Dengan perbedaan risiko absolut \(RD = 0{,}40\), artinya dari setiap 10 perokok, terdapat 4 kasus kanker paru tambahan yang dapat dicegah jika mereka berhenti merokok (attributable risk).
4. Implikasi Kebijakan: Temuan ini mendukung pentingnya program intervensi anti-rokok dan regulasi tembakau sebagai strategi pencegahan kanker paru di tingkat populasi. Jika hubungan sebab-akibat dapat dikonfirmasi melalui desain studi kohort atau randomized control trial, maka penghentian merokok berpotensi menurunkan prevalensi kanker paru secara substansial.
Penelitian ini bersifat observasional, sehingga hasil OR dan RR menunjukkan asosiasi, bukan kausalitas langsung. Untuk menetapkan hubungan kausal, diperlukan:
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.
Rothman, K. J., Greenland, S., & Lash, T. L. (2008). Modern Epidemiology (3rd ed.). Lippincott Williams & Wilkins.
R Core Team. (2023). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing. https://www.R-project.org/
Stokes, M. E., Davis, C. S., & Koch, G. G. (2012). Categorical Data Analysis Using SAS (3rd ed.). SAS Institute.
Fleiss, J. L., Levin, B., & Paik, M. C. (2003). Statistical Methods for Rates and Proportions (3rd ed.). John Wiley & Sons.