R, Kair, Cairo, wiek a liczba lat nauki

Dziś będzie o wielu tematach jednocześnie.
Po pierwsze przeglądając materiały z konferencji useR znalazłem informacje o pakiecie Cairo. Wstyd, że o tym pakiecie dowiedziałem się tak późno. Ale ciesze się że się dowiedziałem wystarczająco by napisać dlaczego.

Cairo to biblioteka do grafiki 2d umożliwiająca zapisywanie grafiki do różnych formatów, między innymi wektorowych formatów PS, PDF, SVG, ale również do rastrowych formatów PNG itp. Biblioteka pozwala na stosowanie takich miłych technik jak anty-aliasing itp. poprawiających wygląd grafiki, szczególnie rastrowej, szczególnie w porównaniu z tym co R produkuje domyślnie. Zobaczmy czy biblioteka ta odmieni rysunki na tym blogu. Zaczniemy od prostego przykładu, w którym porównamy liczbę lat nauki z liczbą przeżytych lat, oczywiście bazując na zbiorze danych o Diagnozie społecznej.

Aby nie zaciemniać tego co najważniejsze, nie będę tutaj wklejał kodu R, który generuje wykres. Osoby zainteresowane znajdą ten kod tutaj. W kodzie tym wykorzystujemy funkcję xyplot() z pakietu lattice do wygenerowania obiektu wyk opisującego wykres.

Porównamy wygląd grafiki zapisanej poleceniami png(grDevices), CairoPNG(Cairo) i CairoSVG(Cairo). W przypadku tej ostatniej funkcji rozmiary podajemy w calach, w poprzednich dwóch w pixelach.

Poniżej wygenerowane pliki. Pierwszy w formacie png wygenerowany przez funkcję png.

Drugi w formacie png ale wygenerowany biblioteka Cairo.

I trzeci w formacie SVG, nie każda przeglądarka potrafi go wyświetlić, jeżeli poniżej nie widać obrazka to znaczy że trzeba zmienić przeglądarkę.

Czy widać różnice? Ogromne, szczególnie na krzywych które w pierwszym przypadku są niesamowicie spixelowane w drugim przypadku już znacznie gładsze. Widać to szczególnie w dużym powiększeniu. W dużym powiększeniu widać też zalety wektorowego formatu SVG, krzywe będą gładkie bez względu jak bardzo je powiększymy. Oczywiście za format wektorowy trzeba zapłacić. W zbiorze danych Diagnoza Społeczna znajdują się dane dla kilku tysięcy osób. Gdyby każdą z nich zaznaczyć punktem to wektorowy format w którym każdy z tych punktów byłby opisany, zajmowałby kilkanaście MB. Nie najlepiej jak na grafikę do umieszczenia w internecie. Dlatego też na trzecim z powyższych obrazków są tylko krzywe bez punktów.

Dyskusje o technikaliach mamy już za sobą, zobaczmy co w ogóle widać na tych wykresach. Porównujemy liczbę lat nauki versus wiek. Dane bierzemy zarówno dla osób ankietowanych w roku 2000 jak i 2011. Znaczna część osób uczestniczy w obu badaniach, dla tej grupy spodziewamy się, że lat przybędzie ale lat nauki niekoniecznie.
Ciągła linią zaznaczyłem wygładzona medianę, kropkowaną linią wygładzony kwantyl rzędu 90%.

Dla osób które obecnie są w wieku 40-60 lat, mediana liczby lat edukacji to 11, dla osób w wieku 25 lat ta mediana jest już o 2 lata wyższa, efekt coraz większej liczby osób studiujących i też zmian w systemie edukacji. Niższą medianę liczby lat edukacji u osób w wieku >70 lat można wytłumaczyć wojną.

Przyjrzyjmy się jeszcze kwantylowi rzędu 90%. Dla 30latków kwantyl ten wynosi 18 lat nauki, czyli ponad 10% dzisiejszych 30latków ma na koncie 18 lub więcej lat nauki. To sporo, ale dla niektórych uczenie się nigdy się nie kończy. W stosunku do stanu sprzed 11 lat coraz więcej lat spędzamy na edukacji. Czy jako społeczeństwo jesteśmy dzięki temu mądrzejsi?