Correlation for Categorical Variables in Python

Giriş

Veri analizi, günümüzün veri odaklı dünyasında en önemli araçlardan biridir. İster bir start-up’ta yazılım geliştirici olun, ister veri bilimci, verilerle çalışmanın temelini anlamak gereklidir. İstatistiksel analizlerin en önemli kısımlarından biri de değişkenler arasındaki ilişkiyi değerlendirmektir. Özellikle, kategorik değişkenlerin analizi, birçok alan için kritik olup bu yazıda bu konuya detaylıca değineceğiz. Kategorik değişkenlerde korelasyon, farklı veri türleri arasındaki ilişkileri anlamamıza yardımcı olur ve Python, bu tür analizleri yapmamızı sağlayan güçlü kütüphaneler sunar.

Kategorik değişkenler genellikle sınıflandırma, etiketleme veya belirli gruplar oluşturma amacıyla kullanılır. Örneğin, cinsiyet (erkek/kadın), eğitim durumu (lise/üniversite/yüksek lisans) veya ürün kategorileri gibi değişkenler kategoriktir. Bu tür değişkenler arasındaki ilişkiyi belirlemek, bizlere büyük verilerle çalışırken önemli içgörüler sunar. Şimdi, Python kullanarak kategorik değişkenler arasındaki bir korelasyonu nasıl analiz edebileceğimizi inceleyeceğiz.

Kategorik Değişkenler Arasındaki Korelasyon

Kategorik değişkenler arasındaki ilişkiyi anlamak için genel olarak iki temel yöntem kullanılır: Ki-kare testi ve Cramér’s V. Ki-kare testi, iki kategorik değişken arasındaki ilişkinin tesadüfi olup olmadığını değerlendirirken, Cramér’s V ise bu ilişkinin gücünü ölçmektedir. Python’da bu testleri uygulamak oldukça kolaydır ve genellikle pandas, scipy ve statsmodels gibi kütüphaneler yardımıyla yapılır.

Öncelikle, iki kategorik değişken arasındaki ilişkiyi incelemek için bir kontenjans tablosu oluşturabiliriz. Pandas kütüphanesini kullanarak, veri setimizdeki iki kategorik değişken arasındaki frekansları gösterecek bir tablo oluşturabiliriz. Bu tablonun ardından ki-kare testi ile bağımsızlık testimizi gerçekleştireceğiz. Eğer p-değerimiz, belirlenen anlamlılık seviyesinin altında ise, bu iki değişken arasındaki ilişkiyi önemsiz bulamayız.

Pandas ile Kontenjans Tablosu Oluşturma

Pandas kütüphanesi, veri analizi yapmak için mükemmel bir araçtır. Kontenjans tablosunu oluşturmak için öncelikle kütüphaneyi projemize dahil etmemiz gerekiyor. Dışarıdan veri setimizi yükledikten sonra, örneğin ‘cinsiyet’ ve ‘eğitim durumu’ gibi iki değişkenin arasındaki frekansları gösteren bir tablo oluşturabiliriz:

import pandas as pd

# Veri setini yükleme
veri = pd.read_csv('veri_seti.csv')

# Kontenjans tablosu oluşturma
kontenjans_tablosu = pd.crosstab(veri['cinsiyet'], veri['eğitim_durumu'])
print(kontenjans_tablosu)

Yukarıdaki kod, cinsiyet ve eğitim durumu arasındaki frekansları gösteren bir kontenjans tablosu oluşturacak ve sonuç ekranını basacaktır. Bu tabloyu inceledikten sonra, ki-kare testini uygulamak için gerekli bilgilere sahip olacağız.

Ki-kare Testi Uygulama

Kontenjans tablosumuzu oluşturduktan sonra, ki-kare testini gerçekleştirmek için SciPy kütüphanesinden faydalanıyoruz. Aşağıda görebileceğiniz gibi, bağımsızlık testi yapmak oldukça basittir:

from scipy.stats import chi2_contingency

# Ki-kare testini yapma
chi2, p, dof, expected = chi2_contingency(kontenjans_tablosu)
if p < 0.05:
    print('Cinsiyet ve eğitim durumu arasında istatistiksel olarak anlamlı bir ilişki var.')
else:
    print('Cinsiyet ve eğitim durumu arasında anlamlı bir ilişki yok.')

Yukarıdaki kodda, testin sonuçlarına göre iki değişken arasındaki ilişkinin istatistiksel olarak anlamlı olup olmadığını belirleyebiliyoruz. Eğer p değeri 0.05'ten küçükse, cinsiyet ve eğitim durumu arasındaki ilişki önemlidir.

Cramér's V İle Korelasyon Gücünü Değerlendirme

Cramér's V, iki kategorik değişken arasındaki ilişki ile ilgili daha fazla bilgi sunan bir ölçüdür. Bu ölçüm, 0 ile 1 arasında bir değer alır; 0, değişkenler arasında hiçbir ilişki olmadığını belirtirken, 1, tamamen bağımlı olduklarını gösterir. Bu yüzden, iki değişken arasındaki ilişkinin kuvvetini anlamak için oldukça faydalıdır.

Cramér's V hesaplamak için aşağıdaki adımları takip edebiliriz. İlk olarak, ki-kare değerimizi ve toplam örneklem sayımızı kullanarak Cramér's V'yi hesaplayabiliriz:

import numpy as np

# Cramer's V hesaplama
def cramers_v(confusion_matrix):
    chi2 = chi2_contingency(confusion_matrix)[0]
    n = np.sum(confusion_matrix)
    phi2 = chi2 / n
    r, k = confusion_matrix.shape
    phi2cor = max(0, phi2 - ((k-1)*(r-1))/(n-1))
    rcorr = r - 1
    kcorr = k - 1
    return np.sqrt(phi2cor / min((kcorr, rcorr)))

cv = cramers_v(kontenjans_tablosu)
print('Cramér’s V:', cv)

Bu kod parçası, Cramér's V değerini hesaplayarak yazdırır. Bu sayede, değişkenler arasındaki ilişkinin ne kadar güçlü olduğunu değerlendirmiş oluruz ve gerektiğinde daha ayrıntılı analizler yapabiliriz.

Sonuç

Kategorik değişkenler arasındaki ilişkiyi değerlendirmek, veri analizi sürecinde önemli bir adımdır. Bu yazıda, Python kullanarak bu tür ilişkileri nasıl analiz edeceğimizi gösterdik. Pandas ile kontenjans tabloları oluşturduktan sonra, ki-kare testi ve Cramér's V yardımıyla ilişkilerin önemi ve gücünü değerlendirdik.

Bu metodolojiyi kendi projelerinizde kullanarak, verileriniz arasındaki ilişkileri belirleyebilir ve daha derin içgörüler elde edebilirsiniz. Unutmayın, veri analizi sürekli bir öğrenme sürecidir; bu nedenle denemeler yapmaktan çekinmeyin ve yeni alanlara adım atarak bilgisini artırın. Python'un sunduğu olanaklardan yararlanarak, karmaşık konuları daha anlaşılır hale getirebilir, projelerinizde bu bilgileri uygulayabilirsiniz.

Sonuç olarak, veri analizi dünyasında yer almak için bu temel kavramları kavramak oldukça önemlidir. Gelişen teknolojilerle birlikte, Python gibi dillerin yeteneklerini kullanarak kendi analizlerinizi yapabilir, Python ekosistemindeki yeniliklerle güncel kalabilirsiniz. Haydi, şimdi kendi veri setlerinizle bu bilgileri uygulamaya koyun!

Scroll to Top