Analiza danych – 5 kroków do przygotowania danych do wizualizacji

Analiza danych – 5 kroków do przygotowania danych do wizualizacji

Nad czym najwięcej czasu spędza osoba, której specjalnością jest analiza danych? Z pewnością każdy, kto nie jest analitykiem danych, odpowie, że jego zadaniem jest analiza danych i prezentacja jej wyników. W idealnym świecie z pewnością faktycznie by tak było, a raportowanie byłoby lekkim i przyjemny zajęciem. Co w takim razie spędza sen z powiek każdego analityka? Odpowiadając jednym stwierdzeniem: przygotowanie danych.

Każdy raportujący z pewnością chciałby otrzymać zestawy czystych danych, z wystandaryzowanymi nazwami kolumn. Uciążliwe dla analityków są również nietypowe i odstające wartości, niewypełnione w każdym miejscu. Po uporaniu się z tymi problemami pozostaje tylko generować kolejne wizualizacje, interpretować ich wyniki, a na koniec dnia zaskoczyć przełożonych głęboko ukrytymi wnioskami, niespotykanymi odkryciami i wartościowymi rekomendacjami. Następnie nasza firma uzyskuje wzrost na poziomie znacznie przekraczającym wzrosty rynku. Po czasie staje się światowym liderem, a analityk – żywą legendą. Piękna wizja, jednak świat wygląda inaczej. Dlaczego tak ciężko o dobre dane, którym można zaufać? Problem bardzo często pojawia się na początkowym etapie analizy danych.

Wyzwania stojące przed analitykiem danych

Największe wyzwanie dla każdego specjalisty, którego główną działalnością jest analiza danych, to obsługa, transformacja i przygotowanie zbioru danych do analizy. Niestety, dane opisujące wydarzenia w firmie zawsze będą wymagały odpowiedniego zarządzania – kontroli poprawnego uzupełniania, obsługi wydarzeń nietypowych, wdrażania nowych struktur informacji. Skala tego zadania wymusza często stworzenie oddzielnego stanowiska, odpowiadającego inżynierii danych – ich przygotowaniu, zaplanowaniu struktury raportowania i architektury technologicznej stojącej za całym procesem.

Niezależnie jednak od skali naszego przedsiębiorstwa, struktury działu analitycznego i jakości danych, każdą analizę danych należy rozpocząć od przygotowania zbioru do przeprowadzenia analizy i jego wizualizacji. W tym przypadku z pomocą przychodzi Eksploracyjna Analiza Danych (ang. EDA – Exploratory Data Analysis). Jest to proces przeprowadzany na początku pracy analityka, pozwalający mu zapoznać się z zastaną strukturą i obsłużyć potencjalne problemy. Na tym etapie analityk pozyskuje informacje o samym zbiorze, zaczyna go rozumieć, dostrzega nietypowe wartości i błędy w zbiorze, które wymagają dodatkowych działań. Z czego składa się proces Eksploracyjnej Analizy Danych?

Zapoznaj się z 5 prostymi krokami, jak poprawnie przygotować dane do skutecznej analizy i wizualizacji wniosków.

Analiza danych a jej cel biznesowy – zrozum swój zbiór danych 

Elementem kluczowym dla analizy danych jest sprawdzenie i zrozumienie, z czym mamy do czynienia. Na tym etapie powinniśmy odpowiedzieć sobie na pytania:

  • Skąd pochodzą dane: kto je wypełnia, kiedy, w jaki sposób?
  • Co dokładnie oznacza każda z kolumn/zmiennych/tabel (np. czy “data dodania pracownika” to data jego zatrudnienia, data dodania do systemu, data rozpoczęcia pracy)?
  • Jakie wartości można znaleźć w każdym wycinku zbioru (np. czy w kolumnie z datą zatrudnienia pracownika są tylko poprawne daty czy może również liczby i zdania)?
  • Co ostatecznie chcę uzyskać (czy ten zbiór jest odpowiedni, aby analiza danych okazała się skuteczna)?

Wydawać się może, że odpowiedzi na te pytania są oczywiste i etap ten to tylko formalności. Niestety, to często bardzo pracochłonny krok. W różnych miejscach zestawu danych mogą pojawić się wartości, których nie rozumiemy. Konieczne jest więc wyjaśnienie, dlaczego one występują i co oznaczają. Na tym etapie możemy dowiedzieć się np. że zmienna odpowiadająca wartości transakcji, oprócz liczb, zawiera również wyrażenia takie jak “anulowano”, “nieznana”, “raty”. 

Okazać się może również, że członek zespołu delegowany na Stany Zjednoczone, wypełniał daty kontraktów w formacie MM/DD/YYYY, podczas gdy reszta zespołu – DD/MM/YYYY. W konsekwencji ten etap analizy wiąże się zarówno ze wstępną analizą zbioru w narzędziu analitycznym (narzędzia Business Intelligence jak Tableau, zintegrowane środowiska programistyczne np. PyCharm itd.), jak i dokładnym zapoznaniem z metadanymi zbioru i porównywaniu naszych wniosków z zespołem, tak żeby wyjaśnić wszystkie wątpliwości.

Po poprawnym przeprowadzeniu tego etapu powinniśmy otrzymać informację o koniecznych transformacjach na danych w zbiorze, których wykonanie jest niezbędne dla dalszej analizy.

Optymalizuj zbiór danych

W drugim kroku procesu powinniśmy skupić się na optymalizacji technicznej zbioru. Oznacza to odpowiedzenie sobie na dwa pytania w przypadku każdej z badanych kolumn/zmiennych/tabel:

  • Czy dany obiekt (np. tabela, kolumna, zmienna) jest przydatny w przypadku tej analizy (jeśli nie, czy należy go usunąć)?
  • Czy dany obiekt ma odpowiedni typ danych (np. czy liczby to na pewno integer/float, a nie string)?

Krok ten, choć prosty do zastosowania, jest niezmiernie ważny. W przypadku średnich i dużych zbiorów danych może przyspieszyć na nich pracę nawet kilkukrotnie. W przypadku, gdy analiza danych przeprowadzana jest na płaskiej tabeli zawierającej ok. kilkadziesiąt tysięcy rekordów i kilkadziesiąt kolumn, ten krok może zmniejszyć jej wielkość nawet kilkunastokrotnie. To przekłada się na czas analiz. Wygenerowanie prostego wykresu zajmie jedną zamiast kilkunastu sekund, a w konsekwencji wykonanie pełnego skryptu analitycznego zajmie kilka zamiast kilkunastu minut. Choć nie są to duże liczby, należy pamiętać, że budowa i testowanie skryptu zakłada jego wielokrotne uruchamianie…

Na tym etapie dokonujemy transformacji dostępnych danych. To proste zadanie, możliwe do wykonania w większości narzędzi analitycznych. Przy tym kroku należy pamiętać o typach danych obsługiwanych przez nasze środowisko analityczne i zawsze dążyć do minimalizacji potrzebnej pamięci.

Należy unikać najbardziej “pamięciożernych” typów, takich jak string (słowa, zadania, ciągi znaków). W zamian warto dążyć do tych najbardziej oszczędnych, takich jak boolean (true/false).

Odpowiednio zarządzaj brakami danych

Kolejnym krokiem w procesie przygotowywania danych jest odpowiednie zarządzenie brakami danych w bazie. W każdej produkcyjnej bazie spotkamy się z sytuacją, gdzie wartość na danym obiekcie jest pusta. Klasycznym błędem w takim przypadku jest przypisywanie tej wartości zera. Brak danej w wybranych komórkach nie świadczy jednak o zerowej wartości w tym miejscu i nie ma podstaw do takiego działania. Ponadto, co zrobić, gdy w kolumnie powinna być data lub opis produktu, a nie liczba? W takim przypadku tym bardziej nie możemy zastąpić braku zerem.

W pierwszym kroku należy określić typ występujących braków ze względu na ich genezę. W ten sposób wyróżnimy:

  • błędy ludzkie (dana wartość powinna być wypełniona, jednak osoba za to odpowiedzialna tego nie zrobiła);
  • realne braki (ze względu na specyfikę rekordu, rzeczywiście wartość powinna być pusta, np. wartość zmiennej “ostatnio zakupiony produkt” powinna być pusta w przypadku klienta, który jeszcze nie dokonał zakupu na naszej platformie).

W przypadku realnych braków, sposób ich obsługi jest uzależniony od naszej analizy. Najczęściej jednak rekordy z brakami nie są zmieniane i podczas prezentacji rezultatów traktowane są jako oddzielna kategoria rekordów. Jest ona poprawna, jednak część analiz nie jest możliwa do przeprowadzenia na ich zbiorze.

Braki występujące ze względu na błędy ludzkie wymagają uzgodnienia ich obsługi w zespole/z kadrą zarządczą. Możliwe jest:

  • określenie wartości, która będzie zastępowała braki (np. z góry przypisujemy datę 01/01/2000 dla każdego braku na polu “data zatrudnienia” lub średnią wartość zamówienia dla braku na polu “wartość zamówienia”; alternatywnie braki danych mogą być zastąpione przez imputację zgodną z rozkładami zmiennych);
  • wypełnienie braków odpowiednimi wartościami przez członków zespołu za to odpowiedzialnych (co może okazać się niemożliwe, jeśli skala braków jest znaczna lub dotyczą one oddalonych w czasie wydarzeń);
  • pozostawienie braków (jeśli ich występowanie nie wpływa znacząco na analizy);
  • usunięcie wybrakowanych rekordów z analizy (co wiąże się ze stratą części informacji, jednak czasem może okazać się konieczne, jeśli braki mogą znacznie zniekształcać rzeczywistość).

Określ rozkłady zmiennych i wskaż wartości odstające

Po odpowiednim oczyszczeniu danych, zgodnie z zasadami opisanymi w poprzednich etapach, następuje czas na lepsze zrozumienie ich struktury. Teraz wiemy już, że np. wartości odpowiadające opóźnieniom płatności faktur są liczbami całkowitymi odpowiadającymi liczbie dni spóźnienia. Jak jednak te wartości rozkładają się pod względem częstości/gęstości występowania? Czy klienci spóźniają się najczęściej maksymalnie tydzień? Czy w naszym przypadku te wartości są równomiernie rozłożone na okres całego roku? Czy wstępują wartości odstające, tj. klienci z reguły spóźniają się maksymalnie tydzień, ale jeden kontrahent ma opóźnienie wynoszące 600 dni?

Rzut okiem na dane

W ramach tego etapu należy zbudować dla każdego badanego obiektu wykres gęstości lub histogram (poniżej przykład analizy zniżek oferowanych w danym sklepie). Takie wizualizacje pomogą nam zrozumieć w jaki sposób rozkładają się nasze wartości i w przypadku których możemy spodziewać się występowania wartości nietypowych.

Wykres zależności liczby rabatów od wysokości rabatów

Na przykładzie powyższego wykresu zauważyć można, że skala obniżki cenowej nie rozkłada się w sposób symetryczny. Dominują małe (do 20%) upusty cenowe. Równocześnie zniżki znaczne, w przedziale 70-80% są już na trzecim miejscu pod względem częstości występowania. Może to wskazywać na strategię firmy wobec upustów, zgodnie z którą upust powinien być niewielki lub znaczny. Wynika to z faktu, że zniżki w środku stawki nie przykuwają uwagi, a jednocześnie kosztują.

Po takiej analizie należy sprawdzić kolejne statystyki dla każdego obiektu, takie jak: średnia, mediana, odchylenie standardowe, wartości dla pierwszego i trzeciego kwartylu. Aby je łatwo zinterpretować, użyć można wykresu pudełkowego (wykres poniżej), który prezentuje część tych statystyk.

 

Analiza danych: przykładowy wykres skuteczności handlowców

Z powyższego wykresu wyczytać możemy:

  • medianę (granica dwóch szarych prostokątów w środku),
  • pierwszy i trzeci kwartyl (dolna i górna zewnętrzna granica szarych prostokątów),
  • rozstęp ćwiartkowy (długość dwóch szarych prostokątów),
  • pierwszy i trzeci kwartyl odpowiednio z odjętą i dodaną wartością rozstępu ćwiartkowego pomnożoną przez 1,5 (najbardziej skrajne linie poziome, tak zwane “wąsy”; w przypadku tego wykresu dolna granica zatrzymuje się na zerze, ponieważ wartość sprzedaży nie może być ujemna),
  • wyniki poszczególnych handlowców (kropki).

Na podstawie przykładowego wykresu zauważyć możemy, że pod względem wartości sprzedaży, dwóch handlowców wyróżnia się względem reszty: Richard Martinez i Robert Wilson. Jednocześnie wyniki przez nich osiągane nie są nieprawdopodobne, więc nie ma podstaw do podejrzenia błędu w danych.

Wnioski z pobieżnej analizy

Choć na tym etapie pojawia się już praca typowo analityczna, generowane są wykresy i statystyki, to jednak nie należy traktować tego elementu jako pełną analizę danych. Ten etap ma jedynie wprowadzić badacza w charakterystykę zbioru danych i pozwolić mu na ewentualne transformacje jeszcze przed właściwą analizą.

Jednocześnie na tym etapie powinniśmy zdecydować o podejściu do wartości odstających, czyli np. dla wspomnianego przypadku opóźnienia płatności faktury równego 600 dni. W literaturze można spotkać się z podejściem, które sugeruje zastosowanie reguły “trzech sigm”. Termin ten oznacza odrzucenie wszystkich obserwacji, które są oddalone od średniej o więcej niż trzy odchylenia standardowe. 

Należy jednak pamiętać, że takie podejście jest uzasadnione tylko w przypadku normalnego rozkładu prawdopodobieństwa, w przypadku którego rzeczywiście 99,7% obserwacji znajduje się w przedziale: średnia +/- trzy odchylenia standardowe. W rzeczywistości rzadko możemy potwierdzić występowanie tego rozkładu w naszych danych. Klasycznym błędem w przypadku stosowania tej reguły jest np. wykluczenie z analizy klientów o wartości zakupów spoza wskazanego wyżej przedziału. Taka wysoka wartość zakłóca analizę, jednak równocześnie może świadczyć, że dany kupujący jest klientem biznesowym, nie prywatnym. W konsekwencji nie powinien być on wykluczony, a poddany oddzielnej analizie, w podgrupie rekordów odpowiadających przedsiębiorstwom.

W związku z powyższym, najlepszym podejściem do zarządzania wartościami odstającymi jest indywidualne podejście do każdej zmiennej i decydowanie w zależności od jej rozkładu, statystyk i wartości informacyjnej. Podobnie jak w przypadku braków danych, możemy zdecydować o zmianie tej wartości na inną, usunięciu jej ze zbioru lub pozostawieniu bez zmian.

Sprawdź zależności i korelacje między zmiennymi

Ostatnim etapem poprawnie przeprowadzonej Eksploracyjnej Analizy Danych jest sprawdzenie zależności i korelacji występujących między badanymi zmiennymi. Ten krok zakłada sprawdzenie współwystępowania danych kategorii i wartości poszczególnych zmiennych w naszym zbiorze danych. 

Podstawową aktywnością w ramach tego etapu jest wyznaczenie miar korelacji. W najbardziej klasycznym przypadku miarą tą będzie współczynnik korelacji liniowej Pearsona, pozwalający wskazać, czy np. w przypadku wzrostu wartości jednej zmiennej, wartości drugiej zmiennej rosną czy spadają. Alternatywnie, np. w przypadku zmiennej, gdzie występują wartości odstające, można zastosować współczynnik korelacji rang Spearmana, który lepiej oddaje zależności w takim przypadku.

Analiza korelacji i współwystępowania pozwala sprawdzić poprawność i zgodność naszych danych z intuicją. Jeśli analiza wykaże, że większe wartości zamówień występują w przypadku klientów indywidualnych, a nie firm, to może to wskazywać na błędy w zbiorze, które nie zostały wykryte na żadnym z wcześniejszych poziomów analizy. Jednocześnie jest to etap, w którym wskazać możemy już pierwsze zależności. W ten sposób możemy płynnie przejść do właściwej analizy, czystego już zbioru danych.

Odpowiednie wykonanie powyższych kroków znacznie skraca pracę analityczną nad zbiorem. Dzięki kolejnym etapom badacz może dokładnie zrozumieć dane, czyli materiał na którym pracuje. Dzięki temu w kolejnych etapach oszczędzi wielu pomyłek i nieporozumień, a analiza danych zostanie przeprowadzona skutecznie.

 

Zachęcamy również do śledzenia nas na LinkedIn.

Artykuł autorstwa Karola Michalaka.