środa, 11 lutego 2015

Modelowanie liczby bramek w Serie-A - rozkład Poissona i rozkład Skellam

Problem

Wszystkie dotychczas przedstawione sposoby modelowania wyników wydarzeń sportowych oparte były na regresji logistycznej. Modelowaliśmy siłę drużyn, także rozróżniając ich jakość w zależności od tego czy dana drużyna była gospodarzem. Dzisiejszy wpis zakłada inny sposób mierzenia jakości drużyn, w którym bierzemy pod uwagę liczbę strzelonych i straconych bramek. Liczba bramek jaką strzela drużyna i-ta jest uzależniona od siły ofensywnej drużyny $\alpha_i$, słabości defensywny przeciwnika $\beta_j$, ewentualnego wsparcia kibiców $\gamma$ oraz innych czynników, których nie znamy albo za krótko zastanawialiśmy się nad problemem żeby zjawisko do końca zrozumieć. Przy modelowaniu liczby bramek musimy założyć właściwy rozkład, który byłby dyskretny i nieujemny - rozkład Poissona. Rozkładem Poissona opisujemy intensywność badanych zdarzeń w określonej jednostce czasu. W naszym przypadku intensywnością jest liczba bramek strzelonych przez gospodarze $X_{i,j}$ oraz liczba bramek strzelonych przez gościa $Y_{i,j}$.

$X_{i,j} \sim Poisson(\alpha_i \beta_j \gamma)$
$Y_{i,j} \sim Poisson(\alpha_j \beta_i)$

Powyższy jest modelem bazowym, zaproponowanym przez Maher (1982), w którym liczba strzelonych i liczba straconych bramek przez gospodarza są niezależne od siebie i podążają rozkładem Poissona. Warto mieć na uwadze dodatkowe założenia $\alpha_i, \beta_i, \gamma > 0, \forall_i$.
Tak to robi R.

poniedziałek, 2 lutego 2015

Wizualizacja sił drużyn serie-A w latach 1994-2014 - d3.js w akcji.

Problem

Doszliśmy do momentu, w którym odstawiamy R na bok, klepiąc przyjacielsko po ramieniu mówiąc "zrobiłeś wszystko co w Twojej mocy, dziękuję". Pakiety do wizualizacji danych takie jak ggplot2 czy lattice są świetnym asystentem w trakcie pracy z danymi, pozwalają na szybki podgląd w trakcie wyjaśniania jakiegoś zjawiska. Statyczność, brak możliwości interakcji, ograniczone możliwości animacyjne raczej ograniczają R do wizualizacji na użytek własny lub prezentacje na mniejszą skalę. Być może wspomniana "wizualizacja na mniejszą skalę" jest dla wielu wystarczająca, bowiem seria dostępnych pakietów robi dobre wrażenie - ggplot2, lattice, plotly, shiny, animation, iplot, svgGrid i coś co mi podoba się najbardziej, czyli połączenie slidify i rCharts. Prawdopodobnie nie wymieniłem wszystkich pakietów i być może są gdzieś dobrze skrojone biblioteki pozwalające na dosyć dużą swobodę w kształtowaniu formy. Wątpię jednak żeby była biblioteka dająca pełną swobodę. Ja sam jestem zwolennikiem rozszerzania horyzontów i uważam, że lepiej nawet dla czystego sportu nauczyć się JavaScript, HTML5 oraz CSS3 i tworzyć od podstaw szalone wizualizacje, niż ograniczać się do granic narzuconych przez biblioteki R. Wpis jest pewną propozycją, próbą zainteresowania, a nie koniecznie wskazaniem bezwarunkowego rozwiązania. Zapewniam również, że zestaw R-owych pakietów, które wymieniłem wystarczą mistrzom danych do sprawnego prezentowania wyników analiz czy nawet schludnego dziennikarstwa.
Zaletą JavaScript jest to, że jest językiem przeglądarek internetowych, oznacza to, że każdy może otworzyć Naszą wizualizację nawet na urządzeniach mobilnych. Jak dotąd nie zanosi się żeby JavaScript miał stracić monopol na przeglądarki. Z pewnością JS to technologia, która będzie powszechna jeszcze przez wiele lat, co więc stoi na przeszkodzie żeby przeznaczyć kilka dni na naukę nowego środowiska? 
JavaScript nie koniecznie można uznać za trudny język, jest on jednak zupełnie inaczej skonstruowany niż R i trzeba po prostu przez to przebrnąć. Do rozpoczęcia programowania w JS wystarczy notatnik i przeglądarka np. z dodatkiem firebug. Być może duża część z Was już kiedyś pisała strony w HTML i CSS, dodając czasem jakieś drobne funkcjonalności używając JavaScript (np. "onclick"). Spora część z pewnością zjadła zęby na WebScrapingu . Być może ktoś już korzystał z jQuery, jeżeli tak - nie ma przeszkód żeby użyć d3.js i sprawić żeby Nasza usługa cieszyła oko odbiorcy.

Modele wydarzeń sportowych - historia sił drużyn serie-A w latach 1994-2014

Problem

Jak dotąd wykorzystaliśmy dwa modele ekonometryczne do oceny rzeczywistej-ukrytej siły poszczególnych drużyn włoskiej Serie-A. Dzisiaj ocenimy jak wyglądała siła wszystkich drużyn serie-A od 1994 roku. Za lepszy model uznaliśmy ten sprzed dwóch tygodni, z jednakowym dla wszystkich drużyn atutem własnego boiska. Model nie tylko wypadł lepiej w teście ale też ze względu na mniejszą liczbę parametrów łatwiej będzie nam ocenić zmiany w badanym okresie. Optymalizację modelu powtórzymy na każdym z sezonów 1994-2014 wykorzystując więcej możliwości procesora, delegując zadania do wszystkich dostępnych rdzeni.