To już ostatni wpis z serii pokazującej co nowego w nowym wydaniu ,,Przewodnika…”. Tym razem umieszczam przedmowę do trzeciego wydania. Dlaczego?
Przedmowa odpowiada na dwa pytania. Po pierwsze, dlaczego zamiast rozwijać rozdziały o statystyce zajmuję się funkcjonalnościami związanymi z ,,powtarzalnością badań”. [Jest to moim zdaniem szalenie ważne zagadnienie, któremu nie poświęca się obecnie wystarczającej ilości uwagi] Po drugie, dlaczego, gdy wszystko jest elektronicznie dostępne w Internecie, poświęcam czas na przygotowanie drukowanej książki.
W skrócie odpowiedzią na oba pytania jest moje przekonanie, że w dzisiejszym świecie elementem kształcenia wyższego, czy na kierunkach matematycznych, technicznych, przyrodniczych czy medycznych powinna być analiza danych. Powtarzalność analiz odgrywa tu ważną rolę i trzeba się jej uczyć i uczyć jej innych. Program R nadaje się do tego świetnie. Jest prosty, intuicyjny i potężny. Mam nadzieję, że drukowany, odpowiednio zaprojektowany podręcznik, po którym można pisać, dodawać zakładki, szybko kartkować będzie w tym zadaniu [i uczeni się i uczeniu innych] dużą pomocą.
Ciekaw jestem jakie jest Wasze zdanie na ten temat. Czy warto uczyć o powtarzalnych badaniach? Może przy okazji kursu ,,statystyka” dla studentów kierunków medycznych i przyrodniczych warto też podkreślać jak ważna jest powtarzalność i automatyzacja analiz. Czy warto uczyć się na podstawie drukowanego podręcznika?

Fragment książki ,,Przewodnik po pakiecie R”, wydanie 3, Przemysław Biecek
,,Zanim zaczniemy tę przygodę”
Pierwsze wydanie ,,Przewodnika…” zostało opracowane w latach 2006-2007, czyli ponad 7 lat temu. Od tego czasu program R bardzo się zmienił. Liczba dodatkowych bibliotek zwiększyła się wielokrotnie, przekraczając w tym roku cztery tysiące bibliotek. W międzyczasie rozwinął się również silnik R. Z wersji 2.6.0, przez wersję 2.15.1, aż do wersji 3.0.1 wydanej w kwietniu 2013 roku.
Równie duża zmiana dotyczy autora tego ,,Przewodnika…”. Przez te kilka lat miałem przyjemność prowadzić wykłady, ćwiczenia i laboratoria dla studentów Politechniki Wrocławskiej i Warszawskiej, Uniwersytetu Warszawskiego i Wrocławskiego. Szkolenia dla pracowników naukowych, biologów czy genetyków oraz pracowników instytucji finansowych, banków czy firm konsultingowych. Miałem więc możliwość obserwowania, w jaki sposób różne osoby poznają R, co im ułatwia a co utrudnia naukę i pracę z tym programem.
Moja robocza teoria dotycząca efektywnego poznawania R wyróżnia trzy etapy nauki. Pierwszy etap można nazwać ,,zbieraniem motywacji”. Początkujące osoby zauważają, że do nauki R trzeba włożyć trochę wysiłku i zastanawiają się czy warto. Aby ich przekonać, pręży się muskuły R, pokazuje jak można tworzyć aplikacje sieciowe, animacje, jak prosto zbudować wyrafinowany model statystyczny, jak prosto wygenerować raport czy powtórzyć obliczenia dla zmodyfikowanych danych. Ten etap najlepiej przejść słuchając prezentacji zaawansowanych użytkowników R, na żywo czy w formacie video np. na portalu youtube.com.
Drugi etap to poznawanie zasad funkcjonowania programu R, poznawanie techniki programowania w R, uczenie się filozofii pracy z tym pakietem, budowa mapy/atlasu pojęć związanych z programem R. Na tym etapie idealnie sprawdzają się podręczniki. Jeżeli nie są poświęcone opisowi wąskich, specjalistycznych rozwiązań to mogą zachować aktualność przez wiele lat. Tempo uczenia można sobie indywidualnie dostosować, niektóre rozdziały pominąć, inne przeczytać kilkukrotnie. Na marginesach umieścić komentarze i notatki. Mam nadzieję, że na tym etapie ,,Przewodnik po pakiecie R” będzie bardzo pomocny.
Trzeci etap to szlifowanie i uaktualnianie informacji o programie R. Pakiet się rozwija, warto poznawać nowe możliwości, czy też stare możliwości o których wcześniej nie słyszeliśmy. Tutaj idealnie sprawdza się czytanie blogów (pod adresem http://www.r-bloggers.com/ dostępny jest agregator kilkudziesięciu blogów o R), uczestnictwo w konferencjach, nieformalnych spotkaniach użytkowników R, czy też prozaiczne googlowanie wokół interesujących nas tematów. Na tym etapie bardzo pomocny jest dostęp do Internetu. Zarówno biblioteki programu R zmieniają się szybko, jak i szybko pojawiają się nowe bardziej efektywne, czasem efektowne, rozwiązania.
Na każdym z tych etapów pomocne jest pracowanie z innym użytkownikiem/użytkownikami R. Ponieważ większość problemów można rozwiązać na wiele sposobów, dlatego też bardzo dużo można nauczyć się porównując różne sposoby rozwiązania tego samego problemu. Ostatnio prowadząc zajęcia zadaję studentom ten sam projekt do wykonania, następnie najlepsze projekt są omawiane publicznie. To niesamowite, jak różne są te rozwiązania i jak wiele interesujących ciekawostek różne osoby wyszukują. A to efektywniejsze wczytywanie danych, a to zmiana kroju pisma na wykresie, a to animacja zanurzona w pliku pdf.
Jeżeli chodzi o takie ciekawostki czy nowości, nie sposób przecenić użyteczności Internetu i portali typu stats.stackexchange.com (Cross-Validated). Głównie z powodu łatwości wyszukiwania informacji w Internecie. Wiedząc czego się szuka w kilka minut można znaleźć odpowiedź na jakimś forum, w dokumentacji czy roboczych notatkach innego użytkownika. Papierowa ,,mini encyklopedia” nie będzie nawet w części tak przydatna jak internetowa wyszukiwarka. Jednak uczenie się wyłącznie na bazie samych ciekawostek i zespołowych projektów (a i takie eksperymenty robiłem) owocuje fragmentaryczną wiedzą. Ciekawostki są otaczane koślawymi rozwiązaniami, czcionka na wykresie jest ciekawa ale sam wykres niedopracowany a dane błędnie przetworzone.
Jest wiec w procesie nauki R miejsce dla podręczników. Na drugiem etapie uczenia zbudowanie bazy, szkieletu, przedstawienie krok po kroku filozofii pracy z programem R jest bardzo ważne. Pozwala spojrzeć szerzej co jest dostępne na horyzoncie możliwości. Ułatwia późniejsze wyszukiwanie informacji i uaktualnianie naszej wiedzy o programie R. Uważam wręcz, że dobry kurs programu R to połączenie odpowiedniego podręcznika do samodzielnego czytania i projektowej pracy z rzeczywistymi problemami. Wymaga to czasu i wysiłku, ale owocuje znacznie lepszymi efektami niż uczenie się od początku na samych przykładach.
,,Przewodnik po pakiecie R” powstał po to by towarzyszyć w nauce, by przedstawiać atlas rozwiązań, by wskazywać mielizny i rafy. Mam nadzieję, że ta pozycja oferuje szerokie a jednocześnie jednolite spojrzenie na wiele rozwiązań dostępnych w R. Zarówno jeżeli chodzi o możliwości obliczeniowe, możliwości w modelowaniu statystycznym jak i możliwości w zakresie prezentacji danych. Starałem się zachować rosnący poziom trudności, przygotowując łatwe do zrozumienia i interesujące przykłady z komentarzami. Zostawiając też miejsce dla czytelnika do samodzielnego sprawdzenia ,,co się stanie”.
Trzecie wydanie przeszło gruntowny lifting. Usunąłem informacje o pakietach, które już nie są używane (np. świetny pakiet \verb:CoCo: został już usunięty z serwerów CRAN), dodałem informacje o aktualnie używanych rozwiązaniach, takich jak np. RStudio (rewelacyjny edytor do R). Wciąż uczę się też pisać. Przeformułowałem wiele zdań, przykładów czy komentarzy sprzed kilku lat. Mam wrażenie, że pewne rzeczy potrafię teraz przedstawić lepiej, zobaczymy co będę o tym myślał za kolejnych kilka lat. Pisanie bloga jest moim zdaniem świetną praktyką języka. Choć oczywiście zdaję sobie sprawę, że jeszcze wiele rzeczy do poprawienia.
Zmiany dotyczą również formy. Zmieniłem krój pisma na Minion Pro, zmieniłem sposób formatowania kodu R i sposób umieszczania komentarzy. Papierowe książki nie męczą tak wzroku jak aktywnie świecące ekrany. Autor ma pełną kontrolę nad typografią i projektem książki, może rozmieścić treść tak by łatwo było porównać napis z lewej strony z napisem na prawej stronie. Przyjemny w czytaniu krój pisma może pozytywnie nastawić czytelnika. To efekty, których nie doceniałem kilka lat temu, teraz jednak przekonany jestem, że są one ważne.
Jest też kilka zupełnie nowych podrozdziałów, które odzwierciedlają moje obecne zainteresowania. W wydaniu drugim rozbudowany został rozdział o grafice i wydajnym przetwarzaniu. W tym wydaniu dodałem opisy pakietów knitr, slidify i shiny pozwalających na wsparcie komunikacji pomiędzy statystykiem a końcowym odbiorcą. Więcej miejsca poświęciłem tematowi powtarzalnych analiz i obliczeń, łatwych do zweryfikowania i powtórzenia.% Ten temat staje się coraz ważniejsze i w nauce i w przemyśle.
Powtarzalność badań odgrywa olbrzymią rolę. Zarówno w~nauce jak i przemyśle. Jest to tak ważne zagadnienie, że powinien towarzyszyć kursom ze statystyki i analizy danych dla wszystkich studentów nauk medycznych, przyrodniczych i oczywiście technicznych. W przemyśle pozwala zwiększyć produktywność i~oszczędzić dużo czasu, zarówno gdy wracamy do pewnego zagadnienia po pewnym czasie, jak i~gdy musimy ponownie wykonać pewien raport. W~nauce możliwość odtworzenia wyników to fundamentalny wymóg, każdego rzetelnego badania. Mam nadzieję, że ten podręcznik przedstawi możliwości R w zakresie badań powtarzalnych.
Na koniec chciałbym podziękować wszystkim osobom, które przyczyniły się do powstania tego wydania. Jest ich na szczęście zbyt wiele by wymienić je wszystkie. Najbardziej dziękuję mojej żonie, Karolinie, bez której nie tylko to wydanie ale też wiele innych projektów nigdy by nie powstało.
Moją aspiracją przy pisaniu trzeciego wydania było zbudowanie i pokazanie atlasu rozwiązań dostępnych w R, pozwalających na zrozumienie możliwości, logiki, schematów pracy z R. Programowanie w R może być przyjemnością, która wynika z braku ograniczeń jak i z estetyki dostępnych rozwiązań. Mam nadzieję, że uda mi się tę estetykę i tę przyjemność pracy z danymi pokazać. Życzę więc wielu fantastycznych wrażeń w pracy z programem R.
Przemysław Biecek
Paryż, 2013