Python'da korelasyon nasıl hesaplanır


İki değişken arasındaki ilişkiyi ölçmenin bir yolu, iki değişken arasındaki doğrusal ilişkinin bir ölçüsü olan Pearson korelasyon katsayısını kullanmaktır . Her zaman -1 ile 1 arasında bir değer alır; burada:

  • -1, iki değişken arasında tamamen negatif bir doğrusal korelasyonu gösterir
  • 0, iki değişken arasında doğrusal bir korelasyon olmadığını gösterir
  • 1, iki değişken arasında mükemmel pozitif doğrusal bir korelasyonu gösterir

Korelasyon katsayısı sıfırdan ne kadar uzaksa, iki değişken arasındaki ilişki o kadar güçlüdür.

Bu eğitimde Python’da değişkenler arasındaki korelasyonun nasıl hesaplanacağı açıklanmaktadır.

Python’da korelasyon nasıl hesaplanır

Python’da iki değişken arasındaki korelasyonu hesaplamak için Numpy corrcoef() fonksiyonunu kullanabiliriz.

 import numpy as np

np.random.seed(100)

#create array of 50 random integers between 0 and 10
var1 = np.random.randint(0, 10, 50)

#create a positively correlated array with some random noise
var2 = var1 + np.random.normal(0, 10, 50)

#calculate the correlation between the two arrays
np.corrcoef(var1, var2)

[[ 1. 0.335]
[ 0.335 1. ]]

Bu iki değişken arasındaki korelasyon katsayısının 0,335 olduğu ve bunun pozitif bir korelasyon olduğu görülmektedir.

Varsayılan olarak, bu işlev bir korelasyon katsayıları matrisi üretir. Yalnızca iki değişken arasındaki korelasyon katsayısını döndürmek isteseydik aşağıdaki sözdizimini kullanabilirdik:

 np.corrcoef(var1, var2)[0,1]

0.335

Bu korelasyonun istatistiksel olarak anlamlı olup olmadığını test etmek için, Pearson korelasyon katsayısının yanı sıra iki kuyruklu p değerini de döndüren Scipy pearsonr() fonksiyonunu kullanarak Pearson korelasyon katsayısıyla ilişkili p değerini hesaplayabiliriz.

 from scipy.stats.stats import pearsonr

pearsonr(var1, var2)

(0.335, 0.017398)

Korelasyon katsayısı 0,335 ve iki kuyruklu p değeri 0,017’dir . Bu p değeri 0,05’ten küçük olduğundan, iki değişken arasında istatistiksel olarak anlamlı bir korelasyon olduğu sonucuna varabiliriz.

Pandas DataFrame’de birden fazla değişken arasındaki korelasyonu hesaplamak istiyorsanız .corr() işlevini kullanabilirsiniz.

 import pandas as pd

data = pd.DataFrame(np.random.randint(0, 10, size=(5, 3)), columns=['A', 'B', 'C'])
data

  ABC
0 8 0 9
1 4 0 7
2 9 6 8
3 1 8 1
4 8 0 8

#calculate correlation coefficients for all pairwise combinations
data.corr()

          ABC
A 1.000000 -0.775567 -0.493769
B -0.775567 1.000000 0.000000
C -0.493769 0.000000 1.000000

DataFrame’de yalnızca iki belirli değişken arasındaki korelasyonu hesaplamak istiyorsanız değişkenleri belirtebilirsiniz:

 data['A'].corr(data['B'])

-0.775567

Ek kaynaklar

Aşağıdaki eğitimlerde Python’da diğer genel görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

Python’da Korelasyon Matrisi Nasıl Oluşturulur
Python’da Spearman Sıra Korelasyonu Nasıl Hesaplanır?
Python’da Otokorelasyon Nasıl Hesaplanır?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir