Kapitel 8 Fallstudie Normierung

8.1 Explorative Datenanalyse

data_url <- "https://raw.githubusercontent.com/sebastiansauer/modar/master/datasets/extra.csv"
extra <- read_csv(data_url)
extra %>% 
  select(extra_mean, n_facebook_friends, n_hangover, age, sex, time_conversation, sleep_week, sleep_wend) %>% 
  describe_distribution()
#> Variable           |     Mean |       SD |    IQR |            Range | Skewness | Kurtosis |   n | n_Missing
#> ------------------------------------------------------------------------------------------------------------
#> extra_mean         |     2.89 |     0.45 |   0.60 |     [1.20, 4.00] |    -0.43 |    -0.11 | 822 |         4
#> n_facebook_friends |   532.61 |  3704.48 | 300.00 | [0.00, 96055.00] |    25.67 |   662.76 | 671 |       155
#> n_hangover         |     9.47 |    30.72 |   9.00 |   [0.00, 738.00] |    17.54 |   399.53 | 800 |        26
#> age                |    25.50 |     5.75 |   6.00 |   [18.00, 54.00] |     1.81 |     4.39 | 813 |        13
#> time_conversation  | 1.34e+06 | 3.65e+07 |  10.00 | [0.00, 1.00e+09] |    27.37 |   749.00 | 749 |        77
#> sleep_week         |    18.00 |    26.98 |   2.00 |    [5.00, 85.00] |     2.16 |     3.46 |  12 |       814
#> sleep_wend         |     8.25 |     1.22 |   2.75 |    [7.00, 10.00] |     0.52 |    -1.27 |  12 |       814

8.2 Normwerte berechnen

8.2.1 Hilfsfunktionen

Zwei Hilfskräfte (in Form von R-Funktionen) brauchen wir: Die erste Funktion berechnet Normwerte, s.Infos here:

convert_to_norm_value <- 
  function(score, data_vec, mu = 0, sigma = 1) {
  numerator <- (score - mean(data_vec, na.rm = TRUE))
  out <-  (numerator / sd(data_vec)) * sigma + mu
  return(out)
}

Probieren wir es aus. Aber zuerst müssen wir die NA entfernen, da das convert_to_norm_value nicht kann.

extra_drop_na <- 
extra %>% 
  select(extra_mean) %>% 
  drop_na()
  
convert_to_norm_value(score = 3, data_vec = extra_drop_na$extra_mean)
#> [1] 0.2415975

Diese Funktion wenden wir für mehrere Normierungsarten an, im Rahmen einer zweiten Funktion:

compute_all_norms <- function(x, min_score = 0, max_score = max(x), by = .5){
  
  x_ecdf <- ecdf(x)  # empircal cumulative distribution function - gives back function
  
  out <-
    tibble(
      score = seq(from = min_score, to = max_score, by = by),
      perc_rank = x_ecdf(score),
      z = map_dbl(score, ~ convert_to_norm_value(.x, data_vec = x)),
      stanine = map_dbl(score, ~ convert_to_norm_value(.x, data_vec = x, mu = 5, sigma = 2)),
      T = map_dbl(score, ~ convert_to_norm_value(.x, data_vec = x, mu = 50, sigma = 10)),
      perc_normal = map_dbl(z, pnorm)
    ) %>% 
    mutate(stanine = case_when(
      stanine > 9 ~ 9,
      stanine < 1 ~ 1,
      TRUE ~ stanine
    ))
  return(out)
}

8.2.2 Normwerte berechnen

extra %>% 
  select(ends_with("_mean")) %>% 
  drop_na() %>% 
  map(~ kable(compute_all_norms(., min_score = 1, max_score = 4, by = .1), 
                     digits = 2)) %>% 
  print()

$extra_mean

score perc_rank z stanine T perc_normal
1.0 0.00 -4.19 1.00 8.13 0.00
1.1 0.00 -3.97 1.00 10.35 0.00
1.2 0.00 -3.74 1.00 12.56 0.00
1.3 0.00 -3.52 1.00 14.78 0.00
1.4 0.00 -3.30 1.00 16.99 0.00
1.5 0.00 -3.08 1.00 19.20 0.00
1.6 0.00 -2.86 1.00 21.42 0.00
1.7 0.01 -2.64 1.00 23.63 0.00
1.8 0.02 -2.42 1.00 25.85 0.01
1.9 0.03 -2.19 1.00 28.06 0.01
2.0 0.05 -1.97 1.06 30.28 0.02
2.1 0.08 -1.75 1.50 32.49 0.04
2.2 0.10 -1.53 1.94 34.70 0.06
2.3 0.12 -1.31 2.38 36.92 0.10
2.4 0.16 -1.09 2.83 39.13 0.14
2.5 0.21 -0.87 3.27 41.35 0.19
2.6 0.28 -0.64 3.71 43.56 0.26
2.7 0.36 -0.42 4.15 45.77 0.34
2.8 0.43 -0.20 4.60 47.99 0.42
2.9 0.51 0.02 5.04 50.20 0.51
3.0 0.60 0.24 5.48 52.42 0.60
3.1 0.69 0.46 5.93 54.63 0.68
3.2 0.78 0.68 6.37 56.84 0.75
3.3 0.85 0.91 6.81 59.06 0.82
3.4 0.90 1.13 7.25 61.27 0.87
3.5 0.94 1.35 7.70 63.49 0.91
3.6 0.97 1.57 8.14 65.70 0.94
3.7 0.99 1.79 8.58 67.91 0.96
3.8 1.00 2.01 9.00 70.13 0.98
3.9 1.00 2.23 9.00 72.34 0.99
4.0 1.00 2.46 9.00 74.56 0.99
Bühner, M. 2011. Einführung in Die Test- Und Fragebogenkonstruktion. PS Psychologie. Hallbergmoos: Pearson Studium. https://books.google.de/books?id=Y4990CfV3wgC.
Lienert, Gustav A., and Ulrich Raatz. 1998. Testaufbau Und Testanalyse. 6. Auflage. Weinheim: Beltz, Psychologie Verlags Union.
Mair, Patrick. 2018. Modern Psychometrics with r. New York, NY: Springer Science+Business Media.
Satow, L. 2012. SCI - Stress- und Coping-Inventar.” https://doi.org/10.23668/PSYCHARCHIVES.4604.
———. 2020. “B5T®. Big-Five-Persönlichkeitstest.” https://doi.org/10.23668/PSYCHARCHIVES.4611.
Sauer, Sebastian. 2019. Moderne Datenanalyse Mit r: Daten Einlesen, Aufbereiten, Visualisieren Und Modellieren. 1. Auflage 2019. FOM-Edition. Wiesbaden: Springer. https://www.springer.com/de/book/9783658215866.
Steyer, Rolf, and Michael Eid. 1993. Messen Und Testen. Heidelberg: Springer.