Korelasi yang tinggi sering kali dibaca sebagai bukti bahwa salah satu variabel menyebabkan variabel lainnya, dan pembacaan itulah yang paling sering keliru dalam praktik analisis data. Topik ini membahas mengapa korelasi tidak dapat menjadi bukti kausalitas (causation) dengan sendirinya, menunjukkan mekanisme variabel perancu (confounding variable) melalui contoh klasik es krim dan insiden penyelaman, memverifikasinya dengan simulasi, lalu merangkum cara meredam korelasi palsu tersebut. Setelah topik ini, klaim yang lahir dari angka korelasi dapat diklasifikasikan sebatas bukti yang mendukungnya.
Korelasi es krim dan insiden penyelaman#
Catatan bulanan di banyak wilayah menunjukkan penjualan es krim dan jumlah insiden penyelaman naik turun bersama. Pola kemunculan bersama itu nyata dan dapat diukur, misalnya dengan koefisien korelasi yang tinggi antara kedua besaran. Membaca pola itu sebagai bukti bahwa makan es krim mendorong insiden penyelaman tentu tidak masuk akal, padahal angkanya sendiri tidak berbohong. Penjelasan yang masuk akal berada di luar kedua variabel tersebut, yaitu suhu udara yang tinggi pada musim panas mendorong lebih banyak orang berenang sekaligus lebih banyak es krim terjual. Diagram berikut merangkum pola tersebut.
Berdasarkan diagram itu, korelasi antara es krim dan insiden penyelaman tidak meleset, melainkan isinya yang tidak selesai. Angka r hanya menyatakan bahwa kedua besaran bergerak bersama, sedangkan pertanyaan sebab-akibat menuntut penjelasan mekanisme dan bukti bahwa tidak ada pendorong ketiga. Ketika variabel ketiga itu ditemukan dan pengaruhnya disisihkan, korelasi di antara kedua besaran aslinya menghilang.
Variabel perancu#
Variabel perancu adalah variabel yang memengaruhi kedua variabel yang sedang dikorelasikan sekaligus, sehingga menciptakan korelasi tanpa adanya sebab langsung di antara keduanya. Hubungan yang muncul dengan cara ini disebut korelasi palsu (spurious correlation) karena kuat secara angka tetapi kosong secara kausal. Perancu tidak selalu menciptakan korelasi yang melebih-lebihkan, karena variabel semacam ini juga dapat menyembunyikan hubungan yang sebenarnya ada atau bahkan membalik arahnya.
Ciri korelasi palsu biasanya dapat dikenali dari tiga hal. Angkanya kuat, ceritanya terdengar masuk akal secara sekilas, tetapi hubungannya menghilang begitu variabel ketiga dikendalikan. Contoh lain yang lazim dikutip antara lain korelasi antara jumlah pemadam kebakaran dan kerugian kebakaran, yang keduanya didorong besar kecilnya kebakaran itu sendiri. Pada semua contoh tersebut, penalaran yang berhenti di korelasi menghasilkan kesimpulan yang bertolak belakang dengan kenyataan.
Simulasi korelasi palsu#
Mekanisme perancu dapat direproduksi pada data buatan yang sebab-musababnya diketahui pasti. Simulasi berikut membuat data satu tahun berupa suhu harian, kemudian menghasilkan penjualan es krim dan jumlah insiden penyelaman masing-masing dari suhu itu ditambah derau tersendiri. Bentuk hubungannya dibuat linear terhadap suhu, dan derau masing-masing diatur tetap agar pola korelasinya tidak bergantung pada kebetulan. Kedua besaran tersebut sengaja tidak diberi hubungan langsung apa pun, sehingga korelasi apa pun yang muncul pasti berasal dari suhu.
import numpy as np
rng = np.random.default_rng(42)
# Suhu mendorong dua besaran tanpa hubungan langsung di antara keduanya
n = 365
suhu = rng.normal(28, 2.5, size=n) # suhu harian (derajat Celsius)
es_krim = 120 + 18 * (suhu - 28) + rng.normal(0, 15, size=n) # porsi es krim terjual
penyelam = 4 + 1.6 * (suhu - 28) + rng.normal(0, 3, size=n) # insiden penyelaman harian
r_mentah = np.corrcoef(es_krim, penyelam)[0, 1]
print(f"r es krim vs penyelaman (data mentah) : {r_mentah:.4f}")
# Kontrol suhu: sisihkan pengaruh suhu dari masing-masing besaran,
# lalu hitung korelasi sisa (residual) keduanya
c_es = np.polyfit(suhu, es_krim, 1)
c_pn = np.polyfit(suhu, penyelam, 1)
sisa_es = es_krim - (c_es[0] * suhu + c_es[1])
sisa_pn = penyelam - (c_pn[0] * suhu + c_pn[1])
r_terkontrol = np.corrcoef(sisa_es, sisa_pn)[0, 1]
print(f"r sisa setelah suhu disisihkan : {r_terkontrol:.4f}")r es krim vs penyelaman (data mentah) : 0.7387
r sisa setelah suhu disisihkan : -0.0183Pada data mentah, r sebesar 0.7387 terbaca sebagai hubungan positif yang kuat, seolah-olah es krim dan insiden penyelaman benar-benar berkaitan. Setelah pengaruh suhu disisihkan dari masing-masing besaran, yaitu dengan menyimpan sisa perhitungannya setelah tren terhadap suhu dikeluarkan, korelasinya tinggal -0.0183 atau praktis nol. Korelasi yang tampak kuat tersebut ternyata seluruhnya dipinjam dari pendorong yang sama. Ketika pendorongnya diketahui dan dikeluarkan, tidak ada hubungan yang tersisa di antara keduanya, dan pola itulah ciri korelasi palsu.
Meredam korelasi palsu#
Cara pertama meredam korelasi palsu adalah mengukur dan mengendalikan perancunya. Variabel yang secara wajar dapat mendorong kedua besaran dicatat selama pengumpulan data, kemudian perbandingan dilakukan di dalam kelompok yang homogen atau dengan menyisihkan pengaruh variabel tersebut secara statistik. Kunci langkah ini adalah mencatat perancu yang mungkin sejak rancangan pengumpulan data, karena variabel yang tidak terukur tidak dapat dikendalikan kemudian. Simulasi di atas memperagakan langkah kedua, yaitu menghitung korelasi dari sisa data setelah pengaruh suhu dikeluarkan, dan teknik yang sama dipakai pada model regresi yang lebih lengkap.
Cara kedua adalah mengacak. Pada rancangan eksperimen, penugasan perlakuan yang diacak memutus hubungan antara perlakuan dan variabel perancu, karena faktor latar tersebar merata di semua kelompok secara otomatis. Pengacakan hanya mungkin pada eksperimen yang dapat dikendalikan, sedangkan data observasional, sebagaimana data es krim dan penyelaman, tidak menawarkannya. Karena itu, kesimpulan dari data observasional selalu disertai daftar perancu yang mungkin dan belum terukur, agar batas interpretasinya jujur.
Kesalahan umum#
Kesalahan pertama adalah melaporkan korelasi dengan bahasa kausal. Kalimat seperti “x menaikkan y” tidak didukung oleh angka korelasi apa pun tanpa bukti mekanisme dan kendali perancu. Perbaikannya adalah menyusun kalimat sebatas buktinya, misalnya “x dan y bergerak bersama dengan r sebesar 0.74”, lalu menyebutkan perancu yang mungkin secara terpisah.
Kesalahan kedua adalah menganggap pengendalian satu variabel cukup untuk menutup semua celah. Perancu yang tidak terukur tetap dapat mendorong kedua besaran, sehingga korelasi yang bertahan setelah satu perancu dikendalikan belum tentu kausal. Perbaikannya adalah menghitung korelasi yang tersisa sebagai bukti parsial, bukan bukti final, dan memprioritaskan pengacakan apabila rancangan eksperimen memungkinkan.
Kesalahan ketiga adalah mengasumsikan arah sebab dari korelasinya. r antara x dan y sama nilainya dengan r antara y dan x, sehingga angka tersebut tidak memuat informasi arah sama sekali. Perbaikannya adalah menggali arah dari rancangan pengumpulan data dan pengetahuan tentang mekanismenya, misalnya urutan waktu kejadian, bukan dari besarnya korelasi.
Ringkasan#
- Korelasi yang tinggi dapat muncul tanpa sebab langsung ketika satu variabel perancu mendorong kedua variabel yang dikorelasikan.
- Simulasi es krim dan penyelaman menghasilkan r 0.7387 tanpa hubungan langsung, dan korelasi itu hilang menjadi -0.0183 setelah pengaruh suhu disisihkan.
- Perancu diredam dengan pengukuran, pengendalian statistik, dan pengacakan pada rancangan eksperimen.
- Klaim kausal memerlukan mekanisme dan bukti kendali perancu, sehingga angka korelasi hanya mendukung pernyataan kemunculan bersama.
Referensi#
- OpenIntro Statistics — OpenIntro — Bab korelasi pada buku ini membahas korelasi palsu, variabel perancu, dan batas interpretasinya.
- NIST/SEMATECH e-Handbook of Statistical Methods — NIST — Pegangan teknik statistika terapan yang mencakup pengendalian faktor latar pada analisis.
- numpy.corrcoef — NumPy — Dokumentasi fungsi korelasi Pearson yang dipakai pada simulasi.
- numpy.polyfit — NumPy — Dokumentasi fungsi penyesuaian garis yang dipakai untuk menyisihkan pengaruh suhu.