Sayım verileri için poisson regresyonuna yumuşak bir giriş


Regresyon, bir veya daha fazla yordayıcı değişken ile bir yanıt değişkeni arasındaki ilişkiyi belirlemek için kullanılabilen istatistiksel bir yöntemdir.

Poisson regresyonu, yanıt değişkeninin “sayım verileri” olduğu özel bir regresyon türüdür. Aşağıdaki örnekler Poisson regresyonunun kullanılabileceği durumları göstermektedir:

Örnek 1: Poisson regresyonu, belirli bir üniversite programından mezun olan öğrenci sayısını, programa girdiklerindeki genel not ortalamalarına ve cinsiyetlerine göre incelemek için kullanılabilir. Bu durumda “mezun olan öğrenci sayısı” yanıt değişkeni, “programa giriş not ortalaması” sürekli yordayıcı değişken ve “cinsiyet” ise kategorik yordayıcı değişkendir.

Örnek 2: Poisson regresyonu, hava koşullarına (“güneşli”, “bulutlu”, “yağmurlu”) ve şehirde özel bir olayın gerçekleşip gerçekleşmediğine (“Evet) bağlı olarak belirli bir kavşaktaki trafik kazası sayısını incelemek için kullanılabilir. ya da hayır”). Bu durumda, “yol kazası sayısı” yanıt değişkeni iken, “hava koşulları” ve “özel olay” kategorik yordayıcı değişkenlerdir.

Örnek 3: Poisson regresyonu, günün saatine, haftanın gününe ve bir satışın gerçekleşip gerçekleşmediğine (“Evet veya hayır) dayalı olarak bir mağazada sırada bekleyen kişi sayısını incelemek için kullanılabilir.” .”). Bu durumda, “sıradaki önünüzdeki kişi sayısı” yanıt değişkenidir, “günün saati” ve “haftanın günü” her ikisi de sürekli yordayıcı değişkenlerdir ve “satış devam ediyor” kategorik yordayıcı değişkendir.

Örnek 4: Poisson regresyonu, hava koşullarına (“güneşli”, “bulutlu”, “yağmurlu”) ve parkur zorluğuna (“kolay”, “yağmurlu”) dayalı olarak bir triatlonu tamamlayan kişi sayısını incelemek için kullanılabilir. orta”, “zor”). Bu durumda, “bitiren kişi sayısı” yanıt değişkeni iken, “hava koşulları” ve “parkurun zorluğu” kategorik yordayıcı değişkenlerdir.

Poisson regresyonunun gerçekleştirilmesi, hangi yordayıcı değişkenlerin (varsa) yanıt değişkeni üzerinde istatistiksel olarak anlamlı bir etkiye sahip olduğunu görmenize olanak tanır.

Sürekli yordayıcı değişkenler için, o değişkendeki bir birimlik artışın veya azalışın, yanıt değişkeninin sayılarındaki yüzde değişimle nasıl ilişkili olduğunu yorumlayabileceksiniz (örneğin, “GPA’daki her bir birimlik ek puan artışı, yanıt değişkeninde %12,5’lik bir artış).

Kategorik yordayıcı değişkenler için, bir grubun sayımlarındaki (örneğin, güneşli bir günde bir triatlonu tamamlayan kişi sayısı) diğer bir gruba (örneğin, bir triatlonu tamamlayan kişi sayısı) kıyasla yüzde değişimini yorumlayabileceksiniz. yağmurlu havalarda triatlon).

Poisson regresyonunun varsayımları

Poisson regresyonunu gerçekleştirmeden önce, Poisson regresyon sonuçlarımızın geçerli olması için aşağıdaki varsayımların karşılandığından emin olmalıyız:

Varsayım 1: Yanıt değişkeni sayım verileridir. Geleneksel doğrusal regresyonda yanıt değişkeni sürekli verilerdir. Ancak Poisson regresyonunu kullanabilmek için yanıt değişkenimizin 0 veya daha büyük tamsayılar (örneğin 0, 1, 2, 14, 34, 49, 200 vb.) içeren sayım verilerinden oluşması gerekir. Yanıt değişkenimiz negatif değerler içeremez.

Hipotez 2: Gözlemler bağımsızdır. Veri setindeki her gözlem birbirinden bağımsız olmalıdır. Bu, bir gözlemin başka bir gözlem hakkında bilgi sağlayamayacağı anlamına gelir.

Hipotez 3: Hesapların dağılımı Poisson dağılımını takip etmektedir. Sonuç olarak gözlemlenen ve beklenen sayımların benzer olması gerekir. Bunu test etmenin basit bir yolu, beklenen ve gözlemlenen sayıların grafiğini çıkarmak ve benzer olup olmadıklarına bakmaktır.

Varsayım 4: Modelin ortalaması ve varyansı eşittir. Bu, sayım dağılımının Poisson dağılımını takip ettiği varsayımından kaynaklanmaktadır. Poisson dağılımı için varyans ortalamayla aynı değere sahiptir. Bu varsayım karşılanırsa, o zaman eşit dağılıma sahip olursunuz. Ancak aşırı dağılım yaygın bir sorun olduğundan bu varsayım sıklıkla ihlal edilir.

Örnek: R’de Poisson regresyonu

Şimdi R’de Poisson regresyonunun nasıl gerçekleştirileceğine ilişkin bir örneği inceleyeceğiz.

Arka plan

Belirli bir ilçedeki bir lise beyzbol oyuncusunun okul bölümüne (“A”, “B” veya “C”) ve okul notuna bağlı olarak kaç burs aldığını bilmek istediğimizi varsayalım. üniversiteye giriş sınavı (0 ile 100 arasında ölçülür). ).

Aşağıdaki kod, 100 beyzbol oyuncusuna ilişkin verileri içeren, üzerinde çalışacağımız veri kümesini oluşturur:

 #make this example reproducible
set.seed(1)

#create dataset
data <- data.frame(offers = c(rep(0, 50), rep(1, 30), rep(2, 10), rep(3, 7), rep(4, 3)),
                   division = sample(c("A", "B", "C"), 100, replace = TRUE),
                   exam = c(runif(50, 60, 80), runif(30, 65, 95), runif(20, 75, 95)))

Verileri anlama

Poisson regresyon modelini bu veri kümesine gerçekten yerleştirmeden önce, veri kümesinin ilk birkaç satırını görselleştirerek ve özet istatistikleri çalıştırmak için dplyr kitaplığını kullanarak verileri daha iyi anlayabiliriz:

 #view dimensions of dataset
dim(data)

#[1] 100 3

#view first six lines of dataset
head(data)

# offers division exam
#1 0 A 73.09448
#2 0 B 67.06395
#3 0 B 65.40520
#4 0 C 79.85368
#5 0 A 72.66987
#6 0 C 64.26416

#view summary of each variable in dataset
summary(data)

# offers division exam      
# Min. :0.00 To:27 Min. :60.26  
# 1st Qu.:0.00 B:38 1st Qu.:69.86  
# Median: 0.50 C:35 Median: 75.08  
# Mean:0.83 Mean:76.43  
# 3rd Qu.:1.00 3rd Qu.:82.87  
# Max. :4.00 Max. :93.87  

#view mean exam score by number of offers
library(dplyr)
data %>%
  group_by (offers) %>%
  summarize (mean_exam = mean(exam))

# A tibble: 5 x 2
# offers mean_exam
#        
#1 0 70.0
#2 1 80.8
#3 2 86.8
#4 3 83.9
#5 4 87.9

Yukarıdaki sonuçtan şunları gözlemleyebiliriz:

  • Veri setinde 100 satır ve 3 sütun bulunmaktadır
  • Bir oyuncunun aldığı minimum teklif sayısı sıfır, maksimum dört ve ortalama 0,83 oldu.
  • Bu veri setinde “A” grubundan 27, “B” grubundan 38 ve “C” grubundan 35 oyuncu yer alıyor.
  • Sınavdan alınacak minimum puan 60,26, maksimum puan 93,87, ortalama ise 76,43 oldu.
  • Genel olarak, daha fazla burs teklifi alan oyuncuların sınav puanları daha yüksek olma eğilimindedir (örneğin, hiçbir teklif almayan oyuncuların ortalama sınav puanı 70,0 ve 4 teklif alan oyuncuların ortalama inceleme puanı 87,9’dur).

Ayrıca oyuncular tarafından alınan tekliflerin sayısını bölüme göre görselleştirmek için bir histogram da oluşturabiliriz:

 #load ggplot2 package
library(ggplot2)

#create histogram
ggplot(data, aes(offers, fill = division)) +
  geom_histogram(binwidth=.5, position="dodge")

Çoğu oyuncunun ya hiç teklif almadığını ya da sadece bir teklif aldığını görüyoruz. Bu, Poisson dağılımlarını izleyen veri kümelerinin tipik bir örneğidir: Yanıt değerlerinin büyük bir kısmı sıfırdır.

Poisson regresyon modelinin uygulanması

Daha sonra glm() fonksiyonunu kullanarak ve model için family=”fish” kullanmak istediğimizi belirterek modeli ayarlayabiliriz:

 #fit the model
model <- glm(offers ~ division + exam, family = "fish" , data = data)

#view model output
summary(model)

#Call:
#glm(formula = offers ~ division + exam, family = "fish", data = data)
#
#Deviance Residuals: 
# Min 1Q Median 3Q Max  
#-1.2562 -0.8467 -0.5657 0.3846 2.5033  
#
#Coefficients:
#Estimate Std. Error z value Pr(>|z|)    
#(Intercept) -7.90602 1.13597 -6.960 3.41e-12 ***
#divisionB 0.17566 0.27257 0.644 0.519    
#divisionC -0.05251 0.27819 -0.189 0.850    
#exam 0.09548 0.01322 7.221 5.15e-13 ***
#---
#Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
#(Dispersion parameter for fish family taken to be 1)
#
# Null deviance: 138,069 on 99 degrees of freedom
#Residual deviance: 79,247 on 96 degrees of freedom
#AIC: 204.12
#
#Number of Fisher Scoring iterations: 5

Sonuçtan şunları gözlemleyebiliriz:

  • Poisson regresyon katsayıları, tahminlerin standart hatası, z puanları ve karşılık gelen p değerlerinin tümü sağlanmaktadır.
  • İnceleme katsayısı 0,09548’dir ; bu, incelemedeki bir birimlik artış için teklif sayısına ilişkin beklenen günlük sayısının 0,09548 olduğunu gösterir. Bunu yorumlamanın daha basit bir yolu üstel değeri almaktır, yani e 0,09548 = 1,10 . Bu, giriş sınavında kazanılan her ek puan için alınan teklif sayısında %10’luk bir artış olduğu anlamına gelir.
  • B Grubunun katsayısı 0,1756’dır , bu da B Grubundaki bir oyuncu için beklenen teklif sayısının A Grubundaki bir oyuncuya göre 0,1756 daha yüksek olduğunu gösterir. Bunu yorumlamanın daha basit bir yolu üslü değeri almaktır, yani e 0,1756 = 1.19 . Bu, B bölümündeki oyuncuların A bölümündeki oyunculara göre %19 daha fazla teklif aldığı anlamına gelir. Bu farkın istatistiksel olarak anlamlı olmadığını unutmayın (p = 0,519).
  • C Grubunun katsayısı -0,05251’dir ; bu, C Grubundaki bir oyuncu için teklif sayısına ilişkin beklenen günlük sayısının, A Grubundaki bir oyuncuya göre 0,05251 daha düşük olduğunu gösterir. Bunu yorumlamanın daha basit bir yolu, üstel değeri almaktır. yani e 0,05251 = 0,94’tür . Bu, C bölümündeki oyuncuların A bölümündeki oyunculara göre %6 daha az teklif aldığı anlamına gelir. Bu farkın istatistiksel olarak anlamlı olmadığını unutmayın (p = 850).

Model sapması hakkında da bilgi verilmektedir. Özellikle 96 serbestlik derecesi üzerinden 79.247 değerine sahip olan artık sapma ile ilgileniyoruz. Bu sayıları kullanarak modelin verilere uyup uymadığını görmek için ki-kare uyum iyiliği testi yapabiliriz. Aşağıdaki kod bu testin nasıl gerçekleştirileceğini göstermektedir:

 pchisq(79.24679, 96, lower.tail = FALSE)

#[1] 0.8922676

Bu testin p değeri 0,89 olup, 0,05 anlamlılık seviyesinin oldukça üzerindedir. Verilerin modele oldukça iyi uyum sağladığı sonucuna varabiliriz.

Sonuçları Görüntüle

Aşağıdaki kodu kullanarak bölüm ve giriş sınavı sonuçlarına göre beklenen burs teklifi sayısını gösteren bir grafik de oluşturabiliriz:

 #find predicted number of offers using the fitted Poisson regression model
data$phat <- predict(model, type="response")

#create plot that shows number of offers based on division and exam score
ggplot(data, aes(x = exam, y = phat, color = division)) +
  geom_point(aes(y = offers), alpha = .7, position = position_jitter(h = .2)) +
  geom_line() +
  labs(x = "Entrance Exam Score", y = "Expected number of scholarship offers")

Grafik, giriş sınavında yüksek puan alan oyuncular için beklenen en yüksek burs tekliflerini göstermektedir. Ek olarak, Klasman B’deki (yeşil çizgi) oyuncuların Klasman A veya Klasman C’deki oyunculara göre genel olarak daha fazla teklif alması gerektiğini görebiliriz.

Sonuçları raporla

Son olarak regresyon sonuçlarını bulgularımızı özetleyecek şekilde raporlayabiliriz:

Beyzbol oyuncuları tarafından bölüm ve giriş sınavı puanlarına göre alınan burs tekliflerinin sayısını tahmin etmek için bir Poisson regresyonu çalıştırıldı. Giriş sınavında kazanılan her ek puan için alınan teklif sayısı %10 artar ( p<0,0001) . Bölünmenin istatistiksel olarak anlamlı olmadığı görüldü.

Ek kaynaklar

Basit Doğrusal Regresyona Giriş
Çoklu Doğrusal Regresyona Giriş
Polinom Regresyona Giriş

Yorum ekle

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