Analisis data kategori adalah salah satu cabang penting dalam statistik yang berfokus pada pengolahan dan interpretasi data kategorikal. Data kategorikal terdiri dari kategori atau label tertentu tanpa nilai numerik kontinu atau urutan matematis yang inheren. Data ini terbagi menjadi dua jenis utama: nominal (tanpa urutan, misalnya jenis kelamin) dan ordinal (dengan urutan, misalnya tingkat kepuasan). Berbeda dengan data numerik yang dianalisis menggunakan metode seperti regresi linier, data kategori memerlukan pendekatan khusus seperti tabel kontingensi atau uji chi-squared. Di era big data, analisis data kategori semakin relevan karena banyak data yang dikumpulkan bersifat kategorikal, terutama di bidang pemasaran, kesehatan, dan ilmu sosial. Analisis ini membantu mengubah data kualitatif menjadi wawasan yang dapat diukur, mendukung pengambilan keputusan, dan memprediksi hasil. Berikut adalah penjelasan mendetail mengenai tujuan analisis data kategori, masing-masing disertai contoh.
Analisis data kategori memiliki empat tujuan utama: identifikasi pola dan tren, analisis hubungan antar variabel, membantu pengambilan keputusan, dan mengembangkan model prediktif. Setiap tujuan dijelaskan secara mendalam di bawah ini.
Penjelasan:Tujuan pertama analisis data kategori adalah mengidentifikasi pola dan tren dalam data. Pola ini dapat berupa distribusi frekuensi, proporsi antar kategori, atau perubahan seiring waktu. Proses ini melibatkan penghitungan frekuensi kemunculan setiap kategori dan visualisasi data menggunakan grafik seperti diagram batang atau pie chart. Identifikasi pola menjadi langkah awal untuk memahami karakteristik data dan sering kali digunakan sebagai dasar analisis lanjutan. Teknik ini sangat berguna dalam konteks eksplorasi data untuk menemukan wawasan awal.
Contoh:Sebuah perusahaan ritel melakukan survei kepuasan pelanggan dengan opsi jawaban: “sangat puas,” “puas,” dan “tidak puas.” Hasil survei dari 100 responden menunjukkan:
Sangat puas: 60 responden (60%)
Puas: 30 responden (30%)
Tidak puas: 10 responden (10%)
Dari data ini, pola yang teridentifikasi adalah mayoritas pelanggan (90%) merasa puas atau sangat puas. Perusahaan dapat memvisualisasikan data ini dalam pie chart untuk melihat proporsi dengan jelas. Jika survei dilakukan berulang setiap bulan, tren kepuasan pelanggan dapat dipantau—misalnya, apakah proporsi “sangat puas” meningkat atau menurun seiring waktu. Pola ini menunjukkan kekuatan layanan perusahaan dan dapat menjadi indikator kinerja.
Penjelasan:Tujuan kedua adalah menganalisis hubungan atau asosiasi antara variabel kategorikal. Ini bertujuan untuk mengetahui apakah ada ketergantungan antara variabel dan seberapa kuat hubungan tersebut. Teknik yang umum digunakan adalah uji chi-squared, yang menguji hipotesis nol bahwa dua variabel independen. Hasilnya diukur dengan nilai p; jika nilai p kecil (misalnya < 0,05), maka ada hubungan signifikan. Tabel kontingensi digunakan untuk menyusun frekuensi data sebelum analisis. Analisis ini penting untuk memahami interaksi antar faktor dalam data.
Contoh:Seorang peneliti ingin mengetahui apakah ada hubungan antara usia (“remaja,” “dewasa muda,” “dewasa”) dan preferensi produk (“elektronik,” “fashion”). Data dari 150 responden disusun dalam tabel kontingensi berikut:
| Elektronik | Fashion | Total | |
|---|---|---|---|
| Remaja | 20 | 15 | 35 |
| Dewasa Muda | 25 | 20 | 45 |
| Dewasa | 15 | 55 | 70 |
| Total | 60 | 90 | 150 |
Uji chi-squared dilakukan, menghasilkan nilai p = 0,01 (< 0,05), yang menunjukkan hubungan signifikan antara usia dan preferensi produk. Dari tabel, terlihat remaja lebih menyukai elektronik, sedangkan dewasa cenderung memilih fashion. Hasil ini membantu memahami bagaimana preferensi bervariasi berdasarkan kelompok usia.
Penjelasan:Analisis data kategori juga bertujuan mendukung pengambilan keputusan dengan menyediakan informasi yang jelas dan terukur. Hasil analisis dapat digunakan untuk merumuskan strategi atau kebijakan yang tepat sasaran. Proses ini melibatkan interpretasi pola dan hubungan dalam data untuk menarik kesimpulan praktis. Dalam bisnis, misalnya, analisis ini membantu menentukan segmen pasar atau alokasi sumber daya. Keunggulan analisis kategori adalah kemampuannya menyederhanakan data kompleks menjadi wawasan yang actionable.
Contoh:Sebuah perusahaan ritel menganalisis preferensi pelanggan berdasarkan lokasi (“perkotaan,” “pedesaan”) dan jenis produk (“teknologi,” “kebutuhan sehari-hari”). Hasilnya disusun dalam tabel berikut:
| Teknologi | Kebutuhan Sehari-hari | Total | |
|---|---|---|---|
| Perkotaan | 70 | 30 | 100 |
| Pedesaan | 20 | 80 | 100 |
| Total | 90 | 110 | 200 |
Analisis menunjukkan bahwa pelanggan perkotaan lebih memilih teknologi (70%), sedangkan pelanggan pedesaan lebih memilih kebutuhan sehari-hari (80%). Berdasarkan ini, perusahaan memutuskan untuk memfokuskan pemasaran produk teknologi di wilayah perkotaan dan produk kebutuhan sehari-hari di pedesaan. Keputusan ini meningkatkan efisiensi kampanye pemasaran dan penjualan.
Penjelasan:Tujuan terakhir adalah membangun model prediktif untuk memprediksi kategori atau label data baru berdasarkan variabel yang ada. Teknik seperti regresi logistik digunakan karena cocok untuk data kategorikal dengan variabel dependen biner (misalnya, ya/tidak). Model ini dilatih dengan data historis untuk menemukan pola yang dapat digunakan untuk prediksi. Aplikasi model prediktif meliputi klasifikasi pelanggan, diagnosis medis, atau prediksi risiko, menjadikannya alat penting dalam analisis data modern.
Contoh:Sebuah perusahaan telekomunikasi ingin memprediksi churn pelanggan (“churn,” “tidak churn”) berdasarkan layanan (“basic,” “premium”) dan kepuasan (“puas,” “tidak puas”). Data dari 200 pelanggan disusun dalam tabel berikut:
| Churn | Tidak Churn | Total | |
|---|---|---|---|
| Basic | 50 | 50 | 100 |
| Premium | 20 | 80 | 100 |
| Total | 70 | 130 | 200 |
Model regresi logistik dilatih dan menunjukkan pelanggan dengan layanan “basic” dan kepuasan “tidak puas” memiliki probabilitas churn 80%, sedangkan pelanggan dengan layanan “premium” dan “puas” memiliki probabilitas churn 10%. Model ini memungkinkan perusahaan mengidentifikasi pelanggan berisiko tinggi dan menawarkan promosi untuk mencegah churn.
Analisis data kategori adalah cabang statistik yang mengolah data kategorikal, yaitu data yang terdiri dari kategori atau label tanpa nilai numerik kontinu, seperti data nominal (misalnya, jenis kelamin: laki-laki/perempuan) dan ordinal (misalnya, tingkat kepuasan: sangat puas/puas/tidak puas). Berbeda dengan data numerik yang dianalisis menggunakan metode seperti regresi linier, data kategori memerlukan teknik khusus seperti tabel kontingensi, uji chi-squared, atau regresi logistik untuk mengungkap pola, hubungan, dan wawasan.
Manfaat analisis data kategori sangat luas, mencakup bidang kesehatan, pemasaran, pendidikan, kebijakan publik, dan teknologi informasi. Teknik ini memungkinkan pengambilan keputusan berbasis data, optimalisasi strategi, dan pengembangan model prediktif yang akurat. Dengan kemampuannya mengubah data kualitatif menjadi informasi terukur, analisis data kategori menjadi alat penting dalam memahami fenomena kompleks di berbagai sektor. Berikut adalah penjelasan mendetail mengenai manfaat analisis data kategori dalam lima bidang utama, dengan fokus pada teori, metode, dan contoh aplikasi.
Penjelasan:Dalam bidang kesehatan, analisis data kategori digunakan untuk menganalisis variabel seperti status penyakit, jenis pengobatan, atau tingkat keparahan gejala. Data ini sering kali bersifat nominal (misalnya, terdiagnosis/tidak terdiagnosis) atau ordinal (misalnya, ringan/sedang/berat). Teori probabilitas dan statistik inferensial menjadi dasar analisis, dengan metode seperti uji chi-squared untuk menguji hubungan antar variabel, atau regresi logistik untuk memprediksi probabilitas hasil kesehatan berdasarkan faktor risiko. Uji chi-squared, misalnya, menghitung statistik\[ X^2 = \sum \frac{(O_i - E_i)^2}{E_i} \]di mana \(O_i\) adalah frekuensi observasi dan \(E_i\) adalah frekuensi yang diharapkan, untuk menentukan apakah ada asosiasi signifikan antara variabel. Regresi logistik memodelkan log-odds hasil biner sebagai fungsi linier dari variabel independen, dengan persamaan\[ \log\left(\frac{\pi}{1-\pi}\right) = \beta_0 + \beta_1 x_1 + \dots + \beta_k x_k \]di mana \(\pi\) adalah probabilitas kejadian.
Manfaat utama dalam kesehatan adalah kemampuan untuk mengidentifikasi faktor risiko, mengevaluasi efektivitas pengobatan, dan mendukung diagnosis berbasis data. Analisis ini juga memungkinkan peneliti untuk mengontrol variabel confounder, seperti usia atau gaya hidup, yang dapat memengaruhi hubungan antar variabel. Dengan pendekatan ini, rumah sakit dapat mengoptimalkan alokasi sumber daya, meningkatkan hasil pasien, dan merancang intervensi yang tepat sasaran.
Contoh:Sebuah rumah sakit meneliti hubungan antara kebiasaan merokok (merokok/tidak merokok) dan diagnosis penyakit jantung (ada/tidak ada) pada pasien. Dengan menggunakan uji chi-squared, rumah sakit menemukan hubungan signifikan, di mana perokok memiliki risiko lebih tinggi terdiagnosis penyakit jantung. Selain itu, model regresi logistik diterapkan untuk memprediksi risiko penyakit jantung berdasarkan merokok, usia, dan tekanan darah. Hasilnya menunjukkan bahwa merokok meningkatkan odds penyakit jantung sebesar 2,5 kali setelah mengontrol variabel lain. Berdasarkan temuan ini, rumah sakit meluncurkan kampanye antirokok dan menawarkan skrining jantung gratis untuk perokok, yang mengurangi insiden penyakit jantung di komunitas.
Penjelasan:Dalam pemasaran, analisis data kategori digunakan untuk memahami preferensi pelanggan, perilaku pembelian, dan segmentasi pasar. Variabel seperti jenis produk, demografi pelanggan, atau tingkat kepuasan dianalisis menggunakan tabel kontingensi untuk mengidentifikasi pola distribusi dan uji chi-squared untuk menguji hubungan antar variabel. Teori asosiasi, yang mendasari uji chi-squared, memungkinkan pemasar menentukan apakah preferensi produk bergantung pada faktor seperti usia atau lokasi, dengan statistik uji chi-squared didefinisikan sebagai
\[ X^2 = \sum \frac{(O_i - E_i)^2}{E_i} \]
di mana \(O_i\) dan \(E_i\) masing-masing adalah frekuensi observasi dan diharapkan. Selain itu, model prediktif seperti regresi logistik digunakan untuk memprediksi perilaku pelanggan, seperti kemungkinan pembelian, dengan model
\[ \log\left(\frac{\pi}{1-\pi}\right) = \beta_0 + \beta_1 x_1 + \dots + \beta_k x_k \]
di mana \(\pi\) adalah probabilitas pembelian.
Manfaatnya adalah kemampuan untuk menyesuaikan kampanye pemasaran, menargetkan segmen pelanggan yang paling potensial, dan meningkatkan retensi. Analisis ini juga membantu mengidentifikasi faktor yang memengaruhi kepuasan pelanggan, sehingga perusahaan dapat memperbaiki produk atau layanan. Dengan pendekatan berbasis data, pemasar dapat mengalokasikan anggaran secara efisien dan meningkatkan return on investment (ROI).
Contoh:Sebuah perusahaan e-commerce menganalisis data pelanggan untuk menentukan preferensi produk berdasarkan kelompok usia dan jenis kelamin. Dengan tabel kontingensi dan uji chi-squared, perusahaan menemukan bahwa pelanggan muda lebih cenderung membeli gadget, sementara pelanggan dewasa lebih memilih pakaian. Selanjutnya, model regresi logistik digunakan untuk memprediksi kemungkinan pembelian berdasarkan usia, jenis kelamin, dan riwayat pembelian sebelumnya. Hasilnya memungkinkan perusahaan untuk menyesuaikan iklan digital, menargetkan gadget untuk pelanggan muda dan pakaian untuk pelanggan dewasa, yang meningkatkan tingkat konversi penjualan sebesar 20%.
Penjelasan:Dalam pendidikan, analisis data kategori digunakan untuk mengevaluasi kinerja siswa, efektivitas metode pengajaran, dan faktor yang memengaruhi hasil belajar. Variabel seperti tingkat kelulusan, jenis sekolah, atau metode pengajaran dianalisis menggunakan teknik seperti tabel kontingensi dan uji chi-squared untuk mengidentifikasi hubungan antar variabel, dengan statistik\[ X^2 = \sum \frac{(O_i - E_i)^2}{E_i} \]di mana \(O_i\) adalah frekuensi observasi dan \(E_i\) adalah frekuensi yang diharapkan. Teori probabilitas bersama dan bersyarat, yang mendasari analisis tabel kontingensi, membantu pendidik memahami probabilitas keberhasilan siswa, seperti \(P(A|B) = \frac{P(A \cap B)}{P(B)}\). Selain itu, model regresi logistik dapat memprediksi hasil belajar, dengan persamaan\[ \log\left(\frac{\pi}{1-\pi}\right) = \beta_0 + \beta_1 x_1 + \dots + \beta_k x_k \]di mana \(\pi\) adalah probabilitas kelulusan.
Manfaatnya meliputi pengembangan kurikulum yang lebih efektif, alokasi sumber daya yang optimal, dan identifikasi siswa yang memerlukan dukungan tambahan. Analisis ini juga memungkinkan institusi pendidikan untuk mengevaluasi dampak intervensi, seperti program bimbingan, terhadap hasil belajar.
Contoh:Sebuah universitas mengevaluasi efektivitas metode pengajaran konvensional versus online terhadap tingkat kelulusan mahasiswa. Dengan uji chi-squared, universitas menemukan bahwa metode konvensional memiliki tingkat kelulusan lebih tinggi. Model regresi logistik kemudian digunakan untuk memprediksi kelulusan berdasarkan metode pengajaran, tingkat kehadiran, dan latar belakang akademik. Hasilnya menunjukkan bahwa metode konvensional meningkatkan odds kelulusan sebesar 1,8 kali. Universitas menggunakan temuan ini untuk memperbaiki kualitas pengajaran online dengan menambahkan sesi interaktif, yang meningkatkan tingkat kelulusan pada tahun berikutnya.
Penjelasan:Dalam kebijakan publik, analisis data kategori digunakan untuk menganalisis variabel seperti status sosial ekonomi, akses layanan publik, atau tingkat kepuasan masyarakat terhadap kebijakan. Teknik seperti uji chi-squared membantu mengidentifikasi hubungan antara faktor sosial dan hasil kebijakan, dengan statistik\[ X^2 = \sum \frac{(O_i - E_i)^2}{E_i} \]di mana \(O_i\) dan \(E_i\) masing-masing adalah frekuensi observasi dan diharapkan. Regresi logistik memprediksi dampak kebijakan pada kelompok tertentu, dengan model\[ \log\left(\frac{\pi}{1-\pi}\right) = \beta_0 + \beta_1 x_1 + \dots + \beta_k x_k \]di mana \(\pi\) adalah probabilitas akses ke layanan. Teori inferensi statistik memungkinkan pembuat kebijakan menarik kesimpulan yang valid dari sampel data, bahkan ketika populasi sangat besar.
Manfaatnya adalah kemampuan untuk merumuskan kebijakan yang tepat sasaran, mengalokasikan anggaran secara efisien, dan mengevaluasi dampak kebijakan. Dengan pendekatan berbasis data, pemerintah dapat memprioritaskan kelompok yang paling membutuhkan dan meningkatkan kesejahteraan masyarakat.
Contoh:Sebuah pemerintah daerah menganalisis hubungan antara status sosial ekonomi dan akses ke layanan kesehatan. Dengan uji chi-squared, ditemukan bahwa kelompok berpenghasilan rendah memiliki akses lebih rendah ke layanan kesehatan. Model regresi logistik digunakan untuk memprediksi probabilitas akses berdasarkan pendapatan, pendidikan, dan lokasi. Hasilnya menunjukkan bahwa pendapatan rendah mengurangi odds akses sebesar 60%. Pemerintah menggunakan temuan ini untuk meluncurkan program subsidi kesehatan bagi kelompok berpenghasilan rendah, meningkatkan cakupan layanan kesehatan di wilayah tersebut.
Penjelasan:Dalam teknologi informasi, analisis data kategori digunakan untuk mengembangkan sistem cerdas, seperti sistem rekomendasi atau deteksi penipuan, dan menganalisis perilaku pengguna. Variabel seperti preferensi pengguna, status transaksi, atau tipe perangkat dianalisis menggunakan teknik seperti pohon keputusan, regresi logistik, atau algoritma pembelajaran mesin untuk data kategorikal. Teori pembelajaran mesin, khususnya klasifikasi, menjadi dasar pengembangan model prediktif, dengan regresi logistik menggunakan persamaan \[ \log\left(\frac{\pi}{1-\pi}\right) = \beta_0 + \beta_1 x_1 + \dots + \beta_k x_k \]di mana \(\pi\) adalah probabilitas kejadian seperti pembelian. Analisis tabel kontingensi membantu memahami distribusi pengguna, dengan probabilitas bersama seperti \(P(A \cap B)\) dihitung dari frekuensi data.
Manfaatnya meliputi peningkatan pengalaman pengguna, deteksi anomali, dan optimalisasi sistem. Dengan analisis ini, perusahaan teknologi dapat menyesuaikan layanan, meningkatkan keamanan, dan mengembangkan produk yang lebih relevan.
Contoh:Sebuah platform streaming menganalisis preferensi pengguna berdasarkan genre film dan tipe perangkat. Dengan pohon keputusan, platform menemukan bahwa pengguna ponsel lebih menyukai film aksi, sementara pengguna desktop lebih menyukai drama. Model regresi logistik digunakan untuk memprediksi probabilitas menonton film berdasarkan genre, perangkat, dan riwayat tontonan. Hasilnya memungkinkan platform untuk menyesuaikan rekomendasi film, meningkatkan waktu tonton pengguna sebesar 25%.
Analisis data kategori memberikan manfaat besar di berbagai bidang dengan mengubah data kualitatif menjadi wawasan yang actionable. Dalam kesehatan, analisis ini mendukung diagnosis dan penelitian; dalam pemasaran, mengoptimalkan strategi; dalam pendidikan, meningkatkan hasil belajar; dalam kebijakan publik, merumuskan kebijakan efektif; dan dalam teknologi informasi, mengembangkan sistem cerdas. Dengan teknik seperti uji chi-squared dan regresi logistik, analisis ini menjadi alat esensial untuk inovasi dan pengambilan keputusan berbasis data.
Analisis data kategori merupakan cabang statistik yang berfokus pada pengolahan data kategorikal, yaitu data yang terdiri dari kategori atau label, baik nominal (tanpa urutan, seperti jenis kelamin) maupun ordinal (dengan urutan, seperti tingkat kepuasan). Berbeda dengan data numerik yang dianalisis dengan metode seperti regresi linier, data kategori memerlukan pendekatan khusus untuk mengidentifikasi pola, hubungan, dan prediksi. Metode-metode ini dirancang untuk menangani sifat diskret dari data kategorikal dan memberikan wawasan yang dapat digunakan untuk pengambilan keputusan. Berikut adalah penjelasan mendetail mengenai empat metode utama dalam analisis data kategori: Tabel Kontingensi dan Uji Chi-Square, Regresi Logistik, Analisis Korespondensi (CA), serta Pohon Keputusan (Decision Tree) dan Random Forest. Setiap metode dijelaskan dengan teori, rumus matematis, dan contoh aplikasi.
Penjelasan:Tabel kontingensi adalah alat dasar dalam analisis data kategori untuk menyusun frekuensi observasi dari dua atau lebih variabel kategorikal dalam format matriks. Tabel ini memungkinkan visualisasi distribusi data dan perhitungan probabilitas bersama, seperti \(P(A \cap B)\). Uji Chi-Square, yang sering digunakan bersama tabel kontingensi, menguji hipotesis nol bahwa dua variabel kategorikal independen. Statistik uji Chi-Square dihitung sebagai:\[ X^2 = \sum \frac{(O_i - E_i)^2}{E_i} \]di mana \(O_i\) adalah frekuensi observasi pada sel ke-\(i\) dalam tabel, dan \(E_i\) adalah frekuensi yang diharapkan, dihitung sebagai \(E_i = \frac{(\text{total baris}) \times (\text{total kolom})}{\text{total keseluruhan}}\). Nilai \(X^2\) dibandingkan dengan distribusi chi-square untuk menentukan nilai \(p\); jika \(p < 0,05\), hipotesis nol ditolak, menunjukkan adanya hubungan antar variabel.
Metode ini berbasis teori probabilitas dan statistik inferensial, khususnya distribusi chi-square, yang mengasumsikan bahwa frekuensi observasi mengikuti distribusi multinomial. Uji ini sangat berguna untuk analisis eksplorasi data, seperti mengidentifikasi asosiasi antara faktor risiko dan hasil dalam studi kesehatan atau preferensi pelanggan dalam pemasaran.
Contoh:Sebuah penelitian menguji hubungan antara kebiasaan olahraga (rutin/tidak rutin) dan status kesehatan jantung (sehat/bermasalah). Data dari 200 individu disusun dalam tabel kontingensi, dan uji Chi-Square dilakukan. Hasilnya menunjukkan nilai \(p = 0,01\), menunjukkan bahwa olahraga rutin berhubungan signifikan dengan kesehatan jantung yang lebih baik. Rumah sakit menggunakan temuan ini untuk mempromosikan program olahraga komunitas, meningkatkan kesadaran tentang pentingnya aktivitas fisik.
Penjelasan:Regresi logistik adalah metode statistik untuk memodelkan hubungan antara variabel independen (kategorikal atau numerik) dan variabel dependen biner, seperti ya/tidak atau sukses/gagal. Berbasis teori probabilitas dan maksimum likelihood estimation, regresi logistik memprediksi log-odds dari probabilitas kejadian, didefinisikan sebagai:\[ \log\left(\frac{\pi}{1-\pi}\right) = \beta_0 + \beta_1 x_1 + \dots + \beta_k x_k \]di mana \(\pi\) adalah probabilitas kejadian (misalnya, \(P(Y=1)\)), \(\beta_0\) adalah intersep, \(\beta_i\) adalah koefisien untuk variabel independen \(x_i\), dan \(k\) adalah jumlah variabel independen. Probabilitas \(\pi\) dihitung menggunakan fungsi logistik:\[ \pi = \frac{\exp(\beta_0 + \beta_1 x_1 + \dots + \beta_k x_k)}{1 + \exp(\beta_0 + \beta_1 x_1 + \dots + \beta_k x_k)} \]
Regresi logistik sangat cocok untuk data kategori karena dapat menangani variabel independen kategorikal (dengan dummy coding) dan memberikan interpretasi odds ratio, yaitu \(\exp(\beta_i)\), yang menunjukkan perubahan odds untuk setiap unit perubahan pada \(x_i\). Metode ini digunakan untuk prediksi dan pengendalian variabel confounder dalam berbagai bidang, seperti kesehatan dan pemasaran.
Contoh:Sebuah perusahaan asuransi ingin memprediksi kemungkinan klaim berdasarkan status merokok (merokok/tidak merokok) dan usia (muda/dewasa). Dengan regresi logistik, model menunjukkan bahwa merokok meningkatkan odds klaim sebesar 3 kali. Perusahaan menggunakan model ini untuk menyesuaikan premi asuransi, memastikan penetapan harga yang lebih akurat berdasarkan risiko.
Analisis Korespondensi (CA) adalah metode eksplorasi untuk memvisualisasikan hubungan antara dua variabel kategorikal dalam tabel kontingensi menggunakan representasi grafis. Berbasis teori dekomposisi matriks dan statistik multivariat, CA mengubah frekuensi tabel kontingensi menjadi koordinat dalam ruang berdimensi rendah, biasanya dua dimensi, untuk menunjukkan kedekatan antar kategori.
Statistik utama dalam CA adalah chi-square distance, yang mengukur perbedaan antara profil baris dan kolom, dengan total inersia didefinisikan sebagai:\[ \text{Inersia} = \frac{X^2}{n} \]di mana \(X^2\) adalah statistik chi-square dari tabel kontingensi, dan \(n\) adalah total observasi. CA menggunakan singular value decomposition (SVD) untuk memetakan kategori ke dalam plot, di mana jarak antar titik mencerminkan tingkat asosiasi.
CA sangat berguna untuk mengidentifikasi pola visual dalam data kategorikal, terutama ketika tabel kontingensi besar atau kompleks. Metode ini sering digunakan dalam pemasaran untuk memahami preferensi pelanggan atau dalam ilmu sosial untuk menganalisis hubungan antar variabel kualitatif.
Contoh:Sebuah perusahaan ritel menganalisis hubungan antara kelompok usia (muda/dewasa/lansia) dan jenis produk (elektronik/pakaian/makanan). Dengan CA, plot korespondensi menunjukkan bahwa pelanggan muda dekat dengan kategori elektronik, sedangkan lansia dekat dengan makanan. Perusahaan menggunakan visualisasi ini untuk menyesuaikan strategi pemasaran, menargetkan produk elektronik untuk pelanggan muda dan makanan untuk lansia.
Penjelasan:Pohon Keputusan (Decision Tree) adalah metode pembelajaran mesin yang memodelkan keputusan berdasarkan serangkaian aturan pemisahan data ke dalam kelompok berdasarkan variabel kategorikal atau numerik. Dalam analisis data kategori, pohon keputusan membagi data ke dalam simpul (nodes) berdasarkan kriteria seperti indeks Gini atau entropi, dengan entropi didefinisikan sebagai:\[ H = -\sum_{i=1}^k p_i \log_2(p_i) \]di mana \(p_i\) adalah proporsi observasi pada kategori ke-\(i\) di simpul tertentu, dan \(k\) adalah jumlah kategori. Pohon keputusan menghasilkan struktur pohon yang mudah diinterpretasikan, dengan cabang yang mewakili keputusan dan daun yang mewakili hasil.
Random Forest adalah pengembangan dari pohon keputusan yang menggabungkan banyak pohon keputusan untuk meningkatkan akurasi dan mengurangi overfitting. Setiap pohon dilatih pada sampel acak dari data (bootstrap) dan subset acak dari variabel, dengan hasil akhir ditentukan melalui mayoritas voting untuk klasifikasi. Random Forest menggunakan konsep ensemble learning untuk meningkatkan robustnes model. Kedua metode ini sangat efektif untuk klasifikasi data kategorikal, terutama dalam dataset besar, dan sering digunakan dalam teknologi informasi, pemasaran, dan kesehatan untuk prediksi dan segmentasi.
Contoh:Sebuah platform streaming ingin memprediksi preferensi genre film (aksi/drama/komedi) berdasarkan usia dan tipe perangkat pengguna. Dengan Random Forest, model mengidentifikasi bahwa pengguna ponsel muda cenderung memilih aksi, sementara pengguna desktop dewasa memilih drama. Model ini digunakan untuk menyesuaikan rekomendasi film, meningkatkan waktu tonton pengguna sebesar 30%.
Metode dalam analisis data kategori, seperti Tabel Kontingensi dan Uji Chi-Square, Regresi Logistik, Analisis Korespondensi, serta Pohon Keputusan dan Random Forest, menawarkan pendekatan yang beragam untuk mengolah data kategorikal. Dari eksplorasi hubungan antar variabel hingga prediksi hasil, metode ini memungkinkan wawasan yang mendalam dan pengambilan keputusan berbasis data di berbagai bidang, seperti kesehatan, pemasaran, dan teknologi informasi.
Desain sampling adalah kerangka metodologis untuk memilih individu atau unit dari populasi guna mengumpulkan data yang representatif, khususnya dalam analisis data kategori, di mana variabel bersifat diskret (misalnya, biner, ordinal, atau nominal).
Dalam analisis kategori, desain sampling menentukan bagaimana data dikumpulkan untuk mempelajari hubungan antar variabel, seperti prevalensi penyakit, preferensi konsumen, atau keberhasilan intervensi. Pemilihan desain sampling memengaruhi validitas inferensi statistik, efisiensi analisis, dan kemampuan untuk menjawab pertanyaan penelitian. Desain sampling dapat dibagi menjadi dua kategori utama berdasarkan arah pengumpulan data: prospective (maju) dan retrospective (mundur).
Desain sampling prospektif melibatkan pengumpulan data ke depan dalam waktu, dimulai dengan pemilihan subjek berdasarkan paparan atau intervensi, kemudian mengamati hasil (outcome) setelah periode tertentu. Desain ini cocok untuk analisis kategori karena memungkinkan pengukuran probabilitas kejadian (misalnya, \(P(Y=1|X)\)) secara langsung dan mengurangi bias akibat pengumpulan data setelah hasil diketahui. Dua desain utama dalam kategori ini adalah eksperimen dan studi kohort.
Eksperimen adalah desain prospektif di mana peneliti secara aktif memanipulasi variabel independen (paparan atau intervensi) dan mengamati efeknya pada variabel dependen kategorikal, seperti keberhasilan/kegagalan atau respons positif/negatif. Eksperimen sering menggunakan randomisasi untuk mengalokasikan subjek ke kelompok perlakuan atau kontrol, meminimalkan bias dan memastikan kausalitas dapat disimpulkan. Berbasis teori desain eksperimen, metode ini mengasumsikan bahwa randomisasi menyeimbangkan faktor pengganggu (confounders), sehingga perbedaan hasil antar kelompok dapat diatribusikan ke intervensi. Eksperimen sangat relevan untuk analisis kategori, seperti menguji efektivitas obat (sembuh/tidak sembuh) atau program pendidikan (lulus/gagal).
Karakteristik:
Randomisasi: Subjek secara acak ditugaskan ke kelompok (misalnya, perlakuan vs kontrol).
Kontrol: Kelompok kontrol menerima plasebo atau tidak ada intervensi untuk perbandingan.
Manipulasi: Peneliti mengontrol paparan, seperti dosis obat atau jenis pelatihan.
Waktu: Data dikumpulkan setelah intervensi diterapkan, sering melalui uji coba terkontrol acak (randomized controlled trial, RCT).
Variabel Kategori: Hasil sering biner (misalnya, \(Y=1\) untuk sukses, \(Y=0\) untuk gagal) atau multinomial.
Dalam eksperimen dengan hasil biner, probabilitas sukses di kelompok perlakuan (\(p_1\)) dan kontrol (\(p_2\)) diestimasi sebagai: \[ \hat{p}_1 = \frac{y_1}{n_1}, \quad \hat{p}_2 = \frac{y_2}{n_2} \]
di mana \(y_i\) adalah jumlah sukses, dan \(n_i\) adalah ukuran sampel kelompok \(i\). Efek intervensi diukur melalui perbedaan proporsi, odds ratio, atau risiko relatif:
Perbedaan proporsi: \(\hat{p}_1 - \hat{p}_2\).
Odds ratio: \(\frac{\hat{p}_1 / (1-\hat{p}_1)}{\hat{p}_2 / (1-\hat{p}_2)}\).
Sebuah RCT menguji efektivitas vaksin baru terhadap penyakit infeksius. Subjek secara acak ditugaskan ke kelompok vaksin (\(n_1=500\)) atau plasebo (\(n_2=500\)). Setelah 6 bulan, 20 individu di kelompok vaksin terinfeksi (\(y_1=20\)), dan 100 di kelompok plasebo terinfeksi (\(y_2=100\)). Proporsi infeksi adalah:\[ \hat{p}_1 = \frac{20}{500} = 0,04, \quad \hat{p}_2 = \frac{100}{500} = 0,20 \]Perbedaan proporsi (\(0,04 - 0,20 = -0,16\)) menunjukkan vaksin mengurangi risiko infeksi. Analisis kategori, seperti uji Chi-Square, dapat mengkonfirmasi signifikansi.
Kelebihan:
Randomisasi mengurangi bias dan memungkinkan inferensi kausal.
Kontrol ketat terhadap variabel pengganggu.
Cocok untuk menguji hipotesis spesifik tentang efek intervensi.
Hasil kategori mudah dianalisis dengan metode seperti regresi logistik.
Kekurangan:
Mahal dan memakan waktu karena membutuhkan pengawasan ketat.
Tidak selalu etis (misalnya, menahan perawatan dari kelompok kontrol).
Tidak praktis untuk kejadian langka karena membutuhkan sampel besar.
Tidak mencerminkan kondisi dunia nyata jika setting terlalu terkontrol.
Studi kohort prospektif melibatkan pengamatan subjek yang dipilih berdasarkan status paparan (misalnya, merokok/tidak merokok) dan diikuti sepanjang waktu untuk mencatat hasil kategorikal, seperti penyakit/tidak penyakit. Berbasis teori epidemiologi, desain ini tidak memanipulasi paparan tetapi memanfaatkan variasi alami dalam populasi. Studi kohort cocok untuk analisis kategori karena memungkinkan estimasi risiko relatif atau insidens kumulatif untuk hasil diskret, seperti \(P(Y=1|X=1)\) vs \(P(Y=1|X=0)\). Desain ini sering digunakan untuk mempelajari hubungan antara faktor risiko dan hasil kesehatan. Karakteristik:
Pemilihan Berdasarkan Paparan: Subjek dikelompokkan berdasarkan paparan sebelum hasil terjadi. Pengamatan Longitudinal: Subjek diikuti selama periode tertentu (bulan, tahun). Tanpa Manipulasi: Paparan terjadi secara alami, bukan ditentukan peneliti. Hasil Kategori: Misalnya, biner (sakit/sehat) atau multinomial (stadium penyakit). Waktu: Data dikumpulkan dari awal paparan hingga hasil diamati.
Rumus:Risiko relatif (relative risk, RR) dihitung sebagai: \[ \text{RR} = \frac{P(Y=1|X=1)}{P(Y=1|X=0)} = \frac{a/(a+b)}{c/(c+d)} \]
di mana \(a, b, c, d\) adalah frekuensi dalam tabel kontingensi 2x2:
| Paparan | \(Y = 1\) | \(Y = 0\) | Total |
|---|---|---|---|
| \(X = 1\) | \(a\) | \(b\) | \(a + b\) |
| \(X = 0\) | \(c\) | \(d\) | \(c + d\) |
| Total | \(a + c\) | \(b + d\) | \(n\) |
Contoh Aplikasi:Sebuah studi kohort mengikuti 1000 pekerja selama 10 tahun, dikelompokkan berdasarkan paparan asbes (400 terpapar, 600 tidak terpapar). Hasilnya adalah kanker paru-paru (biner: ya/tidak). Pada akhir studi, 80 pekerja terpapar (\(a=80\)) dan 30 tidak terpapar (\(c=30\)) mengalami kanker paru-paru. Risiko relatif:\[ \text{RR} = \frac{80/400}{30/600} = \frac{0,20}{0,05} = 4,0 \]RR = 4,0 menunjukkan pekerja terpapar asbes memiliki risiko 4 kali lebih tinggi untuk kanker paru-paru. Analisis kategori dapat menggunakan uji proporsi untuk signifikansi.
Kelebihan:
Memungkinkan estimasi risiko langsung dan insidens.
Cocok untuk mempelajari beberapa hasil dari satu paparan.
Mengurangi bias akibat pemilihan hasil karena data dikumpulkan sebelum hasil terjadi.
Fleksibel untuk analisis kategori dengan berbagai distribusi (binomial, multinomial).
Kekurangan:
Memakan waktu lama untuk hasil yang membutuhkan waktu panjang (misalnya, penyakit kronis).
Mahal karena memerlukan pemantauan berkelanjutan.
Rentan terhadap kehilangan subjek (loss to follow-up), yang dapat menyebabkan bias.
Tidak dapat menetapkan kausalitas sekuat eksperimen karena tidak ada randomisasi.
Desain sampling retrospektif mengumpulkan data dengan melihat ke belakang, memulai dari hasil (outcome) yang telah terjadi dan menelusuri paparan atau faktor risiko di masa lalu. Desain ini efisien untuk analisis kategori, terutama untuk kejadian langka, karena memungkinkan fokus pada subjek dengan hasil tertentu. Dua desain utama adalah studi kasus-kontrol dan studi kohort retrospektif.
Penjelasan:Studi kasus-kontrol membandingkan individu dengan hasil tertentu (cases, misalnya, penyakit) dengan individu tanpa hasil tersebut (controls), lalu menelusuri paparan di masa lalu untuk mengidentifikasi faktor risiko. Berbasis teori epidemiologi, desain ini cocok untuk analisis kategori karena hasilnya sering biner (kasus/kontrol) atau multinomial, dan paparan dapat dikategorikan (misalnya, merokok/tidak merokok). Studi ini efisien untuk kejadian langka karena langsung memilih kasus, tetapi tidak dapat mengestimasi risiko langsung melainkan menggunakan odds ratio sebagai ukuran asosiasi.
Karakteristik:
Pemilihan Berdasarkan Hasil: Kasus dipilih berdasarkan keberadaan hasil, kontrol dipilih dari populasi serupa tanpa hasil.
Data Historis: Paparan dikumpulkan dari catatan medis, wawancara, atau kuesioner.
Tanpa Pengamatan Waktu Nyata: Mengandalkan data yang sudah ada, seperti riwayat kesehatan.
Hasil Kategori: Biasanya biner (kasus/kontrol), dengan paparan kategori.
Efisiensi: Memungkinkan studi kejadian langka dengan sampel kecil.
Contoh Aplikasi:Sebuah studi kasus-kontrol meneliti hubungan antara merokok dan kanker paru-paru. Peneliti memilih 200 pasien kanker paru-paru (kasus) dan 200 individu sehat (kontrol). Dari data, 150 kasus merokok (\(a=150\)), 50 kasus tidak merokok (\(c=50\)), 80 kontrol merokok (\(b=80\)), dan 120 kontrol tidak merokok (\(d=120\)).
Odds ratio: \[ \text{OR} = \frac{150 \times 120}{80 \times 50} = \frac{18000}{4000} = 4,5 \]
OR = 4,5 menunjukkan bahwa perokok memiliki odds 4,5 kali lebih tinggi untuk kanker paru-paru dibandingkan non-perokok. Analisis kategori menggunakan uji Chi-Square untuk signifikansi.
Kelebihan:
Efisien untuk kejadian langka karena langsung memilih kasus.
Relatif cepat dan murah karena menggunakan data yang sudah ada.
Cocok untuk mempelajari beberapa paparan untuk satu hasil.
Mendukung analisis kategori dengan odds ratio atau regresi logistik.
Kekurangan:
Rentan terhadap recall bias karena subjek mengingat paparan secara retrospektif.
Sulit memilih kontrol yang representatif, berisiko selection bias.
Tidak dapat mengestimasi risiko atau prevalensi langsung.
Pengaruh confounders sulit dikontrol tanpa data lengkap.
Penjelasan:Studi kohort retrospektif mengidentifikasi subjek berdasarkan paparan di masa lalu menggunakan data historis (misalnya, catatan perusahaan atau rumah sakit) dan memeriksa hasil yang telah terjadi hingga waktu tertentu. Berbeda dengan kohort prospektif, desain ini tidak memerlukan pengamatan waktu nyata, sehingga lebih cepat dan murah. Dalam analisis kategori, desain ini digunakan untuk menghitung odds ratio atau risiko relatif berdasarkan data kategori (misalnya, terinfeksi/tidak terinfeksi). Berbasis teori epidemiologi, desain ini mengasumsikan bahwa data historis akurat dan representatif.
Karakteristik:
Data Historis: Paparan dan hasil diambil dari catatan yang sudah ada.
Pemilihan Berdasarkan Paparan: Subjek dikelompokkan berdasarkan paparan masa lalu.
Hasil Kategori: Misalnya, biner (penyakit/sehat) atau multinomial.
Efisiensi: Tidak memerlukan pemantauan jangka panjang.
Waktu: Analisis dilakukan setelah paparan dan hasil telah tercatat.
Rumus:Mirip dengan kohort prospektif, risiko relatif dihitung sebagai: \[ \text{RR} = \frac{a/(a+b)}{c/(c+d)} \] Jika hanya odds ratio yang layak (data terbatas), gunakan: \[ \text{OR} = \frac{a d}{b c} \]
Contoh Aplikasi:Sebuah studi kohort retrospektif menggunakan catatan rumah sakit untuk meneliti hubungan antara paparan bahan kimia di tempat kerja dan asma. Dari data 10 tahun, 300 pekerja terpapar bahan kimia, dan 700 tidak terpapar. Hasil menunjukkan 60 pekerja terpapar mengalami asma (\(a=60\)), 240 tidak (\(b=240\)), 70 pekerja tidak terpapar mengalami asma (\(c=70\)), dan 630 tidak (\(d=630\)). Risiko relatif:
\[ \\text{RR} = \frac{60/300}{70/700} = \frac{0,20}{0,10} = 2,0 \]
RR = 2,0 menunjukkan pekerja terpapar memiliki risiko 2 kali lebih tinggi untuk asma. Analisis kategori dapat menggunakan regresi logistik untuk menyesuaikan confounders.
Kelebihan:
Cepat dan murah karena menggunakan data yang sudah ada.
Cocok untuk mempelajari kejadian langka dengan catatan historis besar.
Dapat mengestimasi risiko relatif jika data lengkap.
Mendukung analisis kategori dengan berbagai model statistik.
Kekurangan:
Bergantung pada kualitas dan kelengkapan data historis.
Rentan terhadap information bias jika catatan tidak akurat.
Sulit mengontrol confounders yang tidak tercatat.
Tidak sekuat prospektif dalam menetapkan hubungan waktu.
Tabel Perbandingan Desain Sampling Berikut adalah tabel perbandingan untuk merangkum karakteristik, kelebihan, dan kekurangan masing-masing desain sampling dalam analisis kategori:
| Aspek | Eksperimen | Studi Kohort | Studi Kasus-Kontrol | Studi Kohort Retrospektif |
|---|---|---|---|---|
| Definisi | Manipulasi paparan dengan randomisasi | Pengamatan paparan alami secara prospektif | Membandingkan kasus dan kontrol retrospektif | Kohort berdasarkan data historis |
| Arah Waktu | Prospektif | Prospektif | Retrospektif | Retrospektif |
| Pemilihan Subjek | Berdasarkan perlakuan (acak) | Berdasarkan paparan | Berdasarkan hasil (kasus/kontrol) | Berdasarkan paparan masa lalu |
| Hasil Kategori | Biner/multinomial | Biner/multinomial | Biner/multinomial | Biner/multinomial |
| Ukuran Asosiasi | Perbedaan proporsi, OR, RR | Risiko relatif, OR | Odds ratio | Risiko relatif, OR |
| Kelebihan | - Inferensi kausal kuat - Minim bias |
- Estimasi risiko langsung - Multi hasil |
- Efisien untuk kejadian langka - Cepat |
- Cepat dan murah - Cocok kejadian langka |
| Kekurangan | - Mahal - Tidak selalu etis |
- Lama dan mahal - Loss to follow-up |
- Recall/selection bias - Tidak estimasi risiko |
- Kualitas data historis - Bias informasi |
| Contoh Aplikasi | Uji klinis obat (sembuh/tidak) | Paparan merokok vs penyakit | Merokok vs kanker paru-paru | Paparan kimia vs asma |
| Analisis Statistik | Uji Chi-Square, regresi logistik | Uji proporsi, regresi Cox | Uji Chi-Square, regresi logistik | Uji proporsi, regresi logistik |
| Efisiensi | Rendah (mahal, waktu lama) | Sedang (tergantung durasi) | Tinggi (cepat, murah) | Tinggi (data tersedia) |
| Kekuatan Kausalitas | Tinggi (randomisasi) | Sedang (observasional) | Rendah (retrospektif) | Sedang (tergantung data) |
Eksperimen unggul dalam menetapkan kausalitas tetapi memerlukan sumber daya besar. Studi Kohort ideal untuk estimasi risiko tetapi lambat untuk hasil jangka panjang. Studi Kasus-Kontrol efisien untuk kejadian langka tetapi rentan terhadap bias. Studi Kohort Retrospektif cepat dan hemat biaya tetapi bergantung pada kualitas data.
Tabel kontingensi 2x2 adalah alat statistik untuk menyusun frekuensi observasi dari dua variabel kategorikal dalam matriks 2x2, memungkinkan analisis distribusi dan hubungan antar variabel. Dalam kasus ini, tabel kontingensi digunakan untuk menghitung frekuensi kombinasi antara pola olahraga dan proporsi badan, serta probabilitas bersama, seperti \(P(X=\text{Rutin} \cap Y=\text{Ideal})\). Tabel ini menjadi dasar untuk analisis lanjutan, seperti uji Chi-Square, yang menguji independensi antar variabel dengan statistik:
\[ X^2 = \sum \frac{(O_i - E_i)^2}{E_i} \]
di mana \(O_i\) adalah frekuensi observasi pada sel ke-\(i\), dan \(E_i\) adalah frekuensi yang diharapkan, dihitung sebagai:
\[ E_i = \frac{(\text{total baris}_i) \times (\text{total kolom}_i)}{\text{total keseluruhan}} \]
Tabel kontingensi juga memungkinkan perhitungan probabilitas marginal dan bersyarat, yang akan dijelaskan pada subbab berikut. Metode ini berbasis teori probabilitas, dengan asumsi bahwa data mengikuti distribusi multinomial, dan sangat efektif untuk analisis eksplorasi dalam studi kesehatan. ## Contoh Kasus: Hubungan Pola Olahraga dan Proporsi Badan
Penelitian ini mengevaluasi hubungan antara pola olahraga dan proporsi badan pada 500 orang dewasa. Pola olahraga yang rutin (≥2 kali/minggu) dianggap mendukung proporsi badan ideal (rasio otot-lemak seimbang), sedangkan olahraga tidak rutin (<2 kali/minggu) berisiko menyebabkan proporsi badan tidak ideal (kelebihan lemak atau kekurangan massa otot). Analisis ini bertujuan untuk memahami apakah olahraga rutin berkontribusi signifikan terhadap proporsi badan ideal, memberikan wawasan bagi program kesehatan masyarakat.
Variabel yang dianalisis adalah:
Pola Olahraga (\(X\)): Rutin atau Tidak Rutin. Proporsi Badan (\(Y\)): Ideal atau Tidak Ideal.
Data Tabel Kontingensi Berdasarkan data dari 500 partisipan, tabel kontingensi 2x2 disusun sebagai berikut:
| Badan Ideal | Badan Tidak Ideal | Total | |
|---|---|---|---|
| Rutin | 217 | 50 | 267 |
| Tidak Rutin | 125 | 108 | 233 |
| Total | 342 | 158 | 500 |
Dari tabel, terlihat bahwa proporsi individu dengan badan ideal lebih tinggi pada kelompok yang rutin berolahraga (217 dari 267, atau 81,27%) dibandingkan kelompok tidak rutin (125 dari 233, atau 53,65%). Untuk mengkonfirmasi apakah hubungan ini signifikan, uji Chi-Square dapat dilakukan dengan menghitung \(E_i\) untuk setiap sel, misalnya:
Untuk sel (Rutin, Badan Ideal):
\(E_{11} = \frac{267 \times 342}{500} = 182,63\)
Sel lainnya dihitung serupa, kemudian digunakan untuk menghitung \(X^2\).
Probabilitas Bersama: Probabilitas bahwa dua peristiwa terjadi bersamaan, dihitung sebagai: \[ P(X=x \cap Y=y) = \frac{n_{xy}}{n} \] di mana \(n_{xy}\) adalah frekuensi pada sel dengan kategori \(X=x\) dan \(Y=y\), dan \(n\) adalah total observasi.
Probabilitas Marginal: Probabilitas suatu peristiwa tanpa mempertimbangkan peristiwa lain, dihitung sebagai: \[ P(X=x) = \frac{n_x}{n} \quad \text{atau} \quad P(Y=y) = \frac{n_y}{n} \] di mana \(n_x\) adalah total frekuensi baris untuk \(X=x\), dan \(n_y\) adalah total frekuensi kolom untuk \(Y=y\).
Probabilitas Bersyarat: Probabilitas suatu peristiwa terjadi dengan syarat peristiwa lain telah terjadi, dihitung sebagai: \[ P(Y=y | X=x) = \frac{P(X=x \cap Y=y)}{P(X=x)} = \frac{n_{xy}/n}{n_x/n} = \frac{n_{xy}}{n_x} \]
Keterangan Variabel Rumus:
\(X\): Variabel pola olahraga, dengan kategori Rutin (\(x_1\)) dan Tidak Rutin (\(x_2\)). \(Y\): Variabel proporsi badan, dengan kategori Ideal (\(y_1\)) dan Tidak Ideal (\(y_2\)). \(n_{xy}\): Frekuensi observasi pada sel dengan \(X=x\) dan \(Y=y\) (misalnya, \(n_{x_1 y_1}\) untuk Rutin dan Ideal). \(n_x\): Total frekuensi baris untuk kategori \(X=x\). \(n_y\): Total frekuensi kolom untuk kategori \(Y=y\). \(n\): Total observasi (500 dalam kasus ini).
Perhitungan Manual: Menggunakan tabel kontingensi di atas, kita hitung probabilitas untuk beberapa kasus:
Probabilitas Bersama: \(P(X=\text{Rutin} \cap Y=\text{Ideal})\)
Frekuensi sel (Rutin, Ideal): \(n_{x_1 y_1} = 217\). Total observasi: \(n = 500\). Perhitungan: \[ P(X=\text{Rutin} \cap Y=\text{Ideal}) = \frac{n_{x_1 y_1}}{n} = \frac{217}{500} = 0,434 \]
Probabilitas Marginal: \(P(X=\text{Rutin})\)
Total frekuensi baris Rutin: \(n_{x_1} = 267\). Total observasi: \(n = 500\). Perhitungan: \[ P(X=\text{Rutin}) = \frac{n_{x_1}}{n} = \frac{267}{500} = 0,534 \]
Probabilitas Bersyarat: \(P(Y=\text{Ideal} | X=\text{Rutin})\)
Frekuensi sel (Rutin, Ideal): \(n_{x_1 y_1} = 217\). Total frekuensi baris Rutin: \(n_{x_1} = 267\). Perhitungan: \[ P(Y=\text{Ideal} | X=\text{Rutin}) = \frac{n_{x_1 y_1}}{n_{x_1}} = \frac{217}{267} \approx 0,8127 \]
# Definisikan data tabel kontingensi
tabel <- matrix(c(217, 50, 125, 108), nrow = 2, byrow = TRUE)
rownames(tabel) <- c("Rutin", "Tidak Rutin")
colnames(tabel) <- c("Ideal", "Tidak Ideal")
# Total observasi
n <- sum(tabel)
# Probabilitas Bersama: P(X=Rutin ∩ Y=Ideal)
P_X1Y1 <- tabel[1,1] / n
# Probabilitas Marginal: P(X=Rutin)
P_X1 <- sum(tabel[1,]) / n
# Probabilitas Bersyarat: P(Y=Ideal | X=Rutin)
P_Y1_X1 <- tabel[1,1] / sum(tabel[1,])
# Menampilkan hasil
cat("Probabilitas Bersama P(X=Rutin ∩ Y=Ideal):", P_X1Y1, "\n")
## Probabilitas Bersama P(X=Rutin ∩ Y=Ideal): 0.434
cat("Probabilitas Marginal P(X=Rutin):", P_X1, "\n")
## Probabilitas Marginal P(X=Rutin): 0.534
cat("Probabilitas Bersyarat P(Y=Ideal | X=Rutin):", P_Y1_X1, "\n")
## Probabilitas Bersyarat P(Y=Ideal | X=Rutin): 0.8127341
Interpretasi:
Probabilitas Bersama (\(P(X=\text{Rutin} \cap Y=\text{Ideal}) = 0,434\)): Sebanyak 43,4% (217 dari 500 individu) rutin berolahraga dan memiliki proporsi badan ideal. Ini menunjukkan bahwa kombinasi olahraga rutin dan badan ideal cukup signifikan dalam populasi yang diteliti, meskipun kurang dari setengah populasi. Probabilitas Marginal (\(P(X=\text{Rutin}) = 0,534\)): Sebanyak 53,4% (267 dari 500 individu) rutin berolahraga. Ini mencerminkan bahwa lebih dari separuh partisipan memiliki kebiasaan olahraga yang baik, yang merupakan indikator positif untuk kesehatan masyarakat.
Probabilitas Bersyarat (\(P(Y=\text{Ideal} | X=\text{Rutin}) \approx 0,8127\)): Di antara individu yang rutin berolahraga, 81,27% (217 dari 267) memiliki proporsi badan ideal. Angka ini jauh lebih tinggi dibandingkan proporsi badan ideal pada kelompok tidak rutin (53,65%, atau 125 dari 233), menunjukkan bahwa olahraga rutin memiliki asosiasi kuat dengan proporsi badan ideal. Hal ini mengindikasikan bahwa kebiasaan olahraga rutin secara signifikan meningkatkan peluang mencapai rasio otot-lemak yang seimbang.
Hasil ini memperkuat hipotesis bahwa olahraga rutin berkontribusi pada proporsi badan ideal. Probabilitas bersyarat yang tinggi (81,27%) menunjukkan bahwa individu yang rutin berolahraga memiliki peluang besar untuk memiliki badan ideal, yang dapat menjadi dasar untuk rekomendasi program kesehatan yang mempromosikan olahraga rutin. Kesimpulan Tabel kontingensi 2x2 yang telah diperbaiki memberikan gambaran yang akurat tentang hubungan antara pola olahraga dan proporsi badan, dengan total observasi 500 individu. Perhitungan probabilitas bersama, marginal, dan bersyarat menunjukkan bahwa olahraga rutin berkontribusi signifikan terhadap proporsi badan ideal, dengan 81,27% individu rutin berolahraga memiliki badan ideal dibandingkan 53,65% pada kelompok tidak rutin. Analisis lanjutan, seperti uji Chi-Square, dapat mengkonfirmasi signifikansi hubungan ini. Hasil ini mendukung rekomendasi untuk mempromosikan olahraga rutin dalam program kesehatan masyarakat guna meningkatkan proporsi badan ideal dan mengurangi risiko kesehatan.
Distribusi sampling adalah konsep penting dalam statistik yang menggambarkan perilaku statistik (seperti rata-rata atau proporsi) dari sampel yang diambil dari populasi. Dalam analisis data kategori, distribusi sampling sering digunakan untuk memodelkan data yang bersifat diskret, seperti hasil percobaan biner atau frekuensi kategori. Distribusi ini membantu memahami probabilitas kejadian tertentu, membuat inferensi tentang populasi, dan mendukung pengambilan keputusan berbasis data.
Distribusi Bernoulli memodelkan percobaan tunggal dengan dua kemungkinan hasil, sering disebut “sukses” (diberi nilai 1) dan “gagal” (diberi nilai 0). Distribusi ini merupakan dasar dari banyak distribusi lain, seperti Binomial, dan sangat relevan dalam analisis data kategori untuk variabel biner, seperti ya/tidak atau benar/salah. Berbasis teori probabilitas diskret, distribusi Bernoulli mengasumsikan bahwa setiap percobaan independen dan probabilitas sukses konstan. Rumus
Fungsi massa probabilitas (PMF) untuk variabel acak \(X\) yang berdistribusi Bernoulli adalah: \[ P(X=x) = p^x (1-p)^{1-x}, \quad x \in {0, 1} \]
di mana:
\(p\): Probabilitas sukses (\(0 \leq p \leq 1\)). \(1-p\): Probabilitas gagal. \(x\): Hasil percobaan (1 untuk sukses, 0 untuk gagal).
Parameter:
Probabilitas sukses: \(p\). Rata-rata (ekspektasi): \(E(X) = p\). Variansi: \(Var(X) = p(1-p)\).
Contoh Aplikasi:Seorang peneliti kesehatan mempelajari kebiasaan merokok pada pasien, dengan variabel biner “merokok” (1) atau “tidak merokok” (0). Misalkan probabilitas seseorang merokok adalah \(p = 0,3\). Untuk satu pasien yang dipilih secara acak, probabilitas dia merokok dihitung sebagai: $ P(X=1) = 0,3^1 (1-0,3)^{1-1} = 0,3 $ dan probabilitas tidak merokok:$ P(X=0) = 0,3^0 (1-0,3)^{1-0} = 0,7 $ Hasil ini membantu peneliti memahami prevalensi merokok dalam populasi dan merancang intervensi kesehatan.
Penjelasan:Distribusi Poisson memodelkan jumlah kejadian acak yang terjadi dalam interval waktu atau ruang tertentu, dengan asumsi kejadian-kejadian tersebut independen dan terjadi dengan laju konstan. Distribusi ini cocok untuk data kategori yang menghitung frekuensi kejadian langka, seperti jumlah pasien yang datang ke rumah sakit dalam satu jam. Berbasis teori proses Poisson, distribusi ini sering digunakan dalam analisis data kategori untuk memodelkan data hitungan (count data).
Fungsi massa probabilitas untuk variabel acak \(X\) yang berdistribusi Poisson adalah: \[ P(X=x) = \frac{\lambda^x e^{-\lambda}}{x!}, \quad x = 0, 1, 2, \dots \]
di mana:
\(\lambda\): Rata-rata jumlah kejadian dalam interval waktu atau ruang (\(\lambda > 0\)). \(x\): Jumlah kejadian yang diamati. \(e\): Basis logaritma natural (\(\approx 2,718\)). \(x!\): Faktorial dari \(x\).
Parameter:
Rata-rata laju kejadian: \(\lambda\). Rata-rata: \(E(X) = \lambda\). Variansi: \(Var(X) = \lambda\).
Contoh Aplikasi:Sebuah rumah sakit mencatat rata-rata 4 pasien datang ke unit gawat darurat setiap jam, sehingga \(\lambda = 4\). Untuk menghitung probabilitas tepat 3 pasien datang dalam satu jam: \[ P(X=3) = \frac{4^3 e^{-4}}{3!} = \frac{64 \times 0,0183}{6} \approx 0,195 \]
Hasil ini menunjukkan bahwa ada peluang 19,5% untuk menerima tepat 3 pasien dalam satu jam. Informasi ini membantu rumah sakit mengatur jadwal staf medis untuk mengantisipasi beban kerja.
Penjelasan:Distribusi Binomial memodelkan jumlah sukses dalam \(n\) percobaan independen, di mana setiap percobaan mengikuti distribusi Bernoulli dengan probabilitas sukses \(p\). Distribusi ini sangat relevan untuk data kategori yang menghitung kejadian biner dalam jumlah percobaan tetap, seperti jumlah pelanggan yang membeli produk dalam sampel. Berbasis teori probabilitas diskret, distribusi Binomial mengasumsikan independensi antar percobaan dan probabilitas sukses yang konstan.
Fungsi massa probabilitas untuk variabel acak \(X\) yang berdistribusi Binomial adalah: \[ P(X=x) = \binom{n}{x} p^x (1-p)^{n-x}, \quad x = 0, 1, 2, \dots, n \]
di mana:
\(n\): Jumlah percobaan. \(p\): Probabilitas sukses pada setiap percobaan. \(x\): Jumlah sukses yang diamati. \(\binom{n}{x}\): Koefisien binomial, dihitung sebagai \(\frac{n!}{x!(n-x)!}\).
Parameter:
- Jumlah percobaan: \(n\). -
Probabilitas sukses: \(p\). -
Rata-rata: \(E(X) = np\). - Variansi:
\(Var(X) = np(1-p)\).
Contoh Aplikasi:Sebuah perusahaan pemasaran menguji respons pelanggan terhadap iklan baru, dengan probabilitas respons positif \(p = 0,2\). Dalam sampel 10 pelanggan (\(n=10\)), probabilitas tepat 3 pelanggan merespons positif dihitung sebagai:
\[ P(X=3) = \binom{10}{3} (0,2)^3 (0,8)^{10-3} \]
\(\binom{10}{3} = \frac{10!}{3!7!} = 120\)
\((0,2)^3 = 0,008\)
\((0,8)^7 \approx 0,2097\)
Maka: \(P(X=3) = 120 \times 0,008 \times 0,2097 \approx 0,2013\) Peluang 20,13% ini membantu perusahaan memperkirakan efektivitas iklan dan merencanakan strategi pemasaran lebih lanjut.
Penjelasan:Distribusi Multinomial adalah generalisasi dari distribusi Binomial untuk lebih dari dua kategori hasil dalam \(n\) percobaan independen. Distribusi ini digunakan untuk memodelkan data kategori dengan beberapa kelompok, seperti preferensi produk dalam survei pasar. Berbasis teori probabilitas diskret, distribusi Multinomial mengasumsikan bahwa setiap percobaan menghasilkan tepat satu dari \(k\) kategori, dengan probabilitas masing-masing kategori konstan dan total probabilitas sama dengan 1.
Fungsi massa probabilitas untuk variabel acak \((X_1, X_2, \dots, X_k)\) yang berdistribusi Multinomial adalah: \[ P(X_1=x_1, X_2=x_2, \dots, X_k=x_k) = \frac{n!}{x_1! x_2! \dots x_k!} p_1^{x_1} p_2^{x_2} \dots p_k^{x_k} \]
di mana:
\(n\): Jumlah percobaan. \(k\): Jumlah kategori hasil. \(x_i\): Jumlah kejadian kategori ke-\(i\), dengan \(\sum_{i=1}^k x_i = n\). \(p_i\): Probabilitas kategori ke-\(i\), dengan \(\sum_{i=1}^k p_i = 1\).
Parameter:
Contoh Aplikasi:Sebuah perusahaan ritel menganalisis preferensi pelanggan terhadap tiga jenis produk: elektronik (\(p_1 = 0,4\)), pakaian (\(p_2 = 0,3\)), dan makanan (\(p_3 = 0,3\)) dalam survei 10 pelanggan (\(n=10\)). Probabilitas 4 pelanggan memilih elektronik (\(x_1=4\)), 3 memilih pakaian (\(x_2=3\)), dan 3 memilih makanan (\(x_3=3\)) dihitung sebagai:
\[ P(X_1=4, X_2=3, X_3=3) = \frac{10!}{4!3!3!} (0,4)^4 (0,3)^3 (0,3)^3 \]
\(\frac{10!}{4!3!3!} = \frac{3628800}{24 \times 6 \times 6} = 700\)
\((0,4)^4 = 0,0256\)
\((0,3)^3 = 0,027\)
Maka: \(P(X_1=4, X_2=3, X_3=3) = 700 \times 0,0256 \times 0,027 \times 0,027 \approx 0,01306\) Peluang 1,31% ini membantu perusahaan memahami distribusi preferensi pelanggan dan mengalokasikan stok produk dengan lebih efektif.
Kesimpulan Distribusi sampling seperti Bernoulli, Poisson, Binomial, dan Multinomial memainkan peran kunci dalam analisis data kategori. Distribusi Bernoulli memodelkan percobaan biner tunggal, Poisson menghitung kejadian langka, Binomial menghitung sukses dalam percobaan berulang, dan Multinomial menangani hasil dengan beberapa kategori. Dengan memahami karakteristik dan aplikasi masing-masing distribusi, analis dapat memilih model yang tepat untuk mengolah data kategori, membuat prediksi, dan mendukung pengambilan keputusan di berbagai bidang, seperti kesehatan, pemasaran, dan ilmu sosial.
Tabel kontingensi dua arah adalah alat statistik yang digunakan untuk menganalisis hubungan antara dua variabel kategorikal dengan menyusun frekuensi observasi dalam matriks. Dalam kasus ini, kita mengevaluasi hubungan antara Pola Olahraga (Rutin/Tidak Rutin) dan Proporsi Badan (Ideal/Tidak Ideal) menggunakan tabel kontingensi 2x2 berikut, berdasarkan data dari 500 individu:
| Pola Olahraga | Badan Ideal | Badan Tidak Ideal | Total |
|---|---|---|---|
| Rutin | 217 | 50 | 267 |
| Tidak Rutin | 125 | 108 | 233 |
| Total | 342 | 158 | 500 |
Penelitian ini bertujuan untuk memahami apakah pola olahraga rutin berkontribusi signifikan terhadap proporsi badan ideal, memberikan wawasan untuk program kesehatan masyarakat. Inferensi statistik pada tabel kontingensi dua arah melibatkan estimasi parameter, pengujian hipotesis, dan analisis residual untuk mengevaluasi kecocokan model dan mendeteksi anomali. Penjelasan dibagi menjadi tiga subbab: Estimasi, Uji Hipotesis, dan Analisis Residual dalam Tabel Kontingensi. Setiap subbab akan diuraikan secara mendalam, mencakup teori, perhitungan manual, sintaks R tanpa package tambahan, dan interpretasi yang komprehensif.
Estimasi dalam tabel kontingensi bertujuan untuk menduga parameter populasi, seperti proporsi atau probabilitas, berdasarkan data sampel. Estimasi dibagi menjadi dua jenis: estimasi titik, yang memberikan nilai tunggal terbaik, dan estimasi interval, yang memberikan rentang nilai dengan tingkat kepercayaan tertentu. Kedua pendekatan ini memungkinkan kita untuk memahami karakteristik populasi dan ketidakpastian estimasi.
Penjelasan:Estimasi titik menghasilkan satu nilai yang dianggap sebagai penduga terbaik untuk parameter populasi, seperti probabilitas bersama, marginal, atau bersyarat. Dalam tabel kontingensi, estimasi ini dihitung sebagai frekuensi relatif berdasarkan asumsi bahwa data mengikuti distribusi multinomial dan sampel representatif. Estimasi titik bersifat unbiased jika rata-rata estimasi sama dengan parameter populasi, dan consistent jika semakin besar sampel, estimasi semakin mendekati nilai sebenarnya. Dalam konteks tabel kontingensi 2x2, kita dapat menduga probabilitas bahwa individu memiliki kombinasi tertentu dari pola olahraga dan proporsi badan, serta probabilitas kategori individu atau bersyarat. Rumus:
Probabilitas Bersama:Probabilitas bahwa dua peristiwa terjadi bersamaan: \[ P(X=x \cap Y=y) = \frac{n_{xy}}{n} \]
di mana \(n_{xy}\) adalah frekuensi pada sel \((x, y)\), dan \(n\) adalah total observasi.
Probabilitas Marginal:Probabilitas suatu peristiwa tanpa mempertimbangkan peristiwa lain: \[ P(X=x) = \frac{n_x}{n}, \quad P(Y=y) = \frac{n_y}{n} \]
di mana \(n_x\) adalah total frekuensi baris \(x\), dan \(n_y\) adalah total frekuensi kolom \(y\).
Probabilitas Bersyarat:Probabilitas suatu peristiwa terjadi dengan syarat peristiwa lain telah terjadi:
\[ P(Y=y | X=x) = \frac{P(X=x \cap Y=y)}{P(X=x)} = \frac{n_{xy}}{n_x} \]
Probabilitas Bersama:
\(P(X=\text{Rutin} \cap Y=\text{Ideal})\):\[ \frac{n_{11}}{n} = \frac{217}{500} = 0,434 \] \(P(X=\text{Rutin} \cap Y=\text{Tidak Ideal})\):\[ \frac{n_{12}}{n} = \frac{50}{500} = 0,100 \] \(P(X=\text{Tidak Rutin} \cap Y=\text{Ideal})\):\[ \frac{n_{21}}{n} = \frac{125}{500} = 0,250 \] \(P(X=\text{Tidak Rutin} \cap Y=\text{Tidak Ideal})\):\[ \frac{n_{22}}{n} = \frac{108}{500} = 0,216 \]
Probabilitas Marginal:
\(P(X=\text{Rutin})\):\[ \frac{n_1}{n} = \frac{267}{500} = 0,534 \] \(P(X=\text{Tidak Rutin})\):\[ \frac{n_2}{n} = \frac{233}{500} = 0,466 \] \(P(Y=\text{Ideal})\):\[ \frac{n_{\cdot 1}}{n} = \frac{342}{500} = 0,684 \] \(P(Y=\text{Tidak Ideal})\):\[ \frac{n_{\cdot 2}}{n} = \frac{158}{500} = 0,316 \]
Probabilitas Bersyarat:
\(P(Y=\text{Ideal} | X=\text{Rutin})\):\[ \frac{n_{11}}{n_1} = \frac{217}{267} \approx 0,8127 \] \(P(Y=\text{Ideal} | X=\text{Tidak Rutin})\):\[ \frac{n_{21}}{n_2} = \frac{125}{233} \approx 0,5365 \] \(P(Y=\text{Tidak Ideal} | X=\text{Rutin})\):\[ \frac{n_{12}}{n_1} = \frac{50}{267} \approx 0,1873 \] \(P(Y=\text{Tidak Ideal} | X=\text{Tidak Rutin})\):\[ \frac{n_{22}}{n_2} = \frac{108}{233} \approx 0,4635 \]
Sintaks R:
# Definisikan tabel kontingensi
tabel <- matrix(c(217, 50, 125, 108), nrow = 2, byrow = TRUE)
rownames(tabel) <- c("Rutin", "Tidak Rutin")
colnames(tabel) <- c("Ideal", "Tidak Ideal")
# Total observasi
n <- sum(tabel)
# Estimasi titik
# Probabilitas bersama
P_joint <- tabel / n
# Probabilitas marginal
P_marginal_X <- rowSums(tabel) / n
P_marginal_Y <- colSums(tabel) / n
# Probabilitas bersyarat
P_cond_Y1_X1 <- tabel[1,1] / sum(tabel[1,])
P_cond_Y1_X2 <- tabel[2,1] / sum(tabel[2,])
P_cond_Y2_X1 <- tabel[1,2] / sum(tabel[1,])
P_cond_Y2_X2 <- tabel[2,2] / sum(tabel[2,])
# Menampilkan hasil
cat("Probabilitas Bersama:\n")
## Probabilitas Bersama:
print(P_joint)
## Ideal Tidak Ideal
## Rutin 0.434 0.100
## Tidak Rutin 0.250 0.216
cat("\nProbabilitas Marginal X:\n")
##
## Probabilitas Marginal X:
print(P_marginal_X)
## Rutin Tidak Rutin
## 0.534 0.466
cat("\nProbabilitas Marginal Y:\n")
##
## Probabilitas Marginal Y:
print(P_marginal_Y)
## Ideal Tidak Ideal
## 0.684 0.316
cat("\nP(Y=Ideal | X=Rutin):", P_cond_Y1_X1, "\n")
##
## P(Y=Ideal | X=Rutin): 0.8127341
cat("P(Y=Ideal | X=Tidak Rutin):", P_cond_Y1_X2, "\n")
## P(Y=Ideal | X=Tidak Rutin): 0.5364807
cat("P(Y=Tidak Ideal | X=Rutin):", P_cond_Y2_X1, "\n")
## P(Y=Tidak Ideal | X=Rutin): 0.1872659
cat("P(Y=Tidak Ideal | X=Tidak Rutin):", P_cond_Y2_X2, "\n")
## P(Y=Tidak Ideal | X=Tidak Rutin): 0.4635193
Interpretasi:Estimasi titik memberikan gambaran awal tentang distribusi data. Probabilitas bersama menunjukkan bahwa 43,4% individu rutin berolahraga dan memiliki badan ideal, sementara 21,6% tidak rutin berolahraga dan memiliki badan tidak ideal. Probabilitas marginal mengindikasikan bahwa 53,4% individu rutin berolahraga, dan 68,4% memiliki badan ideal secara keseluruhan. Probabilitas bersyarat menyoroti bahwa individu yang rutin berolahraga memiliki peluang jauh lebih tinggi (81,27%) untuk memiliki badan ideal dibandingkan yang tidak rutin (53,65%). Estimasi ini menunjukkan adanya hubungan potensial antara olahraga rutin dan proporsi badan ideal, tetapi perlu dilengkapi dengan estimasi interval untuk mengevaluasi ketidakpastian.
Penjelasan:Estimasi interval memberikan rentang nilai yang kemungkinan besar berisi parameter populasi dengan tingkat kepercayaan tertentu (biasanya 95%). Dalam tabel kontingensi, estimasi interval sering digunakan untuk probabilitas atau proporsi, seperti probabilitas bersyarat atau marginal, berdasarkan distribusi binomial atau normal (untuk sampel besar). Interval kepercayaan (confidence interval, CI) dihitung menggunakan standar error dari estimasi titik, dengan asumsi bahwa proporsi sampel mendekati distribusi normal untuk \(n\) besar (teorema limit pusat). Interval ini membantu mengevaluasi ketidakpastian estimasi dan memberikan rentang realistis untuk parameter populasi. Rumus: Untuk proporsi \(p\) (misalnya, probabilitas bersyarat atau marginal), interval kepercayaan 95% dihitung sebagai:\[ \hat{p} \pm z_{\alpha/2} \sqrt{\frac{\hat{p}(1-\hat{p})}{n}} \]di mana:
\(\hat{p}\): Estimasi titik proporsi. \(z_{\alpha/2}\): Nilai kritis dari distribusi normal standar (untuk 95%, \(z_{\alpha/2} = 1,96\)). \(n\): Ukuran sampel yang relevan (total baris untuk probabilitas bersyarat, total keseluruhan untuk marginal). Standar error: \(\text{SE} = \sqrt{\frac{\hat{p}(1-\hat{p})}{n}}\).
Perhitungan Manual: Kita hitung interval kepercayaan 95% untuk beberapa probabilitas penting:
Probabilitas Marginal \(P(Y=\text{Ideal})\):
\(\hat{p} = 0,684\), \(n = 500\). Standar error:\[ \text{SE} = \sqrt{\frac{0,684 \times (1-0,684)}{500}} = \sqrt{\frac{0,684 \times 0,316}{500}} \approx \sqrt{0,0004325} \approx 0,0208 \] Interval kepercayaan:\[ 0,684 \pm 1,96 \times 0,0208 = 0,684 \pm 0,0408 \]\[ [0,6432, 0,7248] \]
Probabilitas Bersyarat \(P(Y=\text{Ideal} | X=\text{Rutin})\):
\(\hat{p} = 0,8127\), \(n = 267\) (total baris Rutin). Standar error:\[ \text{SE} = \sqrt{\frac{0,8127 \times (1-0,8127)}{267}} = \sqrt{\frac{0,8127 \times 0,1873}{267}} \approx \sqrt{0,0005702} \approx 0,0239 \] Interval kepercayaan:\[ 0,8127 \pm 1,96 \times 0,0239 = 0,8127 \pm 0,0468 \]\[ [0,7659, 0,8595] \]
Probabilitas Bersyarat \(P(Y=\text{Ideal} | X=\text{Tidak Rutin})\):
\(\hat{p} = 0,5365\), \(n = 233\). Standar error:\[ \text{SE} = \sqrt{\frac{0,5365 \times (1-0,5365)}{233}} = \sqrt{\frac{0,5365 \times 0,4635}{233}} \approx \sqrt{0,001067} \approx 0,0327 \] Interval kepercayaan:\[ 0,5365 \pm 1,96 \times 0,0327 = 0,5365 \pm 0,0641 \]\[ [0,4724, 0,6006] \]
Sintaks R:
# Definisikan tabel kontingensi
tabel <- matrix(c(217, 50, 125, 108), nrow = 2, byrow = TRUE)
rownames(tabel) <- c("Rutin", "Tidak Rutin")
colnames(tabel) <- c("Ideal", "Tidak Ideal")
# Total observasi
n <- sum(tabel)
# Estimasi titik
p_marginal_Y1 <- sum(tabel[,1]) / n
p_cond_Y1_X1 <- tabel[1,1] / sum(tabel[1,])
p_cond_Y1_X2 <- tabel[2,1] / sum(tabel[2,])
# Interval kepercayaan 95%
z <- 1.96
# Marginal P(Y=Ideal)
se_marginal_Y1 <- sqrt(p_marginal_Y1 * (1 - p_marginal_Y1) / n)
ci_marginal_Y1 <- c(p_marginal_Y1 - z * se_marginal_Y1, p_marginal_Y1 + z * se_marginal_Y1)
# Bersyarat P(Y=Ideal | X=Rutin)
n_rutin <- sum(tabel[1,])
se_cond_Y1_X1 <- sqrt(p_cond_Y1_X1 * (1 - p_cond_Y1_X1) / n_rutin)
ci_cond_Y1_X1 <- c(p_cond_Y1_X1 - z * se_cond_Y1_X1, p_cond_Y1_X1 + z * se_cond_Y1_X1)
# Bersyarat P(Y=Ideal | X=Tidak Rutin)
n_tidak_rutin <- sum(tabel[2,])
se_cond_Y1_X2 <- sqrt(p_cond_Y1_X2 * (1 - p_cond_Y1_X2) / n_tidak_rutin)
ci_cond_Y1_X2 <- c(p_cond_Y1_X2 - z * se_cond_Y1_X2, p_cond_Y1_X2 + z * se_cond_Y1_X2)
# Menampilkan hasil
cat("Interval Kepercayaan 95% untuk P(Y=Ideal): [", ci_marginal_Y1[1], ",", ci_marginal_Y1[2], "]\n")
## Interval Kepercayaan 95% untuk P(Y=Ideal): [ 0.6432486 , 0.7247514 ]
cat("Interval Kepercayaan 95% untuk P(Y=Ideal | X=Rutin): [", ci_cond_Y1_X1[1], ",", ci_cond_Y1_X1[2], "]\n")
## Interval Kepercayaan 95% untuk P(Y=Ideal | X=Rutin): [ 0.7659386 , 0.8595296 ]
cat("Interval Kepercayaan 95% untuk P(Y=Ideal | X=Tidak Rutin): [", ci_cond_Y1_X2[1], ",", ci_cond_Y1_X2[2], "]\n")
## Interval Kepercayaan 95% untuk P(Y=Ideal | X=Tidak Rutin): [ 0.4724499 , 0.6005115 ]
Interpretasi:Interval kepercayaan menunjukkan bahwa kita dapat yakin 95% bahwa proporsi individu dengan badan ideal di populasi berada antara 64,32% dan 72,48%. Untuk individu yang rutin berolahraga, proporsi badan ideal diperkirakan antara 76,59% dan 85,95%, sedangkan untuk yang tidak rutin, antara 47,24% dan 60,06%. Interval ini mengindikasikan bahwa olahraga rutin cenderung meningkatkan proporsi badan ideal, karena interval untuk kelompok Rutin lebih tinggi dan tidak tumpang tindih secara signifikan dengan kelompok Tidak Rutin. Ketidakpastian yang lebih besar pada kelompok Tidak Rutin (interval lebih lebar) disebabkan oleh ukuran sampel yang lebih kecil (233 vs 267).
Uji hipotesis dalam tabel kontingensi digunakan untuk menguji klaim tentang parameter populasi, seperti proporsi, hubungan antar variabel, atau independensi. Dalam kasus ini, kita akan melakukan Uji Proporsi, Uji Asosiasi, dan Uji Independensi untuk mengevaluasi hubungan antara Pola Olahraga dan Proporsi Badan.
Penjelasan:Uji proporsi menguji apakah proporsi suatu kategori dalam satu kelompok sama dengan proporsi dalam kelompok lain atau sama dengan nilai tertentu. Dalam tabel kontingensi, kita dapat menguji apakah proporsi individu dengan badan ideal berbeda antara kelompok Rutin dan Tidak Rutin. Uji ini menggunakan distribusi normal untuk sampel besar, dengan hipotesis nol bahwa proporsi sama (\(H_0: p_1 = p_2\)) dan hipotesis alternatif bahwa proporsi berbeda (\(H_1: p_1 \neq p_2\)). Rumus:Statistik uji untuk perbandingan dua proporsi:\[ z = \frac{\hat{p}_1 - \hat{p}_2}{\sqrt{\hat{p}(1-\hat{p}) \left( \frac{1}{n_1} + \frac{1}{n_2} \right)}} \]di mana:
\(\hat{p}_1, \hat{p}_2\): Proporsi sampel (misalnya, \(P(Y=\text{Ideal} | X=\text{Rutin})\) dan \(P(Y=\text{Ideal} | X=\text{Tidak Rutin})\)). \(n_1, n_2\): Ukuran sampel kelompok (total baris). \(\hat{p}\): Proporsi gabungan: \[ \hat{p} = \frac{n_{11} + n_{21}}{n_1 + n_2} \] \(z\): Statistik uji, dibandingkan dengan distribusi normal standar (\(z_{\alpha/2} = 1,96\) untuk \(\alpha = 0,05\)).
Perhitungan Manual:Uji apakah proporsi badan ideal sama antara kelompok Rutin dan Tidak Rutin:
\(\hat{p}_1 = P(Y=\text{Ideal} | X=\text{Rutin}) = \frac{217}{267} \approx 0,8127\). \(\hat{p}_2 = P(Y=\text{Ideal} | X=\text{Tidak Rutin}) = \frac{125}{233} \approx 0,5365\). \(n_1 = 267\), \(n_2 = 233\). Proporsi gabungan:\[ \hat{p} = \frac{217 + 125}{267 + 233} = \frac{342}{500} = 0,684 \] Standar error:\[ \text{SE} = \sqrt{0,684 \times (1-0,684) \left( \frac{1}{267} + \frac{1}{233} \right)} = \sqrt{0,2162 \times (0,003745 + 0,004292)} \approx \sqrt{0,001738} \approx 0,0417 \] Statistik uji:\[ z = \frac{0,8127 - 0,5365}{0,0417} \approx \frac{0,2762}{0,0417} \approx 6,62 \] Nilai kritis untuk \(\alpha = 0,05\) (dua sisi): \(z = \pm 1,96\). Karena \(|6,62| > 1,96\), tolak \(H_0\).
Sintaks R:
# Definisikan tabel kontingensi
tabel <- matrix(c(217, 50, 125, 108), nrow = 2, byrow = TRUE)
# Proporsi
p1 <- tabel[1,1] / sum(tabel[1,])
p2 <- tabel[2,1] / sum(tabel[2,])
n1 <- sum(tabel[1,])
n2 <- sum(tabel[2,])
# Proporsi gabungan
p <- (tabel[1,1] + tabel[2,1]) / (n1 + n2)
# Standar error
se <- sqrt(p * (1 - p) * (1/n1 + 1/n2))
# Statistik z
z <- (p1 - p2) / se
# P-value (dua sisi)
p_value <- 2 * (1 - pnorm(abs(z)))
# Menampilkan hasil
cat("Statistik z:", z, "\n")
## Statistik z: 6.628032
cat("P-value:", p_value, "\n")
## P-value: 3.401901e-11
Interpretasi:Statistik uji \(z \approx 6,62\) dengan \(p\)-value sangat kecil (\(3,53 \times 10^{-11}\)) menunjukkan bahwa kita menolak hipotesis nol. Proporsi individu dengan badan ideal secara signifikan lebih tinggi di kelompok Rutin (81,27%) dibandingkan Tidak Rutin (53,65%). Hasil ini mendukung bahwa olahraga rutin meningkatkan kemungkinan memiliki proporsi badan ideal, dengan perbedaan yang sangat signifikan secara statistik.
Penjelasan:Uji asosiasi mengevaluasi apakah terdapat hubungan (asosiasi) antara dua variabel kategorikal, sering kali menggunakan ukuran seperti odds ratio atau koefisien korelasi. Dalam tabel kontingensi 2x2, odds ratio adalah ukuran asosiasi yang umum, membandingkan odds kejadian (misalnya, badan Ideal) antara dua kelompok. Uji asosiasi menguji hipotesis nol bahwa tidak ada asosiasi (\(H_0: \text{odds ratio} = 1\)) terhadap hipotesis alternatif bahwa ada asosiasi (\(H_1: \text{odds ratio} \neq 1\)). Rumus:Odds ratio (OR) dihitung sebagai:\[ \text{OR} = \frac{n_{11} n_{22}}{n_{12} n_{21}} \]Interval kepercayaan 95% untuk log odds ratio:\[ \log(\hat{\text{OR}}) \pm z_{\alpha/2} \sqrt{\frac{1}{n_{11}} + \frac{1}{n_{12}} + \frac{1}{n_{21}} + \frac{1}{n_{22}}} \]Statistik uji Wald untuk \(\log(\hat{\text{OR}})\):\[ z = \frac{\log(\hat{\text{OR}})}{\sqrt{\frac{1}{n_{11}} + \frac{1}{n_{12}} + \frac{1}{n_{21}} + \frac{1}{n_{22}}}} \]
Perhitungan Manual:Hitung odds ratio dan uji signifikansinya:
Odds untuk Rutin: \(\frac{n_{11}}{n_{12}} = \frac{217}{50} = 4,34\). Odds untuk Tidak Rutin: \(\frac{n_{21}}{n_{22}} = \frac{125}{108} \approx 1,1574\). Odds ratio:\[ \hat{\text{OR}} = \frac{217 \times 108}{50 \times 125} = \frac{23436}{6250} \approx 3,7498 \] Log odds ratio:\[ \log(\hat{\text{OR}}) = \log(3,7498) \approx 1,3212 \] Standar error:\[ \text{SE} = \sqrt{\frac{1}{217} + \frac{1}{50} + \frac{1}{125} + \frac{1}{108}} = \sqrt{0,004608 + 0,02 + 0,008 + 0,009259} \approx \sqrt{0,041867} \approx 0,2046 \] Interval kepercayaan 95% untuk \(\log(\hat{\text{OR}})\):\[ 1,3212 \pm 1,96 \times 0,2046 = 1,3212 \pm 0,4010 \]\[ [0,9202, 1,7222] \]Interval untuk OR: \([\exp(0,9202), \exp(1,7222)] \approx [2,5098, 5,5976]\). Statistik uji:\[ z = \frac{1,3212}{0,2046} \approx 6,455 \] \(p\)-value (dua sisi): Sangat kecil, karena \(|z| = 6,455 \gg 1,96\).
Sintaks R:
# Definisikan tabel kontingensi
tabel <- matrix(c(217, 50, 125, 108), nrow = 2, byrow = TRUE)
# Odds ratio
OR <- (tabel[1,1] * tabel[2,2]) / (tabel[1,2] * tabel[2,1])
# Log odds ratio
log_OR <- log(OR)
# Standar error
se_log_OR <- sqrt(1/tabel[1,1] + 1/tabel[1,2] + 1/tabel[2,1] + 1/tabel[2,2])
# Interval kepercayaan 95%
z <- 1.96
ci_log_OR <- c(log_OR - z * se_log_OR, log_OR + z * se_log_OR)
ci_OR <- exp(ci_log_OR)
# Statistik z
z_stat <- log_OR / se_log_OR
# P-value
p_value <- 2 * (1 - pnorm(abs(z_stat)))
# Menampilkan hasil
cat("Odds Ratio:", OR, "\n")
## Odds Ratio: 3.74976
cat("Interval Kepercayaan 95% untuk OR: [", ci_OR[1], ",", ci_OR[2], "]\n")
## Interval Kepercayaan 95% untuk OR: [ 2.51091 , 5.599842 ]
cat("Statistik z:", z_stat, "\n")
## Statistik z: 6.459389
cat("P-value:", p_value, "\n")
## P-value: 1.051268e-10
Interpretasi:Odds ratio \(\hat{\text{OR}} \approx 3,75\) menunjukkan bahwa individu yang rutin berolahraga memiliki odds 3,75 kali lebih besar untuk memiliki badan ideal dibandingkan yang tidak rutin. Interval kepercayaan 95% [2,51, 5,60] tidak mencakup 1, mengkonfirmasi bahwa asosiasi ini signifikan. Statistik uji \(z \approx 6,46\) dengan \(p\)-value sangat kecil (\(1,08 \times 10^{-10}\)) menolak hipotesis nol, mendukung adanya asosiasi kuat antara olahraga rutin dan proporsi badan ideal. Hasil ini konsisten dengan uji proporsi, memperkuat bukti bahwa olahraga rutin memiliki dampak positif signifikan.
Penjelasan:Uji independensi menguji apakah dua variabel kategorikal independen, yaitu apakah distribusi salah satu variabel tidak dipengaruhi oleh variabel lain. Dalam tabel kontingensi, hipotesis nol adalah bahwa variabel independen (\(H_0: P(X=x \cap Y=y) = P(X=x)P(Y=y)\)), dan hipotesis alternatif adalah bahwa variabel tidak independen (\(H_1\): ada ketergantungan). Uji Chi-Square adalah metode standar untuk tabel kontingensi, dengan asumsi bahwa frekuensi yang diharapkan cukup besar (biasanya \(E_{ij} \geq 5\)). Untuk tabel 2x2, koreksi Yates dapat digunakan untuk meningkatkan akurasi pada sampel kecil. Rumus:Statistik uji Chi-Square:\[ X^2 = \sum_{i,j} \frac{(O_{ij} - E_{ij})^2}{E_{ij}} \]di mana:
\(O_{ij}\): Frekuensi observasi pada sel \((i,j)\). \(E_{ij}\): Frekuensi yang diharapkan, dihitung sebagai:\[ E_{ij} = \frac{n_i n_{\cdot j}}{n} \] Derajat kebebasan untuk tabel 2x2: \((r-1)(c-1) = 1\).
Koreksi Yates (opsional untuk tabel 2x2):\[ X^2_{\text{Yates}} = \sum_{i,j} \frac{(|O_{ij} - E_{ij}| - 0,5)^2}{E_{ij}} \] Perhitungan Manual:Hitung frekuensi yang diharapkan dan statistik Chi-Square:
Frekuensi yang diharapkan:
\(E_{11}\) (Rutin, Ideal):\[ \frac{267 \times 342}{500} = \frac{91206}{500} \approx 182,412 \] \(E_{12}\) (Rutin, Tidak Ideal):\[ \frac{267 \times 158}{500} = \frac{42186}{500} \approx 84,372 \] \(E_{21}\) (Tidak Rutin, Ideal):\[ \frac{233 \times 342}{500} = \frac{79686}{500} \approx 159,372 \] \(E_{22}\) (Tidak Rutin, Tidak Ideal):\[ \frac{233 \times 158}{500} = \frac{36814}{500} \approx 73,628 \]
Statistik Chi-Square:\[ X^2 = \frac{(217 - 182,412)^2}{182,412} + \frac{(50 - 84,372)^2}{84,372} + \frac{(125 - 159,372)^2}{159,372} + \frac{(108 - 73,628)^2}{73,628} \]
Term 1: \(\frac{(217 - 182,412)^2}{182,412} = \frac{1194,272}{182,412} \approx 6,546\) Term 2: \(\frac{(50 - 84,372)^2}{84,372} = \frac{1182,024}{84,372} \approx 14,009\) Term 3: \(\frac{(125 - 159,372)^2}{159,372} = \frac{1182,024}{159,372} \approx 7,417\) Term 4: \(\frac{(108 - 73,628)^2}{73,628} = \frac{1182,024}{73,628} \approx 16,053\) Total: \(X^2 \approx 6,546 + 14,009 + 7,417 + 16,053 \approx 44,025\)
Bandingkan dengan distribusi Chi-Square dengan \(df = 1\), nilai kritis untuk \(\alpha = 0,05\) adalah 3,841. Karena \(44,025 \gg 3,841\), tolak \(H_0\).
Sintaks R:
# Definisikan tabel kontingensi
tabel <- matrix(c(217, 50, 125, 108), nrow = 2, byrow = TRUE)
# Frekuensi yang diharapkan
n <- sum(tabel)
row_totals <- rowSums(tabel)
col_totals <- colSums(tabel)
E <- outer(row_totals, col_totals) / n
# Statistik Chi-Square
X2 <- sum((tabel - E)^2 / E)
# P-value
p_value <- 1 - pchisq(X2, df = 1)
# Menampilkan hasil
cat("Statistik Chi-Square:", X2, "\n")
## Statistik Chi-Square: 43.93081
cat("P-value:", p_value, "\n")
## P-value: 3.401912e-11
Interpretasi:Statistik Chi-Square \(X^2 \approx 44,03\) dengan \(p\)-value sangat kecil (\(3,09 \times 10^{-11}\)) menunjukkan bahwa kita menolak hipotesis nol bahwa Pola Olahraga dan Proporsi Badan independen. Ada bukti kuat bahwa terdapat ketergantungan antara kedua variabel, konsisten dengan hasil uji proporsi dan asosiasi. Frekuensi observasi yang jauh berbeda dari frekuensi yang diharapkan (misalnya, 217 vs 182,412 untuk Rutin-Ideal) menunjukkan bahwa olahraga rutin memengaruhi proporsi badan secara signifikan, mendukung rekomendasi untuk mempromosikan olahraga rutin.
Analisis residual digunakan untuk mengevaluasi kecocokan model independensi dalam tabel kontingensi dan mendeteksi sel mana yang menyumbang paling besar terhadap ketidakcocokan. Residual mengukur perbedaan antara frekuensi observasi dan yang diharapkan, memberikan wawasan tentang pola atau anomali dalam data.
Penjelasan:Residual dalam tabel kontingensi mengukur seberapa jauh frekuensi observasi (\(O_{ij}\)) menyimpang dari frekuensi yang diharapkan (\(E_{ij}\)) di bawah model independensi. Ada beberapa jenis residual yang umum digunakan, masing-masing dengan karakteristik dan kegunaan spesifik:
Residual Baku (Raw Residual):Selisih langsung antara observasi dan harapan:\[ r_{ij} = O_{ij} - E_{ij} \]Residual ini sederhana tetapi tidak memperhitungkan skala frekuensi, sehingga sulit dibandingkan antar sel dengan ukuran berbeda.
Residual Pearson (Standardized Residual):Residual yang dibagi dengan akar kuadrat frekuensi yang diharapkan untuk menormalkan skala:\[ r_{ij}^P = \frac{O_{ij} - E_{ij}}{\sqrt{E_{ij}}} \]Residual Pearson mendekati distribusi normal standar jika model independensi benar, sehingga cocok untuk mengevaluasi signifikansi penyimpangan.
Residual Standar Terkoreksi (Adjusted Residual):Residual Pearson yang disesuaikan dengan variansi untuk memperhitungkan struktur tabel:\[ r_{ij}^A = \frac{O_{ij} - E_{ij}}{\sqrt{E_{ij} (1 - p_i)(1 - p_{\cdot j})}} \]di mana \(p_i = n_i/n\) dan \(p_{\cdot j} = n_{\cdot j}/n\). Residual ini lebih akurat untuk mendeteksi penyimpangan signifikan pada tabel besar.
Residual Deviance:Kontribusi setiap sel terhadap statistik deviance: \[ d_{ij} = \text{sign}(O_{ij} - E_{ij}) \sqrt{2 O_{ij} \ln\left(\frac{O_{ij}}{E_{ij}}\right)} \]
Residual ini terkait dengan uji likelihood ratio dan digunakan untuk mengevaluasi goodness-of-fit.
Perhitungan Manual (fokus pada Residual Pearson): Menggunakan frekuensi yang diharapkan dari uji independensi:
\(E_{11} = 182,412\), \(O_{11} = 217\).
\[ r_{11}^P = \frac{217 - 182,412}{\sqrt{182,412}} = \frac{34,588}{\sqrt{182,412}} \approx \frac{34,588}{13,505} \approx 2,561 \]
\(E_{12} = 84,372\), \(O_{12} = 50\).
\[ r_{12}^P = \frac{50 - 84,372}{\sqrt{84,372}} = \frac{-34,372}{\sqrt{84,372}} \approx \frac{-34,372}{9,184} \approx -3,742 \]
\(E_{21} = 159,372\), \(O_{21} = 125\).
\[ r_{21}^P = \frac{125 - 159,372}{\sqrt{159,372}} = \frac{-34,372}{\sqrt{159,372}} \approx \frac{-34,372}{12,625} \approx -2,722 \]
\(E_{22} = 73,628\), \(O_{22} = 108\).
\[ r_{22}^P = \frac{108 - 73,628}{\sqrt{73,628}} = \frac{34,372}{\sqrt{73,628}} \approx \frac{34,372}{8,581} \approx 4,005 \]
Sintaks R:
# Definisikan tabel kontingensi
tabel <- matrix(c(217, 50, 125, 108), nrow = 2, byrow = TRUE)
# Frekuensi yang diharapkan
n <- sum(tabel)
row_totals <- rowSums(tabel)
col_totals <- colSums(tabel)
E <- outer(row_totals, col_totals) / n
# Residual Pearson
residual_pearson <- (tabel - E) / sqrt(E)
# Menampilkan hasil
cat("Residual Pearson:\n")
## Residual Pearson:
print(residual_pearson)
## [,1] [,2]
## [1,] 2.543438 -3.742016
## [2,] -2.722694 4.005745
Interpretasi:Residual Pearson menunjukkan penyimpangan signifikan pada setiap sel. Nilai absolut besar (misalnya, \(|4,005|\) pada Tidak Rutin-Tidak Ideal) menunjukkan bahwa frekuensi observasi sangat berbeda dari yang diharapkan di bawah independensi. Residual positif (Rutin-Ideal, Tidak Rutin-Tidak Ideal) menunjukkan frekuensi lebih tinggi dari harapan, sedangkan residual negatif (Rutin-Tidak Ideal, Tidak Rutin-Ideal) menunjukkan frekuensi lebih rendah. Nilai residual > 1,96 (atau < -1,96) dianggap signifikan pada \(\alpha = 0,05\), mengkonfirmasi bahwa model independensi tidak cocok, terutama pada sel Tidak Rutin-Tidak Ideal.
Penjelasan:Outlier dalam analisis data kategori adalah observasi atau sel dalam tabel kontingensi yang menyimpang jauh dari pola yang diharapkan, seperti frekuensi yang sangat tidak sesuai dengan model independensi. Residual, terutama residual Pearson atau terstandar, digunakan untuk mendeteksi outlier karena mengukur penyimpangan dalam satuan standar deviasi. Sel dengan residual absolut besar (biasanya \(|r_{ij}^P| > 3\)) dianggap potensial outlier, menunjukkan bahwa data pada sel tersebut tidak konsisten dengan distribusi yang diharapkan. Deteksi outlier penting untuk mengidentifikasi anomali, seperti kesalahan pengumpulan data atau subpopulasi dengan karakteristik unik, dan dapat memandu analisis lanjutan, seperti memasukkan variabel tambahan atau menyesuaikan model. Prosedur Deteksi:
Hitung Residual: Gunakan residual Pearson atau terstandar untuk setiap sel.
Kriteria Outlier: Sel dianggap outlier jika \(|r_{ij}^P| > 3\) (atau lebih ketat, \(|r_{ij}^P| > 4\)), karena ini melebihi ambang distribusi normal standar.
Evaluasi Kontribusi: Periksa kontribusi sel terhadap statistik Chi-Square: \(\frac{(O_{ij} - E_{ij})^2}{E_{ij}}\). Sel dengan kontribusi besar kemungkinan adalah outlier.
Interpretasi Kontekstual: Analisis apakah penyimpangan disebabkan oleh kesalahan data, heterogenitas populasi, atau faktor lain.
Nilai residual Pearson:
\(r_{11}^P \approx 2,561\) (Rutin, Ideal). \(r_{12}^P \approx -3,742\) (Rutin, Tidak Ideal). \(r_{21}^P \approx -2,722\) (Tidak Rutin, Ideal). \(r_{22}^P \approx 4,005\) (Tidak Rutin, Tidak Ideal).
Kontribusi Chi-Square per sel (dari uji independensi):
Rutin, Ideal: \(6,546\).
Rutin, Tidak Ideal: \(14,009\).
Tidak Rutin, Ideal: \(7,417\).
Tidak Rutin, Tidak Ideal: \(16,053\).
Identifikasi outlier:
Sel Tidak Rutin-Tidak Ideal memiliki \(|r_{22}^P| \approx 4,005 > 3\), menunjukkan potensi outlier.
Sel Rutin-Tidak Ideal memiliki \(|r_{12}^P| \approx 3,742 > 3\), juga potensial outlier.
Sel lain (\(|r_{11}^P| = 2,561\), \(|r_{21}^P| = 2,722\)) tidak melebihi 3, tetapi masih signifikan.
Sintaks R:
# Definisikan tabel kontingensi
tabel <- matrix(c(217, 50, 125, 108), nrow = 2, byrow = TRUE)
# Frekuensi yang diharapkan
n <- sum(tabel)
row_totals <- rowSums(tabel)
col_totals <- colSums(tabel)
E <- outer(row_totals, col_totals) / n
# Residual Pearson
residual_pearson <- (tabel - E) / sqrt(E)
# Kontribusi Chi-Square
chi_contrib <- (tabel - E)^2 / E
# Menampilkan hasil
cat("Residual Pearson:\n")
## Residual Pearson:
print(residual_pearson)
## [,1] [,2]
## [1,] 2.543438 -3.742016
## [2,] -2.722694 4.005745
cat("\nKontribusi Chi-Square:\n")
##
## Kontribusi Chi-Square:
print(chi_contrib)
## [,1] [,2]
## [1,] 6.469076 14.00268
## [2,] 7.413061 16.04599
Interpretasi:Analisis residual mengidentifikasi sel Tidak Rutin-Tidak Ideal sebagai outlier potensial (\(r_{22}^P \approx 4,005\)), dengan kontribusi terbesar terhadap statistik Chi-Square (16,036). Frekuensi observasi 108 jauh lebih tinggi dari yang diharapkan (73,628), menunjukkan bahwa kelompok ini memiliki kecenderungan tidak ideal yang lebih kuat dari perkiraan model independensi. Sel Rutin-Tidak Ideal (\(r_{12}^P \approx -3,742\)) juga menunjukkan penyimpangan signifikan, dengan frekuensi lebih rendah dari harapan (50 vs 84,372), mengindikasikan bahwa olahraga rutin mengurangi kemungkinan badan tidak ideal. Penyimpangan ini bukan kesalahan data, melainkan mencerminkan hubungan kuat antara olahraga dan proporsi badan. Untuk analisis lebih lanjut, kita dapat mempertimbangkan faktor tambahan (misalnya, pola tidur dari data asli) atau memeriksa subpopulasi dalam kelompok Tidak Rutin untuk memahami penyebab penyimpangan.
Inferensi tabel kontingensi dua arah memberikan wawasan mendalam tentang hubungan antara Pola Olahraga dan Proporsi Badan. Estimasi titik menunjukkan bahwa 81,27% individu rutin berolahraga memiliki badan ideal, jauh lebih tinggi dibandingkan 53,65% pada kelompok tidak rutin, dengan estimasi interval mengkonfirmasi bahwa perbedaan ini signifikan (tidak ada tumpang tindih interval kepercayaan). Uji proporsi, asosiasi, dan independensi secara konsisten menolak hipotesis nol, dengan statistik uji (\(z \approx 6,62\), \(\text{OR} \approx 3,75\), \(X^2 \approx 44,03\)) dan \(p\)-value sangat kecil, mendukung bahwa olahraga rutin meningkatkan kemungkinan badan ideal. Analisis residual mengidentifikasi sel Tidak Rutin-Tidak Ideal sebagai outlier potensial (\(r_{22}^P \approx 4,005\)), menyoroti penyimpangan signifikan dari independensi dan memperkuat bukti hubungan antar variabel. Hasil ini merekomendasikan promosi olahraga rutin dalam program kesehatan untuk meningkatkan proporsi badan ideal, dengan catatan bahwa analisis lebih lanjut dapat mengeksplorasi faktor tambahan untuk menjelaskan outlier.
Saya memilih topik ini karena proporsi badan yang sehat merupakan indikator penting dalam menilai kebugaran dan risiko kesehatan jangka panjang. Masalah seperti kelebihan berat badan atau kekurangan massa otot seringkali berkaitan dengan gaya hidup modern yang kurang aktif dan kurang tidur. Menurut data WHO, ketidakseimbangan antara asupan energi dan aktivitas fisik merupakan penyebab utama meningkatnya kasus obesitas di seluruh dunia, termasuk Indonesia. Salah satu faktor yang turut berperan dalam menjaga proporsi badan ideal adalah aktivitas fisik atau olahraga yang dilakukan secara rutin.
Selain olahraga, pola tidur juga memiliki peran penting dalam menjaga komposisi tubuh yang sehat. Studi oleh National Sleep Foundation menyebutkan bahwa kurang tidur dapat menyebabkan gangguan metabolisme, meningkatkan rasa lapar, serta mengganggu regulasi hormon yang berkaitan dengan berat badan. Tidur yang cukup dan berkualitas terbukti mendukung pemulihan otot serta keseimbangan hormonal yang menunjang proporsi tubuh yang sehat.
Pola olahraga dan pola tidur menjadi dua faktor gaya hidup yang sangat berkaitan dengan proporsi badan. Olahraga membantu membakar kalori, membentuk massa otot, dan meningkatkan metabolisme. Di sisi lain, pola tidur yang baik mendukung pemulihan fisik dan keseimbangan hormon seperti leptin dan ghrelin yang memengaruhi rasa lapar dan kenyang. Hubungan antara ketiganya telah banyak dikaji dalam studi kesehatan modern.
Salah satu studi oleh Taheri et al. (2004) menunjukkan bahwa orang yang tidur kurang dari 6 jam per malam memiliki kemungkinan lebih tinggi mengalami kelebihan berat badan dibanding mereka yang tidur 7–9 jam. Selain itu, olahraga rutin membantu mengontrol berat badan dan proporsi otot-lemak dalam tubuh, sehingga penting untuk dianalisis kaitannya dengan pola tidur.
Dengan memahami bagaimana pola olahraga dan pola tidur berkontribusi terhadap proporsi badan, seseorang dapat membuat keputusan yang lebih baik dalam menjalani gaya hidup sehat. Pola tidur dapat menjadi variabel confounder, karena dapat memengaruhi baik pola olahraga maupun proporsi badan. Kurang tidur bisa menurunkan energi dan motivasi untuk berolahraga, serta menyebabkan peningkatan berat badan melalui mekanisme hormonal.
Sebuah penelitian dilakukan untuk menganalisis hubungan antara pola olahraga, pola tidur, dan proporsi badan pada orang dewasa. Data dikumpulkan dari 500 partisipan dan dikategorikan berdasarkan:
Pola Olahraga (X):
Rutin (≥2 kali/minggu)
Tidak Rutin (<2 kali/minggu)
Pola Tidur (Z):
Cukup (7–9 jam/hari)
Kurang (<7 jam/hari)
Proporsi Badan (Y):
Ideal (rasio otot-lemak seimbang)
Tidak Ideal (kelebihan lemak atau kekurangan massa otot)
Penjelasan Variabel:
- X (Pola Olahraga): Variabel bebas utama yang diasumsikan memengaruhi proporsi badan.
- Y (Kesehatan Jantung): Variabel terikat yang menjadi fokus analisis.
- Z (Pola Makan): Variabel kontrol yang dapat mengubah hubungan antara X dan Y.
Data dalam bentuk tabel kontingensi 3 arah:
| Pola Olahraga | Pola Tidur | Badan Ideal | Badan Tidak Ideal | Total |
|---|---|---|---|---|
| Rutin | Cukup | 160 | 20 | 180 |
| Rutin | Kurang | 100 | 40 | 140 |
| Tidak Rutin | Cukup | 110 | 50 | 160 |
| Tidak Rutin | Kurang | 40 | 80 | 120 |
a) Tabel Parsial (Cukup)
| Pola Olahraga | Badan Ideal | Badan Tidak Ideal | Total |
|---|---|---|---|
| Rutin | 160 | 20 | 180 |
| Tidak Rutin | 110 | 50 | 160 |
b) Tabel Parsial (Kurang)
| Pola Olahraga | Badan Ideal | Badan Tidak Ideal | Total |
|---|---|---|---|
| Rutin | 100 | 40 | 140 |
| Tidak Rutin | 40 | 80 | 120 |
a) Tabel Marginal (Pola Olahraga vs Status Badan)
| Pola Olahraga | Badan Ideal | Badan Tidak Ideal | Total |
|---|---|---|---|
| Rutin | 260 | 60 | 320 |
| Tidak Rutin | 150 | 130 | 280 |
b) Tabel Marginal (Pola Tidur vs Status Badan)
| Pola Tidur | Badan Ideal | Badan Tidak Ideal | Total |
|---|---|---|---|
| Cukup | 270 | 70 | 340 |
| Kurang | 140 | 120 | 260 |
Peluang bersama dihitung dengan rumus:
\[
P(X,Y,Z) = \frac{n_{ijk}}{N}
\]
Dengan \(N = 600\), maka:
\[
P(Rutin, Cukup, Ideal) = \frac{160}{600} = 0.267
\]
\[
P(Rutin, Cukup, Tidak Ideal) = \frac{20}{600} = 0.033
\]
\[
P(Rutin, Kurang, Ideal) = \frac{100}{600} = 0.167
\]
\[
P(Rutin, Kurang, Tidak Ideal) = \frac{40}{600} = 0.067
\]
\[
P(Tidak Rutin, Cukup, Ideal) = \frac{110}{600} = 0.183
\]
\[
P(Tidak Rutin, Cukup, Tidak Ideal) = \frac{50}{600} = 0.083
\]
\[
P(Tidak Rutin, Kurang, Ideal) = \frac{40}{600} = 0.067
\]
\[
P(Tidak Rutin, Kurang, Tidak Ideal) = \frac{80}{600} = 0.133
\]
| Pola Olahraga | Pola Tidur | P(Badan Ideal) | P(Badan Tidak Ideal) |
|---|---|---|---|
| Rutin | Cukup | 0.267 | 0.033 |
| Rutin | Kurang | 0.167 | 0.067 |
| Tidak Rutin | Cukup | 0.183 | 0.083 |
| Tidak Rutin | Kurang | 0.067 | 0.133 |
\[ P(X) = \sum_Y \sum_Z P(X,Y,Z) \]
\[
P(Rutin) = \frac{320}{600} = 0.533, \quad P(Tidak Rutin) =
\frac{280}{600} = 0.467
\]
\[
P(Cukup) = \frac{340}{600} = 0.567, \quad P(Kurang) = \frac{260}{600} =
0.433
\]
| Pola Olahraga | Peluang |
|---|---|
| Rutin | 0.533 |
| Tidak Rutin | 0.467 |
\[ P(Z) = \sum_X \sum_Y P(X,Y,Z) \]
| Pola Tidur | Peluang |
|---|---|
| Cukup | 0.567 |
| Kurang | 0.433 |
\[ P(Y|X) = \frac{P(X,Y)}{P(X)} \]
\[ P(Y=Baik | X=Rutin) = \frac{240}{320} = 0.75 \] \[ P(Y=Baik | X=Tidak Rutin) = \frac{150}{280} = 0.54 \]
| Pola Olahraga | P(Kesehatan Baik) |
|---|---|
| Rutin | 0.75 |
| Tidak Rutin | 0.54 |
Hasil perhitungan menunjukkan peluang seseorang memiliki kesehatan jantung yang baik berdasarkan pola olahraga yang dijalani:
Artinya, dari seluruh individu yang berolahraga secara rutin, 75% di antaranya memiliki kesehatan jantung yang baik.
Ini berarti, dari seluruh individu yang tidak berolahraga secara rutin, hanya 54% yang memiliki kesehatan jantung yang baik.
Risk Difference (RD) mengukur perbedaan absolut antara dua kelompok
dalam risiko kejadian.
\[
RD = P(Y=Tidak Ideal | X=Tidak Rutin) - P(Y=Tidak Ideal | X=Rutin)
\]
\[
RD = \frac{130}{280} - \frac{60}{320} = 0.464 - 0.188 = 0.276
\]
Interpretasi: Risiko memiliki badan tidak ideal lebih
tinggi sebesar 27.6% pada kelompok yang tidak rutin berolahraga
dibandingkan dengan kelompok yang rutin berolahraga.
Relative Risk (RR) membandingkan kemungkinan kejadian antara dua
kelompok.
\[
RR = \frac{P(Y=Tidak Ideal | X=Tidak Rutin)}{P(Y=Tidak Ideal | X=Rutin)}
\]
\[
RR = \frac{130/280}{60/320} = \frac{0.464}{0.188} = 2.47
\]
Interpretasi: Individu yang tidak rutin berolahraga memiliki risiko 2.47 kali lebih besar untuk memiliki badan tidak ideal dibandingkan individu yang rutin berolahraga.
Odds Ratio (OR) membandingkan peluang suatu kejadian antara dua
kelompok.
\[
OR = \frac{(A \times D)}{(B \times C)}
\]
Dengan:
- \(A = 260\) (Rutin - Ideal)
- \(B = 60\) (Rutin - Tidak
Ideal)
- \(C = 150\) (Tidak Rutin -
Ideal)
- \(D = 130\) (Tidak Rutin - Tidak
Ideal)
\[
OR = \frac{(260 \times 130)}{(60 \times 150)} = \frac{33800}{9000} =
3.75
\]
Interpretasi: Peluang memiliki badan tidak ideal 3.75
kali lebih besar pada seseorang yang tidak rutin berolahraga
dibandingkan dengan yang rutin.
1. Pola Tidur Cukup
\[
OR_{Cukup} = \frac{(160 \times 50)}{(20 \times 110)} = \frac{8000}{2200}
= 3.64
\]
2. Pola Tidur Kurang
\[
OR_{Kurang} = \frac{(100 \times 80)}{(40 \times 40)} = \frac{8000}{1600}
= 5.00
\]
Interpretasi:
Dalam kategori pola tidur cukup, individu yang tidak rutin berolahraga memiliki peluang 3.64 kali lebih besar untuk memiliki badan tidak ideal.
Dalam kategori pola tidur kurang, peluang tersebut lebih tinggi, yaitu 5 kali lebih besar.
Inferensi ini bertujuan untuk memahami apakah hubungan antara pola olahraga dan status badan tetap signifikan setelah mengontrol variabel pola tidur.
Uji Cochran-Mantel-Haenszel (CMH) digunakan untuk menguji apakah hubungan antara pola olahraga dan status badan tetap signifikan setelah mengontrol variabel pola tidur, serta menguji apakah hubungan antara pola olahraga dan status badan bersifat konsisten di seluruh kategori pola tidur.
Sebelumnya, odds ratio tanpa kontrol pola tidur adalah OR =
3.75.
Sekarang kita membandingkan OR dalam masing-masing kategori pola
tidur:
CMH odds ratio dihitung dengan rumus:
\[
OR_{CMH} = \frac{\sum \frac{A_i D_i}{N_i}}{\sum \frac{B_i C_i}{N_i}}
\]
Dengan:
- \(A_i, B_i, C_i, D_i\) adalah elemen dari tabel kontingensi untuk setiap kategori pola tidur.
- \(N_i\) adalah total sampel dalam kategori tersebut.
Langkah 1: Data per kategori pola tidur
| Pola Tidur | A | B | C | D | N |
|---|---|---|---|---|---|
| Cukup | 160 | 20 | 110 | 50 | 340 |
| Kurang | 100 | 40 | 40 | 80 | 260 |
Langkah 2: Hitung jumlah pembilang dan penyebut
Pembilang:
\[
\sum \frac{A_i D_i}{N_i} = \frac{(160 \times 50)}{340} + \frac{(100
\times 80)}{260}
\]
\[
= \frac{8000}{340} + \frac{8000}{260} = 23.53 + 30.77 = 54.30
\]
Penyebut:
\[
\sum \frac{B_i C_i}{N_i} = \frac{(20 \times 110)}{340} + \frac{(40
\times 40)}{260}
\]
\[
= \frac{2200}{340} + \frac{1600}{260} = 6.47 + 6.15 = 12.62
\]
Langkah 3: Hitung OR_{CMH}
\[ OR_{CMH} = \frac{54.30}{12.62} = 4.30 \]
Untuk memastikan bahwa hubungan antara pola olahraga dan status badan konsisten di seluruh kategori pola tidur, kita melakukan Uji Breslow-Day. Breslow-Day digunakan untuk menguji apakah terdapat perbedaan signifikan dalam odds ratio antar kategori pola tidur.
Statistik Breslow-Day:
\[
X^2_{BD} = \sum \frac{(O_i - E_i)^2}{V_i}
\]
Dengan:
- \(O_i\) adalah log odds ratio yang diamati dalam kategori ke-\(i\).
- \(E_i\) adalah log odds ratio yang diharapkan jika OR homogen.
- \(V_i\) adalah varians log odds ratio dalam kategori ke-\(i\).
Odds ratio dalam masing-masing kategori:
- Pola Tidur Cukup: \(OR_{Cukup} = 3.64\)
- Pola Tidur Kurang: \(OR_{Kurang} = 5.00\)
Log odds ratio:
\[
\log(OR_{Cukup}) = \log(3.64) = 1.30
\]
\[
\log(OR_{Kurang}) = \log(5.00) = 1.61
\]
Nilai rata-rata log odds ratio yang diharapkan:
\[
E = \frac{(1.30 + 1.61)}{2} = 1.46
\]
Varians untuk masing-masing kategori dihitung dengan:
\[
V = \frac{1}{A} + \frac{1}{B} + \frac{1}{C} + \frac{1}{D}
\]
\[
V_{Cukup} = \frac{1}{160} + \frac{1}{20} + \frac{1}{110} + \frac{1}{50}
= 0.056
\]
\[
V_{Kurang} = \frac{1}{100} + \frac{1}{40} + \frac{1}{40} + \frac{1}{80}
= 0.0625
\]
Statistik Breslow-Day:
\[
X^2_{BD} = \frac{(1.30 - 1.46)^2}{0.056} + \frac{(1.61 -
1.46)^2}{0.0625}
\]
\[
= \frac{0.0276}{0.056} + \frac{0.0225}{0.0625} = 0.493 + 0.36 = 0.853
\]
Dengan p-value > 0.05, menunjukkan bahwa tidak ada perbedaan signifikan dalam OR antar kategori pola tidur. Ini berarti bahwa asosiasi antara pola olahraga dan status badan bersifat homogen di seluruh kategori pola tidur.
Interpretasi Hasil
Dengan demikian, olahraga rutin tetap menjadi faktor penting dalam menjaga status badan secara konsisten di semua kategori pola tidur.
Conditional independence menguji apakah hubungan antara dua variabel (pola olahraga dan status badan) masih tetap ada setelah dikontrol oleh variabel ketiga (pola tidur).
Secara matematis, dua variabel \(X\)
dan \(Y\) dikatakan kondisional
independen terhadap \(Z\) jika
berlaku:
\[
P(Y | X, Z) = P(Y | Z)
\]
Ini berarti bahwa setelah mengontrol \(Z\), hubungan antara \(X\) dan \(Y\) menghilang.
Kita melakukan uji chi-square untuk setiap tabel parsial berdasarkan kategori pola tidur:
1. Uji Chi-Square untuk Pola Tidur Cukup
\[ H_0: P(Y | X, Z = Cukup) = P(Y | Z = Cukup) \]
| Pola Olahraga | Badan Ideal | Badan Tdk Ideal | Total |
|---|---|---|---|
| Rutin | 150 | 30 | 180 |
| Tidak Rutin | 100 | 60 | 160 |
\[
\chi^2 = \sum \frac{(O - E)^2}{E}
\]
Dengan perhitungan:
\[
E_{11} = \frac{(180 \times 250)}{340} = 132.35, \quad E_{12} =
\frac{(180 \times 90)}{340} = 47.65
\]
\[
E_{21} = \frac{(160 \times 250)}{340} = 117.65, \quad E_{22} =
\frac{(160 \times 90)}{340} = 42.35
\]
\[
\chi^2 = \frac{(150 - 132.35)^2}{132.35} + \frac{(30 - 47.65)^2}{47.65}
+ \frac{(100 - 117.65)^2}{117.65} + \frac{(60 - 42.35)^2}{42.35}
\]
\[
= \frac{17.65^2}{132.35} + \frac{17.65^2}{47.65} +
\frac{17.65^2}{117.65} + \frac{17.65^2}{42.35}
\]
\[
= 2.35 + 6.53 + 2.65 + 7.34 = 18.87
\]
2. Uji Chi-Square untuk Pola Tidur Kurang
| Pola Olahraga | Badan Ideal | Badan Tdk Ideal | Total |
|---|---|---|---|
| Rutin | 90 | 50 | 140 |
| Tidak Rutin | 50 | 70 | 120 |
\[
E_{11} = \frac{(140 \times 140)}{260} = 75.38, \quad E_{12} = \frac{(140
\times 120)}{260} = 64.62
\]
\[
E_{21} = \frac{(120 \times 140)}{260} = 64.62, \quad E_{22} = \frac{(120
\times 120)}{260} = 55.38
\]
\[
\chi^2 = \frac{(90 - 75.38)^2}{75.38} + \frac{(50 - 64.62)^2}{64.62} +
\frac{(50 - 64.62)^2}{64.62} + \frac{(70 - 55.38)^2}{55.38}
\]
\[
= 2.89 + 3.47 + 3.47 + 3.98 = 13.81
\]
Karena pada kedua kategori pola tidur, hubungan tetap signifikan, maka kita menyimpulkan bahwa tidak ada independensi bersyarat. Dengan kata lain, pola olahraga tetap berpengaruh terhadap status badan meskipun pola tidur dikontrol.
Kesimpulan
Dengan demikian, olahraga rutin harus tetap menjadi bagian dari gaya hidup sehat untuk menjaga status badan.
Interval kepercayaan untuk odds ratio (OR) dihitung untuk menentukan apakah hubungan antara pola olahraga dan proporsi badan signifikan secara statistik.
Log Odds Ratio (Log OR)
Log odds ratio dihitung dengan rumus:
\[
\log(OR) = \log\left(\frac{A \times D}{B \times C}\right)
\]
Dengan nilai:
- \(A = 240\) (Rutin Baik)
- \(B = 80\) (Rutin Buruk)
- \(C = 150\) (Tidak Rutin Baik)
- \(D = 130\) (Tidak Rutin Buruk)
\[
\log(OR) = \log\left(\frac{(240 \times 130)}{(80 \times 150)}\right)
\]
\[
= \log\left(\frac{31200}{12000}\right) = \log(2.60) = 0.955
\]
Standar Error (SE) dari Log OR
Standar error dihitung dengan rumus:
\[
SE(\log(OR)) = \sqrt{\frac{1}{A} + \frac{1}{B} + \frac{1}{C} +
\frac{1}{D}}
\]
\[
SE(\log(OR)) = \sqrt{\frac{1}{240} + \frac{1}{80} + \frac{1}{150} +
\frac{1}{130}}
\]
\[
= \sqrt{0.004167 + 0.0125 + 0.006667 + 0.007692} = \sqrt{0.031026} =
0.176
\]
Interval Kepercayaan 95%
Interval kepercayaan 95% untuk log odds ratio dihitung dengan:
\[
CI_{95\%} = \log(OR) \pm 1.96 \times SE(\log(OR))
\]
\[
CI_{95\%} = 0.955 \pm 1.96 \times 0.176
\]
\[
CI_{95\%} = 0.955 \pm 0.345
\]
\[
CI_{95\%} = (0.610, 1.300)
\]
Mengonversi kembali ke skala OR dengan eksponensial:
\[
CI_{95\%} = (e^{0.610}, e^{1.300}) = (1.84, 3.67)
\]
Interpretasi
Kesimpulan
Interval kepercayaan 95% menunjukkan bahwa OR tidak mencakup 1, sehingga hubungan antara pola olahraga dan proporsi badan signifikan secara statistik.
Efek olahraga tetap nyata bahkan setelah mempertimbangkan variabilitas data.
Individu yang tidak rutin berolahraga memiliki peluang lebih tinggi mengalami masalah proporsi badan dibandingkan individu yang rutin.
Dengan demikian, pola olahraga yang teratur tetap menjadi faktor penting dalam menjaga proporsi badan yang sehat.
Uji Breslow-Day digunakan untuk menentukan apakah terdapat perbedaan signifikan dalam odds ratio (OR) antar kategori variabel kontrol (pola tidur).
Hipotesis Uji
Statistik Breslow-Day
\[ X^2_{BD} = \frac{(1.099 - 1.011)^2}{0.0611} + \frac{(0.924 - 1.011)^2}{0.0733} \]
Interpretasi Hasil
Jika p-value > 0.05, maka kita gagal menolak hipotesis nol, sehingga OR dianggap homogen (tidak berbeda signifikan antar kelompok).
Jika p-value < 0.05, maka kita menolak hipotesis nol, sehingga OR dianggap tidak homogen (berbeda signifikan antar kelompok).
Berdasarkan perhitungan, nilai X²_{BD} = 0.230, yang dengan derajat kebebasan 1 menghasilkan p-value > 0.05.
Kesimpulan: Tidak ada perbedaan signifikan dalam OR antar kategori pola tidur → OR dianggap homogen.
Kesimpulan
Uji Breslow-Day menunjukkan bahwa odds ratio dalam setiap kategori pola tidur adalah homogen.
Tidak ada bukti bahwa efek pola olahraga terhadap proporsi badan berbeda signifikan antar kelompok pola tidur.
Implikasi:** Hasil ini menunjukkan bahwa efek pola olahraga terhadap proporsi badan bersifat konsisten, terlepas dari pola tidur seseorang.
Dengan demikian, olahraga rutin tetap menjadi faktor kunci dalam menjaga proporsi badan yang sehat secara umum.
Kesimpulan
1. Hubungan Pola Olahraga, Pola Tidur, dan Proporsi Badan
Pola olahraga dan pola tidur berperan penting dalam menjaga proporsi badan yang sehat.
Seseorang yang rutin berolahraga dan memiliki pola tidur yang baik cenderung memiliki proporsi badan yang lebih baik dibandingkan mereka yang kurang aktif atau memiliki pola tidur yang buruk.
2. Asosiasi dan Pengaruh Variabel Kontrol
3. Homogenitas Hubungan
4. Independensi Bersyarat & Pengaruh Simpson’s Paradox
5. Implikasi dan Rekomendasi
Generalized Linear Model (GLM) adalah kerangka statistik yang memperluas model regresi linier untuk menangani berbagai distribusi data, termasuk data kategori, melalui fungsi hubung (link function) dan distribusi dari keluarga eksponensial. GLM sangat relevan untuk analisis data kategori, seperti yang disajikan dalam tabel kontingensi, karena mampu memodelkan variabel respons yang tidak berdistribusi normal, seperti data biner atau hitungan. Berdasarkan data tabel kontingensi 3 arah berikut, kita akan menjelaskan komponen GLM secara umum dan penerapannya dalam inferensi untuk kasus spesifik:
Penjelasan dibagi menjadi dua bagian: Penjelasan GLM (umum, tanpa kasus data) dan Inferensi GLM (memperhatikan kasus data).
Keluarga eksponensial adalah kelas distribusi probabilitas yang menjadi dasar GLM, mencakup distribusi seperti Bernoulli, Poisson, Binomial, dan Normal. Distribusi ini memiliki bentuk umum yang memungkinkan fleksibilitas dalam pemodelan data dengan karakteristik berbeda. Teori probabilitas dan statistik inferensial menunjukkan bahwa distribusi dalam keluarga eksponensial memiliki sifat matematis yang mendukung estimasi parameter melalui metode maximum likelihood. Distribusi ini ditandai dengan fungsi densitas atau massa probabilitas yang dapat ditulis dalam bentuk standar, memungkinkan hubungan linier antara prediktor dan respons melalui fungsi hubung. Rumus:Fungsi densitas probabilitas (atau massa probabilitas) untuk distribusi dalam keluarga eksponensial didefinisikan sebagai: \[ f(y; \theta, \phi) = \exp\left( \frac{y \theta - b(\theta)}{a(\phi)} + c(y, \phi) \right) \]
di mana:
\(y\): Variabel respons (observasi).
\(\theta\): Parameter alami (natural parameter), terkait dengan rata-rata respons.
\(\phi\): Parameter dispersi (scale parameter), mengontrol variansi.
\(b(\theta)\): Fungsi normalisasi, menentukan hubungan antara \(\theta\) dan rata-rata.
\(a(\phi)\): Fungsi skala, biasanya \(a(\phi) = \phi\) atau konstan.
\(c(y, \phi)\): Fungsi tambahan yang bergantung pada \(y\) dan \(\phi\).
Rata-rata respons dihitung sebagai turunan pertama \(b(\theta)\): \[ \mu = E(Y) = b'(\theta) \]
Variansi dihitung sebagai: \[ Var(Y) = a(\phi) b''(\theta) \]
Contoh distribusi dalam keluarga eksponensial: - Bernoulli: Untuk data biner, dengan \(\theta = \log\left(\frac{p}{1-p}\right)\) dan \(b(\theta) = \log(1+e^\theta)\).
Keluarga eksponensial memungkinkan GLM untuk menangani data dengan distribusi tidak normal melalui transformasi parameter alami ke prediktor linier.
Regresi logistik adalah GLM untuk memodelkan variabel respons biner (misalnya, 0/1 atau sukses/gagal), dengan asumsi distribusi Bernoulli. Model ini menghubungkan probabilitas sukses dengan prediktor linier melalui fungsi hubung logit. Berbasis teori probabilitas dan maksimum likelihood, regresi logistik sangat cocok untuk analisis data kategori, seperti klasifikasi atau prediksi probabilitas kejadian. Rumus:Model regresi logistik didefinisikan sebagai: \[ \log\left(\frac{\pi}{1-\pi}\right) = \beta_0 + \beta_1 x_1 + \dots + \beta_k x_k \]
di mana:
\(\pi = P(Y=1)\): Probabilitas sukses.
\(\beta_0\): Intersep.
\(\beta_i\): Koefisien untuk prediktor \(x_i\). Fungsi probabilitas: \[ \pi = \frac{\exp(\beta_0 + \beta_1 x_1 + \dots + \beta_k x_k)}{1 + \exp(\beta_0 + \beta_1 x_1 + \dots + \beta_k x_k)} \]
Distribusi respons: \(Y \sim \text{Bernoulli}(\pi)\).
Rata-rata: \(E(Y) = \pi\).
Variansi: \(Var(Y) = \pi(1-\pi)\).
Fungsi hubung logit, \(\log\left(\frac{\pi}{1-\pi}\right)\), memetakan probabilitas \(\pi \in (0,1)\) ke bilangan real.
Koefisien \(\beta_i\) diinterpretasikan sebagai log-odds ratio: \(\exp(\beta_i)\) menunjukkan perubahan odds untuk setiap unit peningkatan \(x_i\).
Estimasi parameter dilakukan dengan maximum likelihood estimation (MLE), memaksimalkan fungsi log-likelihood: \[ \ell(\beta) = \sum_{i=1}^n \left[ y_i \log(\pi_i) + (1-y_i) \log(1-\pi_i) \right] \]
Penjelasan:Regresi Poisson adalah GLM untuk memodelkan variabel respons berupa data hitungan (misalnya, jumlah kejadian dalam interval tertentu), dengan asumsi distribusi Poisson. Model ini menghubungkan rata-rata hitungan dengan prediktor linier melalui fungsi hubung log. Berbasis teori proses Poisson, regresi ini cocok untuk data kategori yang menggambarkan frekuensi kejadian, seperti jumlah kunjungan pasien atau kecelakaan. Rumus:Model regresi Poisson didefinisikan sebagai:\[ \log(\mu) = \beta_0 + \beta_1 x_1 + \dots + \beta_k x_k \]di mana:
\(\mu\): Rata-rata jumlah kejadian (\(E(Y) = \mu\)). \(\beta_0\): Intersep. \(\beta_i\): Koefisien untuk prediktor \(x_i\). Fungsi rata-rata: \[ \mu = \exp(\beta_0 + \beta_1 x_1 + \dots + \beta_k x_k) \] Distribusi respons: \(Y \sim \text{Poisson}(\mu)\). Variansi: \(Var(Y) = \mu\).
Teori:
Fungsi hubung log, \(\log(\mu)\), memastikan \(\mu > 0\), sesuai dengan sifat data hitungan. Koefisien \(\beta_i\) diinterpretasikan sebagai log-rate ratio: \(\exp(\beta_i)\) menunjukkan perubahan kelipatan rata-rata \(\mu\) untuk setiap unit peningkatan \(x_i\). Estimasi parameter dilakukan dengan MLE, memaksimalkan log-likelihood: \[ \ell(\beta) = \sum_{i=1}^n \left[ y_i \log(\mu_i) - \mu_i - \log(y_i!) \right] \]
#Inferensi GLM Berdasarkan data tabel kontingensi 3 arah di atas, kita akan menerapkan konsep inferensi GLM untuk kasus spesifik. Data ini menggambarkan hubungan antara Pola Olahraga (Rutin/Tidak Rutin), Pola Tidur (Cukup/Kurang), dan Proporsi Badan (Ideal/Tidak Ideal), dengan total 600 observasi (180 + 140 + 160 + 120). Untuk inferensi, kita akan memodelkan Proporsi Badan sebagai respons, menggunakan regresi logistik untuk probabilitas “Ideal” dan regresi Poisson untuk frekuensi “Ideal”.
Penjelasan:Dalam GLM, nilai ekspektasi (\(E(Y)\)) dan varians (\(Var(Y)\)) bergantung pada distribusi respons dan fungsi hubung. Untuk data kasus, kita asumsikan dua model:
Regresi Logistik: Respons biner \(Y = 1\) (Ideal) atau \(Y = 0\) (Tidak Ideal), dengan \(E(Y) = \pi\) dan \(Var(Y) = \pi(1-\pi)\). Regresi Poisson: Respons adalah jumlah individu dengan badan Ideal per kombinasi Olahraga dan Tidur, dengan \(E(Y) = \mu\) dan \(Var(Y) = \mu\).
Penerapan pada Kasus:Menggunakan tabel kontingensi, kita hitung ekspektasi dan varians awal berdasarkan proporsi observasi:
Regresi Logistik: Probabilitas awal \(\pi\) untuk badan Ideal dihitung sebagai
total Badan Ideal dibagi total observasi:\[
\pi = \frac{160 + 100 + 110 + 40}{600} = \frac{410}{600} \approx 0,6833
\]
Ekspektasi: \(E(Y) = \pi =
0,6833\).
Variansi: \(Var(Y) = \pi(1-\pi) = 0,6833
\times (1-0,6833) \approx 0,2166\).
Regresi Poisson: Jumlah Badan Ideal per kelompok (misalnya,
Rutin-Cukup: 160) dianggap sebagai \(\mu\). Untuk kelompok ini:
Ekspektasi: \(E(Y) = \mu = 160\).
Variansi: \(Var(Y) = \mu = 160\).
# Data jumlah Badan Ideal untuk masing-masing kombinasi
jumlah_ideal <- c(160, 100, 110, 40)
total_observasi <- 600
# Menghitung proporsi (π), ekspektasi dan varians
pi_hat <- sum(jumlah_ideal) / total_observasi
ekspektasi_logistik <- pi_hat
varians_logistik <- pi_hat * (1 - pi_hat)
# Menampilkan hasil
cat("Regresi Logistik:\n")
## Regresi Logistik:
cat("E(Y) =", round(ekspektasi_logistik, 4), "\n")
## E(Y) = 0.6833
cat("Var(Y) =", round(varians_logistik, 4), "\n")
## Var(Y) = 0.2164
# Contoh kelompok: Rutin - Cukup (jumlah Ideal = 160)
mu <- 160
# Ekspektasi dan varians sama untuk distribusi Poisson
ekspektasi_poisson <- mu
varians_poisson <- mu
# Menampilkan hasil
cat("\nRegresi Poisson (untuk kelompok Rutin-Cukup):\n")
##
## Regresi Poisson (untuk kelompok Rutin-Cukup):
cat("E(Y) =", ekspektasi_poisson, "\n")
## E(Y) = 160
cat("Var(Y) =", varians_poisson, "\n")
## Var(Y) = 160
Interpretasi: Ekspektasi logistik menunjukkan bahwa sekitar 68,33% individu diharapkan memiliki badan Ideal secara keseluruhan, dengan variansi kecil karena distribusi biner. Untuk Poisson, ekspektasi bervariasi antar kelompok, dengan variansi sama dengan rata-rata, mencerminkan sifat distribusi Poisson.
Penjelasan:Penaksiran parameter dalam GLM biasanya menggunakan Maximum Likelihood Estimation (MLE), yang memaksimalkan fungsi log-likelihood berdasarkan distribusi respons. Untuk data kasus, kita akan menaksir parameter \(\beta\) untuk prediktor Pola Olahraga dan Pola Tidur. Penerapan pada Kasus:
Regresi Logistik: Modelkan probabilitas \(Y=1\) (Ideal) dengan prediktor dummy:
\(X_1 = 1\) (Rutin), 0 (Tidak Rutin). \(X_2 = 1\) (Cukup), 0 (Kurang).Logit model: \[ \log\left(\frac{\pi}{1-\pi}\right) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 \]MLE memaksimalkan: \[ \ell(\beta) = \sum_{i=1}^n \left[ y_i \log(\pi_i) + (1-y_i) \log(1-\pi_i) \right] \]Dengan data agregat, kita hitung proporsi Ideal per kelompok (misalnya, Rutin-Cukup: \(160/180 = 0,8889\)) sebagai estimasi awal \(\pi_i\).
# Membuat data frame berdasarkan data agregat dari tabel kontingensi
data_logistik <- data.frame(
Ideal = c(160, 100, 110, 40),
Tidak_Ideal = c(20, 20, 40, 110), # Total - Ideal
Olahraga = c("Rutin", "Rutin", "Tidak Rutin", "Tidak Rutin"),
Tidur = c("Cukup", "Kurang", "Cukup", "Kurang")
)
# Menambahkan variabel dummy:
# X1 = 1 jika Olahraga Rutin, 0 jika Tidak Rutin
# X2 = 1 jika Tidur Cukup, 0 jika Tidur Kurang
data_logistik$X1 <- ifelse(data_logistik$Olahraga == "Rutin", 1, 0)
data_logistik$X2 <- ifelse(data_logistik$Tidur == "Cukup", 1, 0)
# Model regresi logistik
model_logistik <- glm(cbind(Ideal, Tidak_Ideal) ~ X1 + X2,
family = binomial(link = "logit"),
data = data_logistik)
# Ambil koefisien
coef_logistik <- coef(model_logistik)
or_logistik <- exp(coef_logistik)
# Interpretasi otomatis
cat("=== Interpretasi Regresi Logistik ===\n")
## === Interpretasi Regresi Logistik ===
# Intersep
cat("Intersep (β0): log-odds dasar ketika olahraga TIDAK rutin dan tidur KURANG.\n")
## Intersep (β0): log-odds dasar ketika olahraga TIDAK rutin dan tidur KURANG.
# X1: Olahraga Rutin
if (coef_logistik["X1"] > 0) {
cat("β1 (X1 > 0): Olahraga Rutin MENINGKATKAN peluang memiliki badan ideal.\n")
} else if (coef_logistik["X1"] < 0) {
cat("β1 (X1 < 0): Olahraga Rutin MENURUNKAN peluang memiliki badan ideal.\n")
} else {
cat("β1 (X1 = 0): Olahraga Rutin TIDAK memiliki pengaruh terhadap peluang.\n")
}
## β1 (X1 > 0): Olahraga Rutin MENINGKATKAN peluang memiliki badan ideal.
cat(sprintf("Odds Ratio Olahraga Rutin: %.3f\n", or_logistik["X1"]))
## Odds Ratio Olahraga Rutin: 6.826
# X2: Tidur Cukup
if (coef_logistik["X2"] > 0) {
cat("β2 (X2 > 0): Tidur Cukup MENINGKATKAN peluang memiliki badan ideal.\n")
} else if (coef_logistik["X2"] < 0) {
cat("β2 (X2 < 0): Tidur Cukup MENURUNKAN peluang memiliki badan ideal.\n")
} else {
cat("β2 (X2 = 0): Tidur Cukup TIDAK memiliki pengaruh terhadap peluang.\n")
}
## β2 (X2 > 0): Tidur Cukup MENINGKATKAN peluang memiliki badan ideal.
cat(sprintf("Odds Ratio Tidur Cukup: %.3f\n", or_logistik["X2"]))
## Odds Ratio Tidur Cukup: 4.435
Regresi Poisson: Modelkan jumlah Badan Ideal (\(Y\)) per kelompok dengan:\[ \log(\mu) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 \]MLE memaksimalkan: \[ \ell(\beta) = \sum_{i=1}^n \left[ y_i \log(\mu_i) - \mu_i - \log(y_i!) \right] \]Nilai awal \(\mu_i\) diambil dari frekuensi observasi (misalnya, 160 untuk Rutin-Cukup).
# Data jumlah individu dengan badan ideal per kombinasi kelompok
data_poisson <- data.frame(
Ideal = c(160, 100, 110, 40),
Olahraga = c("Rutin", "Rutin", "Tidak Rutin", "Tidak Rutin"),
Tidur = c("Cukup", "Kurang", "Cukup", "Kurang")
)
# Dummy variabel
data_poisson$X1 <- ifelse(data_poisson$Olahraga == "Rutin", 1, 0)
data_poisson$X2 <- ifelse(data_poisson$Tidur == "Cukup", 1, 0)
# Model regresi Poisson
model_poisson <- glm(Ideal ~ X1 + X2,
family = poisson(link = "log"),
data = data_poisson)
# Ambil koefisien
coef_poisson <- coef(model_poisson)
rr_poisson <- exp(coef_poisson)
# Interpretasi otomatis
cat("=== Interpretasi Regresi Poisson ===\n")
## === Interpretasi Regresi Poisson ===
# Intersep
cat("Intersep (β0): log-rata-rata jumlah orang dengan badan ideal ketika olahraga TIDAK rutin dan tidur KURANG.\n")
## Intersep (β0): log-rata-rata jumlah orang dengan badan ideal ketika olahraga TIDAK rutin dan tidur KURANG.
# X1: Olahraga Rutin
if (coef_poisson["X1"] > 0) {
cat("β1 (X1 > 0): Olahraga Rutin MENINGKATKAN jumlah orang dengan badan ideal.\n")
} else if (coef_poisson["X1"] < 0) {
cat("β1 (X1 < 0): Olahraga Rutin MENURUNKAN jumlah orang dengan badan ideal.\n")
} else {
cat("β1 (X1 = 0): Olahraga Rutin TIDAK memiliki pengaruh terhadap jumlah.\n")
}
## β1 (X1 > 0): Olahraga Rutin MENINGKATKAN jumlah orang dengan badan ideal.
cat(sprintf("Rate Ratio Olahraga Rutin: %.3f\n", rr_poisson["X1"]))
## Rate Ratio Olahraga Rutin: 1.733
# X2: Tidur Cukup
if (coef_poisson["X2"] > 0) {
cat("β2 (X2 > 0): Tidur Cukup MENINGKATKAN jumlah orang dengan badan ideal.\n")
} else if (coef_poisson["X2"] < 0) {
cat("β2 (X2 < 0): Tidur Cukup MENURUNKAN jumlah orang dengan badan ideal.\n")
} else {
cat("β2 (X2 = 0): Tidur Cukup TIDAK memiliki pengaruh terhadap jumlah.\n")
}
## β2 (X2 > 0): Tidur Cukup MENINGKATKAN jumlah orang dengan badan ideal.
cat(sprintf("Rate Ratio Tidur Cukup: %.3f\n", rr_poisson["X2"]))
## Rate Ratio Tidur Cukup: 1.929
Proses: Dalam praktik, MLE diselesaikan secara numerik menggunakan algoritma seperti Newton-Raphson. Untuk kasus ini, kita bisa menggunakan perangkat lunak seperti R untuk iterasi, tetapi secara manual, kita mulai dengan proporsi observasi sebagai estimasi awal.
Diagnostik GLM memeriksa kecocokan model dengan data, termasuk residual, overdispersi, dan pengaruh observasi. Residual deviance digunakan untuk mengevaluasi goodness-of-fit, dan plot diagnostik membantu mendeteksi pelanggaran asumsi. Penerapan pada Kasus:
Regresi Logistik:
Residual Deviance: Hitung selisih antara model jenuh dan model yang dipasang:
\[ D = 2 \sum_{i=1}^n \left[ y_i \log\left(\frac{y_i}{\hat{\pi}_i}\right) + (1-y_i) \log\left(\frac{1-y_i}{1-\hat{\pi}_i}\right) \right] \]
Untuk kelompok Rutin-Cukup (\(y_i = 160\), \(n_i = 180\)), asumsikan \(\hat{\pi}_i = 0,8889\). Deviance dihitung per kelompok dan dijumlahkan.
Overdispersi: Periksa apakah variansi melebihi \(\pi(1-\pi)\), misalnya dengan statistik Pearson.
Plot Diagnostik: Plot residual versus nilai prediksi untuk mendeteksi pola non-random.
Regresi Poisson:
Residual Deviance: Hitung: \[ D = 2 \sum_{i=1}^n \left[ y_i \log\left(\frac{y_i}{\hat{\mu}_i}\right) - (y_i - \hat{\mu}_i) \right] \]
Untuk \(y_i = 160\), \(\hat{\mu}_i = 160\), deviance mendekati 0 jika model cocok.
Overdispersi: Periksa apakah \(Var(Y) > \mu\), yang dapat diindikasikan oleh rasio deviance/derajat kebebasan > 1.
Plot Diagnostik: Plot residual versus log(\(\hat{\mu}_i\)) untuk memeriksa homoskedastisitas.
Interpretasi: Jika residual deviance besar atau terdapat pola pada plot, model mungkin tidak cukup menangkap variabilitas data, misalnya karena interaksi antara Olahraga dan Tidur yang tidak dimodelkan.
Inferensi regresi logistik melibatkan estimasi koefisien \(\beta\), pengujian signifikansi, dan interpretasi odds ratio.
Penerapan pada Kasus:Untuk memodelkan probabilitas Badan Ideal (\(Y=1\)), kita gunakan prediktor Pola Olahraga dan Pola Tidur.
Data agregat menjadi proporsi:
Rutin, Cukup: \(160/180 = 0,8889\).
Rutin, Kurang: \(100/140 = 0,7143\).
Tidak Rutin, Cukup: \(110/160 = 0,6875\).
Tidak Rutin, Kurang: \(40/120 = 0,3333\).
Estimasi (dengan R untuk simplifikasi, tetapi konsep manual dijelaskan):
Model: \[ \log\left(\frac{\pi}{1-\pi}\right) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 \]
MLE menghasilkan estimasi \(\hat{\beta}_i\) dengan memaksimalkan log-likelihood. Asumsikan hasil (dari iterasi numerik): \(\hat{\beta}_0 = -1,1\), \(\hat{\beta}_1 = 1,2\) (Rutin vs Tidak Rutin), \(\hat{\beta}_2 = 1,0\) (Cukup vs Kurang).
Inferensi:
Odds Ratio: \(\exp(\hat{\beta}_1) = \exp(1,2) \approx 3,32\), artinya individu rutin berolahraga memiliki odds 3,32 kali lebih besar untuk badan Ideal dibandingkan tidak rutin, setelah mengontrol pola tidur.
Pengujian Signifikansi: Gunakan statistik Wald: \[ z = \frac{\hat{\beta}_i}{\text{SE}(\hat{\beta}_i)} \] Jika \(p\)-value < 0,05, \(\beta_i\) signifikan.
Goodness-of-Fit: Bandingkan deviance model dengan model nol.
Interpretasi: Olahraga rutin dan tidur cukup meningkatkan probabilitas badan Ideal secara signifikan, mendukung intervensi kesehatan yang mempromosikan keduanya.
Estimasi dan Inferensi Regresi Poisson Penjelasan:Inferensi regresi Poisson melibatkan estimasi \(\beta\) untuk memodelkan jumlah kejadian, pengujian signifikansi, dan interpretasi rate ratio.
Penerapan pada Kasus:Modelkan jumlah Badan Ideal (\(Y\)) per kelompok:
Estimasi:
Model: \[ \log(\mu) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 \]
MLE menghasilkan \(\hat{\beta}_i\). Asumsikan (dari iterasi): \(\hat{\beta}_0 = 3,5\), \(\hat{\beta}_1 = 0,4\), \(\hat{\beta}_2 = 0,3\). Prediksi \(\mu\) untuk Rutin-Cukup: \(\exp(3,5 + 0,4 + 0,3) \approx 54,6\) (perlu offset untuk menyesuaikan total, misalnya \(\log(180)\)).
Inferensi:
Rate Ratio: \(\exp(\hat{\beta}_1) = \exp(0,4) \approx 1,49\), artinya olahraga rutin meningkatkan rata-rata jumlah Badan Ideal sebesar 1,49 kali dibandingkan tidak rutin.
Pengujian Signifikansi: Gunakan statistik Wald atau likelihood ratio test. Goodness-of-Fit: Periksa deviance untuk mengevaluasi kecocokan model.
Interpretasi: Olahraga rutin dan tidur cukup meningkatkan frekuensi individu dengan badan Ideal, meskipun model Poisson mungkin memerlukan penyesuaian untuk overdispersi jika deviance besar.
Regresi logistik tidak hanya digunakan untuk prediktor biner atau kategori, tetapi juga dapat menangani prediktor dengan skala ordinal dan rasio. Pendekatan terhadap jenis skala ini berpengaruh terhadap interpretasi koefisien regresi.
Sebuah instansi pemerintah daerah ingin mengevaluasi faktor-faktor yang memengaruhi kepuasan pelanggan terhadap layanan publik yang mereka sediakan. Penilaian kepuasan ini penting untuk meningkatkan kualitas pelayanan dan mengidentifikasi kelompok masyarakat yang perlu mendapatkan perhatian khusus.
Instansi ini melakukan survei kepada 500 responden yang baru saja menggunakan layanan publik tertentu. Survei ini mencakup beberapa informasi dasar mengenai responden, yaitu:
Jenis Kelamin: Dibedakan antara Laki-laki dan Perempuan. Ini adalah variabel nominal, karena tidak ada urutan yang melekat pada kategorinya.
Tingkat Pendidikan Terakhir: Diukur dalam urutan pendidikan formal mulai dari SD, SMP, SMA, hingga Sarjana. Ini merupakan variabel ordinal, karena terdapat urutan yang jelas, meskipun jarak antar tingkat tidak dapat diukur secara presisi.
Umur: Diukur dalam tahun, merupakan variabel rasio, karena memiliki nilai nol mutlak dan dapat dihitung proporsinya.
Kepuasan: Variabel biner sebagai respons utama; dikodekan sebagai 1 = Puas dan 0 = Tidak Puas.
Tujuan dari analisis ini adalah untuk mengetahui:
Apakah jenis kelamin memengaruhi kemungkinan pelanggan merasa puas?
Apakah tingkat pendidikan yang lebih tinggi berkaitan dengan peningkatan kepuasan?
Apakah umur berpengaruh terhadap kepuasan pelanggan?
Dengan menggunakan regresi logistik, analisis ini dapat mengestimasi peluang kepuasan berdasarkan kombinasi variabel-variabel di atas.
\[ set.seed(123) n <- 500 data_simulasi <- data.frame( Kepuasan = rbinom(n, 1, 0.6), Jenis_Kelamin = sample(c("Laki-laki", "Perempuan"), n, replace = TRUE), Pendidikan = factor(sample(c("SD", "SMP", "SMA", "Sarjana"), n, replace = TRUE), levels = c("SD", "SMP", "SMA", "Sarjana"), ordered = TRUE), Umur = round(runif(n, 20, 60)) ) head(data_simulasi) \]
Pendekatan ini menganggap setiap tingkat sebagai kategori yang berbeda tanpa memperhatikan urutan antar level.
\[ model_nominal <- glm(Kepuasan ~ Jenis_Kelamin + Pendidikan + Umur, family = binomial(link = "logit"), data = data_simulasi) summary(model_nominal) \]
Pendekatan ini mengasumsikan adanya urutan dan jarak relatif antar level pendidikan dengan mengubah faktor ordinal menjadi skor numerik. Dengan begitu, model menganggap perubahan antar tingkat pendidikan sebagai perubahan linier pada log-odds.
Misalnya, jika \(\text{Pendidikan} \in \{ \text{SD}=1, \text{SMP}=2, \text{SMA}=3, \text{Sarjana}=4 \}\), maka modelnya menjadi:
\[ \log \left( \frac{\pi}{1-\pi} \right) = \beta_0 + \beta_1 X_{\text{JK}} + \beta_2 \text{Pendidikan\_Skala} + \beta_3 X_{\text{Umur}} \]
di mana \(\text{Pendidikan\_Skala}\) adalah variabel numerik yang mewakili urutan pendidikan.
\[ data_simulasi$Pendidikan_Skala <- as.numeric(data_simulasi$Pendidikan) model_ordinal <- glm(Kepuasan ~ Jenis_Kelamin + Pendidikan_Skala + Umur, family = binomial(link = "logit"), data = data_simulasi) summary(model_ordinal) \]
Model regresi logistik umum dapat ditulis sebagai:
\[ \log \left( \frac{\pi}{1-\pi} \right) = \beta_0 + \beta_1 X_{\text{JK}} + \beta_2 X_{\text{Pend}} + \beta_3 X_{\text{Umur}} \]
dengan:
Odds ratio (OR) untuk setiap koefisien \(\beta_i\) dihitung dengan rumus:
\[ \text{OR} = \exp(\beta_i) \]
Nilai OR > 1 menunjukkan peningkatan peluang kejadian \(Y=1\) untuk kenaikan satu unit prediktor, dan sebaliknya.
Evaluasi model regresi logistik dapat dilakukan melalui beberapa metode:
Contoh penerapan evaluasi ROC dan AUC dengan paket
pROC:
\[ library(pROC) prob_pred <- predict(model_nominal, type = "response") roc_obj <- roc(data_simulasi$Kepuasan, prob_pred) plot(roc_obj, main = "ROC Curve Model Nominal") auc(roc_obj) \] |
Dalam analisis regresi logistik, pemilihan model yang tepat sangat penting untuk memperoleh hasil yang akurat dan dapat diinterpretasikan. Dua pendekatan umum dalam pemilihan model adalah:
Metode stepwise merupakan prosedur otomatis yang digunakan untuk memilih variabel prediktor terbaik berdasarkan kriteria tertentu, seperti nilai AIC. Terdapat tiga jenis pendekatan:
$$ null_model <- glm(Kepuasan ~ 1, data = data_simulasi, family = binomial) full_model <- glm(Kepuasan ~ Jenis_Kelamin + Pendidikan + Umur, data = data_simulasi, family = binomial)
step_forward <- step(null_model, direction = “forward”, scope = formula(full_model)) step_backward <- step(full_model, direction = “backward”) step_both <- step(null_model, direction = “both”, scope = formula(full_model)) $$
Kurva ROC (Receiver Operating Characteristic) digunakan untuk mengevaluasi performa model klasifikasi. Sumbu x menunjukkan tingkat false positive rate, sedangkan sumbu y menunjukkan true positive rate.
Nilai AUC (Area Under Curve) mengukur luas di bawah kurva ROC:
\[ \text{AUC} = \int_{0}^{1} \text{TPR}(f) \, df \]
Semakin besar nilai AUC, semakin baik kemampuan model dalam membedakan kelas.
\[ library(pROC) prob_pred <- predict(step_both, type = "response") roc_obj <- roc(data_simulasi$Kepuasan, prob_pred) plot(roc_obj, main = "Kurva ROC") auc(roc_obj) \]
Dalam regresi logistik, kita tidak dapat menggunakan koefisien determinasi \(R^2\) seperti pada regresi linear karena model logistik berbasis pada fungsi log-likelihood, bukan sum of squares. Sebagai alternatif, digunakan berbagai ukuran Pseudo \(R^2\), yang mencoba menangkap seberapa baik model menjelaskan variasi data.
\[ R^2_{\text{McFadden}} = 1 - \frac{\log L_{\text{model}}}{\log L_{\text{null}}} \]
\[ R^2_{\text{CoxSnell}} = 1 - \left( \frac{L_0}{L_M} \right)^{\frac{2}{n}} \]
\[ R^2_{\text{Nagelkerke}} = \frac{R^2_{\text{CoxSnell}}}{1 - L_0^{2/n}} \]
Dengan notasi:
Pseudo \(R^2\) ini tidak memiliki interpretasi yang sama persis dengan \(R^2\) pada regresi linear, namun tetap berguna untuk membandingkan performa antar model logistik.
Untuk menghitung nilai pseudo \(R^2\) secara otomatis, kita dapat
menggunakan fungsi dari paket DescTools.
\[ \text{PseudoR2(step\_both, which = c("CoxSnell", "Nagelkerke", "McFadden"))} \]
Nilai-nilai ini memberikan gambaran umum seberapa baik model memodelkan data. Nilai yang lebih tinggi menunjukkan model yang lebih baik dalam menjelaskan variasi data.
Catatan: Tidak ada ambang batas pasti untuk menilai apakah pseudo \(R^2\) “baik”. Nilai ini paling berguna untuk membandingkan beberapa model yang berbeda struktur.
Setelah mendapatkan probabilitas prediksi dari model regresi logistik, langkah selanjutnya adalah mengevaluasi kemampuan klasifikasinya. Salah satu cara yang umum dilakukan adalah dengan membuat tabel klasifikasi atau confusion matrix.
Untuk mengubah probabilitas menjadi prediksi kelas, digunakan ambang batas (threshold), misalnya 0.5. Jika probabilitas lebih besar dari atau sama dengan threshold, maka kelas diprediksi sebagai “1” (positif), sebaliknya sebagai “0” (negatif).
Tujuan
Dokumen ini menyajikan cara membandingkan model regresi logistik menggunakan ukuran: - Deviance - AIC (Akaike Information Criterion) - Likelihood-Ratio
serta menjelaskan prinsip Parsimony dalam pemilihan model.
library(MASS)
library(broom)
## Warning: package 'broom' was built under R version 4.3.3
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.3.3
set.seed(123)
Sebuah perusahaan e-commerce ingin memahami faktor-faktor yang memengaruhi keputusan pembelian pelanggan saat mengunjungi situs mereka. Dalam upaya meningkatkan konversi penjualan, perusahaan mengumpulkan data dari 300 pelanggan yang mengakses halaman produk tertentu dan mencatat apakah mereka melakukan pembelian (ya atau tidak).
Tujuan utama dari analisis ini adalah untuk membangun model prediktif yang dapat mengidentifikasi karakteristik penting yang mendorong keputusan pembelian, serta menentukan model terbaik dengan mempertimbangkan prinsip parsimony—yaitu model yang sederhana tetapi tetap cukup akurat.
Respon (y): Status pembelian pelanggan (1 = membeli, 0 = tidak membeli).
Prediktor:
x1: Skor ketertarikan terhadap produk (dihasilkan dari simulasi normal), mewakili seberapa relevan produk dengan kebutuhan pelanggan berdasarkan histori pencarian.
x2: Status promo (1 = ada diskon, 0 = tidak), mewakili pengaruh diskon terhadap keputusan pembelian.
x3: Tingkat urgensi (misalnya waktu pengiriman cepat), diukur melalui skor tertentu (variabel kontinu).
n <- 300
x1 <- rnorm(n)
x2 <- rbinom(n, 1, 0.5)
x3 <- rnorm(n)
lin_pred <- -1 + 1.2 * x1 - 0.6 * x2 + 0.8 * x3
p <- 1 / (1 + exp(-lin_pred))
y <- rbinom(n, 1, p)
data <- data.frame(y = as.factor(y), x1, x2, x3)
Pembuatan Model
model1 <- glm(y ~ x1, data = data, family = binomial)
model2 <- glm(y ~ x1 + x2, data = data, family = binomial)
model3 <- glm(y ~ x1 + x2 + x3, data = data, family = binomial)
Perbandingan AIC dan Deviance
model_comp <- data.frame(
Model = c("Model 1", "Model 2", "Model 3"),
AIC = c(AIC(model1), AIC(model2), AIC(model3)),
Deviance = c(deviance(model1), deviance(model2), deviance(model3))
)
model_comp
## Model AIC Deviance
## 1 Model 1 306.2741 302.2741
## 2 Model 2 305.8225 299.8225
## 3 Model 3 278.4581 270.4581
Uji Likelihood Ratio (LRT) digunakan untuk menguji apakah penambahan variabel dalam model secara signifikan meningkatkan kecocokan model.
Jika G^2 besar dan p-value kecil, maka model kompleks lebih baik dari model sederhana secara statistik.
anova(model1, model2, test = "LRT")
## Analysis of Deviance Table
##
## Model 1: y ~ x1
## Model 2: y ~ x1 + x2
## Resid. Df Resid. Dev Df Deviance Pr(>Chi)
## 1 298 302.27
## 2 297 299.82 1 2.4516 0.1174
anova(model2, model3, test = "LRT")
## Analysis of Deviance Table
##
## Model 1: y ~ x1 + x2
## Model 2: y ~ x1 + x2 + x3
## Resid. Df Resid. Dev Df Deviance Pr(>Chi)
## 1 297 299.82
## 2 296 270.46 1 29.364 5.997e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Prinsip parsimony adalah memilih model yang paling sederhana namun memiliki performa prediksi yang baik.
Model yang kompleks sering memiliki AIC dan deviance yang lebih kecil.Namun, model sederhana lebih mudah diinterpretasikan.
Jika penurunan AIC tidak signifikan, pilih model lebih sederhana. Parsimony juga membantu mencegah overfitting.
\[ AIC = -2(log L - k) = -2 log L + 2k \]
AIC adalah ukuran untuk menilai model berdasarkan kombinasi antara goodness-of-fit (melalui log-likelihood) dan kompleksitas (melalui jumlah parameter k). Semakin kecil AIC, semakin baik model tersebut secara keseluruhan karena AIC menghukum model yang terlalu kompleks meskipun memiliki likelihood tinggi.
\[ D = -2 [log L(model) - log L(model saturasi)] \]
Deviance mengukur seberapa jauh model saat ini dibandingkan dengan model sempurna (model saturasi). Nilai deviance yang kecil menunjukkan model memberikan prediksi yang mendekati data aktual.
\[ G^2 = -2(log L0 - log L1) \] Statistik Likelihood Ratio digunakan untuk menguji apakah penambahan variabel dalam model secara signifikan meningkatkan kecocokan model.
Jika G^2 besar dan p-value kecil, maka model kompleks lebih baik dari model sederhana secara statistik.
Kurva ROC adalah alat visual yang digunakan untuk mengevaluasi performa model klasifikasi biner.
Kurva ini menunjukkan trade-off antara True Positive Rate (Sensitivity) dan False Positive Rate (1 - Specificity) pada berbagai threshold klasifikasi.
Sebuah perusahaan penyedia layanan internet ingin memprediksi risiko pelanggan melakukan churn (berhenti berlangganan) agar dapat menerapkan strategi retensi yang lebih proaktif. Churn pelanggan menjadi isu strategis karena biaya untuk memperoleh pelanggan baru jauh lebih tinggi dibandingkan mempertahankan pelanggan yang sudah ada.
Untuk tujuan tersebut, tim data science perusahaan membangun model regresi logistik berbasis pada beberapa prediktor perilaku pelanggan.
Variabel yang Diteliti :
Respon (y): Status churn pelanggan (1 = churn, 0 = bertahan), bersifat biner.
Prediktor:
x1: Intensitas penggunaan layanan (misalnya total data yang digunakan per bulan).
x2: Status berlangganan diskon (1 = menggunakan diskon, 0 = tidak).
x3: Tingkat kepuasan pelanggan (skor dari hasil survei internal)
library(pROC)
## Warning: package 'pROC' was built under R version 4.3.3
## Type 'citation("pROC")' for a citation.
##
## Attaching package: 'pROC'
## The following objects are masked from 'package:stats':
##
## cov, smooth, var
set.seed(123)
x1_roc <- rnorm(200)
x2_roc <- rbinom(200, 1, 0.5)
x3_roc <- rnorm(200)
lin_pred_roc <- -1 + 1.5 * x1_roc - 0.7 * x2_roc + 0.6 * x3_roc
p_roc <- 1 / (1 + exp(-lin_pred_roc))
y_roc <- rbinom(200, 1, p_roc)
data_roc <- data.frame(y = as.factor(y_roc), x1 = x1_roc, x2 = x2_roc, x3 = x3_roc)
model_roc <- glm(y ~ x1 + x2 + x3, data = data_roc, family = binomial)
pred_roc <- predict(model_roc, type = "response")
roc_obj <- roc(data_roc$y, pred_roc)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
plot(roc_obj)
# Area Under the Curve (AUC):
# AUC = 0.5: model tidak lebih baik dari tebak acak
# AUC > 0.7: model cukup baik
# AUC > 0.9: model sangat baik
auc(roc_obj)
## Area under the curve: 0.8686
# Simulasi Pemilihan Threshold Optimal
# Untuk memilih threshold terbaik, kita bisa mengevaluasi sensitivitas dan spesifisitas pada berbagai cut-off.
thresholds <- seq(0.1, 0.9, by = 0.05)
results <- data.frame(Threshold = thresholds)
results$Sensitivity <- sapply(thresholds, function(t) {
pred_class <- ifelse(pred_roc >= t, 1, 0)
cm <- table(Pred = pred_class, Obs = data_roc$y)
TP <- cm["1", "1"]
FN <- cm["0", "1"]
TP / (TP + FN)
})
results$Specificity <- sapply(thresholds, function(t) {
pred_class <- ifelse(pred_roc >= t, 1, 0)
cm <- table(Pred = pred_class, Obs = data_roc$y)
TN <- cm["0", "0"]
FP <- cm["1", "0"]
TN / (TN + FP)
})
print(results)
## Threshold Sensitivity Specificity
## 1 0.10 0.91489362 0.5947712
## 2 0.15 0.85106383 0.6862745
## 3 0.20 0.80851064 0.7320261
## 4 0.25 0.76595745 0.7712418
## 5 0.30 0.72340426 0.8104575
## 6 0.35 0.68085106 0.8366013
## 7 0.40 0.61702128 0.8954248
## 8 0.45 0.59574468 0.9150327
## 9 0.50 0.51063830 0.9281046
## 10 0.55 0.51063830 0.9477124
## 11 0.60 0.42553191 0.9607843
## 12 0.65 0.36170213 0.9738562
## 13 0.70 0.29787234 0.9803922
## 14 0.75 0.19148936 0.9869281
## 15 0.80 0.12765957 0.9869281
## 16 0.85 0.06382979 1.0000000
## 17 0.90 0.02127660 1.0000000
# Catatan:
# ROC cocok saat proporsi kelas seimbang.
# Untuk data dengan kelas tidak seimbang, precision-recall curve bisa lebih informatif.
Kurva Precision-Recall (PR) adalah alat evaluasi performa model klasifikasi, khususnya sangat berguna saat bekerja dengan data yang tidak seimbang (class imbalance).
library(PRROC)
## Warning: package 'PRROC' was built under R version 4.3.3
## Loading required package: rlang
## Warning: package 'rlang' was built under R version 4.3.3
set.seed(123)
x1_pr <- rnorm(200)
x2_pr <- rbinom(200, 1, 0.5)
x3_pr <- rnorm(200)
lin_pred_pr <- -1 + 1.5 * x1_pr - 0.7 * x2_pr + 0.6 * x3_pr
p_pr <- 1 / (1 + exp(-lin_pred_pr))
y_pr <- rbinom(200, 1, p_pr)
data_pr <- data.frame(y = y_pr, x1 = x1_pr, x2 = x2_pr, x3 = x3_pr)
model_pr <- glm(y ~ x1 + x2 + x3, data = data_pr, family = binomial)
prob_pr <- predict(model_pr, type = "response")
Definisi Precision (Presisi): Proporsi prediksi positif yang benar-benar positif Precision = TP / (TP + FP)
Definisi Recall (Sensitivitas): Proporsi kasus positif yang berhasil diprediksi positif Recall = TP / (TP + FN)
pr_curve_obj <- pr.curve(scores.class0 = prob_pr[data_pr$y == 1],
scores.class1 = prob_pr[data_pr$y == 0],
curve = TRUE)
plot(pr_curve_obj)
PR Curve menunjukkan bagaimana presisi berubah saat recall meningkat. Idealnya, kita ingin nilai presisi dan recall keduanya tinggi, tetapi biasanya ada trade-off. Model dengan performa baik memiliki PR Curve yang melengkung ke pojok kanan atas. Luas kurva (AUPRC) mendekati 1 berarti model sangat baik. Baseline AUPRC = prevalensi kelas positif dalam data.
PR Curve sangat informatif untuk aplikasi seperti deteksi penipuan atau diagnosis penyakit langka. ### Gunakan PR Curve saat: - Kelas positif jauh lebih jarang daripada kelas negatif - Tujuan aplikasi lebih mementingkan presisi terhadap kelas minoritas
Dokumen ini menjelaskan dan menghitung pseudo R-squared dalam regresi logistik:
R^2 Cox and Snell
R^2 McFadden
Distribusi multinomial adalah perluasan dari distribusi binomial untuk lebih dari dua kategori. Jika $$\(X_1, X_2, \dots, X_k\) menyatakan banyaknya kejadian dalam masing-masing dari \(k\) kategori, maka:
\[ P(X_1 = x_1, \dots, X_k = x_k) = \frac{n!}{x_1!x_2!\dots x_k!} p_1^{x_1} p_2^{x_2} \dots p_k^{x_k} dengan : \sum_{i=1}^{k} x_i = n$ dan $\sum_{i=1}^{k} p_i = 1$. \]
Sebuah survei dilakukan terhadap 10 orang yang diminta memilih satu dari tiga jenis buah favorit: Apel (A), Jeruk (J), dan Pisang (P). Hasil survei menunjukkan 4 orang memilih Apel, 3 memilih Jeruk, dan 3 memilih Pisang. Probabilitas teoretik preferensi adalah
\[p_A = 0.3\], \[p_J = 0.4\], \[p_P = 0.3\]`
Pertanyaannya: Berapa peluang bahwa dalam 10 orang akan ada 4 yang memilih Apel, 3 memilih Jeruk, dan 3 memilih Pisang?
Rumus Distribusi Multinomial: \[ P(X_1 = x_1, \dots, X_k = x_k) = \frac{n!}{x_1!x_2!\dots x_k!} p_1^{x_1} p_2^{x_2} \dots p_k^{x_k} \] Dengan: \(n = 10, x_1 = 4, x_2 = 3, x_3 = 3\). \(p_1 = 0.3, p_2 = 0.4, p_3 = 0.3\).
n <- 10
x <- c(4, 3, 3)
p <- c(0.3, 0.4, 0.3)
# Hitung komponen-koefisien
faktorial_total <- factorial(n)
faktorial_x <- prod(factorial(x))
koefisien <- faktorial_total / faktorial_x
# Hitung peluang
peluang <- koefisien * prod(p^x)
peluang
## [1] 0.05878656
Probabilitas bahwa 4 orang memilih Apel, 3 Jeruk, dan 3 Pisang (dengan proporsi preferensi 0.3, 0.4, dan 0.3) adalah 0.058787. Distribusi multinomial digunakan untuk menghitung peluang dalam percobaan dengan beberapa kategori hasil.
Model regresi logistik multinomial digunakan untuk memodelkan hubungan antara satu variabel respon kategorik (lebih dari 2 kategori) dan satu atau lebih variabel prediktor.
Sebuah perusahaan teknologi ingin memahami faktor-faktor yang mempengaruhi preferensi karyawan terhadap jenis perangkat kerja yang diberikan: Laptop, Desktop, atau Tablet. Survei dilakukan terhadap 150 karyawan, mengumpulkan data Device, Age, Department, dan Experience.
Tujuannya adalah mengetahui bagaimana usia, divisi, dan pengalaman kerja memengaruhi pilihan perangkat kerja.
library(nnet) # Diperlukan untuk fungsi multinom()
set.seed(123)
n <- 150
Department <- sample(c("IT", "Marketing", "HR"), n, replace = TRUE)
Age <- round(rnorm(n, mean = 35, sd = 7))
Experience <- round(pmax(rnorm(n, mean = 7, sd = 3), 0))
# Simulasikan Device berdasarkan probabilitas berbeda per Department
Device <- sapply(Department, function(dep) {
if (dep == "IT") {
sample(c("Laptop", "Desktop", "Tablet"), size = 1, prob = c(0.6, 0.2, 0.2))
} else if (dep == "Marketing") {
sample(c("Laptop", "Desktop", "Tablet"), size = 1, prob = c(0.3, 0.3, 0.4))
} else {
sample(c("Laptop", "Desktop", "Tablet"), size = 1, prob = c(0.4, 0.4, 0.2))
}
})
df_perangkat <- data.frame(Device = factor(Device), Age, Department = factor(Department), Experience)
df_perangkat$Device <- relevel(df_perangkat$Device, ref = "Laptop") # baseline Laptop
head(df_perangkat)
## Device Age Department Experience
## 1 Desktop 36 HR 8
## 2 Desktop 44 HR 10
## 3 Tablet 32 HR 3
## 4 Laptop 37 Marketing 9
## 5 Laptop 34 HR 14
## 6 Tablet 38 Marketing 2
# Estimasi Model
model_mnlogit <- multinom(Device ~ Age + Department + Experience, data = df_perangkat)
## # weights: 18 (10 variable)
## initial value 164.791843
## iter 10 value 153.109490
## final value 153.057472
## converged
summary(model_mnlogit)
## Call:
## multinom(formula = Device ~ Age + Department + Experience, data = df_perangkat)
##
## Coefficients:
## (Intercept) Age DepartmentIT DepartmentMarketing Experience
## Desktop -0.1947009 0.00396078 -1.04132876 0.2153637 -0.03133456
## Tablet -0.2612636 -0.02768129 0.03737652 1.2451673 0.04419583
##
## Std. Errors:
## (Intercept) Age DepartmentIT DepartmentMarketing Experience
## Desktop 1.139007 0.02802812 0.5359687 0.4742033 0.06782814
## Tablet 1.168694 0.02813761 0.5419639 0.4997768 0.06972093
##
## Residual Deviance: 306.1149
## AIC: 326.1149
# Nilai P-Value dan Interpretasi
z <- summary(model_mnlogit)$coefficients / summary(model_mnlogit)$standard.errors
pval <- 2 * (1 - pnorm(abs(z)))
round(pval, 4)
## (Intercept) Age DepartmentIT DepartmentMarketing Experience
## Desktop 0.8643 0.8876 0.052 0.6497 0.6441
## Tablet 0.8231 0.3252 0.945 0.0127 0.5261
Koefisien untuk kategori “Desktop” dan “Tablet” dibandingkan dengan baseline “Laptop”. Nilai p-value kecil (<0.05) menunjukkan variabel tersebut signifikan memengaruhi preferensi perangkat
df_perangkat$Predicted <- predict(model_mnlogit)
table(Predicted = df_perangkat$Predicted, Actual = df_perangkat$Device)
## Actual
## Predicted Laptop Desktop Tablet
## Laptop 50 26 21
## Desktop 3 0 1
## Tablet 13 15 21
Model regresi logistik multinomial berhasil digunakan untuk menganalisis hubungan antara atribut karyawan dan preferensi perangkat kerja, mengetahui faktor signifikan yang memengaruhi pilihan, dan memungkinkan prediksi jenis perangkat yang dipilih oleh karyawan baru berdasarkan karakteristiknya.
library(ggplot2) # Untuk visualisasi
## Warning: package 'ggplot2' was built under R version 4.3.3
library(dplyr) # Untuk manipulasi data (mutate, relevel)
## Warning: package 'dplyr' was built under R version 4.3.3
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:MASS':
##
## select
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
data(iris)
iris_data <- iris %>% mutate(Species = relevel(Species, ref = "setosa")) # setosa sebagai baseline
model_iris <- multinom(Species ~ Petal.Length + Petal.Width, data = iris_data)
## # weights: 12 (6 variable)
## initial value 164.791843
## iter 10 value 12.657828
## iter 20 value 10.374056
## iter 30 value 10.330881
## iter 40 value 10.306926
## iter 50 value 10.300057
## iter 60 value 10.296452
## iter 70 value 10.294046
## iter 80 value 10.292029
## iter 90 value 10.291154
## iter 100 value 10.289505
## final value 10.289505
## stopped after 100 iterations
summary(model_iris)
## Call:
## multinom(formula = Species ~ Petal.Length + Petal.Width, data = iris_data)
##
## Coefficients:
## (Intercept) Petal.Length Petal.Width
## versicolor -22.79944 6.92122 7.878496
## virginica -67.82521 12.64721 18.261016
##
## Std. Errors:
## (Intercept) Petal.Length Petal.Width
## versicolor 44.3859 37.58715 81.00888
## virginica 46.3939 37.65702 81.09482
##
## Residual Deviance: 20.57901
## AIC: 32.57901
# Interpretasi Koefisien dan P-value
z_iris <- summary(model_iris)$coefficients / summary(model_iris)$standard.errors
p_values_iris <- 2 * (1 - pnorm(abs(z_iris)))
round(p_values_iris, 4)
## (Intercept) Petal.Length Petal.Width
## versicolor 0.6075 0.8539 0.9225
## virginica 0.1438 0.7370 0.8218
iris_data$predicted <- predict(model_iris, newdata = iris_data)
table(Predicted = iris_data$predicted, Actual = iris_data$Species)
## Actual
## Predicted setosa versicolor virginica
## setosa 50 0 0
## versicolor 0 47 3
## virginica 0 3 47
ggplot(iris_data, aes(x = Petal.Length, y = Petal.Width, color = predicted)) +
geom_point(size = 2) +
labs(title = "Multinomial Logistic Regression Predictions",
x = "Petal Length", y = "Petal Width") +
theme_minimal()
Kesimpulan: Multinomial logistic regression efektif digunakan untuk klasifikasi kategori nominal. Model ini memberikan estimasi log-odds terhadap baseline dan prediksi kategori baru berdasarkan kombinasi prediktor.
Regresi logistik ordinal digunakan ketika variabel respon \(Y\) bersifat ordinal (memiliki urutan), misalnya tingkat kepuasan: Rendah, Sedang, Tinggi. Model ini berbeda dengan regresi logistik biner (hanya 2 kategori) dan regresi logistik multinomial (kategori > 2 tetapi tidak berurutan).
Model yang paling umum digunakan dalam regresi logistik ordinal adalah Cumulative Logit Model dengan asumsi proportional odds. Asumsi ini juga dikenal sebagai asumsi paralelisme (parallel lines assumption).
Model cumulative logit dapat dinyatakan dalam bentuk: \[ \log \left( \frac{P(Y \le j)}{P(Y > j)} \right) = \alpha_j + \beta X \] di mana: * \(\alpha_j\): intercept khusus untuk kategori ke-\(j\). * \(\beta\): koefisien regresi yang sama untuk semua kategori kumulatif (proportional odds).
Asumsi paralelisme menyatakan bahwa koefisien regresi (\(\beta\)) adalah sama untuk setiap kategori kumulatif dari variabel respon. Secara visual, kurva logit kumulatif dari tiap kategori terhadap prediktor akan memiliki kemiringan yang sama (paralel), hanya berbeda posisi (intercept).
Koefisien \(\beta\) menjelaskan efek \(X\) terhadap kemungkinan berada pada kategori yang lebih rendah atau sama. * Jika \(\beta > 0\): semakin besar \(X\), semakin tinggi peluang berada di kategori rendah. * Jika \(\beta < 0\): semakin besar \(X\), semakin besar peluang berada di kategori tinggi. Odds ratio (\(OR\)) dihitung sebagai \(e^{\beta}\).
Misalkan kita memiliki data fiktif tingkat kepuasan pelanggan (1: Tidak Puas, 2: Cukup, 3: Puas) terhadap kecepatan layanan.
library(MASS) # Diperlukan untuk fungsi polr()
set.seed(123)
n <- 200
speed <- round(runif(n, 1, 10))
satisfaction <- cut(5 + 0.5*speed + rnorm(n),
breaks = c(-Inf, 5.5, 7.5, Inf),
labels = c("Tidak Puas", "Cukup", "Puas"),
ordered_result = TRUE)
df_satisfaction <- data.frame(satisfaction, speed)
head(df_satisfaction)
## satisfaction speed
## 1 Cukup 4
## 2 Puas 8
## 3 Cukup 5
## 4 Puas 9
## 5 Puas 9
## 6 Tidak Puas 1
# Estimasi Model Ordinal
model_ord <- polr(satisfaction ~ speed, data = df_satisfaction, Hess = TRUE)
summary(model_ord)
## Call:
## polr(formula = satisfaction ~ speed, data = df_satisfaction,
## Hess = TRUE)
##
## Coefficients:
## Value Std. Error t value
## speed 0.9096 0.1094 8.315
##
## Intercepts:
## Value Std. Error t value
## Tidak Puas|Cukup 1.3015 0.4377 2.9738
## Cukup|Puas 4.4734 0.5718 7.8232
##
## Residual Deviance: 237.2312
## AIC: 243.2312
# Menghitung p-value
(ctable <- coef(summary(model_ord)))
## Value Std. Error t value
## speed 0.9095585 0.1093925 8.314630
## Tidak Puas|Cukup 1.3015075 0.4376597 2.973789
## Cukup|Puas 4.4733938 0.5718127 7.823180
p <- pnorm(abs(ctable[, "t value"]), lower.tail = FALSE) * 2
(ctable <- cbind(ctable, "p value" = round(p, 4)))
## Value Std. Error t value p value
## speed 0.9095585 0.1093925 8.314630 0.0000
## Tidak Puas|Cukup 1.3015075 0.4376597 2.973789 0.0029
## Cukup|Puas 4.4733938 0.5718127 7.823180 0.0000
# Prediksi Probabilitas
newdata_pred <- data.frame(speed = 5:9)
predict(model_ord, newdata = newdata_pred, type = "probs")
## Tidak Puas Cukup Puas
## 1 0.037460604 0.4439482 0.5185912
## 2 0.015430723 0.2566765 0.7278928
## 3 0.006271788 0.1245723 0.8691559
## 4 0.002535158 0.0546231 0.9428417
## 5 0.001022461 0.0228089 0.9761686
Model cumulative logit mengasumsikan efek prediktor sama untuk setiap cut-off. Jika asumsi ini tidak terpenuhi, model cumulative logit tidak valid , dan perlu dipertimbangkan model non-proportional odds seperti generalized ordinal model atau Partial Proportional Odds Model.
Untuk memeriksa validitas asumsi paralelisme, dapat digunakan Likelihood Ratio Test antara model proporsional dan non-proporsional, atau Brant Test (paket brant di R).
# Contoh Pengujian Asumsi Paralelisme dengan Brant Test (membutuhkan instalasi paket 'brant' dan data yang sesuai)
# Kode ini hanya sebagai ilustrasi dan tidak akan dieksekusi karena objek 'dat' tidak tersedia dalam konteks ini.
# library(brant) # Memuat paket brant
# model_brant_example <- polr(ordered_response ~ x1 + x2, data = dat_example, Hess = TRUE)
# brant(model_brant_example)
# Jika p-value < 0.05, maka asumsi paralelisme tidak terpenuhi.
Selain cumulative logit, model ordinal lainnya yang dapat digunakan saat asumsi proportional odds tidak terpenuhi meliputi:
Adjacent-category logit
Continuation-ratio (sequential) logit
Regresi ordinal efektif untuk respon berurutan. Model cumulative logit menginterpretasikan efek dalam bentuk log-odds kumulatif , dan implementasinya di R menggunakan fungsi polr() dari paket MASS. Asumsi paralelisme sangat penting untuk validitas model ini. Jika asumsi tidak terpenuhi, penting untuk menggunakan model ordinal alternatif.
Analisis data kategorik merupakan bagian penting dalam statistika terapan karena banyak fenomena di dunia nyata yang menghasilkan data dalam bentuk kategori, seperti jenis kelamin, status pekerjaan, tingkat pendidikan, preferensi konsumen, atau hasil diagnosis medis. Data kategori ini umumnya dianalisis menggunakan tabel kontingensi, model log-linier, dan model regresi logistik. Masing-masing pendekatan memiliki kekuatan dan kelemahan tergantung pada tujuan analisis dan struktur data.
Meskipun ketiganya beroperasi pada data kategorik, tabel kontingensi bersifat deskriptif, model log-linier bersifat eksploratif terhadap hubungan simetris, sedangkan regresi logistik bersifat prediktif terhadap outcome kategorik. Pemilihan metode tergantung pada apakah fokus utama analisis adalah deskripsi, eksplorasi struktur, atau prediksi hasil berdasarkan variabel penjelas.
Model loglinear memodelkan logaritma dari ekspektasi frekuensi sel dalam tabel kontingensi: \[ \log(\mu_{ij}) = \lambda + \lambda_i^I + \lambda_j^J + \lambda_{ij}^{IJ} \]
Model saturated menyertakan seluruh efek utama dan interaksi. Model ini cocok sempurna terhadap data dan tidak mengasumsikan independensi antar variabel.
library(MASS)
data_loglinear <- matrix(c(35, 65, 45, 55), nrow=2, byrow=TRUE)
dimnames(data_loglinear) <- list(Obat = c("Timolol", "Placebo"), Serangan = c("Ya", "Tidak"))
ftable(data_loglinear)
## Serangan Ya Tidak
## Obat
## Timolol 35 65
## Placebo 45 55
# Model saturated dapat dipasang dengan loglm dari package {MASS}
model_saturated <- loglm(~ Obat * Serangan, data = data_loglinear)
summary(model_saturated)
## Formula:
## ~Obat * Serangan
## attr(,"variables")
## list(Obat, Serangan)
## attr(,"factors")
## Obat Serangan Obat:Serangan
## Obat 1 0 1
## Serangan 0 1 1
## attr(,"term.labels")
## [1] "Obat" "Serangan" "Obat:Serangan"
## attr(,"order")
## [1] 1 1 2
## attr(,"intercept")
## [1] 1
## attr(,"response")
## [1] 0
## attr(,".Environment")
## <environment: R_GlobalEnv>
##
## Statistics:
## X^2 df P(> X^2)
## Likelihood Ratio 0 0 1
## Pearson 0 0 1
model_indep <- loglm(~ Obat + Serangan, data = data_loglinear)
summary(model_indep)
## Formula:
## ~Obat + Serangan
## attr(,"variables")
## list(Obat, Serangan)
## attr(,"factors")
## Obat Serangan
## Obat 1 0
## Serangan 0 1
## attr(,"term.labels")
## [1] "Obat" "Serangan"
## attr(,"order")
## [1] 1 1
## attr(,"intercept")
## [1] 1
## attr(,"response")
## [1] 0
## attr(,".Environment")
## <environment: R_GlobalEnv>
##
## Statistics:
## X^2 df P(> X^2)
## Likelihood Ratio 2.087576 1 0.1485015
## Pearson 2.083333 1 0.1489147
Odds ratio untuk tabel 2x2 adalah: \[ OR = \frac{n_{11}n_{22}}{n_{12}n_{21}} \] Interpretasi nilai OR:
OR = 1: Tidak ada asosiasi
OR > 1: Asosiasi positif
OR < 1: Asosiasi negati
# Estimasi odds ratio dan log-odds
logOR <- log((data_loglinear[1,1] * data_loglinear[2,2]) / (data_loglinear[1,2] * data_loglinear[2,1]))
logOR
## [1] -0.4183685
Perbandingan antar model dilakukan dengan menggunakan statistik deviance (\(G^2\)) atau likelihood ratio test.
anova(model_indep, model_saturated)
## LR tests for hierarchical log-linear models
##
## Model 1:
## ~Obat + Serangan
## Model 2:
## ~Obat * Serangan
##
## Deviance df Delta(Dev) Delta(df) P(> Delta(Dev)
## Model 1 2.087576 1
## Model 2 0.000000 0 2.087576 1 0.1485
## Saturated 0.000000 0 0.000000 0 1.0000
Studi dari Agresti (2019) membahas hubungan antara kebahagiaan dan kepercayaan terhadap kehidupan akhirat.
data_survey <- matrix(c(32, 190, 113, 611, 51, 326),
nrow = 3, byrow = TRUE,
dimnames = list(Kebahagiaan = c("Tidak", "Cukup", "Sangat"),
Surga = c("Tidak Percaya", "Percaya")))
ftable(data_survey)
## Surga Tidak Percaya Percaya
## Kebahagiaan
## Tidak 32 190
## Cukup 113 611
## Sangat 51 326
loglm(~ Kebahagiaan + Surga, data = data_survey)
## Call:
## loglm(formula = ~Kebahagiaan + Surga, data = data_survey)
##
## Statistics:
## X^2 df P(> X^2)
## Likelihood Ratio 0.8911136 2 0.6404675
## Pearson 0.8836760 2 0.6428538
Ringkasan perbandingan antara Tabel Kontingensi, Model Loglinear, dan Regresi Logistik
library(knitr)
## Warning: package 'knitr' was built under R version 4.3.3
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.3.3
##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
perbandingan_df <- data.frame(
Aspek = c("Tujuan", "Variabel dependen", "Distribusi", "Bentuk Model", "Cocok untuk"),
`Tabel Kontingensi` = c("Deskripsi frekuensi", "Tidak ada", "Tidak diasumsikan", "Tidak ada", "Eksplorasi awal"),
`Model Loglinear` = c("Deteksi asosiasi", "Tidak ada (simetris)", "Poisson (frekuensi sel)", "GLM: log(mu) ~ efek", "Tabel > 2 variabel"),
`Regresi Logistik` = c("Prediksi probabilitas", "Ada (eksplisit)", "Binomial (probabilitas)", "GLM: logit(p) ~ prediktor", "Studi prediktif")
)
kable(perbandingan_df, format = "html", booktabs = TRUE, escape = FALSE,
col.names = c("Aspek", "Tabel Kontingensi", "Model Loglinear", "Regresi Logistik")) %>%
kable_styling(full_width = FALSE, position = "center",
latex_options = c("striped", "hold_position"))
| Aspek | Tabel Kontingensi | Model Loglinear | Regresi Logistik |
|---|---|---|---|
| Tujuan | Deskripsi frekuensi | Deteksi asosiasi | Prediksi probabilitas |
| Variabel dependen | Tidak ada | Tidak ada (simetris) | Ada (eksplisit) |
| Distribusi | Tidak diasumsikan | Poisson (frekuensi sel) | Binomial (probabilitas) |
| Bentuk Model | Tidak ada | GLM: log(mu) ~ efek | GLM: logit(p) ~ prediktor |
| Cocok untuk | Eksplorasi awal | Tabel > 2 variabel | Studi prediktif |
data_glm_contoh <- data.frame(
Serangan = c(1, 0, 1, 0),
Obat = factor(c("Timolol", "Timolol", "Placebo", "Placebo")),
Frek = c(30, 20, 50, 70)
)
model_logit_contoh <- glm(Serangan ~ Obat, weights = Frek, family = binomial, data = data_glm_contoh)
summary(model_logit_contoh)
##
## Call:
## glm(formula = Serangan ~ Obat, family = binomial, data = data_glm_contoh,
## weights = Frek)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.3365 0.1852 -1.817 0.0692 .
## ObatTimolol 0.7419 0.3430 2.163 0.0305 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 235.08 on 3 degrees of freedom
## Residual deviance: 230.31 on 2 degrees of freedom
## AIC: 234.31
##
## Number of Fisher Scoring iterations: 4
Agresti, A. (2013). Categorical Data Analysis (3rd ed.). Hoboken, NJ: John Wiley & Sons.
Hosmer, D. W., Lemeshow, S., & Sturdivant, R. X. (2013). Applied Logistic Regression (3rd ed.). Hoboken, NJ: John Wiley & Sons.
Kleinbaum, D. G., & Klein, M. (2010). Logistic Regression: A Self-Learning Text (3rd ed.). New York: Springer.
Hilbe, J. M. (2014). Modeling Count Data. New York: Cambridge University Press.
Friendly, M., & Meyer, D. (2016). Discrete Data Analysis with R: Visualization and Modeling Techniques for Categorical and Count Data. Boca Raton: CRC Press.
Powers, D. M. W. (2011). Evaluation: From Precision, Recall and F-Measure to ROC, Informedness, Markedness and Correlation. Journal of Machine Learning Technologies, 2(1), 37–63.
Long, J. S., & Freese, J. (2014). Regression Models for Categorical Dependent Variables Using Stata (3rd ed.). College Station, TX: Stata Press.
Menard, S. (2010). Logistic Regression: From Introductory to Advanced Concepts and Applications. Thousand Oaks, CA: SAGE Publications.
Wickens, T. D. (2015). Multivariate Behavioral Research. New York: Psychology Press.
Fox, J. (2015). Applied Regression Analysis and Generalized Linear Models (3rd ed.). Thousand Oaks, CA: SAGE Publications.