Kayıp verilerle çalışmak için kullanılan paket “naniar”
library(haven)
library(naniar)
library(dplyr)
library(ggplot2)
screen <- read_sav("~/hacettepe/Rders/data/SCREEN.sav")
screen <- expss::drop_var_labs(screen)
En az bir eksik veri var mı diye bakmak için
any_na(screen)
## [1] TRUE
kayıp veri sayısını bulmak için
n_miss(screen)
## [1] 27
kayıp verinin oranını bulmak için
satir <- nrow(screen)
boyut <- dim(screen)
oran <- n_miss(screen)/ satir
oran
## [1] 0.05806452
prop_miss(screen)
## [1] 0.007258065
Bu pro_miss fonksiyonu tüm veri setindeki tüm kayıp veri oranını veriyor.
şimdi her bir değişkendeki kayip veriyi bulmak için “is.na” kullanıcaz. Bu tek tek true false diye veriyordu. Sonra da sütun toplamlarını alırsak her bir sütundaki/değişkendeki toplam kayıp veri sayısını görebiliriz.
sutun_kayip <- screen %>% is.na() %>% colSums()
sutun_kayip
## SUBNO TIMEDRS ATTDRUG ATTHOUSE INCOME EMPLMNT MSTATUS RACE
## 0 0 0 1 26 0 0 0
26/465
## [1] 0.05591398
şimdi income değişkenindeki kayıp veri oranı “0.05591398” yani dikkate alınır.
miss_var_summary(screen)
## # A tibble: 8 × 3
## variable n_miss pct_miss
## <chr> <int> <num>
## 1 INCOME 26 5.59
## 2 ATTHOUSE 1 0.215
## 3 SUBNO 0 0
## 4 TIMEDRS 0 0
## 5 ATTDRUG 0 0
## 6 EMPLMNT 0 0
## 7 MSTATUS 0 0
## 8 RACE 0 0
buradaki “pct_miss” yüzdelik anlamına geliyor “percentage” kısaltması. “var” da variable kısaltması.
miss_var_table(screen)
## # A tibble: 3 × 3
## n_miss_in_var n_vars pct_vars
## <int> <int> <dbl>
## 1 0 6 75
## 2 1 1 12.5
## 3 26 1 12.5
Bunun sonucuna göre 6 değişkende hiç eksik veri yok. 1 değişkende 1 eksik veri var. 1 değişkende de 26 eksik veri var.
miss_case_summary(screen)
## # A tibble: 465 × 3
## case n_miss pct_miss
## <int> <int> <dbl>
## 1 52 1 12.5
## 2 64 1 12.5
## 3 69 1 12.5
## 4 77 1 12.5
## 5 118 1 12.5
## 6 135 1 12.5
## 7 161 1 12.5
## 8 172 1 12.5
## 9 173 1 12.5
## 10 174 1 12.5
## # ℹ 455 more rows
buradaki case de bireyler ya da gözlemler. Kaçıncı gözlemde eksik veri var diye tek tek bakmak istersek kullanabiliriz.
miss_case_table(screen)
## # A tibble: 2 × 3
## n_miss_in_case n_cases pct_cases
## <int> <int> <dbl>
## 1 0 438 94.2
## 2 1 27 5.81
burada da eksik veri sayısına göre gözlemleri gruplandırıyor. Sonuca göre hiç eksik verisi olmayan 438 kişi, 1 tane eksik verisi olan 27 kişi var. Yani aynı anda farklı değişkenlerde eksik verisi olan kişi yok.
gg_miss_var(screen)
vis_miss(screen) + theme(axis.text.x = element_text(angle = 80))
“vis”, “visualization” kısaltması
axis.text.x x eksenindeki yazılar …. olsun
element_text değişkenleri belirtiyor
gg_miss_upset(screen)
UpSet grafiği, eksik verilerin kombinasyonlarını analiz etmek için kullanılan alternatif bir görselleştirme tekniğidir.
mcar_test(data=screen[,c(2,3,4,5,7,8)])
## # A tibble: 1 × 4
## statistic df p.value missing.patterns
## <dbl> <dbl> <dbl> <int>
## 1 18.7 10 0.0440 3
burada 1. ve 6. değişkeni almadık. 6. değişken galiba işi var yok.
p= 0.04 çıktı yani H0 kabul edilir. Yani eksik veriler tamamen rastgele değildir.
missing.pattern = kayıp veiye ait 3 farklı desen olabilir.
bunun için t testi kullanılacak. t.test ile tek tek yapılabilir de yapılabilir ama başka bir paketle kolay bir şekilde yapabiliriz.
library(finalfit)
# missing_compare(
# .data,
# dependent,
# explanatory,
# p = TRUE,
# na_include = FALSE,
# ...
# )
#hem veri setini hem de yeni verisindeki INCOME değişkenini kopyalayalım
screen2 <- screen
screen2$INCOME_m <- screen2$INCOME
explanatory <- c("TIMEDRS", "ATTDRUG", "ATTHOUSE")
dependent <- "INCOME_m"
screen2 %>%
missing_compare(dependent, explanatory) %>%
knitr::kable(row.names=FALSE, align = c("l", "l", "r", "r", "r"))
Missing data analysis: INCOME_m | Not missing | Missing | p | |
---|---|---|---|---|
TIMEDRS | Mean (SD) | 7.9 (11.1) | 7.6 (7.4) | 0.891 |
ATTDRUG | Mean (SD) | 7.7 (1.2) | 7.9 (1.0) | 0.368 |
ATTHOUSE | Mean (SD) | 23.5 (4.5) | 23.7 (4.2) | 0.860 |
# sütunları l= left, r= right yaslıyor
Bütün p değerleri 0,05’ten büyük çıktı. Yani gruplar ortlamaları arası anlamlı bir farklılık yok.
Buradaki eksik veriler için işlemler yapıcaz. Bunlar:
sil <- na.omit(screen)
omit: çıkarmak, atlamak, ihmal etmek
screen3 <- screen
screen3$INCOME[is.na(screen3$INCOME)] <- mean(screen3$INCOME, na.rm = TRUE)
any_na(screen3$INCOME)
## [1] FALSE
en kolayı bu. bunu anladım kendim yazabilirim ama for ve ifelse sonradan aklıma gelmez.
screen4 <- screen
for(i in 1:ncol(screen4)){
screen4[ , i][is.na(screen4[ , i])] <- mean(screen4[ , i], na.rm = TRUE)
}
any_na(screen4)
## [1] FALSE
screen5 <- screen
screen5 = mutate(screen5, INCOME = ifelse(is.na(INCOME), mean(INCOME, na.rm=TRUE), INCOME))
library(mvdalab)
Bu paket çok değişkenli veri analizi (Multivariate Data Analysis) için kullanılan bir pakettir.
İçindeki fonksiyonlar: - introNAs : Eksik veri oluşturur. - imputEM(veriseti): eksik verileri EM ile doldurur.
kendi veri setimizde bunu kullanalım
screen6 <- screen
veri_EM <- imputeEM(screen6)
veri_EM
## SUBNO TIMEDRS ATTDRUG ATTHOUSE INCOME EMPLMNT MSTATUS RACE
## 1 1 1 8 27.00000 5.000000 1 2 1
## 2 2 3 7 20.00000 6.000000 0 2 1
## 3 3 0 8 23.00000 3.000000 0 2 1
## 4 4 13 9 28.00000 8.000000 1 2 1
## 5 5 15 7 24.00000 1.000000 1 2 1
## 6 6 3 8 25.00000 4.000000 0 2 1
## 7 7 2 7 30.00000 6.000000 1 2 1
## 8 8 0 7 24.00000 6.000000 1 2 1
## 9 9 7 7 20.00000 2.000000 1 2 1
## 10 10 4 8 30.00000 8.000000 0 1 1
## 11 11 15 9 15.00000 7.000000 1 2 1
## 12 12 0 6 22.00000 3.000000 1 2 1
## 13 13 2 6 19.00000 5.000000 1 2 1
## 14 14 13 8 25.00000 6.000000 1 2 1
## 15 15 2 5 17.00000 1.000000 1 2 1
## 16 16 2 8 19.00000 3.000000 0 2 2
## 17 21 1 8 22.00000 1.000000 1 2 1
## 18 22 2 6 21.00000 7.000000 0 1 1
## 19 23 5 8 28.00000 2.000000 1 2 1
## 20 24 5 10 25.00000 9.000000 0 2 1
## 21 25 3 6 19.00000 4.000000 0 2 1
## 22 26 4 5 31.00000 5.000000 0 2 1
## 23 27 2 8 25.00000 2.000000 0 2 1
## 24 28 0 8 26.00000 1.000000 1 2 1
## 25 29 13 9 26.00000 2.000000 0 2 1
## 26 30 7 9 33.00000 1.000000 0 2 1
## 27 31 2 8 20.00000 5.000000 1 2 1
## 28 32 12 9 26.00000 1.000000 1 2 1
## 29 33 2 6 27.00000 3.000000 0 1 1
## 30 34 5 9 30.00000 1.000000 0 2 1
## 31 35 4 7 31.00000 4.000000 0 2 1
## 32 36 6 6 25.00000 5.000000 0 2 1
## 33 37 2 9 27.00000 5.000000 0 2 1
## 34 38 3 7 23.00000 4.000000 1 2 1
## 35 39 14 9 15.00000 4.000000 1 2 1
## 36 40 7 7 32.00000 3.000000 0 2 1
## 37 45 0 8 21.00000 9.000000 1 1 2
## 38 46 1 8 28.00000 6.000000 0 2 2
## 39 47 3 8 16.00000 1.000000 0 2 1
## 40 48 60 7 24.00000 1.000000 0 2 1
## 41 49 5 8 19.00000 1.000000 0 2 1
## 42 50 3 9 23.00000 6.000000 0 2 1
## 43 51 0 7 24.00000 8.000000 1 2 1
## 44 52 3 8 31.00000 3.000000 0 2 1
## 45 53 2 6 29.00000 1.000000 0 1 1
## 46 54 1 8 23.00000 4.000000 0 2 1
## 47 55 1 9 24.00000 4.000000 0 2 1
## 48 56 13 8 25.00000 1.000000 0 2 1
## 49 57 2 7 22.00000 2.000000 1 2 1
## 50 65 5 9 26.00000 5.000000 0 1 1
## 51 66 12 6 27.00000 5.000000 0 2 1
## 52 67 12 9 24.00000 2.952592 1 2 1
## 53 68 1 9 27.00000 6.000000 0 2 1
## 54 69 20 9 24.00000 6.000000 1 2 1
## 55 70 0 6 23.00000 4.000000 1 2 1
## 56 71 5 7 25.00000 4.000000 0 2 1
## 57 72 0 7 22.00000 6.000000 0 2 2
## 58 73 8 10 25.00000 9.000000 0 1 2
## 59 74 9 8 15.00000 3.000000 0 2 1
## 60 75 10 8 28.00000 6.000000 0 1 1
## 61 76 1 10 25.00000 3.000000 0 2 1
## 62 77 5 8 22.00000 7.000000 0 1 1
## 63 78 5 8 21.00000 3.000000 0 2 1
## 64 79 23 6 29.00000 4.835019 0 2 1
## 65 80 7 6 26.00000 1.000000 0 1 2
## 66 81 1 7 23.00000 2.000000 0 2 1
## 67 82 39 7 26.00000 2.000000 0 2 1
## 68 83 2 8 21.00000 3.000000 0 1 1
## 69 84 7 8 22.00000 3.793286 0 2 1
## 70 85 9 7 31.00000 5.000000 0 1 1
## 71 86 0 5 35.00000 5.000000 1 2 1
## 72 87 4 8 28.00000 5.000000 1 2 1
## 73 88 16 10 28.00000 5.000000 1 2 1
## 74 89 0 7 20.00000 5.000000 1 2 1
## 75 90 16 8 24.00000 3.000000 0 2 1
## 76 91 33 9 25.00000 1.000000 1 2 1
## 77 95 4 7 25.00000 3.778126 0 2 1
## 78 97 2 8 16.00000 3.000000 1 2 1
## 79 98 38 8 18.00000 2.000000 1 2 1
## 80 99 8 8 23.00000 2.000000 1 2 1
## 81 101 2 8 24.00000 9.000000 0 1 1
## 82 102 2 9 29.00000 10.000000 0 1 1
## 83 103 0 9 16.00000 1.000000 1 2 2
## 84 104 15 7 22.00000 5.000000 0 2 2
## 85 105 0 7 27.00000 10.000000 0 1 1
## 86 106 1 8 23.00000 8.000000 0 1 1
## 87 107 5 7 26.00000 1.000000 0 2 1
## 88 108 7 9 30.00000 3.000000 0 2 1
## 89 109 10 6 23.00000 3.000000 1 2 1
## 90 110 22 9 26.00000 6.000000 0 1 1
## 91 111 10 7 30.00000 3.000000 0 2 1
## 92 112 0 7 25.00000 2.000000 1 2 1
## 93 113 11 8 22.00000 1.000000 0 2 1
## 94 114 9 7 21.00000 4.000000 1 2 1
## 95 115 0 8 16.00000 4.000000 1 2 1
## 96 116 34 7 23.00000 5.000000 1 2 1
## 97 117 3 9 25.00000 4.000000 1 1 1
## 98 118 1 6 20.00000 5.000000 0 1 1
## 99 119 0 10 18.00000 1.000000 1 2 2
## 100 120 10 6 23.00000 4.000000 1 2 1
## 101 121 4 8 17.00000 4.000000 0 2 2
## 102 122 27 8 23.00000 8.000000 0 1 2
## 103 123 7 9 23.00000 5.000000 0 2 2
## 104 124 1 5 22.00000 2.000000 0 2 2
## 105 125 7 10 22.00000 6.000000 0 1 1
## 106 126 3 8 28.00000 4.000000 1 2 1
## 107 127 2 6 17.00000 2.000000 0 2 1
## 108 128 11 6 27.00000 7.000000 1 2 1
## 109 129 9 6 18.00000 4.000000 0 2 1
## 110 130 11 8 26.00000 7.000000 1 2 2
## 111 131 11 8 21.00000 7.000000 1 2 1
## 112 132 8 7 21.00000 4.000000 0 2 1
## 113 133 2 9 24.00000 10.000000 0 1 1
## 114 134 4 9 26.00000 3.000000 1 2 1
## 115 135 4 8 21.00000 3.000000 1 2 1
## 116 136 6 7 18.00000 8.000000 0 2 1
## 117 137 30 5 24.00000 10.000000 0 2 2
## 118 138 7 8 28.00000 6.882805 1 1 1
## 119 139 15 7 26.00000 1.000000 1 2 1
## 120 140 6 7 25.00000 8.000000 1 2 2
## 121 141 7 7 23.00000 5.000000 0 2 1
## 122 142 2 9 22.00000 3.000000 0 2 1
## 123 143 1 7 19.00000 5.000000 0 2 1
## 124 144 5 7 26.00000 3.000000 0 2 1
## 125 145 1 9 29.00000 3.000000 0 2 1
## 126 146 11 6 20.00000 4.000000 1 2 1
## 127 148 16 10 20.00000 1.000000 1 2 1
## 128 149 2 7 19.00000 5.000000 0 2 1
## 129 150 14 5 24.00000 4.000000 1 2 1
## 130 151 8 7 21.00000 3.000000 0 2 1
## 131 152 17 8 32.00000 1.000000 1 2 1
## 132 153 1 8 18.00000 3.000000 1 2 1
## 133 154 0 6 22.00000 1.000000 1 2 1
## 134 155 1 9 27.00000 8.000000 0 1 2
## 135 156 1 6 21.00000 7.214407 0 1 1
## 136 157 10 8 19.00000 1.000000 0 1 1
## 137 158 7 7 25.00000 1.000000 0 2 1
## 138 159 2 8 17.00000 7.000000 0 1 1
## 139 160 5 6 25.00000 3.000000 0 2 1
## 140 166 6 7 31.00000 4.000000 1 1 1
## 141 167 1 8 16.00000 7.000000 0 2 1
## 142 183 16 10 17.00000 8.000000 1 2 1
## 143 184 0 5 14.00000 8.000000 0 1 1
## 144 185 17 7 30.00000 4.000000 0 2 2
## 145 187 0 8 25.00000 6.000000 0 2 1
## 146 190 10 8 28.00000 1.000000 1 2 1
## 147 192 6 7 22.00000 1.000000 0 2 1
## 148 202 20 8 24.00000 5.000000 1 2 1
## 149 203 1 8 21.00000 2.000000 1 2 1
## 150 204 25 8 25.00000 7.000000 0 1 1
## 151 205 3 9 27.00000 7.000000 1 2 1
## 152 206 6 9 20.00000 7.000000 0 1 1
## 153 208 0 7 26.00000 1.000000 0 2 1
## 154 210 8 8 25.00000 1.000000 1 2 1
## 155 212 9 9 27.00000 3.000000 0 1 1
## 156 213 19 10 23.00000 5.000000 1 2 1
## 157 214 2 8 27.00000 3.000000 1 2 1
## 158 225 2 7 21.00000 3.000000 0 2 1
## 159 226 3 7 22.00000 5.000000 0 2 1
## 160 227 7 8 19.00000 7.000000 1 2 1
## 161 228 2 8 26.00000 2.483648 1 2 1
## 162 229 8 6 25.00000 4.000000 0 2 1
## 163 230 49 8 34.00000 4.000000 0 2 1
## 164 231 2 8 27.00000 1.000000 1 2 2
## 165 232 1 8 22.00000 3.000000 0 2 1
## 166 233 5 6 14.00000 3.000000 0 2 1
## 167 234 5 8 29.00000 1.000000 0 2 1
## 168 235 60 10 29.00000 4.000000 1 1 1
## 169 236 10 7 26.00000 6.000000 1 2 1
## 170 237 27 8 17.00000 7.000000 1 2 1
## 171 238 7 9 22.00000 3.000000 1 2 1
## 172 239 8 7 20.00000 3.526275 0 2 1
## 173 240 12 8 30.00000 3.220819 1 2 1
## 174 241 2 7 17.00000 1.720070 1 2 1
## 175 242 2 7 21.00000 1.000000 1 2 1
## 176 243 4 7 22.00000 3.000000 1 2 1
## 177 244 6 5 29.00000 3.000000 1 2 1
## 178 245 27 9 22.00000 1.000000 1 2 1
## 179 246 0 8 20.00000 9.000000 0 1 1
## 180 247 9 10 30.00000 3.000000 1 2 1
## 181 248 3 9 25.00000 2.542415 1 2 1
## 182 249 0 8 18.00000 5.000000 0 2 1
## 183 250 2 6 19.00000 4.000000 1 2 1
## 184 251 3 8 24.00000 3.000000 1 2 1
## 185 252 5 8 22.00000 4.000000 1 2 1
## 186 253 5 9 21.00000 8.000000 0 1 2
## 187 254 1 9 29.00000 1.000000 1 2 1
## 188 255 7 9 22.00000 1.000000 0 2 1
## 189 258 4 8 26.00000 7.000000 1 2 1
## 190 259 3 7 19.00000 6.000000 0 1 1
## 191 260 7 8 23.00000 8.000000 0 1 1
## 192 261 1 7 19.00000 9.000000 0 1 1
## 193 262 52 9 31.00000 4.000000 1 2 2
## 194 263 6 7 26.00000 2.000000 0 2 1
## 195 264 18 7 23.00000 4.000000 1 2 1
## 196 265 14 7 29.00000 8.395878 1 1 2
## 197 266 0 7 22.00000 4.000000 1 2 1
## 198 267 8 9 29.00000 1.000000 0 2 2
## 199 268 16 8 23.00000 7.000000 1 1 1
## 200 269 2 9 17.00000 3.000000 1 2 1
## 201 270 12 8 26.00000 1.000000 0 2 1
## 202 271 3 7 25.00000 4.000000 1 2 1
## 203 272 24 10 25.00000 3.569830 1 2 1
## 204 273 0 9 19.00000 4.000000 0 1 1
## 205 274 0 7 16.00000 3.000000 1 2 1
## 206 276 57 9 24.00000 2.000000 1 2 1
## 207 277 11 9 29.00000 3.000000 0 2 1
## 208 278 1 8 20.00000 6.000000 1 2 1
## 209 279 18 6 25.00000 2.000000 0 2 1
## 210 280 1 5 16.00000 6.000000 1 1 1
## 211 289 11 9 35.00000 4.000000 1 2 1
## 212 290 0 8 24.00000 7.000000 1 2 1
## 213 291 52 8 19.00000 1.000000 0 2 1
## 214 292 12 7 25.00000 4.000000 0 1 1
## 215 293 6 6 29.00000 3.000000 0 2 1
## 216 294 0 7 25.00000 3.000000 0 1 1
## 217 295 2 8 29.00000 2.000000 1 2 1
## 218 299 2 8 20.00000 6.000000 1 2 1
## 219 300 13 10 25.00000 1.000000 1 1 1
## 220 301 2 7 31.00000 4.000000 1 2 1
## 221 302 3 6 33.00000 5.000000 0 2 1
## 222 303 2 9 24.00000 2.000000 1 2 1
## 223 304 2 7 26.00000 4.000000 0 2 1
## 224 305 1 7 20.00000 7.000000 1 1 1
## 225 306 2 7 17.00000 4.000000 0 2 1
## 226 307 3 8 25.00000 7.000000 0 1 1
## 227 308 1 9 24.00000 3.000000 0 2 1
## 228 309 5 5 27.00000 10.000000 0 1 1
## 229 310 6 7 25.00000 10.000000 1 1 1
## 230 311 1 7 28.00000 7.000000 0 1 1
## 231 312 2 8 29.00000 1.000000 0 2 1
## 232 313 3 6 27.00000 4.000000 1 2 1
## 233 314 7 10 24.00000 4.000000 1 2 1
## 234 315 7 6 23.00000 7.000000 1 2 1
## 235 316 0 8 19.00000 3.000000 1 2 1
## 236 317 7 8 23.00000 3.763715 0 2 1
## 237 318 8 7 24.00000 3.000000 1 2 1
## 238 319 9 7 21.00000 7.000000 1 2 1
## 239 320 8 6 22.00000 3.000000 1 2 1
## 240 321 1 9 21.00000 2.126406 1 2 1
## 241 322 14 9 30.00000 2.000000 1 2 1
## 242 323 2 9 32.00000 1.000000 0 2 1
## 243 324 4 7 21.00000 3.000000 0 2 1
## 244 325 8 8 19.00000 10.000000 1 1 1
## 245 326 3 8 24.00000 4.000000 1 2 1
## 246 327 10 8 28.00000 1.000000 1 2 1
## 247 328 21 10 28.00000 10.000000 1 1 1
## 248 329 6 7 29.00000 7.000000 1 2 1
## 249 330 58 7 29.00000 4.000000 0 2 1
## 250 335 12 8 23.00000 4.000000 0 1 1
## 251 336 5 7 26.00000 1.000000 0 2 1
## 252 337 2 9 22.00000 1.000000 0 2 1
## 253 338 2 6 20.09208 5.000000 0 1 2
## 254 339 4 7 25.00000 6.000000 1 2 2
## 255 340 2 7 19.00000 5.000000 1 2 2
## 256 341 5 9 22.00000 3.000000 0 2 1
## 257 342 0 9 18.00000 5.000000 1 2 1
## 258 343 3 8 25.00000 3.682219 1 2 2
## 259 344 7 9 23.00000 5.000000 0 2 1
## 260 345 1 9 19.00000 8.000000 0 2 2
## 261 346 2 8 2.00000 1.000000 0 1 1
## 262 347 1 6 26.00000 5.000000 0 2 1
## 263 348 4 6 24.00000 3.000000 0 2 1
## 264 349 4 7 30.00000 4.000000 0 2 1
## 265 355 4 8 30.00000 5.000000 0 2 1
## 266 357 2 8 22.00000 3.000000 0 2 1
## 267 358 0 8 26.00000 7.000000 0 2 1
## 268 359 13 6 30.00000 4.000000 0 2 1
## 269 361 3 8 25.00000 5.000000 1 2 1
## 270 362 1 8 24.00000 5.000000 0 2 1
## 271 363 4 7 23.00000 3.000000 1 2 1
## 272 365 1 8 18.00000 4.000000 0 2 1
## 273 367 3 7 23.00000 4.000000 1 2 1
## 274 369 1 6 34.00000 4.000000 0 2 1
## 275 370 57 8 23.00000 4.000000 1 2 1
## 276 372 1 8 13.00000 1.000000 0 2 2
## 277 374 17 9 27.00000 7.000000 1 2 1
## 278 378 11 7 21.00000 3.000000 0 2 1
## 279 379 43 6 28.00000 7.000000 1 1 1
## 280 380 6 9 28.00000 7.000000 0 1 1
## 281 381 6 8 20.00000 6.000000 0 1 1
## 282 382 1 9 21.00000 1.000000 1 2 1
## 283 383 0 7 25.00000 9.000000 0 1 1
## 284 384 10 6 27.00000 9.000000 0 1 1
## 285 385 3 9 23.00000 10.000000 1 2 1
## 286 386 37 9 25.00000 6.000000 0 1 1
## 287 387 6 8 22.00000 2.000000 0 2 1
## 288 392 11 7 24.00000 9.000000 1 1 1
## 289 397 4 7 15.00000 3.000000 0 2 2
## 290 398 75 9 33.00000 9.000000 0 1 1
## 291 399 7 9 24.00000 5.000000 0 2 1
## 292 400 3 6 29.00000 7.000000 0 1 2
## 293 401 3 7 21.00000 3.000000 0 2 1
## 294 402 3 7 26.00000 2.000000 1 2 1
## 295 403 4 8 29.00000 4.000000 0 1 1
## 296 404 5 9 21.00000 1.000000 0 2 1
## 297 405 2 10 21.00000 1.000000 1 2 1
## 298 406 4 7 18.00000 5.000000 0 1 1
## 299 407 2 8 2.00000 4.000000 0 1 1
## 300 413 11 9 28.00000 2.000000 1 1 1
## 301 414 0 6 20.00000 6.000000 1 2 1
## 302 417 2 7 27.00000 4.000000 1 2 1
## 303 418 4 8 23.00000 6.000000 1 2 1
## 304 420 6 9 27.00000 2.747872 1 2 1
## 305 421 0 8 27.00000 5.000000 1 2 2
## 306 424 2 6 25.00000 4.000000 1 2 1
## 307 425 5 6 22.00000 4.000000 0 2 1
## 308 434 2 6 29.00000 1.000000 1 2 1
## 309 435 10 9 23.00000 7.000000 1 2 1
## 310 436 29 9 14.00000 3.000000 1 2 1
## 311 437 3 8 28.00000 8.000000 0 1 1
## 312 438 0 8 29.00000 3.000000 0 2 1
## 313 439 21 8 27.00000 7.000000 0 1 1
## 314 440 0 7 23.00000 6.000000 1 1 1
## 315 441 3 8 23.00000 5.000000 0 2 1
## 316 442 1 8 20.00000 1.000000 1 2 1
## 317 443 9 9 24.00000 10.000000 0 1 1
## 318 444 3 8 26.00000 3.000000 0 2 1
## 319 445 3 7 23.00000 1.000000 1 2 1
## 320 446 5 8 25.00000 4.000000 1 1 1
## 321 447 6 8 28.00000 4.028888 0 2 1
## 322 448 4 9 16.00000 4.000000 0 2 1
## 323 451 16 5 29.00000 1.000000 0 1 1
## 324 452 3 9 25.00000 9.000000 1 1 1
## 325 453 13 9 22.00000 3.995393 0 2 1
## 326 454 3 9 29.00000 1.000000 0 2 1
## 327 455 2 6 23.00000 3.000000 0 2 1
## 328 456 2 8 26.00000 3.000000 0 2 2
## 329 457 3 7 19.00000 5.000000 0 2 2
## 330 458 7 7 27.00000 5.000000 0 1 1
## 331 459 2 8 21.00000 4.000000 0 2 2
## 332 460 2 7 18.00000 6.000000 0 2 1
## 333 461 2 7 19.00000 4.000000 1 2 1
## 334 462 2 7 23.00000 3.000000 0 2 2
## 335 463 5 10 19.00000 7.000000 0 1 2
## 336 464 3 7 21.00000 6.000000 1 2 1
## 337 465 2 6 23.00000 5.000000 1 2 1
## 338 466 4 9 28.00000 3.000000 0 2 1
## 339 467 1 7 24.00000 6.000000 1 2 1
## 340 469 3 8 27.00000 2.000000 0 2 1
## 341 472 6 9 27.00000 10.000000 1 1 1
## 342 473 4 8 25.00000 4.000000 0 1 1
## 343 474 30 8 29.00000 4.000000 1 1 1
## 344 476 0 7 19.00000 5.000000 1 2 1
## 345 479 25 7 27.00000 3.000000 1 2 1
## 346 480 0 7 31.00000 3.000000 0 1 1
## 347 481 5 8 18.00000 2.000000 0 2 1
## 348 482 3 8 23.00000 8.000000 0 1 1
## 349 483 2 9 32.00000 4.000000 0 1 1
## 350 484 2 7 20.00000 7.000000 0 1 1
## 351 485 9 8 21.00000 3.000000 0 2 1
## 352 486 2 8 25.00000 2.296006 1 2 1
## 353 487 13 6 21.00000 4.000000 1 2 1
## 354 488 1 8 22.00000 3.000000 1 2 1
## 355 489 4 9 29.00000 4.000000 0 2 1
## 356 490 4 7 23.00000 1.000000 0 1 1
## 357 491 3 9 20.00000 1.000000 0 2 1
## 358 492 7 9 21.00000 1.000000 1 2 1
## 359 493 7 8 26.00000 1.000000 0 2 1
## 360 494 14 6 21.00000 2.000000 0 2 1
## 361 495 4 7 24.00000 1.000000 0 2 1
## 362 496 15 6 26.00000 6.000000 1 2 1
## 363 497 37 9 30.00000 2.000000 0 2 1
## 364 498 2 7 18.00000 2.000000 0 2 1
## 365 499 4 7 22.00000 2.000000 1 2 1
## 366 500 6 9 25.00000 4.000000 1 2 1
## 367 501 10 6 21.00000 4.000000 1 2 1
## 368 502 56 8 19.00000 3.000000 1 2 1
## 369 503 3 10 23.00000 5.000000 1 2 1
## 370 504 0 9 22.00000 1.000000 1 2 1
## 371 505 18 7 21.00000 1.000000 0 2 1
## 372 506 3 9 22.00000 3.000000 1 2 1
## 373 507 18 7 24.00000 4.000000 0 2 1
## 374 508 7 8 18.00000 4.000000 0 2 1
## 375 509 29 8 18.00000 5.000000 0 2 1
## 376 510 0 5 24.00000 4.000000 1 2 1
## 377 511 5 6 25.00000 8.000000 1 1 1
## 378 512 4 8 19.00000 3.248889 0 2 1
## 379 513 3 7 27.00000 3.695373 0 2 1
## 380 514 6 7 29.00000 2.000000 0 2 1
## 381 515 21 9 22.00000 2.000000 1 2 1
## 382 516 1 8 25.00000 1.000000 1 2 1
## 383 517 3 7 27.00000 3.000000 1 2 1
## 384 518 3 8 26.00000 6.000000 0 1 2
## 385 519 0 7 28.00000 1.000000 0 2 1
## 386 520 13 10 19.00000 2.000000 1 2 1
## 387 521 5 6 23.00000 9.000000 0 1 1
## 388 522 5 8 33.00000 4.000000 0 2 1
## 389 523 37 7 24.00000 10.000000 1 1 1
## 390 524 2 8 28.00000 4.000000 0 2 1
## 391 525 11 8 28.00000 4.000000 1 2 1
## 392 526 13 7 24.00000 9.000000 1 2 1
## 393 527 2 9 21.00000 4.000000 1 2 1
## 394 528 4 9 31.00000 3.000000 1 2 1
## 395 529 21 9 23.00000 2.000000 0 2 1
## 396 530 2 10 26.00000 4.000000 1 2 1
## 397 533 4 8 26.00000 3.000000 1 2 1
## 398 534 3 8 26.00000 3.000000 0 2 2
## 399 535 3 8 24.00000 4.000000 1 2 1
## 400 536 12 8 18.00000 3.000000 1 2 1
## 401 538 1 7 21.00000 5.000000 0 1 1
## 402 539 4 7 19.00000 2.000000 0 2 1
## 403 540 13 7 17.00000 8.000000 0 1 1
## 404 547 2 7 24.00000 1.000000 0 2 1
## 405 548 81 8 24.00000 9.000000 0 1 1
## 406 549 12 7 31.00000 10.000000 1 1 1
## 407 550 2 8 19.00000 6.000000 1 2 1
## 408 551 16 7 28.00000 4.000000 1 2 1
## 409 552 27 8 23.00000 3.240937 1 2 1
## 410 553 2 5 26.00000 5.000000 0 2 1
## 411 554 2 7 26.00000 2.000000 0 1 1
## 412 555 8 8 18.00000 6.000000 0 2 1
## 413 556 2 8 16.00000 4.000000 1 2 1
## 414 557 4 8 29.00000 1.000000 1 2 1
## 415 558 3 8 14.00000 4.000000 1 2 1
## 416 559 19 7 23.00000 4.000000 1 2 1
## 417 560 4 9 29.00000 1.000000 1 2 1
## 418 567 1 7 19.00000 3.000000 0 2 1
## 419 568 3 7 22.00000 1.987783 1 2 1
## 420 569 15 6 20.00000 1.000000 1 2 1
## 421 570 4 8 22.00000 7.431850 0 1 1
## 422 571 4 8 21.00000 1.000000 1 2 1
## 423 572 13 8 23.00000 6.000000 1 2 1
## 424 573 6 9 26.00000 1.000000 1 2 1
## 425 574 1 10 18.00000 10.000000 0 1 1
## 426 575 3 9 18.00000 1.000000 1 2 1
## 427 576 3 9 28.00000 4.000000 1 2 1
## 428 577 0 9 31.00000 2.000000 0 2 1
## 429 578 22 7 22.00000 2.000000 0 2 1
## 430 579 4 8 28.00000 3.000000 1 2 1
## 431 580 14 7 20.00000 2.000000 0 1 1
## 432 581 6 9 20.00000 7.000000 1 1 1
## 433 582 16 7 26.00000 7.000000 1 2 2
## 434 583 6 6 27.00000 1.000000 0 2 1
## 435 584 0 8 11.00000 2.411985 1 2 2
## 436 585 8 6 26.00000 7.000000 0 2 1
## 437 586 0 7 27.00000 6.000000 0 2 1
## 438 587 4 7 16.00000 4.000000 0 2 1
## 439 588 5 6 12.00000 4.000000 0 2 1
## 440 589 2 8 20.00000 3.000000 1 2 1
## 441 590 6 8 19.00000 6.000000 0 1 1
## 442 591 11 8 26.00000 7.000000 1 2 1
## 443 592 1 7 20.00000 3.000000 0 2 1
## 444 593 23 7 22.00000 7.000000 0 1 1
## 445 683 4 8 30.00000 6.000000 0 2 1
## 446 685 4 9 25.00000 1.000000 0 2 1
## 447 686 16 9 23.00000 6.000000 0 1 1
## 448 687 6 7 22.00000 8.000000 1 1 1
## 449 688 1 9 24.00000 5.000000 0 2 1
## 450 689 2 6 23.00000 4.000000 0 1 1
## 451 690 6 9 27.00000 3.000000 0 2 1
## 452 691 6 6 28.00000 3.000000 1 2 1
## 453 706 3 7 24.00000 3.000000 1 2 1
## 454 707 1 7 17.00000 4.000000 0 2 1
## 455 708 15 9 22.00000 10.000000 1 2 1
## 456 709 3 6 23.00000 4.000000 1 2 1
## 457 710 7 8 16.00000 3.000000 0 2 1
## 458 711 9 6 18.00000 2.000000 1 2 1
## 459 717 18 6 21.00000 4.000000 1 2 1
## 460 724 14 9 19.00000 3.000000 1 2 1
## 461 754 3 6 17.00000 3.000000 0 2 1
## 462 755 4 8 17.00000 3.000000 1 2 1
## 463 756 15 10 19.00000 8.000000 1 2 1
## 464 757 4 8 23.00000 2.000000 1 2 1
## 465 758 3 8 18.00000 4.000000 1 2 1
Buradaki çıktıları açıklayalım
PRESS: Predicted Residual Error Sum of Squares : Düşük press değeri iyi tahmin, büyük press değeri kötü tahmin gibi yorumla.
Ncompt = 1 : tek bileşenle eksik verileri tamamlıyor.
Ncompt = 2 : iki bileşenle eksik verileri tamalıyor.
NOT1 : Şimdi bileşen sayısı arttıkça daha iyi tahmin yapar ama bu sefer de ezberleme gibi overfitting olur. Bu da aslında kötü bir şey. Bir de bileşeni açıklıcam.
NOT2 : Bileşen (Principal Component) Nedir? Bir veri setinde birçok değişken (özellik/sütun) olabilir. Bileşen, bu değişkenlerin içindeki bilgiyi daha az sayıda yeni değişken (ana bileşen) ile özetleyen bir kavramdır.
Kendime soru Bu galiba faktör analizinde temel bileşenler analizi. Orda hata varyansını hesaba katmıyordu. Bu durum, bu modelin bir dezavantajı olabilir. Tugayla bunu konuşmuştuk zaten PCA Aaçımlayıcı faktör analizi için uygun olmayabilir diye. Sonra yine sorarsın.
fonksiyonun parametrelerinin açıklaması
pca.ncomps = 2 dersen, “Sadece 2 çeşit pasta yapacağım.” (Örneğin, çikolatalı ve vanilyalı. Az bileşen → Genel eğilimleri öğrenir, ama bazen eksik veriyi tam doğru tahmin edemez. Çok fazla bileşen → Veriye tam uyum sağlar, ama gürültüyü de öğrenebilir.
impute.ncomps = 3 dersen, “Önce 1 çeşit pasta yapmayı deneyeceğim, sonra 2 çeşit, sonra 3 çeşit… ve en iyi sonucu veren seçeneği kullanacağım. Bunun sayısını arttırırsan hem işlem süresi uzar hem de overfit artar.
MCAR ile 3 desen bulduysan, pca.ncomps = 3 kullanmak mantıklı olur çünkü 3 deseni en iyi şekilde açıklamak için 3 bileşen yeterli olabilir. (Chatgptye MCAR ile desen sayısını bulup pca.ncomps’a bu desen sayısını yazsak ne olur diye sordum)
CV = TRUE (Çapraz Doğrulama Kullanılsın mı?) cross-validation: hata oranını en aza indiren optimal bileşen sayısını bulmaya çalışır.
Init = “mean” (Eksik Veriler İçin Başlangıç Değeri Ne?) eksik verileri ilk olarak mean ile doldursun. sonra EM ile analiz yapsın. Median da kullanabilirsin.
Initialization (başlatma): bunun kısaltması = init
scale = TRUE (Veriler Ölçeklensin mi?) TRUE olursa, değişkenler standart hale getirilir (ortalama = 0, standart sapma = 1).
Ölçeklendirme, değişkenlerin farklı birimlerde olmasını önleyerek daha doğru hesaplamalar yapılmasını sağlar.
iters = 25 (Kaç Kez Tekrar Edecek?)
EM algoritmasının kaç iterasyon (tekrar) yapacağını belirler.
tol = .Machine$double.eps^0.25 (Durdurma Kriteri - Yakınsama Eşiği)
Algoritmanın duracağı noktayı belirler. Eğer iki ardışık iterasyon arasındaki değişim çok küçükse, algoritma daha fazla tekrar yapmayı bırakır. Böylece gereksiz hesaplamalar önlenmiş olur.
tolerance’ın kısaltması
calculus Eğer bir fonksiyonun türev değeri çok küçükse, fonksiyon düzleşmeye başlar ve algoritma durur. Bu, “tol” parametresi ile belirtilen küçük değişimle ilişkilidir. 1/x örneğinden düşün.
veri_EM$CV.Results
## X1 X2
## 2 3540.268 3539.690
## 3 3684.408 3684.217
yorum 2 bileşenli modelin toplam hatası: 7079.958 3 bileşenli modelin toplam hatası: 7368.625 Bu durumda 2 bileşenli model daha düşük toplam hata (ya da tahmin hatası) değerine sahip. Bu da, 2 bileşenin daha iyi performans gösterdiğini gösterir.
satır (X1 ve X2’deki ilk değerler), 2 bileşen kullanılarak yapılan modelin çapraz doğrulama sonuçlarını gösteriyor. Bu sayılar arasındaki fark çok küçüktür (örneğin, 3540.268 - 3539.690 = 0.578). Bu, modelin performansında çok az bir değişiklik olduğunu gösterir, bu da kullanılan bileşen sayısının çok fazla olmadığı anlamına gelir. Yani, bir bileşenle yapılan modelin hata değeri çok yakın bir değere sahiptir.
satır (X1 ve X2’deki ikinci değerler), 3 bileşen kullanılarak yapılan modelin çapraz doğrulama sonuçlarını gösteriyor.
library(mvtnorm)
library(missMethods)
screen7 <- screen
screen7_EM_F <- impute_EM(screen7, stochastic = FALSE)
screen7_EM_T <- impute_EM(screen7, stochastic = TRUE)
print("False ile EM varyansı")
## [1] "False ile EM varyansı"
var(screen7_EM_F$INCOME)
## [1] 5.598309
print("True ile EM varyansı")
## [1] "True ile EM varyansı"
var(screen7_EM_T$INCOME)
## [1] 5.790011
print("İlk verinin varyansı")
## [1] "İlk verinin varyansı"
var(screen$INCOME, na.rm = TRUE)
## [1] 5.850958
soru Galiba biz varyansı en az değiştireni bulmak isitiyoruz. O zaman bu durumda “true” olanı almak daha mı mantıklı olur?
Deterministik (stochastic = FALSE) İmputasyon: Deterministik imputasyon, eksik verilerin tek bir değerle doldurulmasıdır. Bu durumda, EM algoritması eksik verileri, diğer verilerden tahmin ederek doldurur. Örneğin, eksik yaşlar, mevcut olan verilerin ortalamasına dayanarak doldurulabilir.
Avantaj: Hızlı ve belirli bir çözüm sunar. Model sabittir ve aynı veri kümesi üzerinde çalıştırıldığında her zaman aynı sonuçları elde edersiniz.
Dezavantaj: Bu yaklaşım, gerçek verinin belirsizliğini göz ardı eder. Örneğin, öğrenciler gerçekten farklı yaşlarda olabilirler, ancak her ikisi de 19 veya 20 olarak doldurulmuş. Bu, verinin doğal çeşitliliğini tam yansıtmayabilir.
Stokastik (stochastic = TRUE) İmputasyon: Stokastik imputasyon, eksik verileri bir dağılımdan rastgele çekilen değerlerle doldurur. Yani, her bir eksik veri için, tahmin edilen değerlerden bir olasılık dağılımı çıkarılır ve eksik değer bu dağılımdan seçilir.
Avantaj: Bu yöntem, eksik verilerin gerçek verinin belirsizliğini daha iyi modelleyebilir. Veriler arasındaki küçük farklılıkları ve dağılımı dikkate alır.
Dezavantaj: Her çalıştırıldığında sonuçlar farklı olabilir çünkü rastgelelik eklenir. Bu da modelin daha zaman alıcı ve karmaşık olmasına neden olabilir.