Martin Bosák: Datová kvalita – analýza bordelu

Dnes to bude kratší, zato nejspíše na pokračování. Tohle téma je rozsáhlé, palčivé … a často těžko uchopitelné.
Začneme asi trochu jízlivě, ale snad prakticky. Jednou ze základních pouček pro datovou kvalitu je rada, ať ji řešíte co nejblíže zdroji – tzn. aby se ta hnusná, špinavá, nekvalitní data vůbec nedostala do systému. No jo, jenže to se hezky řekne, ale těžko udělá. A co s tím, pokud už tam ten bordel prostě je? Což je pro nás – datové analytiky – nejčastější případ. Vlastně asi ne nejčastější… prostě je tam bordel vždy.
Říká se, že příprava dat zabere většinu času jakéhokoliv analytického úkolu (slyšel jsem čísla od 50 do 90%). Každopádně můžeme směle říci, že popasování se s datovou kvalitou bude v této přípravě asi největší položkou.

Co vše můžeme v datech potkat

Rád bych zde přeskočil problémy týkající se formátu dat. To bude asi kapitola sama pro sebe. Prostě předpokládejme, že data umíme přečíst – a že jsou dokonce v tabulkové formě! (To se nestává vždy). Ukážeme si pár lahůdek.

První, nejčastější a nejviditelnější problém – spousta dat tam chybí. Ok, chybějících řádků si asi nevšimnete hned, ale to, že většina hodnot je v některý sloupečcích prázdná je celkem vidět. Osobně jsem celkem zvyklý s touto hodnotou, resp. null hodnotou pracovat – prostě ji považuji za chybějící pozorování.
Jen si vždy dejte pozor, zda jde opravdu o chybějící hodnotu (null), prázdný řetězec (“”), nebo jen číselnou 0. Tento drobný rozdíl může mít zcela zásadní dopad pro některé analýzy – například pro průměry, počty rozdílných hodnot, filtry, a především pro vyhodnocování některých logických podmínek. Někdy tyto chybějící údaje budete muset nahradit skutečnou hodnotou – někdy 0, někdy průměrem, nebo například mediánem. Zároveň je dobré ošetřit zobrazování těchto hodnot v analýzách – resp. jak tyto hodnoty pojmenovat (např. v Tableau je fajn použít alias)

Co naštve celkem hodně, jsou chybějící referenční klíče – když už máme sloupeček, nemusíme v něm mít všechny hodnoty správně. Resp. ne všechny cizí klíče budou pasovat na primární klíč a naopak, ne ke všem primárním klíčům nalezneme příslušné záznamy. To se tak trochu dá čekat, jenže řada programů automaticky vytvoří inner join, a všechny tyto “přebývající” záznamy prostě zahodí – pozor tedy na to co chcete ve výsledku analyzovat. A úplně nejlepší situace je taková, když tam, kde čekáte primární klíč najdete duplicitní hodnoty. Takže pozor i na roznásobování záznamů. U každého joinu si vždy zkontrolujte, zda najednou místo 1000 záznamů najednou neanalyzujete milion řádků. Když už jsme naťukli chybějící řádky – vždy si taky dejte pozor na to jaká data vůbec máte (jestli máte všechna)

Tak a teď k tomu bordelu… Je dobré si vždy alespoň trochu projít všechny sloupce a zjistit, jaké různé hodnoty se tam vyskytují – a jestli splňují, co od nich čekáte. Třeba ve sloupci NAME by mohla být jména,… ale… řekněme, že lidská tvořivost je velká 🙂 Někdy pomůže slovník, někdy nic.

O dalších lahůdkách zase příště… Jen na závěr jedna myšlenka: pokud se stejným datovým zdrojem budete pracovat častěj – měřte datovou kvalitu! Pro začátek stačí základy – měřit kolik je toho ok a kolik ne.

Comments

comments

Leave a Reply