MA1420 · DATA SAINS · SESI 11

Korelasi &
Hubungan Antar Variabel

Sebelum membangun model, kita perlu memahami hubungan antar variabel. Apakah dua variabel bergerak bersama? Seberapa kuat? Hubungan linear atau tidak? Korelasi adalah alat pertama untuk menjawab pertanyaan-pertanyaan ini.

1. Apa Itu Korelasi?

💡 ILUSTRASI — JAM BELAJAR DAN NILAI UJIAN

Secara intuitif: mahasiswa yang belajar lebih lama cenderung mendapat nilai lebih tinggi. Tapi seberapa kuat kecenderungan ini? Dan apakah ada pengecualian? Korelasi mengukur kecenderungan dua variabel bergerak bersama secara sistematis — bukan hanya kebetulan pada satu dua kasus.

Korelasi memberi kita angka antara −1 dan +1 yang merangkum seluruh pola hubungan menjadi satu nilai yang mudah dibandingkan dan dikomunikasikan.

Tiga Pola Hubungan Utama

2. Koefisien Korelasi Pearson

Koefisien Pearson (r) mengukur kekuatan dan arah hubungan linear antara dua variabel numerik kontinu.

RUMUS KORELASI PEARSON

r = Σ[(xᵢ − x̄)(yᵢ − ȳ)] / √[Σ(xᵢ − x̄)² × Σ(yᵢ − ȳ)²]

Pembilang = kovarians: seberapa X dan Y menyimpang dari mean mereka secara bersamaan.

Penyebut = standarisasi agar hasilnya selalu dalam rentang [−1, +1].

Contoh Perhitungan Manual

MahasiswaJam Belajar (X)Nilai UTS (Y)X − x̄Y − ȳ(X−x̄)(Y−ȳ)
Andi255−2−17+34
Budi365−1−7+7
Citra4750+30
Dewi580+1+8+8
Eko685+2+13+26
x̄ = 4, ȳ = 72Σ =75

Σ(X−x̄)² = 4+1+0+1+4 = 10  |  Σ(Y−ȳ)² = 289+49+9+64+169 = 580

HASIL PERHITUNGAN

r = 75 / √(10 × 580) = 75 / √5800 = 75 / 76.16 ≈ +0.985

Korelasi sangat kuat positif! Makin banyak belajar → makin tinggi nilai.

3. Panduan Interpretasi Nilai r

SKALA INTERPRETASI KOEFISIEN KORELASI (r)
−1.0−0.50+0.5+1.0
−1.0 s.d. −0.7
Negatif Kuat
−0.7 s.d. −0.3
Negatif Sedang
−0.3 s.d. +0.3
Lemah / Tidak Ada
+0.3 s.d. +0.7
Positif Sedang
+0.7 s.d. +1.0
Positif Kuat
💡 R² — KOEFISIEN DETERMINASI

r² (R-squared) = persentase variansi Y yang bisa "dijelaskan" oleh X.

Contoh: r = 0.8 → r² = 0.64 → artinya 64% variansi Y dijelaskan oleh X. Sisanya 36% dari faktor lain.

r = 0.985 (contoh belajar) → r² = 0.97 → 97% variansi nilai dijelaskan oleh jam belajar. Sangat kuat!

4. Metode Korelasi Lainnya

UNTUK DATA NUMERIK LINEAR
Pearson (r)
ρ = Cov(X,Y)/(σX·σY)
Data numerik kontinu, distribusi mendekati normal, hubungan linear
✓ Paling umum, paling intuitif
✗ Sensitif outlier; hanya deteksi hubungan linear
UNTUK DATA ORDINAL/RANK
Spearman (ρ)
ρ = 1 − 6Σdᵢ²/n(n²−1)
Data ordinal, ada outlier ekstrem, hubungan monoton (tidak harus linear)
✓ Robust terhadap outlier
✓ Deteksi hubungan monoton non-linear
✗ Kurang efisien untuk data normal murni
UNTUK DATA KATEGORIKAL
Cramér's V / Phi
V = √(χ²/n·min(r−1,c−1))
Kedua variabel kategorikal; mengukur asosiasi bukan korelasi
✓ Satu-satunya pilihan valid untuk kategorik-kategorik
✗ Tidak ada arah (+ atau −), hanya kekuatan asosiasi
Kombinasi VariabelMetode yang TepatFungsi Python
Numerik ↔ Numerik (normal, linear)Pearson rdf.corr() atau scipy.stats.pearsonr()
Numerik ↔ Numerik (ordinal/outlier)Spearman ρdf.corr(method='spearman')
Kategorik ↔ KategorikChi-square + Cramér's Vscipy.stats.chi2_contingency()
Numerik ↔ KategorikANOVA / Point-Biserialscipy.stats.f_oneway()

5. Korelasi ≠ Kausalitas — Jebakan Terbesar

💡 ILUSTRASI — ES KRIM DAN TENGGELAM

Data menunjukkan korelasi kuat antara penjualan es krim dan angka tenggelam di pantai (r ≈ +0.85). Apakah makan es krim menyebabkan tenggelam? Tentu tidak! Keduanya sama-sama meningkat di musim panas — ada variabel tersembunyi (confounding variable): cuaca panas membuat orang ke pantai DAN membeli es krim lebih banyak.

⚠️ SPURIOUS CORRELATION
Korelasi Semu (Palsu)
"Jumlah pembangkit listrik di Indonesia berkorelasi tinggi dengan angka harapan hidup" — bukan karena listrik menyembuhkan, tapi keduanya sama-sama meningkat seiring pembangunan ekonomi.
Penyebab sebenarnya: variabel ke-3 (kemajuan ekonomi) mempengaruhi keduanya.
✓ HUBUNGAN KAUSAL
Cara Membuktikan Kausalitas
Butuh lebih dari korelasi: (1) X mendahului Y secara waktu, (2) ada mekanisme biologis/fisik yang masuk akal, (3) korelasi bertahan setelah kontrol variabel lain, (4) idealnya: eksperimen terkontrol (RCT).
Data observasional saja tidak bisa membuktikan kausalitas.
⚠️ TIGA JENIS HUBUNGAN YANG MEMBINGUNGKAN

1. Kausal langsung: A → B (merokok → kanker paru — sudah terbukti eksperimen)

2. Kausal terbalik: B → A (bukan "sakit bikin orang ke dokter" tapi juga "dokter yang banyak bikin orang lebih sering cek kesehatan")

3. Confounding: C → A dan C → B (variabel C tersembunyi menyebabkan keduanya)

6. Matriks Korelasi (Correlation Heatmap)

Saat dataset memiliki banyak variabel numerik, matriks korelasi memperlihatkan seluruh pasangan korelasi sekaligus dalam satu tampilan. Heatmap menggunakan warna untuk mempercepat identifikasi pola.

CONTOH HEATMAP KORELASI — DATA MAHASISWA
Jam
Belajar
Nilai
UTS
Kehadiran
(%)
Jam
Main HP
IPK
Jam Belajar
1.00
0.85
0.52
−0.68
0.79
Nilai UTS
0.85
1.00
0.48
−0.61
0.84
Kehadiran
0.52
0.48
1.00
−0.21
0.50
Jam Main HP
−0.68
−0.61
−0.21
1.00
−0.57
IPK
0.79
0.84
0.50
−0.57
1.00

🟢 Hijau = korelasi positif  |  🔴 Merah = korelasi negatif  |  Intensitas warna = kekuatan korelasi

📌 MEMBACA HEATMAP — TEMUAN UTAMA

Dari heatmap di atas: Jam Belajar ↔ Nilai UTS (r=0.85) dan Jam Belajar ↔ IPK (r=0.79) adalah korelasi terkuat.

Jam Main HP ↔ Jam Belajar (r=−0.68) menunjukkan trade-off: mahasiswa yang banyak main HP cenderung belajar lebih sedikit.

Perhatikan diagonal utama selalu 1.00 — setiap variabel berkorelasi sempurna dengan dirinya sendiri.

Demo Interaktif: Kalkulator Korelasi Pearson

Masukkan dua set data untuk menghitung korelasi Pearson secara langsung:

🔢 KALKULATOR KORELASI PEARSON
DATA X (pisah koma):
DATA Y (pisah koma):
Klik tombol untuk menghitung...

7. Praktik Python

PYTHON · ANALISIS KORELASI LENGKAP
import pandas as pd
import numpy as np
from scipy import stats

np.random.seed(42)
n = 50
jam_belajar = np.random.normal(4, 1.5, n).clip(1, 8)
nilai_uts   = (50 + 8 * jam_belajar + np.random.normal(0, 5, n)).clip(0, 100)
jam_hp      = (8 - jam_belajar + np.random.normal(0, 1, n)).clip(0, 10)
kehadiran   = (60 + 5 * jam_belajar + np.random.normal(0, 8, n)).clip(40, 100)

df = pd.DataFrame({
    'jam_belajar': jam_belajar,
    'nilai_uts'  : nilai_uts,
    'jam_hp'     : jam_hp,
    'kehadiran'  : kehadiran
})

# ── Matriks korelasi Pearson ─────────────────────
print("=== MATRIKS KORELASI PEARSON ===")
print(df.corr(method='pearson').round(3))

# ── Uji signifikansi korelasi ────────────────────
r, p = stats.pearsonr(df['jam_belajar'], df['nilai_uts'])
print(f"\n[Jam Belajar ↔ Nilai UTS]")
print(f"r = {r:.3f}, p-value = {p:.4f}, R² = {r**2:.3f}")
if p < 0.05:
    print(f"→ Korelasi SIGNIFIKAN secara statistik (α=0.05)")

# ── Spearman untuk data dengan potensi outlier ───
r_sp, p_sp = stats.spearmanr(df['jam_belajar'], df['nilai_uts'])
print(f"\nSpearman rho = {r_sp:.3f} (untuk perbandingan)")

# ── Temukan pasangan korelasi tertinggi ──────────
corr_matrix = df.corr()
pairs = []
cols = corr_matrix.columns
for i in range(len(cols)):
    for j in range(i+1, len(cols)):
        pairs.append((cols[i], cols[j], corr_matrix.iloc[i,j]))
pairs_df = pd.DataFrame(pairs, columns=['var1','var2','r'])
pairs_df = pairs_df.reindex(pairs_df['r'].abs().sort_values(ascending=False).index)
print("\n=== PASANGAN KORELASI DIURUTKAN ===")
print(pairs_df.round(3).to_string(index=False))
📤 OUTPUT
=== MATRIKS KORELASI PEARSON ===
             jam_belajar  nilai_uts  jam_hp  kehadiran
jam_belajar        1.000      0.906  -0.792      0.814
nilai_uts          0.906      1.000  -0.720      0.732
jam_hp            -0.792     -0.720   1.000     -0.602
kehadiran          0.814      0.732  -0.602      1.000

[Jam Belajar ↔ Nilai UTS]
r = 0.906, p-value = 0.0000, R² = 0.821
→ Korelasi SIGNIFIKAN secara statistik (α=0.05)

Spearman rho = 0.893 (untuk perbandingan)

=== PASANGAN KORELASI DIURUTKAN ===
      var1       var2      r
jam_belajar  nilai_uts  0.906   ← terkuat positif
jam_belajar     jam_hp -0.792   ← trade-off belajar vs HP
jam_belajar  kehadiran  0.814
  nilai_uts     jam_hp -0.720
  nilai_uts  kehadiran  0.732
     jam_hp  kehadiran -0.602

Uji Pemahaman Sesi 11

🧩PERTANYAAN 1 — INTERPRETASI r
Peneliti menemukan korelasi r = −0.82 antara "suhu udara" dan "penjualan jaket". Pernyataan mana yang PALING TEPAT?
Benar! B. Tanda negatif menunjukkan arah hubungan (suhu naik → penjualan turun), bukan kelemahannya. |r| = 0.82 tergolong kuat. R² = 0.82² = 0.67 artinya 67% variansi penjualan jaket bisa dijelaskan oleh suhu. Pilihan C keliru karena korelasi tidak membuktikan kausalitas. Pilihan D keliru — r bukan persentase perubahan langsung.
🧩PERTANYAAN 2 — METODE
Dataset peringkat kepuasan mahasiswa (1=Sangat Tidak Puas sampai 5=Sangat Puas) vs nilai IPK. Metode korelasi mana yang PALING TEPAT?
Benar! B. Skala kepuasan 1–5 adalah ordinal — jarak antara 1 dan 2 tidak harus sama dengan jarak antara 4 dan 5. Pearson mengasumsikan data numerik kontinu dengan jarak setara. Spearman bekerja berdasarkan ranking, cocok untuk data ordinal. Cramér's V untuk kategorik-kategorik, bukan ordinal-numerik.
🧩PERTANYAAN 3 — KAUSALITAS
Ditemukan bahwa jumlah buku di rumah berkorelasi kuat (r = 0.76) dengan nilai akademik anak. Kesimpulan mana yang SALAH?
Benar (yang salah) adalah C! Ini klasik korelasi ≠ kausalitas. Mungkin keluarga dengan pendidikan tinggi cenderung punya lebih banyak buku DAN lebih memperhatikan akademik anak — bukan buku itu sendiri yang menyebabkan nilai tinggi. Untuk membuktikan kausalitas, dibutuhkan eksperimen terkontrol (memberikan buku secara acak ke kelompok berbeda) dan mengontrol variabel-variabel lain.
📋 Ringkasan Sesi 11