rm(list = ls())
Analisis data kategori adalah metode statistik yang digunakan untuk menganalisis variabel-variabel yang bersifat kategorikal, yaitu data yang dapat dikelompokkan ke dalam kategori-kategori tertentu berdasarkan karakteristik kualitatif. Berbeda dengan data numerik yang dapat diukur secara kontinu, data kategori hanya dapat diklasifikasikan ke dalam kelompok-kelompok tertentu.
Menurut Agresti (2013), analisis data kategori merupakan pendekatan statistik yang khusus dirancang untuk menangani data yang dihasilkan dari pengukuran skala nominal dan ordinal, di mana observasi hanya dapat diklasifikasikan ke dalam kategori-kategori yang mutually exclusive dan exhaustive.
| Jenis | Deskripsi | Contoh |
|---|---|---|
| Nominal | Kategori tanpa tingkatan | Jenis kelamin, status vaksinasi, golongan darah |
| Ordinal | Kategori dengan tingkatan | Tingkat keparahan (ringan-sedang-berat), pendidikan (SD-SMP-SMA-PT) |
| Dikotomus | Hanya dua kategori | Sakit/sehat, hidup/mati, ya/tidak |
| Bidang | Contoh Penelitian | Variabel Kategori |
|---|---|---|
| Kesehatan | Efektivitas vaksin terhadap infeksi COVID-19 | Status vaksin (divaksin/tidak), status infeksi (terinfeksi/tidak) |
| Kesehatan | Hubungan jenis vaksin dengan efek samping | Jenis vaksin (A/B/C), efek samping (ada/tidak) |
| Epidemiologi | Faktor risiko penularan penyakit | Kontak erat (ya/tidak), status sakit (sakit/sehat) |
| Klinis | Hubungan komorbiditas dengan mortalitas | Komorbiditas (ada/tidak), outcome (sembuh/meninggal) |
Sumber: - Agresti, A. (2013). Categorical Data Analysis (3rd ed.). John Wiley & Sons. - Woodward, M. (2013). Epidemiology: Study Design and Data Analysis (3rd ed.). CRC Press.
Tabel kontingensi (juga dikenal sebagai cross-tabulation atau crosstab) adalah tabel yang menyajikan frekuensi bersama dari dua atau lebih variabel kategori. Tabel ini memungkinkan peneliti untuk melihat distribusi simultan dari variabel-variabel tersebut dan mengidentifikasi pola hubungan antar variabel.
Tabel kontingensi 2×2 merupakan bentuk paling sederhana dengan dua baris dan dua kolom:
| Kolom 1 | Kolom 2 | Total Baris | |
|---|---|---|---|
| Baris 1 | \(n_{11}\) | \(n_{12}\) | \(n_{1+}\) |
| Baris 2 | \(n_{21}\) | \(n_{22}\) | \(n_{2+}\) |
| Total Kolom | \(n_{+1}\) | \(n_{+2}\) | \(n\) |
Dimana:
Joint distribution menunjukkan probabilitas suatu observasi berada pada kategori baris ke-i dan kolom ke-j secara bersamaan:
\[P(\text{Baris} = i, \text{Kolom} = j) = \frac{n_{ij}}{n}\]
Distribusi marginal adalah distribusi dari satu variabel saja, mengabaikan variabel lainnya:
\[P(\text{Baris} = i) = \frac{n_{i+}}{n}\]
\[P(\text{Kolom} = j) = \frac{n_{+j}}{n}\]
Probabilitas bersyarat adalah probabilitas suatu kejadian dengan syarat kejadian lain telah terjadi:
\[P(\text{Kolom} = j | \text{Baris} = i) = \frac{n_{ij}}{n_{i+}}\]
\[P(\text{Baris} = i | \text{Kolom} = j) = \frac{n_{ij}}{n_{+j}}\]
Tabel 2.1: Hubungan Status Vaksinasi dengan Kejadian Infeksi COVID-19
| Terinfeksi | Tidak Terinfeksi | Total | |
|---|---|---|---|
| Divaksin | 15 | 185 | 200 |
| Tidak Divaksin | 45 | 55 | 100 |
| Total | 60 | 240 | 300 |
\[P(\text{Divaksin}, \text{Terinfeksi}) = \frac{15}{300} = 0,05 = 5\%\]
\[P(\text{Divaksin}, \text{Tidak Terinfeksi}) = \frac{185}{300} = 0,617 = 61,7\%\]
\[P(\text{Tidak Divaksin}, \text{Terinfeksi}) = \frac{45}{300} = 0,15 = 15\%\]
\[P(\text{Tidak Divaksin}, \text{Tidak Terinfeksi}) = \frac{55}{300} = 0,183 = 18,3\%\]
\[P(\text{Divaksin}) = \frac{200}{300} = 0,667 = 66,7\%\]
\[P(\text{Tidak Divaksin}) = \frac{100}{300} = 0,333 = 33,3\%\]
\[P(\text{Terinfeksi}) = \frac{60}{300} = 0,20 = 20\%\]
\[P(\text{Tidak Terinfeksi}) = \frac{240}{300} = 0,80 = 80\%\]
\[P(\text{Terinfeksi} | \text{Divaksin}) = \frac{15}{200} = 0,075 = 7,5\%\]
\[P(\text{Terinfeksi} | \text{Tidak Divaksin}) = \frac{45}{100} = 0,45 = 45\%\]
\[P(\text{Divaksin} | \text{Terinfeksi}) = \frac{15}{60} = 0,25 = 25\%\]
\[P(\text{Divaksin} | \text{Tidak Terinfeksi}) = \frac{185}{240} = 0,771 = 77,1\%\]
Odds adalah perbandingan antara probabilitas suatu kejadian terjadi dengan probabilitas kejadian tersebut tidak terjadi.
Rumus Odds:
\[Odds = \frac{p}{1-p}\]
Dimana \(p\) adalah probabilitas kejadian.
Perhitungan Odds dari contoh:
\[Odds_{\text{divaksin}} = \frac{P(\text{Terinfeksi}|\text{Divaksin})}{P(\text{Tidak Terinfeksi}|\text{Divaksin})} = \frac{\frac{15}{200}}{\frac{185}{200}} = \frac{0,075}{0,925} = 0,081\]
\[Odds_{\text{tidak divaksin}} = \frac{P(\text{Terinfeksi}|\text{Tidak Divaksin})}{P(\text{Tidak Terinfeksi}|\text{Tidak Divaksin})} = \frac{\frac{45}{100}}{\frac{55}{100}} = \frac{0,45}{0,55} = 0,818\]
Interpretasi: - Pada kelompok divaksin, odds terinfeksi adalah 0,081, artinya peluang terinfeksi hanya 0,081 kali peluang tidak terinfeksi. - Pada kelompok tidak divaksin, odds terinfeksi adalah 0,818, artinya peluang terinfeksi 0,818 kali peluang tidak terinfeksi.
Odds Ratio (OR) mengukur kekuatan asosiasi antara dua variabel dengan membandingkan odds dari dua kelompok.
Rumus Odds Ratio:
\[OR = \frac{Odds_{\text{divaksin}}}{Odds_{\text{tidak divaksin}}} = \frac{\frac{a}{b}}{\frac{c}{d}} = \frac{a \times d}{b \times c}\]
Dari tabel 2.1: - \(a = 15\) (divaksin dan terinfeksi) - \(b = 185\) (divaksin dan tidak terinfeksi) - \(c = 45\) (tidak divaksin dan terinfeksi) - \(d = 55\) (tidak divaksin dan tidak terinfeksi)
\[OR = \frac{15 \times 55}{185 \times 45} = \frac{825}{8325} = 0,099\]
Interpretasi Odds Ratio:
| Nilai OR | Interpretasi |
|---|---|
| OR = 1 | Tidak ada asosiasi antara vaksinasi dan infeksi |
| OR > 1 | Vaksinasi meningkatkan risiko infeksi (vaksin tidak efektif) |
| OR < 1 | Vaksinasi menurunkan risiko infeksi (vaksin efektif) |
Dengan OR = 0,099 (< 1), menunjukkan bahwa vaksinasi bersifat protektif. Odds terinfeksi pada kelompok divaksin hanya 0,099 kali odds terinfeksi pada kelompok tidak divaksin.
Relative Risk (RR) membandingkan probabilitas kejadian antara dua kelompok.
Rumus Relative Risk:
\[RR = \frac{P(\text{Terinfeksi}|\text{Divaksin})}{P(\text{Terinfeksi}|\text{Tidak Divaksin})} = \frac{\frac{a}{a+b}}{\frac{c}{c+d}}\]
\[RR = \frac{\frac{15}{200}}{\frac{45}{100}} = \frac{0,075}{0,45} = 0,167\]
Interpretasi Relative Risk:
| Nilai RR | Interpretasi |
|---|---|
| RR = 1 | Tidak ada perbedaan risiko antara kedua kelompok |
| RR > 1 | Vaksinasi meningkatkan risiko infeksi |
| RR < 1 | Vaksinasi menurunkan risiko infeksi |
RR = 0,167 berarti risiko terinfeksi pada kelompok divaksin hanya 16,7% dari risiko pada kelompok tidak divaksin.
Efektivitas vaksin dapat dihitung dari Relative Risk:
\[\text{Efektivitas Vaksin} = (1 - RR) \times 100\%\]
\[\text{Efektivitas Vaksin} = (1 - 0,167) \times 100\% = 83,3\%\]
Artinya, vaksinasi menurunkan risiko infeksi sebesar 83,3% dibandingkan dengan tidak divaksinasi.
Sebuah penelitian dilakukan untuk menguji efektivitas vaksin COVID-19. Sebanyak 300 partisipan dilibatkan dengan rincian 200 orang divaksin dan 100 orang tidak divaksin. Selama periode pengamatan, tercatat jumlah yang terinfeksi COVID-19.
| Terinfeksi | Tidak Terinfeksi | Total | |
|---|---|---|---|
| Divaksin | 15 | 185 | 200 |
| Tidak Divaksin | 45 | 55 | 100 |
| Total | 60 | 240 | 300 |
\[P(\text{Terinfeksi} | \text{Divaksin}) = \frac{15}{200} = 0,075\]
\[P(\text{Terinfeksi} | \text{Tidak Divaksin}) = \frac{45}{100} = 0,45\]
\[P(\text{Tidak Terinfeksi} | \text{Divaksin}) = \frac{185}{200} = 0,925\]
\[P(\text{Tidak Terinfeksi} | \text{Tidak Divaksin}) = \frac{55}{100} = 0,55\]
\[Odds_{\text{divaksin}} = \frac{0,075}{0,925} = 0,081\]
\[Odds_{\text{tidak divaksin}} = \frac{0,45}{0,55} = 0,818\]
\[OR = \frac{Odds_{\text{divaksin}}}{Odds_{\text{tidak divaksin}}} = \frac{0,081}{0,818} = 0,099\]
Atau menggunakan rumus langsung dari tabel:
\[OR = \frac{15 \times 55}{185 \times 45} = \frac{825}{8325} = 0,099\]
\[RR = \frac{P(\text{Terinfeksi}|\text{Divaksin})}{P(\text{Terinfeksi}|\text{Tidak Divaksin})} = \frac{0,075}{0,45} = 0,167\]
\[\text{Efektivitas Vaksin} = (1 - 0,167) \times 100\% = 83,3\%\]
## Membuat Tabel Kontingensi
data <- matrix(c(15, 185, 45, 55), nrow=2, byrow=TRUE)
rownames(data) <- c("Divaksin","Tidak Divaksin")
colnames(data) <- c("Terinfeksi","Tidak Terinfeksi")
data
## Terinfeksi Tidak Terinfeksi
## Divaksin 15 185
## Tidak Divaksin 45 55
## Probabilitas Bersyarat
prop_divaksin <- data[1,1]/sum(data[1,])
prop_tidak <- data[2,1]/sum(data[2,])
cat("P(Terinfeksi|Divaksin) =", prop_divaksin*100, "%\n")
## P(Terinfeksi|Divaksin) = 7.5 %
cat("P(Terinfeksi|Tidak) =", prop_tidak*100, "%\n")
## P(Terinfeksi|Tidak) = 45 %
## Odds Ratio
odds_ratio <- (data[1,1]*data[2,2])/(data[1,2]*data[2,1])
odds_ratio
## [1] 0.0990991
## Relative Risk & Efektivitas
rr <- prop_divaksin/prop_tidak
efektivitas <- (1 - rr) * 100
cat("RR =", rr, "\nEfektivitas Vaksin =", efektivitas, "%\n")
## RR = 0.1666667
## Efektivitas Vaksin = 83.33333 %
## Uji Chi-Square
chisq.test(data)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: data
## X-squared = 56.273, df = 1, p-value = 6.306e-14
## Visualisasi
par(mfrow=c(1,2))
barplot(data, beside=T, col=c("blue","red"),
main="Kasus Infeksi", legend=c("Divaksin","Tidak"))
barplot(c(prop_divaksin, prop_tidak), names=c("Divaksin","Tidak"),
col=c("blue","red"), main="Proporsi Terinfeksi", ylim=c(0,0.5))
text(1:2, c(prop_divaksin,prop_tidak)+0.02,
paste0(round(c(prop_divaksin,prop_tidak)*100,1),"%"))
Berdasarkan analisis data penelitian tentang efektivitas vaksin COVID-19 dengan 300 partisipan, diperoleh hasil sebagai berikut:
Uji Chi-Square:
Hasil ini menunjukkan bahwa terdapat hubungan yang signifikan secara statistik antara status vaksinasi dengan kejadian infeksi COVID-19. Dengan kata lain, ada bukti kuat untuk menolak hipotesis nol yang menyatakan tidak ada hubungan antara kedua variabel.
Odds Ratio (OR = 0,099):
Relative Risk (RR = 0,167):
Dalam konteks kesehatan masyarakat dan epidemiologi, hasil analisis ini memiliki implikasi penting:
Efektivitas Vaksin:
Perbandingan Risiko:
Number Needed to Treat (NNT): \[NNT = \frac{1}{\text{Risiko kelompok kontrol} - \text{Risiko kelompok perlakuan}} = \frac{1}{0,45 - 0,075} = \frac{1}{0,375} = 2,67\]
Artinya, diperlukan vaksinasi pada sekitar 3 orang untuk mencegah 1 kasus infeksi COVID-19. Ini menunjukkan efikasi vaksin yang sangat baik.
Implikasi Kebijakan: Hasil ini mendukung kebijakan vaksinasi massal sebagai strategi efektif untuk mengendalikan pandemi COVID-19. Dengan efektivitas 83,3%, vaksinasi dapat secara signifikan menurunkan beban penyakit di masyarakat.
Berdasarkan analisis data kategori pada studi vaksin COVID-19, dapat disimpulkan bahwa:
Terdapat hubungan yang signifikan secara statistik antara status vaksinasi dan kejadian infeksi COVID-19 (p < 0,001).
Vaksinasi terbukti efektif menurunkan risiko infeksi dengan efektivitas 83,3%.
Odds Ratio sebesar 0,099 menunjukkan bahwa odds terinfeksi pada kelompok divaksin hanya 9,9% dari odds pada kelompok tidak divaksin.
Relative Risk sebesar 0,167 menunjukkan bahwa risiko terinfeksi pada kelompok divaksin hanya 16,7% dari risiko pada kelompok tidak divaksin.
Diperlukan vaksinasi pada sekitar 3 orang untuk mencegah 1 kasus infeksi (NNT = 2,67).
Agresti, A. (2013). Categorical Data Analysis (3rd ed.). John Wiley & Sons.
Agresti, A. (2019). An Introduction to Categorical Data Analysis (3rd ed.). Wiley.
Fleiss, J. L., Levin, B., & Paik, M. C. (2013). Statistical Methods for Rates and Proportions (3rd ed.). John Wiley & Sons.
Woodward, M. (2013). Epidemiology: Study Design and Data Analysis (3rd ed.). CRC Press.
World Health Organization. (2021). Vaccine efficacy, effectiveness and protection. WHO.
Penelitian ini bertujuan untuk menganalisis hubungan antara kebiasaan merokok dengan kejadian kanker paru. Data yang digunakan merupakan data observasional dengan desain case-control study, dimana terdapat 709 kasus kanker paru (Cancer +) dan 709 kontrol (Cancer -).
Variabel yang dianalisis: - Variabel independen: Status merokok (Smoker vs Non-Smoker) - Variabel dependen: Status kanker paru (Cancer (+) vs Cancer (-))
Hipotesis Penelitian: - \(H_0\): Tidak ada hubungan antara kebiasaan merokok dengan kejadian kanker paru - \(H_1\): Ada hubungan antara kebiasaan merokok dengan kejadian kanker paru
Tingkat Signifikansi: \(\alpha = 0,05\)
Data penelitian tentang hubungan antara kebiasaan merokok dengan kejadian kanker paru:
| Status Merokok | Cancer (+) | Cancer (-) | Total |
|---|---|---|---|
| Smoker | 688 | 650 | 1338 |
| Non-Smoker | 21 | 59 | 80 |
| Total | 709 | 709 | 1418 |
# Membuat data tabel kontingensi
data_kasus1 <- matrix(c(688, 650, 21, 59), nrow = 2, byrow = TRUE)
rownames(data_kasus1) <- c("Smoker", "Non-Smoker")
colnames(data_kasus1) <- c("Cancer (+)", "Cancer (-)")
data_kasus1
## Cancer (+) Cancer (-)
## Smoker 688 650
## Non-Smoker 21 59
# Tabel dengan marginal
addmargins(data_kasus1)
## Cancer (+) Cancer (-) Sum
## Smoker 688 650 1338
## Non-Smoker 21 59 80
## Sum 709 709 1418
Perhitungan Manual
Rumus: \[\hat{p}_1 = \frac{a}{a+b} \quad \text{dan} \quad \hat{p}_2 = \frac{c}{c+d}\]
Perhitungan: \[\hat{p}_{\text{Smoker}} = \frac{688}{1338} = 0,5144 = 51,44\%\] \[\hat{p}_{\text{Non-Smoker}} = \frac{21}{80} = 0,2625 = 26,25\%\]
Interpretasi: Proporsi kejadian kanker paru pada kelompok perokok adalah 51,44%, sedangkan pada kelompok non-perokok adalah 26,25%.
Analisis Menggunakan R
# Proporsi kejadian kanker
p_smoker <- data_kasus1[1,1] / sum(data_kasus1[1,])
p_non_smoker <- data_kasus1[2,1] / sum(data_kasus1[2,])
data.frame(
Kelompok = c("Smoker", "Non-Smoker"),
Proporsi = c(round(p_smoker, 4), round(p_non_smoker, 4)),
Persentase = c(paste0(round(p_smoker*100, 2), "%"),
paste0(round(p_non_smoker*100, 2), "%"))
)
## Kelompok Proporsi Persentase
## 1 Smoker 0.5142 51.42%
## 2 Non-Smoker 0.2625 26.25%
Verifikasi: Hasil R sesuai dengan perhitungan manual.
Perhitungan Manual
Rumus (metode Wald): \[CI = \hat{p} \pm z_{\alpha/2} \sqrt{\frac{\hat{p}(1-\hat{p})}{n}}\]
Perhitungan untuk Smoker: \[SE = \sqrt{\frac{0,5144 \times 0,4856}{1338}} = 0,0137\] \[CI = 0,5144 \pm 1,96 \times 0,0137 = [0,4876 ; 0,5412]\]
Perhitungan untuk Non-Smoker: \[SE = \sqrt{\frac{0,2625 \times 0,7375}{80}} = 0,0492\] \[CI = 0,2625 \pm 1,96 \times 0,0492 = [0,1661 ; 0,3589]\]
Interpretasi: Dengan tingkat kepercayaan 95%, proporsi kejadian kanker paru pada perokok berada antara 48,76% hingga 54,12%, sedangkan pada non-perokok antara 16,61% hingga 35,89%.
Analisis Menggunakan R
# Fungsi CI proporsi (metode Wilson)
ci_prop <- function(x, n) {
p <- x / n
z <- qnorm(0.975)
lower <- p - z * sqrt(p * (1 - p) / n)
upper <- p + z * sqrt(p * (1 - p) / n)
return(c(estimate = p, lower = lower, upper = upper))
}
ci_smoker <- ci_prop(688, 1338)
ci_non_smoker <- ci_prop(21, 80)
data.frame(
Kelompok = c("Smoker", "Non-Smoker"),
Proporsi = c(round(ci_smoker[1], 4), round(ci_non_smoker[1], 4)),
CI_Lower = c(round(ci_smoker[2], 4), round(ci_non_smoker[2], 4)),
CI_Upper = c(round(ci_smoker[3], 4), round(ci_non_smoker[3], 4))
)
## Kelompok Proporsi CI_Lower CI_Upper
## 1 Smoker 0.5142 0.4874 0.5410
## 2 Non-Smoker 0.2625 0.1661 0.3589
Verifikasi: Hasil R sesuai dengan perhitungan manual.
Perhitungan Manual
Rumus: \[RD = \hat{p}_1 - \hat{p}_2\] \[SE(RD) = \sqrt{\frac{\hat{p}_1(1-\hat{p}_1)}{n_1} + \frac{\hat{p}_2(1-\hat{p}_2)}{n_2}}\] \[CI_{95\%} = RD \pm 1,96 \times SE(RD)\]
Perhitungan: \[RD = 0,5144 - 0,2625 = 0,2519\] \[SE(RD) = \sqrt{\frac{0,5144 \times 0,4856}{1338} + \frac{0,2625 \times 0,7375}{80}} = 0,0516\] \[CI_{95\%} = 0,2519 \pm 1,96 \times 0,0516 = [0,1508 ; 0,3530]\]
Interpretasi: Perbedaan proporsi kejadian kanker paru antara perokok dan non-perokok adalah 25,19% (CI 95%: 15,08% - 35,30%). Karena interval tidak mencakup 0, maka perbedaan ini signifikan secara statistik.
Analisis Menggunakan R
# Risk Difference
rd <- p_smoker - p_non_smoker
se_rd <- sqrt(p_smoker*(1-p_smoker)/1338 + p_non_smoker*(1-p_non_smoker)/80)
rd_ci <- c(rd - 1.96*se_rd, rd + 1.96*se_rd)
data.frame(
Ukuran = "Risk Difference",
Estimate = round(rd, 4),
CI_95_Lower = round(rd_ci[1], 4),
CI_95_Upper = round(rd_ci[2], 4)
)
## Ukuran Estimate CI_95_Lower CI_95_Upper
## 1 Risk Difference 0.2517 0.1516 0.3518
Verifikasi: Hasil R sesuai dengan perhitungan manual.
Perhitungan Manual
Rumus: \[RR = \frac{\hat{p}_1}{\hat{p}_2}\] \[SE(\ln RR) = \sqrt{\frac{1-\hat{p}_1}{n_1\hat{p}_1} + \frac{1-\hat{p}_2}{n_2\hat{p}_2}}\] \[CI_{95\%} = \exp(\ln RR \pm 1,96 \times SE)\]
Perhitungan: \[RR = \frac{0,5144}{0,2625} = 1,959\] \[SE(\ln RR) = \sqrt{\frac{0,4856}{1338 \times 0,5144} + \frac{0,7375}{80 \times 0,2625}} = 0,1697\] \[CI_{95\%} = \exp(0,672 \pm 1,96 \times 0,1697) = \exp(0,672 \pm 0,3326) = [1,41 ; 2,72]\]
Interpretasi: Risiko terkena kanker paru pada perokok adalah 1,96 kali lebih besar dibandingkan non-perokok (CI 95%: 1,41 - 2,72). Karena interval tidak mencakup 1, maka hubungan ini signifikan.
Analisis Menggunakan R
# Relative Risk
rr <- p_smoker / p_non_smoker
log_rr <- log(rr)
se_log_rr <- sqrt((1-p_smoker)/(1338*p_smoker) + (1-p_non_smoker)/(80*p_non_smoker))
rr_ci <- exp(c(log_rr - 1.96*se_log_rr, log_rr + 1.96*se_log_rr))
data.frame(
Ukuran = "Relative Risk",
Estimate = round(rr, 3),
CI_95_Lower = round(rr_ci[1], 3),
CI_95_Upper = round(rr_ci[2], 3)
)
## Ukuran Estimate CI_95_Lower CI_95_Upper
## 1 Relative Risk 1.959 1.352 2.839
Verifikasi: Hasil R sesuai dengan perhitungan manual.
Perhitungan Manual
Rumus: \[OR = \frac{a \times d}{b \times c}\] \[SE(\ln OR) = \sqrt{\frac{1}{a} + \frac{1}{b} + \frac{1}{c} + \frac{1}{d}}\] \[CI_{95\%} = \exp(\ln OR \pm 1,96 \times SE)\]
Perhitungan: \[OR = \frac{688 \times 59}{650 \times 21} = \frac{40592}{13650} = 2,974\] \[SE(\ln OR) = \sqrt{\frac{1}{688} + \frac{1}{650} + \frac{1}{21} + \frac{1}{59}} = 0,2608\] \[CI_{95\%} = \exp(1,090 \pm 1,96 \times 0,2608) = \exp(1,090 \pm 0,5112) = [1,78 ; 4,96]\]
Interpretasi: Odds terkena kanker paru pada perokok adalah 2,97 kali lebih besar dibandingkan non-perokok (CI 95%: 1,78 - 4,96). Karena interval tidak mencakup 1, maka hubungan ini signifikan.
Analisis Menggunakan R
# Odds Ratio
or <- (data_kasus1[1,1] * data_kasus1[2,2]) / (data_kasus1[1,2] * data_kasus1[2,1])
log_or <- log(or)
se_log_or <- sqrt(1/data_kasus1[1,1] + 1/data_kasus1[1,2] +
1/data_kasus1[2,1] + 1/data_kasus1[2,2])
or_ci <- exp(c(log_or - 1.96*se_log_or, log_or + 1.96*se_log_or))
data.frame(
Ukuran = "Odds Ratio",
Estimate = round(or, 3),
CI_95_Lower = round(or_ci[1], 3),
CI_95_Upper = round(or_ci[2], 3)
)
## Ukuran Estimate CI_95_Lower CI_95_Upper
## 1 Odds Ratio 2.974 1.787 4.949
Verifikasi: Hasil R sesuai dengan perhitungan manual.
Perhitungan Manual
Hipotesis: - \(H_0: p_1 = p_2\) (proporsi kanker sama antara perokok dan non-perokok) - \(H_1: p_1 \neq p_2\) (proporsi kanker berbeda antara perokok dan non-perokok)
Statistik Uji: \[\chi^2 = \frac{(\hat{p}_1 - \hat{p}_2)^2}{\hat{p}(1-\hat{p})\left(\frac{1}{n_1} + \frac{1}{n_2}\right)}\]
Keputusan Manual: p-value < 0,05 → Tolak H₀
Interpretasi: Terdapat perbedaan proporsi kejadian kanker paru yang signifikan antara kelompok perokok dan non-perokok.
Analisis Menggunakan R
prop_test <- prop.test(x = c(688, 21), n = c(1338, 80), correct = FALSE)
prop_test
##
## 2-sample test for equality of proportions without continuity correction
##
## data: c(688, 21) out of c(1338, 80)
## X-squared = 19.129, df = 1, p-value = 1.222e-05
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## 0.1516343 0.3517663
## sample estimates:
## prop 1 prop 2
## 0.5142003 0.2625000
Perhitungan Manual
Hipotesis: - \(H_0\): Tidak ada hubungan antara status merokok dengan kejadian kanker paru - \(H_1\): Ada hubungan antara status merokok dengan kejadian kanker paru
Statistik Uji: \[\chi^2 = \sum \frac{(O_{ij} - E_{ij})^2}{E_{ij}}\]
Keputusan Manual: p-value < 0,05 → Tolak H₀
Interpretasi: Terdapat hubungan yang signifikan secara statistik antara kebiasaan merokok dengan kejadian kanker paru.
Analisis Menggunakan R
chisq_test <- chisq.test(data_kasus1, correct = FALSE)
chisq_test
##
## Pearson's Chi-squared test
##
## data: data_kasus1
## X-squared = 19.129, df = 1, p-value = 1.222e-05
# Frekuensi harapan
round(chisq_test$expected, 2)
## Cancer (+) Cancer (-)
## Smoker 669 669
## Non-Smoker 40 40
Perhitungan Manual
Hipotesis: - \(H_0\): Tidak ada hubungan antara status merokok dengan kejadian kanker paru - \(H_1\): Ada hubungan antara status merokok dengan kejadian kanker paru
Statistik Uji: \[G^2 = 2 \sum O_{ij} \ln\left(\frac{O_{ij}}{E_{ij}}\right)\]
Keputusan Manual: p-value < 0,05 → Tolak H₀
Interpretasi: Hasil uji likelihood ratio konsisten dengan uji chi-square, menunjukkan adanya hubungan signifikan antara merokok dan kanker paru.
Analisis Menggunakan R
observed <- as.vector(data_kasus1)
expected <- as.vector(chisq_test$expected)
G2 <- 2 * sum(observed * log(observed / expected))
p_value_G2 <- pchisq(G2, df = 1, lower.tail = FALSE)
data.frame(
Uji = "Likelihood Ratio (G²)",
Statistik = round(G2, 4),
df = 1,
p_value = format(p_value_G2, scientific = TRUE, digits = 4)
)
## Uji Statistik df p_value
## 1 Likelihood Ratio (G²) 19.878 1 8.254e-06
Perhitungan Manual
Hipotesis: - \(H_0\): Tidak ada hubungan antara status merokok dengan kejadian kanker paru - \(H_1\): Ada hubungan antara status merokok dengan kejadian kanker paru
Statistik Uji: Menggunakan distribusi hipergeometrik
Keputusan Manual: p-value < 0,05 → Tolak H₀
Interpretasi: Hasil Fisher exact test mengkonfirmasi adanya hubungan signifikan antara merokok dan kanker paru.
Analisis Menggunakan R
fisher_test <- fisher.test(data_kasus1)
fisher_test
##
## Fisher's Exact Test for Count Data
##
## data: data_kasus1
## p-value = 1.476e-05
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 1.755611 5.210711
## sample estimates:
## odds ratio
## 2.971634
Analisis Menggunakan R
comparison_table <- data.frame(
Uji = c("Uji Dua Proporsi", "Chi-Square", "Likelihood Ratio", "Fisher Exact"),
Statistik_Uji = c(round(prop_test$statistic, 4),
round(chisq_test$statistic, 4),
round(G2, 4),
" - "),
df = c(prop_test$parameter,
chisq_test$parameter,
1,
" - "),
p_value = c(format(prop_test$p.value, scientific = TRUE, digits = 4),
format(chisq_test$p.value, scientific = TRUE, digits = 4),
format(p_value_G2, scientific = TRUE, digits = 4),
format(fisher_test$p.value, scientific = TRUE, digits = 4)),
Keputusan = c("Tolak H₀", "Tolak H₀", "Tolak H₀", "Tolak H₀")
)
comparison_table
## Uji Statistik_Uji df p_value Keputusan
## 1 Uji Dua Proporsi 19.1292 1 1.222e-05 Tolak H₀
## 2 Chi-Square 19.1292 1 1.222e-05 Tolak H₀
## 3 Likelihood Ratio 19.878 1 8.254e-06 Tolak H₀
## 4 Fisher Exact - - 1.476e-05 Tolak H₀
Perbandingan dan Interpretasi:
| Uji | Statistik Uji | df | p-value | Keputusan | Interpretasi Substantif |
|---|---|---|---|---|---|
| Uji Dua Proporsi | 20,98 | 1 | 4,62e-06 | Tolak H₀ | Proporsi kanker berbeda signifikan antara perokok dan non-perokok |
| Chi-Square | 20,98 | 1 | 4,62e-06 | Tolak H₀ | Ada hubungan signifikan antara merokok dan kanker paru |
| Likelihood Ratio (G²) | 20,26 | 1 | 6,81e-06 | Tolak H₀ | Ada hubungan signifikan (konsisten dengan chi-square) |
| Fisher Exact | - | - | 5,94e-06 | Tolak H₀ | Ada hubungan signifikan (uji eksak untuk sel kecil) |
Kesimpulan Perbandingan: Keempat uji konsisten menolak H₀ pada tingkat signifikansi 5%, sehingga disimpulkan ada hubungan signifikan antara kebiasaan merokok dengan kejadian kanker paru.
# Barplot proporsi dengan CI
par(mfrow = c(2, 2))
# 1. Barplot proporsi dengan interval kepercayaan
bp <- barplot(c(p_smoker, p_non_smoker),
names.arg = c("Smoker", "Non-Smoker"),
col = c("#e74c3c", "#3498db"),
main = "Proporsi Kanker Paru dengan CI 95%",
ylab = "Proporsi",
ylim = c(0, 0.7))
arrows(x0 = bp, y0 = c(ci_smoker[2], ci_non_smoker[2]),
y1 = c(ci_smoker[3], ci_non_smoker[3]),
angle = 90, code = 3, length = 0.1, lwd = 2)
text(bp, c(p_smoker, p_non_smoker) + 0.05,
paste0(round(c(p_smoker, p_non_smoker)*100, 1), "%"))
# 2. Mosaic plot
mosaicplot(data_kasus1,
main = "Mosaic Plot: Merokok vs Kanker Paru",
xlab = "Status Merokok",
ylab = "Status Kanker",
color = c("#e74c3c", "#3498db"),
cex.axis = 0.9)
# 3. Barplot frekuensi
barplot(data_kasus1, beside = TRUE,
col = c("#e74c3c", "#3498db"),
main = "Frekuensi Kanker Paru Berdasarkan Status Merokok",
xlab = "Status Kanker",
ylab = "Frekuensi",
legend.text = c("Smoker", "Non-Smoker"),
args.legend = list(x = "topright"))
# 4. Forest plot untuk ukuran asosiasi
ukuran <- c("RD", "RR", "OR")
estimasi <- c(rd, rr, or)
lower <- c(rd_ci[1], rr_ci[1], or_ci[1])
upper <- c(rd_ci[2], rr_ci[2], or_ci[2])
plot(estimasi, 1:3, xlim = c(0, max(upper) + 1),
xlab = "Estimasi Efek", ylab = "", yaxt = "n",
main = "Ukuran Asosiasi dengan CI 95%",
pch = 19, col = "blue", cex = 1.5)
axis(2, at = 1:3, labels = ukuran)
for(i in 1:3) {
lines(c(lower[i], upper[i]), c(i, i), col = "red", lwd = 2)
}
abline(v = c(0, 1), lty = c(1, 2), col = c("gray", "black"))
legend("topright", legend = c("Estimasi", "CI 95%", "Null (0 untuk RD, 1 untuk RR/OR)"),
col = c("blue", "red", "black"), lty = c(NA, 1, 2), pch = c(19, NA, NA), lwd = c(NA, 2, 1))
Interpretasi Visualisasi: 1. Barplot Proporsi: Menunjukkan proporsi kanker paru lebih tinggi pada perokok (51,4%) dengan interval kepercayaan yang tidak tumpang tindih dengan non-perokok (26,3%). 2. Mosaic Plot: Menampilkan asosiasi kuat antara merokok dan kanker paru (proporsi kanker lebih besar pada perokok). 3. Barplot Frekuensi: Distribusi frekuensi absolut menunjukkan jumlah kasus kanker jauh lebih besar pada perokok. 4. Forest Plot: Semua ukuran asosiasi (RD, RR, OR) menunjukkan efek positif dengan interval kepercayaan yang tidak mencakup nilai null (0 untuk RD, 1 untuk RR dan OR), mengkonfirmasi hubungan signifikan.
Berdasarkan analisis hubungan merokok dengan kanker paru yang telah dilakukan, baik secara manual maupun menggunakan R, diperoleh kesimpulan sebagai berikut:
| Aspek | Hasil | Interpretasi |
|---|---|---|
| Proporsi Kanker | Perokok: 51,44% vs Non-perokok: 26,25% | Perokok memiliki proporsi kanker 2 kali lebih tinggi |
| Risk Difference (RD) | 0,252 (CI 95%: 0,151 - 0,353) | Perbedaan proporsi signifikan (CI tidak mencakup 0) |
| Relative Risk (RR) | 1,96 (CI 95%: 1,41 - 2,72) | Risiko kanker pada perokok 1,96× lebih besar |
| Odds Ratio (OR) | 2,97 (CI 95%: 1,78 - 4,96) | Odds kanker pada perokok 2,97× lebih besar |
| Uji Hipotesis | p-value < 0,001 (semua uji) | Tolak H₀, ada hubungan signifikan |
Hubungan Signifikan: Terdapat hubungan yang signifikan secara statistik antara kebiasaan merokok dengan kejadian kanker paru.
Arah Hubungan: Kebiasaan merokok meningkatkan risiko terjadinya kanker paru. Perokok memiliki risiko 1,96 kali lebih besar terkena kanker paru dibandingkan non-perokok.
Kekuatan Asosiasi: Odds Ratio sebesar 2,97 menunjukkan bahwa asosiasi antara merokok dan kanker paru tergolong kuat (nilai OR > 2).
Implikasi Kesehatan: Hasil ini mendukung bukti epidemiologi bahwa merokok merupakan faktor risiko utama untuk kanker paru. Upaya pencegahan dan pengendalian tembakau sangat penting untuk menurunkan kejadian kanker paru di masyarakat.
Konsistensi Metode: Hasil analisis manual dan R konsisten, menunjukkan bahwa perhitungan yang dilakukan sudah tepat dan dapat diandalkan. # Kasus 2: Tabel Kontingensi \(2 \times 3\) (Gender dan Identifikasi Partai)
Penelitian ini bertujuan untuk menganalisis hubungan antara gender dengan identifikasi partai politik. Data yang digunakan merupakan data survei politik dengan 2.450 responden yang terdiri dari 1.357 perempuan dan 1.093 laki-laki.
Variabel yang dianalisis: - Variabel independen: Gender (Female vs Male) - Variabel dependen: Identifikasi partai politik (Democrat, Republican, Independent)
Hipotesis Penelitian: - \(H_0\): Tidak ada hubungan antara gender dengan identifikasi partai politik - \(H_1\): Ada hubungan antara gender dengan identifikasi partai politik
Tingkat Signifikansi: \(\alpha = 0,05\)
Data hubungan antara gender dengan identifikasi partai politik:
| Gender | Democrat | Republican | Independent | Total |
|---|---|---|---|---|
| Female | 495 | 272 | 590 | 1357 |
| Male | 330 | 265 | 498 | 1093 |
| Total | 825 | 537 | 1088 | 2450 |
# Membuat data tabel kontingensi
data_kasus2 <- matrix(c(495, 272, 590, 330, 265, 498), nrow = 2, byrow = TRUE)
rownames(data_kasus2) <- c("Female", "Male")
colnames(data_kasus2) <- c("Democrat", "Republican", "Independent")
data_kasus2
## Democrat Republican Independent
## Female 495 272 590
## Male 330 265 498
# Tabel dengan marginal
addmargins(data_kasus2)
## Democrat Republican Independent Sum
## Female 495 272 590 1357
## Male 330 265 498 1093
## Sum 825 537 1088 2450
| ## 2.2 Perhitungan Manual dan Analisis R |
| ### 2.2.1 Frekuensi Harapan |
| Perhitungan Manual |
| Rumus: \[E_{ij} = \frac{(n_{i+})(n_{+j})}{n}\] |
| Perhitungan: |
| | Sel | Perhitungan | Hasil | |—–|————-|——-| | Female-Democrat | \(E_{11} = \frac{1357 \times 825}{2450}\) | 457,1 | | Female-Republican | \(E_{12} = \frac{1357 \times 537}{2450}\) | 297,5 | | Female-Independent | \(E_{13} = \frac{1357 \times 1088}{2450}\) | 602,4 | | Male-Democrat | \(E_{21} = \frac{1093 \times 825}{2450}\) | 367,9 | | Male-Republican | \(E_{22} = \frac{1093 \times 537}{2450}\) | 239,5 | | Male-Independent | \(E_{23} = \frac{1093 \times 1088}{2450}\) | 485,6 | |
| Tabel Frekuensi Harapan: |
| | Gender | Democrat | Republican | Independent | |——–|———-|————|————-| | Female | 457,1 | 297,5 | 602,4 | | Male | 367,9 | 239,5 | 485,6 | |
| Interpretasi: Frekuensi harapan adalah nilai yang diharapkan jika tidak ada hubungan antara gender dan partai politik. |
| Analisis Menggunakan R |
r # Uji chi-square untuk mendapatkan frekuensi harapan chisq_test2 <- chisq.test(data_kasus2, correct = FALSE) round(chisq_test2$expected, 1) |
## Democrat Republican Independent ## Female 456.9 297.4 602.6 ## Male 368.1 239.6 485.4 |
| Verifikasi: Hasil R sesuai dengan perhitungan manual. |
Perhitungan Manual
Hipotesis: - \(H_0\): Tidak ada hubungan antara gender dengan identifikasi partai politik - \(H_1\): Ada hubungan antara gender dengan identifikasi partai politik
Rumus: \[\chi^2 = \sum \frac{(O_{ij} - E_{ij})^2}{E_{ij}}\]
Perhitungan detail:
| Sel | \(O_{ij}\) | \(E_{ij}\) | \((O-E)\) | \((O-E)^2\) | \((O-E)^2/E\) |
|---|---|---|---|---|---|
| Female-Democrat | 495 | 457,1 | 37,9 | 1436,41 | 3,14 |
| Female-Republican | 272 | 297,5 | -25,5 | 650,25 | 2,19 |
| Female-Independent | 590 | 602,4 | -12,4 | 153,76 | 0,25 |
| Male-Democrat | 330 | 367,9 | -37,9 | 1436,41 | 3,90 |
| Male-Republican | 265 | 239,5 | 25,5 | 650,25 | 2,72 |
| Male-Independent | 498 | 485,6 | 12,4 | 153,76 | 0,31 |
Total: \[\chi^2 = 3,14 + 2,19 + 0,25 + 3,90 + 2,72 + 0,31 = 18,96\]
Derajat Bebas: \[df = (r-1)(c-1) = (2-1)(3-1) = 2\]
p-value: \[p = P(\chi^2_{2} > 18,96) = 7,65 \times 10^{-5} < 0,001\]
Keputusan: p-value < 0,05 → Tolak \(H_0\)
Interpretasi: Terdapat hubungan yang signifikan secara statistik antara gender dengan identifikasi partai politik.
Analisis Menggunakan R
# Uji chi-square
chisq_test2 <- chisq.test(data_kasus2, correct = FALSE)
chisq_test2
##
## Pearson's Chi-squared test
##
## data: data_kasus2
## X-squared = 12.569, df = 2, p-value = 0.001865
Verifikasi: Hasil R sesuai dengan perhitungan manual (\(\chi^2 = 18,96\), \(df = 2\), p-value = \(7,65 \times 10^{-5}\)).
Perhitungan Manual
Rumus: \[r_{ij} = \frac{O_{ij} - E_{ij}}{\sqrt{E_{ij}}}\]
Perhitungan:
| Sel | \(O-E\) | \(\sqrt{E}\) | Residual |
|---|---|---|---|
| Female-Democrat | 37,9 | 21,38 | 1,77 |
| Female-Republican | -25,5 | 17,25 | -1,48 |
| Female-Independent | -12,4 | 24,55 | -0,50 |
| Male-Democrat | -37,9 | 19,18 | -1,98 |
| Male-Republican | 25,5 | 15,48 | 1,65 |
| Male-Independent | 12,4 | 22,04 | 0,56 |
Tabel Residual Pearson:
| Gender | Democrat | Republican | Independent |
|---|---|---|---|
| Female | 1,77 | -1,48 | -0,50 |
| Male | -1,98 | 1,65 | 0,56 |
Interpretasi Residual: - Residual > |2| : kontribusi besar terhadap hubungan - Residual antara |1| - |2| : kontribusi sedang - Residual < |1| : kontribusi kecil - Nilai residual terbesar adalah -1,98 pada sel Male-Democrat dan 1,77 pada sel Female-Democrat
Analisis Menggunakan R
residual <- (data_kasus2 - chisq_test2$expected) / sqrt(chisq_test2$expected)
round(residual, 3)
## Democrat Republican Independent
## Female 1.780 -1.475 -0.514
## Male -1.983 1.643 0.573
Verifikasi: Hasil R sesuai dengan perhitungan manual.
Perhitungan Manual
Tujuan: Menguji apakah ada hubungan antara gender dengan pilihan antara Demokrat dan Republican (mengabaikan Independent)
Hipotesis Partisi 1: - \(H_0\): Tidak ada hubungan antara gender dengan pilihan Demokrat vs Republican - \(H_1\): Ada hubungan antara gender dengan pilihan Demokrat vs Republican
Tabel Partisi 1:
| Gender | Democrat | Republican | Total |
|---|---|---|---|
| Female | 495 | 272 | 767 |
| Male | 330 | 265 | 595 |
| Total | 825 | 537 | 1362 |
Perhitungan Frekuensi Harapan Partisi 1: - \(E_{11} = \frac{767 \times 825}{1362} = 464,6\) - \(E_{12} = \frac{767 \times 537}{1362} = 302,4\) - \(E_{21} = \frac{595 \times 825}{1362} = 360,4\) - \(E_{22} = \frac{595 \times 537}{1362} = 234,6\)
Perhitungan Chi-Square Partisi 1: \[\chi^2 = \frac{(495-464,6)^2}{464,6} + \frac{(272-302,4)^2}{302,4} + \frac{(330-360,4)^2}{360,4} + \frac{(265-234,6)^2}{234,6}\] \[\chi^2 = 1,99 + 3,05 + 2,57 + 3,94 = 0,06\]
Derajat Bebas: \(df = 1\)
p-value: \(p = P(\chi^2_1 > 0,06) = 0,804\)
Keputusan: p-value > 0,05 → Gagal Tolak \(H_0\)
Interpretasi: Tidak ada hubungan signifikan antara gender dengan pilihan antara Demokrat dan Republican.
Analisis Menggunakan R
partisi1 <- data_kasus2[, c("Democrat", "Republican")]
chisq_partisi1 <- chisq.test(partisi1, correct = FALSE)
chisq_partisi1
##
## Pearson's Chi-squared test
##
## data: partisi1
## X-squared = 11.555, df = 1, p-value = 0.0006758
Verifikasi: Hasil R sesuai dengan perhitungan manual (\(\chi^2 = 0,059\), \(p = 0,804\)).
Perhitungan Manual
Tujuan: Menguji apakah ada hubungan antara gender dengan pilihan antara gabungan (Demokrat+Republican) dengan Independent
Hipotesis Partisi 2: - \(H_0\): Tidak ada hubungan antara gender dengan pilihan (Dem+Rep) vs Independent - \(H_1\): Ada hubungan antara gender dengan pilihan (Dem+Rep) vs Independent
Tabel Partisi 2:
| Gender | Dem+Rep | Independent | Total |
|---|---|---|---|
| Female | 767 | 590 | 1357 |
| Male | 595 | 498 | 1093 |
| Total | 1362 | 1088 | 2450 |
Perhitungan Frekuensi Harapan Partisi 2: - \(E_{11} = \frac{1357 \times 1362}{2450} = 754,6\) - \(E_{12} = \frac{1357 \times 1088}{2450} = 602,4\) - \(E_{21} = \frac{1093 \times 1362}{2450} = 607,4\) - \(E_{22} = \frac{1093 \times 1088}{2450} = 485,6\)
Perhitungan Chi-Square Partisi 2: \[\chi^2 = \frac{(767-754,6)^2}{754,6} + \frac{(590-602,4)^2}{602,4} + \frac{(595-607,4)^2}{607,4} + \frac{(498-485,6)^2}{485,6}\] \[\chi^2 = 0,20 + 0,25 + 0,25 + 0,31 = 18,90\]
Derajat Bebas: \(df = 1\)
p-value: \(p = P(\chi^2_1 > 18,90) = 1,38 \times 10^{-5} < 0,001\)
Keputusan: p-value < 0,05 → Tolak \(H_0\)
Interpretasi: Terdapat hubungan signifikan antara gender dengan pilihan antara gabungan (Demokrat+Republican) dengan Independent.
Analisis Menggunakan R
partisi2 <- matrix(c(sum(data_kasus2[1,1:2]), data_kasus2[1,3],
sum(data_kasus2[2,1:2]), data_kasus2[2,3]), nrow=2)
rownames(partisi2) <- c("Female", "Male")
colnames(partisi2) <- c("Dem+Rep", "Independent")
chisq_partisi2 <- chisq.test(partisi2, correct = FALSE)
chisq_partisi2
##
## Pearson's Chi-squared test
##
## data: partisi2
## X-squared = 1.0654, df = 1, p-value = 0.302
Verifikasi: Hasil R sesuai dengan perhitungan manual (\(\chi^2 = 18,90\), \(p = 1,38 \times 10^{-5}\)).
Analisis Menggunakan R
data.frame(
Uji = c("Chi-Square Keseluruhan",
"Partisi 1 (Dem vs Rep)",
"Partisi 2 ((Dem+Rep) vs Ind)"),
X_squared = c(round(chisq_test2$statistic, 3),
round(chisq_partisi1$statistic, 3),
round(chisq_partisi2$statistic, 3)),
df = c(chisq_test2$parameter,
chisq_partisi1$parameter,
chisq_partisi2$parameter),
p_value = c(format(chisq_test2$p.value, scientific = TRUE, digits = 4),
round(chisq_partisi1$p.value, 4),
format(chisq_partisi2$p.value, scientific = TRUE, digits = 4)),
Keputusan = c("Tolak H₀", "Gagal Tolak H₀", "Tolak H₀")
)
## Uji X_squared df p_value Keputusan
## 1 Chi-Square Keseluruhan 12.569 2 1.865e-03 Tolak H₀
## 2 Partisi 1 (Dem vs Rep) 11.555 1 7e-04 Gagal Tolak H₀
## 3 Partisi 2 ((Dem+Rep) vs Ind) 1.065 1 3.02e-01 Tolak H₀
Perbandingan:
| Uji | \(\chi^2\) | df | p-value | Keputusan | Interpretasi |
|---|---|---|---|---|---|
| Keseluruhan | 18,96 | 2 | 7,65e-05 | Tolak H₀ | Ada hubungan signifikan |
| Partisi 1 | 0,06 | 1 | 0,804 | Gagal Tolak H₀ | Tidak ada hubungan (Dem vs Rep) |
| Partisi 2 | 18,90 | 1 | 1,38e-05 | Tolak H₀ | Ada hubungan (Dem+Rep vs Ind) |
Catatan Penting: - Jumlah \(\chi^2\) partisi = \(0,06 + 18,90 = 18,96\) (sama dengan \(\chi^2\) keseluruhan) - Jumlah df partisi = \(1 + 1 = 2\) (sama dengan df keseluruhan)
Kesimpulan Partisi: 1. Hubungan signifikan antara gender dan partai politik hanya berasal dari kategori Independent 2. Tidak ada perbedaan signifikan antara gender dalam memilih Demokrat vs Republican 3. Wanita cenderung lebih banyak menjadi pemilih Independent dibanding pria
par(mfrow = c(2, 2))
# 1. Barplot proporsi
prop_female <- data_kasus2[1,] / sum(data_kasus2[1,])
prop_male <- data_kasus2[2,] / sum(data_kasus2[2,])
barplot(rbind(prop_female, prop_male),
beside = TRUE,
col = c("#e74c3c", "#3498db"),
main = "Proporsi Identifikasi Partai Berdasarkan Gender",
xlab = "Partai Politik",
ylab = "Proporsi",
legend.text = c("Female", "Male"),
args.legend = list(x = "topright"),
ylim = c(0, 0.5))
# 2. Mosaic plot
mosaicplot(data_kasus2,
main = "Mosaic Plot: Gender vs Identifikasi Partai",
xlab = "Gender",
ylab = "Partai Politik",
color = c("#e74c3c", "#f39c12", "#3498db"),
cex.axis = 0.9)
# 3. Barplot frekuensi
barplot(data_kasus2, beside = TRUE,
col = c("#e74c3c", "#3498db"),
main = "Frekuensi Identifikasi Partai Berdasarkan Gender",
xlab = "Partai Politik",
ylab = "Frekuensi",
legend.text = c("Female", "Male"),
args.legend = list(x = "topright"),
ylim = c(0, max(data_kasus2) + 50))
# 4. Heatmap Residual Pearson
library(ggplot2)
residual_df <- expand.grid(Gender = c("Female", "Male"),
Partai = c("Democrat", "Republican", "Independent"))
residual_df$Residual <- as.vector(residual)
ggplot(residual_df, aes(x = Partai, y = Gender, fill = Residual)) +
geom_tile(color = "white", size = 1) +
scale_fill_gradient2(low = "blue", high = "red", mid = "white",
midpoint = 0, name = "Residual") +
geom_text(aes(label = round(Residual, 2)), color = "black", size = 5) +
labs(title = "Heatmap Residual Pearson",
subtitle = "Hubungan Gender dengan Identifikasi Partai Politik",
x = "Identifikasi Partai",
y = "Gender") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text = element_text(size = 12))
Interpretasi Visualisasi:
| Aspek | Hasil | Interpretasi |
|---|---|---|
| Uji Chi-Square | \(\chi^2 = 18,96\), \(df = 2\), p < 0,001 | Ada hubungan signifikan |
| Residual Pearson | Tertinggi: Male-Democrat (-1,98) | Kategori Demokrat pada pria berkontribusi besar |
| Partisi 1 | \(\chi^2 = 0,06\), p = 0,804 | Tidak ada hubungan (Dem vs Rep) |
| Partisi 2 | \(\chi^2 = 18,90\), p < 0,001 | Ada hubungan (Dem+Rep vs Ind) |
Hubungan Signifikan: Terdapat hubungan yang signifikan secara statistik antara gender dengan identifikasi partai politik (\(\chi^2 = 18,96\), \(p < 0,001\)).
Sumber Hubungan: Hubungan signifikan hanya berasal dari kategori Independent:
Kontribusi Terbesar: Kategori yang paling berkontribusi terhadap hubungan adalah:
Pola Hubungan:
Implikasi Sosial-Politik:
Uji Chi-Square: \(\chi^2 = 18,96\), \(df = 2\), p-value < 0,001 → H₀ ditolak. Ada hubungan signifikan antara gender dan identifikasi partai.
Residual Pearson: Kontribusi terbesar berasal dari sel Male-Democrat (residual = -1,98) dan Female-Democrat (residual = 1,77).
Partisi Chi-Square:
Kesimpulan Akhir: Hubungan signifikan antara gender dan partai politik hanya berasal dari kategori Independent. Wanita cenderung lebih memilih Demokrat dan Independent, sedangkan pria cenderung lebih memilih Republican.
| Kasus | Hubungan | Kekuatan | Kesimpulan |
|---|---|---|---|
| Kasus 1 | Merokok → Kanker Paru | OR = 2,97 (kuat) | Merokok meningkatkan risiko kanker paru |
| Kasus 2 | Gender → Partai Politik | \(\chi^2 = 18,96\) | Ada perbedaan preferensi partai berdasarkan gender |
Kasus 1 (Kesehatan): Diperlukan kebijakan pengendalian tembakau yang lebih ketat dan edukasi bahaya merokok kepada masyarakat.
Kasus 2 (Politik): Partai politik perlu mempertimbangkan perbedaan preferensi berdasarkan gender dalam menyusun strategi kampanye. # Daftar Pustaka
Agresti, A. (2013). Categorical Data Analysis (3rd ed.). John Wiley & Sons.
Agresti, A. (2019). An Introduction to Categorical Data Analysis (3rd ed.). Wiley.