1 PENDAHULUAN

1.1 Latar Belakang

Dalam era big data saat ini, informasi yang dikumpulkan dalam berbagai bidang penelitian seperti kesehatan masyarakat, ekonomi, psikologi, dan ilmu sosial seringkali berbentuk data kategorik. Data kategorik adalah data yang menggambarkan karakteristik atau atribut dari suatu objek individu yang dapat diklasifikasikan ke dalam kelompok atau kategori tertentu. Berbeda dengan data numerik kontinu yang dapat diukur dengan presisi tinggi, data kategorik lebih merepresentasikan kualitas atau sifat dari suatu observasi.

Karakteristik utama data kategorik:

  1. Bersifat diskrit - Setiap observasi hanya dapat masuk ke dalam satu kategori
  2. Tidak memiliki ukuran - Kategori bersifat kualitatif
  3. Dapat berupa nominal atau ordinal - Tergantung pada apakah kategori memiliki urutan alami

Dalam statistika, analisis data kategorik telah berkembang menjadi cabang ilmu yang sangat penting. Alan Agresti (2013), seorang pakar terkemuka dalam bidang ini, menyatakan bahwa “Analisis data kategorik adalah inti dari banyak penelitian di ilmu sosial, biomedis, dan kesehatan masyarakat.” Metode-metode yang dikembangkan khusus untuk data kategorik memungkinkan peneliti untuk:

  • Menguji hubungan antar variabel kategorik
  • Mengukur kekuatan asosiasi
  • Membuat prediksi tentang keanggotaan kategori
  • Memahami pola dan struktur dalam data

Salah satu alat fundamental dalam analisis data kategorik adalah tabel kontingensi, yang memungkinkan peneliti untuk menyajikan dan menganalisis hubungan antara dua atau lebih variabel kategorik secara simultan. Dari tabel ini, berbagai ukuran asosiasi dapat dihitung, termasuk Odds Ratio dan Relative Risk, yang memberikan gambaran kuantitatif tentang kekuatan dan arah hubungan.

1.2 Tujuan Tugas

Setelah menyelesaikan tugas ini secara komprehensif, mahasiswa diharapkan memiliki kemampuan sebagai berikut:

  1. Memahami Konsep Dasar - Menjelaskan dengan tepat apa yang dimaksud dengan analisis data kategorik, karakteristiknya, dan ruang lingkup penerapannya dalam berbagai bidang penelitian.
  2. Menguasai Tabel Kontingensi - Mampu membangun, membaca, dan menginterpretasi tabel kontingensi, termasuk konsep distribusi joint, marginal, dan probabilitas bersyarat.
  3. Menghitung Ukuran Asosiasi - Memahami dan mampu menghitung berbagai ukuran asosiasi seperti Odds, Odds Ratio, dan Relative Risk, termasuk interpretasi statistiknya.
  4. Melakukan Perhitungan Manual - Terampil dalam melakukan perhitungan manual langkah demi langkah untuk memverifikasi hasil analisis.
  5. Mengimplementasikan dengan R - Mampu menggunakan perangkat lunak R untuk melakukan analisis data kategorik, termasuk pembuatan tabel, perhitungan ukuran asosiasi, dan uji hipotesis.
  6. Menginterpretasi Hasil - Menyusun interpretasi yang komprehensif baik secara statistik maupun substantif dalam konteks permasalahan nyata.

1.3 Ruang Lingkup Analisis Data Kategorik

Analisis data kategorik mencakup berbagai metode statistik yang dirancang khusus untuk menangani data dalam bentuk frekuensi atau proporsi. Metode-metode ini berbeda secara fundamental dari metode yang digunakan untuk data kontinu karena:

  • Distribusi sampling - Data kategorik mengikuti distribusi diskrit seperti binomial, multinomial, atau Poisson
  • Transformasi - Sering memerlukan transformasi khusus seperti logit untuk memenuhi asumsi model
  • Interpretasi - Hasil analisis diinterpretasikan dalam bentuk odds, risiko, atau rasio

Contoh Penerapan dalam Penelitian:

  1. Kedokteran: Studi klinis untuk menguji efektivitas obat baru dengan membandingkan kelompok perlakuan dan kontrol
  2. Epidemiologi: Investigasi faktor risiko penyakit dengan desain kasus-kontrol atau kohort
  3. Pemasaran: Analisis preferensi konsumen berdasarkan karakteristik demografis
  4. Pendidikan: Evaluasi hubungan antara metode pengajaran dengan tingkat kelulusan siswa

2 BAGIAN 1: DEFINISI ANALISIS DATA KATEGORI

2.1 1.1 Pengertian Analisis Data Kategori

Analisis Data Kategori adalah sekumpulan prosedur statistik yang dirancang khusus untuk menganalisis data yang terdiri dari variabel-variabel kategorik. Data kategorik, juga dikenal sebagai data kualitatif, adalah data di mana observasi-observasi dikelompokkan ke dalam kategori-kategori diskrit berdasarkan atribut atau karakteristik tertentu.

Menurut Agresti (2013), analisis data kategorik memiliki karakteristik utama sebagai berikut:

“Analisis data kategorik berfokus pada data yang berupa frekuensi atau proporsi dalam berbagai kategori. Tujuan utamanya adalah untuk mempelajari distribusi dari variabel-variabel kategorik dan hubungan di antara mereka.”

Perbedaan mendasar dengan analisis data numerik:

Aspek Data Numerik Data Kategorik
Skala pengukuran Interval/Rasio Nominal/Ordinal
Statistik deskriptif Mean, median, SD Frekuensi, proporsi, modus
Distribusi teoritis Normal, t, F Binomial, Poisson, Multinomial
Visualisasi Histogram, boxplot Bar chart, pie chart
Uji hipotesis t-test, ANOVA Chi-square, G-test

2.2 1.2 Karakteristik Variabel Kategori

Variabel kategorik memiliki karakteristik yang membedakannya dari variabel numerik:

2.2.1 1.2.1 Skala Pengukuran

a. Skala Nominal - Kategori bersifat kualitatif dan tidak memiliki urutan - Angka yang diberikan hanya sebagai label - Contoh: Jenis kelamin (1 = Laki-laki, 2 = Perempuan), status pernikahan, agama

b. Skala Ordinal - Kategori memiliki urutan alami - Jarak antar kategori tidak diketahui atau tidak sama - Contoh: Tingkat pendidikan (1 = SD, 2 = SMP, 3 = SMA, 4 = PT), kepuasan pelanggan

2.2.2 1.2.2 Sifat Matematis

  1. Mutually Exclusive (Saling Lepas) Setiap observasi hanya dapat masuk ke dalam satu kategori. Seorang individu tidak mungkin berada dalam dua kategori sekaligus untuk variabel yang sama.

  2. Exhaustive (Lengkap) Kategori yang dibuat harus mencakup semua kemungkinan nilai yang mungkin muncul. Tidak boleh ada observasi yang tidak dapat diklasifikasikan.

  3. Diskrit Data kategorik selalu bersifat diskrit, tidak kontinu. Setiap observasi ditempatkan dalam kategori tertentu.

2.2.3 1.2.3 Distribusi Probabilitas

Data kategorik mengikuti distribusi probabilitas diskrit:

Distribusi Binomial Untuk variabel biner (dua kategori): \[P(Y = y) = \binom{n}{y} \pi^y (1-\pi)^{n-y}\]

Distribusi Multinomial Untuk variabel dengan lebih dari dua kategori: \[P(n_1, n_2, ..., n_k) = \frac{n!}{n_1! n_2! ... n_k!} \pi_1^{n_1} \pi_2^{n_2} ... \pi_k^{n_k}\]

2.3 1.3 Penerapan Analisis Data Kategori dalam Penelitian

2.3.1 1.3.1 Penelitian Kesehatan Masyarakat

Studi Kasus: Hubungan Merokok dengan Kanker Paru

Dalam studi kasus-kontrol, peneliti mengumpulkan data tentang riwayat merokok pada pasien kanker paru (kasus) dan individu sehat (kontrol). Analisis data kategorik digunakan untuk: - Menghitung odds ratio untuk mengukur kekuatan asosiasi - Menguji signifikansi hubungan dengan uji Chi-square - Mengontrol variabel perancu dengan regresi logistik

2.3.2 1.3.2 Penelitian Ekonomi

Studi Kasus: Preferensi Konsumen

Perusahaan ingin mengetahui apakah terdapat hubungan antara jenis kelamin dengan preferensi merek produk. Data dikumpulkan dari survei konsumen dan dianalisis dengan: - Tabel kontingensi untuk melihat distribusi bersama - Uji independensi Chi-square - Analisis korespondensi untuk visualisasi

2.3.3 1.3.3 Penelitian Pendidikan

Studi Kasus: Metode Pembelajaran

Peneliti ingin membandingkan efektivitas tiga metode pembelajaran terhadap tingkat kelulusan siswa. Analisis melibatkan: - Tabel kontingensi 3 × 2 - Uji homogenitas proporsi - Analisis residual untuk identifikasi pola

2.3.4 1.3.4 Penelitian Sosial

Studi Kasus: Mobilitas Sosial

Sosiolog meneliti hubungan antara pendidikan orang tua dengan pendidikan anak. Analisis menggunakan: - Tabel kontingensi dengan skala ordinal - Ukuran asosiasi untuk data ordinal (Gamma, Kendall’s tau) - Model log-linear untuk pola asosiasi kompleks

2.4 1.4 Keunggulan Analisis Data Kategori

  1. Fleksibilitas - Dapat diterapkan pada berbagai jenis data dan desain penelitian
  2. Interpretasi Mudah - Hasil analisis dalam bentuk odds, risiko, atau proporsi yang mudah dipahami
  3. Robust - Tidak memerlukan asumsi distribusi normal
  4. Aplikasi Luas - Digunakan di hampir semua bidang ilmu

2.5 1.5 Keterbatasan

  1. Kehilangan Informasi - Pengkategorian data kontinu dapat menyebabkan hilangnya informasi
  2. Ukuran Sampel - Memerlukan ukuran sampel yang cukup besar, terutama untuk tabel berdimensi tinggi
  3. Sparse Data - Masalah dengan sel yang memiliki frekuensi kecil

3 BAGIAN 2: TABEL KONTINGENSI

3.1 2.1 Definisi Tabel Kontingensi

Tabel kontingensi, juga dikenal sebagai crosstabulation atau tabel silang, adalah sebuah tabel dua arah yang menyajikan frekuensi bersama dari dua atau lebih variabel kategorik. Tabel ini dinamakan “kontingensi” karena menunjukkan bagaimana frekuensi observasi “bergantung” atau “berkontingensi” pada kombinasi kategori dari variabel-variabel yang dianalisis.

Menurut Fienberg (2007), tabel kontingensi adalah:

“Alat fundamental dalam statistika untuk meringkas dan menganalisis hubungan antara variabel-variabel kategorik. Tabel ini menyajikan distribusi bersama dari observasi-observasi berdasarkan kategori-kategori dari variabel yang diteliti.”

3.2 2.2 Struktur Tabel Kontingensi

3.2.1 2.2.1 Notasi Umum

Untuk tabel kontingensi dua arah dengan I baris dan J kolom, struktur umumnya adalah:

Kolom 1 Kolom 2 Kolom J Total Baris
Baris 1 \(n_{11}\) \(n_{12}\) \(n_{1J}\) \(n_{1.}\)
Baris 2 \(n_{21}\) \(n_{22}\) \(n_{2J}\) \(n_{2.}\)
Baris I \(n_{I1}\) \(n_{I2}\) \(n_{IJ}\) \(n_{I.}\)
Total Kolom \(n_{.1}\) \(n_{.2}\) \(n_{.J}\) n

Keterangan: - \(n_{ij}\) = frekuensi observasi pada baris ke-i dan kolom ke-j - \(n_{i.} = \sum_{j=1}^J n_{ij}\) = total baris ke-i - \(n_{.j} = \sum_{i=1}^I n_{ij}\) = total kolom ke-j - \(n = \sum_{i=1}^I \sum_{j=1}^J n_{ij}\) = total keseluruhan observasi

3.2.2 2.2.2 Tabel Kontingensi 2×2

Bentuk paling sederhana dan paling sering digunakan adalah tabel 2×2, yang melibatkan dua variabel dengan masing-masing dua kategori. Misalkan kita memiliki variabel X (baris) dan Y (kolom):

Struktur Tabel 2×2:

Y = 1 Y = 2 Total
X = 1 a b a + b
X = 2 c d c + d
Total a + c b + d n

Contoh Numerik: Hubungan Merokok dengan Kanker Paru

Kanker Tidak Kanker Total
Perokok 60 40 100
Bukan Perokok 20 80 100
Total 80 120 200

3.3 2.3 Konsep Joint Distribution (Distribusi Bersama)

Joint distribution atau distribusi bersama menunjukkan probabilitas sebuah observasi secara simultan berada pada kategori baris ke-i dan kolom ke-j. Probabilitas bersama dihitung dengan membagi frekuensi setiap sel dengan total keseluruhan observasi.

\[p_{ij} = \frac{n_{ij}}{n}\]

Sifat-sifat joint distribution: 1. \(0 \leq p_{ij} \leq 1\) untuk semua i, j 2. \(\sum_{i=1}^I \sum_{j=1}^J p_{ij} = 1\)

Contoh Perhitungan:

Dari tabel merokok vs kanker paru:

Kanker Tidak Kanker Total
Perokok 60/200 = 0.30 40/200 = 0.20 0.50
Bukan Perokok 20/200 = 0.10 80/200 = 0.40 0.50
Total 0.40 0.60 1.00

Interpretasi: - \(p_{11} = 0.30\): Probabilitas seorang individu adalah perokok DAN menderita kanker paru - \(p_{12} = 0.20\): Probabilitas perokok DAN tidak kanker - \(p_{21} = 0.10\): Probabilitas bukan perokok DAN kanker - \(p_{22} = 0.40\): Probabilitas bukan perokok DAN tidak kanker

3.4 2.4 Konsep Marginal Distribution (Distribusi Marjinal)

Marginal distribution adalah distribusi probabilitas dari satu variabel saja, dengan mengabaikan variabel lainnya. Distribusi ini diperoleh dengan menjumlahkan probabilitas bersama sesuai dengan baris atau kolom yang diinginkan.

3.4.1 2.4.1 Distribusi Marjinal Baris

\[p_{i.} = \frac{n_{i.}}{n} = \sum_{j=1}^J p_{ij}\]

Ini adalah probabilitas observasi berada pada baris ke-i, tanpa memperhatikan kategori kolomnya.

Contoh: - \(p_{1.} = 0.30 + 0.20 = 0.50\): Probabilitas seseorang adalah perokok - \(p_{2.} = 0.10 + 0.40 = 0.50\): Probabilitas seseorang bukan perokok

3.4.2 2.4.2 Distribusi Marjinal Kolom

\[p_{.j} = \frac{n_{.j}}{n} = \sum_{i=1}^I p_{ij}\]

Ini adalah probabilitas observasi berada pada kolom ke-j, tanpa memperhatikan kategori barisnya.

Contoh: - \(p_{.1} = 0.30 + 0.10 = 0.40\): Probabilitas seseorang menderita kanker paru - \(p_{.2} = 0.20 + 0.40 = 0.60\): Probabilitas seseorang tidak menderita kanker paru

3.5 2.5 Konsep Conditional Probability (Probabilitas Bersyarat)

Conditional probability adalah probabilitas suatu kejadian terjadi, dengan syarat kejadian lain telah terjadi. Dalam tabel kontingensi, ini berarti probabilitas berada pada suatu kategori dari satu variabel, diberikan bahwa kita tahu observasi tersebut berada pada kategori tertentu dari variabel lainnya.

3.5.1 2.5.1 Probabilitas Bersyarat Kolom diberikan Baris

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

Contoh: - \(P(\text{Kanker} | \text{Perokok}) = \frac{60}{100} = 0.60\) Interpretasi: 60% perokok menderita kanker paru - \(P(\text{Tidak Kanker} | \text{Perokok}) = \frac{40}{100} = 0.40\) - \(P(\text{Kanker} | \text{Bukan Perokok}) = \frac{20}{100} = 0.20\) - \(P(\text{Tidak Kanker} | \text{Bukan Perokok}) = \frac{80}{100} = 0.80\)

3.5.2 2.5.2 Probabilitas Bersyarat Baris diberikan Kolom

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

Contoh: - \(P(\text{Perokok} | \text{Kanker}) = \frac{60}{80} = 0.75\) Interpretasi: 75% penderita kanker adalah perokok - \(P(\text{Bukan Perokok} | \text{Kanker}) = \frac{20}{80} = 0.25\) - \(P(\text{Perokok} | \text{Tidak Kanker}) = \frac{40}{120} = 0.333\) - \(P(\text{Bukan Perokok} | \text{Tidak Kanker}) = \frac{80}{120} = 0.667\)

3.6 2.6 Hubungan Antar Distribusi

Ketiga jenis distribusi ini saling terkait melalui hukum probabilitas total dan teorema Bayes.

3.6.1 2.6.1 Hukum Probabilitas Total

\[P(Y = j) = \sum_{i=1}^I P(Y = j | X = i) \times P(X = i)\]

Contoh: \(P(\text{Kanker}) = 0.60 \times 0.50 + 0.20 \times 0.50 = 0.30 + 0.10 = 0.40\)

3.6.2 2.6.2 Teorema Bayes

\[P(X = i | Y = j) = \frac{P(Y = j | X = i) \times P(X = i)}{P(Y = j)}\]

Contoh: \(P(\text{Perokok} | \text{Kanker}) = \frac{0.60 \times 0.50}{0.40} = \frac{0.30}{0.40} = 0.75\)

3.7 2.7 Tabel Kontingensi dengan Dimensi Lebih Tinggi

3.7.1 2.7.1 Tabel Tiga Arah

Untuk tiga variabel (X, Y, Z) dengan masing-masing I, J, K kategori, struktur tabelnya adalah:

\[n_{ijk} = \text{frekuensi untuk X=i, Y=j, Z=k}\]

Contoh: Hubungan Merokok, Kanker Paru, dan Usia

Usia < 50 Usia ≥ 50
Kanker Tidak Kanker Tidak
Perokok 20 30 40 10
Bukan Perokok 5 45 15 35

3.7.2 2.7.2 Analisis Tabel Multi-Dimensi

Untuk tabel berdimensi tinggi, analisis yang umum digunakan: - Model log-linear: Untuk mempelajari pola asosiasi kompleks - Regresi logistik: Untuk pemodelan dengan variabel respons biner - Analisis korespondensi: Untuk visualisasi hubungan

4 BAGIAN 3: UKURAN ASOSIASI

4.1 3.1 Pendahuluan

Ukuran asosiasi adalah statistik yang digunakan untuk mengkuantifikasi kekuatan dan arah hubungan antara dua variabel kategorik. Dalam tabel kontingensi 2×2, terdapat beberapa ukuran asosiasi yang umum digunakan, masing-masing dengan interpretasi dan aplikasi yang berbeda.

4.2 3.2 Odds (Kecenderungan)

4.2.1 3.2.1 Definisi Matematis

Odds adalah rasio antara probabilitas suatu kejadian terjadi dengan probabilitas kejadian tersebut tidak terjadi. Jika \(\pi\) adalah probabilitas sukses (kejadian terjadi), maka odds didefinisikan sebagai:

\[\text{Odds} = \frac{\pi}{1-\pi}\]

Sifat-sifat Odds: - Odds berkisar dari 0 hingga \(\infty\) - Odds = 1 ketika \(\pi = 0.5\) (probabilitas sukses sama dengan gagal) - Odds > 1 ketika \(\pi > 0.5\) (sukses lebih mungkin) - Odds < 1 ketika \(\pi < 0.5\) (gagal lebih mungkin)

4.2.2 3.2.2 Odds dalam Tabel Kontingensi

Dalam konteks tabel kontingensi 2×2, kita dapat menghitung odds untuk setiap kelompok:

Odds untuk Kelompok Terpapar (X = 1):

\[\text{Odds}_1 = \frac{P(Y=1 | X=1)}{P(Y=2 | X=1)} = \frac{\pi_1}{1-\pi_1} = \frac{n_{11}/n_{1.}}{n_{12}/n_{1.}} = \frac{n_{11}}{n_{12}}\]

Odds untuk Kelompok Tidak Terpapar (X = 2):

\[\text{Odds}_2 = \frac{P(Y=1 | X=2)}{P(Y=2 | X=2)} = \frac{\pi_2}{1-\pi_2} = \frac{n_{21}/n_{2.}}{n_{22}/n_{2.}} = \frac{n_{21}}{n_{22}}\]

4.2.3 3.2.3 Contoh Perhitungan Odds

Menggunakan data merokok vs kanker paru:

Kanker Tidak Kanker Total
Perokok 60 40 100
Bukan Perokok 20 80 100

Odds Kanker pada Perokok: \[\text{Odds}_{\text{perokok}} = \frac{60}{40} = 1.5\]

Interpretasi: Perokok memiliki kecenderungan 1.5 kali lebih besar untuk menderita kanker dibandingkan tidak menderita kanker.

Odds Kanker pada Bukan Perokok: \[\text{Odds}_{\text{bukan perokok}} = \frac{20}{80} = 0.25\]

Interpretasi: Bukan perokok memiliki kecenderungan 0.25 kali (atau 1/4 kali) untuk menderita kanker dibandingkan tidak menderita kanker.

4.3 3.3 Odds Ratio (OR)

4.3.1 3.3.1 Definisi dan Rumus

Odds Ratio (OR) adalah ukuran asosiasi yang membandingkan odds suatu kejadian pada kelompok terpapar dengan odds pada kelompok tidak terpapar.

\[OR = \frac{\text{Odds}_1}{\text{Odds}_2} = \frac{n_{11}/n_{12}}{n_{21}/n_{22}} = \frac{n_{11} \times n_{22}}{n_{12} \times n_{21}}\]

Dalam notasi alternatif dengan a, b, c, d:

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

4.3.2 3.3.2 Sifat-sifat Matematis OR

  1. Range: \(0 < OR < \infty\)
  2. Independensi: \(OR = 1\) jika tidak ada asosiasi
  3. Simetri: \(OR_{XY} = OR_{YX}\) (bersifat simetris)
  4. Invarian: OR tidak berubah jika baris dan kolom dipertukarkan
  5. Hubungan dengan peluang:
    • \(OR > 1\): odds lebih besar pada kelompok 1
    • \(OR < 1\): odds lebih kecil pada kelompok 1
    • \(OR = 1\): odds sama pada kedua kelompok

4.3.3 3.3.3 Interval Kepercayaan untuk OR

Interval kepercayaan 95% untuk OR dihitung menggunakan pendekatan log-normal:

\[\ln(OR) \pm 1.96 \times SE(\ln(OR))\]

di mana standard error dari log OR adalah:

\[SE(\ln(OR)) = \sqrt{\frac{1}{n_{11}} + \frac{1}{n_{12}} + \frac{1}{n_{21}} + \frac{1}{n_{22}}}\]

Kemudian eksponensialkan batas-batas untuk mendapatkan interval kepercayaan dalam skala OR.

4.3.4 3.3.4 Contoh Perhitungan OR

Langkah 1: Hitung OR

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

Langkah 2: Hitung ln(OR) dan SE

\[\ln(OR) = \ln(6.0) = 1.7918\]

\[SE = \sqrt{\frac{1}{60} + \frac{1}{40} + \frac{1}{20} + \frac{1}{80}} = \sqrt{0.0167 + 0.025 + 0.05 + 0.0125} = \sqrt{0.1042} = 0.3228\]

Langkah 3: Hitung interval kepercayaan 95% untuk ln(OR)

Batas bawah = \(1.7918 - 1.96 \times 0.3228 = 1.7918 - 0.6327 = 1.1591\) Batas atas = \(1.7918 + 1.96 \times 0.3228 = 1.7918 + 0.6327 = 2.4245\)

Langkah 4: Eksponensialkan

\(OR_{lower} = e^{1.1591} = 3.19\) \(OR_{upper} = e^{2.4245} = 11.29\)

Interpretasi: Odds Ratio = 6.0 dengan interval kepercayaan 95% (3.19; 11.29). Ini berarti perokok memiliki odds menderita kanker paru 6 kali lebih besar dibandingkan bukan perokok. Karena interval kepercayaan tidak mencakup 1, hubungan ini signifikan secara statistik.

4.4 3.4 Relative Risk (RR)

4.4.1 3.4.1 Definisi dan Rumus

Relative Risk (RR), juga dikenal sebagai risk ratio, membandingkan probabilitas (risiko) suatu kejadian pada kelompok terpapar dengan probabilitas pada kelompok tidak terpapar.

\[RR = \frac{P(Y=1 | X=1)}{P(Y=1 | X=2)} = \frac{\pi_1}{\pi_2} = \frac{n_{11}/n_{1.}}{n_{21}/n_{2.}}\]

4.4.2 3.4.2 Sifat-sifat Matematis RR

  1. Range: \(0 < RR < \infty\)
  2. Independensi: \(RR = 1\) jika tidak ada asosiasi
  3. Tidak simetris: \(RR_{XY} \neq RR_{YX}\)
  4. Interpretasi langsung: Menyatakan berapa kali lebih besar risiko

4.4.3 3.4.3 Hubungan antara OR dan RR

OR dan RR memiliki hubungan matematis:

\[OR = RR \times \frac{1-\pi_2}{1-\pi_1}\]

Ketika kejadian langka (rare disease assumption): Jika \(\pi_1\) dan \(\pi_2\) kecil (< 0.10), maka:

\[OR \approx RR\]

4.4.4 3.4.4 Contoh Perhitungan RR

Menggunakan data yang sama:

Langkah 1: Hitung risiko masing-masing kelompok

\(\pi_1 = \frac{60}{100} = 0.60\) (risiko kanker pada perokok) \(\pi_2 = \frac{20}{100} = 0.20\) (risiko kanker pada bukan perokok)

Langkah 2: Hitung RR

\[RR = \frac{0.60}{0.20} = 3.0\]

Interpretasi: Perokok memiliki risiko menderita kanker paru 3 kali lebih besar dibandingkan bukan perokok.

Langkah 3: Hitung interval kepercayaan RR

\[SE(\ln(RR)) = \sqrt{\frac{1-\pi_1}{n_{11}} + \frac{1-\pi_2}{n_{21}}}\]

\[SE(\ln(RR)) = \sqrt{\frac{0.40}{60} + \frac{0.80}{20}} = \sqrt{0.00667 + 0.04} = \sqrt{0.04667} = 0.2160\]

\(\ln(RR) = \ln(3.0) = 1.0986\)

IK 95% untuk ln(RR): \(1.0986 \pm 1.96 \times 0.2160 = 1.0986 \pm 0.4234 = (0.6752; 1.5220)\)

Eksponensialkan: \(RR_{lower} = e^{0.6752} = 1.96\) \(RR_{upper} = e^{1.5220} = 4.58\)

4.5 3.5 Perbandingan OR dan RR

Karakteristik Odds Ratio (OR) Relative Risk (RR)
Interpretasi Perbandingan odds Perbandingan risiko
Range nilai 0 - ∞ 0 - ∞
Simetri Simetris Tidak simetris
Studi kasus-kontrol Dapat dihitung Tidak dapat dihitung
Studi kohort Dapat dihitung Dapat dihitung
Kejadian langka Mendekati RR -
Kejadian umum Berbeda dengan RR -

4.6 3.6 Ukuran Asosiasi Lainnya

4.6.1 3.6.1 Risk Difference (RD)

\[RD = \pi_1 - \pi_2\]

Mengukur perbedaan absolut risiko antara dua kelompok.

Contoh: \(RD = 0.60 - 0.20 = 0.40\) Interpretasi: Perokok memiliki risiko 40% lebih tinggi untuk menderita kanker.

4.6.2 3.6.2 Number Needed to Treat (NNT)

\[NNT = \frac{1}{|RD|}\]

Mengukur berapa banyak individu yang perlu diberi perlakuan untuk mencegah satu kejadian.

4.6.3 3.6.3 Attributable Risk (AR)

\[AR = \frac{\pi_1 - \pi_2}{\pi_1}\]

Proporsi kejadian pada kelompok terpapar yang disebabkan oleh paparan.

5 BAGIAN 4: CONTOH PERHITUNGAN MANUAL

5.1 4.1 Studi Kasus: Vaksin vs Infeksi

Seorang peneliti melakukan uji klinis untuk menguji efektivitas vaksin baru dalam mencegah infeksi virus. Studi ini melibatkan 200 partisipan yang dibagi secara acak menjadi dua kelompok:

  • Kelompok Vaksin: 100 orang menerima vaksin
  • Kelompok Plasebo: 100 orang menerima plasebo (suntikan tanpa zat aktif)

Setelah periode observasi 6 bulan, dicatat jumlah partisipan yang terinfeksi dan tidak terinfeksi dalam masing-masing kelompok. Data yang diperoleh adalah sebagai berikut:

5.1.1 4.1.1 Data Hasil Penelitian

Kelompok Terinfeksi Tidak Terinfeksi Total
Vaksin 15 85 100
Plasebo 45 55 100
Total 60 140 200

5.2 4.2 Langkah 1: Membuat Tabel Kontingensi

Kita identifikasi komponen tabel:

  • \(a = n_{11} = 15\) (Vaksin & Terinfeksi)
  • \(b = n_{12} = 85\) (Vaksin & Tidak Terinfeksi)
  • \(c = n_{21} = 45\) (Plasebo & Terinfeksi)
  • \(d = n_{22} = 55\) (Plasebo & Tidak Terinfeksi)

Tabel Kontingensi Lengkap:

Terinfeksi Tidak Terinfeksi Total Baris
Vaksin 15 85 100
Plasebo 45 55 100
Total Kolom 60 140 200

5.3 4.3 Langkah 2: Menghitung Peluang Bersyarat

5.3.1 4.3.1 Probabilitas Bersyarat Kolom diberikan Baris

Risiko infeksi pada kelompok Vaksin: \[P(\text{Infeksi} | \text{Vaksin}) = \frac{15}{100} = 0.15 \text{ atau } 15\%\]

Risiko infeksi pada kelompok Plasebo: \[P(\text{Infeksi} | \text{Plasebo}) = \frac{45}{100} = 0.45 \text{ atau } 45\%\]

Probabilitas tidak terinfeksi: - \(P(\text{Tidak Infeksi} | \text{Vaksin}) = \frac{85}{100} = 0.85\) atau 85% - \(P(\text{Tidak Infeksi} | \text{Plasebo}) = \frac{55}{100} = 0.55\) atau 55%

5.3.2 4.3.2 Probabilitas Bersyarat Baris diberikan Kolom

Proporsi kelompok vaksin di antara yang terinfeksi: \[P(\text{Vaksin} | \text{Infeksi}) = \frac{15}{60} = 0.25 \text{ atau } 25\%\]

Proporsi kelompok plasebo di antara yang terinfeksi: \[P(\text{Plasebo} | \text{Infeksi}) = \frac{45}{60} = 0.75 \text{ atau } 75\%\]

Proporsi di antara yang tidak terinfeksi: - \(P(\text{Vaksin} | \text{Tidak Infeksi}) = \frac{85}{140} = 0.607\) atau 60.7% - \(P(\text{Plasebo} | \text{Tidak Infeksi}) = \frac{55}{140} = 0.393\) atau 39.3%

5.4 4.4 Langkah 3: Menghitung Odds

5.4.1 4.4.1 Odds Infeksi pada Kelompok Vaksin

\[\text{Odds}_{\text{vaksin}} = \frac{P(\text{Infeksi} | \text{Vaksin})}{P(\text{Tidak Infeksi} | \text{Vaksin})} = \frac{0.15}{0.85} = \frac{15}{85} = 0.1765\]

Interpretasi: Pada kelompok vaksin, kecenderungan untuk terinfeksi adalah 0.1765 kali dibandingkan tidak terinfeksi. Dengan kata lain, perbandingan terinfeksi : tidak terinfeksi adalah 15 : 85 atau sekitar 1 : 5.67.

5.4.2 4.4.2 Odds Infeksi pada Kelompok Plasebo

\[\text{Odds}_{\text{plasebo}} = \frac{P(\text{Infeksi} | \text{Plasebo})}{P(\text{Tidak Infeksi} | \text{Plasebo})} = \frac{0.45}{0.55} = \frac{45}{55} = 0.8182\]

Interpretasi: Pada kelompok plasebo, kecenderungan untuk terinfeksi adalah 0.8182 kali dibandingkan tidak terinfeksi. Perbandingan terinfeksi : tidak terinfeksi adalah 45 : 55 atau sekitar 1 : 1.22.

5.5 4.5 Langkah 4: Menghitung Odds Ratio (OR)

5.5.1 4.5.1 Perhitungan OR

\[OR = \frac{\text{Odds}_{\text{vaksin}}}{\text{Odds}_{\text{plasebo}}} = \frac{0.1765}{0.8182} = 0.2157\]

Atau menggunakan rumus langsung:

\[OR = \frac{a \times d}{b \times c} = \frac{15 \times 55}{85 \times 45} = \frac{825}{3825} = 0.2157\]

5.5.2 4.5.2 Menghitung Interval Kepercayaan OR

Langkah 1: Hitung logaritma natural OR \[\ln(OR) = \ln(0.2157) = -1.533\]

Langkah 2: Hitung standard error \[SE(\ln(OR)) = \sqrt{\frac{1}{a} + \frac{1}{b} + \frac{1}{c} + \frac{1}{d}}\]

\[SE(\ln(OR)) = \sqrt{\frac{1}{15} + \frac{1}{85} + \frac{1}{45} + \frac{1}{55}}\]

\[SE(\ln(OR)) = \sqrt{0.06667 + 0.01176 + 0.02222 + 0.01818}\]

\[SE(\ln(OR)) = \sqrt{0.11883} = 0.3447\]

Langkah 3: Hitung interval kepercayaan 95% untuk ln(OR) \[-1.533 \pm 1.96 \times 0.3447 = -1.533 \pm 0.6756\]

Batas bawah = \(-1.533 - 0.6756 = -2.2086\) Batas atas = \(-1.533 + 0.6756 = -0.8574\)

Langkah 4: Eksponensialkan untuk mendapatkan IK OR \[OR_{lower} = e^{-2.2086} = 0.110\] \[OR_{upper} = e^{-0.8574} = 0.424\]

Hasil: \(OR = 0.216\) dengan IK 95% \((0.110; 0.424)\)

5.5.3 4.5.3 Interpretasi OR

Odds Ratio sebesar 0.216 (< 1) menunjukkan bahwa pemberian vaksin berasosiasi dengan penurunan odds infeksi. Secara spesifik:

  • Kelompok yang menerima vaksin memiliki odds terinfeksi 0.216 kali (atau 21.6%) dari odds kelompok plasebo.
  • Dengan kata lain, vaksin menurunkan odds infeksi sebesar 78.4% (dihitung dari \((1 - OR) \times 100\% = 78.4\%\)).
  • Karena interval kepercayaan (0.110; 0.424) tidak mencakup angka 1, maka efek vaksin ini signifikan secara statistik pada tingkat kepercayaan 95%.

5.6 4.6 Perhitungan Relative Risk (RR)

5.6.1 4.6.1 Menghitung RR

\[RR = \frac{P(\text{Infeksi} | \text{Vaksin})}{P(\text{Infeksi} | \text{Plasebo})} = \frac{0.15}{0.45} = 0.3333\]

5.6.2 4.6.2 Menghitung Interval Kepercayaan RR

Langkah 1: Hitung logaritma natural RR \[\ln(RR) = \ln(0.3333) = -1.0986\]

Langkah 2: Hitung standard error \[SE(\ln(RR)) = \sqrt{\frac{1-\pi_1}{n_{11}} + \frac{1-\pi_2}{n_{21}}}\]

\[SE(\ln(RR)) = \sqrt{\frac{0.85}{15} + \frac{0.55}{45}} = \sqrt{0.05667 + 0.01222} = \sqrt{0.06889} = 0.2625\]

Langkah 3: Hitung interval kepercayaan untuk ln(RR) \[-1.0986 \pm 1.96 \times 0.2625 = -1.0986 \pm 0.5145\]

Batas bawah = \(-1.0986 - 0.5145 = -1.6131\) Batas atas = \(-1.0986 + 0.5145 = -0.5841\)

Langkah 4: Eksponensialkan \[RR_{lower} = e^{-1.6131} = 0.199\] \[RR_{upper} = e^{-0.5841} = 0.557\]

Hasil: \(RR = 0.333\) dengan IK 95% \((0.199; 0.557)\)

5.6.3 4.6.3 Interpretasi RR

Relative Risk sebesar 0.333 menunjukkan bahwa:

  • Risiko infeksi pada kelompok vaksin adalah 33.3% dari risiko pada kelompok plasebo.
  • Vaksin menurunkan risiko infeksi sebesar 66.7% (dihitung dari \((1 - RR) \times 100\% = 66.7\%\)).
  • Efek protektif ini signifikan secara statistik karena IK 95% tidak mencakup 1.

5.7 4.7 Perhitungan Ukuran Asosiasi Tambahan

5.7.1 4.7.1 Risk Difference (RD)

\[RD = \pi_1 - \pi_2 = 0.15 - 0.45 = -0.30\]

Interpretasi: Vaksin menurunkan risiko absolut infeksi sebesar 30 persen poin dibandingkan plasebo.

5.7.2 4.7.2 Number Needed to Treat (NNT)

\[NNT = \frac{1}{|RD|} = \frac{1}{0.30} = 3.33\]

Interpretasi: Diperlukan sekitar 3-4 orang yang divaksin untuk mencegah 1 kasus infeksi.

5.7.3 4.7.3 Attributable Fraction (AF)

\[AF = \frac{\pi_2 - \pi_1}{\pi_2} = \frac{0.45 - 0.15}{0.45} = \frac{0.30}{0.45} = 0.667\]

Interpretasi: Sebesar 66.7% kasus infeksi pada kelompok plasebo dapat dicegah dengan vaksinasi.

5.8 4.8 Uji Hipotesis Manual

5.8.1 4.8.1 Uji Chi-Square

Hipotesis: - \(H_0\): Tidak ada hubungan antara vaksinasi dan status infeksi - \(H_1\): Ada hubungan antara vaksinasi dan status infeksi

Langkah 1: Hitung frekuensi ekspektasi

\[E_{ij} = \frac{n_{i.} \times n_{.j}}{n}\]

\[E_{11} = \frac{100 \times 60}{200} = 30\] \[E_{12} = \frac{100 \times 140}{200} = 70\] \[E_{21} = \frac{100 \times 60}{200} = 30\] \[E_{22} = \frac{100 \times 140}{200} = 70\]

Langkah 2: Hitung statistik Chi-Square

\[\chi^2 = \sum \frac{(O_{ij} - E_{ij})^2}{E_{ij}}\]

\[\chi^2 = \frac{(15-30)^2}{30} + \frac{(85-70)^2}{70} + \frac{(45-30)^2}{30} + \frac{(55-70)^2}{70}\]

\[\chi^2 = \frac{225}{30} + \frac{225}{70} + \frac{225}{30} + \frac{225}{70}\]

\[\chi^2 = 7.5 + 3.214 + 7.5 + 3.214 = 21.428\]

Langkah 3: Bandingkan dengan nilai kritis

df = (2-1)(2-1) = 1 \(\chi^2_{0.05,1} = 3.841\)

Karena \(\chi^2_{hitung} = 21.428 > 3.841\), tolak \(H_0\).

Langkah 4: Hitung p-value

Menggunakan distribusi Chi-Square dengan df=1: \(p-value = P(\chi^2_1 > 21.428) < 0.0001\)

Kesimpulan: Terdapat hubungan yang sangat signifikan antara vaksinasi dan status infeksi.

6 BAGIAN 5: ANALISIS MENGGUNAKAN R

6.1 5.1 Persiapan Analisis

# Membersihkan environment
rm(list = ls())

# Memuat library yang diperlukan
library(epitools)
library(vcd)
library(gmodels)
library(ggplot2)

# Menampilkan informasi sesi
sessionInfo()
## R version 4.4.1 (2024-06-14 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 26200)
## 
## Matrix products: default
## 
## 
## locale:
## [1] LC_COLLATE=English_United States.utf8 
## [2] LC_CTYPE=English_United States.utf8   
## [3] LC_MONETARY=English_United States.utf8
## [4] LC_NUMERIC=C                          
## [5] LC_TIME=English_United States.utf8    
## 
## time zone: Asia/Bangkok
## tzcode source: internal
## 
## attached base packages:
## [1] grid      stats     graphics  grDevices utils     datasets  methods  
## [8] base     
## 
## other attached packages:
## [1] ggplot2_3.5.2     gmodels_2.19.1    vcd_1.4-13        epitools_0.5-10.1
## 
## loaded via a namespace (and not attached):
##  [1] gtable_0.3.6       jsonlite_2.0.0     dplyr_1.1.4        compiler_4.4.1    
##  [5] gtools_3.9.5       tidyselect_1.2.1   jquerylib_0.1.4    scales_1.4.0      
##  [9] yaml_2.3.10        fastmap_1.2.0      lattice_0.22-6     R6_2.6.1          
## [13] generics_0.1.4     lmtest_0.9-40      knitr_1.50         MASS_7.3-60.2     
## [17] tibble_3.3.0       bslib_0.9.0        pillar_1.11.0      RColorBrewer_1.1-3
## [21] rlang_1.1.6        cachem_1.1.0       xfun_0.53          sass_0.4.10       
## [25] cli_3.6.5          withr_3.0.2        magrittr_2.0.3     digest_0.6.37     
## [29] rstudioapi_0.17.1  gdata_3.0.1        lifecycle_1.0.4    vctrs_0.6.5       
## [33] evaluate_1.0.5     glue_1.8.0         farver_2.1.2       zoo_1.8-14        
## [37] colorspace_2.1-1   rmarkdown_2.29     tools_4.4.1        pkgconfig_2.0.3   
## [41] htmltools_0.5.8.1

6.2 5.2 Membuat Tabel Kontingensi

# Membuat data vaksinasi
data_vaksin <- matrix(c(15, 85, 45, 55),
                      nrow = 2,
                      byrow = TRUE,
                      dimnames = list(
                        Kelompok = c("Vaksin", "Plasebo"),
                        Status = c("Terinfeksi", "Tidak_Terinfeksi")
                      ))

# Menampilkan tabel
cat("=== TABEL KONTINGENSI: VAKSIN VS INFEKSI ===\n")
## === TABEL KONTINGENSI: VAKSIN VS INFEKSI ===
print(data_vaksin)
##          Status
## Kelompok  Terinfeksi Tidak_Terinfeksi
##   Vaksin          15               85
##   Plasebo         45               55
# Menghitung total baris dan kolom
total_baris <- rowSums(data_vaksin)
total_kolom <- colSums(data_vaksin)
total_keseluruhan <- sum(data_vaksin)

cat("\n=== TOTAL ===\n")
## 
## === TOTAL ===
cat("Total Baris (Vaksin, Plasebo):", total_baris, "\n")
## Total Baris (Vaksin, Plasebo): 100 100
cat("Total Kolom (Terinfeksi, Tidak Terinfeksi):", total_kolom, "\n")
## Total Kolom (Terinfeksi, Tidak Terinfeksi): 60 140
cat("Total Observasi:", total_keseluruhan, "\n")
## Total Observasi: 200
# Membuat tabel dalam format data.frame untuk visualisasi
df_vaksin <- as.data.frame(as.table(data_vaksin))
names(df_vaksin) <- c("Kelompok", "Status", "Frekuensi")
print(df_vaksin)
##   Kelompok           Status Frekuensi
## 1   Vaksin       Terinfeksi        15
## 2  Plasebo       Terinfeksi        45
## 3   Vaksin Tidak_Terinfeksi        85
## 4  Plasebo Tidak_Terinfeksi        55

6.3 5.3 Visualisasi Data

# Barplot stacked
ggplot(df_vaksin, aes(x = Kelompok, y = Frekuensi, fill = Status)) +
  geom_bar(stat = "identity", position = "stack") +
  labs(title = "Distribusi Infeksi Berdasarkan Kelompok Vaksinasi",
       x = "Kelompok", y = "Jumlah") +
  theme_minimal() +
  scale_fill_manual(values = c("Terinfeksi" = "red", "Tidak_Terinfeksi" = "green"))

# Barplot side-by-side
ggplot(df_vaksin, aes(x = Kelompok, y = Frekuensi, fill = Status)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Perbandingan Infeksi Antar Kelompok",
       x = "Kelompok", y = "Jumlah") +
  theme_minimal() +
  scale_fill_manual(values = c("Terinfeksi" = "red", "Tidak_Terinfeksi" = "green"))

# Mosaic plot
mosaicplot(data_vaksin, 
           main = "Mosaic Plot: Vaksin vs Infeksi",
           color = c("red", "green"),
           xlab = "Kelompok", ylab = "Status Infeksi")

6.4 5.4 Menghitung Probabilitas Bersyarat

# Menghitung probabilitas bersyarat (risiko)
risiko_vaksin <- data_vaksin[1,1] / sum(data_vaksin[1,])
risiko_plasebo <- data_vaksin[2,1] / sum(data_vaksin[2,])

cat("=== RISIKO INFEKSI ===\n")
## === RISIKO INFEKSI ===
cat("Risiko infeksi pada kelompok Vaksin:", round(risiko_vaksin * 100, 2), "%\n")
## Risiko infeksi pada kelompok Vaksin: 15 %
cat("Risiko infeksi pada kelompok Plasebo:", round(risiko_plasebo * 100, 2), "%\n")
## Risiko infeksi pada kelompok Plasebo: 45 %
# Probabilitas tidak terinfeksi
risiko_tidak_vaksin <- data_vaksin[1,2] / sum(data_vaksin[1,])
risiko_tidak_plasebo <- data_vaksin[2,2] / sum(data_vaksin[2,])

cat("\n=== PROBABILITAS TIDAK TERINFEKSI ===\n")
## 
## === PROBABILITAS TIDAK TERINFEKSI ===
cat("Probabilitas tidak infeksi (Vaksin):", round(risiko_tidak_vaksin * 100, 2), "%\n")
## Probabilitas tidak infeksi (Vaksin): 85 %
cat("Probabilitas tidak infeksi (Plasebo):", round(risiko_tidak_plasebo * 100, 2), "%\n")
## Probabilitas tidak infeksi (Plasebo): 55 %
# Conditional probability baris diberikan kolom
prop_terinfeksi_vaksin <- data_vaksin[1,1] / sum(data_vaksin[,1])
prop_terinfeksi_plasebo <- data_vaksin[2,1] / sum(data_vaksin[,1])

cat("\n=== PROPORSI DI ANTARA YANG TERINFEKSI ===\n")
## 
## === PROPORSI DI ANTARA YANG TERINFEKSI ===
cat("Proporsi Vaksin di antara terinfeksi:", round(prop_terinfeksi_vaksin * 100, 2), "%\n")
## Proporsi Vaksin di antara terinfeksi: 25 %
cat("Proporsi Plasebo di antara terinfeksi:", round(prop_terinfeksi_plasebo * 100, 2), "%\n")
## Proporsi Plasebo di antara terinfeksi: 75 %
# Tabel probabilitas
prob_table <- prop.table(data_vaksin)
cat("\n=== TABEL PROBABILITAS BERSAMA ===\n")
## 
## === TABEL PROBABILITAS BERSAMA ===
print(round(prob_table, 3))
##          Status
## Kelompok  Terinfeksi Tidak_Terinfeksi
##   Vaksin       0.075            0.425
##   Plasebo      0.225            0.275
# Distribusi marjinal
marjinal_baris <- margin.table(prob_table, 1)
marjinal_kolom <- margin.table(prob_table, 2)

cat("\n=== DISTRIBUSI MARJINAL ===\n")
## 
## === DISTRIBUSI MARJINAL ===
cat("Distribusi marjinal Kelompok:\n")
## Distribusi marjinal Kelompok:
print(round(marjinal_baris, 3))
## Kelompok
##  Vaksin Plasebo 
##     0.5     0.5
cat("\nDistribusi marjinal Status Infeksi:\n")
## 
## Distribusi marjinal Status Infeksi:
print(round(marjinal_kolom, 3))
## Status
##       Terinfeksi Tidak_Terinfeksi 
##              0.3              0.7

6.5 5.5 Menghitung Odds dan Odds Ratio

# Menghitung odds secara manual
odds_vaksin <- data_vaksin[1,1] / data_vaksin[1,2]
odds_plasebo <- data_vaksin[2,1] / data_vaksin[2,2]

cat("=== ODDS INFEKSI ===\n")
## === ODDS INFEKSI ===
cat("Odds infeksi (Vaksin):", round(odds_vaksin, 4), "\n")
## Odds infeksi (Vaksin): 0.1765
cat("Odds infeksi (Plasebo):", round(odds_plasebo, 4), "\n")
## Odds infeksi (Plasebo): 0.8182
# Menghitung Odds Ratio manual
OR_manual <- (data_vaksin[1,1] * data_vaksin[2,2]) / (data_vaksin[1,2] * data_vaksin[2,1])
cat("\n=== ODDS RATIO (MANUAL) ===\n")
## 
## === ODDS RATIO (MANUAL) ===
cat("Odds Ratio:", round(OR_manual, 4), "\n")
## Odds Ratio: 0.2157
# Menggunakan fungsi oddsratio dari epitools
OR_epitools <- oddsratio(data_vaksin)
cat("\n=== ODDS RATIO (EPITOOLS) ===\n")
## 
## === ODDS RATIO (EPITOOLS) ===
print(OR_epitools)
## log odds ratios for Kelompok and Status 
## 
## [1] -1.53393
# Menghitung interval kepercayaan secara manual
log_OR <- log(OR_manual)
se_log_OR <- sqrt(sum(1/data_vaksin))
ci_log_OR_lower <- log_OR - 1.96 * se_log_OR
ci_log_OR_upper <- log_OR + 1.96 * se_log_OR

ci_OR_lower <- exp(ci_log_OR_lower)
ci_OR_upper <- exp(ci_log_OR_upper)

cat("\n=== INTERVAL KEPERCAYAAN OR 95% ===\n")
## 
## === INTERVAL KEPERCAYAAN OR 95% ===
cat("Batas bawah:", round(ci_OR_lower, 3), "\n")
## Batas bawah: 0.11
cat("Batas atas:", round(ci_OR_upper, 3), "\n")
## Batas atas: 0.424

6.6 5.6 Menghitung Relative Risk

# Menghitung Relative Risk manual
RR_manual <- risiko_vaksin / risiko_plasebo

cat("=== RELATIVE RISK (MANUAL) ===\n")
## === RELATIVE RISK (MANUAL) ===
cat("Relative Risk:", round(RR_manual, 4), "\n")
## Relative Risk: 0.3333
# Menggunakan fungsi riskratio dari epitools
RR_epitools <- riskratio(data_vaksin)
cat("\n=== RELATIVE RISK (EPITOOLS) ===\n")
## 
## === RELATIVE RISK (EPITOOLS) ===
print(RR_epitools)
## $data
##          Status
## Kelompok  Terinfeksi Tidak_Terinfeksi Total
##   Vaksin          15               85   100
##   Plasebo         45               55   100
##   Total           60              140   200
## 
## $measure
##          risk ratio with 95% C.I.
## Kelompok   estimate     lower     upper
##   Vaksin  1.0000000        NA        NA
##   Plasebo 0.6470588 0.5321714 0.7867487
## 
## $p.value
##          two-sided
## Kelompok    midp.exact fisher.exact   chi.square
##   Vaksin            NA           NA           NA
##   Plasebo 3.336177e-06 5.547277e-06 3.672575e-06
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"
# Interval kepercayaan RR manual
log_RR <- log(RR_manual)
se_log_RR <- sqrt((1 - risiko_vaksin)/data_vaksin[1,1] + (1 - risiko_plasebo)/data_vaksin[2,1])

ci_log_RR_lower <- log_RR - 1.96 * se_log_RR
ci_log_RR_upper <- log_RR + 1.96 * se_log_RR

ci_RR_lower <- exp(ci_log_RR_lower)
ci_RR_upper <- exp(ci_log_RR_upper)

cat("\n=== INTERVAL KEPERCAYAAN RR 95% ===\n")
## 
## === INTERVAL KEPERCAYAAN RR 95% ===
cat("Batas bawah:", round(ci_RR_lower, 3), "\n")
## Batas bawah: 0.199
cat("Batas atas:", round(ci_RR_upper, 3), "\n")
## Batas atas: 0.558

6.7 5.7 Ukuran Asosiasi Tambahan

# Risk Difference
RD <- risiko_vaksin - risiko_plasebo
cat("=== RISK DIFFERENCE ===\n")
## === RISK DIFFERENCE ===
cat("Risk Difference:", round(RD, 4), "\n")
## Risk Difference: -0.3
# Number Needed to Treat
NNT <- 1 / abs(RD)
cat("\n=== NUMBER NEEDED TO TREAT ===\n")
## 
## === NUMBER NEEDED TO TREAT ===
cat("NNT:", round(NNT, 2), "\n")
## NNT: 3.33
# Attributable Fraction
AF <- (risiko_plasebo - risiko_vaksin) / risiko_plasebo
cat("\n=== ATTRIBUTABLE FRACTION ===\n")
## 
## === ATTRIBUTABLE FRACTION ===
cat("Attributable Fraction:", round(AF * 100, 2), "%\n")
## Attributable Fraction: 66.67 %

6.8 5.8 Uji Chi-Square

# Uji Chi-Square tanpa koreksi Yates
chi_test <- chisq.test(data_vaksin, correct = FALSE)

cat("=== UJI CHI-SQUARE (TANPA KOREKSI YATES) ===\n")
## === UJI CHI-SQUARE (TANPA KOREKSI YATES) ===
print(chi_test)
## 
##  Pearson's Chi-squared test
## 
## data:  data_vaksin
## X-squared = 21.429, df = 1, p-value = 3.673e-06
cat("\nFrekuensi Ekspektasi:\n")
## 
## Frekuensi Ekspektasi:
print(round(chi_test$expected, 2))
##          Status
## Kelompok  Terinfeksi Tidak_Terinfeksi
##   Vaksin          30               70
##   Plasebo         30               70
cat("\nResidual Pearson:\n")
## 
## Residual Pearson:
print(round(chi_test$residuals, 2))
##          Status
## Kelompok  Terinfeksi Tidak_Terinfeksi
##   Vaksin       -2.74             1.79
##   Plasebo       2.74            -1.79
# Uji Chi-Square dengan koreksi Yates
chi_test_yates <- chisq.test(data_vaksin, correct = TRUE)

cat("\n=== UJI CHI-SQUARE (DENGAN KOREKSI YATES) ===\n")
## 
## === UJI CHI-SQUARE (DENGAN KOREKSI YATES) ===
print(chi_test_yates)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  data_vaksin
## X-squared = 20.024, df = 1, p-value = 7.648e-06
# Uji Fisher Exact (untuk sampel kecil)
fisher_test <- fisher.test(data_vaksin)

cat("\n=== UJI FISHER EXACT ===\n")
## 
## === UJI FISHER EXACT ===
print(fisher_test)
## 
##  Fisher's Exact Test for Count Data
## 
## data:  data_vaksin
## p-value = 5.547e-06
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  0.1021559 0.4423613
## sample estimates:
## odds ratio 
##  0.2174188

6.9 5.9 Analisis Lanjutan

# Load library
library(vcd)

# Hitung statistik asosiasi
assoc_stats <- assocstats(data_vaksin)

# Tampilkan hasil lengkap
cat("\n========================================\n")
## 
## ========================================
cat("         STATISTIK ASOSIASI              \n")
##          STATISTIK ASOSIASI
cat("========================================\n\n")
## ========================================
print(assoc_stats)
##                     X^2 df   P(> X^2)
## Likelihood Ratio 22.176  1 2.4875e-06
## Pearson          21.429  1 3.6726e-06
## 
## Phi-Coefficient   : 0.327 
## Contingency Coeff.: 0.311 
## Cramer's V        : 0.327
cat("\n========================================\n")
## 
## ========================================
cat("         UKURAN ASOSIASI                  \n")
##          UKURAN ASOSIASI
cat("========================================\n\n")
## ========================================
# Phi coefficient
phi <- assoc_stats$phi
cat("Phi Coefficient         :", round(phi, 4), "\n")
## Phi Coefficient         : 0.3273
# Contingency coefficient
cont_coef <- assoc_stats$contingency
cat("Contingency Coefficient :", round(cont_coef, 4), "\n")
## Contingency Coefficient : 0.3111
# Cramer's V
cramer_v <- assoc_stats$cramer
cat("Cramer's V              :", round(cramer_v, 4), "\n")
## Cramer's V              : 0.3273
cat("\n========================================\n")
## 
## ========================================

6.10 5.10 Ekspor Hasil

# Membuat laporan ringkas dalam format tabel
library(knitr)

cat("=== TABEL RINGKASAN HASIL ANALISIS ===\n\n")
## === TABEL RINGKASAN HASIL ANALISIS ===
tabel_ringkasan <- data.frame(
  Kelompok = c("Vaksin", "Plasebo"),
  Terinfeksi = c(data_vaksin[1,1], data_vaksin[2,1]),
  Tidak_Terinfeksi = c(data_vaksin[1,2], data_vaksin[2,2]),
  Total = c(100, 100),
  Risiko = c(risiko_vaksin, risiko_plasebo),
  Odds = c(odds_vaksin, odds_plasebo)
)

kable(tabel_ringkasan, 
      caption = "Ringkasan Data dan Ukuran Dasar",
      digits = 3)
Ringkasan Data dan Ukuran Dasar
Kelompok Terinfeksi Tidak_Terinfeksi Total Risiko Odds
Vaksin 15 85 100 0.15 0.176
Plasebo 45 55 100 0.45 0.818

7 BAGIAN 6: INTERPRETASI HASIL

7.1 6.1 Interpretasi Statistik

Berdasarkan hasil analisis menggunakan R pada Bagian 5, kita memperoleh beberapa temuan statistik penting:

7.1.1 6.1.1 Interpretasi Odds Ratio

Hasil: \(OR = 0.216\) dengan interval kepercayaan 95% \((0.110; 0.424)\)

Interpretasi Statistik: - Odds Ratio < 1 menunjukkan hubungan negatif antara vaksinasi dan infeksi - Kelompok vaksin memiliki odds terinfeksi 0.216 kali dibandingkan kelompok plasebo - Penurunan odds infeksi sebesar \((1 - 0.216) \times 100\% = 78.4\%\) - Interval kepercayaan tidak mencakup nilai 1, sehingga hubungan signifikan secara statistik pada α = 0.05

7.1.2 6.1.2 Interpretasi Relative Risk

Hasil: \(RR = 0.333\) dengan interval kepercayaan 95% \((0.199; 0.557)\)

Interpretasi Statistik: - Relative Risk < 1 menunjukkan efek protektif dari vaksin - Risiko infeksi pada kelompok vaksin hanya 33.3% dari risiko pada kelompok plasebo - Reduksi risiko relatif sebesar \((1 - 0.333) \times 100\% = 66.7\%\) - Interval kepercayaan tidak mencakup 1, mengkonfirmasi signifikansi

7.1.3 6.1.3 Interpretasi Uji Chi-Square

Hasil: \(\chi^2 = 21.428\), df = 1, p-value = \(3.7 \times 10^{-6}\)

Interpretasi Statistik: - Nilai Chi-Square yang besar menunjukkan penyimpangan yang signifikan dari independensi - p-value yang sangat kecil (< 0.001) memberikan bukti kuat untuk menolak hipotesis nol - Terdapat hubungan yang signifikan antara variabel vaksinasi dan status infeksi

7.1.4 6.1.4 Interpretasi Ukuran Asosiasi Lainnya

Risk Difference (RD) = -0.30 - Vaksin menurunkan risiko absolut infeksi sebesar 30 persen poin

Number Needed to Treat (NNT) = 3.33 - Diperlukan 3-4 orang yang divaksin untuk mencegah 1 kasus infeksi - Nilai NNT yang kecil menunjukkan efektivitas vaksin yang tinggi

Attributable Fraction (AF) = 66.7% - Sebesar 66.7% kasus infeksi pada kelompok plasebo dapat dicegah dengan vaksinasi

Phi Coefficient = -0.327 - Menunjukkan korelasi negatif sedang antara vaksinasi dan infeksi

7.2 6.2 Interpretasi Substantif

7.2.1 6.2.1 Konteks Penelitian

Studi ini merupakan uji klinis acak terkontrol plasebo (randomized controlled trial/RCT) untuk mengevaluasi efektivitas vaksin baru dalam mencegah infeksi virus.

7.2.2 6.2.2 Makna Substantif Temuan

Efektivitas Vaksin: Vaksin yang diuji terbukti sangat efektif dalam mencegah infeksi. Temuan utama:

  1. Proteksi Individual:
    • Individu yang divaksin memiliki risiko infeksi 15%, jauh lebih rendah dibandingkan 45% pada kelompok plasebo
    • Vaksin menurunkan risiko individual sebesar 30 poin persentase
  2. Dampak Populasi:
    • Jika vaksin diberikan pada populasi, diperkirakan 2 dari 3 kasus infeksi dapat dicegah
    • Setiap 3-4 orang yang divaksin mencegah 1 kasus infeksi
  3. Signifikansi Klinis:
    • Efek vaksin tidak hanya signifikan statistik tetapi juga signifikan secara klinis
    • Penurunan risiko 67% tergolong sangat bermakna dalam praktik klinis

7.2.3 6.2.3 Implikasi Praktis

Bagi Individu: - Vaksinasi sangat direkomendasikan karena memberikan perlindungan yang substansial

Bagi Tenaga Kesehatan: - Vaksin ini dapat dijadikan intervensi andalan dalam program pencegahan

Bagi Pembuat Kebijakan: - Hasil studi mendukung kebijakan vaksinasi massal

7.3 6.3 Kesimpulan Akhir

Berdasarkan analisis data kategorik yang komprehensif pada studi vaksin vs infeksi, dapat disimpulkan bahwa:

  1. Vaksin terbukti efektif dalam menurunkan risiko infeksi secara signifikan
  2. Efek protektif kuat dengan reduksi risiko relatif 67%
  3. Hubungan signifikan secara statistik dan klinis
  4. Rekomendasi untuk implementasi vaksinasi secara luas

8 DAFTAR PUSTAKA

Agresti, A. (2013). Categorical Data Analysis (3rd ed.). Hoboken, NJ: John Wiley & Sons.

Fienberg, S. E. (2007). The Analysis of Cross-Classified Categorical Data (2nd ed.). New York: Springer.