10  Auswerten: Grundlagen

10.1 Lernsteuerung

10.1.1 Lernziele

  • Sie können die typischen Schritte einer Datenanalyse (von Forschungsdaten z. B. aus der Psychologie) benennen.
  • Sie können den Unterschied zwischen Deskriptiv- und Inferenzstatistik benennen.
  • Sie können die Relevanz von Reproduzierbarkeit erläutern.

10.1.2 Position im Lernpfad

Sie befinden sich im Abschnitt “Auswertung” in Abbildung 1.2. Behalten Sie Ihren Fortschritt im Projektplan im Blick, s. Abbildung 1.3.

10.1.3 Benötigte R-Pakete und Daten

In diesem Kapitel benötigen Sie die folgenden R-Pakete:

library(tidyverse)
library(easystats)

Wir arbeiten mit dem Datensatz extra, aus dem Paket pradadata. in dem Datensatz werden Korrelate zum Persönlichkeitsmerkmal Extraversion untersucht. Ein Codebook findet sich hier.

data_url <- "https://raw.githubusercontent.com/sebastiansauer/modar/master/datasets/extra.csv"
extra <- data_read(data_url)  # aus `{easystats}`

Anstelle der Funktion data_read könnten Sie auch read_csv (Tidyverse) oder read.csv (Standard-R) verwenden.

10.2 Überblick zur Datenanalyse

Mühsam haben Sie Ihre Studie geplant, minutiös den Versuchsplan ausgeheckt, pedantisch die Messinstrumente bestimmt. Dann! Die Datenerhebung! Versuchspersonen, manche nervig, manche freundlich. Ist Forschung denn so anstrengend? Endlich! Geschafft – die Daten sind im Sack, sozusagen. Die Datenerhebung ist abgeschlossen. Was jetzt?

10.2.1 Wozu ist das gut?

Würden Sie einem Medikament trauen, von dem es heißt, das Forschungsteam hatten keinen Bock, Statistik ist zu stressig, aber die Typen aus dem Forschungsteam hätten da so ein Gefühl, könnte schon was bringen, die Pille, immer rein damit. Was?! Sie zögern sich das Medikament einzuwerfen? Sie wüssten es lieber genauer, sicherer, belastbarer? Es ginge schließlich um ihre Gesundheit?

Also gut, Sie haben es so gewollt: Gehen Sie geradeaus weiter zur Statistik.

10.2.2 Über 7 Brücken musst du gehen: Die Schritte der Datenanalyse

Abbildung 10.1 stellt die typischen Schritte (“Brücken”) der Datenanalyse dar.

flowchart TD
  A[Einlesen und Aufbereiten] --> Z[Zusammenfassen]
  Z --> V[Visualisieren]
  V --> M[Modellieren]
  M --> I[Interpretieren]
  I --> K[Kritisieren]
  K --> Ü[Amüsieren]
  Ü --> A

Abbildung 10.1: Die sieben Siegel Brücken der Datenanalyse

In etwas mehr Detail sieht der Fortgang Ihrer Datenanalyse so aus:

  1. Einlesen und Aufbereiten: Nachdem Sie die Daten in R importiert haben, bereiten Sie sie auf. Das klingt läppisch, langweilig fast und nicht so cool wie Modellieren. Schon richtig. Fakt ist aber, dass dieser Teil der Analyse häufig ein Großteil der Zeit benötigt. Wahr ist: Das Daten aufbereiten ist enorm wichtig. Typische Beispiele für solche Tätigkeiten sind das Behandeln fehlender Werte, das Umformen von Tabellen und das Zähmen von Extremwerten

  2. Zusammenfassen: Nachdem Sie die in Ordnung gebracht haben, fassen Sie sie zusammen, um zentrale Trends zu verstehen. Praktisch gesprochen berechnen Sie Maße der Lage, der Streuung und des Zusammenhangs.

  3. Visualisieren: Der Mensch ist halt ein Augentier. So ein schönes Diagramm macht einfach was her und besticht auch den strengsten Gutachter.

  4. Modellieren: Ah, hier kommt der Teil, in dem der Connaisseur seine Muskeln spielen lassen kann: Bayes-Inferenz, multiple Regression, Moderation, Mediation, Kausalanalyse… Ich weiß, Sie können Ihre Freude kaum noch zügeln, aber geduldigen Sie sich noch einen kleinen Augenblick.

  5. Interpretieren: So ein Modell bzw. die entsprechende Funktion in R spuckt einige Zahlen aus. Aber was sagt uns das jetzt? Das würden Sie auch gerne wissen? Prima! Finden wir es zusammen raus.

  6. Kritisieren: Jetzt müssen Sie stark sein. Keine Analyse ist perfekt. Keine Studie ist abschließend. Niemand hat bislang den goldenen Gral gefunden. Okay, aber bisher haben Sie sich auch noch nicht an der Sache versucht! Jedenfalls bricht niemanden ein Zacken aus der Krone, wenn man aufzeigt, wo noch Forschungslücken sind, auch nach der eigenen Studie. Oder sogar, welche Schwächen die eigene Studie bzw. Analyse hat und was man beim nächsten Mal noch besser machen könnte.

  7. Amüsieren: So, irgendwann ist auch gut. Jetzt belohnen Sie sich mal für die ganze harte Arbeit des Studierens.

10.3 Reproduzierbarkeit

Wichtig

Transparenz (vgl. Definition 2.4) ist ein zentrales oder das zentrale Gütemaße der Wissenschaft. Darum sollten Sie alles dran setzen, dass Ihre Studie bzw. die Analyse Ihrer Daten nachvollziehbar ist. \(\square\)

Wesentliche Faktoren für Reproduzierbarkeit sind:

  • Sie reichen Ihre Rohdaten ein (inkl. Codebook)
  • Sie reichen Ihr Analyseskript ein
  • Sie reichen Ihre Stimuli ein (sofern nicht öffentlich verfügbar)
  • Sie reichen Ihre Messinstrumente ein (sofern nicht öffentlich verfügbar)
  • Sie dokumentieren Ihr Vorgehen und reichen es ein

10.4 Codebook

Ein Teil der Dokumentation ist ein Codebook (auch Data-Dictionary genannt). Ein Codebook erläutert die Namen der Variablen in Ihrer (Roh-)Datentabelle, s. Abbildung 10.2.

Abbildung 10.2: Beispiel für ein Codebook

Quelle

10.5 Wir brauchen brave Daten

Wie muss eine Tabelle aufgebaut sein, damit man sie gut in R importieren kann, bzw. gut damit weiterarbeiten kann?

Im Überblick sollten Sie auf Folgendes achten:

  • Wenn Sie händisch Daten eintragen, hacken Sie das einfach in Excel o.Ä. sein.
  • CSV-Dateien bieten sich als Datenformat an.
  • Alternativ kann man auch Excel-Dateien in R importieren.
  • Es muss genau eine Kopfzeile geben.
  • Es darf keine Lücken geben (leere Zeilen oder Spalten oder Zellen).
  • Vermeiden Sie Umlaute und Leerzeichen in den Variablennamen.
  • Die Daten sollten dem Prinzip von “tidy data” folgen.
Tidy Data

Beachten Sie das Prinzip von “tidy data”:

  • In jeder Zeile steht eine Beobachtung.
  • In jeder Spalte steht eine Variable.
  • In jeder Zelle steht eine Wert. \(\square\)

Hier ist eine gute Quelle für weitere Erläuterung zu diesem Thema.

10.6 Checkliste zur Datenanalyse

Hier sehen Sie im Überblick die Schritte, die in vielen Fällen sinnvoll sind, um Daten auf einem guten Niveau auszuwerten.

  1. Vorverarbeitung
    1. Importieren
    2. Aufbereiten (Umkodieren, fehlende Wert versorgen, Transformieren, neue Spalten berechnen)
  2. Explorative Analyse
    1. Daten zusammenfassen (zentrale Tendenz, Streuung, Zusammenhang)
    2. Daten visualisieren
  3. Modellierung und Inferenzstatistik
    1. Modell berechnen
    2. Parameter berichten (Punkt- und Intervallschätzer) und ggf. visualisieren
    3. Parameter visualisieren
    4. Nullhypothesen testen (z. B. ROPE)
    5. Modellgüte berichten (z. B. R-Quadrat)

10.7 Rostlöser

Ihre R-Skills sind etwas eingerostet? Flutscht nicht so? Keine Sorge! Es gibt Rostlöser, der Sie schnell wieder in Schwung bringt. 🧴

10.7.1 Grundlagen der Statistik

Das Kursbuch Statistik1 beinhaltet einen Überblick über Datenaufbereitung und -visualierung sowie Modellierung mit dem linearen Modell, alles mit R.

10.7.2 Grundlagen der Inferenzstatistik

Das Kursbuch Start:Bayes! stellt einen Einstieg in die Inferenzstatistik mit der Bayes-Statistik bereit.

10.7.3 Wie man Umfragedaten auswertet

Hier finden Sie (m)eine Anleitung zur Auswertung von Umfragedaten.

10.8 Überblick zur Statistik

10.8.1 Deskriptiv- vs. Inferenzstatistik

Abbildung 10.3 und Abbildung 10.4 geben einen Überblick zum Unterschied von Deskriptiv- und Inferenzstatistik.

Abbildung 10.3: Deskriptiv- vs. Inferenzstatistik
Abbildung 10.4: Inferenzstatistik schätzt die (Un-)Genauigkeit der Kennwerte der Deskriptivstatatistik

10.8.2 Deskriptivstatistik

Typische Kennwerte der Deskriptivstatistik sind:

  • Arithmetisches Mittel
  • Standardabweichung
  • Anteil
  • Korrelation
  • Regressionskoeffizienten

Abbildung 10.5 zeigt interaktive Beispiele für einen Kennwert des Deskriptivstatistik: (lineare) Korrelation1.

Abbildung 10.5: Interaktives Beispiel für Zusammenhangsdiagramme.

10.8.3 Inferenzstatistik

Abbildung 10.6 veranschautlicht die Daaseinsberechtigung der Inferenzstatistik: Eine einzelne Stichprobe schätzt den Mittelwert der Population (mu) ungenau (je kleiner die Stichprobe, desto ungenauer, ceteris paribus). Daher brauchen wir eine Angabe, wie (un)genau unser Mittelwert wohl den “wahren” Mittelwert der Population (mu) schätzt. Genau das macht die Inferenzstatistik!

Abbildung 10.6: Inferenzstatistik veranschaulicht: Einzelne Stichproben schätzen den Mittelwert der Populationswert (mu) nur ungenau. Daher brauchen eine Quantifizierung der Schätz(un)genauigkeit des Mittelwerts der Population.

10.8.4 Modellieren

Definition 10.1 (Modell) Ein Modell ist ein vereinfachtes Abbild der Wirklichkeit.\(\square\)

Der Nutzen eines Modells ist, einen (übermäßig) komplexen Sachverhalt zu vereinfachen oder überhaupt erst handhabbar zu machen. Man versucht zu vereinfachen, ohne Wesentliches wegzulassen. Der Speck muss weg, sozusagen. Das Wesentliche bleibt.

Auf die Statistik bezogen heißt das, dass man einen Datensatz dabei so zusammenfasst, damit man das Wesentliche erkennt. Was ist das “Wesentliche”? Oft interessiert man sich für die Ursachen eines Phänomens. Etwa: “Wie kommt es bloß, dass ich ohne zu lernen die Klausur so gut bestanden habe?”2 Noch allgemeiner ist man dabei häufig am Zusammenhang von X und Y interessiert, s. Abbildung 10.7, die ein Sinnbild von statistischen Modellen widergibt.

flowchart LR
X --> Y


X1 --> Y2
X2 --> Y2

Abbildung 10.7: oben: Sinnbild eines statistischen Modells; unten: Sinnbild eines statistischen Modells, mit zwei Inputvariablen (“Ursachen”)

10.9 Skriptbasierte vs. klickbasierte Software zur Datenanalyse

Man kann grob zwei Arten von Software-Programmen für Datenanalyse unterscheiden:

  1. Skriptbasierte: Man schreibt seine Befehle in einer Programmiersprache (z. B. R)
  2. Klickbasierte: Man klickt in einer Gui, um Befehle auszulösen (z. B. Jamovi)

Die gängigen Beispiele für skriptbasierte Software für Datenanalyse sind R und Python.

Einige empfehlenswerte(re) Programme für die klickbasierte Datenanalyse sind:

  1. Jamovi
  2. JASP
  3. Exploratory

Im Folgenden sind die Vorteile der oben genannten klickbasierten Software-Programmen den Vorteilen der oben genannten skriptbasierten Software-Programmen gegenüber gestellt

10.9.1 Vorteile klickbasierter Software

JASP Jamovi Exploratory

  • eher kostenlos (es gibt kostenpflichtige Premium-Versionen wie Jamovi Cloud)
  • aktuell
  • flachere Lernkurve
  • R-Code integriert

10.9.2 Vorteile skriptbasierter Software

R Python

  • kostenlos
  • aktueller
  • umfassend (klickbasierte Software kann nicht alles, was man braucht)
  • steilere Lernkurve

10.10 Deskriptivstatistik in der Praxis

Wichtig

Die Deskriptivstatistik fasst eine Datenreihe zu einer Kennzahl zusammen. Der Nutzen liegt im Überblick, den man so gewinnt.

Wir analysieren den Datensatz extra. Damit es einfach bleibt, begrenzen wir uns im Folgenden auf ein paar Variablen.

Sagen wir, das sind die Variablen, die uns interessieren:

extra_corr_names <- 
extra %>% 
  select(n_facebook_friends, n_hangover, age, extra_single_item, n_party, extra_mean) %>% 
  names()

extra_corr_names
## [1] "n_facebook_friends" "n_hangover"         "age"               
## [4] "extra_single_item"  "n_party"            "extra_mean"

10.10.1 Deskriptive Ergebnisse für metrische Variablen

Sie können deskriptive Ergebnisse (Ihrer relevanten Variablen) für metrische Variablen z. B. so darstellen, s. Listing 10.1.

Listing 10.1: Deskriptive Statistik mit Hilfe des R-Pakets easystats
extra %>% 
  select(any_of(extra_corr_names)) %>% 
  describe_distribution()  # aus `easystats`
Variable Mean SD IQR Min Max Skewness Kurtosis n n_Missing
n_facebook_friends 532.61 3704.48 300.0 0.0 96055 25.67 662.76 671 155
n_hangover 9.47 30.72 9.0 0.0 738 17.54 399.53 800 26
age 25.50 5.75 6.0 18.0 54 1.81 4.39 813 13
extra_single_item 2.79 0.86 1.0 1.0 4 -0.27 -0.60 816 10
n_party 17.38 19.32 19.0 0.0 150 3.27 16.10 793 33
extra_mean 2.89 0.45 0.6 1.2 4 -0.43 -0.11 822 4

Übersetzen wir Listing 10.1 vom Errischen ins Deutsche:

  1. Hey R,
  2. nimm die Tabelle extra … und dann
  3. wähle jede Variable, die ich im Vektor extra_corr_names angegeben habe … und dann
  4. beschreibe die Verteilung (jeweils, also für jede Variable) … und dann
  5. mache aus der drögen Tabelle eine schicke. Fertig!

kable() macht aus dem drögen Output in der R-Konsole eine schicke HTML-Tabelle3, wenn man das Quarto-Dokument rendert.

Statt select(any_of(extra_corr_names)) könnten Sie natürlich auch schreiben select(n_facebook_friends, ...), wobei Sie für die drei Punkte alle Variablen von Interesse nennen würden.

Praktischerweise kann man describe_distribution auch für gruppierte Datensätze nutzen, um so gruppierte Verteilungsmaße zu bekommen:

extra |> 
  group_by(sex) |> 
  describe_distribution(extra_mean)

10.10.2 Deskriptive Ergebnisse für nominale Variablen

10.10.2.1 Univariate Häufigkeiten

Lassen wir uns die Häufigkeiten für sex und für smoker ausgeben, also für jede Variable separat (univariat).

Mit tidyverse kann man das in vertrauter Manier bewerkstelligen:

extra |> 
  count(sex)

Etwas schicker sieht es aus mit data_tabulate aus easystats:

extra |> 
  select(sex) |> 
  #drop_na() |>  ggf. ohne fehlende Werte
  data_tabulate()
## sex (sex) <character>
## # total N=826 valid N=815
## 
## Value |   N | Raw % | Valid % | Cumulative %
## ------+-----+-------+---------+-------------
## Frau  | 529 | 64.04 |   64.91 |        64.91
## Mann  | 286 | 34.62 |   35.09 |       100.00
## <NA>  |  11 |  1.33 |    <NA> |         <NA>

10.10.2.2 Bivariate Häufigkeiten

Wir können uns auch die bivariaten Häufigkeiten ausgeben lassen: Betrachten wir die Geschlechtsverteilung bei Menschen, die (nicht) jünger als 20 Jahre sind:

extra |> 
  drop_na(sex, age) |>  # fehlende Werte entfernt
  group_by(age > 20) |> 
  data_tabulate(sex)
Frequency Table
Variable Group Value N Raw % Valid % Cumulative %
sex age > 20 (FALSE) Frau 89 74.17 74.17 74.17
Mann 31 25.83 25.83 100.00
(NA) 0 0.00 (NA) (NA)
sex age > 20 (TRUE) Frau 437 63.43 63.43 63.43
Mann 252 36.57 36.57 100.00
(NA) 0 0.00 (NA) (NA)

10.10.3 Korrelationen darstellen

In einer Umfrage erhebt man häufig mehrere Variablen, ein Teil davon oft Konstrukte. Es bietet sich in einem ersten Schritt an, die Korrelationen dieser Variablen untereinander darzustellen.

10.10.3.1 Korrelationsmatrix

Parameter extra_mean n_party extra_single_item age n_hangover
n_facebook_friends 0.05 0.08 0.07 -0.03 0.13
n_hangover 0.06 0.34 -0.02 -0.06 NA
age -0.14 -0.21 -0.03 NA NA
extra_single_item 0.57 0.06 NA NA NA
n_party 0.25 NA NA NA NA
extra %>% 
  select(any_of(extra_corr_names)) %>%  
  correlation() %>% 
  summary() 

Sie möchten das Ergebnis als normalen R-Dataframe? Sie haben keine Lust auf dieses Rumgetue, sondern wollen das lieber als selber geradeziehen. Also gut:

cor_results <- 
extra %>% 
  select(any_of(extra_corr_names)) %>%  
  correlation() %>% 
  summary()

cor_results

Man kann sich die Korrelationsmatrix auch in der Bayes-Geschmacksrichtung ausgeben lassen:

extra %>% 
  select(any_of(extra_corr_names)) %>%  
  correlation(bayesian = TRUE) %>% 
  summary() %>% 
  kable(digits = 2)
Parameter extra_mean n_party extra_single_item age n_hangover
n_facebook_friends 0.05 0.08 0.07 -0.03 0.13
n_hangover 0.06 0.33 -0.02 -0.06 NA
age -0.14 -0.21 -0.03 NA NA
extra_single_item 0.57 0.06 NA NA NA
n_party 0.25 NA NA NA NA

10.10.3.2 Korrelationsmatrizen visualisieren

Viele R-Pakete bieten sich an. Nehmen wir {easystats}.

extra %>% 
  select(any_of(extra_corr_names)) %>%  
  correlation() %>% 
  summary() %>% 
  plot() +
  labs(title = "Korrelationsmatrix, boa")

10.11 Aufgaben

Auf dem Datenwerk finden Sie eine Anzahl an Aufgaben zum Thema Datenanalyse. Schauen Sie sich mal die folgenden Tags an:

10.12 Fallstudien

Fallstudien zur explorativen Datenanalyse (EDA; d.h. deskriptive Statistik und Datenvisualisierung) finden Sie z. B. im Datenwerk: