Fehlende Werte
Letzte Änderung am 03. März 2021
Im Folgenden wollen wir einen Datensatz hinsichtlich der fehlenden Werte (Missings) beurteilen. Dazu schauen wir, ob die fehlenden Werte korrekt kodiert sind, wie viele und auf welchen Variablen bzw. in welchen Fällen diese vorhanden sind, ob sie zufällig sind und wie wir mit ihnen umgehen können.
Die Aufgabenstellungen hier überschneiden sich teilweise mit denen aus der Übung zur Datenvorbereitung. Wir arbeiten hier aber mit anderen Datensätzen.
In dieser querschnittlichen Studie untersuchten Hussey & De Houwer inwieweit Personen normativ unmissverständlichen kausalen Aussagen zustimmen (z.B. X ruft Y hervor: Witze rufen Gelächter hervor).
Mehr Informationen zur Studie befinden sich auf der OSF-Seite. Den Datensatz finden wir hier; ein Codebuch dazu hier.
Nach dem Herunterladen, können wir den Datensatz folgendermaßen in R einlesen:
data_a <- read.csv("Dateipfad/group_a.csv") # hier den eigenen Dateipfad einfügen
Wir entfernen noch einige für uns irrelevante Informationen zur Erhebung:
data_a <- data_a[,-c(2:7, 9, 145:153)]
statements..c1.
, statements..c2.
. statements..c3.
und statements..c4.
aus dem Datensatz den Variablen catch_1
, catch_2
, catch_3
und catch_4
entsprechen.
In der Studie untersuchen Glenn & Teachman, inwiefern sich Menschen mit geringer und starker Sozialangst bezüglich ihrer Bewertung von zukünftigen emotionalen Situationen unterscheiden.
Den Datensatz finden wir hier; ein detailliertes Codebuch mit weiteren Informationen zur Studie hier.
Den Datensatz können wir, nachdem wir ihn heruntergeladen haben, folgendermaßen in R einlesen:
Da der Datensatz aus 479 Variablen besteht, wollen wir unsere Auswahl etwas eingrenzen. Wir schauen uns nur folgende Variablen an:
# nur Daten aus dem Pretest
data_b <- data_b[, c(1:4, 6:7, # soziodemographische Variablen
12:13, 24:27, 30:49, 75:94)] # Pretest Variables
# wir schauen uns nur die umkodierten Pretest Variablen an
# d.h. jene ohne "_orig"
Bevor wir uns die fehlenden Werte genauer anschauen können, ist es sinnvoll, einen Plausibilitätscheck durchzuführen. Damit überprüfen wir, ob fehlende Werte auch korrekt kodiert sind, d.h. mit NA
.
1.) Gibt es fehlende Werte im Datensatz, die nicht mit NA
kodiert sind?
# sortierte Ausprägungen der Variablen inklusive NAs anzeigen:
sapply(sapply(data_a, unique), sort, na.last=TRUE)
$id
[1] 1 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151
[17] 161 171 181 191 201 211 221 231 241 251 261 271 281 291 301 311
[33] 321 331 341 351 361 371 381 391 401 411 421 431 441 451 461 471
[49] 481 491 501 511 521 531 541 551 561 571 581 591 601 611 621 631
[65] 641 651 661 671 681 691 701
$consent
[1] "" "Y"
$age
[1] 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 44
[23] 46 49 51 53 54 56 61 NA
$gender
[1] "" "f" "m"
$gender...comment
[1] ""
[2] "Comment? Thanks for the opportunity? Unsure why there is a comment box before the task is completed, but that's okay."
[3] "have a good day"
[4] "N/A"
$statements..1.
[1] 1 2 3 5 NA
$statements..2.
[1] 1 2 3 4 NA
$statements..3.
[1] 1 2 3 4 5 NA
$statements..4.
[1] 1 2 3 4 NA
$statements..5.
[1] 1 2 3 5 NA
$statements..6.
[1] 1 2 3 4 NA
$statements..7.
[1] 1 2 3 4 5 NA
$statements..8.
[1] 3 4 5 NA
$statements..9.
[1] 1 2 3 4 NA
$statements..10.
[1] 3 4 5 NA
$statements..11.
[1] 1 2 3 4 5 NA
$statements..12.
[1] 1 2 3 4 NA
$statements..13.
[1] 1 2 3 4 5 NA
$statements..14.
[1] 1 2 3 4 NA
$statements..15.
[1] 1 2 3 4 NA
$statements..16.
[1] 2 4 5 NA
$statements..17.
[1] 1 2 3 4 5 NA
$statements..18.
[1] 1 2 3 4 NA
$statements..19.
[1] 1 2 3 4 5 NA
$statements..20.
[1] 1 2 3 4 5 NA
$statements..21.
[1] 1 2 3 4 5 NA
$statements..22.
[1] 1 2 4 NA
$statements..23.
[1] 1 2 3 4 5 NA
$statements..24.
[1] 1 2 3 NA
$statements..25.
[1] 1 2 3 4 NA
$statements..26.
[1] 1 2 NA
$statements..27.
[1] 1 2 3 4 5 NA
$statements..28.
[1] 1 3 4 5 NA
$statements..29.
[1] 1 2 3 4 NA
$statements..30.
[1] 1 2 3 4 NA
$statements..31.
[1] 1 2 5 NA
$statements..32.
[1] 1 2 3 4 5 NA
$statements..33.
[1] 1 2 3 4 NA
$statements..34.
[1] 1 2 3 4 NA
$statements..35.
[1] 1 2 3 4 5 NA
$statements..36.
[1] 1 2 3 NA
$statements..37.
[1] 1 2 3 4 5 NA
$statements..38.
[1] 1 2 3 4 5 NA
$statements..39.
[1] 1 2 3 4 5 NA
$statements..40.
[1] 1 2 3 4 5 NA
$statements..41.
[1] 1 2 3 4 NA
$statements..42.
[1] 1 2 3 4 5 NA
$statements..43.
[1] 1 2 3 4 5 NA
$statements..44.
[1] 1 2 3 4 5 NA
$statements..45.
[1] 1 2 3 4 5 NA
$statements..46.
[1] 1 2 3 4 5 NA
$statements..47.
[1] 1 2 3 4 5 NA
$statements..48.
[1] 1 2 3 4 5 NA
$statements..49.
[1] 1 2 3 4 5 NA
$statements..50.
[1] 1 2 3 4 5 NA
$statements..51.
[1] 1 2 3 4 5 NA
$statements..52.
[1] 1 2 3 4 5 NA
$statements..53.
[1] 3 4 5 NA
$statements..54.
[1] 1 2 3 4 5 NA
$statements..55.
[1] 1 2 3 4 5 NA
$statements..56.
[1] 1 2 3 4 5 NA
$statements..57.
[1] 1 2 3 4 5 NA
$statements..58.
[1] 1 2 3 4 5 NA
$statements..59.
[1] 1 2 3 4 NA
$statements..60.
[1] 1 2 3 4 5 NA
$statements..61.
[1] 1 2 3 4 5 NA
$statements..62.
[1] 1 2 3 4 5 NA
$statements..63.
[1] 1 2 3 NA
$statements..64.
[1] 2 3 4 5 NA
$statements..65.
[1] 1 2 3 4 5 NA
$statements..66.
[1] 1 2 3 4 5 NA
$statements..67.
[1] 1 3 4 5 NA
$statements..68.
[1] 1 2 3 4 5 NA
$statements..69.
[1] 1 2 3 4 5 NA
$statements..70.
[1] 1 2 3 4 5 NA
$statements..71.
[1] 1 2 3 4 5 NA
$statements..72.
[1] 1 2 3 4 NA
$statements..73.
[1] 1 2 3 4 NA
$statements..74.
[1] 1 2 3 4 5 NA
$statements..75.
[1] 1 2 3 4 5 NA
$statements..76.
[1] 1 2 3 4 5 NA
$statements..77.
[1] 1 2 3 4 NA
$statements..78.
[1] 1 2 3 4 5 NA
$statements..79.
[1] 1 2 3 4 5 NA
$statements..80.
[1] 1 2 3 4 5 NA
$statements..81.
[1] 1 2 3 4 5 NA
$statements..82.
[1] 1 2 3 4 5 NA
$statements..83.
[1] 1 2 3 4 5 NA
$statements..84.
[1] 1 2 3 4 NA
$statements..85.
[1] 1 2 3 4 NA
$statements..86.
[1] 1 2 3 4 5 NA
$statements..87.
[1] 2 3 4 5 NA
$statements..88.
[1] 1 2 3 4 5 NA
$statements..89.
[1] 1 2 4 5 NA
$statements..90.
[1] 1 2 3 4 5 NA
$statements..91.
[1] 1 2 3 5 NA
$statements..92.
[1] 1 2 3 4 5 NA
$statements..93.
[1] 1 2 3 4 5 NA
$statements..94.
[1] 1 2 3 4 5 NA
$statements..95.
[1] 3 4 5 NA
$statements..96.
[1] 1 2 3 4 NA
$statements..97.
[1] 1 2 3 4 NA
$statements..98.
[1] 1 2 3 4 5 NA
$statements..99.
[1] 1 2 3 4 NA
$statements..100.
[1] 2 3 4 5 NA
$statements..101.
[1] 1 2 3 4 5 NA
$statements..102.
[1] 1 2 3 4 NA
$statements..103.
[1] 4 5 NA
$statements..104.
[1] 1 2 3 4 5 NA
$statements..105.
[1] 3 4 5 NA
$statements..106.
[1] 1 2 3 5 NA
$statements..107.
[1] 1 2 3 4 5 NA
$statements..108.
[1] 1 2 3 4 NA
$statements..109.
[1] 1 2 3 4 NA
$statements..110.
[1] 3 4 5 NA
$statements..111.
[1] 1 2 3 4 NA
$statements..112.
[1] 2 3 4 5 NA
$statements..113.
[1] 1 2 3 4 5 NA
$statements..114.
[1] 1 2 3 4 5 NA
$statements..115.
[1] 1 2 3 4 NA
$statements..116.
[1] 1 2 3 4 5 NA
$statements..117.
[1] 2 3 4 5 NA
$statements..118.
[1] 1 2 3 4 NA
$statements..119.
[1] 2 3 4 5 NA
$statements..120.
[1] 1 2 3 5 NA
$statements..121.
[1] 1 2 3 4 5 NA
$statements..122.
[1] 1 2 3 4 NA
$statements..123.
[1] 1 3 4 5 NA
$statements..124.
[1] 1 2 3 4 5 NA
$statements..125.
[1] 1 2 3 4 5 NA
$statements..126.
[1] 1 2 3 4 NA
$statements..127.
[1] 1 2 3 5 NA
$statements..128.
[1] 1 2 3 4 NA
$statements..c1.
[1] 4 NA
$statements..c2.
[1] 4 NA
$statements..c3.
[1] 1 2 4 NA
$statements..c4.
[1] 1 2 4 NA
In den Variablen consent
, gender
, gender...comment
kommt eine leere Ausprägung (""
) vor. Außerdem hat hat eine Person in der Variablen gender...comment
den Text N/A
angegeben. Dieser String wird allerdings nicht als korrekte NA
-Kodierung erkannt. Wir können in beiden Fällen davon ausgehen, dass dies Missings sind, die nicht richtig kodiert wurden.
# sortierte Ausprägungen der Variablen inklusive NAs anzeigen:
sapply(sapply(data_b, unique), sort, na.last=TRUE)
$P_ID
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
[17] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
[33] 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
[49] 49 50 51 52 53 54 55 56 57 58 59 61 63 64 65 66
[65] 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
[81] 83 84 85 86 87 88 89 90 91 92 93 94 95 96 98 99
[97] 100 101 102 103 104 105 107 108 109 110 111 112 113 114 115 116
[113] 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
[129] 133 134 135 136 137 138 139 141 142 143 144 145 146 147 148 149
[145] 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
[161] 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
[177] 182 183 184 185 186 187 188 189 190 191 192
$age
[1] 17 18 19 20 21 22 24 25 38
$gender
[1] Male Female
Levels: Male Female Other/Prefer not to answer
$race_white_yn
[1] 0 1 NA
$ethn
[1] Hispanic/Latino Not Hispanic/Latino Prefer not to answer
3 Levels: Hispanic/Latino ... Prefer not to answer
$race
[1] Asian Black or African American
[3] White More than one race
[5] Other Prefer not to answer
8 Levels: American Indian/Alaskan Native ... Prefer not to answer
$group
[1] Low SA High SA
Levels: Low SA High SA
$cond
[1] Negative speech evaluation Positive speech evaluation
Levels: Negative speech evaluation Positive speech evaluation
$preselect_curr_e1
[1] -100 -67 -65 -62 -61 -54 -51 -50 -47 -42 -36 -34 -32
[14] -31 -25 -23 -22 -21 -20 -19 -17 -16 -15 -14 -13 -12
[27] -11 -10 -9 -8 -7 -1 0 4 7 9 10 11 12
[40] 13 16 18 19 20 21 22 23 25 26 28 29 30
[53] 31 32 33 34 35 36 38 39 40 41 42 43 44
[66] 45 46 47 48 49 50 51 52 53 54 57 59 60
[79] 61 62 64 67 68 69 70 71 72 77 79 83 84
[92] 89 90 92 98 100 NA
$preselect_curr_e2
[1] -97 -67 -64 -57 -49 -44 -43 -32 -30 -27 -24 -23 -22 -21 -19 -17
[17] -16 -15 -13 -12 -9 -8 -7 -2 -1 0 3 4 5 6 9 10
[33] 11 12 13 14 15 16 17 19 20 21 22 23 25 26 27 28
[49] 29 30 31 32 33 34 35 37 38 41 42 43 45 46 47 48
[65] 49 52 53 54 55 57 61 62 63 64 66 67 68 69 72 74
[81] 82 83 86 100 NA
$preselect_curr_e3
[1] -100 -78 -69 -61 -58 -57 -50 -47 -45 -42 -39 -35 -31
[14] -30 -29 -28 -27 -26 -25 -24 -23 -21 -20 -19 -18 -17
[27] -16 -15 -14 -12 -11 -10 -9 -8 -7 -6 -4 -1 0
[40] 5 7 8 9 10 12 13 14 15 16 18 19 20
[53] 21 23 24 25 26 27 28 30 31 33 34 35 36
[66] 37 39 40 41 42 44 45 46 49 50 51 52 53
[79] 54 55 59 60 62 63 65 72 80 84 85 87 91
[92] 93 95 97 100 NA
$preselect_curr_e4
[1] -100 -67 -52 -45 -44 -43 -41 -37 -36 -35 -31 -30 -25
[14] -22 -21 -17 -16 -12 -11 -10 -8 -7 -6 -2 -1 0
[27] 1 2 3 4 5 7 8 9 10 11 12 14 15
[40] 16 17 18 20 21 22 23 24 25 26 27 28 29
[53] 30 31 34 36 37 38 41 42 43 44 45 46 47
[66] 48 49 50 51 52 54 55 57 59 61 64 67 71
[79] 72 73 74 75 78 80 81 85 86 87 88 90 95
[92] 100 NA
$preselect_ave_e1
[1] -100 -75 -69 -67 -51 -49 -48 -44 -42 -41 -40 -37 -36
[14] -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -24 -23 -22
[27] -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9
[40] -8 -5 -4 -3 -1 0 1 2 3 4 5 6 7
[53] 8 9 10 11 12 13 14 16 17 18 19 21 22
[66] 23 25 26 27 28 29 30 33 35 36 38 45 49
[79] 52 53 55 57 83 NA
$preselect_ave_e2
[1] -100 -56 -54 -52 -51 -48 -47 -44 -43 -41 -40 -39 -38
[14] -37 -34 -32 -31 -29 -28 -27 -25 -22 -20 -19 -18 -17
[27] -16 -15 -14 -13 -12 -11 -10 -9 -7 -6 -5 -3 -1
[40] 0 3 5 6 7 8 9 11 12 13 16 18 19
[53] 20 21 22 24 25 27 30 31 32 33 38 39 43
[66] 47 49 50 51 59 62 85 100 NA
$preselect_ave_e3
[1] -100 -69 -65 -63 -54 -53 -47 -45 -40 -35 -33 -32 -28
[14] -27 -26 -25 -22 -21 -20 -19 -18 -17 -16 -14 -13 -11
[27] -10 -9 -8 -7 -6 -5 -4 -3 -1 0 2 4 5
[40] 6 7 8 9 10 11 12 15 16 17 19 20 21
[53] 22 23 24 25 27 30 31 32 37 38 39 42 47
[66] 49 50 52 53 72 81 86 92 100 NA
$preselect_ave_e4
[1] -100 -91 -80 -72 -69 -63 -56 -53 -49 -47 -41 -40 -37
[14] -36 -35 -34 -32 -31 -30 -29 -26 -25 -22 -21 -20 -19
[27] -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6
[40] -5 -4 -1 1 2 3 4 5 7 8 9 10 11
[53] 12 13 14 16 19 21 22 23 25 27 28 29 30
[66] 31 34 35 36 38 40 43 45 52 55 57 65 86
[79] 87 100 NA
$preselect_e1
[1] -100 -97 -91 -90 -86 -85 -84 -81 -80 -78 -77 -74 -73
[14] -71 -70 -68 -66 -63 -62 -61 -58 -57 -56 -55 -54 -53
[27] -52 -51 -50 -49 -48 -47 -45 -44 -43 -41 -39 -38 -37
[40] -36 -35 -34 -33 -32 -31 -29 -28 -27 -25 -24 -23 -22
[53] -20 -19 -18 -17 -16 -9 -1 4 10 11 13 15 21
[66] 22 24 26 27 28 31 37 41 42 45 46 49 50
[79] 52 54 55 56 58 59 60 61 63 64 67 68 71
[92] 74 75 76 78 79 81 82 83 85 87 88 91 93
[105] 97 100 NA
$preselect_e2
[1] -100 -86 -81 -80 -74 -73 -72 -71 -70 -65 -64 -62 -57
[14] -56 -54 -51 -50 -48 -47 -46 -45 -44 -39 -37 -35 -34
[27] -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -22 -21 -20
[40] -19 -17 -16 -15 -9 -8 -7 -6 -3 -1 4 10 12
[53] 13 14 18 19 20 22 23 24 26 27 28 33 34
[66] 37 38 41 42 43 45 46 48 50 52 53 54 55
[79] 56 57 58 59 61 62 63 65 66 67 71 72 73
[92] 74 75 78 79 82 85 86 88 89 91 92 98 99
[105] 100 NA
$preselect_e3
[1] -99 -87 -86 -81 -76 -75 -73 -71 -60 -59 -54 -53 -50 -48 -47 -43
[17] -42 -40 -39 -38 -37 -35 -32 -29 -28 -27 -26 -25 -23 -22 -18 -17
[33] -16 -15 -14 -11 -10 -8 -7 -6 -5 -3 -1 0 1 2 3 5
[49] 6 7 9 12 13 16 18 19 20 21 23 24 25 28 29 34
[65] 36 37 38 42 43 44 46 47 48 49 50 52 53 55 57 59
[81] 61 63 64 70 72 87 88 91 100 NA
$preselect_e4
[1] -100 -95 -87 -85 -83 -82 -80 -79 -74 -72 -71 -69 -68
[14] -66 -63 -62 -60 -59 -57 -51 -49 -48 -42 -40 -39 -35
[27] -32 -31 -29 -26 -25 -24 -22 -21 -20 -18 -15 -13 -12
[40] -10 -9 -8 -6 -1 3 4 8 10 13 16 17 22
[53] 24 25 26 28 29 32 33 34 35 37 42 43 44
[66] 46 48 49 51 53 54 57 60 61 63 64 66 67
[79] 68 69 70 71 72 73 74 77 78 79 84 85 86
[92] 87 92 98 100 NA
$preselect_neg_e1
[1] -100 -99 -97 -91 -90 -86 -85 -84 -81 -80 -79 -78 -77
[14] -76 -75 -74 -73 -71 -70 -69 -68 -66 -65 -64 -63 -62
[27] -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49
[40] -48 -47 -45 -44 -43 -41 -39 -38 -36 -35 -34 -33 -32
[53] -31 -29 -28 -27 -25 -24 -23 -22 -21 -20 -19 -18 -17
[66] -16 -15 -14 -12 -10 -9 -8 -1 4 13 26 40 NA
$preselect_neg_e2
[1] -100 -98 -95 -94 -87 -86 -81 -80 -76 -74 -73 -72 -71
[14] -70 -66 -65 -64 -62 -59 -57 -56 -54 -53 -51 -50 -49
[27] -48 -47 -46 -45 -44 -43 -42 -40 -39 -38 -37 -36 -35
[40] -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22
[53] -21 -20 -19 -17 -16 -15 -14 -13 -12 -10 -9 -8 -7
[66] -6 -4 -3 -1 4 19 NA
$preselect_neg_e3
[1] -100 -99 -87 -86 -83 -81 -76 -75 -74 -73 -71 -70 -67
[14] -60 -59 -58 -57 -55 -54 -53 -52 -50 -48 -47 -46 -44
[27] -43 -42 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30
[40] -29 -28 -27 -26 -25 -24 -23 -22 -20 -18 -17 -15 -14
[53] -12 -11 -10 -9 -8 -7 -6 -5 -1 0 8 9 11
[66] 13 19 20 21 23 25 32 34 36 40 41 45 50
[79] 54 100 NA
$preselect_neg_e4
[1] -100 -98 -95 -88 -87 -85 -84 -83 -82 -80 -79 -78 -74
[14] -72 -71 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -59
[27] -58 -57 -55 -54 -52 -51 -49 -48 -46 -45 -43 -42 -41
[40] -40 -39 -38 -37 -35 -34 -33 -32 -31 -30 -29 -26 -25
[53] -24 -22 -21 -20 -18 -17 -16 -15 -13 -12 -11 -10 -9
[66] -8 -6 -5 -4 -3 -1 4 10 17 25 29 56 57
[79] NA
$preselect_pos_e1
[1] -37 -17 0 6 7 10 11 13 15 18 20 21 22 23 24 27
[17] 28 29 30 31 32 35 36 37 39 40 41 42 43 45 46 49
[33] 50 51 52 54 55 56 58 59 60 61 62 63 64 65 66 67
[49] 68 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85
[65] 86 87 88 90 91 92 93 94 97 100 NA
$preselect_pos_e2
[1] 4 5 10 11 12 13 14 15 16 17 18 20 21 22 23 24
[17] 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41
[33] 42 43 45 46 48 50 51 52 53 54 55 56 57 58 59 61
[49] 62 63 64 65 66 67 68 69 71 72 73 74 75 76 78 79
[65] 80 81 82 85 86 88 89 91 92 93 97 98 99 100 NA
$preselect_pos_e3
[1] -75 -73 -60 -50 -40 -35 -33 -29 -27 -16 -15 -12 -11 -8 -7 -3
[17] -1 0 1 2 3 5 6 7 9 11 12 13 15 16 17 18
[33] 19 21 22 23 24 25 26 27 28 29 32 33 34 37 38 42
[49] 43 44 46 47 48 49 50 52 53 55 57 59 61 62 63 64
[65] 66 70 72 75 77 81 82 87 88 91 100 NA
$preselect_pos_e4
[1] -14 -1 3 5 8 11 13 14 16 17 21 22 23 24 25 26
[17] 27 28 29 32 33 34 35 36 37 38 39 40 42 43 44 45
[33] 46 48 49 51 52 53 54 57 59 60 61 63 64 65 66 67
[49] 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
[65] 84 85 86 87 88 89 90 92 95 98 100 NA
$preselect_peak_e1
[1] -100 -96 -88 -79 -77 -75 -73 -72 -66 -64 -62 -58 -56
[14] -53 -52 -50 -48 -47 -45 -43 -42 -40 -39 -38 -37 -36
[27] -34 -33 -31 -29 -28 -25 -24 -23 -22 -20 -17 -16 -15
[40] -14 -12 -11 -10 -9 -6 -4 -1 4 5 9 10 11
[53] 12 13 14 15 16 18 19 20 21 22 23 25 26
[66] 27 28 29 30 31 32 33 34 36 38 40 41 43
[79] 46 47 50 51 54 56 58 61 65 67 73 75 88
[92] 91 100 NA
$preselect_peak_e2
[1] -78 -69 -55 -53 -31 -30 -25 -21 -20 -19 -18 -17 -15 -14 -7 -5
[17] -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12
[33] 13 14 16 17 18 20 21 22 25 29 30 31 33 34 36 40
[49] 41 43 44 47 50 52 54 55 60 61 64 66 68 69 75 79
[65] 85 94 100 NA
$preselect_peak_e3
[1] -100 -99 -96 -94 -92 -91 -90 -89 -88 -87 -86 -85 -84
[14] -83 -79 -76 -74 -73 -72 -71 -70 -69 -67 -66 -65 -64
[27] -63 -60 -59 -58 -57 -56 -55 -54 -53 -52 -50 -49 -48
[40] -47 -46 -45 -44 -42 -41 -39 -38 -37 -36 -35 -34 -33
[53] -32 -31 -30 -29 -28 -27 -26 -25 -24 -21 -20 -19 -18
[66] -17 -16 -14 -13 -12 -9 -8 -7 -5 -1 0 3 8
[79] 10 15 16 20 26 31 32 33 36 37 39 42 46
[92] 51 53 70 100 NA
$preselect_peak_e4
[1] -100 -92 -70 -65 -60 -57 -54 -50 -49 -48 -41 -40 -39
[14] -38 -36 -35 -33 -32 -31 -30 -29 -27 -25 -23 -22 -21
[27] -20 -19 -18 -17 -16 -15 -14 -13 -12 -10 -8 -7 -1
[40] 1 2 3 4 7 8 9 10 11 12 13 15 16
[53] 18 19 20 21 23 24 25 26 27 28 29 30 32
[66] 33 34 35 36 40 43 44 47 48 49 50 59 60
[79] 64 65 67 69 70 74 76 100 NA
$sias1
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
6 Levels: 0 ... 5= Extremely characteristic of me
$sias2
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
6 Levels: 0 ... 5= Extremely characteristic of me
$sias3
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
[6] <NA>
6 Levels: 0 ... 5= Extremely characteristic of me
$sias4
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
6 Levels: 0 ... 5= Extremely characteristic of me
$sias5
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
6 Levels: 0 ... 5= Extremely characteristic of me
$sias6
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
[6] <NA>
6 Levels: 0 ... 5= Extremely characteristic of me
$sias7
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
6 Levels: 0 ... 5= Extremely characteristic of me
$sias8
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
6 Levels: 0 ... 5= Extremely characteristic of me
$sias9
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
6 Levels: 0 ... 5= Extremely characteristic of me
$sias10
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
[6] <NA>
6 Levels: 0 ... 5= Extremely characteristic of me
$sias11
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
[6] <NA>
6 Levels: 0 ... 5= Extremely characteristic of me
$sias12
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
[6] <NA>
6 Levels: 0 ... 5= Extremely characteristic of me
$sias13
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
6 Levels: 0 ... 5= Extremely characteristic of me
$sias14
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
6 Levels: 0 ... 5= Extremely characteristic of me
$sias15
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
6 Levels: 0 ... 5= Extremely characteristic of me
$sias16
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
6 Levels: 0 ... 5= Extremely characteristic of me
$sias17
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
6 Levels: 0 ... 5= Extremely characteristic of me
$sias18
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
6 Levels: 0 ... 5= Extremely characteristic of me
$sias19
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
6 Levels: 0 ... 5= Extremely characteristic of me
$sias20
[1] 0
[2] 0= Not at all characteristic of me
[3] 1= Slightly characteristic of me
[4] 2= Moderately characteristic of me
[5] 4= Very characteristic of me
[6] <NA>
6 Levels: 0 ... 5= Extremely characteristic of me
Leider sehen wir nicht alle Ausprägungen von race
. Diese können wir uns auch separat mit levels()
anschauen.
levels(data_b$race)
[1] "American Indian/Alaskan Native"
[2] "Asian"
[3] "Black or African American"
[4] "Native Hawaiian or Other Pacific Islander"
[5] "White"
[6] "More than one race"
[7] "Other"
[8] "Prefer not to answer"
In race
scheint es keine falsch kodierten Missings zu geben.
sias...
) als nominalskaliert, und nicht wie sonst üblich als intervallskaliert, angenommen. Zumindest liegen die betreffenden Variables als ungeordnete Faktoren vor.
Es fällt außerdem auf, dass die Items des SIAS, welche eine 5-stufige Skala haben sollten, die von 0-4 geht, eine merkwürdige Kodierung der Daten aufweisen:
3=...
, welche es laut Codebuch geben sollte, scheint nicht vorhanden zu sein5=...
, welche laut Codebuch nicht vorliegen sollte0
beinhaltenDas sollten wir noch weiter explorieren. Dazu schauen wir uns die Häufigkeiten der Ausprägungen genauer an:
sias1 sias2 sias3 sias4 sias5
0 41 94 46 98 20
0= Not at all characteristic of me 47 46 53 35 16
1= Slightly characteristic of me 35 26 37 29 36
2= Moderately characteristic of me 42 12 31 21 71
4= Very characteristic of me 22 9 19 4 44
5= Extremely characteristic of me 0 0 0 0 0
<NA> 0 0 1 0 0
sias6 sias7 sias8 sias9 sias10
0 91 82 93 29 107
0= Not at all characteristic of me 46 46 50 31 31
1= Slightly characteristic of me 29 21 23 35 26
2= Moderately characteristic of me 17 27 15 49 13
4= Very characteristic of me 3 11 6 43 9
5= Extremely characteristic of me 0 0 0 0 0
<NA> 1 0 0 0 1
sias11 sias12 sias13 sias14 sias15
0 34 53 85 71 57
0= Not at all characteristic of me 45 45 46 53 47
1= Slightly characteristic of me 33 28 33 22 22
2= Moderately characteristic of me 51 30 21 19 39
4= Very characteristic of me 23 30 2 22 22
5= Extremely characteristic of me 0 0 0 0 0
<NA> 1 1 0 0 0
sias16 sias17 sias18 sias19 sias20
0 50 68 64 85 47
0= Not at all characteristic of me 50 39 39 25 44
1= Slightly characteristic of me 26 29 25 33 31
2= Moderately characteristic of me 32 38 33 30 37
4= Very characteristic of me 29 13 26 14 27
5= Extremely characteristic of me 0 0 0 0 0
<NA> 0 0 0 0 1
Es fällt auf, dass Die Ausprägung 5=...
in keiner der Variablen vorkommt (Häufigkeit \(0\)). Um zu überprüfen, wie die Kodierung im Datensatz zur Skala im Codebuch in Bezug zu setzen ist, schauen wir uns ein Item an, welches im Originaldatensatz eine rekodierte Version enthält: sias5
und sias5_RS
. Wir speichern beide Variablen in einem neuen Datensatz.
sias5_RS
die rekodierte Version von sias5
widergibt. Wir wollen allerdings die allgemeingültige Zuordnung von Daten und Angaben im Codebuch verstehen.
Die Zuordnung der Kodierung in den Daten (links) und der im Codebuch enthaltenen Skala (rechts) scheint wie folgt:
0
\(\rightarrow\) 0
0=...
\(\rightarrow\) 1
1=...
\(\rightarrow\) 2
2=...
\(\rightarrow\) 3
4=...
\(\rightarrow\) 4
Die Ausprägung 5=...
wird, wie oben bereits festgestellt, gar nicht genutzt. Sie wurde dennoch in den Faktorstufen der sias...
-Items vermerkt.
Wenn wir tiefgehender mit den Daten arbeiten würden (z.B. Datenanalyse), würde es sich anbieten, die Kodierung der Items anzupassen, sodass die Ausprägung auf der Skala auch aus der Kodierung ersichtlich wird. Man könnte dann auch darüber nachdenken, die Variablen als intervallskaliert zu behandeln (wie es der Standard ist).
Ansonsten scheinen alle fehlenden Werte korrekt kodiert zu sein.
2.) Kodiere ggf. inkorrekt kodierte Missings zu NA
um.
Wir kodieren mittels <- NA
jene Ausprägungen um, die falsch kodierte fehlende Werte zeigen.
In der vorhergehenden Aufgabe haben wir jene Ausprägungen von Variablen identifiziert, die auch fehlende Werte kodieren sollen: ""
und N/A
. Diese kodieren wir nun um.
$consent
[1] "Y" NA
$gender
[1] "f" "m" NA
$gender...comment
[1] "Comment? Thanks for the opportunity? Unsure why there is a comment box before the task is completed, but that's okay."
[2] "have a good day"
[3] NA
Jetzt sind alle fehlenden Werte mit NA
gekennzeichnet.
Nun wollen wir uns ein paar deskriptive Statistiken der fehlenden Werte anschauen.
Datensatz A: Die character-Variable gender...comment
stellt einen Kommentar zu der Variablen gender
dar. Sie kodiert demnach qualitative Daten, die wir uns im Folgenden nicht weiter anschauen wollen. Daher entfernen wir die Variable nun aus unserem (Analyse-)Datensatz:
data_a <- data_a[,-5]
1.) Wie viele Missings gibt es insgesamt im Datensatz (in absoluten und relativen Zahlen)?
table()
-Funktion können wir uns Häufigkeitstabellen ausgeben lassen. Jetzt müssen unsere Daten nur noch dichotom in fehlend und nicht fehlend eingeteilt werden.
2.) Welche Variable enthält die meisten Missings? Wie viele Missings sind das (in absoluten und relativen Zahlen)
colSums()
werden die Summen der Spalten eines Datensatzes angegeben. Nun müssen wir unsere Daten nur wieder dichotom in fehlend und nicht fehlend einteilen.
colnames()
können wir uns Namen von Variablen ausgeben lassen. Wir müssen nur noch die relevanten auswählen.
[1] 13
[1] 0.1830986
# Spaltennamen der Variablen mit den meisten Missings:
colnames(data_a[colSums(is.na(data_a)) == max(colSums(is.na(data_a)))])
[1] "statements..1." "statements..2." "statements..3."
[4] "statements..4." "statements..5." "statements..6."
[7] "statements..7." "statements..8." "statements..9."
[10] "statements..10." "statements..11." "statements..12."
[13] "statements..13." "statements..14." "statements..15."
[16] "statements..16." "statements..17." "statements..18."
[19] "statements..19." "statements..20." "statements..21."
[22] "statements..22." "statements..23." "statements..24."
[25] "statements..25." "statements..26." "statements..27."
[28] "statements..28." "statements..29." "statements..30."
[31] "statements..31." "statements..32." "statements..33."
[34] "statements..34." "statements..35." "statements..36."
[37] "statements..37." "statements..38." "statements..39."
[40] "statements..40." "statements..41." "statements..42."
[43] "statements..43." "statements..44." "statements..45."
[46] "statements..46." "statements..47." "statements..48."
[49] "statements..49." "statements..50." "statements..51."
[52] "statements..52." "statements..53." "statements..54."
[55] "statements..55." "statements..56." "statements..57."
[58] "statements..58." "statements..59." "statements..60."
[61] "statements..61." "statements..62." "statements..63."
[64] "statements..64." "statements..65." "statements..66."
[67] "statements..67." "statements..68." "statements..69."
[70] "statements..70." "statements..71." "statements..72."
[73] "statements..73." "statements..74." "statements..75."
[76] "statements..76." "statements..77." "statements..78."
[79] "statements..79." "statements..80." "statements..81."
[82] "statements..82." "statements..83." "statements..84."
[85] "statements..85." "statements..86." "statements..87."
[88] "statements..88." "statements..89." "statements..90."
[91] "statements..91." "statements..92." "statements..93."
[94] "statements..94." "statements..95." "statements..96."
[97] "statements..97." "statements..98." "statements..99."
[100] "statements..100." "statements..101." "statements..102."
[103] "statements..103." "statements..104." "statements..105."
[106] "statements..106." "statements..107." "statements..108."
[109] "statements..109." "statements..110." "statements..111."
[112] "statements..112." "statements..113." "statements..114."
[115] "statements..115." "statements..116." "statements..117."
[118] "statements..118." "statements..119." "statements..120."
[121] "statements..121." "statements..122." "statements..123."
[124] "statements..124." "statements..125." "statements..126."
[127] "statements..127." "statements..128." "statements..c1."
[130] "statements..c2." "statements..c3." "statements..c4."
Die meisten Missings sind in den statement
-Variablen mit je einer absoluten Anzahl von 13 fehlenden Werten. Das entspricht ca. 18.31%.
3.) Welche Person hat die meisten Missings? Wie viele Missings sind das (in absoluten und relativen Zahlen)?
rowSums()
werden die Summen der Zeilen eines Datensatzes angegeben. Zusätzlich müssen wir unsere Daten nur wieder dichotom in fehlend und nicht fehlend einteilen.
which()
können wir uns die Zeilenindizes von Fällen ausgeben lassen. Wir müssen nur noch die relevanten auswählen.
4.) Welche bzw. wie viele Patterns mit Missings (Missings in bestimmten Kombinationen von Variablen) gibt es? Visualisiere sie. (Für Datensatz B reicht es, wenn das am häufigsten auftretende Pattern mit Missings beschrieben wird.)
aggr()
, die beim Visualisieren von Missings helfen kann.
Der Output von summary(aggr())
gibt uns verschiedene Informationen über die Missings und Missing-Patterns. Neben der Zusammensetzung der Patterns bekommen wir Auskunft über die absoluten und relativen Häufigkeiten der variablenweisen Missings und der Missing-Patterns. In den Grafiken steht blau für vorhandene Werte; rot für Missings. Wir sehen in der rechten Grafik, dass ein Missing-Pattern keine Missings enthält.
Missings per variable:
Variable Count
id 0
consent 8
age 10
gender 10
statements..1. 13
statements..2. 13
statements..3. 13
statements..4. 13
statements..5. 13
statements..6. 13
statements..7. 13
statements..8. 13
statements..9. 13
statements..10. 13
statements..11. 13
statements..12. 13
statements..13. 13
statements..14. 13
statements..15. 13
statements..16. 13
statements..17. 13
statements..18. 13
statements..19. 13
statements..20. 13
statements..21. 13
statements..22. 13
statements..23. 13
statements..24. 13
statements..25. 13
statements..26. 13
statements..27. 13
statements..28. 13
statements..29. 13
statements..30. 13
statements..31. 13
statements..32. 13
statements..33. 13
statements..34. 13
statements..35. 13
statements..36. 13
statements..37. 13
statements..38. 13
statements..39. 13
statements..40. 13
statements..41. 13
statements..42. 13
statements..43. 13
statements..44. 13
statements..45. 13
statements..46. 13
statements..47. 13
statements..48. 13
statements..49. 13
statements..50. 13
statements..51. 13
statements..52. 13
statements..53. 13
statements..54. 13
statements..55. 13
statements..56. 13
statements..57. 13
statements..58. 13
statements..59. 13
statements..60. 13
statements..61. 13
statements..62. 13
statements..63. 13
statements..64. 13
statements..65. 13
statements..66. 13
statements..67. 13
statements..68. 13
statements..69. 13
statements..70. 13
statements..71. 13
statements..72. 13
statements..73. 13
statements..74. 13
statements..75. 13
statements..76. 13
statements..77. 13
statements..78. 13
statements..79. 13
statements..80. 13
statements..81. 13
statements..82. 13
statements..83. 13
statements..84. 13
statements..85. 13
statements..86. 13
statements..87. 13
statements..88. 13
statements..89. 13
statements..90. 13
statements..91. 13
statements..92. 13
statements..93. 13
statements..94. 13
statements..95. 13
statements..96. 13
statements..97. 13
statements..98. 13
statements..99. 13
statements..100. 13
statements..101. 13
statements..102. 13
statements..103. 13
statements..104. 13
statements..105. 13
statements..106. 13
statements..107. 13
statements..108. 13
statements..109. 13
statements..110. 13
statements..111. 13
statements..112. 13
statements..113. 13
statements..114. 13
statements..115. 13
statements..116. 13
statements..117. 13
statements..118. 13
statements..119. 13
statements..120. 13
statements..121. 13
statements..122. 13
statements..123. 13
statements..124. 13
statements..125. 13
statements..126. 13
statements..127. 13
statements..128. 13
statements..c1. 13
statements..c2. 13
statements..c3. 13
statements..c4. 13
Missings in combinations of variables:
Combinations
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1
0:0:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1
0:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1
Count Percent
58 81.690141
3 4.225352
2 2.816901
8 11.267606
Es gibt drei Patterns mit Missings. Generell fehlen in allen drei Missing-Patterns alle statements
-variablen (Spaltennummern 5:131). Das erste (nur aus diesen fehlenden Werten bestehende) Pattern kommt 3 mal vor. Im zweiten Pattern fehlen zusätzlich noch die Variablen age
und gender
(Spaltennummern 3 und 4) und es kommt 2 mal vor. Im dritte Pattern fehlt zusätzlich noch die Variable consent
(Spaltennummer 2) und es kommt 8 mal vor.
Die Fälle, welche ins letzte Pattern fallen, haben demnach auf allen Variablen, außer id
, fehlende Werte. Zufälligerweise gibt es auch genau 8 fehlende Fälle auf der Variablen consent
. Es ist hier naheliegend zu vermuten, dass diese 8 Personen den Fragebogen gar nicht ausgefüllt haben (d.h. die Erhebung abgebrochen haben). Das sind wahrscheinlich auch dieselben Personen, die wir in 2.3 gefunden haben, als wir die Fälle mit den meisten Missings identifiziert haben.
# Überprüfung ob Fälle mit max-Anzahl Missings == Fälle mit Missings auf consent
which(rowSums(is.na(data_a)) == max(rowSums(is.na(data_a)))) == which(is.na(data_a$consent))
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
Es handelt sich um dieselben Fälle. Wir entfernen diese 8 Personen nun aus dem Datensatz.
Wir bekommen von summary(aggr())
verschiedene Informationen über die Missings und Missing-Patterns. Neben der Zusammensetzung der Patterns bekommen wir Auskunft über die absoluten und relativen Häufigkeiten der variablenweisen Missings und der Missing-Patterns. In den Grafiken steht blau für vorhandene Werte; rot für Missings. Wir sehen in der rechten Grafik, dass ein Missing-Pattern keine Missings enthält.
Missings per variable:
Variable Count
P_ID 0
age 0
gender 0
race_white_yn 1
ethn 0
race 0
group 0
cond 0
preselect_curr_e1 19
preselect_curr_e2 22
preselect_curr_e3 13
preselect_curr_e4 31
preselect_ave_e1 37
preselect_ave_e2 44
preselect_ave_e3 59
preselect_ave_e4 49
preselect_e1 10
preselect_e2 14
preselect_e3 34
preselect_e4 16
preselect_neg_e1 13
preselect_neg_e2 24
preselect_neg_e3 37
preselect_neg_e4 25
preselect_pos_e1 6
preselect_pos_e2 7
preselect_pos_e3 34
preselect_pos_e4 5
preselect_peak_e1 24
preselect_peak_e2 72
preselect_peak_e3 6
preselect_peak_e4 51
sias1 0
sias2 0
sias3 1
sias4 0
sias5 0
sias6 1
sias7 0
sias8 0
sias9 0
sias10 1
sias11 1
sias12 1
sias13 0
sias14 0
sias15 0
sias16 0
sias17 0
sias18 0
sias19 0
sias20 1
Missings in combinations of variables:
Combinations
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:1:1:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:1:0:1:0:0:0:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:1:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:1:1:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:1:1:1:1:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:1:1:1:1:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:1:1:1:1:1:1:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:1:0:0:0:1:0:0:0:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:1:0:0:0:0:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:1:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:1:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:1:0:0:0:1:0:0:0:1:0:0:0:0:1:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:1:0:0:0:1:0:0:0:1:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1
0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:1:0:0:0:1:0:0:0:1:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:1:0:0:0:0:0:0:0:0:0:0:0:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:1:0:0:1:1:0:0:1:1:0:0:1:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:1:1:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:1:0:0:0:1:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:1:1:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:0:1:1:1:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:1:1:0:0:1:0:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:1:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:0:0:0:0:0:0:0:0:0:0:0:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:0:0:0:0:0:0:0:0:0:0:1:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:0:0:1:0:0:0:1:0:0:0:0:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:0:0:1:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:0:0:1:1:0:0:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:1:0:0:0:0:1:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:0:0:1:0:0:0:1:0:0:0:1:0:0:0:1:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:0:0:1:1:0:0:0:0:0:0:0:0:0:0:1:0:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:0:0:1:1:0:0:1:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:0:0:1:1:1:0:0:0:0:0:1:0:1:0:0:0:0:1:0:1:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:0:1:1:1:0:0:0:1:0:0:0:1:0:0:1:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:1:0:0:0:0:0:0:0:1:0:0:0:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:1:0:0:1:0:0:0:1:0:0:0:0:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:0:1:1:1:1:1:0:0:1:0:0:0:1:0:0:0:1:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:1:0:0:0:1:0:0:0:1:0:0:0:1:0:0:0:1:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:0:1:0:0:1:1:1:0:0:1:0:0:0:1:0:0:0:0:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:1:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:1:0:0:1:1:1:1:0:0:1:0:0:0:1:0:0:0:1:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:1:0:1:0:0:1:0:0:0:1:0:0:0:1:0:0:0:1:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:1:0:1:1:1:1:1:0:0:0:0:0:0:0:0:0:0:1:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:1:1:1:0:0:1:0:0:0:0:0:0:0:0:0:0:0:1:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:0:1:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:0:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:0:0:0:0:0:1:1:0:0:1:0:0:0:1:0:0:0:1:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:0:0:1:0:0:1:1:0:0:0:0:0:0:0:0:0:0:1:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:0:0:1:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:0:1:0:0:0:0:0:0:1:1:0:1:1:1:1:0:1:1:0:0:0:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:1:0:0:0:0:0:0:0:0:0:0:1:1:0:1:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:1:0:0:0:0:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:1:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:1:0:1:1:1:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:1:0:1:1:1:1:1:0:0:1:1:0:0:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:1:1:0:1:1:1:0:0:0:1:0:0:0:0:1:0:0:1:0:1:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:1:1:0:1:1:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:1:1:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:0:0:0:0:0:1:1:1:1:1:1:1:1:0:0:1:0:0:1:1:0:0:0:1:0:0:1:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
0:0:0:1:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
Count Percent
51 27.2727273
1 0.5347594
1 0.5347594
6 3.2085561
6 3.2085561
4 2.1390374
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
3 1.6042781
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
2 1.0695187
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
2 1.0695187
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
4 2.1390374
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
2 1.0695187
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
2 1.0695187
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
1 0.5347594
[1] 114
Es gibt 114 Patterns mit Missings. Die Missing-Pattern, welche am häufigsten vorkommen, mit jeweils 6 mal, haben nur einen fehlenden Wert auf der Variablen preselect_peak_e4
(Spaltennummer 32) bzw. preselect_peak_e2
(Spaltennummer 30).
Nachdem wir uns im vorhergehenden Abschnitt deskriptiv-statistische Kennwerte der Missings und Missing-Patterns angeschaut haben, wollen wir uns im Folgenden auch inferenz-statistisch absichern. Dazu überprüfen wir die Zufälligkeit der Missing-Patterns. Ob fehlende Werte zufällig sind ist eine essentielle Frage, die wir vor der Nutzung der Daten klären müssen.
1.) Sind die fehlenden Werte MCAR? Was hätte es für Konsequenzen für die weitere Datenverarbeitung, wenn die fehlenden Werte MAR oder MNAR wären?
MCAR: Missings hängen weder von der (fehlenden) Ausprägung auf der Variablen selbst noch von anderen Variablen und deren fehlenden Werten ab. Sie sind also komplett zufällig.
MAR: Missings hängen nicht von der (fehlenden) Ausprägung auf der Variablen selbst, aber von anderen Variablen und deren Missings ab. Die Missings sind also zufällig, sobald für diese andere Variablen kontrolliert wird.
MNAR: Missings hängen von der (fehlenden) Ausprägung auf der Variablen selbst ab. Sie sind also selbst dann nicht zufällig, wenn für die anderen Variablen kontrolliert wird.Zur Überprüfung der Zufälligkeit können wir den Test von Little (1988)1 verwenden. Dieser überprüft, ob es signifikante Unterschiede zwischen den variablenweisen Mittelwerten der Missing Patterns gibt. Die \(H0\), dass es keine überzufälligen Unterschiede der Mittelwerte in Abhängigkeit der Missing Patterns gibt (= MCAR), ist unsere Wunschhypothese. Der Test ist in der Funktion mcar_test()
aus dem Paket naniar implementiert.
mcar_test()
kann wir nur mit Variablen des Typs numeric (integer und double), logical und factor umgehen.
Außerdem können keine qualitativen Daten ausgewertet werden. Es gab eine qualitative Variable in Datensatz A,
gender...comment
, welche wir aber zu Beginn des letzten Abschnitts bereits aus dem Datensatz entfernt haben.
Die Funktion mcar_test()
kann nicht mit Daten vom Typ character umgehen. Daher müssen wir die nominalskalierten Variablen gender
und consent
zuerst faktorisieren:
Das Signifikanzniveau für den Test legen wir auf \(\alpha = 0.05\) fest.
# install.packages("remotes")
# remotes::install_github("njtierney/naniar")
library(naniar)
mcar_test(data_a)
Error: Problem with `mutate()` input `d2`.
x Lapackroutine dgesv: System ist genau singulär: U[2,2] = 0
ℹ Input `d2` is `purrr::pmap_dbl(...)`.
ℹ The error occurred in group 1: miss_pattern = 1.
Wir bekommen hier nur eine Fehlermeldung ausgegeben. Das liegt daran, dass die Funktion mit unseren Daten nicht klar kommt. Genauer gesagt, wird nur ein Missing-Pattern mittels mcar_test()
erkannt, obwohl es nach aggr()
4 gibt (bzw. nun nur noch 3, da wir alle Fälle mit fehlenden Werten auf consent
entfernt haben und damit ein Missing-Pattern weniger haben). Leider gibt es keine alternative Implementierung des Tests von Little (für die aktuelle R-Version), und daher können wir nicht weiter an diesen Daten arbeiten.
Das Signifikanzniveau legen wir auf \(\alpha = 0.05\) fest.
# install.packages("remotes")
# remotes::install_github("njtierney/naniar")
library(naniar)
mcar_test(data_b)
# A tibble: 1 x 4
statistic df p.value missing.patterns
<dbl> <dbl> <dbl> <int>
1 3572. 5355 1 115
Da der \(p\)-Wert über unserem á priori festgelegtem Signifikanzniveau \(\alpha = 0.05\) liegt, haben wir Evidenz dafür, dass die Daten MCAR sind.
Wenn die Missings MAR oder MNAR sind, kann es zu Parameterverzerrungen kommen, wenn wir Methoden nutzen würden, welche die strengere Annahme MCAR annehmen.
Beispiele: Wir können keine Fälle löschen wenn die Daten MAR oder MNAR sind. Wenn die Daten MNAR sind, können wir auch die Maximum Likelihood Schätzung sowie die multiple Imputation nicht nutzen.
2.) Wie gehen wir weiter vor (mit Hinblick auf die Ergebnisse des Tests nach Little)?
Wie bereits oben beschrieben können wir nicht (einfach) weiter an Datensatz A arbeiten, solange wir nicht testen konnten, ob die Daten MCAR sind. Eine Möglichkeit wäre es, die Daten mit einer anderen Statistiksoftware auszuwerten, in der es einen implementierten MCAR-Test gibt. Es ist aber nicht ausgeschlossen, dass dieser auf dem gleichen Algorithmus wie mcar_test()
beruht und wir das gleiche Problem haben würden.
Bezüglich Datensatz B können wir alle Verfahren anwenden, die MCAR oder MAR fordern, weil wir bei der Durchführung des Test nach Little Evidenz für die \(H_0\) (d.h. Daten sind MCAR) gefunden haben.
Die folgenden Aufgaben beziehen sich nur auf den Datensatz B.
1.) Berechne die Mittelwerte aller numerischen, mindestens intervallskalierten Variablen jeweils mit listwise und pairwise deletion. Vergleiche die jeweilige Anzahl der für die Berechnung genutzten Datenpunkte. Der Mittelwert welcher Variablen unterscheidet sich am meisten, welcher am wenigsten?
listwise/casewise deletion: Fälle mit mind. einem Missing in einer Variablen werden aus allen Mittelwertsberechnungen ausgeschlossen.
pairwise deletion: Fälle mit Missings werden nur aus den jeweiligen Mittelwertsberechnungen derjenigen Variablen ausgeschlossen, in denen der Wert fehlt.is.numeric()
können wir überprüfen, ob ein Vektor numerisch ist. Das müssen wir nur noch auf alle Spalten des Datensatzes anwenden.
Bei listwise deletion gehen für die Berechnung der Mittelwerte in jede Variable die gleichen Datenpunkte ein. Wir können einfach mit nrow()
die Anzahl herausfinden.
colSums()
zählen wir Spaltensummen; jetzt müssen wir nur noch die nicht fehlenden Werte angeben.
abs()
die absolute Differenz zu erhalten.
# herausfinden, welche Variablen numerisch sind:
which_num <- c()
for (i in 1:ncol(data_b)){
if (is.numeric(data_b[, i]) == TRUE) {
which_num <- append(which_num, i)
}
}
# Selektion auf Datensatz anwenden:
data_b_num <- data_b[, which_num]
# Variablen, die nicht (mind.) intervallskaliert sind, aussortieren;
# dazu vergleichen wir die Angaben im Codebuch und den Datentyp der Variablen
data_b_num <- data_b_num[, -c(1, # P_ID (nominalskaliert)
3 # race_white_yn (nominalskaliert)
)]
# Mittelwerte berechnen:
listwise_mean <- colMeans(na.omit(data_b_num))
pairwise_mean <- colMeans(data_b_num, na.rm=TRUE)
# Anzahl genutzter Datenpunkte herausfinden:
listwise_n <- nrow(na.omit(data_b)) # gleich für alle Variablen
pairwise_n <- colSums(!is.na(data_b_num)) # verschieden für jede Variable
# Vergleich der jeweiligen Mittelwerte
vergleich <- data.frame(listwise_mean, pairwise_mean, listwise_n, pairwise_n)
for (i in 1:nrow(vergleich)){
vergleich$diff[i] <- abs(vergleich[i, 1] - vergleich[i, 2])
}
Die Anzahl der in die Berechnungen eingegangenen Datenpunkte unterscheidet sich stark. Während bei pairwise deletion zwischen 115 und 187 Beobachtungen für die Berechnungen genutzt wurden, wurden bei listwise deletion bei der Berechnung der Mittelwerte aller Variablen (die gleichen) 51 Beobachtungen genutzt.
listwise_mean pairwise_mean listwise_n pairwise_n diff
age 19.14815 19.24064 51 187 0.09249356
listwise_mean pairwise_mean listwise_n pairwise_n
preselect_peak_e3 -26.31481 -44.12155 51 181
diff
preselect_peak_e3 17.80673
Die Variable mit dem geringsten Unterschied in den mit listwise und pairwise deletion berechneten Mittelwerten ist age
; die Variable mit dem größten Unterschied ist preselect_peak_e3
.
2.) Berechne die Korrelationen aller numerischen, mindestens intervallskalierten Variablen jeweils mit listwise und pairwise deletion. Die Korrelation welcher Variablen unterscheidet sich am meisten zwischen listwise und pairwise deletion, welcher am wenigsten?
listwise/casewise deletion: Fälle mit mind. einem Missing in einer Variablen werden aus allen Mittelwertsberechnungen ausgeschlossen.
pairwise deletion: Fälle mit Missings werden nur aus der jeweiligen Korrelationsberechnungen derjenigen Variablen ausgeschlossen, in denen der Wert fehlt.is.numeric()
können wir überprüfen, ob ein Vektor numerisch ist. Das müssen wir nur noch auf alle Spalten des Datensatzes anwenden.
abs()
die absolute Differenz zu berechnen.
which(..., arr.ind = TRUE)
können wir uns Zeilenname, Zeilen- und Spaltenindizes ausgeben lassen.
# herausfinden, welche Variablen numerisch sind:
which_num <- c()
for (i in 1:ncol(data_b)){
if (is.numeric(data_b[, i]) == TRUE) {
which_num <- append(which_num, i)
}
}
# Selektion auf Datensatz anwenden:
data_b_num <- data_b[, which_num]
# Variablen, die nicht (mind.) intervallskaliert sind, aussortieren;
# dazu vergleichen wir die Angaben im Codebuch und den Datentyp der Variablen
data_b_num <- data_b_num[, -c(1, # P_ID (nominalskaliert)
3 # race_white_yn (nominalskaliert)
)]
# Korrelationen berechnen:
listwise_corr <- cor(data_b_num, use="complete.obs")
pairwise_corr <- cor(data_b_num, use="pairwise.complete.obs")
# Matrix für die Differenzen der Korrelationen vorbereiten:
diff_corr <- matrix(nrow=nrow(listwise_corr), # Matrix erstellen
ncol=ncol(listwise_corr))
diff_corr <- data.frame(diff_corr, # zu Dataframe umwandeln
row.names = colnames(data_b_num)) # Zeilennamen ergänzen
colnames(diff_corr) <- colnames(data_b_num) # Spaltennamen ergänzen
# Differenzen der Korrelationen berechnen:
for (i in 1:nrow(listwise_corr)){ # über alle Zeilen ...
for (j in 1:ncol(listwise_corr)){ # ... und über alle Spalten ...
diff_corr[i,j] <- abs(listwise_corr[i,j] - pairwise_corr[i,j])
} # ... absolute Abweichungen berechnen
}
# (zuerst) doppelte Elemente und Diagonalelemente löschen:
diff_corr[upper.tri(diff_corr, diag = TRUE)] <- NA
# Korrelation mit größtem Unterschied:
max(diff_corr, na.rm = TRUE)
[1] 0.3696347
which(diff_corr == max(diff_corr, na.rm = TRUE),
arr.ind = T) # Zeilnenname, Zeilen- und Spaltennummer
row col
preselect_peak_e3 24 4
colnames(diff_corr[4]) # Spaltenname
[1] "preselect_curr_e3"
# Korrelation mit kleinstem Unterschied:
min(diff_corr, na.rm = TRUE)
[1] 0.0001259926
which(diff_corr == min(diff_corr, na.rm = TRUE),
arr.ind = T) # Zeilenname, Zeilen- und Spaltennummer
row col
preselect_neg_e2 15 3
colnames(diff_corr[3]) # Spaltenname
[1] "preselect_curr_e2"
Die Korrelation mit dem größten Unterschied zwischen der listwise und der pairwise deletion Methode ist jene zwischen preselect_peak_e3
und preselect_curr_e3
(0.37); die Korrelation mit dem kleinsten Unterschied jene zwischen preselect_neg_e2
und preselect_curr_e2
(1.3^{-4}).
Um eine möglichst exakte Replikation der Funktionen zu gewährleisten gibt es im folgenden relevante Angaben zum System (R-Version, Betriebssystem, geladene Pakete mit Angaben zur Version), mit welchem diese Seite erstellt wurde.
R version 4.0.3 (2020-10-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.2 LTS
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0
locale:
[1] LC_CTYPE=de_DE.UTF-8 LC_NUMERIC=C
[3] LC_TIME=de_DE.UTF-8 LC_COLLATE=de_DE.UTF-8
[5] LC_MONETARY=de_DE.UTF-8 LC_MESSAGES=de_DE.UTF-8
[7] LC_PAPER=de_DE.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] grid stats graphics grDevices utils datasets
[7] methods base
other attached packages:
[1] naniar_0.6.0.9000 VIM_6.1.0 colorspace_2.0-0
[4] foreign_0.8-79 knitr_1.31 rmarkdown_2.7
[7] kableExtra_1.3.4
loaded via a namespace (and not attached):
[1] httr_1.4.2 tidyr_1.1.2 sass_0.3.1
[4] jsonlite_1.7.2 viridisLite_0.3.0 carData_3.0-4
[7] bslib_0.2.4 assertthat_0.2.1 sp_1.4-5
[10] highr_0.8 cellranger_1.1.0 yaml_2.2.1
[13] robustbase_0.93-7 norm_1.0-9.5 pillar_1.5.0
[16] lattice_0.20-41 glue_1.4.2 visdat_0.5.3
[19] digest_0.6.27 rvest_0.3.6 htmltools_0.5.1.1
[22] Matrix_1.2-18 pkgconfig_2.0.3 haven_2.3.1
[25] purrr_0.3.4 scales_1.1.1 webshot_0.5.2
[28] ranger_0.12.1 svglite_2.0.0 openxlsx_4.2.3
[31] distill_1.2 rio_0.5.16 downlit_0.2.1
[34] tibble_3.1.0 generics_0.1.0 car_3.0-10
[37] ggplot2_3.3.3 ellipsis_0.3.1 nnet_7.3-14
[40] cli_2.3.1 magrittr_2.0.1 crayon_1.4.1
[43] readxl_1.3.1 evaluate_0.14 laeken_0.5.1
[46] fansi_0.4.2 MASS_7.3-53 forcats_0.5.1
[49] xml2_1.3.2 class_7.3-17 tools_4.0.3
[52] data.table_1.14.0 hms_1.0.0 lifecycle_1.0.0
[55] stringr_1.4.0 munsell_0.5.0 zip_2.1.1
[58] compiler_4.0.3 jquerylib_0.1.3 e1071_1.7-4
[61] vcd_1.4-8 systemfonts_1.0.1 rlang_0.4.10
[64] rstudioapi_0.13 boot_1.3-25 gtable_0.3.0
[67] abind_1.4-5 curl_4.3 R6_2.5.0
[70] zoo_1.8-8 dplyr_1.0.4 utf8_1.1.4
[73] stringi_1.5.3 Rcpp_1.0.6 vctrs_0.3.6
[76] DEoptimR_1.0-8 tidyselect_1.1.0 xfun_0.21
[79] lmtest_0.9-38
Für Informationen zur Interpretation dieses Outputs schaut auch den Abschnitt Replizierbarkeit von Analysen des Kapitels zu Paketen an.
Little, R. J. A. (1988). A test of missing completely at random for multivariate data with missing values. Journal of the American Statistical Association, 83(404), 1198–1202.
(für HU-Studierende über ub.hu-berlin.de zugänglich)↩︎