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.