Jak pokazać 27 by wyglądało jak 20

Wczoraj studenci z proseminarium prezentowali różne znalezione grafiki dotyczące wyborów i partii politycznych.
Poniższa przypadła mi najbardziej do gustu, pochodzi ze strony szczecinek24.

Co jest w tej grafice ciekawego? Przyjrzyjmy się wysokościom słupków. Po starannym zmierzeniu w programie graficznym mamy:

słupek PO 99 pixeli

słupek PiS 65 pixeli

słupek SLD 25 pixeli

słupek PSL 11 pixeli

Gdybyśmy przeskalowali te pixele tak by PO miało 31 jednostek, to kolejne słupki miałyby następującą liczbę jednostek

PO 31, PiS 20, SLD 8, PSL 3

Ale nijak to nie pasuje do procentów z tego obrazka! Powinno być 31, 27, 16, 7.5

Zobaczmy jak wyglądałby ten wykres, gdyby wysokość słupków odpowiadała wpisanym procentom

 

Różnica pomiędzy Po i PiS nie wygląda tak samo. Poparcie dla SLD po prawej stronie też wygląda lepiej niż po lewej

Btw: dosyć często zdarza mi się krytykować wykresy kołowe za to, że oszukują percepcje. Na co najczęściej rozmówcy odpowiadają, co z tego że oszukują percepcję, skoro i tak podawane są procenty. Więc procenty można sobie porównać. Powyższy przykład powinien pokazać, że nawet jeżeli podamy  procenty to i tak przy szybkim czytaniu opieramy się na grafice i a nie na liczbach. Patrząc na lewy wykres mamy wrażenie że poparcie dla PSL jest znikome, dla SLD małe a dla PO znacznie większe niż dla pozostałych partii. Gdybyśmy porównywali liczby albo słupki z prawego wykresu to już byśmy takiego wrażenia nie mieli.

 

Podkręcone wykresy

Trafiłem dziś na taki wykres:

źródło: Bankier.pl,artykuł http://www.bankier.pl/wiadomosc/Gospodarcze-osiagniecia-partii-politycznych-2417944.html

Artykuł dotyczył dyskusji która partia bardziej zadłuża Polskę, ale odłóżmy na bok politykę i zastanówmy się czemu autor tego wykresu nie wygiął go w rogala lub spirale by uzyskać jeszcze dziwniejszy wizualnie efekt.
Patrząc na ten rysunek można by pomyśleć że został on specjalnie tak opracowany, by nie dało się z niego odczytać ile wynosiło zadłużenie polski w latach 2005-2007.
Na szczęście dane są łatwo dostępne na stronie ministerstwa finansów http://www.mf.gov.pl/dokument.php?const=5&dzial=590&id=70516.
Więc relatywnie łatwo można taki wykres przygotować R bez żadnych dodatkowych zniekształceń osi
Nie jest to bogaty w ornamenty  wykres, brakuje na nim różnej wielkości znaczków poszczególnych partii, można za to odczytać prawie dla każdego miesiąca ile wynosiło zadłużenie Polski w danym okresie.
Kod R użyty do wygenerowania tego wykresu jest następujący

Czytaj dalej Podkręcone wykresy

Przyjąć czy odrzucić?

Dzieci śpią, czas przyjrzeć się jeszcze raz danym o głosowaniu posłów. Pewnie ostatni raz  przed ciszą wyborczą.

Dwa tematy są na taśmie, pierwszy to frekwencja posłów na głosowaniach a drugi to badanie koalicji i sojuszy w sejmie.

Zacznijmy od frekwencji. Na podstawie zbioru danych poslowieMeta zobaczmy na jakim procencie głosowań dany poseł był nieobecny. Wyniki przedstawimy w rozbiciu na ostatnią deklarowaną przez posła partię. Nazwiska i imiona posłów których nie było na ponad 42% głosowań wpiszemy na rysunku.

Nie jest tak źle, z niewielkimi wyjątkami posłowie uczestniczą w głosowaniach często. Najsumienniejsi są posłowie PO, którzy jak widać nie biorą w tym temacie przykładu z premiera.

Druga wizualizacja wymaga większego opisu, zacznijmy jednak od jej wklejenia.

Na powyższym wykresie są dwie panele, zacznijmy od omówienia górnego. Z 6583 głosowań większość dotyczyła przyjęcia lub odrzucenia jakiejś ustawy, poprawki, wniosku. Dokładnie rzecz biorąc 36.8% głosowań dotyczyło odrzucenia czegoś, 61.7% dotyczyło przyjęcia czegoś. Zobaczmy jak w czasie zmieniała się liczba głosowań za przyjęciem lub za odrzuceniem czegoś. Tak więc na osi OX mamy czas w którym odbyło się głosowanie. Osobno analizujemy głosowania za przyjęciem osobno za odrzuceniem. Znak x oznacza że danego dnia głosowano na dany temat a wielkość tego krzyżyka oznacza ile było głosowań tego dnia. Rekord padł 5 grudnia 2008 roku gdy to głosowano za przyjęciem 379 rzeczy i odrzuceniem 44 rzeczy. Grudzień poprzedniego roku był również pracowity 20 grudnia 2007 głosowano za przyjęciem 206 rzeczy. Legenda opisująca jak wielkość krzyżyka przełożyć na liczbę głosowań jest na górze. Szarymi krzywymi oznaczono estymatory jądrowe gęstości przedstawiające okresy szczególnie aktywne pod względem głosowań. Czerwona przerywana linia pokazuje których głosowań jest więcej, czy za przyjęciem czy za odrzuceniem.

Na dole tego wykresu pokazano koalicje. Koalicje wyznaczono następująco. Dla każdego miesiąca sprawdzono w których głosowaniach nie było zgodności pomiędzy posłami, czyli w których głosowaniach przynajmniej 10% posłów zagłosowało inaczej niż reszta. Bazując tylko na tych głosowaniach sprawdzono dla każdego głosowania i każdej partii czy posłowie tej partii głosowali podobnie. Dalej analizowane są tylko partie, które głosowały spójnie w głosowaniach gdzie pojawiała się różnica głosów. W ramach wybranego miesiąca liczona jest korelacja Pearsonowska pomiędzy głosami partii. Na bazie tej korelacji wyznaczany jest dendrogram który jest wykorzystywany do podziału partii na dwie grupy. I to sa grupy które są przedstawione na dolnym panelu.

Podsumowując. Dla każdego miesiąca wyznaczono partie i głosowania takie, że w ramach partii głosy były podobne, ale pomiędzy partiami się różniły. Następnie wykonano hierarchiczną analizę skupisk by określić które partie podobnie głosowały w danym roku. Uff. Zaskakujące jest, że jeżeli była duża różnica głosów w skali miesiąca to PiS i PO głosowali najczęściej różnie. To jest tym dziwniejsze, że programy tych partii nie różnią się aż tak diametralnie.

 

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.