Sayım tahmini için Poisson ve quasipoisson regresyonu

R'de Supervised Learning: Regresyon

Nina Zumel and John Mount

Win-Vector, LLC

Sayımları Tahmin Etme

  • Doğrusal regresyon: $[-\infty, \infty]$ aralığında değerler tahmin eder
  • Sayımlar: $[0,\infty]$ aralığında tamsayılar
R'de Supervised Learning: Regresyon

Poisson/Quasipoisson Regresyonu

glm(formula, data, family)
  • family: poisson veya quasipoisson
  • girdiler log(count) içinde toplamsal ve doğrusaldır
R'de Supervised Learning: Regresyon

Poisson/Quasipoisson Regresyonu

glm(formula, data, family)
  • family: poisson veya quasipoisson
  • girdiler log(count) içinde toplamsal ve doğrusaldır
  • çıktı: tamsayı
    • sayımlar: ör. bir sürücünün aldığı trafik cezası sayısı
    • oranlar: ör. günlük web sitesi tıklaması
  • tahmin: beklenen oran veya şiddet (tamsayı değil)
    • beklenen trafik cezası sayısı; beklenen günlük tıklama
R'de Supervised Learning: Regresyon

Poisson vs. Quasipoisson

  • Poisson varsayımı: mean(y) = var(y)
  • var(y) mean(y)'den çok farklıysa → quasipoisson
  • Genelde büyük örneklem gerekir
  • Oranlar/sayımlar >> 0 ise - sıradan regresyon yeterli
R'de Supervised Learning: Regresyon

Örnek: Bisiklet Kiralarını Tahmin Etme

R'de Supervised Learning: Regresyon

Modeli uydur

bikesJan %>% 
  summarize(mean = mean(cnt), var = var(cnt))
      mean      var
1 130.5587 14351.25

var(cnt) >> mean(cnt) olduğundan $\rightarrow$ quasipoisson kullan

fmla <- cnt ~ hr + holiday + workingday + 
  weathersit + temp + atemp + hum + windspeed

model <- glm(fmla, data = bikesJan, family = quasipoisson)
R'de Supervised Learning: Regresyon

Model uyumunu kontrol et

$$ pseudo R^2 = 1 - \frac{deviance}{null.deviance} $$

glance(model) %>%
  summarize(pseudoR2 = 1 - deviance/null.deviance)
   pseudoR2
1 0.7654358
R'de Supervised Learning: Regresyon

Modelden tahmin yapma

predict(model, newdata = bikesFeb, type = "response")

R'de Supervised Learning: Regresyon

Modeli değerlendir

Sayımları RMSE ile değerlendirebilirsin

bikesFeb %>%
  mutate(residual = cnt - pred) %>%
  summarize(rmse = sqrt(mean(residual^2))) 
      rmse
1 69.32869
sd(bikesFeb$cnt)
134.2865
R'de Supervised Learning: Regresyon

Tahminleri ve Gerçek Sonuçları Karşılaştır

R'de Supervised Learning: Regresyon

Hadi pratik yapalım!

R'de Supervised Learning: Regresyon

Preparing Video For Download...