1 Pendahuluan

Analisis data kategorik merupakan salah satu cabang penting dalam statistika yang digunakan untuk menganalisis data yang berbentuk kategori atau klasifikasi. Dalam banyak penelitian di bidang kesehatan, sosial, ekonomi, maupun ilmu lingkungan, peneliti sering kali berhadapan dengan data yang tidak berbentuk angka kontinu, tetapi berupa kategori seperti jenis kelamin, status merokok, tingkat pendidikan, atau status penyakit.

Metode analisis yang digunakan untuk data kategorik berbeda dengan metode analisis untuk data numerik. Hal ini disebabkan karena variabel kategorik tidak memiliki makna jarak matematis seperti variabel kuantitatif. Oleh karena itu, analisis data kategorik lebih menekankan pada hubungan antar kategori serta probabilitas kemunculan suatu kategori tertentu.

Dalam laporan ini akan dibahas secara sistematis mengenai konsep dasar analisis data kategorik, tabel kontingensi, ukuran asosiasi, contoh perhitungan manual, serta implementasi analisis menggunakan perangkat lunak R.

2 Bagian 1: Definisi Analisis Data Kategorik

2.1 Pengertian Analisis Data Kategorik

Analisis data kategorik adalah metode statistika yang digunakan untuk menganalisis data yang variabelnya bersifat kategorikal atau nominal dan ordinal. Variabel kategorikal merupakan variabel yang nilainya berupa label atau kategori yang tidak memiliki makna numerik langsung.

Secara umum, tujuan analisis data kategorik meliputi:

  • Menggambarkan distribusi frekuensi kategori
  • Menguji hubungan antara dua variabel kategorik
  • Mengukur kekuatan asosiasi antar variabel
  • Membuat model probabilitas kejadian suatu kategori

Metode yang umum digunakan dalam analisis data kategorik antara lain:

  • Tabel kontingensi
  • Uji Chi-Square
  • Odds Ratio
  • Relative Risk
  • Regresi logistik

2.2 Karakteristik Variabel Kategori

Variabel kategori memiliki beberapa karakteristik khusus, yaitu:

2.2.1 1. Tidak Memiliki Nilai Numerik yang Bermakna

Nilai pada variabel kategorik biasanya berupa label seperti:

  • Laki-laki / Perempuan
  • Ya / Tidak
  • Merokok / Tidak Merokok

Label tersebut tidak dapat dioperasikan menggunakan operasi matematika biasa seperti penjumlahan atau perkalian.

2.2.2 2. Bersifat Nominal atau Ordinal

Variabel kategorik dapat dibagi menjadi dua jenis utama:

Variabel Nominal
Kategori tidak memiliki urutan tertentu.

Contoh: - jenis kelamin - agama - status pernikahan

Variabel Ordinal
Kategori memiliki urutan tetapi tidak memiliki jarak numerik yang jelas.

Contoh: - tingkat pendidikan - tingkat kepuasan - tingkat keparahan penyakit

2.2.3 3. Data Biasanya Disajikan dalam Bentuk Frekuensi

Analisis data kategorik sering menggunakan jumlah kejadian pada setiap kategori. Oleh karena itu data biasanya disajikan dalam bentuk tabel frekuensi atau tabel kontingensi.

2.3 Contoh Penerapan Analisis Data Kategorik

Analisis data kategorik banyak digunakan dalam berbagai bidang penelitian.

2.3.1 Contoh pada Bidang Kesehatan

Contoh penelitian:

Hubungan antara kebiasaan merokok dan kejadian kanker paru-paru.

Variabel yang digunakan:

  • Status merokok (Merokok / Tidak Merokok)
  • Status penyakit (Kanker / Tidak Kanker)

2.3.2 Contoh pada Bidang Sosial

Contoh penelitian:

Hubungan antara tingkat pendidikan dan status pekerjaan.

Variabel:

  • Pendidikan (SMA, Sarjana, Pascasarjana)
  • Status pekerjaan (Bekerja, Tidak bekerja)

2.3.3 Contoh pada Bidang Ekonomi

Contoh penelitian:

Hubungan antara penggunaan sistem pembayaran digital dan perilaku konsumsi.

Variabel:

  • Penggunaan QRIS (Ya / Tidak)
  • Perilaku pembelian impulsif (Tinggi / Rendah)

3 Bagian 2: Tabel Kontingensi

3.1 Definisi Tabel Kontingensi

Tabel kontingensi adalah tabel yang digunakan untuk menyajikan distribusi frekuensi dari dua atau lebih variabel kategorikal secara simultan.

Tabel kontingensi menunjukkan bagaimana kategori dari satu variabel berhubungan dengan kategori variabel lainnya.

Tabel kontingensi paling sederhana adalah tabel 2 × 2.

Contoh tabel:

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

3.2 Struktur Tabel Kontingensi

Struktur tabel kontingensi terdiri dari:

  • Baris: kategori variabel pertama
  • Kolom: kategori variabel kedua
  • Sel: frekuensi kejadian kombinasi kategori

Setiap sel berisi jumlah observasi yang termasuk dalam kombinasi kategori tertentu.

3.3 Joint Distribution

Joint distribution merupakan probabilitas terjadinya dua kejadian secara bersamaan.

Secara matematis:

\[ P(A,B) = \frac{n_{AB}}{n} \]

di mana:

  • \(n_{AB}\) = jumlah observasi pada sel tertentu
  • \(n\) = total observasi

Sebagai contoh:

\[ P(\text{Merokok dan Kanker}) = \frac{a}{n} \]

3.4 Marginal Distribution

Marginal distribution adalah probabilitas dari satu variabel tanpa memperhatikan variabel lainnya.

Contoh:

\[ P(\text{Merokok}) = \frac{a+b}{n} \]

\[ P(\text{Kanker}) = \frac{a+c}{n} \]

Distribusi marginal diperoleh dari jumlah baris atau jumlah kolom.

3.5 Conditional Probability

Conditional probability adalah probabilitas suatu kejadian dengan syarat kejadian lain telah terjadi.

Secara matematis:

\[ P(A|B) = \frac{P(A,B)}{P(B)} \]

Contoh:

Probabilitas kanker pada perokok:

\[ P(\text{Kanker | Merokok}) = \frac{a}{a+b} \]

Probabilitas kanker pada non-perokok:

\[ P(\text{Kanker | Tidak Merokok}) = \frac{c}{c+d} \]

4 Bagian 3: Ukuran Asosiasi

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

4.1 Odds

Odds merupakan perbandingan antara peluang terjadinya suatu kejadian dengan peluang tidak terjadinya kejadian tersebut.

Secara matematis:

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

Jika menggunakan tabel kontingensi:

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

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

4.2 Odds Ratio

Odds Ratio (OR) digunakan untuk membandingkan odds antara dua kelompok.

Rumus:

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

atau dapat dituliskan sebagai

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

4.2.1 Interpretasi Odds Ratio

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

4.3 Relative Risk

Relative Risk (RR) membandingkan probabilitas kejadian pada kelompok terpapar dan tidak terpapar.

Rumus:

\[ RR = \frac{P(\text{Kejadian | Terpapar})}{P(\text{Kejadian | Tidak Terpapar})} \]

Jika menggunakan tabel kontingensi:

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

4.3.1 Interpretasi Relative Risk

  • RR = 1 → tidak ada perbedaan risiko
  • RR > 1 → risiko lebih tinggi pada kelompok terpapar
  • RR < 1 → paparan bersifat melindungi

5 Bagian 4: Contoh Perhitungan Manual

Misalkan dilakukan penelitian mengenai hubungan antara merokok dan kanker paru-paru.

Data yang diperoleh:

Kanker Tidak Kanker
Merokok 60 40
Tidak Merokok 20 80

Sehingga:

\[ a = 60, \quad b = 40, \quad c = 20, \quad d = 80 \]

Total observasi:

\[ n = 200 \]

5.1 Menghitung Peluang Bersyarat

Probabilitas kanker pada perokok:

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

Probabilitas kanker pada non-perokok:

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

5.2 Menghitung Odds

Odds kanker pada perokok:

\[ Odds_1 = \frac{60}{40} = 1.5 \]

Odds kanker pada non-perokok:

\[ Odds_0 = \frac{20}{80} = 0.25 \]

5.3 Menghitung Odds Ratio

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

\[ OR = \frac{(60)(80)}{(40)(20)} \]

\[ OR = \frac{4800}{800} \]

\[ OR = 6 \]

Interpretasi:

Perokok memiliki peluang terkena kanker paru-paru 6 kali lebih besar dibandingkan non-perokok.

6 Bagian 5: Analisis Menggunakan R

Analisis yang sama dapat dilakukan menggunakan perangkat lunak R.

6.1 Membuat Tabel Kontingensi

data <- matrix(c(60,40,20,80),
               nrow = 2,
               byrow = TRUE)

rownames(data) <- c("Merokok","Tidak Merokok")
colnames(data) <- c("Kanker","Tidak Kanker")
data
##               Kanker Tidak Kanker
## Merokok           60           40
## Tidak Merokok     20           80

6.2 Menghitung Odds Ratio

library(epitools)
## Warning: package 'epitools' was built under R version 4.5.2
oddsratio(data)
## $data
##               Kanker Tidak Kanker Total
## Merokok           60           40   100
## Tidak Merokok     20           80   100
## Total             80          120   200
## 
## $measure
##                         NA
## odds ratio with 95% C.I. estimate    lower    upper
##            Merokok       1.000000       NA       NA
##            Tidak Merokok 5.915517 3.181806 11.37695
## 
## $p.value
##                NA
## two-sided         midp.exact fisher.exact   chi.square
##   Merokok                 NA           NA           NA
##   Tidak Merokok 6.163344e-09 1.063603e-08 7.764037e-09
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

6.3 Uji Chi-Square

Uji chi-square digunakan untuk menguji apakah terdapat hubungan antara dua variabel kategorik.

Hipotesis:

  • H0: Tidak ada hubungan antara merokok dan kanker
  • H1: Ada hubungan antara merokok dan kanker

Kode R:

chisq.test(data)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  data
## X-squared = 31.688, df = 1, p-value = 1.811e-08

Jika nilai p-value lebih kecil dari 0.05 maka H0 ditolak.

7 Bagian 6: Interpretasi Hasil

7.1 Interpretasi Statistik

Dari hasil perhitungan diperoleh:

  • Odds Ratio = 6
  • Uji chi-square menunjukkan p-value < 0.05

Hal ini menunjukkan bahwa terdapat hubungan yang signifikan antara kebiasaan merokok dan kejadian kanker paru-paru.

7.2 Interpretasi Substantif

Secara substantif, hasil ini menunjukkan bahwa individu yang merokok memiliki risiko yang jauh lebih tinggi untuk mengalami kanker paru-paru dibandingkan individu yang tidak merokok.

8 Bagian 7 : Inferensi Tabel Kontingensi Dua Arah

8.1 Estimasi

8.1.1 Estimasi Titik

Estimasi titik digunakan untuk memperkirakan nilai parameter populasi berdasarkan data sampel. Pada tabel kontingensi, estimasi titik yang umum digunakan adalah proporsi. \[ p = \frac{x}{n} \] dimana : x = jumlah kejadian n = total pengamatan

8.1.2 Estimasi Interval

Estimasi interval digunakan untuk memberikan rentang nilai yang mungkin mengandung parameter populasi (confidence interval).

\[ \hat{p} \pm Z_{\alpha/2} \sqrt{\frac{\hat{p}(1-\hat{p})}{n}} \]

8.2 Uji Hipotesis

Uji ini digunakan untuk membandingkan dua proporsi dari dua kelompok.

\[ H_0: p_1 = p_2 \quad \text{vs} \quad H_1: p_1 \neq p_2 \]

8.2.1 Uji Proporsi

Rumus untuk proporsi masing-masing \[ p_1 = \frac{x_1}{n_1}, \quad p_2 = \frac{x_2}{n_2} \] rumus untuk proporsi gabungan \[ \hat{p} = \frac{x_1 + x_2}{n_1 + n_2} \] statistik uji \[ Z = \frac{p_1 - p_2}{\sqrt{\hat{p}(1-\hat{p})\left(\frac{1}{n_1} + \frac{1}{n_2}\right)}} \]

#Pastikan variabel data_matrix terdefinisi sebelum digunakan
set.seed(123)
data<- matrix(c(50, 30, 30, 50), nrow = 2, byrow = TRUE)
dimnames(data) <- list("Terpapar" = c("Ya", "Tidak"), "Kejadian" = c("Ya", "Tidak"))
print(data)
##         Kejadian
## Terpapar Ya Tidak
##    Ya    50    30
##    Tidak 30    50
# Uji Proporsi dengan variabel yang benar
prop_test <- prop.test(x = c(data[1,1], data[2,1]), 
                       n = c(sum(data[1,]), sum(data[2,])))
print(prop_test)
## 
##  2-sample test for equality of proportions with continuity correction
## 
## data:  c(data[1, 1], data[2, 1]) out of c(sum(data[1, ]), sum(data[2, ]))
## X-squared = 9.025, df = 1, p-value = 0.002663
## alternative hypothesis: two.sided
## 95 percent confidence interval:
##  0.08747151 0.41252849
## sample estimates:
## prop 1 prop 2 
##  0.625  0.375

dengan interpretasi jika p-value < 0,05 maka terdapat perbedaan proposi signifikan.

8.2.2 Uji Asosiasi

Digunakan untuk mengukur kekuatan hubungan antara dua variabel.

8.2.2.1 Risk Difference (RD), Relative Risk (RR), dan Odds Ratio (OR)

Risk Different (RD) dugunakan untuk mengukur selisih risiko antara dua kelompok. \[ RD = p_1 - p_2 \] dengan standart error \[ SE(RD) = \sqrt{\frac{p_1(1-p_1)}{n_1} + \frac{p_2(1-p_2)}{n_2}} \] Statistik Uji \[ Z = \frac{RD}{SE(RD)} \] Relative Risk (RR) digunakan untuk mengukur perbandingan risiko antar kelompok \[ RR = \frac{p_1}{p_2} \] Standar Error Log \[ SE(\ln RR) = \sqrt{\frac{1}{n_{11}} - \frac{1}{n_{1.}} + \frac{1}{n_{21}} - \frac{1}{n_{2.}}} \] Statistik Uji \[ Z = \frac{\ln(RR)}{SE(\ln RR)} \] Odds Ratio (OR) digunakan untuk mengukur peluang ralaif antar kelompok

\[ OR = \frac{n_{11} \cdot n_{22}}{n_{12} \cdot n_{21}} \] Standar Error Log \[ SE(\ln OR) = \sqrt{\frac{1}{n_{11}} + \frac{1}{n_{12}} + \frac{1}{n_{21}} + \frac{1}{n_{22}}} \] Stattistik Uji \[ Z = \frac{\ln(OR)}{SE(\ln OR)} \]

n11 <- 50; n12 <- 30; n21 <- 30; n22 <- 50
n1. <- n11 + n12; n2. <- n21 + n22
# Risk Difference
p1<-(n11/n1.)
p2<-(n21/n2.)
rd <- p1 - p2
se_rd <- sqrt((p1 * (1 - p1) / n1.) + p2*((1 - p2) / n2.))
z_rd <- rd / se_rd
# Relative Risk
rr <- (n11/n1.) / (n21/n2.)
se_ln_rr <- sqrt((1/n11) - (1/n1.) + (1/n21) - (1/n2.))
z_rr <- log(rr) / se_ln_rr
# Odds Ratio
or <- (n11 * n22) / (n12 * n21)
se_ln_or <- sqrt((1/n11) + (1/n12) + (1/n21) + (1/n22))
z_or <- log(or) / se_ln_or
#Hasil
list(RD = rd, SE_RD = se_rd, Z_RD = z_rd, RR = rr, SE_Ln_RR = se_ln_rr, Z_RR = z_rr, OR = or, SE_Ln_OR = se_ln_or, Z_OR = z_or)
## $RD
## [1] 0.25
## 
## $SE_RD
## [1] 0.07654655
## 
## $Z_RD
## [1] 3.265986
## 
## $RR
## [1] 1.666667
## 
## $SE_Ln_RR
## [1] 0.1683251
## 
## $Z_RR
## [1] 3.034756
## 
## $OR
## [1] 2.777778
## 
## $SE_Ln_OR
## [1] 0.3265986
## 
## $Z_OR
## [1] 3.128155

8.2.3 Uji Independensi

Digunakan untuk mengetahui apakah dua variabel kategorikal saling bebas (independen).

8.2.3.1 Uji Chi-Square

# Contoh Data
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
# Uji Chi-Square
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

Interpretasi: Jika p-value < 0.05, maka terdapat hubungan antara variabel “Terpapar” dan “Kejadian”.

8.2.3.2 Partisi Chi-Square

# Data Observasi
data_matrix <- matrix(c(495, 272, 590, 330, 265, 498), nrow = 2, byrow = TRUE)
colnames(data_matrix) <- c("Democrat", "Republican", "Independent")
rownames(data_matrix) <- c("Female", "Male")

# Uji Chi-Square
chi_test <- chisq.test(data_matrix)

# Hasil
list(Chi_Square = chi_test$statistic, P_Value = chi_test$p.value, Decision = ifelse(chi_test$p.value < 0.05, "Reject H0", "Fail to Reject H0"))
## $Chi_Square
## X-squared 
##  12.56926 
## 
## $P_Value
## [1] 0.00186475
## 
## $Decision
## [1] "Reject H0"
# Data Observasi
data_matrix <- matrix(c(495, 272, 330, 265), nrow = 2, byrow = TRUE)
colnames(data_matrix) <- c("Democrat", "Republican")
rownames(data_matrix) <- c("Female", "Male")

# Uji Chi-Square Partisi 1
chi_test1 <- chisq.test(data_matrix)

# Data Partisi 2
data_matrix2 <- matrix(c(767, 590, 595, 498), nrow = 2, byrow = TRUE)
colnames(data_matrix2) <- c("Dem+Rep", "Independent")
rownames(data_matrix2) <- c("Female", "Male")

# Uji Chi-Square Partisi 2
chi_test2 <- chisq.test(data_matrix2)

# Hasil
list(Chi_Square_Partisi1 = chi_test1, Chi_Square_Partisi2 = chi_test2)
## $Chi_Square_Partisi1
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  data_matrix
## X-squared = 11.178, df = 1, p-value = 0.0008279
## 
## 
## $Chi_Square_Partisi2
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  data_matrix2
## X-squared = 0.98267, df = 1, p-value = 0.3215

Interpretasi Hasil - Hasil partisi pertama menunjukkan bahwa perbedaan antara Democrat dan Republican signifikan (p < 0.001).

Hasil partisi kedua menunjukkan bahwa gabungan Democrat + Republican tidak berbeda signifikan dengan Independent (p = 0.698).

Kesimpulan:Gender lebih mempengaruhi pilihan antara Democrat dan Republican, tetapi tidak berpengaruh signifikan terhadap pilihan Independent.

8.2.3.3 Uji Likelihood Ratio (G^2)

# Data Observasi
data_matrix <- matrix(c(688, 650, 21, 59), nrow = 2, byrow = TRUE)
colnames(data_matrix) <- c("Cancer (+)", "Control (-)")
rownames(data_matrix) <- c("Smoker", "Non-Smoker")

# Hitung Frekuensi Ekspektasi
data_expected <- chisq.test(data_matrix)$expected

# Hitung Statistik G²
G2 <- 2 * sum(data_matrix * log(data_matrix / data_expected))

# Nilai kritis chi-square untuk df = 1 dan alpha = 0.05
critical_value <- qchisq(0.95, df = 1)

# Hasil
list(G2 = G2, Critical_Value = critical_value, Decision = ifelse(G2 > critical_value, "Reject H0", "Fail to Reject H0"))
## $G2
## [1] 19.87802
## 
## $Critical_Value
## [1] 3.841459
## 
## $Decision
## [1] "Reject H0"

Kesimpulan

Uji Likelihood Ratio (G²) digunakan sebagai alternatif dari uji Chi-Square untuk menguji independensi dalam tabel kontingensi.

Jika G2 lebih besar dari nilai kritis χ2 , maka hipotesis nol ditolak, menunjukkan adanya hubungan antara dua variabel.

Contoh perhitungan manual dan implementasi di R menunjukkan bahwa ada asosiasi signifikan antara merokok dan kanker paru-paru.

8.2.3.4 Uji Exact Fisher

# Definisi parameter
N <- 40   # Total populasi
K <- 29   # Jumlah kategori sukses (bola putih)
n <- 20   # Jumlah sampel diambil
x <- 18   # Jumlah sukses dalam sampel

# Hitung probabilitas P(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
choose(29, 20) * choose(11, 0) / choose(40, 20)
## [1] 7.26533e-05
choose(29, 19) * choose(11, 1) / choose(40, 20)
## [1] 0.001598373
choose(29, 18) * choose(11, 2) / choose(40, 20)
## [1] 0.01380413
choose(29, 17) * choose(11, 3) / choose(40, 20)
## [1] 0.06211857
choose(29, 16) * choose(11, 4) / choose(40, 20)
## [1] 0.162464
choose(29, 15) * choose(11, 5) / choose(40, 20)
## [1] 0.2599423
choose(29, 14) * choose(11, 6) / choose(40, 20)
## [1] 0.2599423
choose(29, 13) * choose(11, 7) / choose(40, 20)
## [1] 0.162464
choose(29, 12) * choose(11, 8) / choose(40, 20)
## [1] 0.06211857
choose(29, 11) * choose(11, 9) / choose(40, 20)
## [1] 0.01380413
choose(29, 10) * choose(11, 10) / choose(40, 20)
## [1] 0.001598373
choose(29, 9) * choose(11, 11) / choose(40, 20)
## [1] 7.26533e-05
choose(29, 18) * choose(11, 2) / choose(40, 20)
## [1] 0.01380413
p.value<-0.00007+0.00160+0.01380+0.01380+0.00160+0.00007
p.value
## [1] 0.03094

menggunakan fisher.test() di R

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

Hasilnya akan memberikan nilai p untuk menentukan apakah ada hubungan signifikan antara kedua variabel.

Interpretasi Hasil

Jika p-value < 0.05, kita menolak hipotesis nol, yang berarti ada hubungan signifikan antara dua variabel. Jika p-value >= 0.05, kita gagal menolak hipotesis nol, yang berarti tidak ada cukup bukti untuk menyatakan adanya hubungan signifikan.

9 Tugas 6: Inferensi Tabel Kontingensi Dua Arah

9.1 Pendahuluan

Analisis tabel kontingensi dua arah merupakan salah satu metode dalam statistika yang digunakan untuk mengkaji hubungan antara dua variabel kategorikal. Melalui pendekatan ini, kita dapat mengetahui apakah terdapat hubungan atau keterkaitan yang signifikan antara kedua variabel tersebut.

Dalam praktiknya, analisis ini sering digunakan dalam berbagai bidang seperti kesehatan, sosial, dan ekonomi. Beberapa metode inferensi yang umum digunakan antara lain uji dua proporsi, uji Chi-Square, uji Likelihood Ratio (G-Test), dan uji Fisher Exact.

Pada tugas ini, analisis dilakukan menggunakan perangkat lunak R programming language, yang memudahkan perhitungan serta visualisasi data dalam bentuk tabel kontingensi.

9.2 Kasus 1: Merokok dan Kanker Paru

9.2.1 Data

Data menunjukkan hubungan antara status merokok (Smoker dan NonSmoker) dengan kejadian kanker paru (Cancer dan Control/tidak kanker).

Status Merokok Cancer Control
Smoker 688 650
NonSmoker 21 59

Data ini bertujuan untuk melihat apakah merokok berhubungan dengan peningkatan risiko kanker paru.

9.2.2 Tabel Kontingensi

smoking <- matrix(c(688,650,21,59),
                  nrow=2,
                  byrow=TRUE)

rownames(smoking) <- c("Smoker","NonSmoker")
colnames(smoking) <- c("Cancer","Control")

smoking
##           Cancer Control
## Smoker       688     650
## NonSmoker     21      59

Baris menunjukkan status merokok, kolom menunjukkan status kanker.

9.2.3 Estimasi Proporsi

Proporsi dihitung sebagai: \[ p = \frac{x}{n} \]

Untuk kasus ini maka dapat dihitung sebagai berikut : \[ p_1 = \frac{688}{1338}, \quad p_2 = \frac{21}{80} \]

9.2.4 Uji Dua Proporsi

Hipotesis : \[ H_0: p_1 = p_2 \quad \text{vs} \quad H_1: p_1 \neq p_2 \] Proporsi Gabungan : \[ \hat{p} = \frac{x_1 + x_2}{n_1 + n_2} \] Statistik Uji : \[ Z = \frac{p_1 - p_2}{\sqrt{\hat{p}(1-\hat{p})\left(\frac{1}{n_1} + \frac{1}{n_2}\right)}} \] atau dengan perhitungan R adalah sebagai berikut :

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

9.2.5 Chi Square

Rumus Statistika Chi-Square : \[ \chi^2 = \sum \frac{(O - E)^2}{E} \] Frekuensi harapan dihitung dengan: \[ E_{ij} = \frac{(\text{total baris}_i)(\text{total kolom}_j)}{\text{total keseluruhan}} \] Derajat kebebasan untuk uji chi-square adalah : \[ df = (r - 1)(c - 1) \]

chisq.test(smoking)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  smoking
## X-squared = 18.136, df = 1, p-value = 2.057e-05

9.2.6 Likelihood Ratio

\[ G = 2 \sum O \ln \left(\frac{O}{E}\right) \] dengan keputusan tolak hipotesis nul jika nilai statistik uji besar, atau p-value < alpha

library(DescTools)
## Warning: package 'DescTools' was built under R version 4.5.1
GTest(smoking)
## 
##  Log likelihood ratio (G-test) test of independence without correction
## 
## data:  smoking
## G = 19.878, X-squared df = 1, p-value = 8.254e-06

9.2.7 Fisher Exact Test

Untuk tabel kontingensi 2 x 2, probabilitas dihitung dnegan distribusi hipergeometrik \[ P = \frac{(a+b)!(c+d)!(a+c)!(b+d)!}{a!b!c!d!n!} \]

fisher.test(smoking)
## 
##  Fisher's Exact Test for Count Data
## 
## data:  smoking
## 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

9.2.8 Visualisasi

mosaicplot(smoking,
           shade = TRUE,
           main = "Hubungan Merokok dan Kanker Paru",
           xlab = "Status Merokok",
           ylab = "Status Kanker")

9.3 Kasus 2: Gender dan Partai Politik

9.3.1 Data

Gender Democrat Republican Independent
Female 495 272 590
Male 330 265 498

9.3.2 Membuat Tabel

party <- matrix(c(495,272,590,
                  330,265,498),
                nrow=2,
                byrow=TRUE)

rownames(party) <- c("Female","Male")
colnames(party) <- c("Democrat","Republican","Independent")

party
##        Democrat Republican Independent
## Female      495        272         590
## Male        330        265         498

9.3.3 Uji Chi Square

chisq.test(party)
## 
##  Pearson's Chi-squared test
## 
## data:  party
## X-squared = 12.569, df = 2, p-value = 0.001865

9.3.4 Frekuensi Harapan

chisq.test(party)$expected
##        Democrat Republican Independent
## Female  456.949   297.4322    602.6188
## Male    368.051   239.5678    485.3812

9.3.5 Residual

chisq.test(party)$residuals
##         Democrat Republican Independent
## Female  1.780051  -1.474656  -0.5140388
## Male   -1.983409   1.643125   0.5727640

9.3.6 Mosaic Plot

mosaicplot(party,
           shade = TRUE,
           main = "Gender vs Partai Politik",
           xlab = "Gender",
           ylab = "Partai Politik")

9.4 Kesimpulan Tugas 6

Berdasarkan analisis tabel kontingensi dua arah yang telah dilakukan:

  1. Pada kasus merokok dan kanker paru, seluruh metode (uji proporsi, Chi-Square, G-Test, dan Fisher) menunjukkan hasil yang konsisten, yaitu terdapat hubungan signifikan antara kebiasaan merokok dan kejadian kanker paru. Perokok memiliki risiko yang jauh lebih tinggi dibandingkan non-perokok.

  2. Pada kasus gender dan preferensi partai politik, uji Chi-Square menunjukkan adanya hubungan signifikan antara gender dan pilihan partai politik, meskipun tidak sekuat kasus pertama.

  3. Penggunaan berbagai metode inferensi memberikan pemahaman yang lebih komprehensif, karena masing-masing metode memiliki kelebihan dalam kondisi tertentu.

  4. Visualisasi seperti mosaic plot membantu memperjelas pola hubungan antar variabel secara intuitif.

Secara keseluruhan, analisis ini menunjukkan bahwa tabel kontingensi dua arah merupakan alat yang sangat efektif untuk mengidentifikasi hubungan antara variabel kategorikal.