mit Hilfe des Pakets "elo" gelingt es mir, Elo-Werte und Match-Up Siegwahrscheinlichkeiten zu berechnen. Das mache ich mit dem folgenden Skript:
Code: Alles auswählen
library(tidyverse)
matches <- read.csv2("Ergebnisse1920.csv")
#Sieg Heim/Sieg Auswärts/Unentschieden in 1/0/0.5
matches <- matches %>%
mutate(result = ifelse(result == "A",0,
ifelse(result =="H",1,0.5)))
# Teams umformen
matches <- matches %>%
mutate(hometeam = as.character(hometeam)) %>%
mutate(awayteam = as.character(awayteam))
# Liste aller Teams erstellen
teams <- data.frame(team = unique(c(matches$hometeam, matches$awayteam)))
# Startelo 1500 zuweisen
teams <- teams %>%
mutate(elo = 1500)
library(elo)
for (i in seq_len(nrow(matches))) {
match <- matches[i, ]
# Elo-Punkte vor dem Spiel
teamA_elo <- subset(teams, team == match$hometeam)$elo
teamB_elo <- subset(teams, team == match$awayteam)$elo
# Elo Update
new_elo <- elo.calc(wins.A = match$result,
elo.A = teamA_elo,
elo.B = teamB_elo,
k = 30)
# Data.Frame mit
# Elo von Team A in Reihe 1 Zeile 1
# Elo von Team B in Reihe 1 Zeile 2
teamA_new_elo <- new_elo[1, 1]
teamB_new_elo <- new_elo[1, 2]
# Elo-Update für Team A und Team B
# Alle anderen Teams bleiben gleich
teams <- teams %>%
mutate(elo = if_else(team == match$hometeam, teamA_new_elo,
if_else(team == match$awayteam, teamB_new_elo, elo)))
}
# Nach Elo absteigend sortieren
teams <- teams %>%
arrange(-elo)
Code: Alles auswählen
TeamA <- subset(teams, team == "Dortmund")$elo
TeamB <- subset(teams, team == "Freiburg")$elo
elo.prob(TeamA, TeamB)
Wie ihr seht, benutze ich dafür die drei Situationen Sieg Heim / Sieg Auswärts / Unentschieden mit 1/0/0.5
Nun möchte ich aber gerne von vornherein mit Match-Up Wahrscheinlichkeiten rechnen, um dann fehlende Match-Up Wahrscheinlichkeiten zu berechnen und nicht mit den drei Zuständen. Beispielsweise würde dann das matches$result den Wert 0.75 annehmen. Hoffentlich konnte ich mich verständlich ausdrücken.
Habt ihr eine Idee, wie das möglich ist? Und auch wichtig: Denkt ihr, das ergibt Sinn?
Im Anhang habe ich die Ergebnisse1920.csv.csv hochgeladen.
Liebe Grüße