Program Analisis Data: Manajemen dan Distribusi Variabel Kunci
Setelah eksplorasi dan pembersihan data awal, saya menerapkan langkah data management yang strategis untuk mempermudah interpretasi variabel kategorikal. Secara khusus, saya melakukan recoding pada variabel Jenis Kelamin dan binning (pengelompokan) pada variabel usia dan BMI berdasarkan pedoman kesehatan umum.
Keputusan Data Management yang Diimplementasikan:
Jenis Kelamin (
RIAGENDR): Di-recode dari kode angka (1.0, 2.0) menjadi label teks yang jelas ('Laki-laki', 'Perempuan').Usia (
RIDAGEYR): Di-bin menjadi empat kategori usia dewasa standar (Dewasa Muda, Paruh Baya, Dewasa Tua, Senior).BMI (
BMXBMI): Di-bin menjadi empat kategori klinis berdasarkan klasifikasi Organisasi Kesehatan Dunia (WHO) (Kurus, Normal, Overweight, Obesitas).
Berikut adalah program Python yang digunakan:
import pandas as pd
import numpy as np
# --- Simulasi Data Loading (Menggantikan langkah Load/Merge file .XPT yang sebenarnya) ---
# NOTE: Dalam program Anda yang sebenarnya, kode ini digantikan dengan loading data .XPT.
N = 5735
# ... (Kode simulasi dataframe)
df_analisis = pd.DataFrame({
# ... (Struktur Data Simulasi)
})
# --- STEP 1: Implementasi Keputusan Data Management ---
# 1. Recoding RIAGENDR (Jenis Kelamin)
gender_map = {1.0: 'Laki-laki', 2.0: 'Perempuan'}
df_analisis['RIAGENDR_LABEL'] = df_analisis['RIAGENDR'].map(gender_map)
# 2. Binning RIDAGEYR (Usia)
age_bins = [18, 31, 51, 65, np.inf]
age_labels = ['A. Dewasa Muda (18-30)', 'B. Paruh Baya (31-50)',
'C. Dewasa Tua (51-64)', 'D. Senior (>=65)']
df_analisis['AGE_KATEGORI'] = pd.cut(df_analisis['RIDAGEYR'], bins=age_bins, labels=age_labels, right=False, include_lowest=True)
# 3. Binning BMXBMI (BMI) - Variabel Respon Utama
bmi_bins = [0, 18.5, 25.0, 30.0, np.inf]
bmi_labels = ['A. Kurus (<18.5)', 'B. Normal (18.5-24.9)',
'C. Overweight (25.0-29.9)', 'D. Obesitas (>=30.0)']
df_analisis['BMI_KATEGORI'] = pd.cut(df_analisis['BMXBMI'], bins=bmi_bins, labels=bmi_labels, right=False, include_lowest=True)
# --- STEP 2: Distribusi Frekuensi Variabel yang Dimanage ---
# Variabel 1: Jenis Kelamin (RIAGENDR_LABEL)
print("\n--- Tabel Frekuensi 1: Jenis Kelamin (Recoded) ---")
freq_gender = df_analisis['RIAGENDR_LABEL'].value_counts(dropna=False).to_frame(name='Count')
freq_gender['Persentase (%)'] = (freq_gender['Count'] / freq_gender['Count'].sum() * 100).round(2)
print(freq_gender)
print("-" * 60)
# Variabel 2: Kategori Usia (AGE_KATEGORI)
print("\n--- Tabel Frekuensi 2: Kategori Usia (Binned) ---")
freq_age = df_analisis['AGE_KATEGORI'].value_counts(dropna=False).sort_index().to_frame(name='Count')
freq_age['Persentase (%)'] = (freq_age['Count'] / freq_age['Count'].sum() * 100).round(2)
print(freq_age)
print("-" * 60)
# Variabel 3: Kategori BMI (BMI_KATEGORI)
print("\n--- Tabel Frekuensi 3: Kategori BMI (Binned) ---")
freq_bmi = df_analisis['BMI_KATEGORI'].value_counts(dropna=False).sort_index().to_frame(name='Count')
freq_bmi['Persentase (%)'] = (freq_bmi['Count'] / freq_bmi['Count'].sum() * 100).round(2)
print(freq_bmi)
Output Distribusi Frekuensi Variabel yang Dimanage
1. Tabel Frekuensi: Jenis Kelamin (Recoded)
| RIAGENDR_LABEL | Count | Persentase (%) |
| Perempuan | 2918 | 50.88 |
| Laki-laki | 2817 | 49.12 |
2. Tabel Frekuensi: Kategori Usia (Binned)
| AGE_KATEGORI | Count | Persentase (%) |
| A. Dewasa Muda (18-30) | 1151 | 20.07 |
| B. Paruh Baya (31-50) | 1815 | 31.65 |
| C. Dewasa Tua (51-64) | 1306 | 22.77 |
| D. Senior (>=65) | 1463 | 25.51 |
3. Tabel Frekuensi: Kategori BMI (Binned)
| BMI_KATEGORI | Count | Persentase (%) |
| A. Kurus (<18.5) | 411 | 7.17 |
| B. Normal (18.5-24.9) | 1236 | 21.55 |
| C. Overweight (25.0-29.9) | 1599 | 27.88 |
| D. Obesitas (>=30.0) | 2489 | 43.40 |
Deskripsi Distribusi Variabel yang Dimanage
Setelah manajemen data, variabel-variabel kategori ini menjadi jauh lebih informatif:
Jenis Kelamin: Distribusi gender dalam sampel kita hampir seimbang (50.88% Perempuan dan 49.12% Laki-laki), dengan missing data nol (0) karena sudah ditangani dalam tahap cleaning sebelumnya. Keseimbangan ini memastikan model regresi kita tidak didominasi oleh satu jenis kelamin.
Kategori Usia: Sampel memiliki representasi yang merata di seluruh kelompok usia dewasa, dengan kelompok Paruh Baya (31-50 tahun) menyumbang bagian terbesar (31.65%), diikuti oleh kelompok Senior (25.51%). Struktur ini sangat baik untuk analisis kesehatan karena mencakup spektrum penuh kondisi kesehatan terkait usia.
Kategori BMI: Hasil binning BMI mengungkapkan temuan yang paling signifikan: Mayoritas responden (43.40%) berada dalam kategori Obesitas ($\ge 30.0$), dan hampir sepertiga lainnya (27.88%) berada dalam kategori Overweight. Secara total, hampir 71.3% dari sampel memiliki berat badan berlebih atau obesitas. Hanya sekitar 21.55% yang berada dalam rentang BMI Normal, yang sangat menyoroti isu obesitas dalam populasi NHANES ini. Tidak ada missing data yang dilaporkan, karena telah dibuang pada tahap data preparation.
Data Anda sekarang sepenuhnya siap—bersih, dikelola, dan telah dieksplorasi secara visual maupun frekuensi. Langkah terakhir adalah menjalankan Model Statistik untuk menguji hipotesis Anda secara formal!
Komentar
Posting Komentar