zanuRkuj w R

Zostałem zaproszony do wygłoszenia referatu na seminarium poświęconym analizie danych. A ponieważ zapraszającym był sam Paweł Cichosz więc nie sposób było odmówić.

Seminarium odbędzie sie dziś o 12:15 (Gmach Elektroniki PW, sala 229 II piętro). Przy okazji powstała prezentacja, która może zaciekawi szersze grono odbiorców.

 

Slajdy są dostępne tutaj, kod w programie R jest dostępny tutaj.

Prezentacja miała nie być o statystyce, ale o języku R. Na omówienie języka jedno seminarium nie wystarczy, dlatego wybrałem siedem ciekawszych i bardziej zaawansowanych mechanizmów języka R. Dotyczą one takich aspektów jak waga atrybutów, funkcyjność, leniwa ewaluacja, przestrzenie nazw, profilowanie kod, automatyczne generowanie raportów z użyciem Sweave. Napisałem ,,zaawansowanych'; ponieważ nie są one omawiane w większości opracowań dotyczących R, a są moim zdaniem ciekawe i warto być ich świadomym.

 

Polska Internetowa, czyli raport Boston Consulting Group

Mniej więcej miesiąc temu @wikton podesłał informację o raporcie Boston Consulting Group ,,Polska Internetowa’’ (raport dostępny jest tutaj). Temat bardzo interesujący i  jak tylko znalazłem trochę czasu z chęcią ten raport przeczytałem. Wspomniany już @wikton pytał o opinię o tym raporcie więc temat na wpis gotowy.

Podtytuł raportu brzmi ,,Jak internet dokonuje transformacji polskiej gospodarki’’ co tylko zaostrza apetyt. Szczególnie po obejrzeniu kilku TEDtalków pokazujących jak Internet zmienia system edukacji na całym świecie oczekiwania były duże (np. prezentacje takich osób jak Sugata Mitra, Ken Robinson, Salman Khan).

Pierwszy rozdział ,,Spojrzenie na polski internet’’ jednak sprowadził mnie na ziemie. Zaczęło się od stwierdzenia, że pełno u nas ekspertów komputerowych a poziom informatyki akademickiej jest uznany na świecie. Jako uzasadnienie podano trzecie miejsce w konkursie TopCoder (pierwsze dwa miejsca zajmują Rosja i Chiny, wzory do naśladowania?). Trzecie miejsce jest miłym faktem, ale sukcesy nielicznej (w skali kraju) grupy bardzo zdolnych młodych ludzi, którzy zdobywają swoje 10000 godzin doświadczenia ZANIM trafią na studia trudno utożsamiać z wysokim poziomem poziomem informatyki akademickiej w skali państwa. Poziom informatyki jaki odczuwa większość obywateli to mizerna informatyzacja służby zdrowia (awantura o recepty i ubezpieczenia), mizerna informatyzacja ZUS, mizerna informatyzacja urzędów, znikomy dostęp do publicznie dostępnych danych o funkcjonowaniu państwa. W raporcie jednak więcej uwagi poświęcono naszej klasie, facebookowi, gadu-gadu, allegro, onet.pl i podobnym serwisom, generującym jak widać znaczną część PKB. Wydaje mi się, że opis informatyzacji państwa to ciekawszy temat do poruszenia na wstępie raporcie o nazwie ,,Polska Internetowa’’ niż konkurs TopCoder. Swoją drogą gratulacje dla tych, którzy są top coderami lub wygrywają medale na mistrzostwach w programowaniu, powinno się z nich robić ikony dla młodzieży.

Wróćmy do raportu, można w nim znaleźć wiele dziwnych statystyk, np. w rozdziale ,,Polak – aktywny internauta’’ znajdziemy informację, że ,,…internauci spędzają w sieci 14,5 godziny czasu tygodniowo, a więc o pół godziny więcej niż przed telewizorem’’.  Jak i po co ta średnia była liczona nie wiadomo, co świadczy o aktywności też nie wiadomo. Ok, nie ma sensu czepiać się szczegółów. Wybrałem cztery rzeczy, które w tym raporcie mi się spodobały i cztery które uważam, że można zrobić lepiej. O reszcie nie piszę by nie zanudzić czytelnika.

Co mi się podobało.

1.            Na stronie 22 jest przedstawiony w ciekawy sposób przykład Korei Południowej, która postawiła na rozwój gospodarki opartej na wiedzy i dziś jest wzorem do naśladowania jeżeli chodzi o dynamikę rozwoju. To bardzo ciekawy przypadek.

2.            Na stronie 16 na wykresie 5 przedstawione jest ile można zaoszczędzić na różnych grupach produktów kupując je w Internecie. Na kosmetykach i AGD można zaoszczędzić do 20%, na książkach najmniej około 2%.

3.            W załączniku na stronach 40-42 jest przedstawiona metodologia. Tak powinno być w każdym raporcie, część z wnioskami i ciekawymi wynikami a później precyzyjny opis użytych metod i danych. Inna sprawa, że metodologia w tym raporcie to tylko 3 strony, aż prosi sie o precyzyjniejsze i szczegółowe opis. Ale i tak dobrze, że jest ten rozdział.

4.            Ilościowa ocena PKB generowanego przez Internet. Jest kilka słabych punktów, np. stwierdzenie, że różnymi metodologiami mierzono wartość rożnych segmentów gospodarki, nie jest jasne co jest wliczane w gospodarkę internetową, czy e-edukacja też, czy rynek gier i w jaki sposób, ale przynajmniej jest jakiś punkt odniesienia z ilościowym szacunkiem tempa wzrostu.

Co można zrobić lepiej?

Skupiam się na sposobie prezentacji wyników ponieważ to słaby punkt raportu. Haseł i liczb jest sporo, trudno jednak nabrać zaufania do prezentowanych wniosków z uwagi na sporo niedomówień.

1.            Wykresy można lepiej przygotować. W poniższym wykresie do przedstawienia wartości zakupów w kategorii wykorzystano powierzchnię koła, czyli coś co trudno porównać. Przykładowo, proszę odgadnąć czy na poniższym wykresie większa jest wartość zakupów w kategorii media i książki, czy w kategorii elektronika? Drugie pytanie to o ile procent wartość zakupów w kategorii odzież i dodatki jest mniejsza od kategorii dom i ogród? Odpowiedzi na koniec wpisu.

 

2.            Poniższy wykres też ma kilka wad (różne skale na osiach OY, z jakiegoś powodu nie wszystkie państwa występują na wszystkich wykresach, np. Belgia, z samego wykresu nie wynika co jest na osiach OY). Ale zamiast je wyliczać zastąpimy je zagadką. W tekście raportu jest komentarz do tego wykresu, z którego wynika że na wykresie znajduje sie odpowiedź na pytanie: na którym miejscu wśród krajów unii europejskich jest Polska w kategorii przedsiębiorstwa korzystające z systemów ERP?

 

3.            Poniższy wykres nie został przygotowany by umożliwić odczytanie wartości indeksów dla poszczególnych państw (ale jeżeli wykres nie jest po to by odczytywać z niego wartości to po co jest?). Więc kolejne pytanie konkursowe brzmi: jaką wartość indeksu ,,aktywność w sieci’’ ma Dania i o ile % mniejsza jest aktywność w sieci Polski?

 

4.            Rzecz, której mi bardzo zabrakło w tym raporcie to definicja e Intensity Index (TM). Ta miara [znak towarowy firmy BCG] jest wielokrotnie wykorzystywana i jej zrozumienie jest bardzo istotne z punktu wielu wniosków przedstawionych w raporcie. W wielu miejscach w raporcie są próby wyjaśnienia prostymi słowami co mierzy ten indeks, ale jest to bardzo ogólna informacja o trzech wyskalowanych składowych, które są jakoś łączone i dalej skalowane. Nie bardzo wiadomo po co cały indeks jest skalowany, ale przez to skalowanie nie można nadać interpretacji wartościom tego wskaźnika. Nie można też porównywać wskaźników policzonych dla różnych grup (np. państwa vs. województwa), ponieważ będą one miały różny punkt odniesienia. Ponieważ w wielu miejscach raportu pojawia się ten wskaźnik to aż się prosi by został on opisany wzorem w metodologii. Zresztą w metodologii jest on opisywany na ponad półtorej strony, gdzie wiele mówi się o jego wrażliwości na wagi i o tym że bazuje on an wielu innych wskaźnikach, ale brak konkretów. Jeden wzór jest wart tysiąc poetyckich słów.

 

Swoją drogą chętnie zobaczyłbym raport o nazwie Polska Internetowa, z którego dowiedziałbym się co w Polsce można załatwić przez Internet a czego nie (zamówić lekarza, zamówić pizzę, wypełnić PIT, założyć firmę, załatwić sprawę w sądzie, zapisać się na studia). I jak to jest na zachodzie. I jakie są perspektywy dla Polski. Może znacie taki raport?

 

Odpowiedzi na pytania

Ad 1. Pole okręgu media i książki jest o mniej więcej 5% mniejsze, choć szanse na zauważenie tego są na tym wykresie 50/50. Pole okręgu odzież i dodatki to 45% pola okręgu dom i ogród.

Ad 2. Z wykresy wynika, że na 20 miejscu, ale w tekście raportu jest podane miejsce 26 więc trudno powiedzieć.

Ad 3. Dla Danii wypada wartość 131, dla Polski wartość o 45% niższa.

Anna Maria, dobre rady dla córek i młodych naukowców oraz krótka dyskusja nad tym co się dzieje z oczekiwaną długością życia?

Anna Maria prowadzi interesujący blog o nazwie AnnMaria’s Blog. W jednym z ostatnich wpisów ,,Tips for new programmers” napisała ,,Not being nearly as cool as him, I decided I’d just throw out a random tip now and then, since statisticians like anything with the word >>random<< in it.’’. To tyle tytułem wprowadzenia, dlaczego zamiast o danych będę dziś pisał o wpisach z innego blogu.

W ostatnich kilku dniach pojawiły sie na blogu Anny Marii dwa wpisy, które moim zdaniem warto przeczytać.

Pierwszy nawiązuje tematem do dyskusji, którą prowadziliśmy o wieku emerytalnym i na temat wydłużającej sie oczekiwanej długości życia. Pokazywałem przed świętami wykresy przedstawiające jak zmienia się oczekiwana długość życia. Opierałem się na danych z bazy mortality.org. Jak widzieliśmy prognozy są takie, że oczekiwana długość życia się wydłuża z dekady na dekadę. Ale jak również można było zauważyć, wydłużanie się oczekiwanej długości życia jest w (znacznej?) części efektem mniejszej śmiertelności wśród noworodków i małych dzieci. Sto lat temu kilkanaście procent dzieci nie dożywało wieku młodzieńczego. Takie statystyki są dziś nie do pomyślenia w cywilizowanych krajach. Jeżeli jednak interesuje nas krzywa przeżycia w przedziale wieku około emerytalnego to informacja o wydłużającej się oczekiwanej długości życia może nie mieć nic wspólnego z perspektywami na długą emeryturę. I właśnie tego dotyczy interesujący wpis ,,Are we living longer – or not?” w którym autorka uzasadnia tezę, że krzywa przeżywalności po 65 roku życia się nie zmieniła się istotnie przez dziesięć lat (porównywane są okresy to 1971 i 1980). Jak widać prognozy i opinie są bardzo różne. Prezentowane przez AM wyniki wspierają hipotezę o niezmieniającej się umieralności w późniejszych latach, popularna opinia mówi że będziemy żyć o kilka lat dłużej, a spotkać też można bardzo optymistyczne głosy, np. na TED taks słyszałem dziś stwierdzenie: ,,przeżyjcie jeszcze 20 lat a będziecie żyć do 150 lat” (bo na to pozwolą postępy w biotechnologii).

Ok, (mam nadzieję) pożyjemy (mam nadzieję) zobaczymy.

Drugi wpis ma prowokacyjny tytuł ,,Advice for Daughters on Succeeding in the Tech World”. Prowokacyjny, ponieważ w dobrych radach cioci Anny nie ma w nim nic specyficznego dla płci pięknej, można je powtórzyć każdej osobie myślącej o swojej edukacji (obowiązkowa lektura dla gimnazjalistów, może mieć lepszy efekt niż stypendia za uczenie się matematyki). Szczególnie spodobała mi się druga rada ,,Learn to say >>Fuck you<< and say it both openly (rarely) and to yourself (often)’’. Myślę, że to świetna rada dla młodych ludzi próbujących robić w nauce rzeczy, które się nie podobają ich starszym kolegom. Hasło ,,rozumiem dlaczego możesz tak uważać” zdobyło moje serce.

Jeżeli kiedyś pojawi się tutaj blogroll (czy jest jakieś polskie tłumaczenie tego słowa?) to blog Anny Marii z pewnością znajdzie w nim miejsce.

To tyle w temacie losowego wpisu.

 

Ceny używanych aut po nowym roku a prosty pająk sieciowy

Trzy miesiące temu opisywałem zbiór danych o ofertach sprzedaży samochodów z serwisu otomoto.pl (zobacz tutaj). Po kwartale ponownie zebrałem informacje o ofertach sprzedaży. Porównując te dwa zbiory będzie można sprawdzić jak zmieniają się ceny różnych modeli w odpowiedzi na podwyższoną akcyzę na olej napędowy. Kolejne interesujące pytanie to globalna zmiana cen aut używanych w ,,czasach kryzysu’’. Interesujący będize trend zmian w liczbie ofert samochodów sprowadzanych z zagranicy. Efekt starzenia się auta, z dnia na dzień auto staje sie o rok starsze, ciekawe czy dla aut używanych wiek w latach ma duzy wpływ na cenę auta.

Nowy zbiór danych jest dostępny w postaci csv i Rdata pod tym adresami [csv 80Mb], [Rdata 5,5 MB].

Skrypt wczytujący dane bezpośrednio z Internetu do R znajduje się tutaj.

 

Ponieważ ostatnio pojawiały się pytania o skrypty użyte do parsowania stron interntowych i zbierania automatycznego danych, więc do tych danych dołączam wszystkie skrypty potrzebne do ich zebrania i przetworzenia. Poniżej krótko je opiszę. Wykorzystuję tutaj głównie Perla i wyrażenia regularne pozwalające na łatwe i szybkie parsowanie tekstu. Z pewnością istnieją lepsze (łatwiejsze) sposoby parsowania stron HTML, chętnie usłyszę sugestie.

W moim rozwiązaniu proces zbierania danych jest dwuetapowy. Pierwszy etap to przejrzenie hierarchicznej struktury ofert sprzedaży samochodów oraz zapisanie z każdej oferty wybranych pól. Dodatkowo należy zatroszczyć się o to by to samo auto nie zostało dwukrotnie dodane do listy aut. Ponieważ parsowanie 200 tys ofert trochę trwa, a tym czasie do serwisu dodawane są nowe oferty, więc potrzebna jest dodatkowa tablica haszująca pamiętająca, które auta zostały już przetworzone. Skrypt perlowy, który wykorzystałem w tym celu znajduje się tutaj [skrypt perl]. Plik wynikowy, z zebranymi danymi znajduje się tutaj [surowe dane po pierwszym etapie 140MB].

Ponieważ dla różnych ofert sprzedaży  przedstawiane są różne charakterystyki, niektórych opisów brakuje, niektóre parametry są w różnych formatach, dlatego też w drugim kroku wykorzystuję skrypt R obrabiający surowe dane i przekształcający je do postaci tabelarycznej, łatwiejszej w obróbce. Przy okazji cena aut w walucie przeliczana jest na PLN, liczona jest pojemność skokowa, moc i inne parametry, które w surowych danych sa zapisane w formacie tekstowym. Skrypt użyty do transformacji znajduje sie tutaj [skrypt r], a plik wynikowy znajduje się tutaj [plik csv].

Smacznego!

 

Gdzie dziś uprawia się naukę? Krótka analiza najlepszych prac z ‘Computer Science’

Dostałem dziś od znajomego link do strony podsumowującej listę prac, które otrzymały nagrody ,,Best Paper Awards’’ w ostatnich latach na czternastu międzynarodowych konferencjach związanych z informatyką. Link do strony z tym podsumowaniem znajduje się tutaj.

Ostatnimi czasy spotykam się z opiniami różnych osób, jakoby nauka w takich dziedzinach jak statystyka obliczeniowa, masywne przetwarzanie danych, inżynieria oprogramowania, bazy danych, była rozwijana już nie na uczelniach (jak kiedyś) ale w dużych firmach, które mają dostęp do dużych zbiorów danych.

Postaram się przedstawić graficznie wyniki z wymienionej wyżej strony z rankingami, tak by można było pokusić się o odpowiedź na pytanie czy najwyższej próby  ‘Computer Science’ (nie znam dobrego polskiego tłumaczenia, słowo informatyka wydaje się mi uboższe) uprawia się bardziej na uczelniach czy w firmach. Oczywiście badanie najlepszych prac z konferencji nie da wyczerpującej odpowiedzi na pytanie gdzie nauka się najszybciej/najbardziej rozwija, ale może zbliży nas o jeden krok do tej odpowiedzi.

Dane z wymienionej strony zostały automatycznie przetworzone. Skrypt w programie R użyty do przetworzenia danych i wygenerowania wykresów znajduje się tutaj. Interesować będą mnie jednostki w których, afiliowani są autorzy najlepszych prac. Wkład jednostki w naukę będę mierzył zliczając punkty zebrane przez pracowników tych jednostek. Punkty unormowałem, tak że na każdy rok i na każdą konferencję do rozdania jest równo po 1 punkt. Jeżeli więc w danym roku na danej konferencji wygrały 2 prace, w każdej po 3 autorów, to każdy autor do swojej jednostki wniesie po 1/6 punktu. Jest to więc inna miara niż opisana w  oryginalnym podsumowaniu.

Dzielę teraz wszystkie jednostki na akademickie (Politechniki, Uniwersytety, Akademie Nauk) i nie akademickie (wszystkie pozostałe). Zdaję sobie sprawę, że ten podział nie zawsze jest oczywisty, ale taki został wykonany. Dla każdej jednostki i dla każdego roku liczę liczbę uzbieranych punktów.

Na poniższych wykresach na czarno zaznaczam jednostki akademickie, na czerwono pozostałe. Wszystkich jednostek jest ponad 200, więc nazwy podaję jedynie dla tych, które uzbierały 1 lub więcej punktu. Wśród wszystkich autorów jest jeden z polska afiliacją, który wniósł dla UW 0.2 punktu (Mikołaj Bojańczyk, gratulujemy). To jednak nie wystarczyło by UW był oznaczony również z nazwy.

Na poniższych wykresach osie są w skali pierwiastkowej, po to by uzyskać większą rozdzielczość tam gdzie jednostek jest dużo.

 

Rysunek 1. Z konieczności nazwy jednostek są małe, warto więc otworzyć ten obrazek na osobnej zakładce i powiększyć.  Na osi OX znajduje się liczba punktów uzbierana w latach 1996-2006, na osi OY w latach 2007-2011. Nie wszystkie konferencje mają tak długą historię, dlatego na osi OX punktów do zdobycia było mniej.

Z rysunku 1 możemy odczytać, które jednostki zdobywały więcej punktów kiedyś a które zdobywają więcej punktów teraz. Uniwersytet Carmegie Mellon czy Washington utrzymują stałe tempo zbierania punktów, Uniwersytet w Toronto czy IBM Research zbierało więcej punktów kiedyś, a w ostatnich latach wysoko oceniane są prace osób pracujących w Yahoo Research czy Microsoft Research.

Ale pytanie od którego zaczęliśmy dotyczyło zmiany trendu. Z powyższego rysunku trudno tę zmianę trendu odczytać, zbyt wiele punktów jest narysowanych. Policzmy więc jaki procent punktów zebranych w roku X został zebranych przez jednostki akademickie.

 

Rysunek 2. Na osi OY zaznaczono jaki procent punktów do zdobycia w danym roku otrzymały jednostki akademickie.

Na rysunku 2 przedstawiony jest udział jednostek akademickich w afiliacjach autorów najlepszych prac. Na tym wykresie nie widać trwałego trendu. Są pewne fluktuacje, ale nie można powiedzieć by to artykuły powstające w przemyśle wypierały prace akademickie (w kategorii najlepsza praca).

Ostatni wykres jest prawdopodobnie najmniej czytelny, ale bardzo chciałem go zobaczyć więc tez go tu umieścić. Poniżej jest przedstawiona skumulowana liczba punktów zebrana przez pracowników ze wskazanej jednostki.

 

Rysunek 3. Aby odczytać etykiety należy otworzyć ten rysunek na osobnej karcie i powiększyć. Na osi OX znajdują się lata a na osi OY skumulowana liczba punktów zdobyta do danego roku. Na czarno jednostki akademickie, nazwa jednostek znajduje się po prawej stronie.

 

Przyznam, że dla mnie zaskoczeniem był brak widocznego trendu w zwiększaniu się udziału oddziałów badawczych z przemysłu w afiliacjach autorów najlepszych prac. Być może śledzenie tylko najlepszych prac nie jest dobrą miarą. Być może te naprawdę najlepsze wyniki są patentowane a nie prezentowane jako publikacje. A być może ‘Computer Science’ jest wciąż rozwijana i jednostkach akademickich i w przemyśle i dostęp do dużych danych można uzyskać nawet będąc akademikiem, jeżeli tylko się chce.

 

 

 

Konkursy z roku 2011

Zagadka na dziś.

W jakiej kategorii poniższy wykres może zostać uznany za ..Naj 2011”?

 

Według tego bloga wykres ten zwyciężył w kategorii najgłupszy wykres roku. Pod wskazanym linkiem jest też kilka argumentów za, ale pierwszy rzut oka dostarcza takich argumentów wiele. Faktycznie wykres ma potencjał, nawet bez dodatków pseudo 3D i perspektywy.

Ciekawe jaki byłby wynik takiego konkursu gdyby ograniczyć się do grafik produkowanych przez rodzime media? Może widzieliście ostatnio jakąś szczególnie nietrafioną wizualizację? Jeżeli zbierze się kilka propozycji to możemy zorganizować własny konkurs.