intsvy: PISA for research and PISA for teaching

The Programme for International Student Assessment (PISA) is a worldwide study of 15-year-old school pupils’ scholastic performance in mathematics, science, and reading. Every three years more than 500 000 pupils from 60+ countries are surveyed along with their parents and school representatives. The study yields in more than 1000 variables concerning performance, attitude and context of the pupils that can be cross-analyzed. A lot of data.

OECD prepared manuals and tools for SAS and SPSS that show how to use and analyze this data. What about R? Just a few days ago Journal of Statistical Software published an article ,,intsvy: An R Package for Analyzing International Large-Scale Assessment Data”. It describes the intsvy package and gives instructions on how to download, analyze and visualize data from various international assessments with R. The package was developed by Daniel Caro and me. Daniel prepared various video tutorials on how to use this package; you may find them here: http://users.ox.ac.uk/~educ0279/.

PISA is intended not only for researchers. It is a great data set also for teachers who may employ it as an infinite source of ideas for projects for students. In this post I am going to describe one such project that I have implemented in my classes in R programming.

I usually plan two or three projects every semester. The objective of my projects is to show what is possible with R. They are not set to verify knowledge nor practice a particular technique for data analysis. This year the first project for R programming class was designed to experience that ,,With R you can create an automated report that summaries various subsets of data in one-page summaries”.
PISA is a great data source for this. Students were asked to write a markdown file that generates a report in the form of one-page summary for every country. To do this well you need to master loops, knitr, dplyr and friends (we are rather focused on tidyverse). Students had a lot of freedom in trying out different things and approaches and finding out what works and how.

This project has finished just a week ago and the results are amazing.
Here you will find a beamer presentation with one-page summary, smart table of contents on every page, and archivist links that allow you to extract each ggplot2 plots and data directly from the report (click to access full report or the R code).

FR

Here you will find one-pagers related to the link between taking extra math and students’ performance for boys and girls separately (click to access full report or the R code).

ZKJ

And here is a presentation with lots of radar plots (click to access full report or the R code).

GMS

Find all projects here: https://github.com/pbiecek/ProgramowanieWizualizacja2017/tree/master/Projekt_1.

And if you are willing to use PISA data for your students or if you need any help, just let me know.

Storytelling w pracy badawczej analityka danych

MarekStaczek

Czy prezentacje statystyk lub narzędzi do analiz statystycznych mogą być porywające? Oczywiście, jeżeli tylko statystyki układają się w historię, a narzędzia służą odkryciu tej historii.

Najlepszym dowodem jest prezentacja Hansa Roslinga na TED 2006 wykorzystująca program Gapminder aby opowiedzieć o zmieniającej się demografii współczesnego świata.
Prezentacja ma ponad 10 lat, a wciąż oglądam ją z zainteresowaniem, ponieważ prof. Hans Rosling, jak nikt inny, zamienił rząd statystyk dotyczących dzietności i czasu życia w barwną wyprawę przez kontynenty i czas.

Idealnie pokazał przy tym możliwości narzędzia Gapminder (Trendalyzer), które kilka miesięcy później odkupił Google.

Warsztaty

Dlatego na wtorkowe seminarium badawcze grupy MI2DataLab zaprosiliśmy mistrza storytellingu – Marka Stączka, autora bloga http://stoslow.pl, oraz firmy szkoleniowej http://www.edisonteam.pl.

Magistranci, doktoranci i sympatycy naszej grupy mieli okazję przez godzinę uczestniczyć w warsztatach, a później mieliśmy sesję pytań i odpowiedzi.
Poniżej opiszę kilka wybranych rodzynków z tego spotkania.

Zainteresowani tematem znajdą sporo ciekawej treści na ww. stronach lub tutaj.

Po co?

Po co wykorzystywać storytelling w przypadku pracy badawczej? Gdy tworzymy nowe rozwiązania, algorytmy, narzędzia analizy danych, zależy nam by były one używane. Czasem wplecenie historii w opowieść o naszych algorytmach może pomóc. Dwa przykłady:

1) Przygotowujemy referat na konferencję. Przeciętna konferencja to 2-3 dni po 6-8 godzin wypełnionych 20-30 minutowymi referatami. W ciągu jednego dnia słyszymy o kilkunastu rozwiązaniach i w oczywisty sposób tylko kilka z nich zapamiętamy. Co zrobić aby to nasze rozwiązanie było zapamiętane? Spróbujemy znaleźć dla naszego rozwiązania znaleźć ciekawe zastosowanie!
Poświęćmy trochę czasu aby słuchacze dokładnie zrozumieli problem, który chcemy rozwiązać. Łatwiej będzie im zapamiętać nasze rozwiązanie gdy w pamięci będą mieli bardzo konkretną potrzebę, która do niego doprowadziła.
Nie tworzymy jeszcze jednego testu post-hoc, ale rozwiązujemy problem dotyczący istotności określania, które kraje mają istotnie różne wyniki w testach PISA.

2) Dobra historia ma bohaterów, których nazwy da się spamiętać. Opisując nasz nowy algorytm nadajmy mu też łatwą do zapamiętania nazwę. Bardzo często nazwy rozwiązań są bardzo długie, nie mieszczą się w jednej linii, długością przypominają streszczenie. ,,Odporny nieparametryczny test dla zbioru hipotez oparty o sekwencyjne kryterium wyboru grup.” Trudno tę nazwę odtworzyć po kilku minutach. Nawet jeżeli uda się komuś zrozumieć co nasze rozwiązanie robi, dobrze by było, by we właściwym czasie pamiętał też jak je znaleźć.

Czy zawsze?

Ciekawe wątki pojawiły się też podczas sesji z pytaniami.

1) Czy storytelling jest zawsze potrzebny? Czy do każdej prezentacji naukowej trzeba koniecznie szukać odpowiedniego story?
No cóż. Moim zdaniem nie.
Na przykład, kiedy jakość rozwiązania można łatwo ocenić za pomocą jednej, łatwo mierzalnej wartości, to lepiej się skupić na tej mierzalnej wartości.
Trzeba było mieć rozwiązanie z najmniejszym błędem predykcji, najmniejszą złożonością obliczeniową czy najlepszą kontrolę błędu?
Wystarczy pokazać, że nasze rozwiązanie jest najlepsze w tym kryterium.
Choć też warto pamiętać, że sytuacji w których jakość rozwiązania mierzy się łatwo jedną liczbą jest bardzo mało.

2) Jak szukać tej ciekawej historii dla naszego rozwiązania?
Gdy oglądamy dobrą prezentację to zazwyczaj nie widzimy, ile pracy trzeba było włożyć w jej przygotowanie. Zazwyczaj świetnych historii trzeba trochę poszukać. A jak już się znajdą to trzeba je doszlifować. Warto je więc opowiadać możliwe często.

Rytm miasta, czyli z jakimi danymi będziemy pracować na Urban Sensors hakaton

animation

Już we wtorek rozpocznie się Urban Sensors, czyli jednodniowy hakaton oparty o miejskie dane z nowej platformy VaVeL.

Poza położeniami autobusów i tramwajów, jedno ze źródeł danych dostępnych dla hakujących, to informacja o liczbie notyfikacji od telefonów komórkowych ze stacjami bazowymi.

datetime,zoneid,intensity,geom4326,geom3857
2017-09-04 00:00:00,1,0.02072913149322,"MULTIPOLYGON(((20.9832771275726 52.259601516439,20.9876244827842 52.259569327517,20.9876244827865 52.259569327511,20.9875959970902 ...
2017-09-04 01:00:00,1,0.0135282957291873,"MULTIPOLYGON(((20.9832771275726 52.259601516439,20.9876244827842 52.259569327517,20.9876244827865 52.259569327511,20.9875959970902 ...
2017-09-04 02:00:00,1,0.011225094014391,"MULTIPOLYGON(((20.9832771275726 52.259601516439,20.9876244827842 52.259569327517,20.9876244827865 52.259569327511,20.9875959970902 ...

Animacja powyżej pokazuje jak aktywność telefonów pulsuje w rytmie dziennym.
Ścisłe centrum jak widać nie chodzi spać.
Miejscami widać dziwniejsze fluktuacje jak np. Dolinka Służewiecka wieczorem 16 września.

Rysunek poniżej przedstawia profil aktywności dla trzech wybranych punktów w okresie kilku dni.

Screen Shot 2017-09-23 at 00.55.18

Jak takie dane ciekawie zintegrować z położeniami autobusów i tramwajów?
Zobaczymy na hakatonie, a najciekawsze rozwiązania pokażemy na blogu.

Do przygotowania pierwszej animacji użyto pakietu animation i programu ImageMagick. Druga to oczywiście dziecko ggplot2 i sf.

Urban Sensors – hakuj dane o komunikacji w Warszawie

Urban Sensors to jednodniowy hakaton nad danymi miejskimi, który odbędzie się w Warszawie 26 września na wydziale MiNI Politechniki Warszawskiej (Koszykowa 75) – dzień przed konferencją WhyR.

Położenie online każdego tramwaju i autobusu

Kręcą Cię miejskie dane? Ten Hakaton to unikalna okazja pracy na dużych danych miejskich (więcej poniżej) wspólnie z pracownikami Urzędu Miasta Warszawa, którzy te dane znają od podszewki. Eksperci z urzędu miasta będą z nami przez czas trwania hakatonu, pomogą ocenić realizowalność nawet najbardziej szalonego pomysłu, zaproponują ciekawe tematy badawcze, wskażą gdzie szukać dodatkowych danych.

Hakaton prowadzony jest w ramach projektu VaVeL, dzięki któremu powstaje nowa unikatowa infrastruktura dostępu do bardzo głębokich danych online o tym co się dzieje w mieście. Podczas hakatonu będziemy pracowali na prototypowej platformie, z dostępem do danych których w takiej skali wcześniej nie było.

Dane z którymi będziemy pracować w pierwszej kolejności to położenie autobusów i tramwajów (GPS) oraz zagęszczenie osób w różnych rejonach Warszawy (na podstawie raportów ze stacji bazowych). Z danymi będzie można pracować w trybie online (online śledzenie gdzie jest teraz który autobus); trybie dostępu do danych historycznych (gigabajty danych o położeniu pojazdów z całego miesiąca); oraz trybie batch (zrzut danych dla dwóch wybranych ciekawych dni, względnie małe pliki).

Co będziemy robić na hakatonie?

Punktem wspólnym projektów na hakaton są dane miejskie, format rozwiązań może być dowolny. Przykładowe pomysły na projekty:
– tramRadar – aplikacja mobilna pokazująca gdzie w okolicy są w obecnej chwili tramwaje i jakie mają opóźnienie (jeżeli mają) na bazie danych online,
– automatycznie generowany dzienny raport z opóźnień w ruchu,
– system machine-learning przewidujący opóźnienie autobusów i tramwajów.
Można oczywiście też przyjść z własnym pomysłem.

Do samego hakatonu pozostało jeszcze trochę czasu. Jeżeli macie ciekawy pomysł na urozmaicenie tego wydarzenia, podzielcie się w komentarzach.

Podczas hakatonu nie planujemy bezpośrednich nagród finansowych.
Ale Urban Sensors to świetna okazja by popracować z danymi miejskimi nad projektem który może być wdrożony i skomercjalizowany, więc sława i pieniądze czekają na osoby, które na tej prototypowej platformie zbudują użyteczne usługi.

Jak się zapisać?

Zapisy na hakaton rozpoczną się 5 września.
Planujemy przyjąć 40-50 osób.
Pierwszeństwo będą miały osoby mogące pochwalić się ciekawymi realizacjami.
Informacja o zapisach pojawi się w pierwszej kolejności na stronie http://whyr.pl/hackathon/.

Prezentacje publiczne

Czy zdarza Ci się prezentować na publicznym forum wyniki swoich badań/analiz? Jeżeli tak, to ten wpis może Cię zainteresować.

Miesiąc temu, na konferencji UseR2017 miałem referat dotyczący wizualizacji modeli uczenia maszynowego. Temat spotkał się ze sporym zainteresowaniem, na tę 15 minutową prelekcję zapisało się ponad 500 osób.
Jak się do takiej prezentacji przygotować?
Poniżej podzielę się kilkoma doświadczeniami i materiałami.

Książki

704501127o
Jakiś czas temu otrzymałem od PWN książkę Piotra Wasylczyka ,,Prezentacje naukowe – Praktyczny poradnik’’ (link do strony pwn). Książkę otrzymałem bezpłatnie z prośbą o komentarz i prawdopodobnie z nadzieją na reklamę.
Książkę przeczytałem i muszę powiedzieć wprost, że jest świetna, z pewnością będę polecał dyplomantom.
Dla początkujących to lektura obowiązkowa. Znajduje się w niej wiele praktycznych porad dotyczących tego jak przygotować slajdy na prezentacje, jak przygotować plan wystąpienia, jak przygotować siebie, jak rozpocząć prezentacje, jak mówić do różnych odbiorców. Wszystkie te wątki z konkretnymi ćwiczeniami.

Zaznaczyć muszę, że nie zgadzam się z wszystkimi opiniami przedstawionymi w tej książce. Np. Piotr Wasylczuk argumentuje, że nie ma sensu na początku prezentacji omawiać planu prezentacji, a moim zdaniem w wielu sytuacjach to pomaga słuchaczowi ustawić oczekiwania. Ale nawet opinie z którymi się nie zgadzamy prowokują nas do głębszego zastanowienia się nad danym tematem. Warto poznać argumenty autora.

To co mi się w tej książce podoba to skupienie na celu prezentacji, liczne ćwiczenia oraz bardzo wiele przykładów i ilustracji ,,z życia’’.
Autora w akcji można zobaczyć np. na nagraniu finału FameLab 2016.
Część z umieszczonych tam ćwiczeń planuję sprawdzić na zajęciach ze studentami. Książkę można przejrzeć w MI2DataLabie.

cover
Oczywiście książek o efektywnej komunikacji jest więcej. Ostatnio, duże wrażenie zrobiła na mnie książka Trees, maps, and theorems Jean-Luc Doumonta. Pozycja dosyć droga (80 EUR, >10x więcej niż ,,Prezentacje naukowe’’) ale bardzo ciekawie zaprojektowana. Być może określenie ,,książka’’ nie jest właściwe, bardziej pasowałoby ,,album’’.
Złośliwi powiedzą, że co druga strona to spis treści a gigantyczne marginesy są niezbędne by względnie małą liczbę słów rozciągnąć na 169 stron. Ale eksperymentowanie ze składem pozwala na lepsze uhonorowanie przedstawianej treści.

Zdanie na temat tego projektu można wyrobić sobie po lekturze kilku stron umieszczonych pod adresem http://www.treesmapsandtheorems.com/ lub po obejrzeniu prezentacji autora na TEDxGhent https://www.youtube.com/watch?v=VK74BIaxkYE.

Okladka-724x1024Zdarza mi się oglądać dobre wystąpienia, poprowadzone wokół ciekawego tematu, ale spalone przez złą prezentację danych – które miały być głównym wynikiem. Dziwaczne wykresy z ozdobnikami, z których nie sposób cokolwiek odczytać. Jeżeli wyniki liczbowe stanowią ważny punkt naszego wystąpienia to trzeba je pokazać w sposób pozwalający na szybkie i poprawne zrozumienie. Nie zawsze jest to proste. W tym obszarze polecam ,,Zbiór esejów o sztuce prezentowania danych” który napisałem jakiś czas temu. W postaci HTML jest dostępna na tej stronie.

Blogi i wideo

Wiele ciekawych pomysłów na format prelekcji można też znaleźć w blogosferze. Polecam blog StoSłów http://www.stoslow.pl/ prowadzony przez Marka Stączka (EdisonTeam). Marek prowadzi warsztaty z wystąpień publicznych i jest duża szansa, że poprowadzi taki warsztat w tym roku w naszym DataLabie.
Ostatnio pisał na blogu na temat zwięzłości wypowiedzi. Oczywistą oczywistością jest to, że do prezentacji trzeba się przygotować. Mniej oczywiste jest to, że im krótsza prezentacja tym dłużej trwa przygotowanie. Dwugodzinny wykład wymaga zazwyczaj krótkiego przypomnienia sobie kluczowych wyników ale już dziesięcio- piętnasto- minutowa prezentacja to czasem kilka(naście) dni przygotowań (więcej tutaj).


Oczywiście świetnym źródłem inspiracji dotyczących wystąpień publicznych jest konferencja TED. Zdarzają się tam prezentacje o niczym, ale jest też bardzo wiele perełek, w których ciekawa treść została fantastycznie przedstawiona. Np. prezentacja Susan Cain o introwertykach pokazuje, że nawet jeżeli tłumy widzów nas przerażają, to możemy przygotować świetną prezentację na ważny dla nas temat.

Świetny jest też odczyt J.K. Rowling na zakończenie roku na Stanfordzie. Odczyt ten jest czytany w większości z kartki a więc w sprzeczności z typową radą ,,nie czytaj z kartki”. Ale dotyczy historii ważnej dla Rowling i interesującej dla słuchacza. W głosie autorki słychać emocje, a sama prelekcja zapada w pamięć. Całość zobaczyć można tutaj.

Warsztaty

Książki i blogi to ciekawe źródło inspiracji, ale nie zastąpią ćwiczeń praktycznych oraz informacji zwrotnych od bardziej doświadczonych kolegów/koleżanek.

Zawsze można w swojej okolicy poszukać przydatnego kursu dotyczącego publicznych wystąpień. Na rynku takich kursów jest wiele, np. prowadzone przez wspominanego wyżej Marka Stączka. Dla doktorantów i pracowników naukowych często uczelnie organizują specjalistyczne warsztaty.
Np. w ofercie Uniwersytetu Warszawskiego dla pracowników i doktorantów znajdują się świetne zajęcia z emisji głosu prowadzone przez Instytut Polonistyki Stosowanej (brałem udział, gorąco polecam). W USOSie jest też kurs oferowany dla studentów, ale akurat z nim nie miałem do czynienia.

Jakiś czas temu Nowoczesny Uniwersytet UW (http://www.nuw.uw.edu.pl/) organizował warsztaty z Dobromirem Dziewulakiem dla doktorantów i pracowników naukowko-dydaktycznych. Byłem, polecam. Swoją drogą, Dobromir prowadzi blog w serwisie Wszystko Co Najważniejsze poświęcony dydaktyce – ciekawa lektura.

Jakiś czas temu Fundacja na rzecz Nauki Polskiej w ramach projektu Skills organizowała warsztaty i szkolenia dla naukowców. Akurat trafiłem na warsztaty prowadzone przez aktora – Jacka Rozenka, bardzo ciekawe doświadczenie. Projekt co prawda się zakończył, ale warto śledzić stronę FNP, być może temat będzie kontynuowany, tym bardziej, że Fundacja bardzo stawia na rozwój naukowców.

Take home

Prezentacje naukowe to oczywiście temat rzeka.
Ale w rzekach łatwo utonąć.
Trzy moim zdaniem najważniejsze wątki to.

(1) Pamiętaj co chcesz powiedzieć.
Bez względu na to, jak długa jest Twoja prezentacja, najprawdopodobniej większość osób zapamięta z niej maksymalnie trzy zadania – punkty. Zapisz sobie kluczowe punkty, które chciałbyś by były zapamiętane. Przygotuj prezentacje tak by ułatwić zrozumienie dlaczego akurat te punkty są ważne. Nie przesadzaj z treścią. Mów w sposób prosty i zrozumiały.

(2) Bądź przygotowany.
Dobra prezentacja wymaga przygotowania. Im jest ważniejsza, tym dłużej się ją przygotowuje. Im krócej ma trwać, tym dłużej się ją przygotowuje. Gdy doktorant jedzie na międzynarodową konferencję pokazać w 20 minut wyniki nad którymi pracował przez dwa lata, nie jest niczym dziwnym spędzenie kilku dni (!) nad jedną konferencyjną prezentacją. Gdy prezentacja jest bardzo krótka (5 min), dobrym pomysłem może być nauczenie się jej na pamięć. Nie musisz mówić z pamięci każdego słowa, ale zawsze masz w pamięci gotowe zdania gdyby akurat skończyła się wena. Jeżeli prezentacja ma być dłuższa, dobrym pomysłem jest poprowadzenie jej wcześniej przed mniejszym i znanym Ci audytorium – np. na seminarium grupowym. Po takim treningu, właściwa prezentacja już Cię nie zaskoczy.

(3) Bądź wypoczęty i zrelaksowany.
Wyśpij się, zjedz lekki posiłek, miej pod ręką wodę aby zwilżyć gardło. Pamiętaj, że na prelekcje przyszły osoby przyjaźnie nastawione, które chcą posłuchać tego co masz do powiedzenia. Stres jest twoim wrogiem i naucz się go oswajać. W małych dawkach pobudza i może być użyteczny. Kilka głębokich oddechów, proste ćwiczenia ruchowe mogą bardzo pomóc. Jeżeli się zatniesz zrób krótką przerwę i wróć do tematu. Pamiętaj co i dlaczego chcesz powiedzieć.

Przyjdź, posłuchaj, porozmawiaj – 13.IV Wrocław, 8.V Kraków, 26.V Warszawa

W najbliższych dniach prowadzę kilka wykładów i warsztatów.

Czwartek 13.IV – UWr Wrocław
godzina 14-15 Wykład o biostatystyce i dużych danych.
godzina 15-17 Warsztaty z wizualizacji danych.

Więcej informacji: http://www.blog.math.uni.wroc.pl/node/171.

Poniedziałek 08.V – PKr Kraków
godzina 15-17 Warsztaty z wizualizacji danych.
godzina 17-18 Wykład statystyka obliczeniowa, duże dane i genetyka.

Więcej informacji: https://www.meetup.com/Cracow-R-Users-Group/events/239021538/.

Piątek 26.V – PW Warszawa
Wykład o biostatystyce i dużych danych.

Te spotkania to fragment serii wyjazdów poświęconych (1) zastosowaniom statystyki obliczeniowej w analizie dużych danych onkologicznych oraz (2) nowym narzędziom do wizualizacji danych/wizualizacji modeli statystycznych.
Między innymi prowadzę te spotkania z nadzieją na znalezienie współpracowników (doktorantów/post-doków) zainteresowanych którymś z ww. tematów.
Ciekawych projektów do realizacji jest sporo. Zainteresowanych zapraszam więc do pogadanek przed/po spotkaniu.

Poprzednie spotkania z tej serii

Czwartek 09.III – MiNI PW Warszawa
godzina 18-19 Historia R.

Czwartek 16.IIIUniejów
godzina 13-14 Wykład wizualizacja danych.

Czwartek 23.III – CO/UEP Poznań
godzina 13-14 Wykład o biostatystyce i dużych danych.
godzina 18-19 Historia R.

Czwartek 06.IV – MIM UW Warszawa
godzina 14-15 Wykład o biostatystyce i dużych danych.

Coś jest w tych czwartkach.

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.

Przecinające się krzywe przeżycia

Spotkałem się ostatnio z ciekawym problemem.
Mamy dwie grupy pacjentów na dwóch różnych schematach leczenia i chcemy porównać ich dalsze losy, a konkretnie krzywe niepowodzenia leczenia (prawdopodobieństwo zgonu/wznowy).
Na pierwszy rzut oka klasyczna analiza przeżycia, test log-rank i po sprawie.

Ale szybko okazuje się, że krzywe przeżycia się przecinają, co więcej oczekiwać można tego po wcześniejszej rozmowie z lekarzem. Jeden schemat leczenia jest bardziej agresywny więc może prowadzić do gorszych rokowań krótkookresowych, ale lepszych w dalszej perspektywie.

Klasyczny test dla krzywych przeżycia oparty jest o odległość pomiędzy krzywymi, mierzoną jest jako ważona suma kwadratów odległości w poszczególnych punktach. Ale gdy krzywe się przecinają to taki test ma niską moc i nie ma sensu go stosować.

A więc co robić?
Ciekawe studium symulacyjne porównujące różne podejścia do testowania przecinających się krzywych zostało opublikowane dwa lata temu w Plos One (!).
Okazuje się, że dobrze sprawdza się rodzina testów Renyi, która jest oparta o supremum ważonych odległości pomiędzy krzywymi przeżycia.
W R te testy są zaimplementowane w pakiecie survMisc w funkcji comp. Jest to znacznie mocniejszy test dla przecinających się krzywych.

A przy okazji, okazuje się, że zmianę w hazardach w rozpatrywanym problemie dobrze ilustrują reszty Schonefelda. Poniższy wykres pokazuje, że hazard w jednej grupie jest znacznie wyższy do 12 miesiąca, a później gorsze losy czekają pacjentów drugiej grupy.

Oba wykresy wykonane pakietem survminer.

Opisy osi usunąłem ponieważ wyniki tych analiz jeszcze nie są opublikowane, ale też nazwy nie mają większego znaczenia.

How to hire a Data Scientist?


W poprzednim tygodniu odbyła się konferencja Big Data Technology Summit 2017. Organizatorom udało się osiągnąć dwa cele, było wiele ciekawych merytorycznych referatów oraz wielu ciekawych uczestników z którymi można porozmawiać w kuluarach. Podczas sesji round-table miałem przyjemność poprowadzić stolik How to hire a Data Scientist? Wrażenia z tego stolika opisuję poniżej.

Dyskusja potoczyła się zaskakująco, choć na początku było dosyć klasycznie

Wśród uczestników tego stolika było kilku przedstawicieli biznesu, którzy do swoich firm lub działów szukają data scientistów (dalej juz piszę DS by nie kaleczyć tak bardzo języka), były też osoby zainteresowane rozwojem w tym kierunku.
Na początku było dosyć standardowo, czyli narzekanie, że zrekrutować DSa jest trudno. LinkedIn jest mało skuteczny, bo specjaliści dostają po kilka ogłoszeń tygodniowo i już ignorują większość z nich więc trzeba szukać innych ścieżek.
Na pytanie, co z rekrutacją na możliwie wczesnym etapie, jeszcze studentów na uczelniach, pojawiły się odpowiedzi, że ważna jest obecność firmy na uczelni ale (uczestnicy stolika) nie rekrutują osób na stanowisko DS na wczesnych latach a raczej starają się zdobyć już doświadczonych pracowników.
Samo w sobie to ciekawa deklaracja. Być może aby zostać DSem trzeba najpierw zjeść trochę chleba pracując na bardziej klasycznym stanowisku? A może uczenie się przez całe życie jest wpisane w zawód DS, a łatwiej się uczyć gdy ma się solidne podstawy po ukończonych dobrych studiach.

Z konstruktywnych wniosków pojawiło się np. stwierdzenie, że to co przyciąga DSa to ciekawe projekty i dostęp do ciekawych danych. W perspektywie dłuższego zatrudnienia, jest to silniejszym magnesem niż kolejna podwyżka. Ten motywator działa słabiej podczas pierwszej pracy, która motywowana jest najczęściej tym, że koledzy/żanki na studiach już zarabiają a ja jeszcze nie, ale gdy szukamy specjalistów w DS to właśnie możliwość rozwoju w ciekawym środowisku staje się coraz ważniejsza.
Ale jak dać znać pracownikom, że w firmie dzieją się ciekawe rzeczy? Jednym z rozwiązań (choć wciąż mało popularnym) jest blog pokazujący co ciekawego dzieje się w środku firmy/zespołu.

Później było jeszcze ciekawiej

Z ciekawszych wątków, w dalszej dyskusji pojawiła się np. wątpliwość, czy w ogóle warto szukać i rekrutować DSów?
Po co się zastanawiać jak rekrutować, jeżeli nie mamy pewności, że nasz biznes jest już gotowy aby przyjąć do pracy nowych DSów? Nawet jeżeli mamy nadwyżkę w budżecie na zespół DS, to warto świadomie określić po co nam ten zespół. W przeciwnym razie zdobędziemy kilka osób, które przyjdą, popracują rok, zobaczą że ich analizy są na nic i sobie pójdą.

Jeden z cytatów, który wpadł mi w ucho, to ,,jak wiemy DSy obumierają w samotności”. Czyli aby DSy pracowali efektywnie potrzebują zespołu, a może nawet całego ekosystemu wspierającego i uzupełniającego ich pracę.
Ale to wymaga od biznesu zbudowania zaplecza złożonego z inżynierów, którzy postawią i utrzymają te wszystkie sparki, hive’y, skonfigurują spotowe instancje na AWSie tak by potrzebne dane były zebrane i dostępne.
Jak również zaplecza po stronie kierowników, dyrektorów i zarządu, które pomoże nowe rozwiązanie wdrożyć lub przynajmniej przetestować w biznesie.
Aby zbudować efektywny zespół DS trzeba w wypracować pewną kulturę pracy z danymi, jeżeli nawet nie w całej firmie, to przynajmniej w warstwie zarządczej.

A więc jak rekrutować te jednorożce zwane DSami?

Dobrym kierunkiem jest taka organizacja biznesu, by istniało wsparcie techniczne pozwalające na efektywny dostęp do danych oraz warstwa zarządcza gotowa na wdrożenie zmian sugerowanych przez dane.
Do takiego środowiska DSy same przyjdą jak do wodopoju, bo będą czuli, że ich wysiłek na coś się przełoży. A świat się skurczył i informacja o tym gdzie dzieją się ciekawe rzeczy a gdzie nieciekawe szybko się rozchodzi.

Gdy już takie środowisko zostanie zbudowane, to nie zaszkodzi umieścić ogłoszenia na portalu http://datahero.tech/ lub przyjść czasem na uczelnie z ciekawym referatem (np. na SERy).

Z pamiętnika nauczyciela akademickiego: Kaggle in Class


W tym semestrze na przedmiocie Statystyka II wykorzystywałem Kaggle in Class. Co to jest i co z tego wyszło? O tym poniżej.

Kaggle (https://www.kaggle.com/) to platforma hostowania konkursów opartych o dane. Firma, instytucja badawcza lub inny zainteresowany ogłasza na tej platformie konkurs, polegający zazwyczaj na wykonaniu predykcji w oparciu o jakieś dane. Wykryć raka na bazie rezonansu, przewidzieć zapotrzebowanie na prąd w szkole na podstawie historii, przewidzieć zajętość łóżek szpitalnych? To typowe problemy z tej platformy. Zgłaszający określa nagrodę, termin zakończenia konkursu, kryterium oceny zgłoszeń itp. Tematy konkursów są bardzo różne, dane są różnych kształtów, struktur i wielkości.

Kaggle in Class (https://inclass.kaggle.com/) to część platformy Kaggle, przygotowana do wykorzystania w ramach zajęć. Pozwala na tworzenie własnych konkursów wykorzystując istniejącą infrastrukturę do zgłaszania rozwiązań, oceny automatycznej, dzielenia rankingów na publiczny i prywatny itp. Trzeba wskazać zbiór danych, dokładnie opisać zadanie do wykonania, określić format przesyłania odpowiedzi, dokładnie opisać kryterium oceny rozwiązania. Rejestracja nowego zadania jak i przesyłanie odpowiedzi jest bezpłatne. Kaggle in Class jest bezpłatna i dla prowadzącego i dla studentów.

Statystyka II to kurs, na którym przez pół semestru omawiamy klasyczne techniki predykcji, takie jak bagging, boosting, stacking, lasy losowe, regresja itp. Akurat do ćwiczenia algorytmów predykcyjnych Kaggle pasowało bardzo.

Kilka luźnych wrażeń dotyczących użycia tej platformy.

* Korzystanie z Kaggle pozwala studentom na uzyskanie praktycznie natychmiast oceny zgłoszonego rozwiązania. Natychmiastowy feedback to bardzo przydatna rzecz, studenci nie muszą czekać aż ja ocenię zadanie, (prawie) natychmiast widzą jakie są wyniki, przez co nie tracą ,,momentum” w pracy nad modelem.

* Korzystanie z Kaggle In Class ma tę przewagę nad zwykłymi konkursami Kaggle, że prowadzący może całkowicie dowolnie dobrać sobie problem (omawiam predykcje wieloetykietową to wstawiam dane do predykcji wieloetykietowej), dobrać termin oddania projektu, określić maksymalną liczbą zgłoszeń dziennie itp.

* Kolejną zaletą Kaggle in Class nad Kaggle jest to, że prowadzący zna dane które są modelowane, jeżeli je symulował to zna prawdziwy model, jeżeli to prawdziwe dane z którymi wcześniej pracował to też dużo o nich wie. Dzięki temu w końcowej ocenie może ocenić zarówno podejście do modelowania jak i wybrany model a nie tylko wyznaczone predykcje.

* Kaggle umożliwia ustalenie maksymalnej liczby rozwiązań zgłoszonych dziennie. Ustawienie takiego ograniczenia na dwa dziennie premiuje zespoły, które do problemu podejdą wcześnie. Zgłaszanie rozwiązania ostatniego dnia to ryzyko, że dwa oddane strzały będą daleko od dobrych predykcji. Atakując problem odpowiednio wcześniej mamy większe pole manewru.

* Przygotowanie własnego konkursu niesie ze sobą też ryzyka. Jedno jest takie, że studentom uda się wygenerować idealną predykcję. Mnie to się nawet zdarzyło. Na rzeczywistych (!!!) danych w problemie binarnej klasyfikacji udało się po kilku dniach uzyskać skuteczność 100%. Z punktu widzenia predykcji to świetnie, ale aspekt dydaktyczny leży. Mamy rozwiązanie i już nikt nie opracuje lepszego, my też nie mamy czego poprawiać. Tak więc moje doświadczenie jest takie, że lepiej zamiast rzeczywistych danych wygenerować sztuczne dane o strukturze zgodnej z rzeczywistą, ale kontrolowanym zakłóceniem (np. zachować X, ale wygenerować y na bazie jakiegoś modelu). Jak to możliwe, że ktoś otrzymał 100% skuteczności na zbiorze testowym?

* Wyznaczenie jednego konkretnego współczynnika do optymalizacji bardzo zwiększa zaangażowanie studentów w realizacje projektu. Zamienia projekt w grę na optymalizację. Niektóre zespoły zgłaszały po 20 rozwiązań próbując poprawić nawet naprawdę dobre rozwiązania. To oczywiście miecz obosieczny, ponieważ w rzeczywistości określenie miary do optymalizacji to często zadanie samo w sobie, ale z punktu widzenia zaangażowania to przydatna cecha.

* Ocena nie może być oparta całkowicie o wyniki z Kaggle (jeżeli jest dużo dobrych rozwiązań, to to które jest najlepsze, zależy czasem od przypadku) a z drugiej strony jakoś z tymi wynikami musi być związana (inaczej po co się starać). W przypadku moich zajęć wyniki z Kaggla to była 1/3 punktów z jednego projektu, wydaje mi się to dobrą proporcją.

* Teoretycznie Kaggle In Class jest bezpłatne, ale nie ma się ludzkiego supportu gdyby coś poszło nie tak. W praktyce, gdy takiej pomocy potrzebowałem (musiałem anulować rozwiązania i podmienić dane gdy okazało się że można mieć 100% skuteczność), napisałem maila i człowiek (albo naprawdę sprytne AI) szybko odpisał poprawiając to co trzeba by wszystko działało.