Wyślij zapytanie Dołącz do Sii

Nasze ostatnie analizy w Centrum Kompetencyjnym Business Intelligence dotyczą bardzo aktualnego tematu, który za razem jest bardzo interesujący. Każdy z nas na pewno śledzi na bieżąco zestawienia zarażeń COVID-19. Zatem zapraszamy Was do skorzystania z naszego raportu i analizy bieżącej sytuacji, wykorzystując dane z wiarygodnych źródeł.

Nasze dane historyczne pochodzą z repozytorium Github tworzonego przez Johnson Hopkins University Center For System Science and Engineering (JHU CSSE). Szczegóły na temat źródła danych można znaleźć tutaj. Dane z dwóch ostatnich dni są pobierane ze strony Worldometer, gdzie także na bieżąco podane są źródła agregowanych danych.

Interaktywny raport – pandemia COVID-19 – Jak analizować prezentowane dane?

Widok raportu Intro

Raport Intro pokazuje najważniejsze dane w skali całego świata. Na mapie można zobaczyć najważniejsze statystyki, rozwój wirusa w czasie i przestrzeni. Ranking krajów wg wskaźnika śmiertelności (Death Rate) lub wskaźnika wyzdrowień (Recovery Rate) oraz wg innych miar, które można wybrać z listy Status of Cases. Wartości na mapie mogą być przedstawione jako wartości absolutne lub jako ilość przypadków na 100 tys. populacji w danym kraju.

Widok raportu World Regions

Raport World Regions przedstawia rozprzestrzenie się wirusa na poszczególnych kontynentach. Na mapie pokazujemy także kolorami jak długo już trwa epidemia, a wielkość okręgu pokazuje skalę zakażenia w zależności od wybrania odpowiedniego statusu przypadku (Status of Cases) i typu miary.

Wykresy słupkowe można eksplorować w dół zaczynając od kontynentu, przez region do konkretnego kraju.
Używając suwaka z datą na obydwu raportach można przeglądać, jak sytuacja zmieniała się w czasie.

Na każdym z wykresów, gdzie można zaznaczyć kraj można klikając prawym przyciskiem myszy wybrać raport szczegółowy dla danego kraju. Używamy do tego funkcjonalności pięknie brzmiącej w języku polskim drążenie wskroś? (Drillthrough). Najeżdżając myszką na kraj pojawia się także etykieta narzędzia (tooltip) na którym są widoczne dodatkowe informacje wraz z wykresem zmian wartości w czasie wraz z 10 dniową prognozą.

Informacja dotycząca Włoch

Poniżej raport szczegółowy dla Włoch, który wyświetla się po wybraniu drążenia wskroś wybranego kraju.

Raport szczegółowy dla Włoch

Znajdują się na nim najważniejsze statystyki i wykresy dla danego kraju. Mierniki w prawym górnym rogu pokazują ilość przypadków w zależności od wybranego statusu w porównaniu do maksymalnej liczby przypadków w regionie (Subregion), jako cel jest ustawiona średnia w danym regionie.

Epidemia koronawirusa zaczynała się w różnych krajach w różnym czasie, dlatego zależało nam na pokazaniu rozwoju wirusa wg dni kiedy się on zaczął, ponieważ na osi czasu krzywe były przesunięte.
Po pierwszej analizie danych zauważyliśmy, że trzeba także uwzględnić czas, w którym znacząca liczba zarażonych pojawiła się w tym samym czasie, ponieważ istniały kraje, w których pierwsze przypadki były wykryte dość wcześnie i były to osoby przyjeżdżające z zewnątrz. Zbudowaliśmy tak model aby można było dynamicznie zmieniać liczbę przypadków od jakiej chcemy porównywać kraje.

Widok raportu Significant Days

W raporcie Significant Days możemy porównać jak w danych krajach rozprzestrzenia się wirus, a może dokładniej ile przypadków zostało wykrytych. Jeśli pojawią się dane o ilości testów w danych krajach, warto będzie dodać te dane do modelu.

Polska jest tu szczególnie wyróżniona (linia przerywana) żebyśmy mogli na bieżąco śledzić, czy zamknięcie nas wszystkich w domach dało oczekiwany skutek i gdzie jesteśmy w porównaniu do krajów, gdzie sytuacja jest już dramatyczna. Jak widać po 12 dniach od pierwszych 100 dni nie jest tak źle. Obok wykresu liniowego jest tabelka z krajami znajdującymi się na wykresie w kolejności od największej ilości przypadków na koniec zaznaczonego okresu. Wykres można oglądać w skali logarytmicznej lub liniowej. Dane mogą być także przedstawione w wartościach absolutnych lub skorelowanych z populacją w danym kraju (Per 100K Population), wtedy otrzymamy wartości podzielone przez 100 tys. populacji danego kraju.

Na koniec dodaliśmy dwa raporty pokazujące dane w formie tabelarycznej. Raport Countries by day of epidemy pozwala porównać sytuację w jakiej znajdowały się poszczególne kraje na konkretny dzień trwania epidemii, gdzie można wyznaczyć od jakiej ilości potwierdzonych zakażeń uznajemy jako pierwszy dzień epidemii.

Widok raportu Countries by day of epidemy

W raporcie Countries by date of epidemy możemy sprawdzić sytuację na bieżący dzień kalendarza lub cofnąć się w czasie i sprawdzić jak wyglądała sytuacja w poszczególnych krajach wcześniej.

Widok raportu Countries by day of epidemy

W trakcie przygotowywania tego artykułu i tworzenia raportów wciąż pojawiają się nowe pomysły wizualizacji danych i za pewne w najbliższym czasie pojawią się nowe.

Dane źródłowe

Przystępując do stworzenia własnego raportu, chcielibyśmy jak najszybciej zobaczyć efekt, popróbować różnych wizualizacji, zastosować filtry, jakich wcześniej nie widzieliśmy. Nie dajmy się jednak pokusie pójścia na skróty, bo z doświadczenia wynika, że to zawsze do nas wróci i zwielokrotni nakład pracy. Poświęćmy trochę więcej czasu danym źródłowym.

Dane dotyczące wcześniejszych dni pobieramy ze strony:

https://github.com/CSSEGISandData/COVID-19/tree/master/csse_covid_19_data/csse_covid_19_time_series

Są to trzy pliki .csv

25 - Power BI w analizie danych dotyczących pandemii COVID-19

Dlaczego, pobieramy stąd tylko dane historyczne, czyli starsze niż wczorajsze? Ponieważ są aktualizowane rzadko i nieregularnie. Musimy do nich dołączyć inne źródło, czyli:

https://www.worldometers.info/coronavirus/

26 - Power BI w analizie danych dotyczących pandemii COVID-19

Power BI posiada świetne narzędzia do web scrappingu, więc po kliku kliknięciach, mamy dane w tabelach. No właśnie, w tabelach… o różnej strukturze. Musimy je przekształcić i połączyć, pamiętając że każda struktura może ulec zmianie wprowadzonej przez naszego dostawcę danych. Co powiecie np. na zmianę plików .csv na dzień przed opublikowaniem raportu? To wydarzyło się naprawdę. Przecież nikt nie obiecywał, że nie będzie zmian, w końcu dane są „gorące” i każdy chce je oglądać na swój sposób.

No dobrze, mamy 5 źródeł, nie 2 jakby się mogło wydawać. Coś co zadziała na plik …confirmed_global.csv, niekoniecznie musi zadziałać w …recovered_global.csv. Takim przypadkiem w dniu 26.03.2020 przed południem była różnica, w zapisaniu daty, jeden plik miał daty w formacie d/mm/rr, drugi d/mm/rrrr. W momencie, gdy to czytasz, formaty mogą być już spójne.

Przystępujemy do przekształceń, korzystając z pełni dobrodziejstw narzędzia jakim jest Power Query Editor. Nie będziemy rozpisywać się szczegółowo, jak przekształcone zostały te źródła, ale ogólna zasada jest taka, że pilnujemy kolejności, bo nieprawidłowa kolejność może wydłużyć ładowanie. To nie parsowanie SQL, gdzie mamy szereg wbudowanych narzędzi optymalizujących zapytanie. W zamian dostajemy kontrolę nad każdym krokiem przekształcenia i możemy je modyfikować i przestawiać. Nie zapominajmy przy tym o czytelnym nazywaniu kroków, pomoże nam to szybciej w przyszłości wprowadzić zmiany w procesie. Ogólne zasady mówią o tym, żeby zacząć od odchudzenia tabeli, najpierw redukcja kolumn (zakładamy że mają już jakieś nazwy), potem wierszy (wcześniej unpivot, jeżeli jest potrzeba). Potem przyglądamy się danym w komórkach, możliwe że trzeba dokonać przekształceń, wstępnych kalkulacji, oczyścić teksty, dodać kolumny, zmienić typ, itd. Na koniec jeszcze raz patrzymy czy potrzebujemy wszystkich kolumn, układamy je w pożądanej kolejności i voilà.

Jeżeli w przyszłości zajdzie potrzeba wprowadzenia zmian, to pamiętajmy, że każdy krok to instrukcja języka M, którą możemy podejrzeć dla każdego kroku tutaj:

27 - Power BI w analizie danych dotyczących pandemii COVID-19

A całe query, możemy zobaczyć tutaj:

28 - Power BI w analizie danych dotyczących pandemii COVID-19

Przy czym nie polecamy edycji w Advanced Editor, ponieważ stracimy podział na kroki.

No dobrze, łączymy te nasze 5 tabelek w jedną, powiedzmy faktową i temat przygotowania danych źródłowych się kończy, prawda? Otóż, nieprawda. Pomińmy tu etap modelowania, załóżmy, że mamy już wszystkie wymiary, relacje, miary. Robimy wizualizację w postaci mapy i okazuje się, że taki jeden kraj graniczący od południa z Polską jest białą plamą, nieskażoną wirusem, czy aby na pewno?

Mapa Czech

No przecież, dane w źródłach są:

Wycinek danych dotyczący Czech

Widzicie to? Od tej pory należy przejrzeć wszystkie białe plamy na mapie świata, sprawdzić wszystkie nazwy krajów jakie dostaliśmy ze źródeł i dopasować je do mapy, dosłownie zmapować ?.

Pożądany efekt uzyskaliśmy tworząc w Power Query funkcję, zbierającą wszystkie niezgodności w serię poleceń replace value:

31 - Power BI w analizie danych dotyczących pandemii COVID-19

32 - Power BI w analizie danych dotyczących pandemii COVID-19

Teraz możemy użyć serii przekształceń zarówno po stronie wymiaru Location, jak i tabeli faktowej, bądź jeszcze przed nią, jeżeli uznamy to za lepsze rozwiązanie.

Ale to nie koniec z poznawaniem geografii politycznej świata. Widzieliście pewnie inne raporty z przedstawianiem danych na mapie. Zwróciliście uwagę, czy np. Grenlandia jest tam zajęta przez wirus? Przecież mamy dla niej dane:

33 - Power BI w analizie danych dotyczących pandemii COVID-19

Musimy zrobić listę wyjątków, gdzie Province/State chcemy żeby było traktowane na równi z Country. W tym celu w Power Query robimy listę, najlepiej statyczną, bez powiązań z danymi źródłowymi, nie chcemy tzw. Circular dependency.

34 - Power BI w analizie danych dotyczących pandemii COVID-19

a naszym nowym Country Region staje się kolumna powstała w ten sposób:

35 - Power BI w analizie danych dotyczących pandemii COVID-19

Na koniec sprawdzamy, czy wszystkie lokalizacje z danych da się przedstawić na mapie i czy wszystkie tak naprawdę warto przedstawiać w zestawieniach. Uważny czytelnik zwrócił uwagę na listę i zawarte na niej dane ze słowem Princess w nazwie. Czy to kraj, czy prowincja, czy jakaś mała wyspa? Nie, to statek wycieczkowy ?. Na chwilę obecną te dane nie są ładowane do raportu, ale usuwane są na jednym z ostatnich etapów, być może zmienimy zdanie i będziemy je ładować. Ładujemy model, kontrolujemy czas ładowania i mamy nadzieję, że struktura danych źródłowych nie będzie zmieniać się zbyt często. No, ale na wszelki wypadek cały czas kontrolujemy źródła i przeglądamy wykresy w poszukiwaniu niezgodności, przy okazji coraz więcej dowiadując się o rozprzestrzenianiu się COVID-19.

Po załadowaniu danych do Power BI musimy stworzyć model. Nie mamy żadnej bazy danych więc zakładamy, że naszą bazą danych będzie plik .pbix, który dodamy do listy zestawów danych na serwisie Power BI. Raporty będą podłączane do opublikowanego zestawu danych, dzięki temu mamy jedno źródło danych. Jeden model, a w nim sprawdzone i przetestowane miary. Jeśli znajdziemy jakiś błąd w modelu lub będziemy chcieli go zmienić wystarczy zmienić plik źródłowy z zestawem danych i podmienić go we współdzielonym katalogu OneDrive.

Dane jakie znajdują się w plikach źródłowych przedstawiają całkowitą wartość Potwierdzonych zakażeń (Confirmed), przypadków śmiertelnych (Deaths) i przypadków wyzdrowień (Recovered) dla danego kraju i dnia. To powoduje, że praktycznie nie mamy w modelu prostych miar używających agregację sumującą.

Poniżej przedstawiamy model jaki na tę chwilę został stworzony.

36 - Power BI w analizie danych dotyczących pandemii COVID-19

Stworzone miary zgrupowane w 2 grupy World Statistic i Statistic posłużyły do stworzenia prezentowych wyżej raportów.

To tyle ile udało nam się zrobić w ciągu kilku dni. Pracujemy nad innymi ciekawymi wizualizacjami, które dodamy w najbliższym czasie. Pewnie powstanie kolejny materiał na temat tworzenia własnych wizualizacji. ?

Mieliśmy także trochę problemów z odświeżaniem danych z pliku .pbix umieszczonym w serwisie OneDrive. Chyba natrafiliśmy na błąd, który trzeba zgłosić do Microsoftu, ale to temat na kolejny artykuł. ?


Analizę i artykuł przygotowali specjaliści z Centrum Kompetencyjnego BI w Sii.

5/5 ( głosy: 11)
Ocena:
5/5 ( głosy: 11)

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Może Cię również zainteresować

Pokaż więcej artykułów

Bądź na bieżąco

Zasubskrybuj naszego bloga i otrzymuj informacje o najnowszych wpisach.

Otrzymaj ofertę

Jeśli chcesz dowiedzieć się więcej na temat oferty Sii, skontaktuj się z nami.

Wyślij zapytanie Wyślij zapytanie

Natalia Competency Center Director

Get an offer

Dołącz do Sii

Znajdź idealną pracę – zapoznaj się z naszą ofertą rekrutacyjną i aplikuj.

Aplikuj Aplikuj

Paweł Process Owner

Join Sii

ZATWIERDŹ

This content is available only in one language version.
You will be redirected to home page.

Are you sure you want to leave this page?