Mit dem Paket naniar
sind die oben dargestellten Schritte viel schneller und leichter darzustellen. Das Paket schafft dabei auch immer einen ggplot
, so dass die oben gelernten Anpassungen auch hier möglich sind. Zuerst nutzen wir Funktionen, um uns Tabellen mithilfe von naniar
ausgeben zu lassen. Die Erste ist die Funktion miss_var_summary()
, die uns die absolute und relative Häufigkeit von missings in den Variablen ausgibt.
pss %>%
miss_var_summary()
## # A tibble: 14 × 3
## variable n_miss pct_miss
## <chr> <int> <num>
## 1 edu 352 7.04
## 2 agea 157 3.14
## 3 stfdem 95 1.9
## 4 trstprl 35 0.7
## 5 trstprt 17 0.34
## 6 trstlgl 12 0.24
## 7 trstplt 11 0.22
## 8 lrscale 7 0.14
## 9 stfeco 6 0.12
## 10 idno 0 0
## 11 district 0 0
## 12 gndr 0 0
## 13 wkhtot 0 0
## 14 income 0 0
Dies können wir auch gruppieren:
pss %>%
group_by(district) %>%
miss_var_summary()
## # A tibble: 65 × 4
## # Groups: district [5]
## district variable n_miss pct_miss
## <fct> <chr> <int> <num>
## 1 Distrikt 1 edu 30 3
## 2 Distrikt 1 stfdem 16 1.6
## 3 Distrikt 1 trstprl 8 0.8
## 4 Distrikt 1 trstprt 4 0.4
## 5 Distrikt 1 lrscale 2 0.2
## 6 Distrikt 1 trstlgl 1 0.1
## 7 Distrikt 1 idno 0 0
## 8 Distrikt 1 gndr 0 0
## 9 Distrikt 1 agea 0 0
## 10 Distrikt 1 wkhtot 0 0
## # ℹ 55 more rows
Zuerst können wir uns eine Verteilung der missings im Datensatz ausgeben lassen. Die Funktion gg_miss_var_cumsum()
gibt uns die kumulierte Summe der missings pro Variable aus. Hieran kann man also ablesen, wie sich die missings auf die Variablen verteilen.
gg_miss_var_cumsum(pss)
Die Funktion vis_miss()
visualisiert die missings eines gesamten Datensatzes (außer wir grenzen ein).
vis_miss(pss)
Eine weitere ansprechende Alternative ist die Funktion gg_miss_upset()
aus dem Paket naniar
. Hierbei werden auch die Häufigkeiten der Kombination der missings zwischen den Variablen angezeigt. Aber auch dies wird bei allzu großen Datensätzen schnell unübersichtlich. Für Teilbereich kann das aber aufschlussreich sein (z.B. wenn man prüfen möchte, ob Personen nur Teile einer Itembatterie oder die Itembatterie komplett nicht beantwortet haben).
gg_miss_upset(pss)
In der Grafik sieht man, dass die vier Variablen trstprt
, trtprl
, stfdem
und agea
edu
haben. Insgesamt gibt es folgende Kombinationen:
edu
NA
haben,agea
NA
haben,stfdem
NA
haben,trstprl
NA
haben,trstprt
haben,stfdem
und edu
NA
haben,agea
und edy
NA
haben,trstprl
und edu
NA
haben,stfdem
und agea
NA
haben,trstprt
und edu
NA
haben,trstprl
und stfdem
NA
haben,trstprt
und agea
NA
haben,Insgesamt gilt, dass die maximale Anzahl an Kombinationen wie folgt berechnet wird: \(2^{Anzahl Variable} - 1\). In diesem Fall wären es 31 mögliche Kombinationen, angezeigt werden aber nur 12. Warum?
Daneben können missings zweier Variablen auch über die Funktion geom_miss_point()
ganz leicht in einem ggplot
dargestellt werden:
ggplot(
pss,
aes(
x = district,
y = agea
)
) +
geom_miss_point()
So kann man ganz leicht sehen, ob die missings sich eventuell bei einer bestimmten Kombination häufen.
Alternativ kann man auch noch die Funktionen gg_miss_var()
und gg_miss_fct()
nutzen.
Mit der Funktion gg_miss_var()
wird die Anzahl der missings dargestellt. Mit dem Argument facet
kann man dies auch auf einzelne Ausprägungen runterbrechen. So kann man sehen, ob evtl. eine Gruppe deutlich mehr missings aufweist, als eine andere Gruppe.
gg_miss_var(
pss,
facet = district
)
Mit der Funktion
gg_miss_fct()
können missings visuell sehr schön aufbereitet werden.
gg_miss_fct(
x = pss,
fct = district
)
Auch das kann man sich wieder nach Ausprägungen auf einer weiteren Variable ausgeben lassen, um zu sehen, ob es starke Gruppenunterschiede gibt:
gg_miss_fct(
x = pss,
fct = district
) +
labs(title = "NA in PSS nach Distrikt")
Das war’s zu missing values!