The New York Times, data journalism, R i wynagrodzenia

Na blogu firmy RevolutionAnalytics znalazłem ciekawy wpis o tym jak edytor z NYT użył pakietu maptools dla R aby przedstawić graficznie mapę 99% centyla dochodów w poszczególnych rejonach stanów zjednoczonych. Innymi słowy mapę mówiącą ile trzeba zarabiać by być w lokalnej grupie 1% najbogatszych (co kraj to problem).

Wspomniany edytor prowadzi bloga (link tutaj) i na tym blogu opisał jak poniższa infografika powstawała.

 

Polska Grupa Użytkowników programu R

Kilka dni temu założyłem na google groups Polską Grupę Użytkowników R.

Grupa jest otwarta, nie ma moderacji, każdy może się zapisać i wysłać wiadomość do pozostałych zapisanych.

Link do grupy

http://groups.google.com/group/polska-grupa-uzytkownikow-r

W założeniu grupa miała ułatwić mi informowanie uczestników poprzednich WZURów o kolejnych spotkaniach tego typu. Ale jak dotąd na grupie pojawiły się już dwa wpisy, żaden z nich nie jest mój, oba są ciekawe, jest więc szansa, że grupa będzie miejscem wymiany ciekawych opinii pomiędzy osobami pracującymi w R.

Zapraszam do dołączenia do grupy a co się na niej będzie działo? Czas pokaże.

Kim są eksperci z Narodowego Centrum Nauki? Część 3

Wczoraj przedstawiłem rozkłady liczby cytowań i liczby publikacji dla ekspertów NCN z różnych dziedzin. Aplikacja ,,Publish or Perish” liczy wiele różnych interesujących współczynników. Dziś pokażę rozkłady dwóch popularnych współczynników, czyli h-indeks oraz średniej liczby autorów na publikację dla ekspertów.

 
Lista dziedzin w porządku określonym przez liczbę ekspertów (linki do poniższych wykresów):
biologia, nauki chemiczne, fizyka, medycyna, informatyka, ekonomia, nauki weterynaryjne, nauki historyczne, automatyka i robotyka, nauki prawne, nauki filologiczne, mechanika, matematyka, biologia medyczna, nauki medyczne, geografia, geologia, nauki filozoficzne, nauki farmaceutyczne, socjologia, inzynieria materialowa, technologia chemiczna, nauki o sztukach pieknych, zootechnika, psychologia, pedagogika, naukiopolityce, inzynieria i ochrona srodowiska, budowa i eksploatacja maszyn, organizacja i zarzadzanie, agronomia, telekomunikacja, technologia zywnosci i zywienia, astronomia, nauki teologiczne.

Kim są eksperci z Narodowego Centrum Nauki? Część 2

Dwa dni temu w tym wpisie opisałem zbiór danych który zebrałem by zobaczyć kim są eksperci oceniający wnioski w ramach konkursu NCN z roku 2011. Dzisiaj na wykresach pokażę liczby publikacji i liczby cytowań w podziale na dziedziny.

Każdy z poniższych wykresów odpowiada jednej dziedzinie wymienionej w bazie danych Ludzie Nauki. Na wykresie przedstawiono charakterystyki ekspertów z danej dziedziny. Każdy punkt odpowiada jednemu ekspertowi, punkty mogą mieć różne kształty oraz różne kolory.

Kształt punktu zależy od tego czy ekspert jest inżynierem czy nie, inżynierów oznaczyłem trójkątami, nie inżynierów kołami.

Kolor punktu odpowiada identyfikowalności eksperta. Problemy z identyfikacją mogą mieć dwa źródła. Pierwsze poważniejsze, dotyczy około 4% przypadków, gdy istnieją przynajmniej dwa różne wpisy w bazie danych Ludzie Nauki wskazujące na osoby o tym samym imieniu, nazwisku i stopniu/tytule naukowym. Nie sposób odgadnąć która z tych osób jest naszym ekspertem, więc do analiz włączone są wszystkie ,,możliwe osoby”. Zwiększa to liczbę osób nieznacznie. Drugi problem dotyczy bazy danych ,,Publish or Perish”. Jeżeli istnieją przynajmniej dwie osoby o tym samym imieniu i nazwisku to niesposób automatycznie rozróżnić ich dorobków. Dla takiej grupy osób policzyć można jedynie sumę wszystkich publikacji i sumę wszystkich cytowań. Bardzo często zdarza się, że eksperta udało się dokładnie zidentyfikować po stopniu/tytule naukowym ale nie udało się oddzielić publikacji imienników. Na czarno i jasno-czerwono zaznaczeni są eksperci, którzy na podstawie bazy Ludzie Nauki mają unikatową kombinację imienia i nazwiska. Na szaro i ciemno-czerwono eksperci dla których jest więcej niż jeden wpis, przez co potencjalnie ich charakterystyki zostały błędnie zawyżone przez połączenie wyników różnych osób.

Kolorem jasno/ciemno-czerwonym zaznaczono kobiety, kolorem czarnym/szarym mężczyzn. W przypadku kobiet, wiele z nich ma podwójne nazwisko, co też może wpłynąć na statystyki cytowań i publikacji, dane te należy traktować poglądowo.

Zielonymi przerywanymi liniami zaznaczam mediany dorobku ekspertów, których udało się jednoznacznie zidentyfikować.

Update: ponieważ otrzymałem informacje, że rysunki w formacie svg nie u wszystkich poprawnie się wyświetlają, więc zamieniłem je na png, po kliknięciu otworzą się rysunki w postaci wektorowej.

 
Lista dziedzin w porządku określonym przez liczbę ekspertów (linki do poniższych wykresów):
biologia, nauki chemiczne, fizyka, medycyna, informatyka, ekonomia, nauki weterynaryjne, nauki historyczne, automatyka i robotyka, nauki prawne, nauki filologiczne, mechanika, matematyka, biologia medyczna, nauki medyczne, geografia, geologia, nauki filozoficzne, nauki farmaceutyczne, socjologia, inzynieria materialowa, technologia chemiczna, nauki o sztukach pieknych, zootechnika, psychologia, pedagogika, nauki o polityce, inzynieria i ochrona srodowiska, budowa i eksploatacja maszyn, organizacja i zarzadzanie, agronomia, telekomunikacja, technologia zywnosci i zywienia, astronomia, nauki teologiczne.

Kim są eksperci Narodowego Centrum Nauki?

Pieniędzy na naukę w Polsce jest mało (jeżeli porównać z zachodnimi sąsiadami), dlatego dzielenie tych pieniędzy budzi zazwyczaj emocje i burzliwe dyskusje. W przypadku pierwszego konkursu grantowego organizowanego przez NCN (Narodowe Centrum Nauki) tych emocji było sporo, krytykowano miedzy innymi wybór recenzentów i ekspertów. Tak się złożyło, że NCN nie ujawniło listy recenzentów ale ,,prawie” ujawniło listę ekspertów. Piszę ,,prawie” ponieważ lista ekspertów przedstawiona na tej stronie jest bez podziału na panele, przez co mało użyteczna. W prasie znaleźć można pojedyncze głosy (jak np ten) przekonujące czytelnika, że eksperci mają znaczący dorobek, ale te informacje dotyczą jednego panelu i bez nazwisk trudno je zweryfikować.

Więc plan na ten tydzień to przyjrzenie się bliżej ekspertom NCN. Nie mam zamiaru oceniać osób, ponieważ w wielu przypadkach ich dorobek jest o rząd lub rzędy wielkości większy niż mój, chciałbym jedynie pokazać jak wygląda dorobek ekspertów z rożnych dziedzinach. Ponieważ dane zbierane były automatycznie więc podczas zbierania zdarzyć się mogło, że komuś niedoszacowano albo przeszacowano. Dlatego nie ma sensu oceniać jednostek, ale można przyjrzeć się całej populacji. Mam nadzieję, że informacje o dorobku ekspertów będą użyteczne nie tylko w kontekście konkursów NCN, ale też młodym ludziom dadzą wyobrażenie jak wyglądają dorobki osób w kraju uznanych. Koniec końców, do wykonania tych wizualizacji użyłem danych z trzech źródeł, z których każde starało się dostęp do danych ograniczyć, więc samo wyciąganie danych było dobrą zabawą.

Skąd są dane ?

Informacje o imionach i nazwiskach ekspertów wyciągnięte są z tego dokumentu.

Aby nie analizować ekspertów z różnych dziedzin w jednym worku z bazy danych Ludzie Nauki OPI wyciągnąłem informację o dziedzinie w której pracują eksperci (około 4% osób nie udało mi się jednoznacznie zidentyfikować ponieważ kilka osób ma identyczne imię, nazwisko i tytuł). Należy podkreślić, że dziedzina wskazana w bazie OPI nie musi mieć nic wspólnego z panelem w którym ekspert zasiadał. Dzięki podziałowi na dziedziny unikniemy mieszania humanistów ze ścisłowcami.

Mała modyfikacja programu Publish or Perish (zobacz tutaj) pozwoliła na ściągnięcie informacji o g-liczbie cytowań, g-liczbie publikacji i g-h-indeksie oszacowanych na bazie Google Scholar. Piszę g-* ponieważ ta wyszukiwarka ma tendencje do zawyżania wskaźników. Jest jednak łatwym do weryfikacji punktem odniesienia.

Co w danych piszczy?

Dzisiejszy wpis to rozgrzewka opisująca jakie dane są zebrane. Dzisiaj będzie mnie interesowało to jaki stopień naukowy i jakie dziedziny znajdziemy wśród ekspertów. Przyszłe analizy liczby cytowań i h-indeksu będziemy przeprowadzać osobno dla każdej z dziedzin.

Rozkład stopni naukowych wśród ekspertów jest następujący:
prof. dr hab. (298), dr hab. (87), prof. dr hab. inz. (76), dr hab. inz. (26), dr (13), ks. dr hab. (3), dr inz. (3), prof. (2), ks. prof. dr hab. (2), przew. kwal. II (1), prof. przew. kwal. II (1), prof. dr inz. (1), prof. dr hab. przew. kwal. I (1), o. prof. dr hab. 1.
Zobaczmy jak te liczby wyglądają w rozbiciu na dziedziny.

[Update: Przedstawiona jest poniżej wersja rastrowa, po kliknięciu na wykres otworzy się wersja wektorowa, skalowalna, znacznie lepiej wyglądająca.]

Rysunek 1. Dziedziny w których pracują eksperci NCN. W kolejnych wierszach przedstawiono dziedziny KBN w których pracują eksperci. Ponieważ są eksperci pracujący w kilku dziedzinach, więc suma wszystkich liczb w nawiasach jest większa niż liczba ekspertów. Najczęściej współwystępujące pary dziedzin połączone są linią po prawej stronie. Po lewej stronie kolorami oznaczono skład tytułów i stopni ekspertów z danej dziedziny. Jaśniejsze kolory odpowiadają osobom bez inżyniera, ciemniejsze osobom z inżynierem. Osoby ,,tylko” z habilitacją są zaznaczane na zielono, profesorowie na niebiesko.

Wszystkich dziedzin jest sporo, ale dla części jest niewielu reprezentantów, przez co w dalszych analizach skoncentrujemy się na najliczniejszych dziedzinach do socjologi włącznie.

Dziś pokażę jeszcze rozkład płci ekspertów w każdej z dyscyplin.

Rysunek 2. Rozkład płci ekspertów NCN w rozbiciu na dziedziny.

 

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.

 

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.

 

 

 

O czym się mówi w Sejmie i Senacie

Kontynuując wpis sprzed dwóch dni, dziś będzie o Sejmie i Senacie. Interesującym portalem nawiązującym do tematu smart voting jest Sejmometr (http://sejmometr.pl/). Umożliwia on obserwowanie prac Sejmu i Senatu. Niebawem dostępne będzie API pozwalające na automatyczny dostęp do zbieranych w ramach tego projektu danych. W bardzo estetyczny i łatwy w nawigacji sposób przedstawione są informacje o posłach i senatorach, ich wypowiedzi, wyniki głosowań itp. Bardzo ciekawy portal dla osób chcących być naprawdę na bieżąco.

Rzecz której mi brakuje to spojrzenie na prace sejmu ,,z lotu ptaka’’. Agregaty pozwalające na orientację co się działo przez ostatnie pół roku/dwa lata. Rozwiązania w stylu chmura tagów, z informacjami jakie tematy są najczęściej poruszane albo analiza częstości słów byłoby mile widziane. Tagi mogłyby być generowane automatycznie lub jeszcze lepiej, użytkownicy portalu mogliby otagowywać wystąpienia posłów. Poczekajmy więc na API i zobaczymy co w tym temacie można zrobić.

A w międzyczasie pokażę przykład analizy danych pochodzących ze stenogramów, z lotu bardzo wysoko latającego ptaka. Punktem wyjścia są dane z Korpusu Języka Polskiego (http://korpus.pl/), projektu rozwijanego przez IPIPAN. Wiele tekstów zostało poddanych analizie w ramach tego korpusu, między innymi stenogramy z posiedzeń Sejmu i Senatu. Dla każdego z posiedzeń, dla każdego (ok., dla większości) wypowiedzianego słowa przypisano odpowiedni fleksem, czyli jedną z ponad dwudziestu klas gramatycznych. Więcej informacji o fleksemach znaleźć można np. tutaj. Mamy więc zbiór danych dla 65 milionów słów wypowiedzianych przez 4 kadencje Sejmu i 4 kadencje Senatu z informacją do której klasy fleksyjnej (których klas) należy to słowo. Możemy teraz z takiego zbioru danych policzyć tablice rozdzielczą (krzyżową, kontyngencji, zwał jak zwał) z informacją w której kadencji Sejmu i Senatu padło ile słów z odpowiedniej klasy fleksyjnej (opisującej formę i znaczenie słowa). Tę tablicę liczb (27 x 8) umieściłem w pakiecie PBImisc programu R w zbiorze danych SejmSenat. Jak znaleźć wzorce w takiej tablicy 217 liczb? Użyjemy do tego celu analizy odpowiedniości / analizy korespondencji. Analiza ta pozwala na określenie, które wiersz (fleksemy) i kolumny (kadencje Sejmu i Senatu) mają podobne profile używalności słów a również które wiersze / kolumny współwystępują częściej niż wskazywałaby na to częstość występowania w języku. Trochę więcej o stronie technicznej później, a na razie zobaczmy wyniki analizy korespondencji na zbiorze danych o używalności klas fleksyjnych w stenogramach  Sejmu i Senatu.

[Rys. 1. Czerwone strzałki odpowiadają profilom stenogramów z posiedzeń Sejmu Senatu, niebieskie punkty odpowiadają profilom używalności fleksemów. Im bliższe zwroty tym większa zależność pomiędzy profilami. W analizie usunięto fleksem interp, ponieważ bardzo odstawał od pozostałych. Wersja png znajduje się tutaj. Warto ten wykres powiększyć by zobaczyć gdzie są jakie fleksemy, na szczęście jest to grafika wektorowa.]

Osie pozioma i pionowa odpowiadają dwóm automatycznie znalezionym komponentom. Tak się jednak składa, że te komponenty mają naturalną interpretację, którą łatwo odczytać z wykresu. Pierwszy komponent (oś pozioma) odpowiada za zmiany w używalności fleksemów pomiędzy Sejmem a Senatem. Im wyższa wartość pierwszej składowej, tym profil używalności bardziej charakterystyczny dla stenogramów z Senatu. Drugi komponent odpowiada za zmianę w używalności fleksemów z czasem, im wyższa wartość drugiej składowej tym profil bardziej charakterystyczny dla starszych  posiedzeń.

Pięknie. Skoro osie mają taką naturalną interpretację, to zobaczmy jakie fleksemy są częściej używane w Sejmie, a które w Senacie, które były częściej używane kiedyś a które obecnie.

Na osi poziomej dwa interesujące fleksemy to np. num i depr. Num to skrót od ,liczebnik główny’ a depr to skrót od rzeczownik deprecjatywny (najczęściej używany do oceny negatywnej).  To co można więc z wykresu łatwo odczytać (i sprawdzić ręcznie w tablicy kontyngencji) to, że w stenogramach z Senatu częściej występują liczebniki niż w stenogramach z Sejmu, widać więcej mówi się o liczbach, konkretach. W stenogramach z Sejmu częściej występują rzeczowniki w znaczeniu deprecjatywnym, widać atmosfera jest gorętsza.

Na osi pionowej interesujące fleksemy to np. winien i będzie. Skrót ‘winien’ odpowiada słowom typu ,winien’, ‘powinien’ itp., skrót ‘bedzie’ odpowiada przyszłej formie czasownika być. Kiedyś jak widać częściej w Sejmie i Senacie mówiło się o tym jak być powinno, tendencja jest tak aby częściej mówić o tym jak będzie.

Podsumowując. Można z danych o stenogramach szukać trendów widocznych w większej skali czasowej. Potrzebujemy tylko dostępu do przetworzonych stenogramów i pomysłu na to czego w tych stenogramach szukać.

W programie R jest kilka pakietów do analizy korespondencji, np., pakiet ca i anacor, można o nich przeczytać np. tutaj (pakiet anacor, pakiet ca). W tych artykułach przedstawione są zarówno  podstawy matematyczne jak i przykłady zastosowań. Technicznie, podobnie jak dla PCA, bazuje się na dekompozycji SVD, ale oczywiście ważne jest co chcemy dekomponować.

Kod R wraz z dokładniejszymi wynikami analizy korespondencji znajduje się tutaj.

 

 

Czym jeżdżą nasi wybrańcy, czyli rzut okiem na oświadczenia majątkowe połów i senatorów

Dzisiejszy wpis ma zawierać będzie trzy elementy, obywatelski, humorystyczny i techniczny.

Element obywatelski:

Jakiś czas temu przedstawiłem kilka wizualizacji danych dotyczących głosowań posłów z poprzedniej kadencji (dot glosowań,dot głosowań 2). Podsumowania przebiegu obrad sejmu to ważna sprawa, podsumowanie pracy posłów również. Zamiast pokazywać kto ile pieniędzy wydał na diety i paliwo może lepiej byłoby zbadać czy dany poseł na to paliwo i diety zapracował. Mało kto ma tyle czasu i zaparcia by czytać stenogramy z obrad, nawet podsumowania każdego z głosowań ilu za ilu przeciw to również nudnawa lektura. Z drugiej strony warto wiedzieć nad czym pracują nasi wybrańcy i kto jakie poglądy reprezentuje. Nie tylko od święta gdy podgrzewa się opinię publiczną debatą na temat definicji życia. Są na szczęście portale i stowarzyszenia działające w temacie tzw. smart voting. Jak by tego nie tłumaczyć tego terminu, ich celem jest przybliżenie działalności sejmu i senatu zwykłym ludziom po to by Ci lepiej wybierali w kolejnych wyborach lub po prostu tworzyli presję. Jedna z takich organizacji to stowarzyszenie art.61 (http://art61.pl/) prowadzące obywatelski portal informacyjny ,,Mam prawo wiedzieć’’ (http://mamprawowiedziec.pl). Jakiś czas temu otrzymałem od nich dwa zbiory danych, jeden dotyczył poglądów kandydatów a drugi oświadczeń majątkowych złożonych przez posłów i senatorów z poprzedniej kadencji. Ok, zastanówmy się co ciekawego można z takich danych pokazać.

Element humorystyczny:

Oświadczenia majątkowe nie są zbyt pasjonującą lekturą same w sobie. Można oczywiście skupić się na pokazaniu najbogatszych lub najbiedniejszych posłów ale nie ma w takim zestawieniu zabawy. Więc dziś zrobimy coś mniej poważnego ale bardziej zabawnego.

Zobaczymy jakie samochody posłowie i senatorowie zadeklarowali w ostatnim złożonym oświadczeniu majątkowym. Ponieważ oświadczenia wypisuje się ręcznie, portal ,,Mam prawo wiedzieć’’ poświęcił sporo czasu by te dane zdigitalizować do postaci nadającej się do dalszej obróbki. Nie sposób jednak uniknąć błędów i niespójności, poniższe wizualizacje dotyczą więc tylko dych oświadczeń w których udało się automatycznie zidentyfikować markę i model auta.

Na poniższej wizualizacji zaznaczono ile sumarycznie samochodów określonego modelu i marki zadeklarowali w oświadczeniach posłowie i senatorowie.

[Rys 1. Liczba aut określonych marek i modeli wskazanych w ostatnim oświadczeniu majątkowym przez posłów z 6 kadencji. Każdy prostokąt oznacza jedno auto. Szerokość i wysokość prostokąta jest proporcjonalna do rozmiarów auta. Jeżeli nie wyświetla się wersje svg zobacz tutaj wersję png.]

[Rys 2. Liczba aut określonych marek i modeli wskazanych w ostatnim oświadczeniu majątkowym przez senatorów z 7 kadencji. Każdy prostokąt oznacza jedno auto. Szerokość i wysokość prostokąta jest proporcjonalna do rozmiarów auta. Jeżeli nie wyświetla się wersje svg zobacz tutaj wersję png.]

 

Element techniczny:

Kod źródłowy użyty do wygenerowania tych rysunków znajduje się tutaj.

Dane do analizy zostały przekazane jako pliki Excelowe, po jednym na jednego posła/senatora (łącznie ponad 570 plików Excelowych). Pliki takie są czytelne dla człowieka ale do automatycznego przetwarzania nadają się tak sobie (różna liczba wierszy i kolumn, posklejane komórki, kolory, różne standardy oznaczania samochodów, różne informacje podawane nt. samochodu). Zazwyczaj do odczytania danych z plików w formacie xls używa się funkcji read.xls(). Ta funkcja jest dostępna w pakiecie xlsReadWrite, który wykorzystuje zewnętrzną bibliotekę dll napisaną w Delphi do odczytywania plików xls, oraz w pakiecie gdata, który wykorzystuje moduły Perla do konwersji formatu xls do formatu csv a później odczytuje dane przez funkcję read.csv. Niestety w przypadku otrzymanych plików żadna z tych funkcji nie dawała zadowalających wyników. W większości przypadków funkcje te odczytywały wyłącznie wartości NA. Najlepsze rozwiązanie udało się otrzymać z użyciem funkcji sqlFetch() i odbcConnectExcel() z pakietu RODBC. Do tego kilka różnych warunków i wyszukiwanie wzorców z użyciem funkcji grep() wystarczyło by zidentyfikować pole w którym w oświadczeniach majątkowych wpisane są posiadane samochody.

Kolejnym problemem jest niesamowita liczba literówek dotyczących wpisywanych nazw modeli aut. Np. w oświadczeniach posłów model Oktavia występował w 6 różnych formach łącząc różne możliwe wielkości liter oraz nazwę modelu zamiennie stosując litery c/k i w/v. Podobną liczbę wariantów uzyskała Corolla. Poza tym nazwy modeli i marek aut otoczone były różnymi informacjami, czasem o przebiegu, czasem o roku produkcji, czasem o wartości. Aby z tego morza tekstu wyłowić nazwy modeli wykorzystałem dane z allegro, które zebrałem jakiś czas temu (link). Można teraz szukać w tekście oświadczeń majątkowych słów, które przypominają nazwy modeli i marek znane z danych z allegro. Dzięki temu można odsiać większość śmieciowych słów a aby poprawnie odczytać większość modeli wystarczy juz tylko około 100 dodatkowych ręcznie wprowadzonych reguł.

Ostatnia rzecz dotyczy wielkości aut. Otóż stwierdziłem, że fajnie byłoby zaznaczyć jak duże są pokazywane auto. Nie każdy musi wiedzieć czy VW Polo jest większy czy mniejszy od Passata. Poza tym o ile dotąd czytelnik mógł zadawać sobie pytanie czy ta automatyzacja ma sens, czy nie lepiej byłoby przeczytać dane z oświadczeń i z użyciem ,,ludzkiego przetwornika’’ zbudować nową tabelkę z informacją o tym kto jakie auto ma, tak w sposób ręczny szukanie informacji o parametrach technicznych aut to prawdziwie syzyfowa praca. Więc napisałem mały programik parsujący strony www.motofakty.pl i odczytujący parametry techniczne różnych wersji i modeli aut. Na przedstawionej wizualizacji szary prostokąt oznacza wymiary 2m szerokości i 5m długości, a kolorowy prostokąt oznacza średnie wymiary danego modelu (parametry te różnią się dla rocznika i typu nadwozia).

Udało się uzyskać pełną automatyzację, dzięki której było łatwo wygenerować podobny wykres dla senatorów i będzie łatwo powtórzyć razem z nowymi oświadczeniami majątkowymi.