class: center, middle, inverse, title-slide .title[ # Metody przetwarzania
i analizy danych ] .subtitle[ ## Badania eksploracyjne ] .author[ ### © Łukasz Wawrowski ] --- # Zbiór danych - [pracownicy](http://www.wawrowski.edu.pl/data/pracownicy.xlsx) - id - kod pracownika - plec - płeć pracownika (0 - mężczyzna, 1 - kobieta) - data_urodz - data urodzenia - edukacja - wykształcenie (w latach nauki) - kat_pracownika - grupa pracownicza (1 - specjalista, 2 - menedżer, 3 - konsultant) - bwynagrodzenie - bieżące wynagrodzenie - pwynagrodzenie - początkowe wynagrodzenie - staz - staż pracy (w miesiącach) - doswiadczenie - poprzednie zatrudnienie (w miesiącach) - zwiazki - przynależność do związków zawodowych (0 - nie, 1 - tak) - wiek - wiek (w latach) --- # Eksploracyjna analiza danych Explanatory Data Analysis (EDA): - opis - wizualizacja - badanie bez zakładania hipotez badawczych - identyfikacja wartości nietypowych - kluczowy krok przed modelowaniem --- # Narzędzia [autoEDA-resources](https://github.com/mstaniak/autoEDA-resources) [The Landscape of R Packages for Automated Exploratory Data Analysis](https://journal.r-project.org/archive/2019/RJ-2019-033/index.html) --- # dataMaid [dataMaid](https://github.com/ekstroem/dataMaid) - `makeDataReport(iris, output = "html", replace = T)` - raport dla całego zbioru w html - `check(iris)`, `check(iris$Species)` - sprawdzenie zbioru/kolumny w sposób tekstowy - `visualize(iris)`, `visualize(iris$Species)` - wizualizacja zmiennej/zmiennych ze zbioru --- # Braki danych Możliwe rozwiązania - usunięcie obserwacji z brakami danych - imputacja statystyczna: - metody deterministyczne - zawsze te same wartości imputacyjne: - zastępowanie wartością przeciętną, imputacja regresyjna, - nie wprowadzają dodatkowego źródła błędu losowego, - zniekształcają rozkłady zmiennych - metody stochastyczne - można uzyskać różne wartości imputacyjne: - metoda hot-deck, stochastyczna imputacja regresyjna, - generują dodatkowy błąd, - lepiej zachowują rozkłady zmiennych [Tomasz Piasecki - Imputacja dochodów w badaniach statystyki publicznej dotyczących gospodarstw domowych](https://stat.gov.pl/cps/rde/xbcr/lodz/ASSETS_Konferencja_MRS_2013_plakat_Piasecki_T_Imputacja_dochodow_w_badaniach_statystyki_publicznej.pdf) --- # Zastępowanie wybraną wartością Funkcja `replace_na()` zastępuje `NA` wskazaną wartością. ```r df <- tibble(x = c(1, 2, NA), y = c("a", NA, "b")) df %>% replace_na(list(x = 0, y = "unknown")) ``` ``` ## # A tibble: 3 × 2 ## x y ## <dbl> <chr> ## 1 1 a ## 2 2 unknown ## 3 0 b ``` ```r df %>% mutate(x = replace_na(x, mean(x, na.rm = T))) ``` ``` ## # A tibble: 3 × 2 ## x y ## <dbl> <chr> ## 1 1 a ## 2 2 <NA> ## 3 1.5 b ``` --- # Pakiet VIM [Visualization and Imputation of Missing Values](https://cran.r-project.org/web/packages/VIM/index.html) [Alexander Kowarik, Matthias Templ (2016). Imputation with the R Package VIM. Journal of Statistical Software, 74(7), 1-16.](https://www.jstatsoft.org/article/view/v074i07/v74i07.pdf) - implementuje najpopularniejsze metody do zastępowania braków danych, - funkcje z pakietu zwracają zbiór danych z uzupełnionymi wartościami i flagą dla imputowanych obserwacji --- # Metoda hot-deck Dla każdego braku danych poszukiwany jest _dawca_ - obserwacja podobna pod kątem cech skorelowanych ze zmienną (pomocniczych), która zawiera brak danych. Funkcja `hotdeck` ```r hotdeck(data = zbior, variable = "cecha", ord_var = c("zmienna1", "zmienna2"), domain_var = "domena") ``` - `data` - zbiór danych wejściowych - `variable` - cecha/cechy do imputacji - `ord_var` - zmienne pomocnicze - `domain_var` - zmienne domenowe - w ramach, których ma być przeprowadzona imputacja --- # Metoda najbliższych sąsiadów Poszukiwanie obserwacji dawcy na podstawie wybranych zmiennych oraz kryterium minimalnej odległości dla wybranej liczby `\(k\)` sąsiadów. Obliczanie odległości opiera się na metryce Gowera (1971), która umożliwia obliczanie odległości dla cech jakościowych i ilościowych. Imputowana wartość dla cech ilościowych to mediana z wartości `\(k\)` sąsiadów, a dla cech jakościowych najczęściej występujący wariant. Funkcja `kNN` ```r kNN(data = zbior, variable = c("cecha1", "cecha2"), dist_var = c("zmienna1", "zmienna2", "zmienna3"), k = 5) ``` - `data` - zbiór danych wejściowych - `variable` - cecha/cechy do imputacji - `dist_var` - zmienne wykorzystywane do obliczenia odległości - `k` - liczba sąsiadów --- # Imputacja regresyjna Zastąpienie braków danych wartościami teoretycznymi z modelu liniowego. Funkcja `regressionImp` ```r regressionImp(formula = model, data = zbior) ``` - `formula` - model dla zmiennej imputowanej - `data` - zbiór danych wejściowych Podobnie działa funkcja `rangerImpute()` wykorzystująca lasy losowe, natomiast przy domyślnych parametrach nie będzie metodą deterministyczną. --- class: inverse, center, middle # Pytania?