Co widać w lesie losowym?


Miesiąc temu ruszył MI2DataLab, kuźnia/warsztat z narzędziami do analizy danych.
Dzisiaj mieliśmy pierwszą, po oficjalnym otwarciu, obronę pracy magisterskiej w grupie MI2.

Aleksandra Paluszyńska z MIM UW obroniła pracę Structure mining and knowledge extraction from random forest with applications to The Cancer Genome Atlas.
W pracy opisała metodologię stojącą za opracowanym przez nią pakietem randomForestExplainer. Pakiet służy do wizualnej diagnostyki lasów losowych. Analizy ważnych zmiennych, ważnych interakcji, brzegowych zależności itp.

Pracę przeczytać można tutaj.

Pakiet można pobrać i zainstalować z CRAN lub GitHuba.

Krótka winietka opisująca pakiet jest dostępna tutaj.

Z pakietu warto skorzystać – już żaden las losowy nie będzie miał przed nami tajemnic.

Wielka Warszawa będzie miała 22 gminy!

Dzisiaj jest 1 kwietnia, więc sami rozumiecie. Pomimo to, wszystkie poniższe obliczenia są oparte o analizy rzeczywistych danych. Wyniki są w pełni repRodukowalne a skrypty R dostępne tutaj.

Wiele się w mediach pisze o projekcie ”Wielka Warszawa”, ale brakuje w tych dyskusjach konkretnych liczb. Jak wielka powinna być ta wielka Warszawa? Oczywiście największa na świecie (t.j. większa niż inne stolice), ale czy jeszcze większa? (nie większa niż Polska, ale o ile mniejsza?) Temu zagadnieniu poświęcony jest ten wpis.

Nie wiadomo po co powiększać stolicę, nie widać poparcia wśród mieszkańców, a wyniki referendum w Legionowie pokazują sprzeciw. Na potrzeby dalszego wpisu przyjmijmy, że chodzi o powiększenie Warszawy aby zoptymalizować obszar na którym poparcie w wyborach samorządowych dla partii PiS będzie największe (moglibyśmy to policzyć też dla dowolnej innej partii, ale obecnie tylko jedna partia ma zakusy by ten obszar zmieniać). Dodatkowo załóżmy, że środek obszaru jest w centrum Warszawy a sam obszar składa się gmin, których środki są w okręgu o promieniu X. Nasz problem redukuje się do zagadnienia: jak znaleźć X.

Ze tej strony pobieram wyniki wyborów samorządowych z roku 2014. Z tego pliku interesuje mnie dla każdej gminy liczba oddanych ważnych głosów oraz liczba głosów oddanych na partię PiS.
Z tej strony pobieram mapę z kształtami i współrzędnymi gmin.
Trochę R-magii i mamy taki wykres.

wtre

Na powyższym wykresie zaznaczyliśmy ile osób głosowało na PiS vs. na inny komitet w zależności od tego jak duży obszar wokół Warszawy rozważamy.

Jeszcze mało widać, unormujmy więc te dwie wartości i zobaczymy jak zmienia się procent osób głosujących na PiS w wyborach samorządowych 2014 w zależności od odległości od centrum Warszawy.

wpromien2

Ciekawe. Ta dziwaczna funkcja ma maksimum i to w całkiem niedużym promieniu. W Warszawie poparcie dla KW PiS jest mniejsze niż w okolicznych gminach. Ale gdy promień znacząco się zwiększy to okazuje się, że to poparcie znów maleje. Różnice nie są duże, rozpiętość tego wykresu to 2 punkty procentowe, ale zawsze coś. Mamy więc optymalny promień, zawierający 21 gmin wokół Warszawy.

Poniżej mapka z zaznaczonymi gminami w ,,optymalnym” okręgu. Procentem zaznaczono procent głosów na KW PiS wśród wszystkich ważnych głosów.

Czy więc tak będzie wyglądała Wielka Warszawa?

wwarszawa2

PS: Procent mandatów zdobytych przez komitety wyborcze jest dla dużych komitetów większy niż procent poparcie liczony na głosach.
PS2: Trzy najbliższe gminy, które się nie załapały to: Wiązowna, Jabłonna i Piaseczno.

Przewodnik po pakiecie R przetłumaczony na Python


Kody R, wykorzystywane w czterech rozdziałach ,,Przewodnika po pakiecie R”, są dostępne jako pliki knitra na tej stronie.

Krzysztof Trajkowski wykonał niesamowitą pracę, wszystkie te kody przetłumaczył na Python!
Można teraz zestawić przykłady z tych samych podrozdziałów Przewodnika i zobaczyć jak daną operacje wykonać w R a jak w Pythonie.
Tłumaczenia przykładów z Przewodnika na Python, również w formie skryptów knitrowych, znajdują się na tej stronie.

Nie są to zwykłe tłumaczenia!
Przykładowo, rozdział 5 ,,Przewodnika po pakiecie R” dotyczy bibliotek lattice, ggplot2 i graphics – trzech podstawowych systemów dla grafiki w R. W tłumaczeniu tego rozdziału, które wykonał Krzysiek, opisywana jest biblioteka seaborn bazująca na matplotlib, w której udało się odtworzyć całkiem wiernie zdecydowaną większość grafik eRowych (jeden z przykładów poniżej).
A niektóre grafiki, muszę przyznać, wyglądają ciekawiej niż oryginały.

PrzewodnikR_python

Krzysiek przygotował też dokument ,,Wprowadzenie do obliczeń w Pythonie”, dostępny jako pdf na tej stronie.

DIY – cheat sheets

I found recently, that in addition to a great list of cheatsheets designed by RStudio, one can also download a template for new cheatsheets from RStudio Cheat Sheets webpage.
With this template you can design your own cheatsheet, and submit it to the collection of Contributed Cheatsheets (Garrett Grolemund will help to improve the submission if needed).

Working on a new cheatsheet is pretty enjoying. You need to squeeze selected important stuff into a quite small surface like one or two pages.
Lots of fun.
I did it for eurostat and survminer packages (cheatsheets below).
And would love to see one for caret.

Mapy statystyczne. Opracowanie i prezentacja danych. GUS

Dzisiaj obchodzimy Dzień Statystyki Polskiej.
I tak się złożyło, że od Macieja Beręsewicza dostałem też link do bardzo ciekawego podręcznika GUS: Mapy statystyczne. Opracowanie i prezentacja danych (więcej informacji tutaj).

Podręcznik to ponad 250 stron podzielonych na 6 głównych rozdziałów. W środku jest wiele ciekawych grafik jak i wiele przykładów poprawnych i niepoprawnych opracowań. Nie trzeba się z każdym przykładem zgadzać, ale warto każdy z nich znać. Dla kartografów to pozycja obowiązkowa ale i statystykom nie zaszkodzi.

PS: Pamiętajcie o dzisiejszych trzecich urodzinach SERa. Siłą R jest jego energiczna i rozbudowana społeczność użytkowników i developerów. Dzisiaj świętujemy.

Sprawozdania krajowe Komisji Europejskiej

Marcin Grynberg zwrócił moją uwagę na niedawno opublikowane sprawozdania krajowe Komisji Europejskiej poświęcone (między innymi) sytuacji ekonomicznej krajów członkowskich. Sprawozdanie poświęcone Polsce jest dostępne tutaj.
Nieduże (niecałe 50 stron plus załączniki) ale konkretne i ciekawe.
Przykładowo, można w nim znaleźć informacje dotyczące konsekwencji reformy emerytalnej i jej wpływu na wysokość emerytury (polecam wykres 3.3.2) czy prognozy co do wysokości długu publicznego (polecam wykres 3.1.2).
Poniżej odniosę się do trzech innych wątków poruszanych w tym sprawozdaniu. Tematów związanych z nauką, badaniami i edukacją.


Po prawej wykres prezentujący wydatki publiczne na R&D (czy z polska BiR) zestawione z ilością wysoko cytowanych publikacji. Pozycja Polski w tym zestawieniu jest zaznaczona czerwoną kropką.
Komentarz nie jest chyba potrzebny, ograniczę się jedynie do cytatu ze sprawozdania: ‘Niewielki stopień komercjalizacji wyników badań naukowych oraz słabe powiązania między sektorem nauki i sektorem biznesu ograniczają zdolność innowacyjną gospodarki.’





Kolejny wykres, który zwrócił moją uwagę dotyczy liczby uczniów rozpoczynających naukę w 1 klasie szkoły średniej (wykres po lewej).
W 2019 roku ma to być ponad 350 tys. uczniów a w 2024 roku poniżej 100 tys uczniów.
Ponad 4x mniej.
Później te fale uderzą o wrota uczelni wyższych.
Konsekwencja szybkich reform poprzedniego rządu (między innymi dwa lata na przejście z wiekiem rozpoczęcia szkoły podstawowej na 6 lat) i galopujących reform obecnego (1 rok na przejście ze startem podstawówki na 7 lat).
Cytat z raportu: Reforma systemu szkolnictwa od września 2017 r. budzi szereg obaw wśród zainteresowanych podmiotów.


Niektóre wskaźniki wglądają dobrze. Bezrobocie nadal spada, płace średnie (powoli) rosną.
Cytat: Przewiduje się, że spodziewane niekorzystne zmiany na rynku pracy spowodują szybszy wzrost płac i potencjalnie niedobór pracowników.
Cytat: Po kilku latach silnego wzrostu dochodów nierówności zmniejszyły się i ich poziom jest obecnie niższy od średniej unijnej.




Uważam, że jednym z największych wyzwań jest demografia. Więc i to zestawienie wykresów kończę rysunkiem związanym z prognozami demograficznymi. Zgodnie z prognozą zakładającą zerową migrację w ciągu 35 lat liczba osób w wieku produkcyjnym zmniejszy się o 19%. A czy produktywność i innowacyjność przyszłych pracowników zwiększy się wystarczająco by zrekompensować mniejsza liczbę rąk do pracy?



Całe sprawozdanie można pobrać i w języku angielskim i polskim.

Hans Rosling 27 VII 1948 – 7 II 2017

Screen Shot 2017-02-07 at 23.48.29

Dzisiaj umarł Hans Rosling, ikona wizualizacji danych, założyciel fundacji Gapminder i prawdopodobnie najbardziej rozpoznawalny i wpływowy statystyk XXI wieku (jeden ze 100 najbardziej wpływowych ludzi świata według Times 2012).

Znany między innymi dzięki swoim wystąpieniom na TED i TEDx. Najbardziej znane wystąpienia można zobaczyć tutaj.

Najszczęśliwsze zdjęcia posłów i posłanek

Jakiś czas temu, na RBloggers pokazano jak z poziomu R używać Microsoft Cognitive Services API. Co to za API? Zbiór usług do pracy z obrazem, wideo lub tekstem. Przykładowo Ben Heubl użył Emotion API aby ocenić emocje na zdjęciach kandydatów na prezydentów USA a David Smith użył Face API aby oceniać płeć i wiek programistów na GitHub na bazie awatarów.

Super zabawka. Miałem chwilę czasu, stwierdziłem, że się nią pobawię.
Tylko skąd wziąć publicznie dostępny zbiór zdjęć?
Z pomocą przyszła strona Sejmu. Można z niej pobrać profilowe zdjęcia posłów i posłanek.

Korzystanie z Microsoft Cognitive Services okazuje się być bardzo proste, wystarczy użyć pakietu xml2 i funkcji read_html().

Emotion API dla każdej twarzy ze zdjęcia wyznacza scory dla ośmiu emocji (anger, contempt, disgust, fear, happiness, neutral, sadness, surprise). Ale dla zdjęć profilowych posłów i posłanek praktycznie jedyne niezerowe scory otrzymuje się w emocjach happiness i neutral. Okazuje się, że niektóre zdjęcia posłów i posłanek zdobywają wyższe skory w obszarze happiness a inne w neutral.
Co ciekawe posłanki mają znacznie częściej zdjęcia wysoko ocenione w skali happiness. Posłowie mają zdjęcia zeskorowane mniej więcej pół na pół jako happy i neutral.

Poniżej wyniki w rozbiciu na kluby. Proszę traktować to jako zabawkę z Cognitive Services i nie wyciągać niewiadomo jakich wniosków. Narzędzie jak narzędzie, ma jakąś niedokładność. W pionie, kluby uporządkowane ze względu na udział procentowy posłów/posłanek zescorowanych na zdjęciach jako najszczęśliwsi.

Screen Shot 2017-01-18 at 08.36.25

Co nowego w ,,Przewodnik po pakiecie R – wydanie 4.0”?

Przewodnik1234okladka
Czwarte wydanie ,,Przewodnika po pakiecie R” trafiło do księgarń w połowie grudnia. Pierwszy nakład był mały i szybko się skończył, ale od połowy stycznia Przewodnik jest ponownie dostępny.
A ja mam trochę czasu by napisać co nowego można znaleźć w czwartym wydaniu.

Zmian jest wiele. Kierunki zmian są dwa. Po pierwsze, obniżyć próg wejścia dla osób, które dopiero zaczynają przygodę z analizą danych. Łagodnym wprowadzeniem w temat są pierwsze dwa rozdziały. W upraszczaniu tej części przydały się doświadczenia z Pogromców Danych (2000+ osób) i z różnych szkoleń dla nie-programistów.
Drugi kierunek zmian to szersze wprowadzenie do pakietów z grupy tidyverse oraz ułatwień, które oferuje RStudio. Weterani R mają różne ulubione edytory i rozwiązania codziennych problemów, ale dla osób rozpoczynających przygodę z pewnością najefektywniejszą drogą wejścia jest połączenie RStudio i pakietów z tidyverse. Również osoby pracujące z R od lat mogą z zaskoczeniem odkryć, że praca z datami jest bardzo prosta dzięki pakietowi lubridate (ok, lubridate ma już kilka lat na karku) lub że praca z czynnikami jest prosta dzięki pakietowi forcats.

Wzorem poprzednich wydań, pierwsze 3 rozdziały (150 stron) są dostępne bezpłatnie jako pdf online tutaj.

Rozdział 1 – Wprowadzenie
W pierwszym rozdziale znajduje się krótki opis narzędzia jakim jest język R i edytor RStudio.
Zaczynam od pytania ,,Dlaczego warto poznać R?”,
Czytelnik może zapoznać się z przykładowymi fragmentami kodu R do pobierania danych z internetu (z nadzieją na reakcję czytelnika ,,WoW, to się da zrobić w 5 linijkach! Ja też tak chcę!!!”), wizualizacji pobranych danych oraz prostego modelowania statystycznego. Wszystko w zaledwie kilku linijkach kodu, możliwe dzięki dużej ekspresji języka.
Jeżeli ktoś jeszcze nie wie, czy praca z R jest dla niego, ten rozdział pomoże podjąć decyzję.
Jest tutaj też krótka historia rozwoju R, od początków S po lawinowy rozwój R w ostatnich latach/miesiącach.

Czytaj dalej Co nowego w ,,Przewodnik po pakiecie R – wydanie 4.0”?

MIMUW vs SuperFarmer

screen-shot-2017-01-04-at-23-02-08
W 1997 roku DeepBlue (IBM) wygrał z mistrzem szachowym Garri Kasparowem.
W 2011 roku Watson (IBM) wygrał w Jeopardy! z dwoma mistrzami Bradem Rutterem i Kenem Jenningsem.
W 2016 roku AlphaGo (Google) wygrał w go z jednym z najlepszych graczy Lee Sedolem.
A w tym semestrze, pod przykrywką zajęć z programowania w R i wizualizacji danych, studenci z MIM UW walczą z grą SuperFarmer. Szukamy strategii wygrywającej (w jakimś sensie).

SuperFarmer to gra wydana przez Granna na bazie gry Hodowla Zwierzątek, którą opracował matematyk, Karol Borsuk, profesor Uniwersytetu Warszawskiego. Zasady są dosyć proste, przez co można grać nawet z małymi dziećmi. Gra jest bardzo dynamiczna i przyjemna nawet dla wytrawnych / starszych graczy.

Póki co, najlepsza znaleziona przez studentów strategia ma medianowy czas gry 34 kroki (tj. w grze jednoosobowej dla najlepszej strategii, połowa gier kończy się zwycięstwem przed 34 krokiem).

rozkladliczbyruchow

Czytaj dalej MIMUW vs SuperFarmer