11 Datenanalyse
11.1 Daten anschauen
Politikwissenschaft hat in vielen Fällen mit Daten zu tun. Umfragen, statistische Erhebungen der Bevölkerung, Anzahl abgestimmte Initiativen und Referenden, Abstimmungsverhalten in Parlamenten, Netzwerke von politischen Akteuren - alle diese Daten verlangen nach einer Auswertung und intuitiv zugänglichen Resultaten, welche ermöglichen, die Daten zu interpretieren und zu verstehen.
Die Analyse von Daten bedeutet in vielen Fällen zuerst einmal die mühsame Aufbereitung von Daten. Nach diesem ersten Schritt ist es aber möglich, mit relativ einfachen Mitteln die Daten tatsächlich anzuschauen und zu interpretieren. Für einen ersten Einstieg in R werden wir die Aufbereitung von Daten zuerst überspringen, und zuerst die Daten direkt anschauen.
Für diese erste Einführung nutzen wir Daten der VOTO-Studien, d.h. eine Umfrage mit Individualdaten. Diese Daten sind im Uninetz verfügbar. Hier laden wir die Daten zur Abstimmung vom 21. Mai 2017 in R rein, das heisst zur Abstimmung zum Energiegesetz (Energiestrategie 2050). Aus den gesamten Daten bearbeiten wir einen Sample von 200 Beobachtungen und 23 Variablen. Den gesamten Fragebogen findet ihr ebenfalls auf der Webseite von VOTO oder auf ILIAS.
# Der Befehl read.table gibt an, welche Datei geladen werden soll,
# und speichert das Resultat in ein R-Objekt mit dem Namen "voto" ab
voto <- read.table("voto855_sample.csv", header=T, sep=";",
stringsAsFactors = F, fileEncoding="UTF-8")
# Dieser Befehl funktioniert nur, indem der richtige Pfad zur Datei angegeben
# wird, wenn er also scheitert, kontrollieren dass diese Datei auch im "wd" ist
Sobald die Daten eingelesen sind, sollten wir diese anschauen, damit wir auch wissen, dass alles korrekt geklappt hat - und wenn es unbekannte Daten sind, um diese kennen zu lernen. Diese reingeladenen Daten können wir jetzt anschauen, indem wir den Objektnamen voto
referenzieren. R kann viele Objekte - Datenframes, Vektoren, Matrizen, Werte, Funktionen - im sogenannten Environment haben (in RStudio ist eine der vier Kacheln eine Übersicht des Environments). Deshalb ist es wichtig (im Vergleich bspw. zu Stata) immer zu referenzieren, welchen Datensatz oder Vektor man anschauen möchte.
# Den gesamten Datensatz in der Konsole anzeigen (wird nicht durchgeführt)
voto
# Ähnlich wie der edit-Befehl in Stata ist View()
View(voto)
# Nur die ersten sechs Linien und die ersten zehn Variablen
head(voto[,1:10])
## personid_4 polint part
## 1 86554 2 rather interested 1 participated
## 2 27124 1 very interested 1 participated
## 3 93625 3 rather not interested 1 participated
## 4 17071 2 rather interested 1 participated
## 5 92524 2 rather interested 2 did not participate
## 6 27713 3 rather not interested 1 participated
## titel_1 vote_1
## 1 1 Energy Act mentioned 1 yes (accepted)
## 2 1 Energy Act mentioned 1 yes (accepted)
## 3 1 Energy Act mentioned 1 yes (accepted)
## 4 1 Energy Act mentioned 2 no (rejected)
## 5 0 Energy Act not mentioned
## 6 1 Energy Act mentioned 1 yes (accepted)
## party trust_1 importance1
## 1 03 FDP - FDP.The Liberals 09 06
## 2 04 CVP - Christian Democratic Party 10 complete trust 09
## 3 96 does not affiliate with a party 05 05
## 4 98 don't know 08 07
## 5 96 does not affiliate with a party 03
## 6 04 CVP - Christian Democratic Party 08 08
## value3 value11
## 1 3 rather agree with 1st statement 6 completely agree with 2nd statement
## 2 4 rather agree with 2nd statement 6 completely agree with 2nd statement
## 3 4 rather agree with 2nd statement 5 agree with 2nd statement
## 4 2 agree with 1st statement 4 rather agree with 2nd statement
## 5 8 don't know 4 rather agree with 2nd statement
## 6 2 agree with 1st statement 6 completely agree with 2nd statement
# Nur die Variablennamen
colnames(voto)
## [1] "personid_4" "polint" "part"
## [4] "titel_1" "vote_1" "party"
## [7] "trust_1" "importance1" "value3"
## [10] "value11" "difficul1" "vote2"
## [13] "part2" "educ" "acti"
## [16] "income" "sex" "birthyear"
## [19] "birthmonth" "maritalstatus" "reportingcanton"
## [22] "communelanguage" "lrsp"
# Wollen wir Zusammenfassungen sehen, können wir summary() verwenden
# Dies funktioniert für den gesamten Datensatz oder nur für eine Variable
summary(voto$birthyear)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1927 1948 1962 1963 1975 1999
# table() zeigt die Werte einer Variable an
table(voto$vote_1)
##
## 1 yes (accepted) 2 no (rejected) 8 don't know
## 70 95 30 2
## 9 no answer
## 3
11.2 Daten vergleichen
Dieses Kapitel folgt in etwa Chapter 1 des Buches R for Data Science
Interessanter wird es aber, wenn wir nicht nur einzelne Variablen anschauen, sondern zwei oder mehrere miteinander vergleichen. Beispielsweise könnten wir mit diesen Daten der Frage auf den Grund gehen, wie Alter, Geschlecht und Partizipation zusammenhängen - nehmen jüngere Stimmberechtigte und Frauen tatsächlich weniger of an Abstimmungen teil?
Folgende Variablen kommen dafür zum Einsatz:
- das Alter erfahren wir über das Geburtsjahr
birthyear
, - das Geschlecht ist in der Variable
sex
gespeichert, - die Partizipationsvariable
part
beschreibt, ob eine Person am 21. Mai 2017 teilgenommen hat, - zusätzlich wissen wir über
part2
, wie oft eine Person im Schnitt bei zehn Abstimmungen teilnimmt.
Schauen wir uns diese Variablen einmal genauer an.
head(select(voto, birthyear, part, part2, sex))
## birthyear part part2 sex
## 1 1997 1 participated 10 10 votings 1 man
## 2 1967 1 participated 10 10 votings 1 man
## 3 1948 1 participated 07 2 woman
## 4 1998 1 participated 10 10 votings 2 woman
## 5 1963 2 did not participate 04 2 woman
## 6 1948 1 participated 10 10 votings 2 woman
# Geburtsjahr
summary(voto$birthyear)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1927 1948 1962 1963 1975 1999
table(voto$birthyear)
##
## 1927 1928 1929 1930 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944
## 1 1 1 2 2 2 2 3 3 2 3 2 4 2 4
## 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959
## 3 3 5 6 7 6 2 4 2 3 3 2 4 1 3
## 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974
## 4 4 7 6 4 2 4 3 2 1 5 4 3 7 4
## 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1990 1991 1994
## 2 4 3 2 4 1 3 2 3 2 4 1 3 1 2
## 1995 1996 1997 1998 1999
## 4 1 3 6 1
# Partizipation am 21. Mai 2017
table(voto$part)
##
## 1 participated 2 did not participate
## 130 70
# Partizipation an 10 Abstimmungen
table(voto$part2)
##
## 00 0 voting 01 02 03 04
## 9 1 6 5 3
## 05 06 07 08 09
## 13 6 15 29 19
## 10 10 votings 98 don't know
## 91 3
# Geschlecht
table(voto$sex)
##
## 1 man 2 woman
## 93 107
Jetzt möchten wir diese Variablen aber vergleichen, nicht nur einzeln anschauen.
# Vergleich Partizipation / Geschlecht
table(voto$sex, voto$part)
##
## 1 participated 2 did not participate
## 1 man 63 30
## 2 woman 67 40
table(voto$sex, voto$part2)
##
## 00 0 voting 01 02 03 04 05 06 07 08 09 10 10 votings
## 1 man 4 1 2 3 0 3 2 7 13 8 48
## 2 woman 5 0 4 2 3 10 4 8 16 11 43
##
## 98 don't know
## 1 man 2
## 2 woman 1
Schon bei der zweiten Tabelle stossen wir aber auf Darstellungsprobleme - so viele Zahlen sind nicht mehr intuitiv vergleichbar. Vor allem, wenn wir jetzt beispielsweise das Geburtsjahr und die Partizipation an zehn Abstimmungen vergleichen würden. Um das zu ermöglichen, arbeiten wir nicht mehr mit Tabellen, sondern mit Visualisierungen.