Chapter Mean, Varians, dan Standar Deviasi merangkum satu variabel dalam satu angka. Pertanyaan analisis yang paling sering diajukan justru melibatkan dua variabel sekaligus: apakah siswa yang belajar lebih lama memperoleh nilai lebih tinggi? Scatter plot pada Section Visualisasi Data memperlihatkan polanya lewat sebaran titik, tetapi laporan statistik membutuhkan satu bilangan yang merangkum arah hubungan tersebut. Kovarians adalah bilangan pertama untuk kebutuhan itu — ia mengukur kecenderungan dua variabel bergerak bersama atau berlawanan di sekitar mean masing-masing. Chapter ini menghitung kovarians secara manual pada data enam siswa, membaca tanda dan besarannya, lalu membedah dua kelemahan yang membuat kovarians jarang berdiri sendiri.
Dari Deviasi Tunggal ke Deviasi Berpasangan #
Kovarians adalah kelanjutan langsung dari varians. Varians menghitung rata-rata kuadrat deviasi satu variabel terhadap mean-nya; kovarians mengganti kuadrat itu dengan perkalian deviasi dua variabel yang berpasangan. Ketika siswa belajar lebih lama dari rata-rata (x − x̄ positif) sekaligus memperoleh nilai di atas rata-rata (y − ȳ positif), hasil kalinya positif. Ketika jam belajarnya di bawah rata-rata dan nilainya juga di bawah rata-rata, kedua deviasi negatif sehingga hasil kalinya tetap positif. Barulah ketika satu variabel di atas rata-rata sementara yang lain di bawahnya, hasil kali menjadi negatif — sinyal bahwa kedua variabel bergerak berlawanan arah.
Data yang kita pakai adalah dataset yang sama dengan chapter Scatter Plot — enam siswa dengan jam belajar per hari dan nilai ulangan:
| Siswa | Jam belajar (x) | Nilai (y) |
|---|---|---|
| Budi | 2 | 65 |
| Siti | 3 | 70 |
| Dewi | 4 | 75 |
| Rina | 5 | 82 |
| Agus | 6 | 86 |
| Tono | 7 | 91 |
Mean kedua variabel dihitung seperti biasa: x̄ = 27/6 = 4.5 jam dan ȳ = 469/6 ≈ 78.17 (dibulatkan ke dua desimal). Seluruh pekerjaan kovarians bertumpu pada deviasi terhadap kedua mean ini.
Rumus Kovarians Sampel dan Populasi #
Mengikuti konvensi pembagi pada chapter Varians, kovarians pun punya dua versi:
cov(x, y) = Σ(x - x̄)(y - ȳ) / (n - 1) (kovarians sampel)
σxy = Σ(x - μ)(y - μ) / N (kovarians populasi)Sama seperti s², versi sampel memakai pembagi n − 1 karena mean x̄ dan ȳ dihitung dari data itu sendiri. Untuk meringkas penulisan, jumlah perkalian deviasi sering diberi nama Sxy, sehingga kovarians sampel cukup ditulis cov(x, y) = Sxy/(n − 1). Angka Sxy inilah yang dihitung baris demi baris pada tabel kerja berikut.
Contoh Manual: Tabel Kerja Enam Siswa #
Seluruh kolom dihitung dari deviasi terhadap x̄ = 4.5 dan ȳ = 78.17, lalu dibulatkan ke dua desimal untuk tampilan:
| x | y | x − x̄ | y − ȳ | (x − x̄)(y − ȳ) |
|---|---|---|---|---|
| 2 | 65 | −2.5 | −13.17 | 32.92 |
| 3 | 70 | −1.5 | −8.17 | 12.25 |
| 4 | 75 | −0.5 | −3.17 | 1.58 |
| 5 | 82 | 0.5 | 3.83 | 1.92 |
| 6 | 86 | 1.5 | 7.83 | 11.75 |
| 7 | 91 | 2.5 | 12.83 | 32.08 |
| Σ | 469 | 0 | 0 | 92.50 |
Dua sifat lama muncul kembali: kolom deviasi x menjumlah tepat nol dan kolom deviasi y juga menjumlah tepat nol — sifat mean yang kita buktikan pada chapter Mean. Perlu dicatat bahwa Σ(y − ȳ) yang tampak di tabel adalah hasil penjumlahan nilai yang sudah dibulatkan dua desimal; nilai persisnya memang nol, selisih tipis pada tampilan murni akibat pembulatan. Enam hasil kali di kolom terakhir seluruhnya positif karena setiap siswa berada pada sisi yang sama pada kedua variabel: siswa yang belajar di atas rata-rata juga bernilai di atas rata-rata, dan sebaliknya. Jumlahnya Sxy = 92.5, sehingga:
cov(x, y) = 92.5 / (6 - 1) = 18.5Kovarians sampel jam belajar dan nilai keenam siswa adalah 18.5. Versi populasi dengan pembagi N = 6 menghasilkan 92.5/6 ≈ 15.42 — angka yang berbeda sekitar 17 persen untuk data yang sama, pengingat bahwa pembagi harus selalu disebut saat melaporkan.
Membaca Tanda: Positif, Negatif, Hampir Nol #
Tiga kemungkinan tanda meringkas arah hubungan. Kovarians positif berarti kedua variabel cenderung bergerak bersama — di atas rata-rata bersama-sama, di bawah rata-rata bersama-sama — seperti jam belajar dan nilai kita. Kovarians negatif berarti keduanya berlawanan arah: pola yang lazim pada harga dan jumlah pembelian, harga naik maka pembeli berkurang. Kovarians nol berarti hasil kali positif dan negatif saling meniadakan — tidak ada hubungan linear yang terdeteksi.
Kata kunci pada kalimat terakhir adalah linear. Kovarians yang nol hanya menyatakan absennya pola garis lurus; pola melengkung tetap mungkin ada, dan kelemahan ini kita uji dengan contoh nyata pada dua bagian berikutnya.
Kelemahan Pertama: Satuan yang Melekat #
Berapa “besar” kovarians 18.5? Tidak ada yang bisa menjawab tanpa melihat satuannya. Kovarians adalah hasil kali deviasi jam dan deviasi poin, satuannya jam × poin — satuan yang tidak punya arti praktis. Masalahnya lebih serius daripada sekadar canggung: bayangkan variabel y bukan nilai ulangan melainkan pendapatan harian toko dalam rupiah. Deviasi y yang tadinya belasan poin menjadi puluhan ribu rupiah, sehingga kovariansnya membengkak jutaan kali lipat padahal pola hubungan kedua variabel sama-sama kuat. Besaran kovarians tidak bisa dibandingkan antar dataset dengan satuan berbeda, bahkan tidak bisa dibandingkan antar pasangan variabel dalam satu dataset. Yang bisa dibaca secara bermakna hanyalah tandanya.
Kelemahan Kedua: Hanya Membaca Hubungan Garis Lurus #
Kovarians nol bisa muncul dari pasangan variabel yang justru berkaitan sangat erat — asalkan kaitannya tidak berbentuk garis lurus. Contoh kecil dari pertanian: takaran pupuk terhadap pertambahan tinggi tanaman sawi (data buatan, dalam gram dan sentimeter):
| Pupuk (x) | Tumbuh (y) | x − x̄ | y − ȳ | (x − x̄)(y − ȳ) |
|---|---|---|---|---|
| 0 | 1 | −2 | −2 | 4 |
| 1 | 4 | −1 | 1 | −1 |
| 2 | 5 | 0 | 2 | 0 |
| 3 | 4 | 1 | 1 | 1 |
| 4 | 1 | 2 | −2 | −4 |
| Σ | 15 | 0 | 0 | 0 |
Pertumbuhan naik tajam saat pupuk ditambah dari 0 ke 2 gram, lalu menurun kembali saat pupuk berlebih — pola lengkung yang sangat wajar, karena kekurangan dan kelebihan pupuk sama-sama menghambat tanaman. Hubungan ini deterministik penuh — nilai y bisa dipastikan dari nilai x — tetapi Sxy = 0 membuat kovariansnya tepat nol. Korelasi Pearson pada data ini juga tepat nol karena memakai bahan baku Sxy yang sama; alat ini memang hanya dirancang untuk pola garis lurus.
Menghitung Kovarians dengan Python #
Module statistics menyediakan covariance() — versi sampel dengan pembagi n − 1, satu keluarga dengan variance() yang kita pakai pada Section Statistika Deskriptif:
import statistics
jam = [2, 3, 4, 5, 6, 7]
nilai = [65, 70, 75, 82, 86, 91]
n = 6
xbar = sum(jam) / n
ybar = sum(nilai) / n
Sxy = sum((x - xbar) * (y - ybar) for x, y in zip(jam, nilai))
cov_manual = Sxy / (n - 1)
pupuk = [0, 1, 2, 3, 4]
tumbuh = [1, 4, 5, 4, 1]
print(f"Sxy = {Sxy}")
print(f"kovarians sampel (manual) = {cov_manual}")
print(f"statistics.covariance = {statistics.covariance(jam, nilai)}")
print(f"kovarians pupuk vs tumbuh = {statistics.covariance(pupuk, tumbuh)}")
print(f"korelasi pupuk vs tumbuh = {statistics.correlation(pupuk, tumbuh):.4f}")Output yang Dihasilkan:
Sxy = 92.5
kovarians sampel (manual) = 18.5
statistics.covariance = 18.5
kovarians pupuk vs tumbuh = 0.0
korelasi pupuk vs tumbuh = 0.0000Mari kita bedah kode di atas:
- Baris 9 (
Sxy): penjumlahan hasil kali deviasi dikerjakan denganzipyang memasangkan setiap jam dengan nilainya — replika persis kolom terakhir tabel kerja, hasilnya 92.5. - Baris 10 (
cov_manual): Sxy dibagi n − 1 = 5, menghasilkan 18.5 seperti hitungan manual. - Baris 17 (
statistics.covariance): hasil function resmi sama persis dengan hitungan manual — pembagi versi sampel memang bawaan library ini. - Baris 18-19 (contoh lengkung): kovarians dan korelasi pupuk terhadap pertumbuhan keduanya tepat nol meskipun hubungan kedua variabel ini deterministik — bukti numerik kelemahan kedua di atas.
Kovarians berhasil merangkum arah hubungan dua variabel dalam satu angka, tetapi dua kelemahannya menuntut satu langkah tambahan: menormalkan besarannya agar bebas satuan dan sebanding antar dataset. Normalisasi itu dilakukan dengan membagi kovarians oleh hasil kali standar deviasi kedua variabel — dan hasilnya adalah koefisien korelasi Pearson, topik chapter berikutnya.