środa, 15 kwietnia 2015

Analizy przestrzenne dla korporacji taksówkarskich



W ostatnich dniach zbudowałem w programie IBM SPSS Modeler przepływ danych, którego celem była analiza rozmieszczenia klientów hipotetycznej korporacji taksówkarskiej Algomine Taxi oraz kierowców zatrudnionych w tej korporacji. Gotowy przepływ danych wyglądał następująco:


Na potrzeby przeprowadzonej analizy założyłem, że dane o położeniu klientów i kierowców pobieram dzięki aplikacji mobilnej zainstalowanej na ich telefonach. Zakładam, że zarówno klienci, jak i kierowcy zgodzili się na wykorzystanie danych o ich położeniu w celu poprawy jakości świadczonych usług. Korporacja Algomine Taxi działa w Warszawie, a analizowane dane dotyczą ostatniego dnia roku 2013.

Struktura danych o klientach oraz kierowcach jest następująca:


Przed przystąpieniem do części głównej analizy wykorzystałem, opisywany we wpisie Możliwości wykorzystania języka R w środowisku IBM SPSS węzeł Plot Heatmaps.

Węzeł ten umożliwił mi budowę map natężeń pokazujących uśrednione dla całego dnia położenie kierowców


oraz klientów.


Jak widać obie grupy rozlokowane są głównie w dzielnicy Ochota, natomiast klientów cechuje większe rozproszenie. W dalszej części analizy skoncentowałem się na poszukiwaniu miejsc, w których jest najmniejsze pokrycie klientów przez taksówki. 

W pierwszym kroku analizy wykorzystałem, wprowadzony w edycji 16 programu IBM SPSS Modeler, węzeł Siatka czasoprzestrzenna. Węzeł ten umożliwił mi podział analizowanego obszaru na przestrzenie, których gęstość wyznaczana jest przez kwadrat o zadanej długości boku oraz o zdanym odstępie czasowym. W moim przypadku jest to odpowiednio 2,4 km oraz 10 minut.


Każda stworzona przestrzeń dostaje swój unikalny identyfikator np: u3qcj|2013-12-31 07:50:00|2013-12-31 08:00:00, gdzie pierwsze 5 znaków to tak zwany geohash przestrzeni, a pozostałe znaki odnoszą się do odstępu czasowego.

Następnie korzystając z węzła Agregacja obliczyłem zagęszczenia klientów i taksówek w każdym z pól siatki, dane te połączyłem ze sobą korzystając z węzła Łączenie, a następnie węzły Wyliczanie, Selekcja i Agregacja posłużyły mi do wynaczenia obszarów o najgorszym pokryciu. Do wyznaczenia środków tych obszarów ponownie użyłem węzła Wyliczanie oraz nastepująych funkcji:

stb_centroid_longitude(substring(1,5,STB_GH5_10MINS))
stb_centroid_latitude(substring(1,5,STB_GH5_10MINS))

Opisane we wpisie Możliwości wykorzystania języka R w środowisku IBM SPSS węzły Reverse GeocodingPlot Spatial Data


umożliwiły mi odpowiednio wyznaczenie dokładnych adresów tych punktów


oraz naniesienie ich na mapę.



Teraz już wiem, że w promieniu 2,4 km od adresu ul. Prosta 69 aż 91 razy podczas dnia liczba potencjalnych klientów była większa od liczby taksówek. Dzięki temu firma Algomine Taxi wie, gdzie powinna rozmieścić swoich kierowców. Idąc dalej firma Algomine Taxi będzie wykonywała analogiczne analizy w czasie rzeczywistym lub zbliżonym do rzeczywistego, co zapewni optymalne rozmieszczenie pojazdów i zminimalizuje czas oczekiwania klientów.

Podsumowując, w dzisiejszym wpisie starałem się pokazać, w jaki sposób wyobrażam sobie działanie algorytmów stosowanych przez korporacje przewozowe, o których za sprawą firmy Uber zrobiło się niedawno bardzo głośno. Z drugiej strony chciałem pokazać, jak w praktyczny sposób można zastosować węzeł Siatka Czasoprzestrzenna oraz dodatkowe węzły dostępne na stronie analyticszone.



P.S. Szczegółowe informacje dot. technologii IBM SPSS można znaleźć na stronie: 
http://spss-polska.pl/

Odszkodowania za opóźnione loty http://www.pay4delay.pl/
Odszkodowania za odwołane loty  http://www.pay4delay.pl/
Odszkodowani za odwołany lot  http://www.pay4delay.pl/
Odszkodowanie za opóźniony lot  http://www.pay4delay.pl/
Opóźniony lot odszkodowanie  http://www.pay4delay.pl/
Odwołany lot odszkodowanie  http://www.pay4delay.pl/
Overbooking odszkodowanie  http://www.pay4delay.pl/
Opóźniony samolot odszkodowanie  http://www.pay4delay.pl/