Sessi 5: Statistik Deskriptif untuk EDA

Fokus: Menghitung dan Menginterpretasikan Parameter Statistik Dasar (Pemusatan, Penyebaran, Hubungan) menggunakan Pandas dan NumPy.

A. Review: Ukuran Pemusatan Data (*Measures of Central Tendency*)

Ukuran pemusatan digunakan untuk menemukan nilai tunggal yang paling representatif dari suatu kumpulan data.

B. Ukuran Penyebaran Data (*Measures of Dispersion*)

Ukuran penyebaran sangat krusial dalam Fisika dan Matematika karena menggambarkan variabilitas, ketidakpastian, dan galat pengukuran data.

1. Variansi (σ2) dan Deviasi Standar (σ)

Variansi (σ2) mengukur rata-rata jarak kuadrat antara setiap titik data dan rata-ratanya (μ). Deviasi Standar (σ) adalah akar kuadrat dari variansi, yang memberikan ukuran penyebaran dalam unit yang sama dengan data asli.

σ2 = Σ (Xi - μ)2 / N

σ = √(σ2)

Catatan: Untuk sampel kecil, penyebutnya adalah N - 1 (Variansi Sampel) untuk koreksi bias.

2. Kuartil dan IQR

Kuartil membagi data menjadi empat bagian (Q1, Q2/Median, Q3). Interquartile Range (IQR) adalah rentang antara kuartil ketiga dan kuartil pertama (Q3 - Q1), digunakan sebagai ukuran penyebaran yang tahan terhadap *outlier*.

C. Ukuran Hubungan: Korelasi Pearson (r)

Korelasi adalah ukuran statistik yang menentukan sejauh mana dua variabel cenderung bergerak bersama. Koefisien Korelasi Pearson (r) mengukur hubungan linier. Nilainya berkisar dari -1 (korelasi negatif sempurna) hingga +1 (korelasi positif sempurna).

Formula Korelasi Pearson (r)

r = (Σ (xi - μx)(yi - μy)) / ((N - 1) · σx · σy)

Ini adalah rasio antara Kovariansi x dan y, dibagi dengan hasil kali deviasi standar masing-masing.

D. Studi Kasus Praktik: Dataset Konsumsi Daya Listrik (UCI)

Kita akan menggunakan dataset Konsumsi Daya Listrik Rumah Tangga (*Individual Household Electric Power Consumption*) dari UCI (atau data fiktif yang merepresentasikannya) untuk menerapkan seluruh statistik deskriptif.

import pandas as pd
import numpy as np

# Data fiktif (merepresentasikan data konsumsi listrik)
data_listrik = {
    'Global_Aktif_Power': [4.21, 5.36, 6.71, 3.75, 5.50, 4.00, 7.10], # kW
    'Voltage': [234.8, 234.4, 235.6, 234.0, 235.1, 234.5, 235.0],    # Volt
    'Global_Reaktif_Power': [0.05, 0.08, 0.10, 0.04, 0.06, 0.05, 0.11] # kW
}
df_listrik = pd.DataFrame(data_listrik)

# 1. Ringkasan Statistik Lengkap (.describe())
print("--- Ringkasan Statistik Penuh (df.describe()) ---")
print(df_listrik.describe().round(3))

# 2. Perhitungan Statistik Kunci secara Manual
print("\n--- Perhitungan Statistik Kunci ---")
mean_power = df_listrik['Global_Aktif_Power'].mean()
std_voltage = df_listrik['Voltage'].std()
median_reaktif = df_listrik['Global_Reaktif_Power'].median()

print(f"Rata-rata Daya Aktif (μ): {mean_power:.3f} kW")
print(f"Deviasi Standar Voltage (σ): {std_voltage:.3f} V")
print(f"Median Daya Reaktif: {median_reaktif:.3f} kW")


# 3. Analisis Korelasi (Hubungan Linier)
# Korelasi antara Daya Aktif dan Voltage
korelasi_power_voltage = df_listrik['Global_Aktif_Power'].corr(df_listrik['Voltage'])
print(f"\nKorelasi (r) Daya Aktif vs Voltage: {korelasi_power_voltage:.3f}")

# Korelasi antara Daya Aktif dan Daya Reaktif
korelasi_power_reaktif = df_listrik['Global_Aktif_Power'].corr(df_listrik['Global_Reaktif_Power'])
print(f"Korelasi (r) Daya Aktif vs Daya Reaktif: {korelasi_power_reaktif:.3f}")

# Interpretasi Hasil Korelasi:
# Jika r ≈ 0.99, hubungan positif kuat (misalnya Daya Aktif vs Daya Reaktif).
# Jika r ≈ -0.01, hubungan sangat lemah/tidak ada (misalnya Daya Aktif vs Voltage).