Poisson-Regression

Modelle zur Korrelations- und Regressionsanalyse

Moderator: EDi

Antworten
Raki
Beiträge: 2
Registriert: Mo Jul 01, 2019 8:26 am

Poisson-Regression

Beitrag von Raki »

Moin liebe Nutzer,

ich arbeite aktuell am empirischen Teil meiner Abschlussarbeit und bin schon recht weit gekommen, bin mir aber bei einigen Fragen immer noch ein wenig unsicher. Leider ist mein Betreuer keine große Hilfe, daher dachte ich, ich frage mal die Leute vom Fach.

Ich habe einen Datensatz, der aus einer Befragung von Unternehmen besteht. Diese Unternehmen sind in Wirtschaftsclustern angesiedelt und der für mich relevante Teil ist eine Reihe von Fragen, bei denen unterschiedliche Problemkategorien (Problem1, Problem2, ...) (und separat Chancen) in ja/nein-Manier abgefragt wurden.

Meine Forschungsfrage lautet letzten Endes, ob sich

1. die Anzahl der Probleme im Zeitablauf erhöht
2. bestimmte Probleme eher bei jungen Unternehmen auftauchen

Um die 1. Frage zu bearbeiten habe ich zwei Dinge getan: Zuerst habe ich versucht, eine Poisson-Regression durchzuführen, in der ich die Summen der mit "ja" beantworteten Problemkategorien als abhängige Variable n_nacht durch eine Mischung von Zeitvariablen und kategorialen Variablen wie Branche des Unternehmens und Clusterlocation zu erklären versuche.

Code: Alles auswählen

setwd("geheimgeheimgeheim/Documents/R_BA/Daten_WD")
load("nachtdata_2.Rda")

pna <- nachtdata_2

(tab <- xtabs(~ n_nacht, data = pna))

x <- as.numeric(names(tab))
plot(x, tab, type = "h", xlab = "Anzahl an Nachteilen", ylab = "Haeufigkeit")
points(x, tab, pch=16)

mod.nacht <- glm(n_nacht ~ Clustername + Branche + Alter + Mitgliedsjahre + zus_cm + zus_gu + zus_kmu +
 zus_iv +zus_fo, family = "poisson", data = pna)
summary(mod.nacht)
Die Variablen zus_x sind ebenfalls dichotom und beschreiben die Zusammenarbeit mit unterschiedlichen Institutionen.
Der erste Block nach dem Laden der Daten soll mir einen Überblick über die Datenstruktur geben, um die Annahmen einer Poissonverteilung zu überprüfen.

Hier stellt sich auch bereits meine erste Frage: In diesem speziellen Fall (Nachteile) sieht optisch alles sehr nach einer Poisson-Verteilung aus, die Säulen sind stark nach links an die 0 verschoben. Allerdings sieht es bei den anderen Kategorien (Vorteile, Hemmnisse, nicht im Code) weniger gut aus. Und selbst an dieser Stelle, wo das Histogramm okay aussieht liefert ein Test per Chi-Quadrat, dass die Verteilung nicht Poisson folgt.

Ich habe nun nach der Methode von Student (Anmerkung von student: Hier ist der Betreiber der Seite www.poissoverteilung.de gemeint!) einen Anpassungstest geschrieben:

Code: Alles auswählen

 > summary(pna$n_nacht)
    0    1    2    3
 220  90  68  38

Code: Alles auswählen

mue_dach <- mean(pna$n_nacht)   ###Schaetzung von muedach
dgof <-2 					   ###Da alle Beobachtungen entweder 0,1,2 oder 3 angegebene Probleme sind habe ich 4-2 Freiheitsgrade

pna$n_nacht <-as.factor(pna$n_nacht)	###Speichern der beobachteten Werte, daten_cqt hat den Typ named Integer
daten_chi_q_t <-summary(pna$n_nacht)

exp_values_pois <-dpois(c(0,1,2,3),mue_dach)*416	###Da es 416 Beobachtungen gibt die Multiplikation um die erwarteten Werte einer echten 					 
 										###Poisson-Verteilung zu bestimmen

x_squared <-sum((daten_cqt - exp_values_pois)^2/exp_values_pois)		###Ermitteln der Pruefgroesse

x_squared < qchisq(0.95,2)					#### Evaluiert leider zu FALSE

Ist eine Poisson-Regression dann überhaupt noch angebracht? Und wenn es eine bedeutende Abweichung gibt, was sollte ich tun? Eines der Histogramme sieht eher nach einer Normalverteilung aus, sollte ich für diese Kategorie dann ein anderes Verfahren wählen?

Code: Alles auswählen

> summary(mod.nacht)

Call:
glm(formula = n_nacht ~ Clustername + Alter + Mitgliedsjahre + 
    zus_cm + zus_gu + zus_kmu + zus_iv + zus_fo, family = "poisson", 
    data = pna)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.9167  -1.2225  -0.4889   0.6065   2.2518  

Coefficients:
                 Estimate Std. Error z value Pr(>|z|)  
(Intercept)     2.778e-01  3.674e-01   0.756   0.4496  
Clustername1    3.812e-01  4.565e-01   0.835   0.4036  
Clustername2   -6.725e-01  6.306e-01  -1.066   0.2863  
Clustername3   -9.109e-01  7.586e-01  -1.201   0.2299  
Clustername4   -4.328e-01  3.703e-01  -1.169   0.2426  
Clustername5   -9.479e-01  4.642e-01  -2.042   0.0411 *
Clustername6   -7.274e-01  6.302e-01  -1.154   0.2484  
Clustername7   -7.935e-01  5.504e-01  -1.442   0.1494  
Clustername8    8.898e-02  3.250e-01   0.274   0.7842  
Clustername9   -4.906e-01  6.270e-01  -0.782   0.4340  
Clustername10  -7.884e-01  6.183e-01  -1.275   0.2023  
Clustername11  -1.648e+01  1.477e+03  -0.011   0.9911  
Clustername12   1.283e-01  3.949e-01   0.325   0.7453  
Clustername13   6.509e-02  1.028e+00   0.063   0.9495  
Clustername14  -1.535e-01  3.224e-01  -0.476   0.6341  
Clustername17  -5.529e-01  3.294e-01  -1.678   0.0933 .
Clustername18  -2.012e-02  3.912e-01  -0.051   0.9590  
Clustername19  -2.937e-01  3.272e-01  -0.898   0.3695  
Clustername20  -2.078e-01  3.711e-01  -0.560   0.5756  
Clustername21  -2.145e-01  5.122e-01  -0.419   0.6754  
Clustername22  -3.771e-01  6.235e-01  -0.605   0.5453  
Clustername23  -1.652e+01  9.326e+02  -0.018   0.9859  
Clustername24  -3.902e-03  3.333e-01  -0.012   0.9907  
Clustername25  -8.007e-03  4.894e-01  -0.016   0.9869  
Clustername26   1.802e-01  5.728e-01   0.315   0.7531  
Clustername27  -5.831e-01  5.684e-01  -1.026   0.3050  
Clustername28  -2.017e+00  1.027e+00  -1.965   0.0495 *
Clustername29  -1.547e-01  1.030e+00  -0.150   0.8806  
Alter          -6.904e-04  2.139e-03  -0.323   0.7469  
Mitgliedsjahre -4.695e-03  1.024e-02  -0.458   0.6467  
zus_cmnein      3.540e-01  1.977e-01   1.790   0.0734 .
zus_gunein     -2.158e-01  1.558e-01  -1.385   0.1660  
zus_kmunein    -2.434e-01  1.564e-01  -1.556   0.1196  
zus_ivnein     -1.515e-01  1.944e-01  -0.779   0.4359  
zus_fonein     -3.295e-02  1.555e-01  -0.212   0.8322  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 383.77  on 273  degrees of freedom
Residual deviance: 335.24  on 239  degrees of freedom
  (142 observations deleted due to missingness)
AIC: 719.03

Number of Fisher Scoring iterations: 14
Nun wüsste ich gerne mehr über die Anpassungsgüte meines Modells. Benutze ich hier Pearsons Chi-Quadrat? Ich bin mir unsicher, da meine UV sowohl kategorial als auch numerisch sind. Dass ich einige Variablen entfernen kann ist klar, aber die Clustervariable ist nur für einige der Cluster signifikant, sollte ich dann für die signifikanten Cluster separate Dummys erstellen und diese in die Regression einpflegen?

Als alternativen Ansatz habe ich versucht, das Modell als Ordinale Regression laufen zu lassen, wäre das eine legitime Alternative? Ich würde das separat aufführen, dieser Post ist bereits eine WallOfText.

Ich würde mich sehr über Tipps, Anregungen und Gedanken freuen,

LG Malte
Antworten