Krzysiek T. przesłał mi link do pakietu wikipediatrend, dzięki któremu można w prosty sposób pobrać statystyki oglądalności stron na wikipedii. Świetny pakiet! Przyjrzymy się mu bliżej. Akurat ostatnio, korzystając z wakacji, czytałem Sezon Burz (Andrzej Sapkowski cykl o Wiedźminie) i Starość aksolotla (Jacek Dukaj). Zobaczmy jak wygląda popularność haseł Wiedźmin i Aksolotl na Wikipedii.
Zaczniemy od pobrania danych. W funkcji wp_trend
wystarczy wskazać jakie strony nas interesują (tutaj Wiedźmin i Aksolotl), w którym języku (polski i angielski) oraz z jakiego przedziału czasu chcemy pobrać statystyki (zobaczmy jak wyglądała oglądalność od początku 2013 roku). Do wyrysowania tych danych wykorzystamy pakiet ggplot2. Poniższy wykres można pobrać przez uchwyt (kopiując do R) archivist::aread("pbiecek/graphGallery/25fbc8bc66bbf02fe66b7715ff53b083")
.
library(wikipediatrend) wp <- wp_trend(page = c("Aksolotl","Axolotl","The_Witcher", "Wiedźmin"), from = "2013-01-01", to = today(), lang = c("pl","en","en","pl")) head(wp) ## date count lang page rank month title ## 1 2013-08-26 70 pl Aksolotl -1 201308 Aksolotl ## 2 2013-08-27 74 pl Aksolotl -1 201308 Aksolotl ## 3 2013-08-28 69 pl Aksolotl -1 201308 Aksolotl ## 4 2013-08-19 83 pl Aksolotl -1 201308 Aksolotl ## 5 2013-08-18 71 pl Aksolotl -1 201308 Aksolotl ## 6 2013-08-31 87 pl Aksolotl -1 201308 Aksolotl library(ggplot2) # uwaga, oś w skali pierwiastkowej! ggplot(wp, aes(date, count, group=page, color = page)) + geom_point(alpha=0.5) + geom_smooth(size=1.5, se=FALSE, span=0.1) + theme_bw() + scale_y_sqrt(limits=c(0,20000)) + facet_grid(lang~.) |
Kilka dat, przydatnych w analizie tego wykresu. Sezon Burz został wydany 6 listopada 2013 roku, gra Wiedźmin 3 miała premierę 19 maja 2015 (na początku 2013 była zapowiedź). Powieść Starość aksolotla została wydana w 2015 roku. Na powyższym wykresie wyraźnie widać datę premiery gry Wiedźmin 3, na polskiej Wikipedii można dopatrzyć się daty wydania Sezonu Burz.
Opisane powyżej wydarzenia widać wyraźniej, gdy przyjrzymy się liczbie odwiedzin stron na Wikipedii odpowiadających autorom.
wp <- wp_trend(page = c("Andrzej_Sapkowski","Andrzej_Sapkowski","Jacek_Dukaj", "Jacek_Dukaj"), from = "2013-01-01", to = today(), lang = c("pl","en","pl","en")) head(wp) ## date count lang page rank month title ## 1 2013-01-12 464 pl Andrzej_Sapkowski 1366 201301 Andrzej_Sapkowski ## 2 2013-01-13 538 pl Andrzej_Sapkowski 1366 201301 Andrzej_Sapkowski ## 3 2013-01-10 536 pl Andrzej_Sapkowski 1366 201301 Andrzej_Sapkowski ## 4 2013-01-11 457 pl Andrzej_Sapkowski 1366 201301 Andrzej_Sapkowski ## 5 2013-01-16 540 pl Andrzej_Sapkowski 1366 201301 Andrzej_Sapkowski ## 6 2013-01-17 541 pl Andrzej_Sapkowski 1366 201301 Andrzej_Sapkowski ggplot(wp, aes(date, count, group=page, color = page)) + geom_point(alpha=0.5) + geom_smooth(size=1.5, se=FALSE, span=0.1) + theme_bw() + scale_y_sqrt() + facet_grid(lang~.) |
Pobranie danych to jedna linia, wizualizacja to druga (choć obie są dosyć długie).
Można więc porównać oglądalność stron innych pisarzy lub innych interesujących haseł (a uchwytami do wygenerowanych wykresów podzielić się w komentarzach ;-)).
A takie anomalie można ładnie wyłuskać (w miarę) automatycznie np. z pakietem AnomalyDetection stworzonym przez Twittera. 🙂
Dzięki za info o pakiecie wikipediatrend!
https://github.com/twitter/AnomalyDetection
https://blog.twitter.com/2015/introducing-practical-and-robust-anomaly-detection-in-a-time-series
Dzięki, widzę, że Twitter też przygotował pakiet BreakoutDetection. Zobaczymy jak się spiszą te pakiety na danych z akcelerometru.
W takim razie powinien spodobać Ci się ten wpis – http://qualityandinnovation.com/2015/07/14/a-simple-intro-to-bayesian-change-point-analysis/
Dzięki!