Kapitel 5 Normierung

5.1 R-Pakete

In diesem Kapitel benötigen wir folgende R-Pakete:

library(tidyverse)  # Datenjudo
library(sjmisc)  # Datenhausmeister
library(mice)  # fehlende Daten imputieren

5.1.1 Daten

data_url <- "https://raw.githubusercontent.com/sebastiansauer/modar/master/datasets/extra.csv"
extra <- read_csv(data_url)

5.2 Vergleich mit Normierungsstichprobe

Satow (2012) berichtet Normierungswerte, leider aber nur für die Allgemeinbevölkerung, nicht heruntergebrochen auf Geschlechter- oder Altersgruppen. Für Extraversion berichtet er folgende Daten:

  • Summenscore: 26,67
  • Standardabweichung: 5,74

Auf Errisch:

extra_sum_normstipro <- 26.67
extra_sd_normstipro <- 5.74

Ob die Daten normal verteilt sind, wird in der Publikation nicht erwähnt. Wir gehen im Folgenden davon aus. Allerdings ist es ein Manko, wenn diese Information nicht gegeben ist. Weiter berichtet Satow (2012) nicht, ob fehlende Werte die Summenscores verringert haben bzw. wie er ggf. mit diesem Problem umgegangen ist. Bevor wir den Vergleich mit der Normierungsstichprobe heranziehen können, müssen wir uns um fehlende Werte kümmern.

5.2.1 Anzahl der fehlenden Werte

Eine Möglichkeit, fehlende Werte zu zählen, sieht so aus:

extra %>% 
  row_count(i01:i10, count = "na") %>% 
  count(rowcount)
#> # A tibble: 1 × 2
#>   rowcount     n
#>      <int> <int>
#> 1        0   826

Wir haben Glück; es gibt keine fehlenden Werte in diesem Datensatz. Aber haben wir wirklich Glück? Vermutlich wurden die Respondenten gezwungen, alle Fragen zu beantworten. Vielleicht wurden sie damit ordentlich genervt und haben zur Strafe Blümchen gekreuzt? Wir wissen es nicht genau, sollten aber die Datenqualität noch einmal überprüfen.

5.2.2 Vertiefung: Fehlende Werte ersetzen

Das Ersetzen fehlender Werte ist eine Wissenschaft für sich, aber ein einfacher (alldieweil nicht optimaler) Weg besteht darin, die fehlenden Werte durch den Mittelwert des Items zu ersetzen. Ein Item wurde im Schnitt mit 3,2 beantwortet, aber für Alois fehlt der Wert? Okay, ersetzen wir den fehlenden Wert für dieses Items mit 3,2.

daten <- data_frame(
  namen = c("Alois", "Bertram", "Zenzi"),
  i1 = c(1, 1, NA),
  i2 = c(3, 2, NA),
  i3 = c(NA, 2, 4)
)

daten
#> # A tibble: 3 × 4
#>   namen      i1    i2    i3
#>   <chr>   <dbl> <dbl> <dbl>
#> 1 Alois       1     3    NA
#> 2 Bertram     1     2     2
#> 3 Zenzi      NA    NA     4

Für i1 ist “1” eine plausible Schätzung für den fehlenden Wert, bei i2 ist “3” sinnvoll und bei i3 “4”, also jeweils der Zeilenmittelwert.

daten_imp <- 
  daten %>% 
  mice(method = "mean")
#> 
#>  iter imp variable
#>   1   1  i2  i3
#>   1   2  i2  i3
#>   1   3  i2  i3
#>   1   4  i2  i3
#>   1   5  i2  i3
#>   2   1  i2  i3
#>   2   2  i2  i3
#>   2   3  i2  i3
#>   2   4  i2  i3
#>   2   5  i2  i3
#>   3   1  i2  i3
#>   3   2  i2  i3
#>   3   3  i2  i3
#>   3   4  i2  i3
#>   3   5  i2  i3
#>   4   1  i2  i3
#>   4   2  i2  i3
#>   4   3  i2  i3
#>   4   4  i2  i3
#>   4   5  i2  i3
#>   5   1  i2  i3
#>   5   2  i2  i3
#>   5   3  i2  i3
#>   5   4  i2  i3
#>   5   5  i2  i3

daten2 <- complete(daten_imp, 1)

Wie wir sehen, wurde in jeder Spalte jeder fehlende Wert durch den Spalten-Mittelwert ersetzt.

5.2.3 z-Werte auf Basis der Normierungsstichprobe

Im Handbuch sind, wie oben beschrieben, nur Mittelwert und Streuung des Summenwerts, nicht des Mittelwerts angegeben, also müssen wir mit diesen Werten arbeiten:

extra <- extra %>% 
  row_sums(i01:i10, n = .9, var = "extra_sum")

Zuerst berechnen wir von Hand den z-Score auf Basis der Normierungsstichprobe:

extra <- extra %>% 
  mutate(extra_z_normstipro = (extra_sum - extra_sum_normstipro) / extra_sd_normstipro) %>% 
  mutate(extra_percrank_normstipro = pnorm(extra_z_normstipro)) 

extra %>% 
  select(extra_z_normstipro, extra_percrank_normstipro) %>% 
  slice_head(n = 5)
#> # A tibble: 5 × 2
#>   extra_z_normstipro extra_percrank_normstipro
#>                <dbl>                     <dbl>
#> 1              0.406                     0.658
#> 2             -0.988                     0.162
#> 3             -0.117                     0.454
#> 4              0.406                     0.658
#> 5              0.929                     0.823

5.2.4 Konfidenzintervalle für den Personenparameter

Sicherlich ist unsere Messung der Extraversion nicht perfekt; wir müssen davon ausgehen, dass ein Messfehler vorliegt. Eine Berechnungsvorschrift für den Messfehler sieht so aus (Bühner 2011):

\[\sigma^2_{E_X} = \sigma^2_X \cdot(1-\rho_{tt})\]