Program 500+ a prezentacja danych na tle mapy

Na portalu wp.pl trafiłem pod artykułem Platforma celowo opóźnia wypłaty 500+? Mocne słowa posła PiS na taką grafikę.

Screen Shot 2016-05-27 at 09.53.19

Artykuł jest o tym, że w miastach w których wygrało PO procent rozpatrzonych wniosków w programie 500+ jest znacznie mniejszy niż w miastach w których wygrał PiS (pomińmy na chwilę to, że w Polsce mamy więcej niż 8 dużych miast).

Z powyższego wykresu najbardziej w oczy rzuca się to, że z tych 8 miast PO wygrało w 4 największych a PiS w 4 najmniejszych.
Rzuca się to w oczy dlatego, że liczba złożonych wniosków jest proporcjonalna do obwodu zewnętrznego brzegu obwarzanka a nie go jego pola.
Liczby, które są główną treścią artykułu, czyli procent rozpatrzonych wniosków, odpowiadają zaznaczonemu ciemniejszym kolorem wycinkowi okręgu.
Utrudniono porównywanie tych wycinków na kilka sposobów. Jednym jest to, że na wycinkach są liczby które przykrywają część informacji, w przypadku Ostrołęki skutecznie utrudniając jakiekolwiek porównania. Okręgi są umieszczone w różnych punktach (a szkoda, a mogłyby mieć wspólny środek).
Liczby umieszczone są w różnych miejscach grafiki, przez co trudno wykonać na nich jakieś sensowne operacje, jak np. policzyć sumaryczną liczbę przyznanych wniosków.

Te same informacje można przedstawić np. na poniższym wykresie mozaikowym. Można prosto odczytać zarówno procent rozpatrzonych wniosków, liczbę złożonych i rozpatrzonych wniosków.

Screen Shot 2016-05-29 at 08.52.21

Mapy są nowymi wykresami kołowymi – Jak pokazywać graficznie zmianę poparcia dla partii prawicowych w Europie

Kiedyś Excel pozwalał na łatwe tworzenie wykresów kołowych czy stożkowych i wykresy takie zaczęły pojawiać się wszędzie bez względu na to czy ten sposób prezentacji był odpowiedni czy nie.
Dzisiaj coraz więcej bibliotek pozwala na tworzenie prostych kartogramów i podobnie jak piechart’y są one stosowane bez względu na to czy ma to sens czy nie.

Przykład? Porównajmy dwa sposoby prezentacji tych samych danych – animowany interaktywny kartogram vs. wykres paskowy.

Tydzień temu (22 maja) New York Times przedstawił interaktywny wykres pokazujący jak zmieniało się poparcie dla różnych partii prawicowych w Europie przez ostatnie 20 lat. Podział na prawicę/lewicę często nie jest oczywisty (światopogląd vs. gospodarka), ale poniżej będzie o sposobie prezentacji a nie o samych danych.

Screen Shot 2016-05-28 at 10.18.10

Dwa dni później (24 maja) wykres komentuje wyborcza.pl. W artykule pojawia się statyczna kopia wykresu z NYT. Praktycznie taka jak powyżej, ze zdjęcia nie sposób odczytać która partia została zakwalifikowana jako prawica, z oryginalnej grafiki NYT można.

Dwa dni później (26 maja) te same dane przedstawia Polityka korzystając z biblioteki ESRI do interaktywnych map. Procent poparcia zaznaczono gradientem kolorów (nie do końca jasna jest wartość w legendzie ’<0', może nawiązanie do polityka lub piosenki). Dane dla kolejnych lat można porównać przesuwając suwak z latami. Screen Shot 2016-05-28 at 10.01.54

Z tych sposobów prezentacji znacznie czytelniejszy, niosący więcej informacji, bogatszy w istotną treść jest ten, który pojawił się w NYT.

ED-Award dla Pogromców Danych

ED-Awards (European Design Awards) to corocznie przyznawane nagrody za najciekawsze projekty graficzne. Nagrody są przyznawane w różnych kategoriach, logo, książka, aplikacja itp.

Miło jest mi napisać, że w kategorii Brand Logo znak Pogromców Danych zdobył srebną nagrodę.

Znak wykonało studio Podpunkt.

W tym roku to studio zaprojektowało bogato ilustrowany zbiór opowiadań o Becie i Bicie. Już wkrótce napiszę o nich na blogu (też napiszę jak te opowiadania zdobyć).

Dwa kursy wykonane w ramach Pogromców Danych są wciąż dostępne na przez www.

Concerto, czyli R dla psychologów

Dzisiaj Maria Rafalak przedstawi nowinkę prosto ze świata psychometrii, czyli o platformie Concerto. Opartego o R wsparcia w prowadzeniu badań z użyciem testów CAT. Na początku będzie trochę o samym narzędziu, a w drugiej części o wrażeniach z pracy z nim.


Maria Rafalak
Pracownia Testów Psychologicznych

Concerto to platforma przygotowana przez Centrum Psychometryczne Uniwersytetu Cambridge w Wielkiej Brytanii. Concerto jest projektem opensource’owym dedykowanym dla psychologów (oraz innych specjalistów) zbierających dane w środowisku online. Jego największą zaletą jest możliwość łatwego tworzenia testów adaptacyjnych CAT (Computer Adaptive Tesing), czyli testów, w których dobór kolejnych pytań jest uzależniony od odpowiedzi udzielanych przez osobę badaną.

Rozwiązanie bazuje na silniku obliczeniowym R. Domyślnie w platformie zainstalowane są pakiety rjson, RMySQL, session oraz catR. W razie potrzeby istnieje możliwość instalacji innych pakietów niezbędnych do obliczeń.
Concerto posiada przejrzysty interface (dostępny również w wersji polskiej), który ułatwia tworzenie testów użytkownikom nie zaznajomionym z programowaniem.

concerto1

Czytaj dalej Concerto, czyli R dla psychologów

Jutro SER a dzisiaj trendy na rynku pracy dla Data Scientistów

Jutro o godzinie 18 na MiNI (Koszykowa 75, Warszawa) zaczynamy 18. (o matko, już osiemnastka!) Spotkania Entuzjastów R. Będzie i o programowaniu z Rcpp i o analizie danych. Można zarejestrować się tutaj.
Zapraszamy!

Współorganizatorka SERów, Olga Mierzwa, miała wczoraj prezentację o rynku pracy dla Data Scientistów. Poniżej kilka zdań od Olgi.

Screen Shot 2016-05-18 at 18.56.29


Olga Mierzwa

Wczoraj odbyło się 15 spotkanie Data Science Warsaw, podczas którego miałam przyjemność opowiadać o trendach na rynku pracy data science na podstawie doświadczeń z współprowadzenia datahero.tech. Na meetup przyszło ok. 80 osób, a oprócz mnie o komunikowaniu danych opowiadali Piotr Arak z Polityka Insight i Vadim Makarenko z BiqData.
Prezentacja „Trendy rynku pracy Data Science” przedstawiała sytuację na rynku pracy w Polsce w oparciu o analizy pracuj.pl i datahero.tech. Pokazała przykładowe informacje jakie można wyciągnąć analizując GitHuba, Stackoverflow oraz Upwork.

Czy jesteś ciekaw jakie funkcje i pakiety R wykorzystują polscy użytkownicy GitHuba?
O co najczęściej pytają użytkownicy na Stackoverflow pracując w R i Pythonie? A co jest już passé?
A może ile zarabia Data Science Freelancer w Polsce czy na świecie?

Prezentacja dostępna jest pod linkiem: http://slides.com/olgamierzwa/deck-1.

Podziękowania dla Grupy MI2 za udostępnienie analiz pracuj.pl.

Kto jest młodszy a kto jest starszy od Ciebie?

Na blogu Flowingdata umieszczono świetną grafikę, prezentująca dla danego wieku jaki procent populacji jest starszy a jaki młodszy od ciebie.

Struktura wieku populacji w Polsce jest inna, ale można zobaczyć jak to te proporcje wyglądają za oceanem.

Np. kto by przypuszczał, że dla 35 latka okazuje się, że 50% populacji jest starsza a połowa młodsza?

Screen Shot 2016-05-12 at 20.53.43

All your models belong to us: how to combine package archivist and function trace()

Let’s see how to collect all linear regression models that you will ever create in R.

It’s easy with the trace() function. A really powerful, yet not that popular function, that allows you to inject any R code in any point of a body of any function.
Useful in debugging and have other interesting applications.
Below I will show how to use this function to store a copy of every linear model that is created with lm(). In the same way you may store copies of plots/other models/data frames/anything.

To store a persistent copy of an object one can simply use the save() function. But we are going to use the archivist package instead. It stores objects in a repository and give you some nice features, like searching within repository, sharing the repository with other users, checking session info for a particular object or restoring packages to versions consistent with a selected object.

To use archivist with the trace() function you just need to call two lines. First one will create an empty repo, and the second will execute ‘saveToLocalRepo()’ at the end of each call to the lm() function.

library(archivist)
# create an empty repo
createLocalRepo ("allModels", default = TRUE)
# add tracing code
trace(lm, exit = quote(saveToRepo(z)))

Now, at the end of every lm() function the fitted model will be stored in the repository.
Let’s see this in action.

> lm(Sepal.Length~., data=iris) -> m1
Tracing lm(Sepal.Length ~ ., data = iris) on exit 

> lm(Sepal.Length~ Petal.Length, data=iris) -> m1
Tracing lm(Sepal.Length ~ Petal.Length, data = iris) on exit 

> lm(Sepal.Length~-Species, data=iris) -> m1
Tracing lm(Sepal.Length ~ -Species, data = iris) on exit

All models are stored as rda files in a disk based repository.
You can load them to R with the asearch() function.
Let’s get all lm objects, apply the AIC function to each of them and sort along AIC.

> asearch("class:lm") %>% 
    sapply(., AIC) %>% 
    sort
4c3ae060f3aaa2509b2faf63d857358e 5c5751e36b31b2251d2767d96993320a 
                        79.11602                        160.04042 
ed2f4d257fd568c5c6f231fadc7aa645 
                       372.07953

The aread() function will download the selected model.

> aread("4c3ae060f3aaa2509b2faf63d857358e")

Call:
lm(formula = Sepal.Length ~ ., data = iris)

Coefficients:
      (Intercept)        Sepal.Width       Petal.Length        Petal.Width  
           2.1713             0.4959             0.8292            -0.3152  
Speciesversicolor   Speciesvirginica  
          -0.7236            -1.0235 

Now you can just create model after model and if needed they all can be restored.

Read more about the archivist here: http://pbiecek.github.io/archivist/.

Tu Data Science, tam Data Science

Gdzie nie spojrzeć tam Data Science. Poniżej kilka ciekawych źródeł, treści, na które się ostatnio natknąłem.

19.4% Data Scientistów w SERze

Paweł Przytuła na swoim blogu zrobił ciekawą analizę warszawskich meetupów. Bardzo ciekawy wpis zakończony zbiorem wykorzystanych do analizy narzędzi (!). Dowiedziałem się np. o wtyczce https://data-miner.io/.

masterR

Data Science a przemysł papierniczy

Skoro już mowa o SERze. Za tydzień, na najbliższym Spotkaniu Entuzjastów R Zygmunt Zawadzki (analityk danych) opowie o pakiecie Rcpp i powstającym pakiecie FSelectorRcpp do wyboru cech a Michał Janusz (data scientist) opowie jak wykorzystać R do wyszukiwania zależności w danych o procesie produkcji papieru.

Fabryki a Data Science

A skoro mowa o produkcji to na myśl przychodzi Łódź i oczywiście Data Science Łódź. Tydzień temu miałem przyjemność poprowadzić prezentację o wizualizacji danych i pakiecie ggplot (dostępna tutaj). Jak wizualizacja danych ma się do Data Science? W znanym diagramie Venna jest hacking, math i domain knowledge ale gdzie jest wizualizacja?

Rynek pracy dla Data Science

W ww. prezentacji jest kilka slajdów dotyczących analizy ofert pracy z pracuj.pl. Chcielibyście dowiedzieć się więcej? Przyjdźcie na prezentację Olgi Mierzwa z DataHero, która za tydzień będzie miała miejsce na Data Science Warsaw. Będą też prezentacje Piotr Araka z Polityka Insight i Vadima Makarenko z BIQdata. Trzy powody dla których warto tam być.

KNIME a Data Science

I jeszcze nawiązując do Data Science Łódź. Na kolejnym spotkaniu będzie referat o KNIME. Co to? Cytując z https://www.knime.org/about: KNIME Analytics Platform is the leading open solution for data-driven innovation, designed for discovering the potential hidden in data, mining for fresh insights, or predicting new futures.
Coś jest na rzeczy, ponieważ o KNIME będzie też referat na najbliższym PAZURZe.

Więcej o wizualizacji

Pisząc o Data Science trzeba też wspomnieć o Data Science Wrocław – już jutro. Między innymi będzie prezentacja poświęcona wizualizacji wielowymiarowych danych. I o eRce Kraków – za tydzień będą prezentacje poświęcone ryzyku, pierwsza o ryzyku śmierci, druga o ryzyku niespłacenia kredytu.

Dzieje się.

Line of best fit by eye

Screen Shot 2016-05-05 at 12.57.38
W ramach projektu Beta i Bit przygotowaliśmy zadanie na ważenie T-Rexa na podstawie pomiarów samych kości. Zadanie przygotowane dla klas 3-4 podstawówek, choć może być interesujące też dla starszych dzieci (będziemy testować). Więcej o tym zadaniu napiszę po 1 czerwca, wtedy startujemy szerzej z projektem B&B. Ale w skrócie zadanie polega na tym, że mając linijkę i pomiary innych zwierząt, można znaleźć całkiem dobre oszacowanie masy T-Rexa. Nie potrzebne do niego są ani wzory na regresję liniową ani nawet kalkulator. Można więc zacząć od budowania intuicji a później pokazać jak tę krzywą znaleźć w sposób optymalny.

Okazuje się, że taka intuicyjna metoda ma nawet swoją nazwę ,,Line of best fit by eye” lub ,,Informal line of best fit”.

W niektórych szkołach przedstawia się ją na etapie grade 8th (odpowiednik drugiej klasy gimnazjum w Polsce). Na khan academy lub youtube można znaleźć kilka przykładów (np. tutaj https://www.youtube.com/watch?v=9nE7j3ZZC_Q, ale jest takich materiałów więcej).

Można nawet znaleźć badania prowadzone na nauczycielach, weryfikujące ich gotowość do omawiania zależności w danych (np. ciekawy artykuł tutaj).

Na świecie więc takie zadania się praktykuje. Kto wie, może materiały z zagadkami Beta Bit trafią do szerszego użycia w polskich szkołach?