Da var Eliteserien over for i år. Hvordan gikk det med tippinga fra mars? Da bestemte jeg for å legge gjennomsnittet av oddssidenes tipping og avisenes ekspertkommentarer til grunn..
Hvordan ser dette ut opp i mot resultatet? Hvordan ble tabellen til slutt? Jo slik:
kable(arrange(select(df, Lag, Resultat, MinPrognose = Prognose), Resultat))
| Lag | Resultat | MinPrognose |
|---|---|---|
| Molde | 1 | 3.6 |
| Bodø/Glimt | 2 | 10.6 |
| Rosenborg | 3 | 5.0 |
| Odd | 4 | 8.2 |
| Viking | 5 | 39.8 |
| Kristiansund BK | 6 | 7.8 |
| Haugesund | 7 | 8.0 |
| Stabæk | 8 | 34.0 |
| Brann | 9 | 9.0 |
| Vålerenga | 10 | 5.2 |
| Strømsgodset | 11 | 27.2 |
| Sarpsborg 08 | 12 | 15.6 |
| Mjøndalen | 13 | 39.0 |
| Lillestrøm | 14 | 8.4 |
| Tromsø | 15 | 28.2 |
| Ranheim | 16 | 33.6 |
Som vi ser av tabellen: ikke veldig nærme - men heller ikke helt tilfeldig.
Hvordan ser dette ut i forhold til de forskjellige prognosene?
temp = gather(df, ID, prognose, Nettavisen:Prognose) %>%
mutate(type = ifelse(ID == "Resultat", "Resultat", "Prognose"))
ggplot() +
geom_count(data = filter(temp, type == "Prognose"), aes(x = prognose, y = Lag), colour = "grey") +
geom_point(data = filter(temp, type == "Resultat"), aes(x = prognose, y = Lag), colour = "black") +
geom_point(data = filter(temp, ID == "Prognose"), aes(x = prognose, y = Lag), colour = "red") +
labs(x = "Plassering", y = "Lag", colour = "Prognose eller resultat?")

Hvem er nærmest? Vi bruker RMSE som mål, den gir større straff til store feil:
#RMSE
rmse <- function(feil){
sqrt(mean(feil^2))
}
temp = data.frame(ID = as.character(), rmse = as.numeric(), stringsAsFactors = FALSE)
feil = df$Resultat - df$Nettavisen
temp = bind_rows(temp, data.frame(ID = "Nettavisen", rmse = rmse(feil), stringsAsFactors = FALSE))
feil = df$Resultat - df$Oddschecker
temp = bind_rows(temp, data.frame(ID = "Oddschecker", rmse = rmse(feil), stringsAsFactors = FALSE))
feil = df$Resultat - df$Dagsavisen
temp = bind_rows(temp, data.frame(ID = "Dagsavisen", rmse = rmse(feil), stringsAsFactors = FALSE))
feil = df$Resultat - df$Dagbladet
temp = bind_rows(temp, data.frame(ID = "Dagbladet", rmse = rmse(feil), stringsAsFactors = FALSE))
feil = df$Resultat - df$Aftenposten
temp = bind_rows(temp, data.frame(ID = "Aftenposten", rmse = rmse(feil), stringsAsFactors = FALSE))
feil = df$Resultat - df$Prognose
temp = bind_rows(temp, data.frame(ID = "MinPrognose", rmse = rmse(feil), stringsAsFactors = FALSE))
kable(arrange(temp, rmse))
| ID | rmse |
|---|---|
| Dagsavisen | 4.663690 |
| Dagbladet | 5.267827 |
| Oddschecker | 5.408327 |
| Nettavisen | 5.488625 |
| MinPrognose | 14.755169 |
| Aftenposten | 67.433300 |
Aftenposten var den beste ekspertpanelet her, fulgt av Dagsavisen. Dagbladet, Oddsen og Nettavisen gjør det alle dårligere. Men forskjellene er ikke veldig store.