Charlie Hebdo – ein R-akett på Wikipedia

Det er ei stund sidan sist blogginnlegg, har vore stuck i annan jobb.
Men i dag er ungen sjuk, men ikke SÅ sjuk, så det er tid til å dela nokre små R-oppdagingar.

Sjølvaste Twitter-teamet har laga ei R-pakke som avslører utliggarar (ikkje uteliggarar) i datasett. På engelsk kallast dei “anomalies”, og pakka heiter AnomalyDetection.

Lat oss testa pakka på nokre vi kan få nytte av. Til dømes: Korleis har interessa vore for Frankrike på Wikipedia i det siste?
Først må vi lasta ned pakkane som trengst. RJSONIO vaskar data til rein JSON, RCurl hjelpar oss å skrapa nettstader, ggplot2 er det mest brukte plotteverktøyet i R (usikker på kvifor), og så var det den nye pakka, då, som førebels ikkje ligg på CRAN og derfor må lastast ned med devtools frå Github:

library(RJSONIO)
library(RCurl)
library(ggplot2)
install.packages("devtools")
devtools::install_github("twitter/AnomalyDetection")
library(AnomalyDetection)

Så finn vi ein interessant Wikipedia-side og hentar ut dei siste 90 dagane med Wikipedia-statistikk:

page <- "France"
raw_data <- getURL(paste("http://stats.grok.se/json/en/latest90/", page, sep=""))
data <- fromJSON(raw_data)
views <- data.frame(timestamp=paste(names(data$daily_views), " 12:00:00", sep=""), stringsAsFactors=F)
views$count <- data$daily_views
views$timestamp <- as.POSIXlt(views$timestamp)
views <- views[order(views$timestamp),]

Datodata er alltid knotete, her får vi datoen over i eit sorterbart POSIX-format. I siste line sorterer vi alle dataene slik at dei er i kronologisk rekkefølgje.

Vi kan no gjere ein enkel plot med ggplot2:
ggplot(views, aes(timestamp, count)) + geom_line() + scale_x_datetime() + xlab("") + ylab("views")

Men med AnomalyDetection vil grafen identifisere avvika, etter din definisjon. Vi brukar ein generisk funksjon AnomalyDetectionVec, set perioden lik 7 (7 dagar i veka) og makstal på avvik til 5% av alle data:

res <- AnomalyDetectionVec(views$count, max_anoms=0.05, direction='both', plot=TRUE, period=7)
res$plot

Då får vi dette resultatet:

Skjermbilde 2015-01-14 kl. 15.04.07

I dataene fann vi fire avvik. Ikkje uventa har det vore mange treff dei siste dagane, men i november var det faktisk to dagar som hadde endå fleire treff enn etter terroren.

Men kva med Charlie Hebdo? Kor mykje meir interesse har det vore for dette bladet siste veka?
Vi kan setje page <- "Charlie_Hebdo" og køyra skriptet på nytt for å sjå kva merksemd terroren har gjeve bladet:

Skjermbilde 2015-01-14 kl. 15.04.21

Dagen før åtaket søkte 35 personar opp sida. 7. januar, dagen for åtaket, fann 483.982 lesarar vegen til Wikipedia-artikkelen.
Så det ironiske i det heile: Ingen har gjort meir for å spreia Charlie Hebdo-kunnskapen enn dei to terroristane som ville knekka blyantane deira.

Takk til Benedikt Koehler for topp tips!