Python ile Tek Yönlü ANOVA Testi Nasıl Yapılır?

Giriş: ANOVA Nedir ve Neden Kullanılır?

Tek yönlü ANOVA (Analysis of Variance), bir veya daha fazla faktörün farklı gruplara etki eden ortalama değerlerini karşılaştırmak için kullanılan istatistiksel bir testtir. Özellikle bir bağımlı değişkenin, bir kategorik bağımsız değişkenin farklı seviyeleriyle nasıl değiştiğini analiz etmenin etkili bir yoludur. Örneğin, bir eğitim programının katılımcıların sınav notları üzerindeki etkisini değerlendirmek isteyebilirsiniz; bu durumda katılımcıların farklı gruplara ayrıldığını düşünerek bu grupların sınav notları arasında bir fark olup olmadığını belirlemek için tek yönlü ANOVA kullanılabilir.

ANOVA testi, gruplar arasındaki örtük varyansın yanı sıra dökümantasyon varyansını karşılaştırarak, grupların ortalamalarının birbirinden istatistiksel olarak anlamlı bir şekilde farklılık gösterip göstermediğini test eder. Eğer testin sonucu, gruplar arası farkların istatistiksel olarak anlamlı olduğunu gösteriyorsa, bu durumda hangi grubun ortalamasının farklı olduğunu belirlemek için daha fazla analiz yapılması gerekir. ANOVA’nın temel avantajlarından biri, birden fazla grubun aynı anda test edilmesine olanak tanımasıdır.

Bu yazıda, Python ile tek yönlü ANOVA testinin nasıl gerçekleştirileceğini adım adım inceleyeceğiz. Python’da bu işlemleri gerçekleştirmek için kullanabileceğimiz en popüler kütüphanelerden biri ise Scipy’dir. Scipy, istatistiksel analizlerin yanı sıra bilimsel hesaplamalar için de oldukça faydalı bir kütüphanedir.

Python ile Tek Yönlü ANOVA Testi Nasıl Yapılır?

Python’da tek yönlü ANOVA testini yapabilmek için öncelikle gerekli kütüphaneleri yüklememiz gerekiyor. Bu kütüphaneler arasında NumPy, Pandas ve Scipy bulunmaktadır. NumPy, sayısal hesaplamalar ve veri analizi için temel bir kütüphane iken, Pandas veri manipülasyonu ve analizi için güçlü bir araçtır. Scipy ise istatistiksel testler için geliştirilmiş fonksiyonları barındırır. Öncelikle bu kütüphaneleri yükleyelim:

import numpy as np
import pandas as pd
from scipy import stats

Yukarıdaki kod parçacığında, gerekli kütüphaneleri yükledik. Şimdi ise bir örnek veri seti oluşturalım. Bu veri seti, üç farklı grubun (A, B ve C) bir yarışmaya katılan yarışmacıların puanlarını temsil edecektir. Yarışmacıların puanları rastsal olarak oluşturulmuştur:

np.random.seed(0)
A = np.random.normal(70, 10, 30)  # Grup A'nın puanları
B = np.random.normal(75, 10, 30)  # Grup B'nin puanları
C = np.random.normal(80, 10, 30)  # Grup C'nin puanları

Yukarıdaki kod, her grup için 30 yarışmacının puanlarını normal dağılımla oluşturuyor. Burada A, B ve C gruplarının puanlarını karşılaştıracağız. Şimdi, bu verileri bir Pandas Dataframe’e dönüştürelim:

data = pd.DataFrame({ 'A': A, 'B': B, 'C': C })

Artık veri setimizi oluşturduğumuza göre, tek yönlü ANOVA testini gerçekleştirebiliriz. Scipy kütüphanesinin stats modülündeki f_oneway() fonksiyonunu kullanarak ANOVA testimizi yapacağız:

f_statistic, p_value = stats.f_oneway(data['A'], data['B'], data['C'])

Bu kod parçacığı, ANOVA testinin iki çıktısını döndürür: F istatistiği ve p-değeri. F istatistiği, gruplar arası varyans ile grupların içindeki varyansın karşılaştırılmasıdır. p-değeri ise, grupların ortalamalarının birbirleriyle anlamlı bir farklılık gösterip göstermediğine dair bir ölçüttür. p-değeri 0.05’ten küçükse, gruplar arasında istatistiksel olarak anlamlı bir fark olduğunu gösterir. Şimdi, p-değerimizi ve F istatistiğimizi yazdıralım:

print(f'F İstatistiği: {f_statistic}')
print(f'p-değeri: {p_value}')

Burada elde edilen F istatistiği ve p-değeri, gruplar arasındaki farkların istatistiksel anlamlılık düzeyini değerlendirmemizi sağlar. Eğer p-değeri 0.05’ten küçükse, bu grup ortalamalarının birbirinden farklı olduğunu kabul edebiliriz. Aksi takdirde, gruplar arasında anlamlı bir fark yoktur.

Sonuçları Yorumlamak ve Çözümlemek

ANOVA testinin sonucunda elde ettiğimiz p-değerinin yorumlanması oldukça basittir. Eğer p-değeri belirlediğimiz anlamlılık seviyesinin altında ise (genellikle 0.05), gruplar arasında istatistiksel olarak anlamlı bir fark olduğunu kabul ederiz. Bu durumda ilginç olan, hangi grupların birbirinden farklı olduğunu bulmaktır. Bunun için post hoc testler kullanılabilir. Post hoc testler, hangi grupların birbirleriyle anlamlı bir şekilde farklılık gösterdiğini belirlemek için kullanılır. En popüler post hoc testlerden biri Tukey HSD (Honest Significant Difference) testidir.

Tukey testi, birden fazla grup karşılaştırması yaptığımızda kullanılır ve farklı grupların ortalamaları arasındaki çift yönlü karşılaştırmaları yapmamıza olanak tanır. Tukey testini gerçekleştirmek için statsmodels kütüphanesini kullanabiliriz. Öncelikle bu kütüphaneyi yüklemek için aşağıdaki kodu çalıştırmalısınız:

!pip install statsmodels

Kütüphane yüklendikten sonra Tukey HSD testini uygulayabiliriz. Aşağıdaki kod, Tukey testini gerçekleştirir:

from statsmodels.stats.multicomp import pairwise_tukeyhsd

data_melted = pd.melt(data)

tukey_results = pairwise_tukeyhsd(data_melted['value'], data_melted['variable'])
print(tukey_results)

Bu kod, verileri uzun forma dönüştürmek için melt() fonksiyonunu kullanarak, her grup için anlamlılık sonuçlarını içeren bir tablo oluşturur. Çıktıda, her grup çifti arasındaki fark, p-değerleri ve ortalama farkını görebilirsiniz. Elde edilen sonuca göre hangi grupların birbirinden istatistiksel olarak anlamlı bir fark gösterdiğini yorumlayabilirsiniz.

Özet ve Uygulamalar

Bu yazıda, Python kullanarak tek yönlü ANOVA testinin nasıl gerçekleştirileceğini öğrendik. İlk olarak gerekli kütüphaneleri yükledik, ardından bir örnek veri seti oluşturarak testimizi uyguladık. Elde ettiğimiz F istatistiği ve p-değeri ile gruplar arası farklılıkları değerlendirdik. Son olarak, hangi grupların birbirleriyle anlamlı bir farklılık gösterdiğini belirlemek için Tukey HSD testini uyguladık.

Tek yönlü ANOVA testi, farklı gruplar arasındaki ortalama farklılıkları anlamak için güçlü bir araçtır. Veri bilişiminde, araştırmalarda veya deneysel çalışmalarda sıkça kullanılmaktadır. Bu yazıda öğrendiklerinizle birlikte, kendi veri setlerinizi analiz edebilir ve ANOVA testinin nasıl bir fayda sağladığını deneyimleyebilirsiniz.

Kazandığınız bu bilgilerle, istatistiksel anlamda daha derinlemesine analizler gerçekleştirmek, veri patrimonunuzu anlamak ve sonuçlarınızı daha etkili bir biçimde sunmak için güçlü bir temel oluşturabilirsiniz. Herhangi bir sorunuz olursa, yorum kısmında benimle iletişime geçmekten çekinmeyin!

Scroll to Top