Local Goodness-of-Fit Plots / Wangkardu Explanations – a new DALEX companion

The next DALEX workshop will take place in 4 days at UseR. In the meantime I am working on a new explainer for a single observation.
Something like a diagnostic plot for a single observation. Something that extends Ceteris Paribus Plots. Something similar to Individual Conditional Expectation (ICE) Plots. An experimental version is implemented in ceterisParibus package.

For a single observation, Ceteris Paribus Plots (What-If plots) show how predictions for a model change along a single variable. But they do not tell if the model is well fitted around this observation.

Here is an idea how to fix this:
(1) Take N points from validation dataset, points that are closest to a selected observation (Gower distance is used by default).
(2) Plot N Ceteris Paribus Plots for these points,
(3) Since we know the true y for these points, then we can plot model residuals in these points.

Here we have an example for a random forest model. The validation dataset has 9000 observations. We use N=18 observations closest to the observation of interest to show the model stability and the local goodness-of-fit.

(click to enlarge)

The empty circle in the middle stands for the observation of interest. We may read its surface component (OX axis, around 85 sq meters), and the model prediction (OY axis, around 3260 EUR).
The thick line stands for Ceteris Paribus Plot for the observation of interest.
Grey points stands for 18 closest observations from the validation dataset while grey lines are their Ceteris Paribus Plots. 
Red and blue lines stand for residuals for these neighbours. Corresponding true values of y are marked with red and blue circles. 

Red and blue intervals are short and symmetric so one may say that the model is well fitted around the observation of interest.
Czytaj dalej Local Goodness-of-Fit Plots / Wangkardu Explanations – a new DALEX companion

archivist: Boost the reproducibility of your research

A few days ago Journal of Statistical Software has published our article (in collaboration with Marcin Kosiński) archivist: An R Package for Managing, Recording and Restoring Data Analysis Results.

Why should you care? Let’s see.


Would you want to retrieve a ggplot2 object with the plot on the right?
Just call the following line in your R console.


Want to check versions of packages loaded when the plot was created?
Just call


Wishful Thinking?

When people talk about reproducibility, usually they focus on tools like packrat, MRAN, docker or RSuite. These are great tools, that help to manage the execution environment in which analyses are performed. The common belief is that if one is able to replicate the execution environment then the same R source code will produce same results.

And it’s true in most cases, maybe even more than 99% of cases. Except that there are things in the environment that are hard to control or easy to miss. Things like external system libraries or dedicated hardware or user input. No matter what you will copy, you will never know if it was enough to recreate exactly same results in the future. So you can hope that results will be replicated, but do not bet too high.
Even if some result will pop up eventually, how can you check if it’s the same result as previously?

Literate programming is not enough

There are other great tools like knitr, Sweave, Jupiter or others. The advantage of them is that results are rendered as tables or plots in your report. This gives you chance to verify if results obtained now and some time ago are identical.
But what about more complicated results like a random forest with 100k trees created with 100k variables or some deep neural network. It will be hard to verify by eye that results are identical.

So, what can I do?

The safest solution would be to store copies of every object, ever created during the data analysis. All forks, wrong paths, everything. Along with detailed information which functions with what parameters were used to generate each result. Something like the ultimate TimeMachine or GitHub for R objects.

With such detailed information, every analysis would be auditable and replicable.
Right now the full tracking of all created objects is not possible without deep changes in the R interpreter.
The archivist is the light-weight version of such solution.

What can you do with archivist?

Use the saveToRepo() function to store selected R objects in the archivist repository.
Use the addHooksToPrint() function to automatically keep copies of every plot or model or data created with knitr report.
Use the aread() function to share your results with others or with future you. It’s the easiest way to access objects created by a remote shiny application.
Use the asearch() function to browse objects that fit specified search criteria, like class, date of creation, used variables etc.
Use asession() to access session info with detailed information about versions of packages available during the object creation.
Use ahistory() to trace how given object was created.

Lots of function, do you have a cheatsheet?

Yes! It’s here.
If it’s not enough, find more details in the JSS article.

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).


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).


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


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


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.


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


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.

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.


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.

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.


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.


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.