Una breve introduzione alla regressione di poisson per i dati di conteggio
La regressione è un metodo statistico che può essere utilizzato per determinare la relazione tra una o più variabili predittive e una variabile di risposta .
La regressione di Poisson è un tipo speciale di regressione in cui la variabile di risposta è “dati di conteggio”. Gli esempi seguenti illustrano i casi in cui è possibile utilizzare la regressione di Poisson:
Esempio 1: la regressione di Poisson può essere utilizzata per esaminare il numero di studenti che si sono diplomati in uno specifico programma universitario in base al loro GPA al momento dell’ingresso nel programma e al loro sesso. In questo caso, “numero di studenti che si diplomano” è la variabile di risposta, “GPA all’ingresso nel programma” è una variabile predittrice continua e “sesso” è una variabile predittiva categoriale.
Esempio 2: la regressione di Poisson può essere utilizzata per esaminare il numero di incidenti stradali in un particolare incrocio in base alle condizioni meteorologiche (“soleggiato”, “nuvoloso”, “piovoso”) e se si verifica o meno un evento speciale in città (“Sì o no”). In questo caso, “numero di incidenti stradali” è la variabile di risposta, mentre “condizioni meteorologiche” ed “evento speciale” sono entrambe variabili predittive categoriali.
Esempio 3: la regressione di Poisson può essere utilizzata per esaminare il numero di persone in fila davanti a te in un negozio in base all’ora del giorno, al giorno della settimana e se è in corso o meno una vendita (“Sì o no) . “). In questo caso, “il numero di persone in fila davanti a te” è la variabile di risposta, “ora del giorno” e “giorno della settimana” sono entrambe variabili predittive continue e “vendita in corso” è una variabile predittiva categoriale.
Esempio 4: la regressione di Poisson può essere utilizzata per esaminare il numero di persone che completano un triathlon in base alle condizioni meteorologiche (“soleggiato”, “nuvoloso”, “piovoso”) e alla difficoltà del percorso (“facile”, “piovoso”). moderato”, “difficile”). In questo caso, “numero di persone che finiscono” è la variabile di risposta, mentre “condizioni meteorologiche” e “difficoltà del percorso” sono entrambe variabili predittive categoriali.
L’esecuzione di una regressione di Poisson ti consentirà di vedere quali variabili predittive (se presenti) hanno un effetto statisticamente significativo sulla variabile di risposta.
Per le variabili predittive continue, sarai in grado di interpretare il modo in cui un aumento o una diminuzione di un’unità in tale variabile è associato a una variazione percentuale nei numeri della variabile di risposta (ad esempio, “ogni punto aggiuntivo di aumento di un’unità nel GPA è associato a un aumento del 12,5% della variabile risposta).
Per le variabili predittive categoriali, sarai in grado di interpretare la variazione percentuale nei conteggi di un gruppo (ad esempio, il numero di persone che completano un triathlon in una giornata soleggiata) rispetto a un altro gruppo (ad esempio, il numero di persone che completano un triathlon in una giornata soleggiata) triathlon in caso di pioggia).
Ipotesi di regressione di Poisson
Prima di poter eseguire una regressione di Poisson, dobbiamo garantire che siano soddisfatte le seguenti ipotesi in modo che i risultati della regressione di Poisson siano validi:
Presupposto 1: la variabile di risposta sono i dati di conteggio. Nella regressione lineare tradizionale, la variabile di risposta è costituita da dati continui. Tuttavia, per utilizzare la regressione di Poisson, la nostra variabile di risposta deve essere costituita da dati di conteggio comprendenti numeri interi pari o superiori a 0 (ad esempio 0, 1, 2, 14, 34, 49, 200, ecc.). La nostra variabile di risposta non può contenere valori negativi.
Ipotesi 2: le osservazioni sono indipendenti. Ogni osservazione nel set di dati deve essere indipendente l’una dall’altra. Ciò significa che un’osservazione non dovrebbe essere in grado di fornire informazioni su un’altra osservazione.
Ipotesi 3: La distribuzione dei conti segue una distribuzione di Poisson. Di conseguenza, i conteggi osservati e attesi dovrebbero essere simili. Un modo semplice per verificarlo è tracciare i conteggi attesi e osservati e vedere se sono simili.
Ipotesi 4: la media e la varianza del modello sono uguali. Ciò deriva dal presupposto che la distribuzione dei conteggi segue una distribuzione di Poisson. Per una distribuzione di Poisson la varianza ha lo stesso valore della media. Se questa ipotesi è soddisfatta, allora hai equidispersione . Tuttavia, questo presupposto viene spesso violato perché la dispersione eccessiva è un problema comune.
Esempio: regressione di Poisson in R
Esamineremo ora un esempio di come eseguire la regressione di Poisson in R.
Sfondo
Supponiamo di voler sapere quante borse di studio riceve un giocatore di baseball delle scuole superiori di una determinata contea in base alla sua divisione scolastica (“A”, “B” o “C”) e al suo voto scolastico. esame di ammissione all’università (misurato da 0 a 100). ).
Il codice seguente crea il set di dati con cui lavoreremo, che include dati su 100 giocatori di baseball:
#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)))
Comprendere i dati
Prima di adattare effettivamente il modello di regressione di Poisson a questo set di dati, possiamo comprendere meglio i dati visualizzando le prime righe del set di dati e utilizzando la libreria dplyr per eseguire statistiche di riepilogo:
#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
Dal risultato precedente possiamo osservare quanto segue:
- Nel set di dati sono presenti 100 righe e 3 colonne
- Il numero minimo di offerte ricevute da un giocatore era zero, il massimo era quattro e la media era 0,83.
- In questo set di dati ci sono 27 giocatori della divisione “A”, 38 giocatori della divisione “B” e 35 giocatori della divisione “C”.
- Il punteggio minimo dell’esame era 60,26, il punteggio massimo era 93,87 e la media era 76,43.
- In generale, i giocatori che hanno ricevuto più offerte di borse di studio tendono ad avere punteggi agli esami più alti (ad esempio, il punteggio medio degli esami per i giocatori che non hanno ricevuto offerte è stato 70,0 e il punteggio medio delle recensioni per i giocatori che hanno ricevuto 4 offerte è stato 87,9).
Possiamo anche creare un istogramma per visualizzare il numero di offerte ricevute dai giocatori in base alla divisione:
#load ggplot2 package library(ggplot2) #create histogram ggplot(data, aes(offers, fill = division)) + geom_histogram(binwidth=.5, position="dodge")
Possiamo vedere che la maggior parte dei giocatori non ha ricevuto alcuna offerta o ha ricevuto solo un’offerta. Questo è tipico dei set di dati che seguono le distribuzioni di Poisson : una buona parte dei valori di risposta sono zero.
Fitting del modello di regressione di Poisson
Successivamente, possiamo modificare il modello utilizzando la funzione glm() e specificando che vogliamo utilizzare family=”fish” per il modello:
#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
Dal risultato possiamo osservare quanto segue:
- Vengono forniti i coefficienti di regressione di Poisson, l’errore standard delle stime, i punteggi z e i corrispondenti valori p.
- Il coefficiente di revisione è 0,09548 , il che indica che il numero di registro previsto per il numero di offerte per un aumento di un’unità nella revisione è 0,09548 . Un modo più semplice per interpretarlo è prendere il valore esponenziale, ovvero e 0.09548 = 1.10 . Ciò significa che c’è un aumento del 10% nel numero di offerte ricevute per ogni punto aggiuntivo guadagnato all’esame di ammissione.
- Il coefficiente per la Divisione B è 0,1756 , il che indica che il numero atteso di offerte per un giocatore della Divisione B è 0,1756 superiore rispetto a quello per un giocatore della Divisione A. Un modo più semplice per interpretarlo è prendere il valore esponenziale, ovvero e 0,1756 = 1.19 . Ciò significa che i giocatori della divisione B ricevono il 19% in più di offerte rispetto ai giocatori della divisione A. Si noti che questa differenza non è statisticamente significativa (p = 0,519).
- Il coefficiente per la Divisione C è -0,05251 , il che indica che il numero di log previsto per il numero di offerte per un giocatore nella Divisione C è inferiore di 0,05251 rispetto a quello per un giocatore nella Divisione A. Un modo più semplice per interpretarlo è prendere il valore esponenziale , cioè è e 0.05251 = 0.94 . Ciò significa che i giocatori della divisione C ricevono il 6% di offerte in meno rispetto ai giocatori della divisione A. Si noti che questa differenza non è statisticamente significativa (p = 850).
Vengono inoltre fornite informazioni sulla devianza del modello. A noi interessa soprattutto la devianza residua , che ha un valore di 79.247 su 96 gradi di libertà. Utilizzando questi numeri, possiamo eseguire un test di bontà di adattamento del chi quadrato per vedere se il modello si adatta ai dati. Il codice seguente illustra come eseguire questo test:
pchisq(79.24679, 96, lower.tail = FALSE) #[1] 0.8922676
Il valore p per questo test è 0,89 , che è ben al di sopra del livello di significatività di 0,05. Possiamo concludere che i dati si adattano abbastanza bene al modello.
Vedi i risultati
Possiamo anche creare un grafico che mostri il numero previsto di offerte di borse di studio ricevute in base ai risultati della divisione e dell’esame di ammissione utilizzando il seguente codice:
#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")
Il grafico mostra il numero più alto di offerte di borse di studio previste per i giocatori che hanno ottenuto un punteggio elevato all’esame di ammissione. Inoltre, possiamo vedere che i giocatori della Divisione B (la linea verde) dovrebbero ricevere più offerte in generale rispetto ai giocatori della Divisione A o della Divisione C.
Riportare i risultati
Infine, possiamo riportare i risultati della regressione in un modo che riassume i nostri risultati:
È stata eseguita una regressione di Poisson per prevedere il numero di offerte di borse di studio ricevute dai giocatori di baseball in base ai punteggi degli esami di divisione e di ammissione. Per ogni punto aggiuntivo guadagnato all’esame di ammissione, il numero di offerte ricevute aumenta del 10% ( p < 0,0001) . La divisione non è risultata statisticamente significativa.
Risorse addizionali
Introduzione alla regressione lineare semplice
Introduzione alla regressione lineare multipla
Un’introduzione alla regressione polinomiale