Dlaczego w Tableau nie ma w funkcjach dostępnego wzoru na dominantę (modę), przecież to takie proste do wyliczenia? Niewątpliwie takie pytanie mogło pojawić się nam podczas eksplorowania zakładki z dostępnymi funkcjami w Tableau.
Otóż okazuje się, że w rzeczywistości nie ma gotowego wzoru na obliczenie wartości dominującej w danym zbiorze danych. To, co jeszcze możemy pamiętać z czasów ławki szkolnej, bądź akademickiej ( w nieco rozszerzonej wersji ) dominanta to wartość zmiennej, która w badanej populacji powtarza się najczęściej. Pozwala ona na określenie miejsca największej koncentracji wyników.
Dominanta, wartość modalna w Tableau
Wartość mody w przeciwieństwie do pozostałych miar przeciętnych (np. średniej, mediany) nie wyliczamy korzystając z gotowego wzoru. Dokonujemy tego na podstawie analizy wartości cech badanej populacji pod kątem znalezienia wartości, która występuje najczęściej.
Przejdźmy zatem do meritum – jak wyliczyć dominantę w Tableau?
Okazuje się, że z pomocą mogą nam przyjść LODy – tak zwane funkcje Level of Detail, a ujmując to jeszcze dokładniej zagnieżdżone funkcje warunkowe Fixed. W Tableau możemy podchodzić do kalkulacji na dwa sposoby – budować poszczególne reguły kalkulacyjne oddzielnie jako elementy składowe, które finalnie łączymy w jednej kalkulacji. Opcjonalnie możemy stworzyć jedną zagnieżdżoną regułę. Należy jednak pamiętać, że dobrą praktyką jest sprawdzenie, czy cały mechanizm działa w sposób poprawny z logicznego i funkcjonalnego punktu widzenia. W sytuacji kiedy nie otrzymujemy oczekiwanego efektu, bądź walidacja kalkulacji sygnalizuje o błędzie, warto przebadać poszczególne składowe. Diabeł tkwi w szczegółach (albo błędnej agregacji).
Dominanta- praktyczny przykład w Tableau.
W naszej bazie danych mamy zestawienie artykułów firmy garmażeryjnej – sprzedającej również przetworzone mięso. Artykuły mają zdywersyfikowane ceny w zależności od lokalizacji-regionu, bądź sklepu. W naszym raporcie, który zbiera informacje z całej sieci, chcielibyśmy zestawić te dane i pokazać jaka była najniższa cena danego produktu, jaka była najwyższa cena, średnia, mediana, jak również chcielibyśmy pokazać (wyliczyć) cenę, która w bazie pojawiała się najwięcej razy. Z obliczeniami dla pozostałych miar przeciętnych nie będziemy mieli problemu. Możemy śmiało skorzystać z predefiniowanych funkcji w Tableau. Odpowiednio MIN(), MAX(),AVG(), WINDOW_MEDIAN().
W przypadku wyliczenia wartości, wskazania ceny, która wystąpiła najwięcej razy w naszej bazie, możemy na początku pokazać, jakie ceny były przyporządkowane do poszczególnych artykułów.
Spróbujmy to wyświetlić w Tableau:

Widzimy np. że 4 różne ceny wystąpiły dla produktu „Parówki z Piersi Indyka”
Wartość modalna – reguła kalkulacyjna w Tableau
Kolejny krok to dorzucenie pola (miary), która będzie nas informowała o częstotliwości pojawienia się danych cen w bazie. Możemy do tego użyć generycznego pola Datasource(Count) – nad pigułką Measure Values 😊, bądź stworzyć proste pole kalkulowane COUNT(1).

Przejdźmy zatem do sedna sprawy. Skorzystajmy z piętrowej kalkulacji LoD , dzięki której wyliczymy cenę, która wystąpiła w populacji najwięcej razy:

Kalkulacja to złożenie funkcji logicznej IF z warunkiem uwzględniającym największą częstotliwość występowania. W końcowym efekcie chcemy zwracać informację o dominującej w populacji cenie.
Sprawdźmy, czy działa. Wychodzi na to że wszystko jest ok 😉

Co w sytuacji kiedy cena pojawia się w naszej bazie taką samą liczbę razy?
Dla przypadków w których mamy taką samą liczbę wystąpień, funkcje agregującą MIN, możemy zastąpić, chociażby średnią AVG. Dobrze odzwierciedla to przykład z wprowadzonym ograniczeniem dla produktów przefiltrowanych do wybranej lokalizacji. Dla artykułu „Pasztet Samo dobro” mamy dwie ceny, które występują w bazie taką samą liczbę razy – 20. Trzeba zaznaczyć, że z matematycznego punktu widzenia, nie jest to do końca właściwe podejście (ponieważ w tej sytuacji powinniśmy po prostu uwzględnić dwie dominanty – 4,99 i 5,69). Przyjmijmy zatem, że średnia w takim układzie będzie pewnego rodzaju elementem umownym – wg mnie najbardziej sprawiedliwym 😉

Aleksander Ostasiuk
Tableau Consultant