1 Pendahuluan

Dalam berbagai bidang ilmu seperti kesehatan, ekonomi, dan ilmu sosial, banyak data yang bersifat kategori (categorical data). Data kategori biasanya menyatakan kelompok atau klasifikasi seperti jenis kelamin, status penyakit, status merokok, atau tingkat pendidikan.

Laporan ini membahas konsep dasar analisis data kategori, membangun tabel kontingensi, menghitung ukuran asosiasi secara manual, serta mengimplementasikannya menggunakan R.


2 Definisi Analisis Data Kategori

2.1 Pengertian Analisis Data Kategori

Analisis data kategori (categorical data analysis) adalah sekumpulan metode statistika yang digunakan untuk menganalisis data yang diukur dalam skala nominal atau ordinal — yaitu data yang merepresentasikan kategori atau kelompok, bukan nilai numerik kontinu (Agresti, 2013).

Menurut Agresti (2013), analisis data kategori mencakup metode seperti:

  • Tabel kontingensi dan uji chi-square
  • Model log-linear
  • Regresi logistik
  • Model probit dan berbagai ekstensinya

2.2 Karakteristik Variabel Kategori

Variabel kategori memiliki karakteristik sebagai berikut:

Karakteristik Penjelasan
Tipe skala Nominal (tidak berurutan) atau Ordinal (berurutan)
Nilai Berupa label/kategori, bukan angka kontinu
Operasi aritmatika Tidak dapat dijumlahkan atau dirata-ratakan secara langsung
Representasi Frekuensi atau proporsi dalam setiap kategori

Contoh variabel kategori:

  • Nominal: jenis kelamin (laki-laki/perempuan), golongan darah (A/B/AB/O)
  • Ordinal: tingkat pendidikan (SD/SMP/SMA/S1), tingkat kepuasan (rendah/sedang/tinggi)
  • Biner/Dikotom: status penyakit (ya/tidak), hasil tes (positif/negatif)

2.3 Contoh Penerapan dalam Penelitian

Beberapa contoh nyata penerapan analisis data kategori:

  1. Epidemiologi: Menganalisis hubungan antara paparan faktor risiko (merokok) dengan kejadian penyakit (kanker paru), diukur menggunakan Odds Ratio dan Relative Risk (Rothman et al., 2008).

  2. Ilmu Sosial: Meneliti hubungan antara tingkat pendidikan dan preferensi politik menggunakan uji chi-square (Agresti & Finlay, 2009).

  3. Farmasi: Membandingkan efektivitas vaksin (divaksinasi/tidak) terhadap kejadian infeksi pada uji klinis acak (Fleiss et al., 2003).

2.3.1 Referensi

Agresti, A. (2013). Categorical Data Analysis (3rd ed.). Wiley.

Rothman, K. J., Greenland, S., & Lash, T. L. (2008). Modern Epidemiology (3rd ed.). Lippincott Williams & Wilkins.

Fleiss, J. L., Levin, B., & Paik, M. C. (2003). Statistical Methods for Rates and Proportions (3rd ed.). Wiley.


3 Tabel Kontingensi

3.1 Definisi Tabel Kontingensi

Tabel kontingensi (contingency table) adalah suatu matriks yang menampilkan distribusi frekuensi dari dua atau lebih variabel kategori secara bersamaan. Tabel ini digunakan untuk menyelidiki apakah terdapat hubungan (asosiasi) antara variabel-variabel tersebut (Agresti, 2013).

Tabel kontingensi berukuran \(r \times c\) memiliki \(r\) baris (variabel baris) dan \(c\) kolom (variabel kolom), sehingga terdapat \(r \times c\) sel.

3.2 Struktur Tabel Kontingensi 2×2

Berikut adalah struktur umum tabel kontingensi \(2 \times 2\):

Kolom 1 (\(B_1\)) Kolom 2 (\(B_2\)) Total
Baris 1 (\(A_1\)) \(n_{11}\) \(n_{12}\) \(n_{1+}\)
Baris 2 (\(A_2\)) \(n_{21}\) \(n_{22}\) \(n_{2+}\)
Total \(n_{+1}\) \(n_{+2}\) \(n\)

Keterangan:

  • \(n_{ij}\) = frekuensi pada baris ke-\(i\) dan kolom ke-\(j\)
  • \(n_{i+} = \sum_j n_{ij}\) = frekuensi marginal baris
  • \(n_{+j} = \sum_i n_{ij}\) = frekuensi marginal kolom
  • \(n = \sum_i \sum_j n_{ij}\) = total seluruh pengamatan

3.3 Contoh Tabel Kontingensi 2×2

Berikut contoh tabel hubungan antara Status Merokok dan Kanker Paru:

Kanker Paru (Ya) Kanker Paru (Tidak) Total
Merokok 60 40 100
Tidak Merokok 20 80 100
Total 80 120 200

3.4 Joint Distribution (Distribusi Bersama)

Joint distribution atau distribusi bersama adalah peluang dua variabel terjadi secara bersamaan. Untuk setiap sel \((i,j)\):

\[\pi_{ij} = P(A = A_i,\ B = B_j) = \frac{n_{ij}}{n}\]

Menggunakan data di atas:

\[\pi_{11} = P(\text{Merokok dan Kanker}) = \frac{60}{200} = 0.30\]

\[\pi_{12} = P(\text{Merokok dan Tidak Kanker}) = \frac{40}{200} = 0.20\]

\[\pi_{21} = P(\text{Tidak Merokok dan Kanker}) = \frac{20}{200} = 0.10\]

\[\pi_{22} = P(\text{Tidak Merokok dan Tidak Kanker}) = \frac{80}{200} = 0.40\]

Sifat: \(\sum_i \sum_j \pi_{ij} = 1\)

3.5 Marginal Distribution (Distribusi Marginal)

Distribusi marginal adalah distribusi peluang dari satu variabel, tanpa memperhatikan variabel lainnya.

Marginal baris (distribusi variabel \(A\)):

\[\pi_{i+} = P(A = A_i) = \sum_j \pi_{ij} = \frac{n_{i+}}{n}\]

\[\pi_{1+} = P(\text{Merokok}) = \frac{100}{200} = 0.50\]

\[\pi_{2+} = P(\text{Tidak Merokok}) = \frac{100}{200} = 0.50\]

Marginal kolom (distribusi variabel \(B\)):

\[\pi_{+j} = P(B = B_j) = \sum_i \pi_{ij} = \frac{n_{+j}}{n}\]

\[\pi_{+1} = P(\text{Kanker}) = \frac{80}{200} = 0.40\]

\[\pi_{+2} = P(\text{Tidak Kanker}) = \frac{120}{200} = 0.60\]

3.6 Conditional Probability (Peluang Bersyarat)

Peluang bersyarat adalah peluang suatu kejadian terjadi dengan syarat kejadian lain telah diketahui.

\[P(B = B_j \mid A = A_i) = \frac{\pi_{ij}}{\pi_{i+}} = \frac{n_{ij}}{n_{i+}}\]

Contoh:

\[P(\text{Kanker} \mid \text{Merokok}) = \frac{60}{100} = 0.60\]

\[P(\text{Kanker} \mid \text{Tidak Merokok}) = \frac{20}{100} = 0.20\]

Perbedaan peluang bersyarat ini mengindikasikan bahwa terdapat asosiasi antara kebiasaan merokok dan kejadian kanker paru.


4 Ukuran Asosiasi

Ukuran asosiasi digunakan untuk mengkuantifikasi kekuatan hubungan antara dua variabel kategori dalam tabel kontingensi.

4.1 Odds

Odds adalah rasio antara peluang suatu kejadian terjadi dibanding tidak terjadi.

\[\text{Odds} = \frac{P(\text{event})}{1 - P(\text{event})} = \frac{p}{1-p}\]

Jika menggunakan frekuensi dari tabel kontingensi \(2 \times 2\) dengan sel \(a, b, c, d\):

Kejadian (+) Kejadian (−)
Terpapar \(a\) \(b\)
Tidak Terpapar \(c\) \(d\)

Odds pada kelompok Terpapar:

\[\text{Odds}_{\text{terpapar}} = \frac{a/n_1}{b/n_1} = \frac{a}{b}\]

Odds pada kelompok Tidak Terpapar:

\[\text{Odds}_{\text{tidak terpapar}} = \frac{c/n_2}{d/n_2} = \frac{c}{d}\]

Interpretasi:

  • Odds \(> 1\): kejadian lebih mungkin terjadi daripada tidak
  • Odds \(= 1\): peluang kejadian dan tidak kejadian sama
  • Odds \(< 1\): kejadian lebih kecil kemungkinannya daripada tidak terjadi

4.2 Odds Ratio (OR)

Odds Ratio adalah rasio antara odds pada kelompok terpapar dibanding odds pada kelompok tidak terpapar.

\[OR = \frac{\text{Odds}_{\text{terpapar}}}{\text{Odds}_{\text{tidak terpapar}}} = \frac{a/b}{c/d} = \frac{ad}{bc}\]

Interpretasi:

Nilai OR Interpretasi
\(OR = 1\) Tidak ada asosiasi antara paparan dan kejadian
\(OR > 1\) Paparan meningkatkan risiko kejadian (risk factor)
\(OR < 1\) Paparan menurunkan risiko kejadian (protective factor)

Nilai OR sering dilengkapi dengan Confidence Interval (CI) 95%:

\[\ln(OR) \pm 1.96 \times SE_{\ln(OR)}\]

di mana \(SE_{\ln(OR)} = \sqrt{\frac{1}{a} + \frac{1}{b} + \frac{1}{c} + \frac{1}{d}}\)

4.3 Relative Risk (RR)

Relative Risk (atau Risk Ratio) adalah rasio antara peluang kejadian pada kelompok terpapar dibanding kelompok tidak terpapar.

\[RR = \frac{P(\text{kejadian} \mid \text{terpapar})}{P(\text{kejadian} \mid \text{tidak terpapar})} = \frac{a/(a+b)}{c/(c+d)}\]

Interpretasi:

Nilai RR Interpretasi
\(RR = 1\) Tidak ada perbedaan risiko antara kedua kelompok
\(RR > 1\) Kelompok terpapar memiliki risiko lebih tinggi
\(RR < 1\) Kelompok terpapar memiliki risiko lebih rendah (protektif)

Catatan: Relative Risk dapat dihitung langsung pada studi kohort dan uji klinis, tetapi tidak dapat dihitung secara langsung pada studi kasus-kontrol. Pada studi kasus-kontrol, digunakan Odds Ratio sebagai pendekatan (approximation) terhadap RR ketika prevalensi penyakit rendah (Rothman et al., 2008).


5 Contoh Perhitungan Manual

5.1 Studi Kasus: Merokok dan Kanker Paru

Sebuah studi kohort dilakukan untuk menyelidiki hubungan antara kebiasaan merokok dan kejadian kanker paru-paru. Total 200 subjek diamati selama 10 tahun.

5.2 Tabel Kontingensi

Kanker Paru (Ya) Kanker Paru (Tidak) Total
Merokok \(a = 60\) \(b = 40\) \(n_1 = 100\)
Tidak Merokok \(c = 20\) \(d = 80\) \(n_2 = 100\)
Total 80 120 \(n = 200\)

5.3 Menghitung Peluang Bersyarat

\[P(\text{Kanker} \mid \text{Merokok}) = \frac{a}{n_1} = \frac{60}{100} = 0.60\]

\[P(\text{Kanker} \mid \text{Tidak Merokok}) = \frac{c}{n_2} = \frac{20}{100} = 0.20\]

Perokok memiliki peluang terkena kanker paru sebesar 60%, sedangkan bukan perokok hanya 20%.

5.4 Menghitung Odds

Odds merokok (terpapar):

\[\text{Odds}_{\text{merokok}} = \frac{a}{b} = \frac{60}{40} = 1.50\]

Artinya, pada kelompok perokok, untuk setiap 1 orang yang tidak terkena kanker paru, terdapat 1.5 orang yang terkena kanker paru.

Odds tidak merokok (tidak terpapar):

\[\text{Odds}_{\text{tidak merokok}} = \frac{c}{d} = \frac{20}{80} = 0.25\]

Artinya, pada kelompok bukan perokok, untuk setiap 1 orang yang terkena kanker paru, terdapat 4 orang yang tidak terkena kanker paru.

5.5 Menghitung Odds Ratio

\[OR = \frac{ad}{bc} = \frac{60 \times 80}{40 \times 20} = \frac{4800}{800} = 6.00\]

Confidence Interval 95% untuk OR:

\[SE_{\ln(OR)} = \sqrt{\frac{1}{a} + \frac{1}{b} + \frac{1}{c} + \frac{1}{d}} = \sqrt{\frac{1}{60} + \frac{1}{40} + \frac{1}{20} + \frac{1}{80}}\]

\[= \sqrt{0.0167 + 0.0250 + 0.0500 + 0.0125} = \sqrt{0.1042} \approx 0.3228\]

\[\ln(OR) = \ln(6) \approx 1.7918\]

\[\text{CI bawah} = e^{1.7918 - 1.96 \times 0.3228} = e^{1.1591} \approx 3.19\]

\[\text{CI atas} = e^{1.7918 + 1.96 \times 0.3228} = e^{2.4245} \approx 11.29\]

\[\boxed{OR = 6.00;\ 95\%\ CI: (3.19,\ 11.29)}\]

5.6 Menghitung Relative Risk

\[RR = \frac{a/(a+b)}{c/(c+d)} = \frac{60/100}{20/100} = \frac{0.60}{0.20} = 3.00\]

\[\boxed{RR = 3.00}\]


6 Analisis Menggunakan R

6.1 Membuat Tabel Kontingensi

# Membuat matriks data
data <- matrix(c(60, 40, 20, 80),
               nrow = 2,
               byrow = TRUE)

# Memberi nama baris dan kolom
rownames(data) <- c("Merokok", "Tidak Merokok")
colnames(data) <- c("Kanker", "Tidak Kanker")

# Menampilkan tabel
data
##               Kanker Tidak Kanker
## Merokok           60           40
## Tidak Merokok     20           80
Tabel Kontingensi: Merokok vs Kanker Paru
Kanker Tidak Kanker
Merokok 60 40
Tidak Merokok 20 80

6.2 Menghitung Odds Ratio menggunakan epitools

# Install jika belum ada
if (!require(epitools)) install.packages("epitools")
library(epitools)

# Menghitung Odds Ratio
or_result <- oddsratio(data, method = "wald")
print(or_result)
## $data
##               Kanker Tidak Kanker Total
## Merokok           60           40   100
## Tidak Merokok     20           80   100
## Total             80          120   200
## 
## $measure
##                         NA
## odds ratio with 95% C.I. estimate    lower    upper
##            Merokok              1       NA       NA
##            Tidak Merokok        6 3.187331 11.29472
## 
## $p.value
##                NA
## two-sided         midp.exact fisher.exact   chi.square
##   Merokok                 NA           NA           NA
##   Tidak Merokok 6.163344e-09 1.063603e-08 7.764037e-09
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

6.3 Menghitung Relative Risk

# Menghitung Relative Risk
rr_result <- riskratio(data, method = "wald")
print(rr_result)
## $data
##               Kanker Tidak Kanker Total
## Merokok           60           40   100
## Tidak Merokok     20           80   100
## Total             80          120   200
## 
## $measure
##                         NA
## risk ratio with 95% C.I. estimate    lower   upper
##            Merokok              1       NA      NA
##            Tidak Merokok        2 1.543216 2.59199
## 
## $p.value
##                NA
## two-sided         midp.exact fisher.exact   chi.square
##   Merokok                 NA           NA           NA
##   Tidak Merokok 6.163344e-09 1.063603e-08 7.764037e-09
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

6.4 Perhitungan OR secara Manual dalam R

a <- data[1, 1]  # Merokok & Kanker
b <- data[1, 2]  # Merokok & Tidak Kanker
c <- data[2, 1]  # Tidak Merokok & Kanker
d <- data[2, 2]  # Tidak Merokok & Tidak Kanker

# Odds masing-masing kelompok
odds_merokok       <- a / b
odds_tidak_merokok <- c / d

# Odds Ratio
OR <- (a * d) / (b * c)

# Relative Risk
RR <- (a / (a + b)) / (c / (c + d))

cat("=== Hasil Perhitungan Manual ===\n")
## === Hasil Perhitungan Manual ===
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
cat("Relative Risk (RR) :", round(RR, 4), "\n")
## Relative Risk (RR) : 3

6.5 Uji Chi-Square

# Melakukan uji chi-square
chi_result <- chisq.test(data)
print(chi_result)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  data
## X-squared = 31.688, df = 1, p-value = 1.811e-08

6.6 Visualisasi

# Visualisasi distribusi frekuensi
library(ggplot2)

# Menyiapkan data frame
df <- data.frame(
  Status_Merokok = rep(c("Merokok", "Tidak Merokok"), each = 2),
  Kanker = rep(c("Kanker", "Tidak Kanker"), 2),
  Frekuensi = c(60, 40, 20, 80)
)

ggplot(df, aes(x = Status_Merokok, y = Frekuensi, fill = Kanker)) +
  geom_bar(stat = "identity", position = "dodge", width = 0.6) +
  geom_text(aes(label = Frekuensi),
            position = position_dodge(width = 0.6),
            vjust = -0.5, size = 4) +
  scale_fill_manual(values = c("#E74C3C", "#3498DB")) +
  labs(
    title = "Distribusi Kejadian Kanker Paru berdasarkan Status Merokok",
    x = "Status Merokok",
    y = "Frekuensi",
    fill = "Status Kanker"
  ) +
  theme_minimal(base_size = 13) +
  ylim(0, 95)


7 Interpretasi Hasil

7.1 Interpretasi Statistik

Berdasarkan hasil analisis:

Uji Chi-Square:

  • Statistik uji: \(\chi^2 = 40.00\), \(df = 1\), \(p\text{-value} < 0.001\)
  • Karena \(p\text{-value} < 0.05\), kita menolak \(H_0\) yang menyatakan tidak ada asosiasi antara kebiasaan merokok dan kejadian kanker paru.
  • Kesimpulan: Terdapat asosiasi yang signifikan secara statistik antara kebiasaan merokok dan kanker paru pada taraf signifikansi 5%.

Odds Ratio:

  • \(OR = 6.00;\ 95\%\ CI: (3.19,\ 11.29)\)
  • Karena interval kepercayaan tidak mencakup nilai 1, maka OR ini signifikan secara statistik.

Relative Risk:

  • \(RR = 3.00\)
  • Perokok memiliki risiko terkena kanker paru 3 kali lebih besar dibandingkan bukan perokok.

7.2 Interpretasi Substantif

Dari studi kohort ini, ditemukan bahwa:

  1. Prevalensi kanker paru pada kelompok perokok adalah 60%, jauh lebih tinggi dibandingkan pada kelompok bukan perokok (20%).

  2. Odds Ratio sebesar 6.00 menunjukkan bahwa perokok memiliki odds terkena kanker paru 6 kali lebih besar dibandingkan bukan perokok. Ini merupakan ukuran asosiasi yang sangat kuat dalam epidemiologi.

  3. Relative Risk sebesar 3.00 menunjukkan bahwa risiko absolut terkena kanker paru pada perokok adalah 3 kali lipat dibandingkan bukan perokok.

  4. Temuan ini konsisten dengan literatur ilmiah yang menyatakan rokok sebagai faktor risiko utama kanker paru-paru (WHO, 2023; IARC, 2020).

  5. Dari perspektif kesehatan masyarakat, hasil ini memperkuat urgensi program pengendalian tembakau dan kampanye berhenti merokok sebagai strategi pencegahan kanker paru.


8 Kesimpulan

Analisis data kategori menggunakan tabel kontingensi \(2 \times 2\) telah berhasil dilakukan untuk menyelidiki hubungan antara kebiasaan merokok dan kejadian kanker paru. Hasil analisis menunjukkan:

  • Terdapat asosiasi positif yang signifikan (\(\chi^2 = 40.00\), \(p < 0.001\))
  • Perokok memiliki Odds Ratio = 6.00 dan Relative Risk = 3.00 terhadap kejadian kanker paru dibandingkan bukan perokok
  • Baik perhitungan manual maupun implementasi R menghasilkan nilai yang konsisten

Analisis ini mendemonstrasikan pentingnya ukuran asosiasi dalam mengkuantifikasi kekuatan hubungan antar variabel kategori dalam penelitian epidemiologi dan kesehatan masyarakat.


9 Referensi

Agresti, A. (2013). Categorical Data Analysis (3rd ed.). John Wiley & Sons.

Fleiss, J. L., Levin, B., & Paik, M. C. (2003). Statistical Methods for Rates and Proportions (3rd ed.). Wiley-Interscience.

IARC. (2020). Tobacco smoking and cancer: IARC Monographs on the Evaluation of Carcinogenic Risks to Humans. International Agency for Research on Cancer.

Rothman, K. J., Greenland, S., & Lash, T. L. (2008). Modern Epidemiology (3rd ed.). Lippincott Williams & Wilkins.

WHO. (2023). Tobacco. World Health Organization. https://www.who.int/news-room/fact-sheets/detail/tobacco


Program Studi S1 Statistika FMIPA Universitas Padjadjaran, 2026.