Dziś zajmiemy się tematem przekłamań w raportach, analizach, wskaźnikach, wykresach. Wypunktujemy przykładowe wpadki które prowadzą do zakłamania rzeczywistości lub wprowadzają odbiorcę w błąd. Wskazówki mają charakter uniwersalny, niezależny od stosowanego narzędzia raportowego. Przykłady zostaną zobrazowane w Qlik Sense, a tam gdzie to niemożliwe (Qlik Sense ogranicza możliwość błędów) – w Excelu.
Przed przejściem do przykładowych błędów zwrócę uwagę na rozróżnienie pomiędzy błędami niezamierzonymi a pewnym celowym kształtowaniem wykresów.
Zastosowania i sposoby wykorzystania Business Intelligence można klasyfikować na przeróżne sposoby, ale jednym z nich jest podział według potrzeby:
Dwa skrajne cele. W pierwszym prezentujemy wyniki firmy, wyniki działu, pragniemy pochwalić się wzrostami sprzedaży czy wydajności. W drugim przypadku Business Intelligence będzie służyło wyszukiwaniu błędów w firmie, by móc je naprawiać i podnosić efektywność. W pierwszym przypadku analityk będzie chciał skupić się na wzrostach i wynikach dodatnich, w drugim zamieni się w śledczego, który skrupulatnie wyszuka każdą stratę, by zwrócić uwagę na możliwość poprawy (porównaj: LEAN Management, którego głównym zadaniem jest wyszukiwanie i eliminacja strat w procesach).
Prostym przykładem jest dynamika sprzedaży handlowców, produktów itd. rok do roku. W podejściu “pochwalmy się” sortujemy wykres/tabelę malejąco, od wartości największych. W podejściu “identyfikuj problemy” sortujemy dane odwrotnie, zaczynając od wyników najgorszych.
Na szczęście w domyślnym wyglądzie wykresu słupkowego w Qlik Sense widzimy po prawej podgląd (pionowy suwak) na wszystkie wartości, dzięki czemu nie umkną nam ani rekordy ani porażki (możemy zmodyfikować to ustawienie).
Niektórzy Klienci proszą o ranking złożony – na przykład top 5 i bottom 5 na jednym wykresie, również do wykonania w Qlik Sense.
Top 5 i bottom 5 dynamiki sprzedaży:
Skalpowanie wykresu to rysowanie linii lub słupków reprezentujących jakąś wartość z nietypowym odcięciem osi – gdy oś nie zaczyna się od zera. Jak w przykładzie poniżej.
Gdy oś wartości nie zaczyna się od zera mamy wrażenie, że między rokiem 2012 i 2013 nastąpił kilkusetprocentowy wzrost
Gdy oś rozpoczniemy od zera, wykres ulega wypłaszczeniu i bardziej realistycznie (mniej spektakularnie) i oddaje wartości rzeczywiste
Czasami chcemy świadomie wykres “zeskalpować” – gdy na przykład oferujemy na wartościach wysokich ale o bardzo małej zmienności, jak na przykład % dobrych produktów na linii produkcyjnej albo wskaźnik wypłacalności klientów. W tych przypadkach, gdyby oś zaczynała się od zera, to widzielibyśmy prawie płaską linię, gdy po powiększeniu uwidacznia się spora dynamika wskaźnika.
Przykład, gdy skalpowanie wykresu jest wręcz niezbędne:
Tego przykładu nie da się zwizualizować w Qlik Sense gdyż (na szczęście) narzędzie nie pozwala na tworzenie wykresów trójwymiarowych. Dlatego zwizualizujemy ten przykład w Excelu.
Porównanie sprzedaży według sposobu wysyłki. Wartości są identyczne w obu wykresach. W wykresie 3D wysyłki kurierem (czerwone) wydają się dominować a wysyłki pocztą (zielone) mieć dużo mniejsze znaczenie niż jest w rzeczywistości, której bliżej jest wykres po prawej stronie.
Wizualizacja 3D nie wnosi nic istotnego a tylko utrudnia odbiór informacji. Zbliżenie jednego segmentu do odbiorcy (percepcja podpowiada – co jest bliżej, jest większe), dodatkowe cieniowanie albo wątpliwości, czy istotna jest powierzchnia, czy może objętość.
Przy okazji widać podstawowy błąd wizualizacyjny Excela – zestawienie koloru zielonego i czerwonego. Więcej o błędach w kolorach we wpisie “Jak korzystać z kolorów do prezentacji danych”.
Zagadnienie znane z kursów statystyki czy ekonomii. Gdy mówimy o zmianie wartości bezwzględnych, np. wartości sprzedaży, ilości klientów, możemy opisywać je zmianą procentową. Gdy opisujemy dynamikę wartości procentowej, powinniśmy być ostrożni. Najbezpieczniej jest użyć określenia punkt procentowy. Gdy marża zwiększyła się nam przykładowo z 3% do 6% powiemy, że wzrosła o 3 punkty procentowe, nie o 3 procent. Wzrost o 3 procent oznaczałby marżę 3.09% po zmianie (0.03 * 1.03 = 0.0309).
“pp” – punkt procentowy, w Qlik Sense wybieramy formatowanie liczb – niestandardowe a następnie używamy formatu jak ze wzoru. “pp” zostanie dodane automatycznie do każdego wyniku.
W narzędziach opartych o zapytania SQL wartości wymiaru puste są często ignorowane. W rzeczywistych danych często nie mamy stuprocentowego wypełnienia zwłaszcza, gdy wartości wymiaru są aktualizowane przez człowieka. Systemy ERP dbają o spójność danych, ale w raportowaniu i w hurtowniach danych często dodawane są tzw mappingi, wartości uzupełniające. Bywa, że nie są aktualizowane z biegiem czasu i powstają luki…
W przykładzie poniżej dodano po jakimś czasie w CRM region 004, ale nie uwzględniono tego w hurtowni danych.
Suma kosztów w raporcie jest poprawna – 6500, ale gdy utworzymy wykres według Regionu i zsumujemy poszczególne słupki uzyskamy wynik 5000… czym od razu utracimy zaufanie odbiorcy co do wiarygodności naszego raportu. Kilkakrotnie spotkałem klientów, którzy sumowali wartości ze słupków by sprawdzić poprawność dashboardu – widocznie zrażeni wpadkami poprzednich narzędzi analitycznych.
Wartości dla wymiaru pustego często umykają w analizach
Na szczęście w Qlik Sense domyślnym zachowaniem jest nieukrywanie żadnych danych, wartość 1500 pojawi się jako szary słupek.
Najlepszym podejściem jest takie utworzenie mappingu, by przewidział powstanie nowych kodów i w miejsce nierozpoznanych wpisywał zadaną wartość, np. “Brak definicji”.
Średnia to suma wszystkich wartości podzielona przez liczbę wartości, mediana to wartość środkowa. Połowa wystąpień ma wartość powyżej mediany a połowa poniżej. Jest to wartość dzieląca zbiór na pół. W niektórych statystykach dużo lepszą miarą będzie mediana, niż średnia. Mediana będzie bardziej “reprezentatywna”. Dotyczy to zbiorów danych, gdzie mamy wiele podobnych wartości i nieliczne znacznie odstające. Przykładem mogą być zarobki pracowników zespołu i lidera. Wartości odstające zawyżają średnią, nie mają natomiast wpływu na medianę.
Mediana versus średnia. Gdyby w wykresie poniżej zarobki menedżera (pierwszy słupek od lewej) wzrosły do na przykład 100 tys. zł, średnia znacznie by urosła a mediana nie zmieniłaby się w ogóle.
Mediana jest niewrażliwa na wielkość wartości skrajnych. Pomimo wzrostu wynagrodzenia pierwszego pracownika do 100 tys. zł, mediana pozostaje na poziomie 8270 zł! Średnia wzrosła o ponad 1000 zł, ale czy można powiedzieć, że “pracownicy zarabiają średnio 1000 zł więcej”?
Współczesne narzędzia BI zachęcają do swobodnego poruszania się po danych. Zespoły przygotowujące kolejne zestawienia tabelaryczne różniące się między sobą tylko jednym wymiarem odchodzą w zapomnienie. Użytkownik biznesowy ma łatwość wygenerowania nowego ujęcia samemu. Nie zawsze jednak przewidzimy, które z pól wymiarów ze sobą zestawi… Dlatego powinniśmy przyłożyć szczególną uwagę do modelu danych, jaki budujemy. Podam przykład z życia.
Firma sprzedająca materiały budowlane ma prosty model danych. Tabelę faktur i tabelę wysyłek, dla dwóch swoich spółek: A i B (pole Spółka). Wspólną informacją jest numer zamówienia, jest to też połączenie między tabelami.
Analityk wczytał obie tabele, ale pole Spółka występuje w obu źródłach, tworzyło więc powiązanie niepożądane (wysyłki może dokonać inna spółka niż ta, od której zamówiono). By dane nie łączyły się po polu Spółka, analityk zmienił nazwy pól na Spółka1 i Spółka2. Następnie opublikował aplikację.
Użytkownik chce odfiltrować sprzedaż według spółki A. Sumuje Wartość netto i nakłada filtr na polu, które znalazł pierwsze – Spółka2. Otrzyma wynik nieprawidłowy, chciał filtrować Faktury według pola Spółka = “A”, tymczasem odfiltrowuje Wysyłki wykonane przez firmę “A”, zawężając numery zamówień, które zawężają Faktury. Faktury spółki A, które zostały wysłane przez spółkę B zostały wykluczone…
Rozwiązaniem jest odpowiedni model danych, gdzie pole Spółka przeniesione jest do tabeli łączącej dwie tabele faktów – tzw tabeli linkującej.
Gdy budujemy wykres kombi zdarza się, że np. wartość sprzedaży i wartość marży lądują po prawej i lewej stronie wykresu przybierając różne zakresy. Może to prowadzić do złej interpretacji, gdy przykładowo niska w rzeczywistości marża nabiera nieproporcjonalnych rozmiarów.
Problem: marża w zł i przychód w zł na różnych osiach (po lewej i po prawej stronie) z różną skalą). Nieprawidłowe proporcje:
Rozwiązanie: miary o tej samej jednostce “przypisane” do jednej osi (w przykładzie poniżej – do osi po lewej stronie)
Alternatywne rozwiązanie: miary o tej samej jednostce “przypisane” do wspólnej osi oraz zwizualizowane tym samym kształtem
Gdy na wykresie punktowym chcemy zwizualizować dwie miary o tej samej jednostce i chcemy je porównać – a w wyobraźni rysujemy sobie przekątną jako odniesienie – musimy uważać. W przykładzie poniżej widzimy wykres punktowy, gdzie kropka to lokal gastronomiczny naszej sieci, w poziomie liczymy zmianę wartości średniej rachunku a w pionie zmianę liczby rachunków. Zadajemy pytanie: czy szybciej rośnie liczba rachunków czy średni rachunek? Na pierwszy rzut oka wydawałoby się, że w lokalu CIN szybciej rośnie wartość rachunku, punkt ten jest “bardziej oddalony od osi pionowej niż poziomej”. Gdy przyjrzymy się wartościom, zobaczymy, że jest odwrotnie. Średni rachunek wzrósł o około 60%, ale liczba rachunków o ponad 100%…
Rozwiązaniem problemu będzie idealnie kwadratowy wykres z identycznym zakresem osi w pionie i poziomie.
W Qlik Sense uzyskamy to wyłączając responsywność arkusza i nadając mu precyzyjne wymiary.
Pewien pisarz dał kiedyś radę. Gdy napiszesz artykuł prasowy, list, fragment książki – odłóż do szuflady i wróć do niego za kilka tygodni. Spojrzysz wtedy na niego obiektywnie, prawie jakby to był tekst innej osoby. Dzięki temu wyłapiesz błędy i niezręczności. Tak samo z naszymi dashboardami. Dobrze jest spojrzeć na nie krytycznym okiem, postawić się w roli odbiorcy. Zaraz po wytworzeniu a najlepiej, jeżeli mamy taką możliwość, jakiś czas potem. Kiedy zadamy sobie pytanie “Co ja miałem na myśli?” albo złapiemy się na złej interpretacji danych to już wiemy – coś wymaga poprawy 🙂