+ - 0:00:00
Notes for current slide
Notes for next slide

Metody przetwarzania
i analizy danych

Badania eksploracyjne

© Łukasz Wawrowski

1 / 12

Zbiór danych - pracownicy

  • 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)
2 / 12

Eksploracyjna analiza danych

Explanatory Data Analysis (EDA):

  • opis

  • wizualizacja

  • badanie bez zakładania hipotez badawczych

  • identyfikacja wartości nietypowych

  • kluczowy krok przed modelowaniem

3 / 12

dataMaid

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

5 / 12

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

6 / 12

Zastępowanie wybraną wartością

Funkcja replace_na() zastępuje NA wskazaną wartością.

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
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
7 / 12

Pakiet VIM

Visualization and Imputation of Missing Values

Alexander Kowarik, Matthias Templ (2016). Imputation with the R Package VIM. Journal of Statistical Software, 74(7), 1-16.

  • 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

8 / 12

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

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

9 / 12

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

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

10 / 12

Imputacja regresyjna

Zastąpienie braków danych wartościami teoretycznymi z modelu liniowego.

Funkcja regressionImp

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ą.

11 / 12

Pytania?

12 / 12

Zbiór danych - pracownicy

  • 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)
2 / 12
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow