Diese Analyse untersucht die Ergebnisse eines Eisnamkeits-Fragebogens
mit einer fünfstufigen Likert-Skala von 1 = stimme gar nicht zu bis zu 5
= stimme voll zu.
Der Fokus liegt auf:
- der Verteilung der
Antworten
- der Streuung und
Polarisierung
- dem Vergleich von Median und
arithmetischem Mittel
daten <- read_excel("D:/User/Erik/Downloads/data.xlsx")
glimpse(daten)
## Rows: 11
## Columns: 13
## $ Q01 <dbl> 4, 1, 2, 2, 5, 1, 2, 1, 3, 3, 4
## $ Q02 <dbl> 4, 2, 2, 3, 2, 1, 2, 2, 3, 3, 2
## $ Q03 <dbl> 4, 1, 1, 1, 3, 1, 3, 1, 2, 2, 2
## $ Q04 <dbl> 5, 4, 4, 5, 5, 1, 5, 5, 2, 1, 4
## $ Q05 <dbl> 3, 2, 1, 3, 5, 5, 3, 2, 4, 1, 3
## $ Q06 <dbl> 4, 1, 1, 2, 5, 2, 2, 1, 3, 1, 5
## $ Q07 <dbl> 3, 2, 1, 1, 2, 1, 2, 1, 1, 3, 1
## $ Q08 <dbl> 2, 4, 3, 1, 1, 3, 5, 3, 2, 1, 2
## $ Q09 <dbl> 4, 1, 2, 2, 4, 1, 2, 1, 4, 1, 4
## $ Q10 <dbl> 2, 1, 2, 2, 4, 1, 4, 1, 3, 1, 1
## $ Q11 <dbl> 3, 1, 1, 2, 2, 2, 2, 1, 2, 2, 3
## $ Q12 <dbl> 3, 2, 1, 2, 4, 1, 2, 2, 2, 2, 1
## $ Q13 <dbl> 3, 4, 4, 3, 2, 4, 3, 4, 4, 4, 5
summary(daten)
## Q01 Q02 Q03 Q04
## Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:1.500 1st Qu.:2.000 1st Qu.:1.000 1st Qu.:3.000
## Median :2.000 Median :2.000 Median :2.000 Median :4.000
## Mean :2.545 Mean :2.364 Mean :1.909 Mean :3.727
## 3rd Qu.:3.500 3rd Qu.:3.000 3rd Qu.:2.500 3rd Qu.:5.000
## Max. :5.000 Max. :4.000 Max. :4.000 Max. :5.000
## Q05 Q06 Q07 Q08
## Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:2.000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.500
## Median :3.000 Median :2.000 Median :1.000 Median :2.000
## Mean :2.909 Mean :2.455 Mean :1.636 Mean :2.455
## 3rd Qu.:3.500 3rd Qu.:3.500 3rd Qu.:2.000 3rd Qu.:3.000
## Max. :5.000 Max. :5.000 Max. :3.000 Max. :5.000
## Q09 Q10 Q11 Q12 Q13
## Min. :1.000 Min. :1.0 Min. :1.000 Min. :1.0 Min. :2.000
## 1st Qu.:1.000 1st Qu.:1.0 1st Qu.:1.500 1st Qu.:1.5 1st Qu.:3.000
## Median :2.000 Median :2.0 Median :2.000 Median :2.0 Median :4.000
## Mean :2.364 Mean :2.0 Mean :1.909 Mean :2.0 Mean :3.636
## 3rd Qu.:4.000 3rd Qu.:2.5 3rd Qu.:2.000 3rd Qu.:2.0 3rd Qu.:4.000
## Max. :4.000 Max. :4.0 Max. :3.000 Max. :4.0 Max. :5.000
Berechnung zentraler Lage- und Streuungsmaße für jede Frage:
statistik <- daten %>%
summarise(across(
everything(),
list(
Mittelwert = mean,
Median = median,
Standardabweichung = sd,
Varianz = var
)
)) %>%
pivot_longer(
cols = everything(),
names_to = c("Frage", "Kennwert"),
names_sep = "_"
) %>%
pivot_wider(names_from = Kennwert, values_from = value)
statistik
## # A tibble: 13 × 5
## Frage Mittelwert Median Standardabweichung Varianz
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Q01 2.55 2 1.37 1.87
## 2 Q02 2.36 2 0.809 0.655
## 3 Q03 1.91 2 1.04 1.09
## 4 Q04 3.73 4 1.62 2.62
## 5 Q05 2.91 3 1.38 1.89
## 6 Q06 2.45 2 1.57 2.47
## 7 Q07 1.64 1 0.809 0.655
## 8 Q08 2.45 2 1.29 1.67
## 9 Q09 2.36 2 1.36 1.85
## 10 Q10 2 2 1.18 1.4
## 11 Q11 1.91 2 0.701 0.491
## 12 Q12 2 2 0.894 0.8
## 13 Q13 3.64 4 0.809 0.655
Die folgenden Histogramme zeigen, wie häufig einzelne Antwortkategorien pro Frage gewählt wurden.
daten_long <- daten %>%
pivot_longer(cols = everything(), names_to = "Frage", values_to = "Antwort")
ggplot(daten_long, aes(x = Antwort)) +
geom_histogram(
binwidth = 1,
fill = "#4C72B0",
color = "white"
) +
scale_x_continuous(breaks = 1:5, limits = c(0.5, 5.5)) +
facet_wrap(~ Frage, ncol = 3) +
labs(
title = "Häufigkeitsverteilungen der Antworten",
x = "Antwortskala (1 = stimme gar nicht zu … 5 = stimme voll zu)",
y = "Häufigkeit"
) +
theme_minimal(base_size = 12)
Boxplots zur Visualisierung von: - Median - Interquartilsabstand -
Ausreißern
Zusätzlich wird das arithmetische Mittel markiert.
ggplot(daten_long, aes(x = Frage, y = Antwort)) +
geom_boxplot(
fill = "#55A868",
alpha = 0.7,
outlier.color = "#C44E52"
) +
stat_summary(
fun = mean,
geom = "point",
shape = 18,
size = 3,
color = "#DD8452"
) +
scale_y_continuous(breaks = 1:5, limits = c(0.5, 5.5)) +
labs(
title = "Streuung der Antworten pro Frage",
subtitle = "Box = IQR (Q1-Q3), Linie = Median, ♦ = arithmetisches Mittel",
y = "Antwortskala",
x = "Frage"
) +
theme_minimal(base_size = 12)
Bei einer fünfstufigen Likert-Skala habe ich mich für folgende Einordnung entschieden:
statistik %>%
mutate(
Streuungskategorie = case_when(
Standardabweichung < 0.8 ~ "gering",
Standardabweichung < 1.3 ~ "mittel",
TRUE ~ "hoch"
)
)
## # A tibble: 13 × 6
## Frage Mittelwert Median Standardabweichung Varianz Streuungskategorie
## <chr> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 Q01 2.55 2 1.37 1.87 hoch
## 2 Q02 2.36 2 0.809 0.655 mittel
## 3 Q03 1.91 2 1.04 1.09 mittel
## 4 Q04 3.73 4 1.62 2.62 hoch
## 5 Q05 2.91 3 1.38 1.89 hoch
## 6 Q06 2.45 2 1.57 2.47 hoch
## 7 Q07 1.64 1 0.809 0.655 mittel
## 8 Q08 2.45 2 1.29 1.67 mittel
## 9 Q09 2.36 2 1.36 1.85 hoch
## 10 Q10 2 2 1.18 1.4 mittel
## 11 Q11 1.91 2 0.701 0.491 gering
## 12 Q12 2 2 0.894 0.8 mittel
## 13 Q13 3.64 4 0.809 0.655 mittel