R - Regressione di Poisson

La regressione di Poisson coinvolge modelli di regressione in cui la variabile di risposta è sotto forma di conteggi e non di numeri frazionari. Ad esempio, il conteggio del numero di nascite o il numero di vittorie in una serie di partite di calcio. Anche i valori delle variabili di risposta seguono una distribuzione di Poisson.

L'equazione matematica generale per la regressione di Poisson è:

log(y) = a + b1x1 + b2x2 + bnxn.....

Di seguito la descrizione dei parametri utilizzati:

  • y è la variabile di risposta.

  • a e b sono i coefficienti numerici.

  • x è la variabile predittore.

La funzione utilizzata per creare il modello di regressione di Poisson è la glm() funzione.

Sintassi

La sintassi di base per glm() funzione nella regressione di Poisson è -

glm(formula,data,family)

Di seguito è riportata la descrizione dei parametri utilizzati nelle funzioni di cui sopra:

  • formula è il simbolo che presenta la relazione tra le variabili.

  • data è il set di dati che fornisce i valori di queste variabili.

  • familyè un oggetto R per specificare i dettagli del modello. Il suo valore è "Poisson" per la regressione logistica.

Esempio

Abbiamo il set di dati integrato "warpbreak" che descrive l'effetto del tipo di lana (A o B) e della tensione (bassa, media o alta) sul numero di rotture di ordito per telaio. Consideriamo le "pause" come la variabile di risposta che è un conteggio del numero di interruzioni. Il "tipo" e la "tensione" della lana vengono presi come variabili predittive.

Input Data

input <- warpbreaks
print(head(input))

Quando eseguiamo il codice sopra, produce il seguente risultato:

breaks   wool  tension
1     26       A     L
2     30       A     L
3     54       A     L
4     25       A     L
5     70       A     L
6     52       A     L

Crea modello di regressione

output <-glm(formula = breaks ~ wool+tension, data = warpbreaks,
   family = poisson)
print(summary(output))

Quando eseguiamo il codice sopra, produce il seguente risultato:

Call:
glm(formula = breaks ~ wool + tension, family = poisson, data = warpbreaks)

Deviance Residuals: 
    Min       1Q     Median       3Q      Max  
  -3.6871  -1.6503  -0.4269     1.1902   4.2616  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  3.69196    0.04541  81.302  < 2e-16 ***
woolB       -0.20599    0.05157  -3.994 6.49e-05 ***
tensionM    -0.32132    0.06027  -5.332 9.73e-08 ***
tensionH    -0.51849    0.06396  -8.107 5.21e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 297.37  on 53  degrees of freedom
Residual deviance: 210.39  on 50  degrees of freedom
AIC: 493.06

Number of Fisher Scoring iterations: 4

Nel riepilogo cerchiamo che il valore p nell'ultima colonna sia inferiore a 0,05 per considerare un impatto della variabile predittore sulla variabile di risposta. Come visto il tipo di lana B con tensione di tipo M e H ha un impatto sul conteggio delle rotture.