1 Pendahuluan

Dalam berbagai bidang ilmu seperti kesehatan, ekonomi, dan ilmu sosial, peneliti sering berhadapan dengan variabel yang tidak dinyatakan dalam bentuk numerik melainkan dalam bentuk kategori. Variabel tersebut dikenal sebagai variabel kategorik (categorical variables). Contoh variabel kategorik antara lain jenis kelamin, status merokok, status penyakit, tingkat pendidikan, serta preferensi politik.

Berbeda dengan variabel numerik yang memiliki makna jarak atau besaran kuantitatif, variabel kategorik hanya merepresentasikan pengelompokan atau klasifikasi objek ke dalam kategori tertentu. Oleh karena itu metode analisis yang digunakan juga berbeda dengan analisis data numerik.

Salah satu pendekatan yang paling umum digunakan dalam analisis data kategori adalah tabel kontingensi (contingency table). Tabel ini digunakan untuk menggambarkan distribusi bersama dari dua variabel kategorik sehingga hubungan antar variabel dapat dianalisis.

Tujuan dari laporan ini adalah: 1. Menjelaskan konsep dasar analisis data kategori 2. Memahami struktur tabel kontingensi 3. Menghitung ukuran asosiasi pada tabel kontingensi 4. Melakukan perhitungan manual 5. Melakukan analisis menggunakan perangkat lunak R 6. Menginterpretasikan hasil analisis

2 Konsep Analisis Data Kategori

2.1 Definisi Analisis Data Kategori

Analisis data kategori adalah metode statistik yang digunakan untuk menganalisis variabel yang berbentuk kategori atau klasifikasi. Menurut Agresti (2013), analisis data kategori berfokus pada distribusi frekuensi serta hubungan antara variabel yang memiliki skala nominal atau ordinal.

Variabel kategorik tidak memiliki nilai numerik yang bermakna secara matematis, melainkan hanya menunjukkan keanggotaan suatu objek pada kategori tertentu.

Metode yang sering digunakan dalam analisis data kategori antara lain:

  • tabel kontingensi
  • uji chi-square
  • odds ratio
  • relative risk
  • regresi logistik

2.2 Karakteristik Variabel Kategori

Variabel kategori memiliki beberapa karakteristik utama:

  1. Bersifat diskrit
  2. Tidak memiliki jarak numerik yang bermakna
  3. Dianalisis menggunakan frekuensi atau proporsi

Contoh variabel kategorik:

Variabel Kategori
Jenis kelamin Laki-laki / Perempuan
Status merokok Ya / Tidak
Tingkat pendidikan SD / SMP / SMA / PT

2.3 Contoh Penerapan

Analisis data kategori digunakan dalam berbagai bidang penelitian.

Bidang kesehatan: Meneliti hubungan antara merokok dan kanker paru.

Bidang epidemiologi: Meneliti hubungan antara vaksinasi dan infeksi.

Bidang sosial: Meneliti hubungan antara tingkat pendidikan dan status pekerjaan.

3 Tabel Kontingensi

3.1 Definisi Tabel Kontingensi

Tabel kontingensi adalah tabel yang menyajikan distribusi frekuensi bersama dari dua atau lebih variabel kategorik. Tabel ini membantu peneliti memahami hubungan antara variabel tersebut.

3.2 Struktur Tabel Kontingensi

Contoh tabel kontingensi 2×2

Penyakit Tidak Penyakit Total
Terpapar a b a+b
Tidak Terpapar c d c+d
Total a+c b+d n

3.3 Joint Distribution

Distribusi bersama dinyatakan sebagai

\[ P(X=i,Y=j)=\frac{n_{ij}}{n} \]

3.4 Marginal Distribution

Distribusi marginal dinyatakan sebagai

\[ P(X=i)=\frac{n_{i+}}{n} \]

\[ P(Y=j)=\frac{n_{+j}}{n} \]

3.5 Conditional Probability

Probabilitas bersyarat dinyatakan sebagai

\[ P(Y=j|X=i)=\frac{n_{ij}}{n_{i+}} \]

4 Ukuran Asosiasi

Ukuran asosiasi digunakan untuk mengukur kekuatan hubungan antara dua variabel kategorik.

Misalkan tabel:

Penyakit Tidak
Terpapar a b
Tidak c d

4.1 Odds

Odds adalah perbandingan antara probabilitas terjadinya suatu kejadian dengan probabilitas tidak terjadinya kejadian tersebut.

\[ Odds = \frac{P}{1-P} \]

Untuk kelompok terpapar:

\[ Odds_{terpapar}=\frac{a}{b} \]

Untuk kelompok tidak terpapar:

\[ Odds_{tidak}=\frac{c}{d} \]

4.2 Odds Ratio

Odds Ratio adalah perbandingan odds antara dua kelompok.

\[ OR=\frac{a/b}{c/d} \]

atau

\[ OR=\frac{ad}{bc} \]

Interpretasi:

  • OR = 1 → tidak ada hubungan
  • OR > 1 → faktor meningkatkan risiko
  • OR < 1 → faktor bersifat protektif

4.3 Relative Risk

Relative Risk dinyatakan sebagai

\[ RR = \frac{a/(a+b)}{c/(c+d)} \]

5 Contoh Perhitungan Manual

Misalkan penelitian mengenai hubungan antara merokok dan kanker paru.

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

Total observasi

\[ n = 60 + 40 + 20 + 80 = 200 \]

Probabilitas Bersyarat

\[ P(Kanker|Merokok)=\frac{60}{100}=0.6 \]

\[ P(Kanker|Tidak)=\frac{20}{100}=0.2 \]

Odds

\[ Odds_{merokok}=\frac{60}{40}=1.5 \]

\[ Odds_{tidak}=\frac{20}{80}=0.25 \]

Odds Ratio

\[ OR=\frac{60 \times 80}{40 \times 20} = \frac{4800}{800} = 6 \]

Interpretasi: Perokok memiliki peluang sekitar 6 kali lebih besar mengalami kanker paru dibandingkan non-perokok.

Relative Risk

\[ RR = \frac{60/100}{20/100} = \frac{0.6}{0.2} = 3 \]

Interpretasi: Perokok memiliki risiko 3 kali lebih tinggi untuk terkena kanker paru dibandingkan non-perokok.

6 Analisis Menggunakan R

6.1 Membuat Tabel Kontingensi

# Membuat data tabel kontingensi
data_kanker <- matrix(c(60, 40, 20, 80), nrow = 2, byrow = TRUE)
rownames(data_kanker) <- c("Merokok", "Tidak Merokok")
colnames(data_kanker) <- c("Kanker", "Tidak Kanker")

# Menampilkan tabel
print("Tabel Kontingensi:")
## [1] "Tabel Kontingensi:"
data_kanker
##               Kanker Tidak Kanker
## Merokok           60           40
## Tidak Merokok     20           80

6.2 Menghitung Ukuran Asosiasi

# Mengambil nilai dari tabel
a <- data_kanker[1, 1]  # Merokok & Kanker
b <- data_kanker[1, 2]  # Merokok & Tidak Kanker
c <- data_kanker[2, 1]  # Tidak Merokok & Kanker
d <- data_kanker[2, 2]  # Tidak Merokok & Tidak Kanker

# Menghitung Odds Ratio
OR <- (a * d) / (b * c)
print(paste("Odds Ratio (OR):", round(OR, 3)))
## [1] "Odds Ratio (OR): 6"
# Menghitung Relative Risk
RR <- (a/(a+b)) / (c/(c+d))
print(paste("Relative Risk (RR):", round(RR, 3)))
## [1] "Relative Risk (RR): 3"
# Menghitung selang kepercayaan 95% untuk OR
SE_OR <- sqrt(1/a + 1/b + 1/c + 1/d)
CI_lower <- exp(log(OR) - 1.96 * SE_OR)
CI_upper <- exp(log(OR) + 1.96 * SE_OR)
print(paste("95% CI untuk OR:", round(CI_lower, 3), "-", round(CI_upper, 3)))
## [1] "95% CI untuk OR: 3.187 - 11.295"

6.3 Uji Chi-Square

# Melakukan uji chi-square
hasil_chi <- chisq.test(data_kanker)
print(hasil_chi)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  data_kanker
## X-squared = 31.688, df = 1, p-value = 1.811e-08
# Menampilkan tabel ekspektasi
print("Tabel Ekspektasi:")
## [1] "Tabel Ekspektasi:"
round(hasil_chi$expected, 2)
##               Kanker Tidak Kanker
## Merokok           40           60
## Tidak Merokok     40           60

6.4 Visualisasi Data

# Mosaic plot
par(mfrow = c(1, 2))  # 1 baris, 2 kolom

# Mosaic plot dasar
mosaicplot(data_kanker, 
           main = "Hubungan Merokok dan Kanker\n(Mosaic Plot)",
           xlab = "Status Merokok", 
           ylab = "Status Kanker",
           color = c("lightblue", "lightcoral"),
           cex.axis = 0.8)

# Bar plot bertumpuk
barplot(data_kanker, 
        beside = FALSE,
        main = "Distribusi Kanker berdasarkan Status Merokok",
        xlab = "Status Kanker", 
        ylab = "Jumlah",
        col = c("darkblue", "lightblue"),
        legend.text = rownames(data_kanker),
        args.legend = list(x = "topright"))

# Visualisasi dengan ggplot2
library(reshape2)

# Mengubah data ke format long untuk ggplot
data_long <- melt(data_kanker, varnames = c("Merokok", "Kanker"), value.name = "Frekuensi")

# Membuat stacked bar chart dengan proporsi
ggplot(data_long, aes(x = Kanker, y = Frekuensi, fill = Merokok)) +
  geom_bar(stat = "identity", position = "fill") +
  scale_y_continuous(labels = scales::percent) +
  labs(title = "Proporsi Kanker berdasarkan Status Merokok",
       x = "Status Kanker", 
       y = "Proporsi",
       fill = "Status Merokok") +
  theme_minimal() +
  scale_fill_manual(values = c("lightblue", "lightcoral"))

6.5 Analisis Lanjutan

# Menghitung residual dari uji chi-square
print("Residual Pearson:")
## [1] "Residual Pearson:"
round(hasil_chi$residuals, 3)
##               Kanker Tidak Kanker
## Merokok        3.162       -2.582
## Tidak Merokok -3.162        2.582
# Uji Fisher's Exact Test (alternatif ketika sampel kecil)
fisher.test(data_kanker)
## 
##  Fisher's Exact Test for Count Data
## 
## data:  data_kanker
## 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

7 Interpretasi Hasil

Interpretasi Statistik

# Menampilkan ringkasan interpretasi
print("=== RINGKASAN HASIL ANALISIS ===")
## [1] "=== RINGKASAN HASIL ANALISIS ==="
print(paste("1. Odds Ratio (OR) =", round(OR, 3)))
## [1] "1. Odds Ratio (OR) = 6"
print(paste("   Interpretasi: Perokok memiliki peluang", round(OR, 1), 
            "kali lebih besar untuk terkena kanker paru"))
## [1] "   Interpretasi: Perokok memiliki peluang 6 kali lebih besar untuk terkena kanker paru"
print(paste("2. Relative Risk (RR) =", round(RR, 3)))
## [1] "2. Relative Risk (RR) = 3"
print(paste("   Interpretasi: Risiko kanker paru pada perokok", round(RR, 1), 
            "kali lebih tinggi"))
## [1] "   Interpretasi: Risiko kanker paru pada perokok 3 kali lebih tinggi"
print(paste("3. Uji Chi-square: X-squared =", round(hasil_chi$statistic, 3)))
## [1] "3. Uji Chi-square: X-squared = 31.688"
print(paste("   p-value =", format(hasil_chi$p.value, scientific = TRUE, digits = 3)))
## [1] "   p-value = 1.81e-08"
# Interpretasi p-value
if(hasil_chi$p.value < 0.05) {
  print("4. Kesimpulan: Terdapat hubungan yang signifikan antara merokok dan kanker paru (p < 0.05)")
} else {
  print("4. Kesimpulan: Tidak terdapat hubungan yang signifikan antara merokok dan kanker paru (p > 0.05)")
}
## [1] "4. Kesimpulan: Terdapat hubungan yang signifikan antara merokok dan kanker paru (p < 0.05)"

Interpretasi Substantif

Berdasarkan hasil analisis, ditemukan bahwa:

  1. Odds Ratio sebesar 6 menunjukkan bahwa individu yang merokok memiliki odds (peluang) 6 kali lebih tinggi untuk menderita kanker paru dibandingkan dengan individu yang tidak merokok.

  2. Relative Risk sebesar 3 menunjukkan bahwa risiko terkena kanker paru pada kelompok perokok adalah 3 kali lebih tinggi dibandingkan kelompok non-perokok.

  3. Uji Chi-square menghasilkan p-value < 0.05, yang mengindikasikan bahwa hubungan antara merokok dan kanker paru secara statistik signifikan.

Secara substantif, hasil ini menunjukkan bahwa merokok merupakan faktor risiko yang signifikan untuk kejadian kanker paru. Temuan ini konsisten dengan berbagai penelitian epidemiologi yang telah dilakukan sebelumnya.

8 Kesimpulan

Analisis data kategori merupakan metode statistik yang esensial untuk menganalisis variabel kategorik. Melalui tabel kontingensi, hubungan antara variabel kategorik dapat dipelajari secara sistematis. Ukuran asosiasi seperti odds ratio dan relative risk memberikan gambaran kuantitatif mengenai kekuatan hubungan antar variabel.

Dalam studi kasus yang dianalisis:

Referensi

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

Agresti, A. (2018). An Introduction to Categorical Data Analysis (3rd ed.). Wiley.

Hosmer, D. W., Lemeshow, S., & Sturdivant, R. X. (2013). Applied Logistic Regression (3rd ed.). Wiley. ```