library(haven)
## Warning: package 'haven' was built under R version 4.5.2
library(tidyverse)
## Warning: package 'dplyr' was built under R version 4.5.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.1 ✔ stringr 1.5.2
## ✔ ggplot2 4.0.0 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.1.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(psych)
## Warning: package 'psych' was built under R version 4.5.2
##
## Attaching package: 'psych'
##
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
library(naniar)
## Warning: package 'naniar' was built under R version 4.5.2
library(gtsummary)
## Warning: package 'gtsummary' was built under R version 4.5.2
library(vtable)
## Warning: package 'vtable' was built under R version 4.5.2
## Zorunlu paket yükleniyor: kableExtra
## Warning: package 'kableExtra' was built under R version 4.5.2
##
## Attaching package: 'kableExtra'
##
## The following object is masked from 'package:dplyr':
##
## group_rows
library(funModeling)
## Warning: package 'funModeling' was built under R version 4.5.3
## Zorunlu paket yükleniyor: Hmisc
## Warning: package 'Hmisc' was built under R version 4.5.2
##
## Attaching package: 'Hmisc'
##
## The following object is masked from 'package:psych':
##
## describe
##
## The following objects are masked from 'package:dplyr':
##
## src, summarize
##
## The following objects are masked from 'package:base':
##
## format.pval, units
##
## funModeling v.1.9.6 :)
## Examples and tutorials at livebook.datascienceheroes.com
## / Now in Spanish: librovivodecienciadedatos.ai
library(DataExplorer)
## Warning: package 'DataExplorer' was built under R version 4.5.3
library(naniar)
library(ggplot2)
library(rlang)
##
## Attaching package: 'rlang'
##
## The following objects are masked from 'package:purrr':
##
## %@%, flatten, flatten_chr, flatten_dbl, flatten_int, flatten_lgl,
## flatten_raw, invoke, splice
library(vctrs)
##
## Attaching package: 'vctrs'
##
## The following object is masked from 'package:dplyr':
##
## data_frame
##
## The following object is masked from 'package:tibble':
##
## data_frame
library(UpSetR)
## Warning: package 'UpSetR' was built under R version 4.5.3
library(finalfit)
## Warning: package 'finalfit' was built under R version 4.5.3
library(mvdalab)
## Warning: package 'mvdalab' was built under R version 4.5.3
##
## Attaching package: 'mvdalab'
##
## The following object is masked from 'package:psych':
##
## smc
library(missMethods)
## Warning: package 'missMethods' was built under R version 4.5.3
##
## Attaching package: 'missMethods'
##
## The following objects are masked from 'package:naniar':
##
## impute_mean, impute_median, impute_mode
library(mvtnorm)
## Warning: package 'mvtnorm' was built under R version 4.5.3
library(mice)
## Warning: package 'mice' was built under R version 4.5.3
##
## Attaching package: 'mice'
##
## The following object is masked from 'package:stats':
##
## filter
##
## The following objects are masked from 'package:base':
##
## cbind, rbind
screen <- read_sav("SCREEN.SAV")
summary(screen)
## SUBNO TIMEDRS ATTDRUG ATTHOUSE
## Min. : 1.0 Min. : 0.000 Min. : 5.000 Min. : 2.00
## 1st Qu.:137.0 1st Qu.: 2.000 1st Qu.: 7.000 1st Qu.:21.00
## Median :314.0 Median : 4.000 Median : 8.000 Median :24.00
## Mean :317.4 Mean : 7.901 Mean : 7.686 Mean :23.54
## 3rd Qu.:483.0 3rd Qu.:10.000 3rd Qu.: 9.000 3rd Qu.:27.00
## Max. :758.0 Max. :81.000 Max. :10.000 Max. :35.00
## NA's :1
## INCOME EMPLMNT MSTATUS RACE
## Min. : 1.00 Min. :0.000 Min. :1.000 Min. :1.000
## 1st Qu.: 2.50 1st Qu.:0.000 1st Qu.:2.000 1st Qu.:1.000
## Median : 4.00 Median :0.000 Median :2.000 Median :1.000
## Mean : 4.21 Mean :0.471 Mean :1.778 Mean :1.088
## 3rd Qu.: 6.00 3rd Qu.:1.000 3rd Qu.:2.000 3rd Qu.:1.000
## Max. :10.00 Max. :1.000 Max. :2.000 Max. :2.000
## NA's :26
İlk Değişken Olan SUBNO Çıkarılarak İnceleme
#describe(screen[,-1])
#screen %>%
#select(2:6) %>%
#tbl_summary(
#statistic = all_continuous() ~ c("{min} , {max}") ,
#missing = "always"
#)
Sonuçları Tablo Olarak Alabileceğimiz Fonksiyonlar
sumtable(screen, summ = c('notNA(x)' , 'min(x)' , 'max(x)'))
| Variable | NotNA | Min | Max |
|---|---|---|---|
| SUBNO | 465 | 1 | 758 |
| TIMEDRS | 465 | 0 | 81 |
| ATTDRUG | 465 | 5 | 10 |
| ATTHOUSE | 464 | 2 | 35 |
| INCOME | 439 | 1 | 10 |
| MSTATUS | 465 | 1 | 2 |
| RACE | 465 | 1 | 2 |
st(screen, summ = c('notNA(x)' , 'min(x)' , 'max(x)'),
summ.names = c('Frekans', 'Minimum', 'Maximum'))
| Variable | Frekans | Minimum | Maximum |
|---|---|---|---|
| SUBNO | 465 | 1 | 758 |
| TIMEDRS | 465 | 0 | 81 |
| ATTDRUG | 465 | 5 | 10 |
| ATTHOUSE | 464 | 2 | 35 |
| INCOME | 439 | 1 | 10 |
| MSTATUS | 465 | 1 | 2 |
| RACE | 465 | 1 | 2 |
#kable(describe(screen[,-1, drop = FALSE]), format= ‘markdown’, caption = “Betimsel İstatistiksel”, digits = 2 )
Not: Principal Component Analysis - Temel Bileşenler Analizi Gözlenen değişkenlerden yeni bir değişken oluşturmak için kullanılır. (Tek faktörde toplama)
Veri setindeki eksik değerleri ve benzersiz değerleri özetlemek
df_status(screen)
## variable q_zeros p_zeros q_na p_na q_inf p_inf
## 1 SUBNO 0 0.00 0 0.00 0 0
## 2 TIMEDRS 42 9.03 0 0.00 0 0
## 3 ATTDRUG 0 0.00 0 0.00 0 0
## 4 ATTHOUSE 0 0.00 1 0.22 0 0
## 5 INCOME 0 0.00 26 5.59 0 0
## 6 EMPLMNT 246 52.90 0 0.00 0 0
## 7 MSTATUS 0 0.00 0 0.00 0 0
## 8 RACE 0 0.00 0 0.00 0 0
## type unique
## 1 numeric 465
## 2 numeric 43
## 3 numeric 6
## 4 numeric 26
## 5 numeric 10
## 6 haven_labelled-vctrs_vctr-double 2
## 7 numeric 2
## 8 numeric 2
create_report(screen)
##
##
## processing file: report.rmd
## | | | 0% | |. | 2% | |.. | 4% [global_options] | |.. | 7% | |... | 9% [introduce] | |.... | 11% | |..... | 13% [plot_intro]
## | |...... | 15% | |...... | 17% [data_structure] | |....... | 20% | |........ | 22% [missing_profile]
## | |......... | 24% | |.......... | 26% [univariate_distribution_header] | |.......... | 28% | |........... | 30% [plot_histogram]
## | |............ | 33% | |............. | 35% [plot_response_histogram] | |.............. | 37% | |.............. | 39% [plot_density] | |............... | 41% | |................ | 43% [plot_response_density] | |................. | 46% | |.................. | 48% [plot_frequency_bar] | |.................. | 50% | |................... | 52% [plot_response_bar] | |.................... | 54% | |..................... | 57% [plot_with_bar] | |...................... | 59% | |....................... | 61% [plot_normal_qq]
## | |....................... | 63% | |........................ | 65% [plot_response_qq] | |......................... | 67% | |.......................... | 70% [plot_by_qq] | |........................... | 72% | |........................... | 74% [correlation_analysis]
## | |............................ | 76% | |............................. | 78% [principal_component_analysis]
## | |.............................. | 80% | |............................... | 83% [bivariate_distribution_header] | |............................... | 85% | |................................ | 87% [plot_response_boxplot] | |................................. | 89% | |.................................. | 91% [plot_by_boxplot] | |................................... | 93% | |................................... | 96% [plot_response_scatterplot] | |.................................... | 98% | |.....................................| 100% [plot_by_scatterplot]
## output file: D:/Rpskometri/DERS1/report.knit.md
## "C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools/pandoc" +RTS -K512m -RTS "D:\Rpskometri\DERS1\report.knit.md" --to html4 --from markdown+autolink_bare_uris+tex_math_single_backslash --output pandoc18304fe6704f.html --lua-filter "C:\Users\ebrar\AppData\Local\R\win-library\4.5\rmarkdown\rmarkdown\lua\pagebreak.lua" --lua-filter "C:\Users\ebrar\AppData\Local\R\win-library\4.5\rmarkdown\rmarkdown\lua\latex-div.lua" --lua-filter "C:\Users\ebrar\AppData\Local\R\win-library\4.5\rmarkdown\rmarkdown\lua\table-classes.lua" --embed-resources --standalone --variable bs3=TRUE --section-divs --table-of-contents --toc-depth 6 --template "C:\Users\ebrar\AppData\Local\R\win-library\4.5\rmarkdown\rmd\h\default.html" --no-highlight --variable highlightjs=1 --variable theme=yeti --mathjax --variable "mathjax-url=https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" --include-in-header "C:\Users\ebrar\AppData\Local\Temp\RtmpIjEVqZ\rmarkdown-str1830a664ebf.html"
##
## Output created: report.html
SPSS kaynaklı veri Etiketlerini Temizlemek
screen <- expss:: drop_var_labs(screen)
## Registered S3 methods overwritten by 'expss':
## method from
## [.labelled Hmisc
## as.data.frame.labelled base
## print.labelled Hmisc
head(screen)
## # A tibble: 6 × 8
## SUBNO TIMEDRS ATTDRUG ATTHOUSE INCOME EMPLMNT MSTATUS RACE
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 1 8 27 5 1 2 1
## 2 2 3 7 20 6 0 2 1
## 3 3 0 8 23 3 0 2 1
## 4 4 13 9 28 8 1 2 1
## 5 5 15 7 24 1 1 2 1
## 6 6 3 8 25 4 0 2 1
Veri setinde eksik veri var mı ? (Naniar paketi)
any_na(screen)
## [1] TRUE
Veri setindeki toplam kayıp değer sayısını ve oranını hesaplama
n_miss(screen)
## [1] 27
prop_miss(screen)
## [1] 0.007258065
Her bir değişke de bulunan kayıp değer sayısını hesaplama
screen %>% is.na() %>% colSums()
## SUBNO TIMEDRS ATTDRUG ATTHOUSE INCOME EMPLMNT MSTATUS RACE
## 0 0 0 1 26 0 0 0
Değişken ve gözlem bazında kayıp veri özetlerini görüntüleme
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
gg_miss_upset(screen)
## Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
## ℹ Please use tidy evaluation idioms with `aes()`.
## ℹ See also `vignette("ggplot2-in-packages")` for more information.
## ℹ The deprecated feature was likely used in the UpSetR package.
## Please report the issue to the authors.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## ℹ The deprecated feature was likely used in the UpSetR package.
## Please report the issue to the authors.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## `geom_line()`: Each group consists of only one observation.
## ℹ Do you need to adjust the group aesthetic?
## Warning: The `size` argument of `element_line()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## ℹ The deprecated feature was likely used in the UpSetR package.
## Please report the issue to the authors.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
(naniar paketi) - p value anlamlı ise rastgele değil, mcar değil
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
Kayıp Verinin diğer değişkenlerle ilgisi -finalfit paketi ile t testi yapılır
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"),
caption = "EKsik veriye sahip olan ve olmayan değiskenlerin ortalama karsılatırması")
| 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 |
Finalfit yerine kendimiz T testi Yaparsak
miss_test <- screen2 %>% mutate(miss_income = is.na(INCOME))
#income değişkeninde eksik verisi olmayanlar
ATTHOUSE_nonna <- miss_test %>% filter(miss_income == FALSE) %>%
pull(ATTHOUSE)
#income değişkeninde eksik verisi olanlar
ATTHOUSE_na <- miss_test %>% filter(miss_income == TRUE) %>%
pull(ATTHOUSE)
#c ORAN
t.test(ATTHOUSE_nonna, ATTHOUSE_na)
##
## Welch Two Sample t-test
##
## data: ATTHOUSE_nonna and ATTHOUSE_na
## t = -0.18904, df = 28.553, p-value = 0.8514
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -1.896325 1.575636
## sample estimates:
## mean of x mean of y
## 23.53196 23.69231
Silmeye Dayalı Yöntemler
-Liste Bazında Silme
na.omit(screen)
## # A tibble: 438 × 8
## SUBNO TIMEDRS ATTDRUG ATTHOUSE INCOME EMPLMNT MSTATUS RACE
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 1 8 27 5 1 2 1
## 2 2 3 7 20 6 0 2 1
## 3 3 0 8 23 3 0 2 1
## 4 4 13 9 28 8 1 2 1
## 5 5 15 7 24 1 1 2 1
## 6 6 3 8 25 4 0 2 1
## 7 7 2 7 30 6 1 2 1
## 8 8 0 7 24 6 1 2 1
## 9 9 7 7 20 2 1 2 1
## 10 10 4 8 30 8 0 1 1
## # ℹ 428 more rows
-Çiflter Bazında Silme Sadece eksik olan değişkenler silinir eksik olmayan değişkenler tam veri seti olarak kullanılır ancak önerilmez.
Veri Atamaya Dayalı Yöntemler
Ortalama ile Atama
Kayıp değerler, değişkenin ortalması ile doldurulur.
boş veriler is.na ile seçilip ortalama atanır. Ortalama atama yönteminin en büyük sıkıntısı standart sapmanın küçülmesidir.
screen3 <- screen
screen3$INCOME[is.na(screen3$INCOME)] <- mean(screen3$INCOME, na.rm= TRUE)
summary(screen3$INCOME)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.00 3.00 4.00 4.21 6.00 10.00
MODEL TABANLI YÖNTEMLER BEKLENTİ MAKSİMİZASYONU EM Algoritması
Em Algoristması ile kayıp değerleri tahmin edilir.
-Maksimizasyon (M) Adımı: Eksik veriler doldurulmuş gibi kabul edilir ve model parametreleri, maksimum olabilirlik yöntemi kullanılarak yeniden tahmin edilir. Böylelikle model veriye daha iyi uyum sağlar.
Bu adımlar paramtre tahminleri yakınsayana kadar (değişiklikler belirli bir tolerans değerinin altına düşünceye kadar) tekrarlanır.
Eksik Veri Seti Oluştur (mvdalap paketi ile)
dat <- introNAs(iris, percent= 25)
dat_EM <- imputeEM(dat[,-5])
dat_EM
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1 5.785179 3.033759 3.670654 1.17765175
## 2 4.900000 3.000000 1.400000 0.20000000
## 3 4.700000 3.200000 1.300000 0.10278297
## 4 4.600000 3.100000 1.500000 0.20000000
## 5 5.106256 3.600000 1.400000 0.20000000
## 6 5.400000 3.900000 1.700000 0.40000000
## 7 5.013440 3.400000 1.400000 0.30000000
## 8 5.000000 3.400000 1.500000 0.20000000
## 9 4.400000 2.900000 1.400000 0.20000000
## 10 4.900000 3.100000 1.500000 0.10000000
## 11 5.400000 3.543433 1.762948 0.20000000
## 12 4.800000 3.400000 1.253811 0.20000000
## 13 4.800000 3.000000 1.400000 0.22591747
## 14 4.300000 2.835424 1.100000 -0.03717115
## 15 5.800000 4.000000 1.200000 0.20000000
## 16 4.993202 3.269746 1.500000 0.40000000
## 17 5.400000 3.900000 1.300000 0.25437052
## 18 5.100000 3.500000 1.400000 0.30000000
## 19 5.385495 3.800000 1.700000 0.30000000
## 20 5.100000 3.365849 1.500000 0.29938745
## 21 5.400000 3.400000 1.865744 0.20000000
## 22 5.100000 3.116569 2.067390 0.40000000
## 23 4.600000 3.600000 0.852432 0.20000000
## 24 5.100000 3.300000 1.700000 0.50000000
## 25 4.800000 3.400000 1.900000 0.20000000
## 26 5.000000 3.293618 1.600000 0.20000000
## 27 5.000000 3.215460 1.600000 0.40000000
## 28 5.200000 3.500000 1.500000 0.30713449
## 29 5.200000 3.400000 1.400000 0.20000000
## 30 4.960821 3.287887 1.600000 0.27073689
## 31 4.800000 3.100000 1.600000 0.24182949
## 32 5.400000 3.400000 1.500000 0.40000000
## 33 5.200000 4.100000 1.500000 0.14680913
## 34 5.500000 4.200000 1.400000 0.24390055
## 35 4.754929 3.100000 1.500000 0.20000000
## 36 5.000000 3.405683 1.200000 0.17706642
## 37 5.500000 3.500000 1.300000 0.20000000
## 38 5.048963 3.600000 1.400000 0.10000000
## 39 4.400000 3.000000 1.240658 0.20000000
## 40 5.100000 3.400000 1.559777 0.20000000
## 41 5.000000 3.500000 1.300000 0.30000000
## 42 4.500000 2.848224 1.300000 0.30000000
## 43 4.826376 3.200000 1.481499 0.20000000
## 44 5.308265 3.500000 1.600000 0.60000000
## 45 5.100000 3.800000 1.900000 0.40000000
## 46 4.800000 3.000000 1.756115 0.30000000
## 47 5.100000 3.288081 1.694777 0.20000000
## 48 4.826376 3.200000 1.481499 0.20000000
## 49 5.205257 3.700000 1.500000 0.20000000
## 50 5.000000 3.300000 1.400000 0.20000000
## 51 7.000000 3.200000 4.700000 1.40000000
## 52 6.400000 3.200000 4.500000 1.50000000
## 53 6.900000 3.100000 4.900000 1.96117395
## 54 5.500000 2.300000 4.000000 1.30000000
## 55 6.500000 3.336384 4.600000 1.50000000
## 56 5.700000 2.800000 4.500000 1.30000000
## 57 6.300000 3.300000 4.700000 1.60000000
## 58 4.900000 2.400000 3.202820 1.00000000
## 59 5.977359 2.900000 4.600000 1.30000000
## 60 5.804909 2.700000 4.261365 1.40000000
## 61 5.000000 2.000000 3.500000 1.03752451
## 62 6.116859 3.000000 4.388633 1.50000000
## 63 6.000000 2.200000 4.000000 1.00000000
## 64 6.100000 2.900000 4.521588 1.54742188
## 65 5.600000 2.900000 3.600000 1.30000000
## 66 6.136870 3.100000 4.400000 1.40000000
## 67 5.600000 3.000000 4.500000 1.50000000
## 68 5.800000 2.700000 4.100000 1.00000000
## 69 6.200000 2.200000 4.500000 1.50000000
## 70 5.394935 2.500000 3.900000 1.10000000
## 71 5.900000 2.596924 4.857473 1.80000000
## 72 6.100000 2.800000 4.000000 1.46247847
## 73 6.300000 2.500000 4.900000 1.50000000
## 74 6.100000 2.800000 4.246887 1.20000000
## 75 6.400000 3.409640 4.300000 1.30000000
## 76 6.600000 3.535769 4.271312 1.40000000
## 77 6.074794 2.882528 4.800000 1.40000000
## 78 6.700000 3.280417 5.000000 1.83921770
## 79 6.000000 2.900000 4.500000 1.50000000
## 80 5.316914 2.600000 3.500000 1.00000000
## 81 5.500000 2.743705 3.800000 1.10000000
## 82 5.500000 2.400000 3.814753 1.00000000
## 83 5.800000 2.700000 3.900000 1.32275413
## 84 6.000000 2.700000 5.100000 1.60000000
## 85 5.400000 3.000000 2.955828 0.84769960
## 86 6.000000 3.400000 4.500000 1.36035913
## 87 6.700000 3.100000 4.700000 1.50000000
## 88 6.300000 2.300000 5.909772 2.10019675
## 89 5.932685 3.000000 4.100000 1.30000000
## 90 5.500000 2.500000 4.000000 1.30000000
## 91 5.647011 2.600000 4.400000 1.20000000
## 92 6.109707 3.000000 4.600000 1.40000000
## 93 5.800000 2.600000 4.000000 1.20000000
## 94 5.000000 2.300000 3.403509 1.00000000
## 95 5.600000 2.700000 4.200000 1.30000000
## 96 5.700000 3.000000 3.641530 1.20000000
## 97 5.700000 2.900000 4.200000 1.30000000
## 98 6.200000 3.139948 4.300000 1.48441640
## 99 5.100000 2.500000 3.178570 0.88303014
## 100 5.700000 2.800000 4.100000 1.30000000
## 101 7.300332 3.300000 6.000000 2.50000000
## 102 6.529505 2.960916 5.276789 1.90000000
## 103 7.100000 3.290411 5.900000 2.10000000
## 104 6.300000 2.900000 5.600000 1.80000000
## 105 6.815404 3.000000 5.800000 2.13560102
## 106 7.600000 3.000000 6.600000 2.10000000
## 107 4.900000 2.500000 3.856631 1.70000000
## 108 6.981696 2.900000 6.300000 2.34886438
## 109 6.700000 2.500000 6.381121 2.34125365
## 110 7.460167 3.600000 6.100000 2.34975207
## 111 6.500000 3.200000 5.100000 2.00000000
## 112 6.400000 2.856998 5.300000 1.90000000
## 113 6.774715 3.000000 5.702185 2.10000000
## 114 5.700000 2.500000 5.000000 1.56230068
## 115 5.800000 2.800000 5.100000 2.40000000
## 116 6.400000 3.200000 5.340570 2.30000000
## 117 6.554390 3.000000 5.500000 1.80000000
## 118 6.137595 3.800000 3.108020 1.02280973
## 119 7.700000 2.600000 6.900000 2.90811760
## 120 6.000000 2.667703 5.000000 1.65708061
## 121 7.038855 3.200000 5.700000 2.30000000
## 122 5.600000 2.800000 4.900000 2.00000000
## 123 7.700000 2.800000 7.888783 3.06739488
## 124 6.300000 2.700000 5.251195 1.85319880
## 125 6.700000 3.300000 5.700000 1.98151130
## 126 7.200000 3.200000 5.618972 1.80000000
## 127 6.200000 2.854455 4.800000 1.80000000
## 128 6.410715 3.000000 4.900000 1.80000000
## 129 6.550710 2.800000 5.600000 2.01895275
## 130 6.815404 3.000000 5.800000 2.13560102
## 131 7.400000 2.800000 6.100000 1.90000000
## 132 6.681540 2.719429 6.400000 2.00000000
## 133 6.400000 2.800000 5.600000 1.94867054
## 134 6.300000 2.800000 5.100000 1.79371200
## 135 6.048946 2.600000 5.600000 1.40000000
## 136 6.964723 3.000000 6.100000 2.27139477
## 137 6.300000 2.465799 5.600000 2.40000000
## 138 6.400000 2.805551 5.500000 1.92166136
## 139 6.000000 3.000000 4.592507 1.80000000
## 140 6.842150 3.100000 5.671633 2.10000000
## 141 6.700000 3.100000 5.600000 2.40000000
## 142 6.820126 3.100000 5.100000 2.30000000
## 143 5.800000 2.700000 4.250398 1.39750395
## 144 6.800000 2.911193 5.900000 2.30000000
## 145 6.700000 3.300000 5.700000 2.50000000
## 146 6.769017 3.000000 5.200000 2.30000000
## 147 6.300000 2.500000 5.499479 1.90000000
## 148 6.500000 2.950088 5.200000 2.00000000
## 149 6.200000 3.400000 4.939191 2.30000000
## 150 6.458607 3.000000 5.100000 1.80000000
EM Algoritması Sonuçlar
Expectation Maximization Grafiği Principal Component Analysis sonrasında Predicted Residual Error Sum of Squares değerlerini gösterir.
PRESS değeri, modelin tahmin hatasını ölçer. Daha düşük PRESS değeri, daha iyi bir model anlamına gelir.
Hem Ncomp Imputation =1 hem de Ncomp Imputation = 2 için bileşen sayısı artttıkça PRESS değeri düşer. Bu, eksik verileri tahmin etmek için iki bileşenli modelin tek bileşenli modele kıyasla daha iyi performans gösterdiğini gösterir.
Bu fonksiyon PCA tabanlı bir yaklaşım kullanır.
PCA tabanlı imputasyon işlemi sırasında kaç ana bileşenin kullanılacağı belirlenir. Daha fazla bileşen kullanmak, modelin daha karmaşık olmasına sebebiyet verebilirken daha fazla varyansı açıklayacaktır.
Çok fazla bileşen kullanmak aşırı öğrenmeye (overfitting) neden olabilir.
Fonksiyonun Kullanımı
impute.ncomps: Test edilecek minumum bileşen sayısını belirler.
pca.ncomps: Eksik veri tamamlama işlemi için kullanılacak minumum bileşen sayısını belirler. PCA tabanlı tamamlama işlemi yapılıyorsa kaç bileşenin kullanılacağını belirler.
CV: Eğer TRUE ise, çapraz doğrulama (cross- validation) kullanılarak optimal bileşen sayısı belirlenir.
Init: Sürekli değişkenler için başlangıç değerinin mean (ortalama) veya median (medyan) olarak belirlenmesini sağlar.
scale: TRUE ise değişkenler birim varyansa (standart sapma = 1) ölçeklendirilir.
iters: EM algoritmasının kaç iterasyon süreceğini belirler.
tol: İterasyonların yakınsama (convergence) eşiğini belirler. Yani, ardışık iterasyonlardaki değişim bu eşiğin altına düşerse algoritma durur.
#imputeEM(data, impute.ncomps = 2, CV = TRUE, Init = "mean",
#scale = TRUE, iters =25, tol = .Machine$double.eps^0.25)
Kullanılan bileşen sayısı
dat_EM$pca.ncomps
## [1] 2
Çapraz Doğrulama Sonuçları (Optimal bileşen sayısnın belirlenmesi için kullanılan bilgiler içerir)
dat_EM$CV.Results
## X1 X2
## 2 208.2550 227.0288
## 3 229.4207 208.2877
EM iterasyonları boyunca sürekli değişkenler için üretilen tahmini değerlerin listesi
dat_EM$Imputed.DataFrames
## [[1]]
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1 5.762103 3.044005 3.7370949 1.18139225
## 2 4.900000 3.000000 1.4000000 0.20000000
## 3 4.700000 3.200000 1.3000000 0.19654514
## 4 4.600000 3.100000 1.5000000 0.20000000
## 5 4.780759 3.600000 1.4000000 0.20000000
## 6 5.400000 3.900000 1.7000000 0.40000000
## 7 4.912707 3.400000 1.4000000 0.30000000
## 8 5.000000 3.400000 1.5000000 0.20000000
## 9 4.400000 2.900000 1.4000000 0.20000000
## 10 4.900000 3.100000 1.5000000 0.10000000
## 11 5.400000 3.300040 2.1012976 0.20000000
## 12 4.800000 3.400000 1.3968828 0.20000000
## 13 4.800000 3.000000 1.4000000 0.37201565
## 14 4.300000 3.538565 1.1000000 -0.20107716
## 15 5.800000 4.000000 1.2000000 0.20000000
## 16 4.982724 3.359604 1.5000000 0.40000000
## 17 5.400000 3.900000 1.3000000 0.07917032
## 18 5.100000 3.500000 1.4000000 0.30000000
## 19 4.766003 3.800000 1.7000000 0.30000000
## 20 5.100000 3.356570 1.5000000 0.30766170
## 21 5.400000 3.400000 1.9680918 0.20000000
## 22 5.100000 3.318372 1.9841751 0.40000000
## 23 4.600000 3.600000 0.9382892 0.20000000
## 24 5.100000 3.300000 1.7000000 0.50000000
## 25 4.800000 3.400000 1.9000000 0.20000000
## 26 5.000000 3.376508 1.6000000 0.20000000
## 27 5.000000 3.351894 1.6000000 0.40000000
## 28 5.200000 3.500000 1.5000000 0.26596543
## 29 5.200000 3.400000 1.4000000 0.20000000
## 30 4.946620 3.374224 1.6000000 0.25831403
## 31 4.800000 3.100000 1.6000000 0.35186218
## 32 5.400000 3.400000 1.5000000 0.40000000
## 33 5.200000 4.100000 1.5000000 -0.08086042
## 34 5.500000 4.200000 1.4000000 -0.03438071
## 35 5.039190 3.100000 1.5000000 0.20000000
## 36 5.000000 3.400549 1.2000000 0.18472481
## 37 5.500000 3.500000 1.3000000 0.20000000
## 38 4.745864 3.600000 1.4000000 0.10000000
## 39 4.400000 3.000000 1.5524578 0.20000000
## 40 5.100000 3.400000 1.6824873 0.20000000
## 41 5.000000 3.500000 1.3000000 0.30000000
## 42 4.500000 3.441673 1.3000000 0.30000000
## 43 5.054998 3.200000 1.9077306 0.20000000
## 44 5.000467 3.500000 1.6000000 0.60000000
## 45 5.100000 3.800000 1.9000000 0.40000000
## 46 4.800000 3.000000 2.0297242 0.30000000
## 47 5.100000 3.356611 1.7398702 0.20000000
## 48 5.054998 3.200000 1.9077306 0.20000000
## 49 4.748034 3.700000 1.5000000 0.20000000
## 50 5.000000 3.300000 1.4000000 0.20000000
## 51 7.000000 3.200000 4.7000000 1.40000000
## 52 6.400000 3.200000 4.5000000 1.50000000
## 53 6.900000 3.100000 4.9000000 1.83486693
## 54 5.500000 2.300000 4.0000000 1.30000000
## 55 6.500000 2.867072 4.6000000 1.50000000
## 56 5.700000 2.800000 4.5000000 1.30000000
## 57 6.300000 3.300000 4.7000000 1.60000000
## 58 4.900000 2.400000 3.6047195 1.00000000
## 59 6.009898 2.900000 4.6000000 1.30000000
## 60 6.173010 2.700000 4.8001604 1.40000000
## 61 5.000000 2.000000 3.5000000 1.42746544
## 62 5.986737 3.000000 4.3182485 1.50000000
## 63 6.000000 2.200000 4.0000000 1.00000000
## 64 6.100000 2.900000 4.6221644 1.56863608
## 65 5.600000 2.900000 3.6000000 1.30000000
## 66 5.916141 3.100000 4.4000000 1.40000000
## 67 5.600000 3.000000 4.5000000 1.50000000
## 68 5.800000 2.700000 4.1000000 1.00000000
## 69 6.200000 2.200000 4.5000000 1.50000000
## 70 6.023610 2.500000 3.9000000 1.10000000
## 71 5.900000 2.899846 4.6581161 1.80000000
## 72 6.100000 2.800000 4.0000000 1.51055929
## 73 6.300000 2.500000 4.9000000 1.50000000
## 74 6.100000 2.800000 4.4036771 1.20000000
## 75 6.400000 2.920555 4.3000000 1.30000000
## 76 6.600000 2.844325 5.0128370 1.40000000
## 77 6.066376 2.920793 4.8000000 1.40000000
## 78 6.700000 2.763300 5.0000000 1.96606037
## 79 6.000000 2.900000 4.5000000 1.50000000
## 80 5.876988 2.600000 3.5000000 1.00000000
## 81 5.500000 3.082389 3.8000000 1.10000000
## 82 5.500000 2.400000 4.1759285 1.00000000
## 83 5.800000 2.700000 3.9000000 1.42642876
## 84 6.000000 2.700000 5.1000000 1.60000000
## 85 5.400000 3.000000 3.2421567 0.96484228
## 86 6.000000 3.400000 4.5000000 1.21682405
## 87 6.700000 3.100000 4.7000000 1.50000000
## 88 6.300000 2.300000 6.3337610 2.31750976
## 89 5.882371 3.000000 4.1000000 1.30000000
## 90 5.500000 2.500000 4.0000000 1.30000000
## 91 6.088981 2.600000 4.4000000 1.20000000
## 92 5.996267 3.000000 4.6000000 1.40000000
## 93 5.800000 2.600000 4.0000000 1.20000000
## 94 5.000000 2.300000 3.8340163 1.00000000
## 95 5.600000 2.700000 4.2000000 1.30000000
## 96 5.700000 3.000000 3.7546805 1.20000000
## 97 5.700000 2.900000 4.2000000 1.30000000
## 98 6.200000 2.915260 4.3000000 1.54127843
## 99 5.100000 2.500000 3.9021681 1.25361662
## 100 5.700000 2.800000 4.1000000 1.30000000
## 101 6.455741 3.300000 6.0000000 2.50000000
## 102 6.391447 2.789160 5.3652812 1.90000000
## 103 7.100000 2.647879 5.9000000 2.10000000
## 104 6.300000 2.900000 5.6000000 1.80000000
## 105 6.336174 3.000000 5.8000000 1.83120614
## 106 7.600000 3.000000 6.6000000 2.10000000
## 107 4.900000 2.500000 4.1458464 1.70000000
## 108 6.546587 2.900000 6.3000000 2.06938123
## 109 6.700000 2.500000 6.5295479 2.40317227
## 110 5.935172 3.600000 6.1000000 1.37729577
## 111 6.500000 3.200000 5.1000000 2.00000000
## 112 6.400000 2.790985 5.3000000 1.90000000
## 113 6.341274 3.000000 5.2354773 2.10000000
## 114 5.700000 2.500000 5.0000000 1.70808048
## 115 5.800000 2.800000 5.1000000 2.40000000
## 116 6.400000 3.200000 5.2139640 2.30000000
## 117 6.278051 3.000000 5.5000000 1.80000000
## 118 4.203305 3.800000 -0.2956995 -0.58307346
## 119 7.700000 2.600000 6.9000000 2.82868861
## 120 6.000000 2.892824 5.0000000 1.60399622
## 121 6.387075 3.200000 5.7000000 2.30000000
## 122 5.600000 2.800000 4.9000000 2.00000000
## 123 7.700000 2.800000 7.4800732 2.81905494
## 124 6.300000 2.700000 5.4116449 1.91405695
## 125 6.700000 3.300000 5.7000000 1.78778869
## 126 7.200000 3.200000 5.4932744 1.80000000
## 127 6.200000 2.855457 4.8000000 1.80000000
## 128 6.183249 3.000000 4.9000000 1.80000000
## 129 6.443736 2.800000 5.6000000 1.95295989
## 130 6.336174 3.000000 5.8000000 1.83120614
## 131 7.400000 2.800000 6.1000000 1.90000000
## 132 6.641818 2.687776 6.4000000 2.00000000
## 133 6.400000 2.800000 5.6000000 1.93487539
## 134 6.300000 2.800000 5.1000000 1.79971183
## 135 6.348374 2.600000 5.6000000 1.40000000
## 136 6.414490 3.000000 6.1000000 1.91985524
## 137 6.300000 2.724882 5.6000000 2.40000000
## 138 6.400000 2.776351 5.5000000 1.92957909
## 139 6.000000 3.000000 4.6190469 1.80000000
## 140 6.259486 3.100000 5.0238829 2.10000000
## 141 6.700000 3.100000 5.6000000 2.40000000
## 142 6.340800 3.100000 5.1000000 2.30000000
## 143 5.800000 2.700000 4.5905887 1.55482081
## 144 6.800000 2.659717 5.9000000 2.30000000
## 145 6.700000 3.300000 5.7000000 2.50000000
## 146 6.405126 3.000000 5.2000000 2.30000000
## 147 6.300000 2.500000 5.6715881 1.90000000
## 148 6.500000 2.772100 5.2000000 2.00000000
## 149 6.200000 3.400000 4.7553704 2.30000000
## 150 6.214850 3.000000 5.1000000 1.80000000
##
## [[2]]
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1 5.785179 3.033759 3.670654 1.17765175
## 2 4.900000 3.000000 1.400000 0.20000000
## 3 4.700000 3.200000 1.300000 0.10278297
## 4 4.600000 3.100000 1.500000 0.20000000
## 5 5.106256 3.600000 1.400000 0.20000000
## 6 5.400000 3.900000 1.700000 0.40000000
## 7 5.013440 3.400000 1.400000 0.30000000
## 8 5.000000 3.400000 1.500000 0.20000000
## 9 4.400000 2.900000 1.400000 0.20000000
## 10 4.900000 3.100000 1.500000 0.10000000
## 11 5.400000 3.543433 1.762948 0.20000000
## 12 4.800000 3.400000 1.253811 0.20000000
## 13 4.800000 3.000000 1.400000 0.22591747
## 14 4.300000 2.835424 1.100000 -0.03717115
## 15 5.800000 4.000000 1.200000 0.20000000
## 16 4.993202 3.269746 1.500000 0.40000000
## 17 5.400000 3.900000 1.300000 0.25437052
## 18 5.100000 3.500000 1.400000 0.30000000
## 19 5.385495 3.800000 1.700000 0.30000000
## 20 5.100000 3.365849 1.500000 0.29938745
## 21 5.400000 3.400000 1.865744 0.20000000
## 22 5.100000 3.116569 2.067390 0.40000000
## 23 4.600000 3.600000 0.852432 0.20000000
## 24 5.100000 3.300000 1.700000 0.50000000
## 25 4.800000 3.400000 1.900000 0.20000000
## 26 5.000000 3.293618 1.600000 0.20000000
## 27 5.000000 3.215460 1.600000 0.40000000
## 28 5.200000 3.500000 1.500000 0.30713449
## 29 5.200000 3.400000 1.400000 0.20000000
## 30 4.960821 3.287887 1.600000 0.27073689
## 31 4.800000 3.100000 1.600000 0.24182949
## 32 5.400000 3.400000 1.500000 0.40000000
## 33 5.200000 4.100000 1.500000 0.14680913
## 34 5.500000 4.200000 1.400000 0.24390055
## 35 4.754929 3.100000 1.500000 0.20000000
## 36 5.000000 3.405683 1.200000 0.17706642
## 37 5.500000 3.500000 1.300000 0.20000000
## 38 5.048963 3.600000 1.400000 0.10000000
## 39 4.400000 3.000000 1.240658 0.20000000
## 40 5.100000 3.400000 1.559777 0.20000000
## 41 5.000000 3.500000 1.300000 0.30000000
## 42 4.500000 2.848224 1.300000 0.30000000
## 43 4.826376 3.200000 1.481499 0.20000000
## 44 5.308265 3.500000 1.600000 0.60000000
## 45 5.100000 3.800000 1.900000 0.40000000
## 46 4.800000 3.000000 1.756115 0.30000000
## 47 5.100000 3.288081 1.694777 0.20000000
## 48 4.826376 3.200000 1.481499 0.20000000
## 49 5.205257 3.700000 1.500000 0.20000000
## 50 5.000000 3.300000 1.400000 0.20000000
## 51 7.000000 3.200000 4.700000 1.40000000
## 52 6.400000 3.200000 4.500000 1.50000000
## 53 6.900000 3.100000 4.900000 1.96117395
## 54 5.500000 2.300000 4.000000 1.30000000
## 55 6.500000 3.336384 4.600000 1.50000000
## 56 5.700000 2.800000 4.500000 1.30000000
## 57 6.300000 3.300000 4.700000 1.60000000
## 58 4.900000 2.400000 3.202820 1.00000000
## 59 5.977359 2.900000 4.600000 1.30000000
## 60 5.804909 2.700000 4.261365 1.40000000
## 61 5.000000 2.000000 3.500000 1.03752451
## 62 6.116859 3.000000 4.388633 1.50000000
## 63 6.000000 2.200000 4.000000 1.00000000
## 64 6.100000 2.900000 4.521588 1.54742188
## 65 5.600000 2.900000 3.600000 1.30000000
## 66 6.136870 3.100000 4.400000 1.40000000
## 67 5.600000 3.000000 4.500000 1.50000000
## 68 5.800000 2.700000 4.100000 1.00000000
## 69 6.200000 2.200000 4.500000 1.50000000
## 70 5.394935 2.500000 3.900000 1.10000000
## 71 5.900000 2.596924 4.857473 1.80000000
## 72 6.100000 2.800000 4.000000 1.46247847
## 73 6.300000 2.500000 4.900000 1.50000000
## 74 6.100000 2.800000 4.246887 1.20000000
## 75 6.400000 3.409640 4.300000 1.30000000
## 76 6.600000 3.535769 4.271312 1.40000000
## 77 6.074794 2.882528 4.800000 1.40000000
## 78 6.700000 3.280417 5.000000 1.83921770
## 79 6.000000 2.900000 4.500000 1.50000000
## 80 5.316914 2.600000 3.500000 1.00000000
## 81 5.500000 2.743705 3.800000 1.10000000
## 82 5.500000 2.400000 3.814753 1.00000000
## 83 5.800000 2.700000 3.900000 1.32275413
## 84 6.000000 2.700000 5.100000 1.60000000
## 85 5.400000 3.000000 2.955828 0.84769960
## 86 6.000000 3.400000 4.500000 1.36035913
## 87 6.700000 3.100000 4.700000 1.50000000
## 88 6.300000 2.300000 5.909772 2.10019675
## 89 5.932685 3.000000 4.100000 1.30000000
## 90 5.500000 2.500000 4.000000 1.30000000
## 91 5.647011 2.600000 4.400000 1.20000000
## 92 6.109707 3.000000 4.600000 1.40000000
## 93 5.800000 2.600000 4.000000 1.20000000
## 94 5.000000 2.300000 3.403509 1.00000000
## 95 5.600000 2.700000 4.200000 1.30000000
## 96 5.700000 3.000000 3.641530 1.20000000
## 97 5.700000 2.900000 4.200000 1.30000000
## 98 6.200000 3.139948 4.300000 1.48441640
## 99 5.100000 2.500000 3.178570 0.88303014
## 100 5.700000 2.800000 4.100000 1.30000000
## 101 7.300332 3.300000 6.000000 2.50000000
## 102 6.529505 2.960916 5.276789 1.90000000
## 103 7.100000 3.290411 5.900000 2.10000000
## 104 6.300000 2.900000 5.600000 1.80000000
## 105 6.815404 3.000000 5.800000 2.13560102
## 106 7.600000 3.000000 6.600000 2.10000000
## 107 4.900000 2.500000 3.856631 1.70000000
## 108 6.981696 2.900000 6.300000 2.34886438
## 109 6.700000 2.500000 6.381121 2.34125365
## 110 7.460167 3.600000 6.100000 2.34975207
## 111 6.500000 3.200000 5.100000 2.00000000
## 112 6.400000 2.856998 5.300000 1.90000000
## 113 6.774715 3.000000 5.702185 2.10000000
## 114 5.700000 2.500000 5.000000 1.56230068
## 115 5.800000 2.800000 5.100000 2.40000000
## 116 6.400000 3.200000 5.340570 2.30000000
## 117 6.554390 3.000000 5.500000 1.80000000
## 118 6.137595 3.800000 3.108020 1.02280973
## 119 7.700000 2.600000 6.900000 2.90811760
## 120 6.000000 2.667703 5.000000 1.65708061
## 121 7.038855 3.200000 5.700000 2.30000000
## 122 5.600000 2.800000 4.900000 2.00000000
## 123 7.700000 2.800000 7.888783 3.06739488
## 124 6.300000 2.700000 5.251195 1.85319880
## 125 6.700000 3.300000 5.700000 1.98151130
## 126 7.200000 3.200000 5.618972 1.80000000
## 127 6.200000 2.854455 4.800000 1.80000000
## 128 6.410715 3.000000 4.900000 1.80000000
## 129 6.550710 2.800000 5.600000 2.01895275
## 130 6.815404 3.000000 5.800000 2.13560102
## 131 7.400000 2.800000 6.100000 1.90000000
## 132 6.681540 2.719429 6.400000 2.00000000
## 133 6.400000 2.800000 5.600000 1.94867054
## 134 6.300000 2.800000 5.100000 1.79371200
## 135 6.048946 2.600000 5.600000 1.40000000
## 136 6.964723 3.000000 6.100000 2.27139477
## 137 6.300000 2.465799 5.600000 2.40000000
## 138 6.400000 2.805551 5.500000 1.92166136
## 139 6.000000 3.000000 4.592507 1.80000000
## 140 6.842150 3.100000 5.671633 2.10000000
## 141 6.700000 3.100000 5.600000 2.40000000
## 142 6.820126 3.100000 5.100000 2.30000000
## 143 5.800000 2.700000 4.250398 1.39750395
## 144 6.800000 2.911193 5.900000 2.30000000
## 145 6.700000 3.300000 5.700000 2.50000000
## 146 6.769017 3.000000 5.200000 2.30000000
## 147 6.300000 2.500000 5.499479 1.90000000
## 148 6.500000 2.950088 5.200000 2.00000000
## 149 6.200000 3.400000 4.939191 2.30000000
## 150 6.458607 3.000000 5.100000 1.80000000
missMethods Paketi ile EM Algoritması
missMEthods paketindeki impute_EM fonksiyonu, eksik verileri doldurmak için Expectation- Maximization (EM) algoritmasını kullanır. Bu fonksiyon, özellikle çok değişkenli normal dağılıma sahip veri setlerinde eksik değerleri tahmin etmek için tasarlanmıştır. Fonksiyon, norm paketindeki em.norm() fonksiyonunu kullanarak parametreleri tahmin eder ve bu parametreleri kullanarak eksik değerleri doldurur.
EM algoritması, eksik verilerin beklenen değerlerini (E- Step) ve bu değerler kullanılarak parametreleri günceller (M- Step). Bu işlem, parametreler yakınsayana kadar tekrarlanır.
Eğer stochastic = TRUE ise, bu beklenen değerlere çok değişkenli normal dağılımdan rastgele hatalar (residuals) eklenir. Bu, doldurulan değerlerin daha gerçekçi olmasını sağlar.
Eğer stochastic = FALSE ise, sadece beklenen değerler kullanılır ve rastgele hatalar eklenmez. Bu, deterministik bir yaklaşımdır. Bu seçenek, doldurulan değerler,n daha sabit ve tahmin edilebilir olmasına yardımcı olur.
#Örnek veri seti oluşturma
ds_orig <- mvtnorm::rmvnorm(100, rep(0,7)) # 7 değişkenli normal dağılım
ds_mis <- delete_MCAR(ds_orig, p= 0.2) # %20 eksik veri (MCAR)
#EM ile eksik verileri doldurma (stokastik olmadan)
ds_imp <- impute_EM(ds_mis, stochastic = FALSE)
#EM ile eksik verileri doldurma (stokastik olarak)
ds_imp_stochastic <- impute_EM(ds_mis, stochastic = TRUE)
Impute_EM fonksiyonu, eksik verileri doldurmak için EM algoritmasını kullanır ve stochastic argümanı ile doldurulan değerlerin deterministik mi yoksa stokastik mi olacağını kontrol eder. Bu yöntem, özellikle çok değişkenli normal dağılıma sahip veri setlerinde etkilidir.
Multiple Imputation ( Çoklu Atama) Kayıp değerler rastgele tahminle doldurulmaz, birden fazla değer üretilir ve bu değerler üzerinden analiz yapılır. Daha sonra bu analiz sonuçları birleştirilerek tek bir sonuç elde edilir.
Gerçekçi tahminler: Kayıp verinin belirsizliğini dikkate alır.
İstatistiksel Güvenirlik: Tek bir tahmin yerine birden fazla tahmin üzerinden analiz yapıldığı için daha güvenilir sonuçlar verir.
Esneklik: Farklı veri türleri ve modellere uyumludur.
Multiple Imputation Adımları
Atama (Imputation): Kayıp değerler, istatistiksel modeller kullanılarak birden fazla kez doldurulur. Genellikle 5-10 arasında tamamlanmış veri seti oluşturulur.
Analiz: HEr tamamlanmış veri sti üzerinde ayrı ayrı analizler yapılır.
Birleştirme (Pooling): Analiz sonuçları, belirli kurallar çerçevesinde birleştirilir ve nihai sonuçlar elde edilir.
R’ da mice (Multivariate Imputation by Chained Equations) paketi, Multiple Imputation yöntemini uygulamak için yaygın olarak kullanılır.
Kayıp veriyi görselleştirmek için mice paketinin md.pattern() fonksiyonu kullanılabilir.
md.pattern(screen)
## SUBNO TIMEDRS ATTDRUG EMPLMNT MSTATUS RACE ATTHOUSE INCOME
## 438 1 1 1 1 1 1 1 1 0
## 26 1 1 1 1 1 1 1 0 1
## 1 1 1 1 1 1 1 0 1 1
## 0 0 0 0 0 0 1 26 27
Hangi değişkenlerde ne kadar kayıp veri var görselde incelenebilir.
imputed_data <- mice(screen, m= 5, maxxit =50, method = 'pmm', seed =500)
##
## iter imp variable
## 1 1 ATTHOUSE INCOME
## 1 2 ATTHOUSE INCOME
## 1 3 ATTHOUSE INCOME
## 1 4 ATTHOUSE INCOME
## 1 5 ATTHOUSE INCOME
## 2 1 ATTHOUSE INCOME
## 2 2 ATTHOUSE INCOME
## 2 3 ATTHOUSE INCOME
## 2 4 ATTHOUSE INCOME
## 2 5 ATTHOUSE INCOME
## 3 1 ATTHOUSE INCOME
## 3 2 ATTHOUSE INCOME
## 3 3 ATTHOUSE INCOME
## 3 4 ATTHOUSE INCOME
## 3 5 ATTHOUSE INCOME
## 4 1 ATTHOUSE INCOME
## 4 2 ATTHOUSE INCOME
## 4 3 ATTHOUSE INCOME
## 4 4 ATTHOUSE INCOME
## 4 5 ATTHOUSE INCOME
## 5 1 ATTHOUSE INCOME
## 5 2 ATTHOUSE INCOME
## 5 3 ATTHOUSE INCOME
## 5 4 ATTHOUSE INCOME
## 5 5 ATTHOUSE INCOME
# m=5: 5 tamamlanmış veri seti oluşturur.
# maxit = 50: Maksimum 50 iterasyon yapar.
# method = 'pmm': Predictive Mean Matching yöntemi sürekli değişkenler için uygundur.
imputed_data$imp #daha sonra düzenlenecek
## $SUBNO
## [1] 1 2 3 4 5
## <0 rows> (or 0-length row.names)
##
## $TIMEDRS
## [1] 1 2 3 4 5
## <0 rows> (or 0-length row.names)
##
## $ATTDRUG
## [1] 1 2 3 4 5
## <0 rows> (or 0-length row.names)
##
## $ATTHOUSE
## 1 2 3 4 5
## 253 19 11 28 24 23
##
## $INCOME
## 1 2 3 4 5
## 52 5 1 1 1 4
## 64 1 1 1 4 3
## 69 1 5 3 4 3
## 77 1 1 5 7 2
## 118 9 1 2 10 9
## 135 10 8 5 9 7
## 161 4 2 4 1 7
## 172 7 1 1 3 1
## 173 5 1 4 1 5
## 174 7 5 3 3 3
## 181 4 4 2 1 1
## 196 5 1 7 9 5
## 203 8 1 3 5 6
## 236 4 5 1 5 3
## 240 3 1 4 4 1
## 258 8 1 7 6 7
## 304 5 4 3 4 6
## 321 1 1 6 5 5
## 325 6 2 6 3 1
## 352 1 7 3 2 4
## 378 6 4 2 6 6
## 379 6 3 6 1 8
## 409 4 7 4 3 3
## 419 1 4 1 1 4
## 421 4 7 10 10 6
## 435 5 8 4 8 4
##
## $EMPLMNT
## [1] 1 2 3 4 5
## <0 rows> (or 0-length row.names)
##
## $MSTATUS
## [1] 1 2 3 4 5
## <0 rows> (or 0-length row.names)
##
## $RACE
## [1] 1 2 3 4 5
## <0 rows> (or 0-length row.names)
Tamamlanmış veri setleri üzerinde analiz yapılabilir ve sonuçlar birleştirilebilir.
Örnek: Lineer Regresyon Analizi
fit <- with(imputed_data, lm(TIMEDRS ~ ATTHOUSE +INCOME))
pooled_results <- pool(fit)
summary(pooled_results)
## term estimate std.error statistic df p.value
## 1 (Intercept) -0.4035120 2.8394989 -0.1421068 458.9703 0.887058034
## 2 ATTHOUSE 0.3149537 0.1125188 2.7991196 459.2217 0.005340001
## 3 INCOME 0.2121358 0.2084289 1.0177851 457.9195 0.309317543
#with(): Tamamlanmış her bir veri seti üzerinde analiz yapar.
# pool(): Analiz sonuçlarını birleştirir.
mice paketinde farklı değişkenler içiin farklı imputation yöntemleri sunar.
pmm: Sürekli değişkenler için Predictive Mean Matching
logreg: İkili (binary) değişkenler için Lojistik Regresyon.
polyreg: Kategorik değişkenler için Polytomous Regresyon.
Veri Setinde Yapılanlar
atthouse değişkeninde bir kayıp değer bulunmaktadır ve liste bazında silme yöntemi ile veri setinden çıkarılmıştır.
Veri setinde income değişkeni 26 kayıp değere sahiptir ve bu sayı örneklemin %5’inden fazladır. Eğer bu değişken araşatırma açısından öneme sahip değilse veri setinden çıkarılmasında bir sakınca yoktur. Aksi takdirde kayıp verinin tahmin edilmesi yöntemlerinden biri kullanılır.
Income değişkeninde bulunan kayıp değerler için kayıp verinin tahmin edilmesi yöntemlerinden ortalamanın yerleştirilmesi kullanılaarak kayıp değer yerine değişkenin ortalmam değeri (4.21 değeri) yerleştirilmiştir.
screen <- screen %>%
mutate( INCOME = ifelse(is.na(INCOME), mean(INCOME, na.rm = TRUE),
INCOME)) %>% na.omit()
summary(screen)
## SUBNO TIMEDRS ATTDRUG ATTHOUSE
## Min. : 1.0 Min. : 0.000 Min. : 5.00 Min. : 2.00
## 1st Qu.:136.8 1st Qu.: 2.000 1st Qu.: 7.00 1st Qu.:21.00
## Median :313.5 Median : 4.000 Median : 8.00 Median :24.00
## Mean :317.3 Mean : 7.914 Mean : 7.69 Mean :23.54
## 3rd Qu.:483.2 3rd Qu.:10.000 3rd Qu.: 9.00 3rd Qu.:27.00
## Max. :758.0 Max. :81.000 Max. :10.00 Max. :35.00
## INCOME EMPLMNT MSTATUS RACE
## Min. : 1.000 Min. :0.000 Min. :1.00 Min. :1.000
## 1st Qu.: 3.000 1st Qu.:0.000 1st Qu.:2.00 1st Qu.:1.000
## Median : 4.000 Median :0.000 Median :2.00 Median :1.000
## Mean : 4.208 Mean :0.472 Mean :1.78 Mean :1.086
## 3rd Qu.: 6.000 3rd Qu.:1.000 3rd Qu.:2.00 3rd Qu.:1.000
## Max. :10.000 Max. :1.000 Max. :2.00 Max. :2.000
VERİ TEMİZLİK SÜRECİ
1. Veri dosyasının doğruluğu incelenmelidir (Değişkenlerimiz olması gereken aralıkta mı?).
2. Kayıp veriler incelenmelidir. Kayıp veri sayısı az ise bu veriler silinebilir. Kayıp veri %5’ten fazla ise silinmemelidir. Rastlantısal kayıp veri %5’ten fazla olsa dahi silinebilir. Bu durum MCAR testi ile kontrol edilir.
Kayıp Veri Desenleri
MCAR -> Tamamen rastgele eksik
MAR -> Diğer değişkenlere bağlı eksik
MNAR -> Değişkenin kendisine bağlı eksik
Verileri silmek yerine medyan atamakta bir tercihtir ancak varyası azaltacaktır. Regresyon ile tahmin yine varyansı azaltacaktır. Eksik veriler bir değişkende toplanmış ise o değişken silinebilir.
Beklenti Maksimizasyonu (EM) - Dağılım varsayımları ile eksik olan veriye değer tahmini yapılır.
Çoklu Atama (Multiple Imputation) - Arka planda birden fazla tam veri seti oluşturup bunları analiz eder ve ortak bir sonuç bulgular.