Podczas warsztatów towarzyszących konferencji PAZUR Maciej Beręsewicz (Katedra Statystyki, Uniwersytet Ekonomiczny w Poznaniu) przedstawiał pakiet survey, świetne narzędzie do analizy danych sondażowych. Zgodził się dla nas przygotować krótki opis tego pakietu na przykładzie danych PISA 2009.

Tak więc dziś gościnny wpis, będzie R, będzie statystyka, będzie ciekawie.

[Pomysł na wstawki z użyciem gista zaczerpnąłem z innego polskiego bloga o R, pozdrawiamy].

PISA – analiza z wykorzystaniem pakietu survey

Maciej Beręsewicz

Wstęp

Poniższy wpis ma na celu przybliżenie wykorzystania pakietu survey do analizy danych pochodzących z badania PISA. W szczególności następujące cele mają zostać osiągnięte:

  • przybliżenie pakietu survey,
  • przybliżenie podejścia wykorzystanego w badaniu PISA do estymacji wariancji,
  • wykorzystanie pakietu survey w badaniu PISA.

Read the rest of this entry »

pisa-torre_76253

Trochę wzorując się na Randym Pauschu, trochę z ciekawości, zrobiłem w tym semestrze taki oto eksperyment:

Na dwóch bardzo dobrych wydziałach, czyli MIM na Uniwersytecie Warszawskim i MINI na Politechnice Warszawskiej, dla chętnych studentów poprowadziłem kurs Techniki Wizualizacji Danych. Podczas kursu większość czasu spędziliśmy z pakietem ggplot2, ale było też trochę czasu na shiny, rCharts, ggvis i knitra. Pracowaliśmy na danych o skokach narciarskich, cenach aut, wynikach wyborów, statystykach imion i innych ciekawych danych. Przede wszystkim jednak, pracowaliśmy nad tym by tworzyć wykresy, które coś mówią, a nie są tylko wesołą plątaniną kresek.

Projekt zaliczeniowy dotyczy wizualizacji danych PISA. Został on podzielony na trzy części: przygotowanie szkicu, przygotowanie pierwszej wersji i etap ostateczny – przygotowanie wizualizacji w postaci plakatu A3.

W czwartek na wydziale MINI (Koszykowa 75) w sali 329 od godziny 10:00 do 12:00 odbędzie się wielki finał – prezentacja plakatów grup z obu wydziałów.

Gdyby ktoś był ciekawy, co też udało się tym grupom wyłuskać z danych PISA 2012 oraz jak studentom z tych uczelni pójdzie prezentacja swoich prac, serdecznie zapraszamy.

Znajomy brał udział w projekcie, w którym na podstawie historii należało wykonać predykcję w przód cechy Y. Problem polegał na tym, że cecha Y wykazywała tendencje do wzrostu. Na potrzeby tego wpisu Y to może być mleczność krów lub zapotrzebowanie na energię czy cokolwiek innego co z czasem średnio rośnie.

Rozmawialiśmy trochę o tym co może się sprawdzić w tego typu analizach. Jako benchmark wykorzystaliśmy współczesne techniki pozwalające na podgrzanie procesora typu lasy losowe czy SVM. Okazuje się jednak (po fakcie, jest to nawet zgodne z intuicją ;-), że jeżeli występuje w miarę stabilny trend to zakres wartości obserwowanych w przyszłości może być inny niż zakres wartości obserwowanych w przeszłości. W tym przypadku techniki takie jak zwykła regresja liniowa mogą dać lepsze wyniki niż wspomniane SVM i RF.

Rozważmy taki przykład. Mamy do dyspozycji N predyktorów, chcemy przewidzieć rozwój cechy Y. W rzeczywistości ta cecha zależy tylko od pierwszego z N predyktorów. W szranki postawimy SVM, RandomForest, regresję liniową i regresję z regularyzacją typu lasso.

Przykład będzie czysto symulacyjny.

Zacznijmy od wylosowania danych, po 100 obserwacji i N=25 predyktorów. Zbiór testowy będzie poza domeną zbioru uczącego, wszystkie zmienne przesuwamy o +1.

library(dplyr)
library(lasso2)
library(e1071)
library(randomForest)
library(ggplot2)
 
# will be useful in simulations
getData < - function(n = 100, N = 25 ){
  x <- runif(N*n) %>%
    matrix(n, N)
  # artificial out-of-domain [0-1]
  x_test < - x + 1
 
  list(x = x, 
       y = x[,1] * 5 + rnorm(n), 
       x_test = x_test, 
       y_test = x_test[,1] * 5 + rnorm(n))  
}
 
# let's draw a dataset
gdata <- getData()
head(gdata$y)
# [1] -0.5331184  3.1140116  4.9557897  3.2433499  2.8986888  5.2478431
dim(gdata$x)
# [1] 100  25

Read the rest of this entry »

Screen Shot 2015-01-11 at 02.20.26
[Wykres z raportu Health at a Glance. Dla wybranych krajów i dla obu płci przedstawiono różnicę w oczekiwanej długości trwania życia pomiędzy osobami o wyższym wykształceniu i podstawowym wykształceniu]

Trafiłem ostatnio na artykuł Lekcje zdrowia, który odnosił się prawdopodobnie do raportu OECD z którego pochodzi powyższy wykres. Temat wydał mi się ciekawy, jednak pierwsze dwa zdania były jak cios obuchem. Obok siebie (nad i pod tytułem) zestawiono dwa zdania:

A: Wykształcenie przedłuża życie.

i

B: Wykształceni żyją dłużej.

Czy te dwa zdania oznaczają to samo?

Nie. Pierwsze sugeruje zależność przyczynowo-skutkową, oznaczającą, że efektem wykształcenia jest dłuższe życie. Drugie obrazuje korelacje pomiędzy długością życia a wykształceniem. Czy to jedno i to samo? Nie! Łatwo to zauważyć gdy skonstruuje się zdanie sugerujące zależność przyczynowo skutkową w drugą stronę.

C: Dłuższe życie daje lepszą edukację.

Więc jak jest? Czy istnieje silna zależność przyczynowo skutkowa czy nie?

Read the rest of this entry »

W internecie można znaleźć coraz więcej rozwiązań, które w ramach zabawy uczą dzieciaki programowania czy przynajmniej myślenia w sposób algorytmiczny.

Screen Shot 2015-01-07 at 21.11.53

Najbardziej znany jest chyba projekt MIT: Scratch http://scratch.mit.edu/. Osobiście jakoś mi nie przypadł do gustu, ale jest dosyć popularny ponieważ ma wiele możliwości, które pozwalają uczniowi pierwszych klas podstawówki zbudować grę ze sterowaniem głosem lub gestami (,,prawie jak kinect” a wystarczy kamerka w laptopie).

Można posłuchać ciekawego wystąpienia twórcy Scratcha na TED http://www.ted.com/talks/mitch_resnick_let_s_teach_kids_to_code. Są miejsca gdzie zabawa ze scartchem jest wpisana w program nauki wczesnoszkolnej. Z pewnością warto spróbować (tj jeżeli ma się dziecko w odpowiednim wieku).

Read the rest of this entry »

Przed świętami w tym wpisie pokazaliśmy interaktywną choinkę napędzaną statystykami popularności imion nadawanych dzieciom w Warszawie. Ale święta się już skończyły, czas choinkę rozebrać. W ramach akcji ‚rozbieranie choinki’ pokażemy jak można ją zrobić krok po kroku.

Dziś część pierwsza – choinka w ggplot2.

Choinka przedstawia statystyki dla chłopców i dziewcząt. Zacznijmy od prawej części ‚dla chłopców’. Punktem wyjścia będzie ramka danych z imieniem, płcią, liczbą wystąpień oraz pozycją na choince, na które dane imię powinno zawisnąć.

# data from
# https://github.com/pbiecek/SmarterPoland_blog/tree/master/2014/choinka
# head(chlopcy)
      imie plec liczba       row        col
1 Amadeusz    M      1 0.9444444 0.05555556
2   Anatol    M      1 0.8888889 0.11111111
3   Arnold    M      1 0.8888889 0.05555556
4   August    M      1 0.8333333 0.16666667
5 Augustyn    M      1 0.8333333 0.11111111
6   Bazyli    M      1 0.8333333 0.05555556

Użyjmy geometrii geom_point() aby pokazać współrzędne do zawieszenia imion.

ggplot(chlopcy, aes(x=col, y=row)) + 
  geom_point()

v1

Read the rest of this entry »

Rok temu, w grudniu, organizowaliśmy konkurs na wykres przekłamujący dane. Podobny konkurs organizowaliśmy dwa lata temu. W tym roku nieco zmieniliśmy formułę. Zamiast szukać przekłamań, tropimy błędy, które utrudniają odczytanie informacji z wykresów. Każdemu może przydarzyć się nieczytelny wykres, ale te wykresy pochodzą z miejsc, gdzie błądzenie powinno być rzadsze, czyli z raportów ministerstw i poważniejszych mediów.

W szrankach stanie więcej wykresów niż w poprzednich edycjach konkursu. Wiele z nich nadesłanych zostało przez czytelników (za co bardzo dziękuję). Znaleziska z poprzednich lat wypełniły esej ,,info-pomyłka” ze zbioru esejów o wizualizacji, zwycięzcy tego głosowania trafią do kolejnej wersji eseju.

Ponieważ statystycy zajmujący się wizualizacją danych praktycznie jednym głosem krytykują wykresy kołowe, prezentację kandydatów zaczniemy właśnie od nich.

Read the rest of this entry »

Screen Shot 2014-12-19 at 23.28.01

Na stronie MIM UW znaleźć można ciekawą kolekcję choinek matematycznych. Bardzo fajne drzewka, w większości teoretyczne.

A może by tak skonstruować drzewko napędzane danymi?

Read the rest of this entry »

Screen Shot 2014-12-13 at 21.28.14

Miesiąc temu Amerykańskie Towarzystwo Statystyczne (ASA) przedstawiło wskazówki dotyczące programu studiów statystycznych na poziomie undergraduate (licencjat / inżynier). Krótki ale bardzo ciekawy materiał. Polecam zapoznać się ze streszczeniem lub krótką prezentacją.

Najistotniejsze punkty tego dokumentu obejmują przedstawienie rosnącego zapotrzebowania na rozumienie danych w różnych obszarach i w nauce i w przemyśle [dotyczy to zarówno głębokiego specjalistycznego zrozumienia danych, jak i zrozumienia podstawowego wśród ,,zwykłych” analityków, kierowników i specjalistów] oraz konieczność uczenia zróżnicowanego warsztatu i solidnych podstaw.

Trzy inne ważne punkty, zaniedbywane w naszym krajowym kształceniu to:

1. Umiejętności komunikacji. Osoby analizujące dane powinno się nieustannie kształcić w prezentowaniu wyników szerszej i węższej publice. Zarówno jeżeli chodzi o język (unikać żargonu prezentując modele statystyczne), umiejętność wizualizacji danych jak i umiejętność zwięzłego przedstawiania tego co najważniejsze. To jest trudne, to jest bardzo trudne, te umiejętności warto rozwijać.

2. Wykorzystywania rzeczywistych danych. Łatwiej zrozumieć potrzebę analizy danych gdy ilustruje się ją na problemach z otaczającego nas świata. Ze smutkiem trzeba zauważyć, że są wydziały gdzie wykłada się statystykę bez przykładów na żadnych danych. Jest też sporo miejsc, gdzie przykłady sprowadzają się do używania danych typu iris (hej, niedługo będą obchodzić 80-lecie, czy ktoś w ogóle pamięta po co zebrano ten zbiór danych?).

3. Kształcenia ,,inżynierskich” umiejętności przetwarzania danych, łączenia, cięcia, grupowania, filtrowania danych. Operowania na danych z baz danych, hadoopa, web-API, plików tekstowych i binarnych. Większość pracy z danymi to czyszczenie danych, ale podczas czyszczenia poznajemy dane i lepiej potrafimy je później zamodelować. Praca na wyczyszczonych danych przypomina odtwarzanie szablonu, którego oczekuje prowadzący, nie widząc skąd te wymuskane dane się wzięły trudniej zaproponować własne podejście do ich analizy.

Prowadzę w tym semestrze zajęcia, podczas których dużo czasu przeznaczamy na czyszczenie danych, wykorzystujemy aktualnie ,,medialne” dane (wycieczki madryckie, wybory samorządowe) i ćwiczymy nieustanną, nieustanną, nieustanną komunikacje wyników (student2student, student2prowadzący).

Z początku było trudno, nie było prosto przełamać własne nawyki ,,uczenia podającego” (też wrażenia, że takie są oczekiwania studentów), kilka pomysłów zakończyło się fiaskiem (np. próba wprowadzenia systemu peer-review). Z perspektywy czasu widzę jednak, że formuła wprowadzania kolejnych tematów poprzez problemy na aktualnych danych daje znacznie więcej frajdy niż przekazywanie X kilogramów wiedzy objawionej. Nawet jeżeli pod koniec zajęć okazuje się, że o czymś nie zdążyliśmy powiedzieć albo czegoś nie zdążyliśmy skomentować.

Wyniki ostatnich sondaży poparcia są dosyć rozbieżne.

Zestawmy ostatnie 6 miesięcy dla dwóch największych partii i czterech ośrodków badania opinii.

Read the rest of this entry »

top