-
Notifications
You must be signed in to change notification settings - Fork 0
/
030-Normierung.Rmd
153 lines (95 loc) · 3.84 KB
/
030-Normierung.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# Normierung
```{r knitr-setup, echo = FALSE}
knitr::opts_chunk$set(
comment = "#>",
collapse = TRUE,
message = FALSE,
warning = FALSE,
cache = TRUE,
out.width = "70%",
fig.align = 'center',
fig.width = 6,
fig.asp = 0.618, # 1 / phi
fig.show = "hold",
# size = "tiny",
tidy.opts=list(width.cutoff = 80) #,
# tidy=TRUE
)
```
## R-Pakete
In diesem Kapitel benötigen wir folgende R-Pakete:
```{r message=FALSE}
library(tidyverse) # Datenjudo
library(sjmisc) # Datenhausmeister
library(mice) # fehlende Daten imputieren
```
### Daten
```{r load-extra-web}
data_url <- "https://raw.githubusercontent.com/sebastiansauer/modar/master/datasets/extra.csv"
extra <- read_csv(data_url)
```
## Vergleich mit Normierungsstichprobe
@Satow2012 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:
```{r}
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 @Satow2012 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.
### Anzahl der fehlenden Werte
Eine Möglichkeit, fehlende Werte zu zählen, sieht so aus:
```{r}
extra %>%
row_count(i01:i10, count = "na") %>%
count(rowcount)
```
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.
### 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.
```{r}
daten <- data_frame(
namen = c("Alois", "Bertram", "Zenzi"),
i1 = c(1, 1, NA),
i2 = c(3, 2, NA),
i3 = c(NA, 2, 4)
)
daten
```
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.
```{r}
daten_imp <-
daten %>%
mice(method = "mean")
daten2 <- complete(daten_imp, 1)
```
Wie wir sehen, wurde in jeder *Spalte* jeder fehlende Wert durch den Spalten-Mittelwert ersetzt.
### z-Werte auf Basis der Normierungsstichprobe
Im Handbuch sind, wie oben beschrieben, nur Mittelwert und Streuung des *Summen*werts, nicht des *Mittel*werts angegeben, also müssen wir mit diesen Werten arbeiten:
```{r}
extra <- extra %>%
row_sums(i01:i10, n = .9, var = "extra_sum")
```
Zuerst berechnen wir von Hand den z-Score auf Basis der Normierungsstichprobe:
```{r}
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)
```
### 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 [@Buhner2011]:
$$\sigma^2_{E_X} = \sigma^2_X \cdot(1-\rho_{tt})$$