Traffine I/O

Bahasa Indonesia

Apa itu Kovariansi

Kovariansi adalah nilai numerik yang merepresentasikan hubungan antara dua variabel, XX dan YY. Kovariansi memberitahu kita apakah peningkatan pada satu variabel berkaitan dengan peningkatan atau penurunan pada variabel lainnya.

Jika kovariansi positif, maka menunjukkan bahwa kedua variabel cenderung meningkat atau menurun bersama-sama. Jika kovariansi negatif, maka artinya ketika satu variabel meningkat, variabel lainnya cenderung menurun, dan sebaliknya. Nilai kovariansi nol menunjukkan bahwa tidak ada hubungan linier antara variabel.

Representasi matematika kovariansi antara variabel XX dan YY diberikan oleh:

cov(X,Y)=i=1n(XiX)(YiY)n1 cov(X,Y) = \frac{\sum_{i=1}^{n}(X_i-\overline{X})(Y_i-\overline{Y})}{n-1}

Dimana:

  • cov(X,Y)cov(X,Y): Kovariansi antara variabel XX dan YY
  • XiX_i dan YiY_i: Titik data individu untuk variabel XX dan YY
  • X\overline{X} dan Y\overline{Y}: Rata-rata variabel XX dan YY
  • nn: Jumlah titik data

Kovariansi vs. Korelasi

Sementara kovariansi mengukur arah hubungan antara dua variabel, korelasi mengukur kekuatan dan arah hubungan tersebut. Korelasi adalah bentuk standar dari kovariansi, berkisar antara -1 dan 1, sedangkan kovariansi dapat mengambil nilai apa saja.

Koefisien korelasi, dilambangkan dengan rr, dihitung sebagai berikut:

r=cov(X,Y)σXσY r = \frac{cov(X,Y)}{\sigma_X\sigma_Y}

Dimana:

  • rr: Koefisien korelasi
  • cov(X,Y)cov(X,Y): Kovariansi antara variabel XX dan YY
  • σX\sigma_X dan σY\sigma_Y: Standar deviasi variabel XX dan YY

Menghitung Kovariansi dengan Python

Pada bab ini, saya akan menunjukkan cara menghitung kovariansi menggunakan Python, termasuk kasus kovariansi positif dan negatif. Kita juga akan membuat plot untuk memvisualisasikan hubungan antara variabel.

Pertama, mari impor library yang diperlukan.

python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

Selanjutnya, kita akan membuat fungsi untuk menghitung kovariansi antara dua variabel.

python
def covariance(x, y):
    x_mean = np.mean(x)
    y_mean = np.mean(y)
    n = len(x)
    cov = np.sum((x - x_mean) * (y - y_mean)) / (n - 1)
    return cov

Mari buat contoh dengan kovariansi positif.

python
# Generate sample data with positive covariance
np.random.seed(42)
x_positive = np.random.rand(50)
y_positive = x_positive * 3 + np.random.rand(50)

# Calculate the covariance
positive_cov = covariance(x_positive, y_positive)
print(f"Positive Covariance: {positive_cov}")

# Plot the data
plt.figure(figsize=(10, 6))
sns.set(style="whitegrid")
sns.scatterplot(x=x_positive, y=y_positive, s=100, color="blue", edgecolor="black")
plt.title("Positive Covariance Example", fontsize=20)
plt.xlabel("X", fontsize=16)
plt.ylabel("Y", fontsize=16)
plt.show()
Positive Covariance: 0.25587483932859534

Positive covariance

Pada contoh ini, kita dapat melihat bahwa ketika nilai X meningkat, nilai Y juga cenderung meningkat. Plot menunjukkan kovariansi positif antara variabel.

Selanjutnya, mari buat contoh dengan kovariansi negatif.

python
# Generate sample data with negative covariance
np.random.seed(42)
x_negative = np.random.rand(50)
y_negative = -x_negative * 3 + np.random.rand(50)

# Calculate the covariance
negative_cov = covariance(x_negative, y_negative)
print(f"Negative Covariance: {negative_cov}")

# Plot the data
plt.figure(figsize=(10, 6))
sns.set(style="whitegrid")
sns.scatterplot(x=x_negative, y=y_negative, s=100, color="red", edgecolor="black")
plt.title("Negative Covariance Example", fontsize=20)
plt.xlabel("X", fontsize=16)
plt.ylabel("Y", fontsize=16)
plt.show()
Negative Covariance: -0.2448461835209279

Negative covariance

Pada contoh ini, kita dapat melihat bahwa ketika nilai X meningkat, nilai Y cenderung menurun. Plot menunjukkan kovariansi negatif antara variabel.

Ryusei Kakujo

researchgatelinkedingithub

Weave the future of cities through data

Transportation modeling/ Urban planning/ Machine learning/ Computer science/ GIS