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.
# standardowa funkcja pakietu R png("wiek_lnauki.png",600,600) print(wyk) dev.off() # ten sam format png, ale z użyciem pakietu Cairo CairoPNG("wiek_lnauki_cairo.png",600,600) print(wyk) dev.off() # i tym razem grafika wektorowa SVG CairoSVG("wiek_lnauki.svg",7,7) print(wyk) dev.off() |
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?
Czy to, że na ostatnim wykresie nie ma chmurek punktów to problem mojego firefox’a czy też rzeczywisty problem wykresu SVG?
Poza tym ciekawe wydaje się, że „douczanie się” osób powyżej 30 lat wydaje się być sprawą marginalną, a przynajmniej zupełbnie niewidoczną na wykresie. Czy to tak jest naprawdę, że ludzie powyżej 30 roku życia nie uczyli się wcale, czy to tylko jakiś dziwny efekt wykresu? Wydawaloby się, że studia zaoczne dla dorosłych były dosyć popularne w ciągu ostatnich lat choćby wśród nauczycieli – w końcu dużej grupy społecznej…
Bardzo ciekawy „dołek” edukacyjny, wlokący się w pokoleniu obecnych 42-44 latków. To samo pokolenie, 11 lat temu (na wykresie z 2000 r.) miało ten „dołek” w wieku 30-32 lata. A więc wypadło temu pokoleniu kilka lat nauki właśnie w okresie tzw. transformacji lat 1989 – 1991, gdy powinni studiować. Pod pewnym względem to rzeczywiście „stracone” pokolenie…
Brak punktów na ostatnim wykresie to wynik celowego ich usuniecia. Plik SVG z kropkami znajduje sie na stronie http://tofesi.mimuw.edu.pl/~cogito/smarterpoland/Diagnoza2011/wiek_lnauki/wiek_lnauki.svg. Ale poniewaz kazda obserwacja/punkt jest pamietana jako osobny obiekt ten plik ma > 14MB. Na blog wrzucilem wiec trochę lżejszą wersję.
Co do douczania sie osób starszych to ten wykres marnie się nadaje do porównywania zmian w liczbie lat edukacji. Ale juz mam pod ręką inny, lepiej sie nadający i zaraz dodam jako nowy wpis.