DAFTAR ISI
Analisis data kategori adalah metode statistik yang digunakan untuk menganalisis data yang bersifat kategorikal, di mana observasi dikelompokkan ke dalam kategori-kategori tertentu. Data kategori berbeda dengan data numerik karena nilainya tidak memiliki makna kuantitatif, melainkan merepresentasikan kualitas atau atribut tertentu.
Variabel kategori memiliki karakteristik utama sebagai berikut:
| Bidang | Contoh Penelitian | Variabel Kategori |
|---|---|---|
| Kesehatan | Hubungan merokok dengan kanker paru | Status merokok (Ya/Tidak), Status kanker (Ya/Tidak) |
| Kesehatan | Efektivitas vaksin COVID-19 | Status vaksin (Ya/Tidak), Status infeksi (Ya/Tidak) |
| Pendidikan | Pengaruh metode belajar terhadap kelulusan | Metode belajar (A/B/C), Status kelulusan (Lulus/Tidak) |
| Sosial | Hubungan pendidikan dengan partisipasi politik | Tingkat pendidikan (SD/SMP/SMA/PT), Partisipasi (Ya/Tidak) |
| Ekonomi | Faktor-faktor kepemilikan rumah | Status pekerjaan, Status kepemilikan rumah (Milik/Sewa) |
Sumber: Agresti, A. (2019). An Introduction to Categorical Data Analysis (3rd ed.). John Wiley & Sons.
Tabel kontingensi (cross-tabulation) adalah tabel yang menyajikan frekuensi bersama dari dua atau lebih variabel kategori. Tabel ini menunjukkan distribusi observasi berdasarkan kombinasi kategori dari variabel-variabel yang dianalisis.
Untuk tabel kontingensi \(r \times c\) (r baris dan c kolom), struktur umumnya adalah:
| Variabel X | \(Y_1\) | \(Y_2\) | … | \(Y_c\) | Total Baris |
|---|---|---|---|---|---|
| \(X_1\) | \(n_{11}\) | \(n_{12}\) | … | \(n_{1c}\) | \(n_{1.}\) |
| \(X_2\) | \(n_{21}\) | \(n_{22}\) | … | \(n_{2c}\) | \(n_{2.}\) |
| … | … | … | … | … | … |
| \(X_r\) | \(n_{r1}\) | \(n_{r2}\) | … | \(n_{rc}\) | \(n_{r.}\) |
| Total Kolom | \(n_{.1}\) | \(n_{.2}\) | … | \(n_{.c}\) | \(n\) |
Dimana: - \(n_{ij}\) = frekuensi observasi pada baris ke-i dan kolom ke-j - \(n_{i.} = \sum_{j=1}^c n_{ij}\) = total baris ke-i - \(n_{.j} = \sum_{i=1}^r n_{ij}\) = total kolom ke-j - \(n = \sum_{i=1}^r \sum_{j=1}^c n_{ij}\) = total keseluruhan observasi
Distribusi bersama menunjukkan probabilitas suatu observasi berada pada kategori tertentu dari kedua variabel secara bersamaan.
\[P(X = i, Y = j) = \frac{n_{ij}}{n}\]
Distribusi marginal menunjukkan probabilitas suatu observasi berada pada kategori tertentu dari satu variabel, tanpa memperhatikan variabel lainnya.
\[P(X = i) = \frac{n_{i.}}{n} = \sum_{j=1}^c P(X = i, Y = j)\]
\[P(Y = j) = \frac{n_{.j}}{n} = \sum_{i=1}^r P(X = i, Y = j)\]
Probabilitas bersyarat menunjukkan probabilitas suatu observasi berada pada kategori tertentu dari satu variabel, dengan syarat variabel lainnya diketahui.
\[P(Y = j | X = i) = \frac{n_{ij}}{n_{i.}} = \frac{P(X = i, Y = j)}{P(X = i)}\]
\[P(X = i | Y = j) = \frac{n_{ij}}{n_{.j}} = \frac{P(X = i, Y = j)}{P(Y = j)}\]
Berikut adalah contoh tabel kontingensi untuk hubungan merokok dengan kanker paru:
Tabel 2.1: Hubungan Merokok dengan Kanker Paru
| Status Merokok | Kanker Paru | Tidak Kanker Paru | Total |
|---|---|---|---|
| Merokok | 60 | 40 | 100 |
| Tidak Merokok | 20 | 80 | 100 |
| Total | 80 | 120 | 200 |
Perhitungan Distribusi:
Joint Distribution: - \(P(\text{Merokok, Kanker}) = 60/200 = 0.30\) - \(P(\text{Merokok, Tidak Kanker}) = 40/200 = 0.20\) - \(P(\text{Tidak Merokok, Kanker}) = 20/200 = 0.10\) - \(P(\text{Tidak Merokok, Tidak Kanker}) = 80/200 = 0.40\)
Marginal Distribution: - \(P(\text{Merokok}) = 100/200 = 0.50\) - \(P(\text{Tidak Merokok}) = 100/200 = 0.50\) - \(P(\text{Kanker}) = 80/200 = 0.40\) - \(P(\text{Tidak Kanker}) = 120/200 = 0.60\)
Conditional Probability: - \(P(\text{Kanker}|\text{Merokok}) = 60/100 = 0.60\) - \(P(\text{Tidak Kanker}|\text{Merokok}) = 40/100 = 0.40\) - \(P(\text{Kanker}|\text{Tidak Merokok}) = 20/100 = 0.20\) - \(P(\text{Tidak Kanker}|\text{Tidak Merokok}) = 80/100 = 0.80\)
Odds adalah perbandingan antara probabilitas suatu kejadian terjadi dengan probabilitas kejadian tersebut tidak terjadi.
\[\text{Odds} = \frac{P(\text{Kejadian})}{P(\text{Tidak Kejadian})} = \frac{\pi}{1-\pi}\]
Contoh perhitungan dari tabel 2.1:
Odds kanker pada perokok: \[\text{Odds}_{\text{kanker}|\text{merokok}} = \frac{P(\text{Kanker}|\text{Merokok})}{P(\text{Tidak Kanker}|\text{Merokok})} = \frac{0.60}{0.40} = \frac{60}{40} = 1.5\]
Odds kanker pada tidak merokok: \[\text{Odds}_{\text{kanker}|\text{tidak merokok}} = \frac{P(\text{Kanker}|\text{Tidak Merokok})}{P(\text{Tidak Kanker}|\text{Tidak Merokok})} = \frac{0.20}{0.80} = \frac{20}{80} = 0.25\]
Odds Ratio adalah perbandingan odds antara dua kelompok. Untuk tabel \(2 \times 2\) dengan notasi:
| Y=1 | Y=2 | |
|---|---|---|
| X=1 | \(a\) | \(b\) |
| X=2 | \(c\) | \(d\) |
\[OR = \frac{\text{Odds}_1}{\text{Odds}_2} = \frac{a/b}{c/d} = \frac{a \times d}{b \times c}\]
Interpretasi Odds Ratio: - OR = 1: Tidak ada asosiasi antara variabel - OR > 1: Asosiasi positif (faktor risiko) - OR < 1: Asosiasi negatif (faktor protektif)
Contoh perhitungan dari tabel 2.1: \[OR = \frac{60 \times 80}{40 \times 20} = \frac{4800}{800} = 6\]
Interpretasi: Odds terkena kanker paru pada perokok adalah 6 kali lebih besar dibandingkan dengan bukan perokok.
Relative Risk adalah perbandingan probabilitas kejadian antara dua kelompok.
\[RR = \frac{P(\text{Kejadian}|\text{Kelompok 1})}{P(\text{Kejadian}|\text{Kelompok 2})} = \frac{a/(a+b)}{c/(c+d)}\]
Interpretasi Relative Risk: - RR = 1: Tidak ada perbedaan risiko - RR > 1: Kelompok 1 memiliki risiko lebih tinggi - RR < 1: Kelompok 1 memiliki risiko lebih rendah
Contoh perhitungan dari tabel 2.1: \[RR = \frac{60/100}{20/100} = \frac{0.60}{0.20} = 3\]
Interpretasi: Perokok memiliki risiko 3 kali lebih besar terkena kanker paru dibandingkan bukan perokok.
Sebuah penelitian dilakukan terhadap 200 responden untuk mengetahui hubungan antara kebiasaan merokok dengan kejadian kanker paru. Data yang diperoleh sebagai berikut:
| Status Merokok | Kanker Paru | Tidak Kanker Paru | Total |
|---|---|---|---|
| Merokok | 60 | 40 | 100 |
| Tidak Merokok | 20 | 80 | 100 |
| Total | 80 | 120 | 200 |
Tabel kontingensi telah dibuat seperti di atas dengan: - \(a = 60\) (Merokok & Kanker) - \(b = 40\) (Merokok & Tidak Kanker) - \(c = 20\) (Tidak Merokok & Kanker) - \(d = 80\) (Tidak Merokok & Tidak Kanker)
Untuk kelompok perokok: \[P(\text{Kanker}|\text{Merokok}) = \frac{60}{100} = 0.60\] \[P(\text{Tidak Kanker}|\text{Merokok}) = \frac{40}{100} = 0.40\]
Untuk kelompok tidak merokok: \[P(\text{Kanker}|\text{Tidak Merokok}) = \frac{20}{100} = 0.20\] \[P(\text{Tidak Kanker}|\text{Tidak Merokok}) = \frac{80}{100} = 0.80\]
Odds kelompok perokok: \[\text{Odds}_{\text{perokok}} = \frac{P(\text{Kanker}|\text{Merokok})}{P(\text{Tidak Kanker}|\text{Merokok})} = \frac{0.60}{0.40} = \frac{60}{40} = 1.5\]
Odds kelompok tidak merokok: \[\text{Odds}_{\text{tidak merokok}} = \frac{P(\text{Kanker}|\text{Tidak Merokok})}{P(\text{Tidak Kanker}|\text{Tidak Merokok})} = \frac{0.20}{0.80} = \frac{20}{80} = 0.25\]
Menggunakan rumus perbandingan odds: \[OR = \frac{\text{Odds}_{\text{perokok}}}{\text{Odds}_{\text{tidak merokok}}} = \frac{1.5}{0.25} = 6\]
Menggunakan rumus langsung: \[OR = \frac{a \times d}{b \times c} = \frac{60 \times 80}{40 \times 20} = \frac{4800}{800} = 6\]
Interpretasi: Odds terkena kanker paru pada perokok adalah 6 kali lebih besar dibandingkan dengan bukan perokok.
# Membuat tabel kontingensi menggunakan matrix
data <- matrix(c(60, 40, 20, 80),
nrow = 2,
byrow = TRUE)
# Memberikan nama baris dan kolom
rownames(data) <- c("Merokok", "Tidak Merokok")
colnames(data) <- c("Kanker Paru", "Tidak Kanker Paru")
# Menampilkan tabel kontingensi
print("Tabel Kontingensi:")
## [1] "Tabel Kontingensi:"
print(data)
## Kanker Paru Tidak Kanker Paru
## Merokok 60 40
## Tidak Merokok 20 80
# Menghitung probabilitas bersyarat berdasarkan baris (status merokok)
prob_bersyarat <- prop.table(data, 1)
print("Probabilitas Bersyarat P(Kanker|Status Merokok):")
## [1] "Probabilitas Bersyarat P(Kanker|Status Merokok):"
print(round(prob_bersyarat, 4))
## Kanker Paru Tidak Kanker Paru
## Merokok 0.6 0.4
## Tidak Merokok 0.2 0.8
# Ekstrak nilai dari tabel
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
# Menghitung odds
odds_perokok <- a / b
odds_tidak <- c / d
# Menghitung odds ratio
odds_ratio <- (a * d) / (b * c)
# Menampilkan hasil
cat("Odds Perokok:", odds_perokok, "\n")
## Odds Perokok: 1.5
cat("Odds Tidak Merokok:", odds_tidak, "\n")
## Odds Tidak Merokok: 0.25
cat("Odds Ratio:", odds_ratio, "\n")
## Odds Ratio: 6
# Menghitung interval kepercayaan 95% untuk odds ratio
log_or <- log(odds_ratio)
se_log_or <- sqrt(1/a + 1/b + 1/c + 1/d)
ci_lower <- exp(log_or - 1.96 * se_log_or)
ci_upper <- exp(log_or + 1.96 * se_log_or)
cat("\nInterval Kepercayaan 95% untuk Odds Ratio:\n")
##
## Interval Kepercayaan 95% untuk Odds Ratio:
cat("Batas Bawah:", round(ci_lower, 3), "\n")
## Batas Bawah: 3.187
cat("Batas Atas:", round(ci_upper, 3), "\n")
## Batas Atas: 11.295
# Melakukan uji chi-square
chi_test <- chisq.test(data, correct = TRUE)
print(chi_test)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: data
## X-squared = 31.688, df = 1, p-value = 1.811e-08
# Menampilkan frekuensi harapan
print("Frekuensi Harapan (Expected Frequencies):")
## [1] "Frekuensi Harapan (Expected Frequencies):"
print(round(chi_test$expected, 2))
## Kanker Paru Tidak Kanker Paru
## Merokok 40 60
## Tidak Merokok 40 60
# Membuat data frame untuk visualisasi
df_plot <- data.frame(
Merokok = c("Merokok", "Merokok", "Tidak Merokok", "Tidak Merokok"),
Kanker = c("Kanker Paru", "Tidak Kanker", "Kanker Paru", "Tidak Kanker"),
Frekuensi = c(60, 40, 20, 80)
)
# Membuat barplot
ggplot(df_plot, aes(x = Merokok, y = Frekuensi, fill = Kanker)) +
geom_bar(stat = "identity", position = "dodge") +
geom_text(aes(label = Frekuensi),
position = position_dodge(width = 0.9),
vjust = -0.5) +
labs(title = "Distribusi Kanker Paru Berdasarkan Status Merokok",
x = "Status Merokok",
y = "Frekuensi",
fill = "Status Kanker") +
theme_minimal()
Berdasarkan analisis yang telah dilakukan:
Dalam konteks kesehatan masyarakat, hasil analisis ini memberikan bukti empiris bahwa:
Merokok sebagai Faktor Risiko: Merokok terbukti menjadi faktor risiko utama untuk kanker paru. Perokok memiliki risiko 3 kali lebih tinggi (berdasarkan RR) dan odds 6 kali lebih besar (berdasarkan OR) untuk terkena kanker paru.
Implikasi Klinis: Temuan ini mendukung perlunya skrining kanker paru yang lebih intensif pada populasi perokok.
Implikasi Kebijakan: Hasil ini memperkuat dasar bagi kebijakan pengendalian tembakau, seperti:
Edukasi Masyarakat: Penting untuk terus melakukan edukasi tentang bahaya merokok, mengingat besarnya risiko yang ditimbulkan.
Berdasarkan analisis data kategori yang telah dilakukan, dapat disimpulkan bahwa:
Terdapat hubungan yang signifikan antara kebiasaan merokok dengan kejadian kanker paru (p-value < 0.05).
Perokok memiliki odds 6 kali lebih besar untuk terkena kanker paru dibandingkan bukan perokok.
Risiko relatif perokok terkena kanker paru adalah 3 kali lebih tinggi dibandingkan bukan perokok.
Hasil ini konsisten dengan literatur epidemiologi yang menyatakan merokok sebagai faktor risiko utama kanker paru.