1 Pendahuluan

Mata Kuliah: Analisis Data Kategori
Program Studi: S1 Statistika FMIPA — Universitas Padjadjaran
Dosen: I Gede Nyoman Mindra Jaya
Tanggal: 09 March 2026

Laporan ini menyajikan analisis data kategori secara lengkap, mulai dari konsep dasar, tabel kontingensi, ukuran asosiasi, perhitungan manual, hingga implementasi menggunakan R.


2 Definisi Analisis Data Kategori

2.1 Pengertian

Analisis data kategori (categorical data analysis) adalah sekumpulan metode statistik yang digunakan untuk menganalisis data yang bersifat kualitatif atau nominal, di mana setiap pengamatan dikelompokkan ke dalam kategori-kategori yang saling eksklusif dan kolektif (Agresti, 2013).

Berbeda dengan data kontinu, data kategori tidak memiliki jarak antar nilai yang bermakna secara matematis. Fokus analisis terletak pada frekuensi, proporsi, dan hubungan antar kategori.

2.2 Karakteristik Variabel Kategori

Variabel kategori memiliki ciri-ciri berikut:

Karakteristik Penjelasan
Skala pengukuran Nominal atau ordinal
Nilai yang mungkin Terbatas dan diskrit
Representasi Frekuensi atau proporsi
Operasi aritmatika Tidak berlaku secara langsung
Contoh nilai “Ya/Tidak”, “Sakit/Sehat”, “Rendah/Sedang/Tinggi”

2.2.1 Jenis Variabel Kategori

1. Variabel Nominal
Kategori tanpa urutan yang bermakna.
Contoh: jenis kelamin (laki-laki, perempuan), golongan darah (A, B, AB, O).

2. Variabel Ordinal
Kategori dengan urutan yang bermakna, tetapi jarak antar kategori tidak seragam.
Contoh: tingkat pendidikan (SD < SMP < SMA < Perguruan Tinggi), tingkat nyeri (ringan < sedang < berat).

3. Variabel Biner (Dikotomi)
Variabel dengan hanya dua kategori.
Contoh: status penyakit (sakit/tidak sakit), hasil tes (positif/negatif).

2.3 Penerapan dalam Penelitian

Contoh penerapan analisis data kategori:

  • Epidemiologi: Apakah ada hubungan antara kebiasaan merokok dan kejadian kanker paru?
  • Ilmu Sosial: Apakah tingkat pendidikan berkaitan dengan preferensi partai politik?
  • Kesehatan Masyarakat: Apakah vaksinasi efektif mengurangi risiko infeksi?
  • Ekonomi: Apakah status pekerjaan berpengaruh terhadap kepemilikan rumah?

Metode yang umum digunakan antara lain: uji chi-square, regresi logistik, analisis log-linear, dan ukuran asosiasi seperti odds ratio serta relative risk (Agresti, 2013; Stokes et al., 2012).


3 Tabel Kontingensi

3.1 Definisi

Tabel kontingensi (contingency table) adalah suatu representasi tabular yang menyajikan distribusi frekuensi dua variabel kategori atau lebih secara bersama-sama. Tabel ini memungkinkan kita untuk melihat pola hubungan (asosiasi) antar variabel (Agresti, 2013).

Tabel kontingensi paling sederhana adalah tabel 2 × 2, yang terdiri dari dua baris dan dua kolom.

3.2 Struktur Tabel Kontingensi 2×2

Misalkan kita memiliki dua variabel:

  • Variabel X (baris): Status merokok (Merokok / Tidak Merokok)
  • Variabel Y (kolom): Status penyakit (Kanker / Tidak Kanker)
Kanker (\(Y=1\)) Tidak Kanker (\(Y=0\)) Total Baris
Merokok (\(X=1\)) \(n_{11}\) \(n_{12}\) \(n_{1+}\)
Tidak Merokok (\(X=0\)) \(n_{21}\) \(n_{22}\) \(n_{2+}\)
Total Kolom \(n_{+1}\) \(n_{+2}\) \(n\)

Keterangan notasi:

  • \(n_{ij}\) : frekuensi sel baris ke-\(i\), kolom ke-\(j\)
  • \(n_{i+}\) : total marginal baris ke-\(i\)
  • \(n_{+j}\) : total marginal kolom ke-\(j\)
  • \(n\) : total keseluruhan observasi

3.3 Joint Distribution (Distribusi Bersama)

Distribusi bersama (joint distribution) menggambarkan peluang dua variabel terjadi secara bersamaan. Diperoleh dengan membagi setiap sel dengan total keseluruhan:

\[\hat{\pi}_{ij} = \frac{n_{ij}}{n}\]

Sehingga berlaku:

\[\sum_{i}\sum_{j} \hat{\pi}_{ij} = 1\]

Contoh interpretasi: \(\hat{\pi}_{11}\) adalah estimasi peluang seorang individu merupakan perokok dan menderita kanker secara bersamaan.

3.4 Marginal Distribution (Distribusi Marginal)

Distribusi marginal adalah distribusi peluang satu variabel saja, diperoleh dengan menjumlahkan peluang sel di seluruh kategori variabel lainnya:

Marginal baris (variabel X): \[\hat{\pi}_{i+} = \sum_{j} \hat{\pi}_{ij} = \frac{n_{i+}}{n}\]

Marginal kolom (variabel Y): \[\hat{\pi}_{+j} = \sum_{i} \hat{\pi}_{ij} = \frac{n_{+j}}{n}\]

Catatan penting: Jika \(\hat{\pi}_{ij} = \hat{\pi}_{i+} \cdot \hat{\pi}_{+j}\) untuk semua \(i\) dan \(j\), maka variabel X dan Y dikatakan independen (tidak ada asosiasi).

3.5 Conditional Probability (Peluang Bersyarat)

Peluang bersyarat adalah peluang satu variabel terjadi dengan syarat variabel lain telah diketahui nilainya.

Peluang bersyarat Y diberikan X = i: \[P(Y = j \mid X = i) = \frac{\hat{\pi}_{ij}}{\hat{\pi}_{i+}} = \frac{n_{ij}}{n_{i+}}\]

Peluang bersyarat X diberikan Y = j: \[P(X = i \mid Y = j) = \frac{\hat{\pi}_{ij}}{\hat{\pi}_{+j}} = \frac{n_{ij}}{n_{+j}}\]

Interpretasi: \(P(Y=1 \mid X=1)\) adalah peluang menderita kanker di antara kelompok perokok.


4 Ukuran Asosiasi

4.1 Odds

Odds adalah rasio antara peluang suatu kejadian terjadi dibandingkan peluang kejadian tersebut tidak terjadi.

\[\text{Odds} = \frac{P(\text{kejadian terjadi})}{P(\text{kejadian tidak terjadi})} = \frac{p}{1-p}\]

Dalam konteks tabel kontingensi, odds untuk kelompok ke-\(i\):

\[\text{Odds}_i = \frac{n_{i1}}{n_{i2}}\]

Interpretasi Odds:

  • Odds = 1 → peluang terjadi sama dengan peluang tidak terjadi
  • Odds > 1 → kejadian lebih mungkin terjadi
  • Odds < 1 → kejadian lebih mungkin tidak terjadi

4.2 Odds Ratio (OR)

Odds Ratio (rasio odds) adalah rasio antara odds kelompok pertama (terpapar) dengan odds kelompok kedua (tidak terpapar). 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}} = \frac{ad}{bc}\]

di mana:

\[\begin{pmatrix} a & b \\ c & d \end{pmatrix} = \begin{pmatrix} n_{11} & n_{12} \\ n_{21} & n_{22} \end{pmatrix}\]

Interpretasi Odds Ratio:

  • \(OR = 1\) → tidak ada asosiasi antara paparan dan hasil
  • \(OR > 1\) → paparan meningkatkan odds terjadinya hasil (risk factor)
  • \(OR < 1\) → paparan menurunkan odds terjadinya hasil (protective factor)

Contoh: \(OR = 3{,}5\) berarti perokok memiliki odds terkena kanker 3,5 kali lebih besar dibanding bukan perokok.

4.3 Relative Risk (RR)

Relative Risk (juga disebut Risk Ratio) adalah rasio antara risiko (probabilitas) terjadinya hasil pada kelompok terpapar dibandingkan kelompok tidak terpapar. Umumnya digunakan dalam studi kohort.

\[RR = \frac{P(\text{outcome} \mid \text{exposed})}{P(\text{outcome} \mid \text{unexposed})} = \frac{n_{11}/n_{1+}}{n_{21}/n_{2+}} = \frac{n_{11} \cdot n_{2+}}{n_{21} \cdot n_{1+}}\]

Interpretasi Relative Risk:

  • \(RR = 1\) → tidak ada perbedaan risiko antar kelompok
  • \(RR > 1\) → kelompok terpapar memiliki risiko lebih tinggi
  • \(RR < 1\) → kelompok terpapar memiliki risiko lebih rendah (efek protektif)

Catatan: Ketika prevalensi outcome rendah (< 10%), nilai OR ≈ RR. Namun ketika prevalensi tinggi, OR dapat melebih-lebihkan RR.

4.4 Perbandingan OR dan RR

Aspek Odds Ratio Relative Risk
Desain studi Kasus-kontrol & kohort Kohort
Rentang nilai \((0, \infty)\) \((0, \infty)\)
Simetri Simetris Tidak simetris
Interpretasi Rasio odds Rasio probabilitas
Approx. saat prevalensi rendah OR ≈ RR

5 Contoh Perhitungan Manual

5.1 Kasus: Merokok dan Kanker Paru

Misalkan dilakukan penelitian kohort terhadap 200 orang untuk meneliti hubungan antara kebiasaan merokok dan kejadian kanker paru. Berikut adalah data yang diperoleh:

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

5.2 Perhitungan Peluang Bersyarat

Peluang kanker paru pada kelompok perokok: \[P(\text{Kanker} \mid \text{Merokok}) = \frac{n_{11}}{n_{1+}} = \frac{60}{100} = 0{,}60\]

Peluang kanker paru pada kelompok tidak merokok: \[P(\text{Kanker} \mid \text{Tidak Merokok}) = \frac{n_{21}}{n_{2+}} = \frac{20}{100} = 0{,}20\]

Perokok memiliki peluang terkena kanker paru sebesar 60%, sedangkan bukan perokok hanya 20%. Terlihat adanya perbedaan yang substansial.

5.3 Perhitungan Odds

Odds kanker paru pada kelompok perokok: \[\text{Odds}_{\text{Merokok}} = \frac{P(\text{Kanker} \mid \text{Merokok})}{1 - P(\text{Kanker} \mid \text{Merokok})} = \frac{0{,}60}{1 - 0{,}60} = \frac{0{,}60}{0{,}40} = \frac{60}{40} = 1{,}50\]

Odds kanker paru pada kelompok tidak merokok: \[\text{Odds}_{\text{Tidak Merokok}} = \frac{P(\text{Kanker} \mid \text{Tidak Merokok})}{1 - P(\text{Kanker} \mid \text{Tidak Merokok})} = \frac{0{,}20}{0{,}80} = \frac{20}{80} = 0{,}25\]

5.4 Perhitungan Odds Ratio

\[OR = \frac{\text{Odds}_{\text{Merokok}}}{\text{Odds}_{\text{Tidak Merokok}}} = \frac{1{,}50}{0{,}25} = 6{,}00\]

Verifikasi menggunakan rumus silang: \[OR = \frac{a \times d}{b \times c} = \frac{60 \times 80}{40 \times 20} = \frac{4800}{800} = 6{,}00 \checkmark\]

5.5 Perhitungan Relative Risk

\[RR = \frac{P(\text{Kanker} \mid \text{Merokok})}{P(\text{Kanker} \mid \text{Tidak Merokok})} = \frac{60/100}{20/100} = \frac{0{,}60}{0{,}20} = 3{,}00\]

Ringkasan Hasil Perhitungan Manual:

Ukuran Nilai
\(P(\text{Kanker} \mid \text{Merokok})\) 0,60
\(P(\text{Kanker} \mid \text{Tidak Merokok})\) 0,20
\(\text{Odds}_{\text{Merokok}}\) 1,50
\(\text{Odds}_{\text{Tidak Merokok}}\) 0,25
Odds Ratio (OR) 6,00
Relative Risk (RR) 3,00

6 Analisis Menggunakan R

6.1 Membangun Tabel Kontingensi

# Membuat matriks data
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 ===
print(data)
##               Kanker Tidak Kanker
## Merokok           60           40
## Tidak Merokok     20           80
# Tampilkan proporsi baris (conditional distribution)
cat("\n=== Proporsi Baris (Peluang Bersyarat) ===\n")
## 
## === Proporsi Baris (Peluang Bersyarat) ===
print(round(prop.table(data, margin = 1), 4))
##               Kanker Tidak Kanker
## Merokok          0.6          0.4
## Tidak Merokok    0.2          0.8

6.2 Menghitung Odds Ratio

# Ekstrak nilai sel
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

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

# Hitung Odds Ratio dan Relative Risk
OR <- (a * d) / (b * c)
RR <- (a / (a + b)) / (c / (c + d))

cat("=== Hasil Perhitungan ===\n")
## === Hasil Perhitungan ===
cat(sprintf("Odds (Merokok)       : %.4f\n", odds_merokok))
## Odds (Merokok)       : 1.5000
cat(sprintf("Odds (Tidak Merokok) : %.4f\n", odds_tidak_merokok))
## Odds (Tidak Merokok) : 0.2500
cat(sprintf("Odds Ratio  (OR)     : %.4f\n", OR))
## Odds Ratio  (OR)     : 6.0000
cat(sprintf("Relative Risk (RR)   : %.4f\n", RR))
## Relative Risk (RR)   : 3.0000

6.3 Uji Chi-Square

# Uji chi-square untuk independensi
hasil_chi <- chisq.test(data)
print(hasil_chi)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  data
## X-squared = 31.688, df = 1, p-value = 1.811e-08
cat("\n=== Ringkasan ===\n")
## 
## === Ringkasan ===
cat(sprintf("Chi-square statistic : %.4f\n", hasil_chi$statistic))
## Chi-square statistic : 31.6875
cat(sprintf("Derajat kebebasan    : %d\n",   hasil_chi$parameter))
## Derajat kebebasan    : 1
cat(sprintf("p-value              : %.6f\n", hasil_chi$p.value))
## p-value              : 0.000000
alpha <- 0.05
if (hasil_chi$p.value < alpha) {
  cat("\nKesimpulan: Terdapat asosiasi yang signifikan antara merokok dan kanker paru (p < 0,05).\n")
} else {
  cat("\nKesimpulan: Tidak terdapat asosiasi yang signifikan (p >= 0,05).\n")
}
## 
## Kesimpulan: Terdapat asosiasi yang signifikan antara merokok dan kanker paru (p < 0,05).

6.4 Visualisasi

par(mfrow = c(1, 2), mar = c(4, 4, 3, 1))

# --- Plot 1: Grouped bar chart ---
barplot(t(prop.table(data, margin = 1)),
        beside      = TRUE,
        col         = c("#2980b9", "#bdc3c7"),
        legend.text = colnames(data),
        args.legend = list(x = "topright", bty = "n"),
        main        = "Proporsi Status Kanker\nBerdasarkan Kebiasaan Merokok",
        xlab        = "Kebiasaan Merokok",
        ylab        = "Proporsi",
        ylim        = c(0, 1),
        names.arg   = rownames(data),
        border      = NA)

# --- Plot 2: Mosaic plot ---
mosaicplot(data,
           main   = "Mosaic Plot\nMerokok vs Kanker Paru",
           color  = c("#2980b9", "#bdc3c7"),
           border = "white",
           xlab   = "Kebiasaan Merokok",
           ylab   = "Status Kanker")


7 Interpretasi Hasil

7.1 Interpretasi Statistik

Berdasarkan uji chi-square, diperoleh nilai statistik \(\chi^2\) yang sangat besar dengan \(p\text{-value} \ll 0{,}05\). Dengan demikian, pada tingkat signifikansi \(\alpha = 0{,}05\), terdapat asosiasi yang signifikan secara statistik antara kebiasaan merokok dan kejadian kanker paru.

Nilai Odds Ratio = 6,00 beserta Relative Risk = 3,00 memperkuat kesimpulan bahwa asosiasi ini bersifat kuat dan positif.

7.2 Interpretasi Substantif

Dalam konteks kasus merokok dan kanker paru:

  1. Peluang Bersyarat: Perokok memiliki peluang terkena kanker paru sebesar 60%, sementara bukan perokok hanya 20%.

  2. Odds Ratio (OR = 6,00): Odds terkena kanker paru pada kelompok perokok adalah 6 kali lebih besar dibandingkan kelompok bukan perokok.

  3. Relative Risk (RR = 3,00): Risiko terkena kanker paru pada kelompok perokok adalah 3 kali lebih tinggi dibandingkan kelompok bukan perokok.

  4. Kesimpulan Substantif: Hasil analisis menunjukkan bahwa kebiasaan merokok merupakan faktor risiko yang kuat dan signifikan terhadap kejadian kanker paru. Temuan ini konsisten dengan berbagai studi epidemiologi yang telah ada (Doll & Hill, 1950; IARC, 2004).


8 Referensi

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

Doll, R., & Hill, A. B. (1950). Smoking and carcinoma of the lung. British Medical Journal, 2(4682), 739–748.

IARC Working Group. (2004). Tobacco Smoke and Involuntary Smoking (IARC Monographs Vol. 83). International Agency for Research on Cancer.

Stokes, M. E., Davis, C. S., & Koch, G. G. (2012). Categorical Data Analysis Using SAS (3rd ed.). SAS Institute.


Laporan ini dibuat menggunakan R Markdown • Program Studi S1 Statistika FMIPA Universitas Padjadjaran