Analisis data kategori merupakan bagian penting dalam statistika yang digunakan untuk menganalisis data yang berbentuk kategori atau klasifikasi. Data kategori sering muncul dalam penelitian sosial, ekonomi, kesehatan, pendidikan, dan teknik.
Berbeda dengan data numerik yang memiliki nilai kuantitatif, data kategori menyatakan kelompok atau label. Contoh data kategori antara lain:
Dalam praktik penelitian, data kategori biasanya dianalisis dalam bentuk frekuensi, proporsi, atau probabilitas.
E-book ini menjelaskan konsep analisis data kategori secara sistematis mulai dari teori hingga implementasi menggunakan bahasa pemrograman R.
Data kategori (categorical data) adalah data yang nilainya menunjukkan kategori atau kelas tertentu.
Misalkan terdapat variabel acak diskrit:
\[ X \in \{1,2,...,k\} \]
dengan probabilitas:
\[ P(X=i) = p_i, \quad i = 1,2,...,k \]
dengan syarat:
\[ \sum_{i=1}^{k} p_i = 1 \]
Distribusi ini disebut distribusi multinomial jika terdapat lebih dari dua kategori.
Jika hanya dua kategori maka disebut distribusi binomial.
Data nominal tidak memiliki urutan.
Contoh:
Data ordinal memiliki tingkatan atau urutan.
Contoh:
Secara matematis dapat dituliskan:
\[ X_1 < X_2 < X_3 \]
namun jarak antar kategori tidak harus sama.
Tujuan utama analisis data kategori adalah:
Metode yang umum digunakan:
Tabel kontingensi merupakan tabel yang menampilkan frekuensi bersama dari dua variabel kategori.
Misalkan terdapat variabel:
Maka tabel kontingensi berukuran:
\[ r \times c \]
Frekuensi observasi dilambangkan:
\[ n_{ij} \]
dengan:
\[ i = 1,2,...,r \]
\[ j = 1,2,...,c \]
Jumlah baris:
\[ n_{i.} = \sum_{j=1}^{c} n_{ij} \]
Jumlah kolom:
\[ n_{.j} = \sum_{i=1}^{r} n_{ij} \]
Jumlah total:
\[ N = \sum_{i=1}^{r} \sum_{j=1}^{c} n_{ij} \]
Probabilitas bersama:
\[ P(X=i,Y=j) = \frac{n_{ij}}{N} \]
Probabilitas marginal:
\[ P(X=i) = \frac{n_{i.}}{N} \]
\[ P(Y=j) = \frac{n_{.j}}{N} \]
Jika dua variabel independen maka:
\[ P(X=i,Y=j) = P(X=i)P(Y=j) \]
Inferensi tabel kontingensi digunakan untuk menganalisis hubungan antara dua atau lebih variabel kategori. Data biasanya disajikan dalam bentuk tabel kontingensi, yaitu tabel yang menunjukkan frekuensi pengamatan untuk setiap kombinasi kategori.
Uji independensi adalah prosedur inferensia statistik yang bertujuan untuk mengevaluasi apakah terdapat hubungan (asosiasi) yang signifikan secara statistik antara dua variabel kategori. Jika kedua variabel tersebut dinyatakan saling independen, artinya probabilitas atau sebaran proporsi pada satu variabel tidak dipengaruhi oleh kategori pada variabel lainnya.
Hipotesis standar yang digunakan dalam pengujian ini adalah:
Untuk membuktikan hipotesis tersebut, terdapat dua metode pengujian yang paling umum digunakan tergantung pada ukuran sampel dan frekuensi harapan dari data, yaitu Uji Chi-Square dan Uji Exact Fisher.
Statistik uji:
\[ \chi^2 = \sum_{i=1}^{r}\sum_{j=1}^{c} \frac{(O_{ij}-E_{ij})^2}{E_{ij}} \]
Frekuensi harapan:
\[ E_{ij} = \frac{(Total\ Baris_i)(Total\ Kolom_j)}{Total\ Observasi} \]
Derajat bebas:
\[ df = (r-1)(c-1) \]
Contoh dengan R
set.seed(123)
data <- matrix(c(30,10,15,45), nrow=2, byrow=TRUE)
dimnames(data) <- list("Terpapar"=c("Ya","Tidak"),
"Kejadian"=c("Ya","Tidak"))
print(data)
## Kejadian
## Terpapar Ya Tidak
## Ya 30 10
## Tidak 15 45
chisq_test <- chisq.test(data)
print(chisq_test)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: data
## X-squared = 22.264, df = 1, p-value = 2.376e-06
Contoh output:
Pearson's Chi-squared test
X-squared = 26.04
df = 1
p-value = 3.3e-07
Interpretasi: p-value < 0.05 sehingga H0 ditolak.
Digunakan ketika ukuran sampel kecil atau terdapat sel pada tabel kontingensi yang memiliki frekuensi harapan (Expected) kurang dari 5.
Distribusi hipergeometrik:
\[ P(X=x)= \frac{\binom{K}{x}\binom{N-K}{n-x}} {\binom{N}{n}} \]
Contoh dengan R
N <- 40
K <- 29
n <- 20
x <- 18
dhyper(x, m=K, n=N-K, k=n)
## [1] 0.01380413
choose(29,18)*choose(11,2)/choose(40,20)
## [1] 0.01380413
data <- matrix(c(18,2,11,9), nrow=2, byrow=TRUE)
fisher.test(data)
##
## Fisher's Exact Test for Count Data
##
## data: data
## p-value = 0.03095
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 1.147793 78.183838
## sample estimates:
## odds ratio
## 6.994073
Contoh output:
Fisher's Exact Test for Count Data
p-value = 0.030
Interpretasi: p-value < 0.05 sehingga H0 ditolak.
Selain pengujian independensi, analisis tabel kontingensi sering kali berfokus pada pengukuran seberapa besar risiko atau asosiasi antara paparan dan penyakit/kejadian. Tiga ukuran yang paling sering digunakan dalam epidemiologi dan biostatistika adalah:
Berikut adalah contoh implementasi perhitungannya menggunakan data kasus kanker paru-paru (Lung Cancer).
Kita dapat membuat fungsi R sendiri untuk menghitung estimate dan Confidence Interval (CI) 95% untuk masing-masing ukuran.
# 1. Fungsi Risk Difference (Proporsi)
prop_diff <- function(a, b, c, d, alpha = 0.05) {
ph <- a / (a + c)
pi <- b / (b + d)
nh <- a + c
ni <- b + d
se_bp <- sqrt((ph * (1 - ph) / nh) + (pi * (1 - pi) / ni))
z_alpha <- qnorm(1 - alpha / 2)
ci_lower <- (ph - pi) - z_alpha * se_bp
ci_upper <- (ph - pi) + z_alpha * se_bp
list(estimate = ph - pi, ci = c(ci_lower, ci_upper))
}
# 2. Fungsi Relative Risk (RR)
relative_risk <- function(a, b, c, d, alpha = 0.05) {
ph <- a / (a + c)
pi <- b / (b + d)
nh <- a + c
ni <- b + d
ln_rr <- log(ph / pi)
se_ln_rr <- sqrt(((1 - ph) / (ph * nh)) + ((1 - pi) / (pi * ni)))
z_alpha <- qnorm(1 - alpha / 2)
ci_lower <- exp(ln_rr - z_alpha * se_ln_rr)
ci_upper <- exp(ln_rr + z_alpha * se_ln_rr)
list(estimate = exp(ln_rr), ci = c(ci_lower, ci_upper))
}
# 3. Fungsi Odds Ratio (OR)
odds_ratio <- function(a, b, c, d, alpha = 0.05) {
ln_or <- log((a * d) / (b * c))
se_ln_or <- sqrt(1/a + 1/b + 1/c + 1/d)
z_alpha <- qnorm(1 - alpha / 2)
ci_lower <- exp(ln_or - z_alpha * se_ln_or)
ci_upper <- exp(ln_or + z_alpha * se_ln_or)
list(estimate = exp(ln_or), ci = c(ci_lower, ci_upper))
}
# Menjalankan fungsi dengan input data
hasil_RD <- prop_diff(a=688, b=21, c=650, d=59)
hasil_RR <- relative_risk(a=688, b=21, c=650, d=59)
hasil_OR <- odds_ratio(a=688, b=21, c=650, d=59)
print("Hasil Risk Difference:")
## [1] "Hasil Risk Difference:"
print(hasil_RD)
## $estimate
## [1] 0.2517003
##
## $ci
## [1] 0.1516343 0.3517663
print("Hasil Relative Risk:")
## [1] "Hasil Relative Risk:"
print(hasil_RR)
## $estimate
## [1] 1.958858
##
## $ci
## [1] 1.351735 2.838667
print("Hasil Odds Ratio:")
## [1] "Hasil Odds Ratio:"
print(hasil_OR)
## $estimate
## [1] 2.973773
##
## $ci
## [1] 1.786737 4.949427
Selain menggunakan function, kita juga bisa menuliskannya secara skalar/manual langkah demi langkah sesuai rumus statistiknya:
a <- 688
b <- 21
c <- 650
d <- 59
# Risk Difference Manual
RD_manual <- (a / (a + c)) - (b / (b + d))
SE_RD <- sqrt((a/(a+c)*(1 - a/(a+c)))/(a+c) + (b/(b+d)*(1 - b/(b+d)))/(b+d))
CI_RD <- c(RD_manual - 1.96 * SE_RD, RD_manual + 1.96 * SE_RD)
# Relative Risk Manual
RR_manual <- (a / (a + c)) / (b / (b + d))
SE_RR <- sqrt(1/a - 1/(a+c) + 1/b - 1/(b+d))
CI_RR <- exp(log(RR_manual) + c(-1.96, 1.96) * SE_RR)
# Odds Ratio Manual
OR_manual <- (a * d) / (b * c)
SE_OR <- sqrt(1/a + 1/b + 1/c + 1/d)
CI_OR <- exp(log(OR_manual) + c(-1.96, 1.96) * SE_OR)
# Menampilkan semua perhitungan manual
list(
RD = RD_manual, CI_RD = CI_RD,
RR = RR_manual, CI_RR = CI_RR,
OR = OR_manual, CI_OR = CI_OR
)
## $RD
## [1] 0.2517003
##
## $CI_RD
## [1] 0.1516324 0.3517682
##
## $RR
## [1] 1.958858
##
## $CI_RR
## [1] 1.351726 2.838687
##
## $OR
## [1] 2.973773
##
## $CI_OR
## [1] 1.786720 4.949474
epiRSebagai validasi atas perhitungan manual yang telah kita lakukan di
atas, kita dapat membandingkan hasilnya secara cepat menggunakan
package khusus epidemiologi yaitu epiR.
# Mengaktifkan package epiR
library(epiR)
# Membentuk matriks tabel kontingensi
table_data <- matrix(c(a, c, b, d), nrow = 2, byrow = TRUE)
colnames(table_data) <- c("Lung Cancer", "Control")
rownames(table_data) <- c("Yes", "No")
print("Tabel Kontingensi:")
## [1] "Tabel Kontingensi:"
print(table_data)
## Lung Cancer Control
## Yes 688 650
## No 21 59
# Menganalisis menggunakan fungsi epi.2by2
res <- epi.2by2(table_data)
print(res)
## Outcome+ Outcome- Total Inc risk *
## Exposure+ 688 650 1338 51.42 (48.70 to 54.13)
## Exposure- 21 59 80 26.25 (17.04 to 37.29)
## Total 709 709 1418 50.00 (47.36 to 52.64)
##
## Point estimates and 95% CIs:
## -------------------------------------------------------------------
## Inc risk ratio 1.96 (1.35, 2.84)
## Inc odds ratio 2.97 (1.79, 4.95)
## Attrib risk in the exposed * 25.17 (15.16, 35.18)
## Attrib fraction in the exposed (%) 48.95 (28.08, 65.39)
## Attrib risk in the population * 23.75 (13.76, 33.74)
## Attrib fraction in the population (%) 47.50 (29.16, 64.02)
## -------------------------------------------------------------------
## Uncorrected chi2 test that OR = 1: chi2(1) = 19.129 Pr>chi2 = <0.001
## Fisher exact test that OR = 1: Pr>chi2 = <0.001
## Wald confidence limits
## CI: confidence interval
## * Outcomes per 100 population units
Setelah menjalankan code R di atas, kita akan mendapatkan angka estimasi untuk RD, RR, dan OR beserta Confidence Interval (selang kepercayaan) 95%-nya. Berikut adalah cara mudah memahami dan menginterpretasikan masing-masing metrik tersebut berdasarkan data kasus kanker paru-paru:
1. Risk Difference (RD) / Perbedaan Risiko
2. Relative Risk (RR) / Risiko Relatif
3. Odds Ratio (OR) / Rasio Peluang
Kesimpulan Umum: Dari ketiga pengujian di atas, baik RD, RR, maupun OR menunjukkan hasil yang searah: paparan tersebut terbukti secara statistik memiliki asosiasi yang kuat dan merupakan faktor risiko utama terhadap kejadian kanker paru-paru.
Ukuran asosiasi digunakan untuk mengetahui kekuatan hubungan antara variabel kategori.
Statistik chi-square didefinisikan sebagai:
\[ \chi^2 = \sum_{i=1}^{r} \sum_{j=1}^{c} \frac{(O_{ij}-E_{ij})^2}{E_{ij}} \]
dengan:
Frekuensi harapan:
\[ E_{ij} = \frac{n_{i.} n_{.j}}{N} \]
Derajat bebas:
\[ df = (r-1)(c-1) \]
Untuk tabel \(2 \times 2\) digunakan koefisien phi:
\[ \phi = \sqrt{\frac{\chi^2}{N}} \]
Koefisien kontingensi:
\[ C = \sqrt{\frac{\chi^2}{\chi^2 + N}} \]
Untuk tabel lebih besar:
\[ V = \sqrt{ \frac{\chi^2}{N(k-1)} } \]
dengan:
\[ k = \min(r,c) \]
| Kopi | Teh | Jus | Total | |
|---|---|---|---|---|
| Laki-laki | 30 | 10 | 10 | 50 |
| Perempuan | 20 | 25 | 5 | 50 |
| Total | 50 | 35 | 15 | 100 |
Frekuensi harapan:
\[ E_{ij} = \frac{n_{i.} n_{.j}}{N} \]
Contoh:
\[ E_{11} = \frac{50 \times 50}{100} = 25 \]
Statistik chi-square:
\[ \chi^2 = \sum \frac{(O_{ij}-E_{ij})^2}{E_{ij}} \]
Misalkan diperoleh:
\[ \chi^2 = 10.48 \]
Derajat bebas:
\[ df = (2-1)(3-1) = 2 \]
data <- matrix(c(30,10,10,
20,25,5),
nrow=2,
byrow=TRUE)
colnames(data) <- c("Kopi","Teh","Jus")
rownames(data) <- c("Laki-laki","Perempuan")
data
Uji Chi-Square:
chisq.test(data)
Menghitung Cramer’s V:
library(lsr)
cramersV(data)
Misalkan hasil uji menghasilkan:
\[ \chi^2 = 10.48 \]
\[ p = 0.005 \]
Dengan:
\[ \alpha = 0.05 \]
Karena:
\[ p < \alpha \]
maka hipotesis nol ditolak.
Artinya terdapat hubungan signifikan antara variabel kategori.
Tabel kontingensi dua arah digunakan untuk menyajikan dan menganalisis hubungan antara dua variabel kategorik. Melalui tabel ini, dapat dilihat pola distribusi data serta diuji apakah terdapat asosiasi antara kedua variabel.
Analisis yang dilakukan meliputi perhitungan ukuran asosiasi seperti Risk Difference (RD), Risk Ratio (RR), dan Odds Ratio (OR), serta pengujian hipotesis menggunakan beberapa metode seperti uji dua proporsi, uji chi-square, likelihood ratio, dan Fisher exact test.
Pada bagian berikut, akan disajikan dua kasus analisis tabel kontingensi dua arah beserta interpretasinya.
Analisis ini bertujuan untuk mengkaji hubungan antara kebiasaan merokok dan kejadian kanker paru menggunakan pendekatan tabel kontingensi 2x2. Selain itu, dilakukan berbagai uji inferensi untuk memperkuat kesimpulan statistik dan substantif.
data_kasus1 <- matrix(c(688,650,
21,59),
nrow = 2,
byrow = TRUE)
rownames(data_kasus1) <- c("Smoker", "Non-Smoker")
colnames(data_kasus1) <- c("Cancer", "Control")
data_kasus1
## Cancer Control
## Smoker 688 650
## Non-Smoker 21 59
addmargins(data_kasus1)
## Cancer Control Sum
## Smoker 688 650 1338
## Non-Smoker 21 59 80
## Sum 709 709 1418
Tabel kontingensi menunjukkan distribusi kejadian kanker paru berdasarkan status merokok. Dari data terlihat bahwa:
Secara proporsional, jumlah kejadian kanker pada kelompok perokok jauh lebih tinggi dibandingkan non-perokok. Perbedaan ini mengindikasikan adanya kemungkinan hubungan antara kebiasaan merokok dan kejadian kanker paru.
Mengapa demikian:
Jika tidak ada hubungan, maka proporsi kanker pada kedua kelompok seharusnya relatif sama. Namun, data menunjukkan ketimpangan yang cukup besar, sehingga memunculkan indikasi awal adanya asosiasi.
Metode yang digunakan meliputi:
p_smoker <- 688 / (688 + 650)
p_nonsmoker <- 21 / (21 + 59)
p_smoker
## [1] 0.5142003
p_nonsmoker
## [1] 0.2625
Interpretasi: Proporsi kejadian kanker dihitung sebagai berikut:
Artinya, sekitar 51.4% perokok mengalami kanker, sedangkan hanya 26.2% non-perokok yang mengalami kanker.
Perokok memiliki kemungkinan hampir dua kali lebih besar untuk mengalami kanker paru dibandingkan non-perokok.
Mengapa demikian:
Perbedaan ini muncul karena jumlah kasus kanker pada perokok jauh lebih dominan. Hal ini mencerminkan adanya faktor risiko dari kebiasaan merokok terhadap kanker paru.
prop.test(c(688,21), c(1338,80))
##
## 2-sample test for equality of proportions with continuity correction
##
## data: c(688, 21) out of c(1338, 80)
## X-squared = 18.136, df = 1, p-value = 2.057e-05
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## 0.1450106 0.3583900
## sample estimates:
## prop 1 prop 2
## 0.5142003 0.2625000
Interpretasi:
Interval kepercayaan 95% memberikan rentang nilai proporsi sebenarnya di populasi.
Jika kedua interval tidak tumpang tindih (atau hanya sedikit overlap), maka perbedaan proporsi dapat dianggap signifikan secara statistik.
Mengapa demikian:
Interval kepercayaan mempertimbangkan variasi sampel. Ketika dua interval terpisah, berarti perbedaan yang diamati tidak hanya disebabkan oleh kebetulan sampel, tetapi mencerminkan perbedaan nyata di populasi.
RD <- p_smoker - p_nonsmoker
RR <- p_smoker / p_nonsmoker
OR <- (688 * 59) / (650 * 21)
RD
## [1] 0.2517003
RR
## [1] 1.958858
OR
## [1] 2.973773
Interpretasi:
Perokok memiliki risiko dan peluang yang secara signifikan lebih tinggi untuk mengalami kanker paru dibandingkan non-perokok.
Mengapa demikian:
Nilai RR dan OR yang lebih besar dari 1 secara matematis menunjukkan bahwa kejadian kanker lebih sering terjadi pada kelompok perokok. Hal ini konsisten dengan teori epidemiologi bahwa merokok merupakan faktor risiko utama kanker paru.
prop.test(c(688,21), c(1338,80), correct = FALSE)
##
## 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
Interpretasi:
Hipotesis yang diuji:
Hasil menunjukkan p-value < 0.05, sehingga:
➡️ Keputusan: Tolak H0
➡️ Kesimpulan: Terdapat perbedaan signifikan antara proporsi kanker pada perokok dan non-perokok.
Perbedaan proporsi yang cukup besar (51.4% vs 26.2%) menghasilkan statistik uji yang tinggi, sehingga probabilitas bahwa perbedaan ini terjadi secara kebetulan menjadi sangat kecil.
chisq.test(data_kasus1, correct = FALSE)
##
## Pearson's Chi-squared test
##
## data: data_kasus1
## X-squared = 19.129, df = 1, p-value = 1.222e-05
Interpretasi:
Hipotesis:
Hasil menunjukkan p-value sangat kecil (< 0.05), sehingga:
➡️ Keputusan: Tolak H0
➡️ Kesimpulan: Terdapat hubungan antara kebiasaan merokok dan kejadian kanker paru.
Mengapa demikian:
Nilai chi-square menjadi besar karena terdapat perbedaan signifikan antara frekuensi observasi dan frekuensi harapan, khususnya pada sel kanker pada perokok yang jauh lebih tinggi dari yang diharapkan jika tidak ada hubungan.
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.5.3
GTest(data_kasus1)
##
## Log likelihood ratio (G-test) test of independence without correction
##
## data: data_kasus1
## G = 19.878, X-squared df = 1, p-value = 8.254e-06
Interpretasi:
Uji G² menghasilkan kesimpulan yang sama dengan uji chi-square, yaitu:
➡️ Terdapat hubungan signifikan antara merokok dan kanker paru.
Mengapa demikian:
Uji G² menggunakan pendekatan likelihood, tetapi tetap mengukur deviasi antara data observasi dan model tanpa hubungan. Karena deviasinya besar, hasilnya menjadi signifikan.
fisher.test(data_kasus1)
##
## 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
Interpretasi:
Hasil uji Fisher juga menunjukkan p-value < 0.05, sehingga:
➡️ Terdapat hubungan signifikan antara merokok dan kanker paru.
Mengapa demikian:
Fisher exact test menghitung probabilitas secara eksak. Hasil yang tetap signifikan menunjukkan bahwa hubungan ini sangat kuat dan robust, bahkan tanpa asumsi aproksimasi.
data.frame(
Metode = c("Uji Dua Proporsi","Chi-Square","Likelihood Ratio","Fisher Exact"),
P_Value = c(
prop.test(c(688,21), c(1338,80), correct=FALSE)$p.value,
chisq.test(data_kasus1, correct=FALSE)$p.value,
GTest(data_kasus1)$p.value,
fisher.test(data_kasus1)$p.value
)
)
## Metode P_Value
## 1 Uji Dua Proporsi 1.221601e-05
## 2 Chi-Square 1.221601e-05
## 3 Likelihood Ratio 8.254410e-06
## 4 Fisher Exact 1.476303e-05
Interpretasi: Semua metode pengujian (uji dua proporsi, chi-square, G², dan Fisher) memberikan hasil yang konsisten:
Makna:
➡️ Kesimpulan menjadi sangat kuat dan dapat dipercaya, karena tidak bergantung pada satu metode saja.
Mengapa demikian:
Ketika berbagai metode statistik yang berbeda memberikan hasil yang sama, maka kemungkinan kesalahan inferensi menjadi sangat kecil. Hal ini menunjukkan bahwa hubungan yang ditemukan benar-benar berasal dari pola data, bukan kebetulan.
id="mos1"
mosaicplot(data_kasus1, color=TRUE,
main="Mosaic Plot: Merokok vs Kanker Paru")
Interpretasi:
Mosaic plot digunakan untuk menggambarkan hubungan antara dua variabel kategorik berdasarkan proporsi data.
Luas kotak merepresentasikan frekuensi pada setiap kombinasi kategori.
Warna menunjukkan deviasi antara frekuensi observasi dengan frekuensi harapan:
Jika tidak ada hubungan, maka pembagian area akan terlihat relatif seimbang.
Cara membaca: Perhatikan ukuran dan warna tiap kotak. Perbedaan luas dan warna yang mencolok antar kategori menunjukkan adanya asosiasi antara status merokok dan kanker paru.
id="bar1"
barplot(prop.table(data_kasus1,1),
beside=TRUE,
col=c("red","blue"),
legend=TRUE,
main="Proporsi Kanker Paru")
Interpretasi:
Barplot ini menunjukkan perbandingan proporsi kejadian kanker pada masing-masing kelompok.
Cara membaca: Jika batang Cancer pada kelompok smoker lebih tinggi dibanding non-smoker, maka proporsi kanker pada smoker lebih besar, yang mengindikasikan adanya hubungan.
id="assoc1"
library(vcd)
## Warning: package 'vcd' was built under R version 4.5.3
## Loading required package: grid
assoc(data_kasus1, shade=TRUE)
Interpretasi:
Plot ini menampilkan residual Pearson untuk melihat kontribusi tiap sel terhadap uji chi-square.
Cara membaca: Sel dengan warna paling mencolok (biru tua atau merah tua) merupakan sel yang paling berkontribusi terhadap hubungan antar variabel.
Kesimpulan Visual:
Ketiga visualisasi menunjukkan pola yang konsisten, yaitu adanya perbedaan distribusi antara kelompok smoker dan non-smoker, sehingga mendukung hasil uji statistik bahwa terdapat hubungan antara kebiasaan merokok dan kejadian kanker paru.
Berdasarkan hasil analisis:
Analisis ini bertujuan untuk mengkaji hubungan antara gender dan identifikasi partai politik menggunakan tabel kontingensi 2x3 serta uji chi-square.
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
addmargins(data_kasus2)
## Democrat Republican Independent Sum
## Female 495 272 590 1357
## Male 330 265 498 1093
## Sum 825 537 1088 2450
Interpretasi:
Tabel kontingensi menunjukkan distribusi responden berdasarkan gender dan identifikasi partai politik. Dari data terlihat bahwa:
Secara umum, baik laki-laki maupun perempuan cenderung lebih banyak mengidentifikasi diri sebagai Independent, yang mengindikasikan bahwa preferensi non-partisan cukup dominan pada kedua kelompok gender.
Metode yang digunakan:
uji_chi <- chisq.test(data_kasus2)
uji_chi$expected
## Democrat Republican Independent
## Female 456.949 297.4322 602.6188
## Male 368.051 239.5678 485.3812
Interpretasi:
Frekuensi harapan menggambarkan jumlah observasi yang seharusnya terjadi jika tidak ada hubungan antara gender dan identifikasi partai politik.
Nilai frekuensi harapan dihitung berdasarkan perkalian proporsi marginal baris dan kolom. Dengan membandingkan frekuensi observasi dan frekuensi harapan:
Pada data ini, terlihat beberapa sel memiliki perbedaan yang cukup mencolok antara frekuensi observasi dan harapan, yang menjadi indikasi awal adanya hubungan antara gender dan pilihan partai.
uji_chi
##
## Pearson's Chi-squared test
##
## data: data_kasus2
## X-squared = 12.569, df = 2, p-value = 0.001865
Interpretasi:
Uji chi-square digunakan untuk menguji hipotesis:
Berdasarkan hasil uji, diperoleh nilai p-value < 0.05, sehingga:
➡️ Keputusan: Tolak H0
➡️ Kesimpulan: Terdapat hubungan yang signifikan antara gender dan pilihan partai politik.
uji_chi$residuals
## Democrat Republican Independent
## Female 1.780051 -1.474656 -0.5140388
## Male -1.983409 1.643125 0.5727640
Interpretasi: Residual Pearson digunakan untuk mengidentifikasi sel mana yang paling berkontribusi terhadap nilai chi-square.
Dari hasil residual:
Hal ini menunjukkan bahwa pada kategori tertentu, preferensi partai tidak terjadi secara acak, tetapi dipengaruhi oleh gender.
mosaicplot(data_kasus2, color = TRUE,
main = "Mosaic Plot Gender vs Partai")
Penjelasan: Mosaic plot memberikan visualisasi hubungan antara gender dan partai politik dengan mempertimbangkan proporsi dan deviasi dari nilai harapan.
Interpretasi:
Dari plot terlihat bahwa beberapa kategori memiliki warna yang cukup kontras, yang menunjukkan adanya kontribusi kuat terhadap hubungan antara gender dan pilihan partai.
barplot(prop.table(data_kasus2,1),
beside = TRUE,
legend = TRUE,
main = "Proporsi Partai Berdasarkan Gender")
Penjelasan:
Barplot proporsi menunjukkan distribusi pilihan partai dalam masing-masing gender.
Interpretasi:
# Democrat vs Republican
sub1 <- data_kasus2[,1:2]
uji_sub1 <- chisq.test(sub1)
Uji ini membandingkan apakah terdapat perbedaan distribusi antara Democrat dan Republican berdasarkan gender.
Jika p-value kecil:
➡️ Ada perbedaan signifikan antara laki-laki dan perempuan dalam memilih dua partai utama tersebut.
Jika p-value besar:
➡️ Tidak ada perbedaan signifikan.
# (Democrat + Republican) vs Independent
sub2 <- cbind(rowSums(data_kasus2[,1:2]), data_kasus2[,3])
uji_sub2 <- chisq.test(sub2)
uji_sub1
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: sub1
## X-squared = 11.178, df = 1, p-value = 0.0008279
uji_sub2
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: sub2
## X-squared = 0.98267, df = 1, p-value = 0.3215
Uji ini mengelompokkan dua partai utama dan membandingkannya dengan Independent.
Jika hasil signifikan:
➡️ Perbedaan utama terletak pada kecenderungan memilih Independent dibandingkan partai utama.
data.frame(
Metode = c("Chi-Square Total","Dem vs Rep","(Dem+Rep) vs Indep"),
P_Value = c(uji_chi$p.value,
uji_sub1$p.value,
uji_sub2$p.value)
)
## Metode P_Value
## 1 Chi-Square Total 0.0018647504
## 2 Dem vs Rep 0.0008278839
## 3 (Dem+Rep) vs Indep 0.3215393863
Interpretasi: Hasil partisi chi-square membantu menjelaskan sumber hubungan yang ditemukan pada uji keseluruhan.
Dengan demikian, uji keseluruhan memberikan gambaran umum, sedangkan partisi memberikan penjelasan yang lebih detail.
Berdasarkan nilai residual Pearson dan hasil partisi, kategori dengan nilai residual terbesar (positif atau negatif) merupakan kontributor utama terhadap hubungan.
Terdapat hubungan yang signifikan antara gender dan identifikasi partai politik berdasarkan uji chi-square. Analisis lebih lanjut menggunakan residual Pearson dan partisi chi-square menunjukkan bahwa hubungan ini tidak merata pada seluruh kategori, melainkan dipengaruhi secara kuat oleh kategori tertentu.
Visualisasi dan analisis tambahan memperkuat bahwa preferensi terhadap partai politik, khususnya kategori tertentu, memiliki pola yang berbeda antara laki-laki dan perempuan. Oleh karena itu, dapat disimpulkan bahwa gender merupakan faktor yang berasosiasi dengan identifikasi partai politik dalam data ini.