Jak pracovat s chybějícími daty

library(imputeTS)na.random(mydata) # Random Imputation
na.locf(mydata, option = "locf") # Last Obs. Carried Forward
na.locf(mydata, option = "nocb") # Next Obs. Carried Backward
na.interpolation(mydata) # Linear Interpolation
na.seadec(mydata, algorithm = "interpolation") # Seasonal Adjustment then Linear Interpolation

Medián, medián a modus

Výpočet celkového průměru, mediánu nebo modu je velmi základní imputační metoda, je to jediná testovaná funkce, která nevyužívá žádné vlastnosti časové řady nebo vztah mezi proměnnými. Je velmi rychlá, ale má jasné nevýhody. Jednou z nevýhod je, že imputace průměru snižuje rozptyl v souboru dat.

library(imputeTS)na.mean(mydata, option = "mean") # Mean Imputation
na.mean(mydata, option = "median") # Median Imputation
na.mean(mydata, option = "mode") # Mode ImputationIn Python
from sklearn.preprocessing import Imputer
values = mydata.values
imputer = Imputer(missing_values='NaN', strategy='mean')
transformed_values = imputer.fit_transform(values)# strategy can be changed to "median" and "most_frequent"

Lineární regrese

Na začátku se pomocí korelační matice určí několik prediktorů proměnné s chybějícími hodnotami. Vyberou se nejlepší prediktory a použijí se jako nezávislé proměnné v regresní rovnici. Proměnná s chybějícími údaji se použije jako závislá proměnná. Případy s úplnými údaji pro predikční proměnné se použijí k vytvoření regresní rovnice; rovnice se pak použije k predikci chybějících hodnot pro neúplné případy. V iteračním procesu se vloží hodnoty pro chybějící proměnnou a poté se všechny případy použijí k predikci závislé proměnné. Tyto kroky se opakují, dokud není mezi předpovídanými hodnotami od jednoho kroku k druhému malý rozdíl, tj. konvergují.
To „teoreticky“ poskytuje dobré odhady pro chybějící hodnoty. Tento model má však několik nevýhod, které spíše převažují nad výhodami. Za prvé, protože nahrazené hodnoty byly předpovězeny z jiných proměnných, mají tendenci do sebe „příliš dobře zapadat“, a tak je standardní chyba vyprázdněna. Je také nutné předpokládat, že mezi proměnnými použitými v regresní rovnici existuje lineární vztah, i když nemusí existovat.

Vícenásobná imputace

  1. Imputace: Imputujte chybějící položky neúplných datových souborů mkrát (na obrázku m=3). Všimněte si, že imputované hodnoty jsou čerpány z rozdělení. Simulace náhodných losování nezahrnuje nejistotu parametrů modelu. Lepší přístup je použít simulaci Markovovým řetězcem Monte Carlo (MCMC). Výsledkem tohoto kroku je m kompletních souborů dat.
  2. Analýza: Analyzujte každou z m kompletních sad dat.
  3. Sdružování: Integrujte m výsledků analýzy do konečného výsledku

Zdroj: http://www.stefvanbuuren.nl/publications/mice%20in%20r%20-%20draft.pdf
# We will be using mice library in r
library(mice)
# Deterministic regression imputation via mice
imp <- mice(mydata, method = "norm.predict", m = 1)
# Store data
data_imp <- complete(imp)# Multiple Imputation
imp <- mice(mydata, m = 5)#build predictive model
fit <- with(data = imp, lm(y ~ x + z))#combine results of all 5 models
combine <- pool(fit)

Tato metoda imputace je zdaleka nejpreferovanější z následujících důvodů:
– Snadné použití
– Žádné zkreslení (pokud je imputační model správný)

Imputace kategoriálních proměnných

  1. Mód imputace je jednou z metod, ale určitě vnese zkreslení
  2. Chybějící hodnoty lze považovat za samostatnou kategorii samu o sobě. Pro chybějící hodnoty můžeme vytvořit další kategorii a použít je jako jinou úroveň. To je nejjednodušší metoda.
  3. Předpovědní modely: Zde vytvoříme predikční model pro odhad hodnot, které nahradí chybějící údaje. V tomto případě rozdělíme náš soubor dat na dvě množiny: Jednu množinu bez chybějících hodnot proměnné (trénovací) a druhou s chybějícími hodnotami (testovací). Pro predikci můžeme použít metody, jako je logistická regrese a ANOVA
  4. Vícená imputace

KNN (K Nearest Neighbors)

Pro imputaci dat existují i další techniky strojového učení, například XGBoost a Random Forest, ale my se budeme zabývat metodou KNN, protože je široce používaná. V této metodě se vybere k sousedů na základě určité míry vzdálenosti a jejich průměr se použije jako odhad imputace. Metoda vyžaduje výběr počtu nejbližších sousedů a metriky vzdálenosti. KNN může předpovídat jak diskrétní atributy (nejčastější hodnotu mezi k nejbližšími sousedy), tak spojité atributy (průměr mezi k nejbližšími sousedy)
Metrika vzdálenosti se liší podle typu dat:
1. Metrika vzdálenosti se liší podle typu dat. Spojitá data: Běžně používané metriky vzdálenosti pro spojitá data jsou euklidovská, manhattanská a kosinová
2. Kategoriální data: V tomto případě se obvykle používá Hammingova vzdálenost. Vezme všechny kategoriální atributy a pro každý z nich započítá jedničku, pokud hodnota není mezi dvěma body stejná. Hammingova vzdálenost je pak rovna počtu atributů, u nichž se hodnota lišila.
Jednou z nejatraktivnějších vlastností algoritmu KNN je, že je jednoduchý na pochopení a snadno se implementuje. Neparametrická povaha KNN mu dává výhodu v určitých nastaveních, kde mohou být data velmi „neobvyklá“.
Jednou ze zjevných nevýhod algoritmu KNN je, že při analýze velkých souborů dat se stává časově náročným, protože hledá podobné případy v celém souboru dat. Kromě toho může být přesnost KNN značně zhoršena u dat s vysokou dimenzí, protože mezi nejbližším a nejvzdálenějším sousedem je malý rozdíl.

library(DMwR)
knnOutput <- knnImputation(mydata)In python
from fancyimpute import KNN
# Use 5 nearest rows which have a feature to fill in each row's missing features
knnOutput = KNN(k=5).complete(mydata)

Mezi všemi výše uvedenými metodami se široce používá vícenásobná imputace a KNN, přičemž vícenásobná imputace, která je jednodušší, se obecně upřednostňuje.

Pokud máte k tomuto příspěvku nějaké dotazy, ptejte se v komentářích a já se budu snažit odpovědět.

Pokud máte nějaké dotazy, ptejte se prosím v komentářích a já se budu snažit odpovědět.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.