Korelasyon Katsayısı & Python Uygulaması

Asli Cerman
Machine Learning Turkiye
3 min readAug 8, 2021

Korelasyon da kovaryans gibi iki değişken arasındaki doğrusal ilişki ölçülerinden biridir ve r ile gösterilir. Farklı durumlar için farklı korelasyon katsayıları geliştirilmiştir. Doğrusal korelasyon Pearson korelasyon katsayısı kullanabiliriz. Kovaryans iki değişken arasındaki ilişkinin yönü hakkında bilgi verirken korelasyon katsayısı ilişkinin ne kadar kuvvetli olduğu hakkında bilgi verir.

Kovaryans değerlerinin sınırları yoktur ve değişkenlerin birimine bağlı olarak ölçülür. Korelasyon katsayısı ise incelenen değişkenlerin birimlerinden bağımsız olarak -1 ve 1 arasında değişir. Buna bağlı olarak korelasyon değişkenlerin birimlerinden etkilenmez iken kovaryans etkilenir.

Korelasyon katsayısı -1’ e yaklaşıyorsa negatif korelasyon, eğer 1’e yaklaşıyor ise pozitif korelasyon vardır. Korelasyon katsayısı -1 ve +1'e yaklaştıkça ilişkinin kuvveti artar, 0'a yaklaştığında ise ilişkinin kuvveti azalır. x ve y değişkenleri için korelasyon katsayısı aşağıdaki hesaplanır

Pearson Korelasyon Katsayısı Formülü

Korelasyon katsayısı kovaryans değerine bağlı olarak da bulunabilir. Aşağıdaki eşitliğe göre korelasyon katsayısı örneklem kovasyansının standartlaştırılmış bir uyarlamasıdır. (Çok Değişkenli İstatiksel Yöntemler — Prof. Dr. Reha Alpar.) Eşitliğin pay kısmı kovaryans formülünü, payda kısmı ise x ve y değişkenlerinin standart sapmalarının çarpımını vermektedir.

Bir değişkenin kendisi ile olan korelasyonun 1 olması nedeniyle değişkenler arasındaki korelasyon katsayılarını gösteren matrisin asal köşegenleri 1'e eşittir.

https://www.statisticshowto.com/correlation-matrix/

Korelasyon katsayısının örneklem kovaryansının standartlaştırılmış bir uyarlaması olduğunu söylemiştik. Dolayısıyla eğer elimizde bir kovaryans matrisi varsa kolaylıkla korelasyon katsayılarını hesaplayabiliriz.

Bir değişkenin kendisi ile yaptığı kovaryans, o değişkenin varyans değerine eşittir. Buna göre kovaryans matrisinin görünümü aşağıdaki gibi olacaktır.

Emma Freedman -Visual Explanation of Principal Component Analysis, Covariance, SVD

Örneğin x ve arasındaki korelasyonu bulmak için cov(x,y)’yi σ(x) ve σ(y)’nin çarpımına bölmek yeterli olacaktır.

Korelasyon Katsayılarının Nitelendirilmesi

Korelasyon katsayıları için beş sınıfta toplanmış iki farklı değerlendirme tablosu aşağıdaki gibidir. Bu değerler bize iki değişken arasındaki ilişkinin derecesini değerlendirebilmek için yardımcı olmaktadır

(Çok Değişkenli İstatiksel Yöntemler — Prof. Dr. Reha Alpar.)

Python Uygulaması

x ve y değişkenleri için korelasyon katsayısını formüldeki eşitliğe göre uygulayacak şekilde Python kodlarını oluşturalım.

x = [4, 8, 9, 6, 15, 2]
y = [1, 6, 7, 9, 2, 10]
def mean(data):
return reduce(lambda a, b: a + b, data) / len(data)
def cov(x,y):
if len(x) != len(y):
return
#değişkenlerin ortalamaya göre düzeltilmiş çarpımlar toplamı
sum_of = 0
for i,j in zip(x,y):
sum_of += (i - mean(x)) * (j - mean(y))
return sum_of/(len(x)-1)
cov(x,y)
def std(data):
sumofsquares = 0
for i in data:
#ortalamaya göre düzeltilmiş kareler toplamı
sumofsquares += (i - mean(data))**2
return np.sqrt(sumofsquares / (len(data)-1))
np.cov(x,y)[0][1] / (std(x)*std(y))-0.4532527086058939

Aynı hesaplamayı bir de numpy ile gerçekleştirelim.

np.corrcoef(x,y)array([[ 1.        , -0.45325271],
[-0.45325271, 1. ]])

Korelasyon matrisinin de simetrik olduğunu unutmayalım. Buna göre numpy sonucunu aşağıdaki gibi yorumlamalıyız.

corr(x,x)  corr(x,y)

corr(x,y) corr(y,y)
np.corrcoef(x,y)[0][1]
-0.4532527086058939

Umarım yardımcı olmuştur.

Kaynaklar

Çok Değişkenli İstatiksel Yöntemler — Prof. Dr. Reha Alpar

https://www.nagwa.com/en/explainers/143190760373/

--

--

Asli Cerman
Machine Learning Turkiye

Data Scientist at Tanı Pazarlama ve İletişim Hizmetleri A.Ş.