काउंट्स की भविष्यवाणी के लिए Poisson और quasipoisson रिग्रेशन

R में Supervised Learning: Regression

Nina Zumel and John Mount

Win-Vector, LLC

काउंट्स की भविष्यवाणी

  • Linear रिग्रेशन: $[-\infty, \infty]$ में वैल्यू प्रेडिक्ट करता है
  • Counts: $[0,\infty]$ रेंज में इंटीजर
R में Supervised Learning: Regression

Poisson/Quasipoisson रिग्रेशन

glm(formula, data, family)
  • family: poisson या quasipoisson
  • इनपुट log(count) में additive और linear होते हैं
R में Supervised Learning: Regression

Poisson/Quasipoisson रिग्रेशन

glm(formula, data, family)
  • family: poisson या quasipoisson
  • इनपुट log(count) में additive और linear
  • outcome: integer
    • counts: जैसे ड्राइवर को मिले traffic tickets की संख्या
    • rates: जैसे प्रति दिन website hits
  • prediction: expected rate या intensity (इंटीगरल नहीं)
    • expected # traffic tickets; expected hits/दिन
R में Supervised Learning: Regression

Poisson बनाम Quasipoisson

  • Poisson मानता है कि mean(y) = var(y)
  • यदि var(y), mean(y) से काफी अलग हो - quasipoisson लें
  • सामान्यतः बड़े sample size की ज़रूरत
  • यदि rates/counts >> 0 हों - सामान्य रिग्रेशन ठीक है
R में Supervised Learning: Regression

उदाहरण: बाइक रेंटल की भविष्यवाणी

R में Supervised Learning: Regression

मॉडल फिट करें

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

क्योंकि var(cnt) >> mean(cnt) $\rightarrow$ quasipoisson उपयोग करें

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

model <- glm(fmla, data = bikesJan, family = quasipoisson)
R में Supervised Learning: Regression

मॉडल फिट जाँचें

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

glance(model) %>%
  summarize(pseudoR2 = 1 - deviance/null.deviance)
   pseudoR2
1 0.7654358
R में Supervised Learning: Regression

मॉडल से भविष्यवाणी

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

R में Supervised Learning: Regression

मॉडल का मूल्यांकन

आप count मॉडल्स को RMSE से इवैल्यूएट कर सकते हैं

bikesFeb %>%
  mutate(residual = cnt - pred) %>%
  summarize(rmse = sqrt(mean(residual^2))) 
      rmse
1 69.32869
sd(bikesFeb$cnt)
134.2865
R में Supervised Learning: Regression

प्रेडिक्शंस और वास्तविक परिणाम की तुलना

R में Supervised Learning: Regression

अभ्यास करते हैं!

R में Supervised Learning: Regression

Preparing Video For Download...