winprob(1200,1000)
winprob(1000,1200)
winprob(1000,1000)
winprob(1200,1000, normprob = FALSE)
winprob(1000,1200, normprob = FALSE)
winprob(1000,1000, normprob = FALSE)
winprob(1200,1000, normprob = FALSE, fac = 0.01)
winprob(1000,1200, normprob = FALSE, fac = 0.01)
winprob(1000,1000, normprob = FALSE, fac = 0.01)
# compare different algorithms visually
w <- rep(0, 1001) # winner rating: constant
l <- w - 0:1000 # loser rating: varying
elonorm <- numeric(length(w))
eloexpo <- numeric(length(w))
eloopti <- numeric(length(w))
eloopti2 <- numeric(length(w))
for(i in 1:length(w)) {
elonorm[i] <- winprob(w[i], l[i], normprob = TRUE)
eloexpo[i] <- winprob(w[i], l[i], normprob = FALSE)
eloopti[i] <- winprob(w[i], l[i], normprob = FALSE, fac = 0.01)
eloopti2[i] <- winprob(w[i], l[i], normprob = FALSE, fac = 0.005)
}
plot(0, 0, type = "n", las = 1, yaxs = "i",
xlim = c(0, 1000), ylim = c(0.5, 1),
xlab = "rating difference",
ylab = "winning probability")
points(abs(l), elonorm, "l", col = "#4B0055", lwd = 3)
points(abs(l), eloexpo, "l", col = "#007094", lwd = 3)
points(abs(l), eloopti, "l", col = "#00BE7D", lwd = 2)
points(abs(l), eloopti2, "l", col = "#FDE333", lwd = 2)
legend("bottomright",
legend = c("normal", "logistic", "exponential (fac = 0.01)", "exponential (fac = 0.005)"),
col = c("#4B0055", "#007094", "#00BE7D", "#FDE333"),
lwd = 2,
cex = 0.9)
Run the code above in your browser using DataLab