Ana içeriğe geç

R'da Ki-Kare Testi: Eksiksiz Rehber

R'da chisq.test() fonksiyonunu kullanarak çapraz tablo oluşturmayı ve ki-kare testleri yapmayı öğrenin. Pratik uygulamaları keşfedin ve sonuçları güvenle yorumlayın.
· 8 dk. oku

Yapay Zeka ile Keşfedin

Verileri analiz etmeyi ve yorumlamayı bilmek, veri profesyonelleri için paha biçilmez bir beceridir. Farklı amaçlarla kullanılan pek çok istatistiksel test vardır. Ki-kare testi, belirli bir bağlamda yaygın olarak kullanılan bir testtir: kategorik değişkenler arasındaki ilişkileri belirlemeniz gerektiğinde. Bu, araştırmacıların sıkça ihtiyaç duyduğu bir bilgidir ve bu nedenle ki-kare testi en yaygın kullanılan istatistiksel testlerden biridir.

Bu eğitim, ki-kare testini, türlerini ve R programlama dilini kullanarak nasıl uygulanacağını tanıtır. Bu rehberin sonunda, ki-kare testini kendi verilerinize güvenle uygulayacak ve sonuçları yorumlayacak bilgi ve becerilere sahip olacaksınız.

R programlama dilinde yeniyseniz, uygulamalı veri analizi örnekleriyle dili tanımak için başlangıç seviyesine uygun R ile Veri Analisti kariyer yoluna göz atmak isteyebilirsiniz.

Temel Adımlar: R'da Ki-Kare Testi Nasıl Yapılır

R'da ki-kare testi yapmak için şu adımları izleyin:

  • Adım 1: Verinizi bir çapraz tablo (contingency table) formatında hazırlayın.

  • Adım 2: Ki-kare testini uygulamak için chisq.test() fonksiyonunu kullanın.

İşte örnek verilerle bunu gösteren hızlı bir örnek:

# Step 1: Creating a contingency table
data <- matrix(c(10, 20, 30, 40), nrow = 2)

# Step 2: Applying the chi-square test function
result <- chisq.test(data)

# Viewing the result
print(result)

Bu kod parçası 2x2 bir çapraz tablo oluşturur ve ki-kare testini uygular. Sonuç, test istatistiğini, serbestlik derecelerini ve p-değerini gösterir.

Ki-Kare Testi Nedir?

Ki-kare testi, kategorik değişkenler arasında anlamlı bir ilişki olup olmadığını belirlemek için kullanılan bir istatistiksel testtir. Farklı kategorilerde gözlenen frekansları, değişkenler arasında ilişki olmadığı varsayımı altında beklenen frekanslarla karşılaştırır.

Ki-kare testlerinin türleri

İki ana ki-kare testi türü vardır:

  1. Bağımsızlık için Ki-Kare Testi: Değişkenlerin bağımsız olup olmadığını ya da aralarında bir ilişki bulunup bulunmadığını belirlemeye yardımcı olur. Örneğin, cinsiyetin oy tercihlerini etkileyip etkilemediğini merak edebilirsiniz.
  2. Uygunluk (Goodness of Fit) için Ki-Kare Testi: Bu test, örnek verinin bir ana kitle dağılımına uyup uymadığını kontrol eder. Örneğin, bir zarın adil olup olmadığını, her yüzün gözlenen frekansını zar adil olsaydı beklenen frekansla karşılaştırarak test edebilirsiniz.

Ki-kare testinin varsayımları

Ki-kare testinin geçerliliğini sağlamak için bazı varsayımların karşılanması gerekir:

  • Veriler sıklıklar ya da olay sayımları şeklinde olmalıdır.
  • Kategoriler birbirini dışlamalıdır.
  • Bağımsızlık için ki-kare testinde, her hücrede beklenen frekans en az 5 olmalıdır.
  • Uygunluk testinde, beklenen frekanslar en az 1 olmalı ve beklenen frekansların en fazla %20'si 5'ten küçük olmalıdır.

Ki-kare testlerinin pratik uygulamaları

Ki-kare testleri, özellikle kategorik değişkenlerin bağımsızlığına ilişkin hipotezleri test etmek için, akademide ve endüstride yaygın olarak kullanılır. Bu pratik uygulamalardan bazıları şunlardır:

  • Pazar Araştırması: Bazı uygulamalar arasında, bir ürüne yönelik müşteri tercihlerinin farklı yaş grupları ve gelir düzeyleri arasında değişip değişmediğini analiz etmek veya farklı pazarlama kampanyalarının demografik segmentlerde eşit derecede etkili olup olmadığını belirlemek yer alır.
  • Tıbbi Araştırma: Yaygın kullanım alanları arasında yaşam tarzı faktörleri (örn. sigara, egzersiz) ile hastalık görülme sıklığı (örn. akciğer kanseri, kalp hastalığı) arasındaki ilişkinin incelenmesi veya klinik deneylerde farklı tedavi gruplarının farklı iyileşme oranları gösterip göstermediğinin değerlendirilmesi bulunur.
  • Kalite Kontrol: Ürün kusurlarının üretim sürecinden veya belirli üretim hatlarından bağımsız olup olmadığını incelemek ve farklı tedarikçilerin ürün kalitesini karşılaştırarak kusur oranlarında anlamlı bir fark olup olmadığını belirlemek için sıklıkla kullanılır.
  • Eğitim: Farklı okullardan gelen öğrenciler veya farklı öğretim yöntemleri arasında geçme oranlarında anlamlı bir fark olup olmadığını belirlemek ve yeni bir müfredatın uygulanmasının öğrencilerin dersler genelindeki performansını iyileştirip iyileştirmediğini değerlendirmek için sıkça kullanılır.

Bunların, akademi ve endüstrideki birçok uygulamadan yalnızca bazıları olduğunu ve diğer alanlara da genişletilebileceğini belirtmek gerekir.

R'da Ki-Kare Testi Uygulama: Bir Örnek

Ki-kare testlerini öğrenmenin en iyi yolu, testi bir veri kümesine uyguladığımız bir örnek üzerinden ilerlemektir. Kaggle'dan indirilebilen Nijerya'da Anemi Düzeyleri veri setini kullanacağız. Veri seti, 2018 Nijerya Demografi ve Sağlık Araştırmalarından (NDHS) gelmektedir. Annelerin yaşı ve sosyoekonomik faktörlerinin, Nijerya'nın 36 eyaleti ve Federal Başkent Bölgesi genelinde 0–59 aylık çocuklar arasındaki anemi düzeylerine etkisini inceler. 

Veri setini R'a yükleyelim ve veriyi daha iyi anlamak için bir örneğine bakalım. R'da CSV dosyalarını okumak için readr adlı bir paketi kurmanız gerekir.

# Load the necessary libraries
install.packages('readr')
library(readr)

# Load the dataset from the CSV file
dataset <- read_csv("children anemia.csv")

# Display the first few rows of the dataset
head(dataset)

# Rename a column
colnames(dataset)[colnames(dataset) == "Anemia level...8"] <- "Anemia level"

# Display the column names
colnames(dataset)

Veri setinin bir örneğine ek olarak, aşağıda veri setinin sütunlarını göreceğiz:

R'da bir veri kümesindeki sütunlarVeri setindeki sütunlar. Görsel: Yazar.

Bunlar arasından, aralarında ilişki olup olmadığını değerlendirmek için şu iki sütunu seçeceğiz.

  • En yüksek eğitim düzeyi: Bu sütun, annenin eğitimini “Eğitim yok”, “İlkokul”, “Ortaokul/Lise” ve “Yüksek” düzeylerinde sınıflandırır.

  • Anemi düzeyi: Bu sütun, çocuğun anemi düzeyini “Orta”, “Şiddetli” veya “Anemi yok” gibi kategorilerle belirtir.

Adım 1: Çapraz tablo oluşturma

Çapraz tablo (contingency table), iki veya daha fazla kategorik değişkenin değerlerinin kendi kategorileri arasında nasıl dağıldığını gösterir. 

Veri setinden seçtiğimiz iki sütunu alıp gerekli çapraz tablo formatına dönüştüreceğiz. Bu işlemler için yaygın kullanılan dplyr paketini kullanacağız.

# Install and load the package
install.packages('dplyr')

library(dplyr)

# Select the columns of interest
selected_data <- dataset %>% select(Highest educational level, Anemia level)

# Create a contingency table for Highest educational level and Anemia level
contingency_table <- table(selected_data$Highest educational level, selected_data$Anemia level)

# View the contingency table
print(contingency_table)

Ortaya çıkan çapraz tablo şu şekilde görünür:

R'da çapraz tablo

Çapraz tablo. Görsel: Yazar.

Adım 2: Ki-kare test fonksiyonunu uygulama

Veri setini istediğimiz çapraz tablo formatında elde ettiğimize göre, doğrudan chisq.test() fonksiyonunu uygulayabiliriz. Bu fonksiyonu çağırmak için herhangi bir kütüphane yüklemeye gerek yoktur; temel R paketi içinde mevcuttur.

# Perform chi-square test
chi_square_test <- chisq.test(contingency_table)

# View the results
print(chi_square_test)

Çıktı şu şekilde görünecektir:

R'da Pearson ki-kare testi sonuçları

Pearson ki-kare testi sonuçları. Görsel: Yazar.

Hepsi bu! İki basit adımda ki-kare testini uyguladık. Sırada, sonuçları nasıl yorumlayacağımız var.

Hipotez Kurma ve Sonuçları Yorumlama

Hipotezler, neyi test ettiğimizi açıkça ifade eder ve sonuçları yorumlamak için bir çerçeve sunar. Daha basit ifadeyle, kurduğumuz hipotez bize yanıtlanacak net bir soru verir ve ki-kare testi gözlenen verilerin iddiayı destekleyip desteklemediğini belirlememize yardımcı olur.

Ki-kare testi için hipotezler

Ki-kare testi yaparken genellikle iki hipotez kurarız:

  • Null Hipotez (H0): Test edilen iki kategorik değişken arasında ilişki olmadığına dair hipotezdir. Gözlenen farklılıkların gerçek bir ilişkiden değil, rastgelelikten kaynaklandığını varsayar.
  • Alternatif Hipotez (H1): İki değişken arasında anlamlı bir ilişki olduğunu ileri sürer. Gözlenen farklılıkların rastgeleliğe bağlı olmadığını ve değişkenler arasında bir ilişki bulunduğunu öne sürer.

Null ve alternatif hipotez kavramlarını, ki-kare testi uyguladığımız değişkenlere uyarlarsak hipotezleri şöyle formüle edebiliriz:

  • Null Hipotez (H0): Annenin en yüksek eğitim düzeyi ile çocuğun anemi düzeyi arasında ilişki yoktur. Bu, çocuğun anemi olma olasılığının annenin eğitim düzeyinden bağımsız olduğunu varsaydığımız anlamına gelir.
  • Alternatif Hipotez (H1): Annenin en yüksek eğitim düzeyi ile çocuğun anemi düzeyi arasında bir ilişki vardır. Bu, annenin eğitim düzeyinin çocuğun anemi olma olasılığını etkilediğini ima eder.

Ki-kare testinin çıktısını yorumlama

Artık hipotezi kurduğumuza göre, sonuçları hipotez bağlamında yorumlayabiliriz:

  • Ki-Kare İstatistiği (X-squared): Ki-kare test istatistiği 142.86'dır. Bu değer, çapraz tablodaki gözlenen frekanslar ile değişkenler arasında ilişki olmadığı varsayımı altındaki beklenen frekanslar arasındaki uyumsuzluğu ölçer.

  • Serbestlik Derecesi (df): Bu test için serbestlik derecesi 9'dur. (satır sayısı - 1) * (sütun sayısı - 1) olarak hesaplanır.

  • P-Değeri: P-değeri 2.2e-16'dan küçüktür ve son derece küçüktür. Bu p-değeri, null hipotez doğru olsaydı 142.86 kadar veya daha uç bir ki-kare istatistiğinin gözlemlenme olasılığını gösterir.

P-değeri yaygın anlamlılık düzeylerinden (ör. 0,05, 0,01 hatta 0,001) çok daha küçük olduğundan null hipotezi reddederiz. Bu, annenin eğitim düzeyi ile çocuğun anemi durumu arasında anlamlı bir ilişki olduğuna dair güçlü kanıt sağlar. Başka bir deyişle, ki-kare testi sonuçları, bir çocuğun anemi olma olasılığının annenin eğitim düzeyiyle anlamlı biçimde ilişkili olduğunu göstermektedir.

Ek Analiz: chisq.test() Çıktısından Değerlere Erişim

Hipotez testinin ötesinde, chisq.test() fonksiyonunun döndürdüğü nesneden bazı değerlere erişebiliriz:

Gözlenen sayımlar

Bunlar, her anne eğitim düzeyi için çocukların farklı anemi düzeylerindeki gerçek sayımlarını temsil eder. Gözlenen sayımlara aşağıdaki kod ile erişilebilir:

# Observed counts
observed_counts <- chi_square_test$observed

print(observed_counts)

Çıktı aşağıdaki gibidir:

Gözlenen sayımlar.

Gözlenen sayımlar. Görsel: Yazar.

Beklenen sayımlar

Bu sayımlar, annenin eğitim düzeyi ile çocuğun anemi durumu arasında ilişki olmadığı varsayımı altında hesaplanır. Beklenen sayımlara aşağıdaki kod ile erişilebilir:

# Expected counts
expected_counts <- chi_square_test$expected
print(round(expected_counts, 2))

Çıktı aşağıdaki gibidir:

Beklenen sayımlar.

Beklenen sayımlar. Görsel: Yazar.

Pearson artıklar

Bu artıklar, gözlenen ve beklenen sayımlar arasındaki en büyük tutarsızlıkları belirlemeye yardımcı olur ve hangi hücrelerin ki-kare istatistiğine en çok katkıda bulunduğunu gösterir. Pearson artıklarına aşağıdaki kod ile erişilebilir:

# Pearson residuals
pearson_residuals <- chi_square_test$residuals
print(round(pearson_residuals, 2))

Çıktı aşağıdaki gibidir:

Artıklar çıktısı.

Artıklar çıktısı. Görsel: Yazar.

Bu artık değerlerin ne anlama geldiğini anlamaya çalışalım:

  • Pozitif Artıklar: Pozitif artıklar, gözlenen sayımın beklenenden yüksek olduğunu gösterir. Örneğin, “Yüksek” eğitim grubunda “Anemik değil” için 5.96 artığı, yüksek eğitimli anneler arasında beklenenden anlamlı derecede daha fazla anemik olmayan çocuk olduğunu gösterir.

  • Negatif Artıklar: Negatif artıklar, gözlenen sayımın beklenenden düşük olduğunu gösterir. Örneğin, “Yüksek” eğitim grubunda “Orta” anemi için -5.74 artığı, yüksek eğitimli anneler arasında beklenenden anlamlı derecede daha az orta derecede anemik çocuk olduğunu düşündürür.

  • Büyük Artıklar: Büyük pozitif veya negatif artıklar, beklenene göre önemli bir sapmaya işaret eder. Bu hücreler ki-kare istatistiğine en çok katkıyı yapar. Örneğin, “Yüksek” eğitim grubunda “Anemik değil” için büyük pozitif artığın ve aynı grupta “Orta” anemi için büyük negatif artığın bulunması, annenin eğitim düzeyine bağlı olarak çocukların anemi düzeylerinde güçlü sapmalar olduğunu gösterir.

  • Küçük Artıklar: Küçük artıklar (0'a yakın) gözlenen sayımların beklenen sayımlara yakın olduğunu ve daha zayıf bir sapma olduğunu gösterir. Örneğin, “İlkokul” eğitimi için anemi düzeyleri boyunca artıkların nispeten küçük olması, bu grup için gözlenen ve beklenen sayımların daha yakın olduğunu gösterir.

Katkı diyagramı

Yukarıda çıkarılan değerlere dayanarak, her hücrenin ki-kare istatistiğine katkısı aşağıdaki kod ile hesaplanabilir ve yüzdeye dönüştürülebilir:

# Calculate contribution to chi-square statistic
contributions <- (observed_counts - expected_counts)^2 / expected_counts

# Calculate percentage contributions
total_chi_square <- chi_square_test$statistic
percentage_contributions <- 100 * contributions / total_chi_square

# Print percentage contributions
print("Percentage Contributions:")
print(round(percentage_contributions, 2))

Göreceğimiz çıktı aşağıdaki gibidir:

Yüzde katkılar.Yüzde katkılar. Görsel: Yazar.

 

Hesaplanan katkı bir ısı haritası olarak görselleştirilebilir. Bunu yapmak için, paketi kurup yükledikten sonra pheatmap adlı bir paketi kullanacağız.

# Install and load heatmap package
install.packages("pheatmap")
library(heatmap)

# Create heatmap for percentage contributions
pheatmap(percentage_contributions,
        display_numbers = TRUE,
        cluster_rows = FALSE,
        cluster_cols = FALSE,
        main = "Percentage Contribution to Chi-Square Statistic")

Ortaya çıkan çıktı aşağıdaki gibidir:

R'da ki-kare istatistiğine yüzde katkı ısı haritasıKi-kare istatistiğine yüzde katkı ısı haritası. Görsel: Yazar.

Yukarıdaki gibi katkıları gösteren bir ısı haritası, ki-kare testi sonuçlarına göre ilişki olduğunu bulduktan sonra, hangi tür ilişkilerin mevcut olduğunu anlamak için daha ileri analiz yapmayı seçerseniz faydalı olabilir.

Sonuç

Bu eğitimde ki-kare testini, türlerini ve dayandığı varsayımları tanıdınız. Ayrıca bir örnek üzerinden R'da testi uygulamayı, sonuçları yorumlamayı ve ek bir görselleştirme eklemeyi öğrendik. 

Ki-kare testleri, hipotez testlerinde ve genel olarak istatistikte yaygın olarak kullanılır. R ile veri analitiği ve istatistik bilgilerinizi pekiştirmek için şu kurslardan birini almayı düşünebilirsiniz:

Arunn Thevapalan

Yazar

Arunn Thevapalan

Kıdemli veri bilimcisi olarak, işletmelerin veriye dayalı daha iyi kararlar almasına yardımcı olmak için büyük ölçekli makine öğrenimi çözümleri tasarlıyor, geliştiriyor ve uyguluyorum. Veri bilimi yazarı olarak, öğrendiklerimi, kariyer tavsiyelerimi ve ayrıntılı uygulamalı eğitimleri paylaşıyorum.

Sıkça Sorulan Sorular

Ki-kare testinin amacı nedir?

Ki-kare testi, iki kategorik değişken arasında anlamlı bir ilişki olup olmadığını belirlemek için kullanılır.

Ki-kare testi küçük örneklemlerde kullanılabilir mi?

Genel olarak önerilmez; çünkü testin güvenilir sonuçlar vermesi için her hücrede beklenen frekansın en az 5 olması gerekir.

Ki-kare testinde Pearson artıkları neyi gösterir?

Pearson artıkları, çapraz tablodaki her hücrenin toplam ki-kare istatistiğine ne kadar katkıda bulunduğunu gösterir. Pozitif değerler beklenenden yüksek, negatif değerler ise beklenenden düşük gözlenen sayımları ifade eder.

R'da ki-kare testi için nasıl bir çapraz tablo oluştururum?

Kategorik değişkenlerinizden bir çapraz tablo oluşturmak için table() veya xtabs() fonksiyonlarını kullanın.

Verilerim ki-kare testinin varsayımlarını karşılamıyorsa ne yapmalıyım?

Örneklem küçükse veya beklenen frekanslar düşükse, bunun yerine Fisher'in Kesin Testini kullanmayı düşünün.

Konular

İlgili