Eine sanfte einführung in die poisson-regression für zähldaten


Regression ist eine statistische Methode, mit der die Beziehung zwischen einer oder mehreren Prädiktorvariablen und einer Antwortvariablen bestimmt werden kann.

Die Poisson-Regression ist eine spezielle Art der Regression, bei der die Antwortvariable „Anzahldaten“ ist. Die folgenden Beispiele veranschaulichen Fälle, in denen die Poisson-Regression verwendet werden könnte:

Beispiel 1: Die Poisson-Regression kann verwendet werden, um die Anzahl der Studenten zu untersuchen, die ein bestimmtes Hochschulprogramm abschließen, basierend auf ihrem GPA bei Eintritt in das Programm und ihrem Geschlecht. In diesem Fall ist „Anzahl der Absolventen“ die Antwortvariable, „GPA bei Programmeintritt“ eine kontinuierliche Prädiktorvariable und „Geschlecht“ eine kategoriale Prädiktorvariable.

Beispiel 2: Mit der Poisson-Regression kann die Anzahl der Verkehrsunfälle an einer bestimmten Kreuzung anhand der Wetterbedingungen („sonnig“, „bewölkt“, „regnerisch“) und der Frage, ob in der Stadt ein besonderes Ereignis eintritt oder nicht („Ja“), untersucht werden oder Nein“). In diesem Fall ist „Anzahl der Verkehrsunfälle“ die Antwortvariable, während „Wetterbedingungen“ und „besonderes Ereignis“ beide kategoriale Prädiktorvariablen sind.

Beispiel 3: Mit der Poisson-Regression kann die Anzahl der Personen vor Ihnen in der Schlange in einem Geschäft anhand der Tageszeit, des Wochentags und der Frage untersucht werden, ob ein Verkauf stattfindet oder nicht („Ja oder Nein“). .“). In diesem Fall ist „die Anzahl der Personen vor Ihnen in der Schlange“ die Antwortvariable, „Tageszeit“ und „Wochentag“ sind beide kontinuierliche Prädiktorvariablen und „Verkauf läuft“ ist eine kategoriale Prädiktorvariable.

Beispiel 4: Mit der Poisson-Regression kann die Anzahl der Personen, die einen Triathlon absolvieren, anhand der Wetterbedingungen („sonnig“, „bewölkt“, „regnerisch“) und der Streckenschwierigkeit („leicht“, „regnerisch“) untersucht werden. mittelschwer“, „schwierig“). In diesem Fall ist „Anzahl der Personen, die das Ziel erreichen“ die Antwortvariable, während „Wetterbedingungen“ und „Schwierigkeitsgrad des Kurses“ beide kategoriale Prädiktorvariablen sind.

Durch die Durchführung einer Poisson-Regression können Sie sehen, welche Prädiktorvariablen (falls vorhanden) einen statistisch signifikanten Einfluss auf die Antwortvariable haben.

Bei kontinuierlichen Prädiktorvariablen können Sie interpretieren, wie ein Anstieg oder Rückgang dieser Variablen um eine Einheit mit einer prozentualen Änderung der Zahlen der Antwortvariablen verbunden ist (z. B. „jeder Anstieg um eine Einheit ist mit einem zusätzlichen Punkt im GPA verbunden“) ein Anstieg der Antwortvariablen um 12,5 %).

Bei kategorialen Prädiktorvariablen können Sie die prozentuale Änderung der Zählungen einer Gruppe (z. B. der Anzahl der Personen, die an einem sonnigen Tag einen Triathlon absolvieren) im Vergleich zu einer anderen Gruppe (z. B. der Anzahl der Personen, die einen Triathlon beenden) interpretieren Triathlon bei Regenwetter).

Annahmen der Poisson-Regression

Bevor wir eine Poisson-Regression durchführen können, müssen wir sicherstellen, dass die folgenden Annahmen erfüllt sind, damit unsere Poisson-Regressionsergebnisse gültig sind:

Annahme 1: Die Antwortvariable sind Zähldaten. Bei der herkömmlichen linearen Regression sind kontinuierliche Daten die Antwortvariable. Um jedoch die Poisson-Regression verwenden zu können, muss unsere Antwortvariable aus Zähldaten einschließlich Ganzzahlen von 0 oder größer (z. B. 0, 1, 2, 14, 34, 49, 200 usw.) bestehen. Unsere Antwortvariable darf keine negativen Werte enthalten.

Hypothese 2: Die Beobachtungen sind unabhängig. Jede Beobachtung im Datensatz muss unabhängig voneinander sein. Dies bedeutet, dass eine Beobachtung keine Informationen über eine andere Beobachtung liefern kann.

Hypothese 3: Die Verteilung der Konten folgt einer Poisson-Verteilung. Daher sollten die beobachteten und erwarteten Zahlen ähnlich sein. Eine einfache Möglichkeit, dies zu testen, besteht darin, die erwarteten und beobachteten Zählungen grafisch darzustellen und zu prüfen, ob sie ähnlich sind.

Annahme 4: Mittelwert und Varianz des Modells sind gleich. Dies ergibt sich aus der Annahme, dass die Verteilung der Zählungen einer Poisson-Verteilung folgt. Bei einer Poisson-Verteilung hat die Varianz den gleichen Wert wie der Mittelwert. Wenn diese Annahme erfüllt ist, liegt Äquidispersion vor. Diese Annahme wird jedoch häufig verletzt, da Überdispersion ein häufiges Problem darstellt.

Beispiel: Poisson-Regression in R

Wir werden uns nun ein Beispiel ansehen, wie man eine Poisson-Regression in R durchführt.

Hintergrund

Angenommen, wir möchten wissen, wie viele Stipendien ein High-School-Baseballspieler in einem bestimmten Landkreis basierend auf seiner Schulklasse („A“, „B“ oder „C“) und seiner Schulnote erhält. Hochschulaufnahmeprüfung (gemessen von 0 bis 100). ).

Der folgende Code erstellt den Datensatz, mit dem wir arbeiten werden, der Daten zu 100 Baseballspielern enthält:

 #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)))

Die Daten verstehen

Bevor wir das Poisson-Regressionsmodell tatsächlich an diesen Datensatz anpassen, können wir die Daten besser verstehen, indem wir die ersten paar Zeilen des Datensatzes visualisieren und die dplyr- Bibliothek verwenden, um zusammenfassende Statistiken auszuführen:

 #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

Aus dem obigen Ergebnis können wir Folgendes beobachten:

  • Der Datensatz enthält 100 Zeilen und 3 Spalten
  • Die minimale Anzahl an Angeboten, die ein Spieler erhielt, lag bei null, die maximale bei vier und der Durchschnitt bei 0,83.
  • In diesem Datensatz gibt es 27 Spieler aus der „A“-Division, 38 Spieler aus der „B“-Division und 35 Spieler aus der „C“-Division.
  • Die minimale Prüfungspunktzahl betrug 60,26, die maximale Punktzahl 93,87 und der Durchschnitt lag bei 76,43.
  • Im Allgemeinen haben Spieler, die mehr Stipendienangebote erhalten haben, tendenziell höhere Prüfungsergebnisse (z. B. betrug das durchschnittliche Prüfungsergebnis für Spieler, die keine Angebote erhalten haben, 70,0 und das durchschnittliche Bewertungsergebnis für Spieler, die 4 Angebote erhalten haben, 87,9).

Wir können auch ein Histogramm erstellen, um die Anzahl der von Spielern erhaltenen Angebote basierend auf der Division zu visualisieren:

 #load ggplot2 package
library(ggplot2)

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

Wir können sehen, dass die meisten Spieler kein oder nur ein Angebot erhalten haben. Dies ist typisch für Datensätze, die Poisson-Verteilungen folgen: Ein großer Teil der Antwortwerte ist Null.

Anpassung des Poisson-Regressionsmodells

Als nächstes können wir das Modell anpassen, indem wir die Funktion glm() verwenden und angeben, dass wir „family=“fish“ für das Modell verwenden möchten:

 #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

Aus dem Ergebnis können wir Folgendes beobachten:

  • Es werden Poisson-Regressionskoeffizienten, Standardfehler der Schätzungen, Z-Scores und entsprechende p-Werte bereitgestellt.
  • Der Bewertungskoeffizient beträgt 0,09548 . Dies bedeutet, dass die erwartete Protokollzahl für die Anzahl der Angebote für eine Erhöhung der Bewertung um eine Einheit 0,09548 beträgt. Eine einfachere Möglichkeit, dies zu interpretieren, besteht darin, den potenzierten Wert zu verwenden, also e 0,09548 = 1,10 . Das bedeutet, dass sich die Anzahl der erhaltenen Angebote für jeden zusätzlichen Punkt, der bei der Aufnahmeprüfung erreicht wird, um 10 % erhöht.
  • Der Koeffizient für Division B beträgt 0,1756 , was bedeutet, dass die erwartete Anzahl an Angeboten für einen Spieler in Division B um 0,1756 höher ist als für einen Spieler in Division A. Eine einfachere Möglichkeit, dies zu interpretieren, besteht darin, den potenzierten Wert zu verwenden, d. h . e 0,1756 = 1.19 . Dies bedeutet, dass Spieler in Division B 19 % mehr Angebote erhalten als Spieler in Division A. Beachten Sie, dass dieser Unterschied statistisch nicht signifikant ist (p = 0,519).
  • Der Koeffizient für Division C beträgt -0,05251 , was darauf hinweist, dass die erwartete Logzahl für die Anzahl der Angebote für einen Spieler in Division C um 0,05251 niedriger ist als für einen Spieler in Division A. Eine einfachere Möglichkeit, dies zu interpretieren, besteht darin, den potenzierten Wert zu verwenden , also e 0,05251 = 0,94 . Dies bedeutet, dass Spieler der Division C 6 % weniger Angebote erhalten als Spieler der Division A. Beachten Sie, dass dieser Unterschied statistisch nicht signifikant ist (p = 850).

Es werden auch Informationen zur Modellabweichung bereitgestellt. Uns interessiert insbesondere die Restabweichung , die einen Wert von 79.247 von 96 Freiheitsgraden hat. Mit diesen Zahlen können wir einen Chi-Quadrat-Anpassungstest durchführen, um zu sehen, ob das Modell zu den Daten passt. Der folgende Code veranschaulicht, wie dieser Test durchgeführt wird:

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

#[1] 0.8922676

Der p-Wert für diesen Test beträgt 0,89 und liegt damit deutlich über dem Signifikanzniveau von 0,05. Wir können daraus schließen, dass die Daten einigermaßen gut zum Modell passen.

Ergebnisse anzeigen

Mit dem folgenden Code können wir auch ein Diagramm erstellen, das die erwartete Anzahl erhaltener Stipendienangebote basierend auf den Ergebnissen der Abteilungs- und Aufnahmeprüfungen zeigt:

 #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")

Die Grafik zeigt die höchste Anzahl erwarteter Stipendienangebote für Spieler, die bei der Aufnahmeprüfung gute Ergebnisse erzielt haben. Darüber hinaus können wir sehen, dass Spieler in Division B (die grüne Linie) im Allgemeinen mehr Angebote erhalten sollten als Spieler in Division A oder Division C.

Ergebnisse melden

Schließlich können wir die Regressionsergebnisse auf eine Weise berichten, die unsere Ergebnisse zusammenfasst:

Eine Poisson-Regression wurde durchgeführt, um die Anzahl der Stipendienangebote, die Baseballspieler erhielten, basierend auf den Ergebnissen der Divisions- und Aufnahmeprüfungen vorherzusagen. Für jeden zusätzlichen Punkt, der bei der Aufnahmeprüfung erreicht wird, erhöht sich die Anzahl der eingegangenen Angebote um 10 % ( p < 0,0001) . Die Aufteilung erwies sich als statistisch nicht signifikant.

Zusätzliche Ressourcen

Einführung in die einfache lineare Regression
Einführung in die multiple lineare Regression
Eine Einführung in die Polynomregression

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert