Team orders, czyli czy my potrzebujemy tylu posłów

Jak wygląda wybór posłów do sejmu wszyscy wiemy, możemy zakreślać dowolne nazwiska na liście ale w przecież nie wybieramy ludzi tylko kluby. Wybrani posłowie nie mają więc powodu do bycia wiernymi wyborcom ale władzom klubu. Co jakiś czas różne partie przebąkują o okręgach jednomandatowych w sejmie ale już chyba nikt nie wierzy w te deklaracje.

Zobaczmy jak samodzielnie głosują posłowie klubów. Dla każdego głosowania i każdego klubu biorącego udział w głosowaniu policzyłem jaki procent posłów zagłosowało tak samo jak większość posłów tego klubu. Oczywiście nawet jeżeli wszyscy posłowie klubu zagłosują tak samo to wcale nie znaczy, że są jakieś ,,rozkazy” klubowe, nie mniej samodzielnie myślące osoby muszą mieć czasami różne opinie. Zobaczmy więc jak to jest z tą samodzielnością.

Pierwsza rzecz, którą sprawdzimy to dla każdego klubu ile było takich głosowań, że wszyscy posłowie danego klubu głosowali tak samo.

(Należy zaznaczyć, że klub DKP nie istniał przez całą VI kadencję sejmu, licząc procent głosowań ograniczamy się tylko do głosowań podczas których posłowie tego klubu głosowali, podobnie dla pozostałych klubów).

I może jeszcze dla porównania zobaczmy ile było takich głosowań, że 90% posłów klubu głosowało tak samo

Jak widzimy, dla większości klubów w ponad 90% głosowań ponad 90% posłów głosowało tak samo. Czy my naprawdę potrzebujemy 460 posłów?

Zaskoczyć może też obserwacja, że PO głosuje bardziej jednorodnie niż PiS. Wydawać mogłoby się, że PiS głosuje tak jak chce prezes a PO to partia w której ceni się dyskusje i różnice głosów. Jak widać jednak gdy przychodzi do głosowań w Sejmie to żadna duża partia nie pozostawia wiele miejsca na demokrację.

Oczywiście 90% dla małego klubu i 90% dla dużego klubu to dwie różne wartości. Zobaczmy więc jak spójność głosowań ma się do wielkości klubu

Utrzymanie 100% zgodności dla dużego klubu jest prawie niemożliwe (przynajmniej w teorii, w praktyce to , więc około 70% głosowań), dlatego ciekawsze wyniki są dla 90% zgodności w klubie.

Można by przypuszczać że tak wysoka zgodność wynika z tego, że temat do głosowania jest oczywisty dla posłów i nie powinno zaskakiwać, że głosują tak samo. Weźmy więc dwa największe kluby i zobaczmy jak ich głosy sa zgodne.

Zaczniemy od obrazka, każdy punkt to głosowanie, na osi OX zaznaczono jaki procent posłów z PiS głosował za na tym głosowaniu, na osi OY jako procent posłów z PO głosował za.

Widać że zazwyczaj kluby głosują za lub przeciw. Opiszmy więc ten obrazek za pomocą 9 liczb. Podzielmy głosowania na 3 kategorie dla każdego z klubów, oznaczające czy nie więcej niż 10% posłów z klubu było za, czy od 10 do 90% było za i czy powyżej 90% było za.

Otrzymamy taką tabelkę

Czytaj dalej Team orders, czyli czy my potrzebujemy tylu posłów

(Klubowe) wędrówki posłów

Wczoraj dodałem zbiór danych o głosowaniach w VI kadencji Sejmu. Przy okazji w tym zbiorze znajdują się również informacje o afiliacji posłów podczas głosowań. Część posłów zmieniała swoje barwy klubowe, niektóry nawet kilka razy. Poniżej tabelka z liczbą posłów która w trakcie VI kadencji należała do x różnych partii.

Zbiór danych opisujący głosowania posłów VI kadencji

Dziś bardzo smakowity zbiór danych. Wybory za kilka dni więc mam nadzieje, że uda się przed wyborami przygotować jeszcze jakąś wizualizacje.

Ale od początku. Kilka dni temu znalazłem blog  Januarego Weinera na którym autor umieścił interesująca analizę danych o głosowaniach posłów VI kadencji. Link do tego wpisu jest tutaj: http://biokompost.wordpress.com/2011/10/01/statystyczna-mapa-sejmu/. Znajdziecie na tym blogu kilka interesujących wizualizacji, głównie badających na ile podobnie głosowali rożni posłowie. Jest też filmik pokazujący zmiany w czasie, wszystko z użyciem podstawowych technik redukcji wymiaru więc warto przeczytać.

Zapytałem Januarego o te dane i wczoraj je dostałem. Mamy więc pierwszy zbiór danych, którego sam nie zebrałem, mam nadzieje że to pierwszy z wielu. Dane są jak już wspomniałem super ciekawe, zostały wyciągnięte ze strony orka.sejm.gov.pl a następnie wyczyszczone. Skrypt R wczytujący te dane znajdziecie tutaj. Katalog z danymi w postaci tekstowej znajdziecie tutaj. Wizualizacje dotyczące tego zbioru pojawią się wkrótce.

Btw: w rozwiniętych demokracjach rząd udostępnia dane dotyczące głosowań w postaci łatwo dostępnej (czyli nie kolekcja pdf’ów), dotyczące prac nad ustawami it. Dane udostępnia i wykonuje jakieś wstępne analizy, np: http://www.govtrack.us/congress/repstats.xpd.

Regresja liniowa w R vs SAS

Wielką zaletą prowadzenia laboratoriów jest to, że gdy nie ma się czasu na realizację jakiegoś niewielkiego projektu, zawsze można zadać go studentom jako pracę na ocenę. W poprzednim roku prowadziłem przedmiot R i SAS dla około 30 studentów (nigdy nie wiadomo jak liczyć studentów, czy tych zapisanych w USOSie, czy tych co rzeczywiście przychodzą na zajęcia, czy tych co przystępują do zaliczenia). Ostatni projekt dotyczył między innymi porównania czasów wykonywania regresji liniowej na modelach o tym samym rozmiarze w R i w SAS. Kilkanaście rozwiązań i kilkanaście różnych odpowiedzi. Poniżej przedstawię wyniki studenta, Michała Marciniaka. Porównania dotyczą seryjnych wersji R (2.13.0 32bit) i SAS (9.2 32 bit). Wykonano je na Windowsie 7 procesor intel i5 i 4GB RAM.

Poniżej na trzech wykresach przedstawiono czasy wykonania regresji liniowej dla modelu z 10, 100, 1000 predyktorami oraz od 1tys do 100 mln wierszy. Dla R porównano czasy działania funkcji lm, lm.fit (odpada tworzenie model.frame), glm i glm.fit. Dla SASa procedury GENMOD, MIXED, GLM i REG.

 

Porównywane funkcje z pakietu R wykorzystują dekompozycje QR, procedury programu SAS pracują na macierzy wariancji-kowariancji zmiennych objaśnianych i objaśniających. Dla małych zbiorów danych funkcje R są szybsze, dla dużych przewagę ma SAS. W R najszybsza jest oczywiście funkcja lm.fit, wymaga ona jednak zakodowania zmiennych jakościowych wcześniej. R operuje na danych w przechowywanych pamięci więc wielkość danych na których możemy wykonać regresje jest ograniczona ilością posiadanego RAM. A w wersji 32bitowej również maksymalną ilością pamięci, którą można zaadresować dla jednego programu czyli 2GB dla Winows i 4GB dla Linuxa. W przypadku SASa nie mamy takiego ograniczenia, niezbędne dane doczytywane są na bieżąco z dysku.

Dwa komentarze dotyczące tych porównań. Gdyby użyta była wersja 64bit R to możnaby przetwarzać większe zbiory danych niż ww. 3mln wierszy. Wykonywanie regresji można znacznie przyśpieszyć instalując optymalizowaną dla procesora (lub wielowątkową) bibliotekę BLAS.

Kody użyte do generowania danych i przygotowania wykresów znajdują się w katalogu tutaj.

 

Ranking uczelni i paretooptymalność

Paretooptymalność oznacza, że nie ma innych obiektów lepszych w każdym rozważanym sensie. Poza tym to ładne słowo, jedno z niewielu których jeszcze nie zapomniałem ze wstępu do teorii gier. Front paretooptymalny to zbiór obiektów, takich że od żadnego z nich nie istnieje obiekt jednostajnie lepszy. Obiekty z frontu są nieporównywalne.

Tak tez pewnie jest z uczelniami, jedne są lepsze jeżeli chodzi o współpracę z przemysłem, inne mogą mieć więcej publikacji, jeszcze inne mogą mieć lepszy PR. Na kilku rysunkach będę chciał pokazać w jakich kategoriach które uczelnie są wysoko. W zbiorze danych o rankingu z Rzeczpospolitej mamy 32 atrybuty, to za dużo a techniki skalowania nie doprowadziły do niczego co byłoby łatwe w interpretowaniu. Dlatego poniżej te 32 atrybuty zamieniłem w 6 atrybutów odpowiadających 6 grupom atrybutów z oryginalnego rankingu. Nowy atrybut to suma punktów z atrybutów dla danej grupy, tz. atrybut prestiż to suma punktów za preferencje pracodawców, ocenę kadry akademickiej, uznanie międzynarodowe i wybór olimpijczyków. Reszta podobnie. Na każdym z poniższych wykresów pokazywane jest 90 uczelni w układzie opisanym przez dwa atrybuty. Każdy punkt odpowiada jednej uczelni. 10 uczelni które mają najwyższą sumę atrybutów jest oznaczonych przez nazwy a kropki odpowiadające tym uczelnią maja ciemniejsze kolory. Kolory oznaczają typ uczelni (wyróżniłem 6 typów, w tym uniwersytety, politechniki itp). Jasny pomarańcz to politechnika która nie jest jedną z 10 najlepszych uczelni w danym zestawieniu, ciemno pomarańczowy to politechnika która znalazła się w 10 najlepszych w danym zestawieniu. Obie osie są w skali pierwiastkowej bo tak lepiej wyglądają.

Jeżeli mamy 6 atrybutów to wszystkich par jest 30 (kolejność ma znaczenie bo mózg inaczej interpretuje składowa pozioma a inaczej pionową). Wykresy dla wszystkich par są w katalogu tutaj. Poniżej przedstawiam 6 wybranych najciekawszych wykresów. Skrypt użyty do wygenerowania tych wykresów jest tutaj. Informacja, które charakterystyki agregują poszczególne grupy można odczytać też z tego wykresu.

Efektywność naukowa a innowacyjność.

 

Żółte kropki na tym wykresie oznaczają uniwersytety medyczne. Są one oznaczone jako uczelnie o bardzo wysokiej efektywności naukowej ale bardzo niskiej innowacyjności. Liter rankingu Rzeczpospolitej (uniwersytet Warszawski) nie jest najlepszy ani pod względem efektywności naukowej ani pod względem innowacyjności. UJ bije go w obu przypadkach. Jeżeli chodzi o innowacyjność to najlepsze są politechniki (Wroclawska, Warszawska, Gdanska, Poznanska) stojące tuz za AGH. Ale do tego jeszcze wrócimy.

Umiędzynarodowienie a potencjał naukowy.

 

Umiędzynarodowienie nie jest jakoś szczególnie silnie skorelowane z potencjałem naukowym. Czołówka najbardziej umiędzynarodowionych uczelni zawiera i te o wysokim potencjale naukowym (UW, UJ, swoją drogą termin potencjał naukowy brzmi podejrzanie) i te o wynikach gorszych niż średnia w tej kategorii (Akademia Koźmińskiego).

 

Warunki studiowania a potencjał naukowy

Zależność pomiędzy warunkami studiowania a potencjałem naukowym jest ciekawa. Te dwie cechy wydają się ze sobą korelować, ale jest to wynikiem obecności dwóch skupisk (paradoks Simpsona). Uczelnie o przeciętnych lub niskich warunkach studiowania i przeciętnym lub niskim potencjale naukowym (w tej grupie nie widać korelacji) i grupie kilku uczelnie w którym oba te współczynniki są wysokie.

Btw: W kategorii warunki studiowania wygrywa UAM. Tam jeszcze nie pracowałem, ale proszę śmiało o przesyłanie ofert na gmaila.

Potencjał naukowy a prestiż

Słowo prestiż jest już tak nadużywane, że trudno nawet powiedzieć co to oznacza w kontekście uczelni wyższej. Jest to jeden z najbardziej skośnych charakterystyk, tylko 7 uczelni ma ten współczynnik powyżej 100 a zdecydowana większość ma ten współczynnik poniżej 50.

Ciekawym eksperymentem będzie poprowadzić linię regresji na powyższym rysunku i zobaczyć prestiż których uczelni przewyższa ,,rzeczywisty” potencjał naukowy (PR robi swoje) a dla których uczelni jest on zaniżony.

Innowacyjność a potencjał naukowy

 

Podobnie wracamy do innowacyjności. Moim zdaniem jest to jedna z ważniejszych wartości wartych promowania. Potrzebujemy jak ryba wody kreatywnych rozwiązań, pomysłów, odważnych działań, zamiast walenia pałkami po łapach lub głowach tych co się wychylają.

Na tym wykresie ciekawie rozkładają się trzy grupy punktów. Niebieskie kropki oznaczają akademie (wojskowe, rolnicze, humanistyczne), za wyjątkiem AGH wszystkie pozostałe akademie mają niską innowacyjność i niski potencjał naukowy. Pomarańczowe kropki to politechniki. Większość z nich cechuje się wysoką innowacyjnością i potencjałem naukowym średnio trochę lepszym niż średnia (Maturzyści, idźcie studiować na Politechniki, potrzebujemy w kraju więcej inżynierów). Fioletowe kropki to uniwersytety, te charakteryzują się wysokim potencjałem naukowym ale innowacyjność jest tylko trochę lepsza niż średnia.

 

Podobieństwo pomiędzy kryteriami oceny uczelni wyższych w rankingu Rzeczpospolitej

Ten post to przymiarka do kolejnego, jest to więc wpis roboczy. Celem tego wpisu jest przyjrzenie się jak mają się do siebie 32 kategorie, charakterystyki, którymi w rankingu Rzeczpospolitej opisane są uczelnie wyższe.

Zaczniemy od korelogramu (przypominam że kodu do programu R, którymi wygenerowano poniższe wykresy znajdują się tutaj). Na korelogramie przedstawiono jakie sa korelacje pomiędzy róznymi kategoriami (w podziale na 6 wyróżninych grup kategorii). Im bardizej czerwona elipsa tym większa korelacja dodatnia, im bardziej niebieska tym silniejsza korelacja ujemna. Ponieważ rozkłady tych współczynników sa wyjątkowo skośne, na wykresie przedstawiane sa korelacje rangowe Spearmana.

Komentownaie zacznijmy od najsilniejszej ujemnej korelacji, dotyczy ona pary kategorii ‘Nasycenie kadrą profesorską’ i ‘osiągnięcia sportowe’. Hmm, można by się pokusić o kilka złośliwych komentarzy co do stanu kadry profesorskiej. Co ciekawe kategoria ,Nasycenie kadrą profesorską’ koreluje ujemnie z prawie wszystkimi innymi kategoriami (również z liczbą cytowań i publikacji, hmm, może więc przekonam dyrekcję mojego instytutu, żeby zamiast zatrudniać jednego profesora zatrudnili kilku energicznych doktorów).

Gdybym był młodym człowiekiem (tutaj wstaw kropkę) po maturze, wybierającym uczelnie wyższą, najbardziej interesowałaby mnie kategoria ‘Preferencje pracodawców’. Kategoria ta słabo koreluje z liczbą publikacji czy cytowań. Pełen korelogram w formacie pdf można znaleźć tutaj).

 

Jako uzupełnienie powyzszego korelogramu dodajmy jeszcze dendrogram dla charakterystyk oraz wynik skalowania wielowymiarowego charakterystyk na dwuwymiarowa płaszczyznę.

 

 Wniosek, który chcę obronić jest taki, że pogrupowanie 32 kategorie w 6 grup nie zostało wykonane tak by kategorie wewnątrz grupy były najbardziej do siebie podobne. Są podobne, ale w wielu przypadkach nie bardziej niż kategorie z innych grup. W kolejnym wpisie na blogu będę zamiast wszystkich 32 charakterystyk operował na grupach kategorii, sumując punkty z kategorii wewnątrz każdej z 6 grup. Wniosek jest więc taki, że być może te 32 charakterystyki da się lepiej podzielić na grupy, a mając lepszy podział i kolejne obliczenia można powtórzyć by dostać ciekawsze/czytelniejsze wyniki.

 

 

Podobieństwa pomiędzy uczelniami wyższymi w Polsce

Kilka dni temu dodalem do listy zbiorow danych wyniki rankingu szkół wyższych wykonanegp przez Gazetę Rzeczpospolita.

Redaktrzy gazety wykonali świetną pracę wyznaczając wartości 32 charakterystyk podzielonych na 6 grup (prestiż, innowacyjność, potencjał naukowy, efektywność naukowa, warunki studiowania i umiędzynarodowienie) dla 90 uczelni wyższych. Niestety plan zrobienia rankingu nie jest zbyt trafiony, trudno uporządkować jakkolwiek sensownie 90 uczelni z których większość ma różne profile kształcenia.

Naszym celem na dziś jest przyjrzenie się bliżej tym danym, może uda się znaleźć coś ciekawego w danych a może przynajmniej poćwiczymy wizualizacja wielowymiarowych danych.

Zacznijmy od wykonania hierarchicznej analizy skupień dla uczelni. Krótkie eksperymenty z odległością i metoda łączenia doprowadziły do wyboru odległości euklidesowej i metody lączenia średniego. Dla 90 uczelni zbudowano poniższy dendrogram (wersję pdf tego rysunku znaleźc można tutaj).

Co ciekawego zobaczyć można na tym dendrogramie? W grupach sa ucezlnie o podobnym profilu. Przy każdej uczelni zaznaczono tez pozycje tej uczelni w rankingu Rzeczpospolitej z roku 2011. Pierwsza szóstka uczelni znalazła się w osobnym poddrzewie dobrze separowanym od pozostałych, nie jest to jednak nic szczególnie ciekawego, pewnie we wszystkich kryteriach te uczelnie wypadają wysoko. Ciekawe pozycje to np. małe poddrzewo zawierające SGH i Akademię Leona Koźmińskiego. Te uczelnie znalazły się na różnych miejscach w rankingu Rzeczpospolitej (odpowiednio 9 i 25) a jednak jeżeli chodzi o profile sa bardzo podobne. Inna podobna para to Wojskowa Akademia Techniczna w Warszawie (pozycja 34 w rankingu) i Szkoła Główna Służby Pożarniczej (pozycja 86), mimo iż w rankingu znajdują się bardzo daleko od siebie, to jeżeli chodzi o profil kształcenia i nacisk na różne aspekty kształcenia wypadają podobnie.

Dlaczego taki dendrogram może być użyteczny? Załóżmy, że ktoś aplikował na SGH bo miał tam brata i brat twierdzi, że dobrze mu się tam studiowało. Załóżmy tez, że się nie dostał i szuka alternatywy. Alternatywą będzie raczej Akademia Koźmińskiego niż Uniwersyte Medyczny w Poznaniu (który w Rankingu jest na kolejnej, 10. pozycji za SGH).

 

 

 

Zbiór danych opisujący jakość uczelni wyższych w Polsce

Kilka dni temu rzeczpospolita umieściła bardzo ciekawy ranking uczelni wyższych w Polsce. Oryginalny zbiór danych znajduje się tutaj. Dużo pracy włożono by zebrać te 3330 liczb które przedstawiono w tym rankingu, szkoda tylko, że jedyne co z nimi zrobiono to konstrukcja rankingu który z założenia nie ma sensu. Jak można w porządku liniowym ułożyć Uniwersytet i Wyższą szkołę Pożarnictwa albo Akademię Medyczną?

Nie można.

Nie można też (o ile się nie jest chory na autyzm) objąć umysłem wszystkich 3330 liczb. Można za to wykorzystać ten zbiór danych do wizualizacji, redukcji wymiarowości, i analizy składowych głównych. Zapowiada się więc świetna zabawa, znaleźć regułę tworzenia rankingu by uczelnia na której się studiuje/pracuje była pierwsza.

Link do katalogu z danymi znajduje się tutaj. Skrypt R wczytujący dane bezpośrednio z internetu znajduje się tutaj. Dane w formacie CSV znajdują się tutaj.

Co się dzieje z cenami mieszkań?

Kilka dni temu pisałem o zmianach w cenach ofertowych cen mieszkań. Również kilka dni temu przeczytałem artykuł na GW o tytule  ”Mieszkań więcej niż kupujących. Ceny mogą jeszcze spaść ” (tutaj link).

Myślę, że każdy po przeczytaniu takiego tytułu ma prawo oczekiwać, że w artykule autor wykaże, że ceny spadają i że spadać będą. W tym kontekście dziwnie wygląda  wykres z tego samego artykułu (wklejony poniżej).

Co prawda miasta zostały ułożone w kolejności od najdroższych do najtańszych, przez co na pierwszy rzut oka nie patrząc an liczby widać wyraźny trend spadkowy, ceny lecą na łeb na szyję. Jednak gdy się przyjrzeć liczbom w trzech miastach ceny wzrosły a w pięciu zmalały. Już nie ma takiej dramatycznej zmiany.

Ok, pomińmy dyskusję czy ta manipulacja percepcją jest celowa czy nie. Zastanówmy się jak inaczej można zaprezentować te same dane. Poniżej dwa wykresy pierwszy nadawałby się do artykułu ,,Ceny mieszkań rosną i ta bańka puchnąć będzie wiecznie”, drugi jest bardziej wyważony.

 

I jeszcze dorzucę kod w programie R, który posłużył do wygenerowania tego obrazka.