Politikwissenschaft

 

Webseite durchsuchen

Diskrete Änderung eines Logit rechnen und plotten

Benjamin Schlegel | 7. November 2016

PDF

In diesem Artikel wird erklärt, wie man in R diskrete Änderungen mit der Bibliothek glm.predict rechnen kann und die Resultate anschliessend graphisch darstellen kann. Das Ganze wird mit einer logistischen Regression als Beispiel gezeigt. Es funktioniert aber ähnlich für anderen Modelle. In diesem Beispiel wird ein kontinuierlicher Plot gezeigt. Für ein Beispiel mit einem diskreten Plot kann der Artikel Count Modelle - diskrete Änderungen darstellen in R konsultiert werden.

Zuerst wird der Datensatz BEPS aus der Bibliothek effects geladen. Er enthält Daten aus einer Umfrage zu den Britischen Wahlen 1997. Anschliessend wird eine Variable labour generiert, also ob jemand Labour gewählt hat oder nicht. Diese wird als abhängige Variable verwendet beim Rechnen des Modells.


library(effects)
data = BEPS
data$labour = car::recode(data$vote, "'Labour'=1;else=0")
model1 = glm(labour ~ Europe*gender + age + 
               political.knowledge + economic.cond.national,data=data,family=binomial))

Nachdem das Modell geschätzt wurde, können diskrete Änderungen gerechnet werden. Dazu wird zuerst die Bibliothek glm.predict geladen. Mit der Funktion discrete.changes wird die Berechnung durchgeführt. Zuerst muss das Modell angegeben werden. Anschliessend ein String mit den gewünschten Werten. Für Europe werden alle Werte von 1 (pro EU) bis 11 (gegen EU) verwendet. Beim Geschlecht alle Werte des Faktors (="F"), Beim Alter wird der Mittelwert verwendet. Beim politischen Wissen alle Werte (1-4). Die Einschätzung der wirtschaftlichen Lage wird auf dem Median fixiert. Der Output wird in der Variable output gespeichert. Der Parameter position wird auf 2 gesetzt, da die diskrete Änderung fürs Geschlecht berechnet werden soll und nicht für die EU.


library(glm.predict)
output = predicts(model1, "1-11;F;mean;1-4;median", position = 2)

Nun können die Resultate darstellt werden. Eine Einführung in ggplot2 kann unter Grafiken in R mit ggplot2 gelesen werden. Der Plot soll für jede Ausprägung von politischen Wissen einen eigenen Plot darstellen. Die kann mit facet_wrap erreicht werden. Die x-Achse soll den EU-Skeptizismus enthalten, die y-Achse die diskrete Änderung zwischen Frau und Mann. Die Null-Linie wird rot dargestellt, da sie angibt, wo der Unterschied signifikant ist und wo nicht.


library(ggplot2)
ggplot(output, aes(x = Europe)) + geom_line(aes(y = dc_mean)) +
  geom_ribbon(aes(ymax = dc_upper, ymin = dc_lower), alpha = 0.2, col = "grey") +
  facet_wrap(~political.knowledge) +
  geom_hline(yintercept = 0, col = "red", linetype = "dashed") +
  theme_bw() + 
  ylab("discrete change between women and man")
diskrete Änderung graphisch dargestellt