Sabemos que estos no siguen una distribucion normal
Por otro lado, al calcular el AIC dentro del modelo de ranks
Nos percatamos que este aumenta conforme la poblacion lo hace
Esto por la misma naturaleza del criterio de AIC
De igual forma, tambien aumenta la desviacion, pero esta de forma menos explosiva
Por lo que la obtencion de nuestro mejor modelo sera basara en la probabilidad
condicional estimada de ganar en over 2.5
Y la probabilidad condicional estimada de ganar en bajo 2.5 goles
Por otro lado, podemos observar del modelo de regresion logistica basada en la
Dif de goles, que el cambio mas notorio ocurre cuando un equipo lleva una ventaja
superior a dos goles
El modelo inicial itera 1066 veces la funcion team.ranks con intervalos de j
Fechas unicas.
170 ~ 13%, 618 ~ 50%, 309 ~ 25%, 927 ~ 75%
for (j in 170:927) # Para Estimar el mejor modelo
{
phs <- NULL; pas <- NULL; pht <- NULL; pat <- NULL; j <- 325; pu_25 <- NULL; po_25 <- NULL
for(i in 1:(length(unique(scores$date))-j)){
ranks <- rank.teams(scores = scores, teams = teams,
min.date = unique(scores$date)[i],
max.date = unique(scores$date)[i+j-1],
silent = TRUE,
time.weight.eta = 0.0005)
pred <- predict(ranks, date = unique(scores$date)[i+j],
silent = TRUE)
phs <- c(phs, pred$scores$pred.home.score) # predicted home score
pas <- c(pas, pred$scores$pred.away.score) # predicted away score
pht <- c(pht, pred$scores$home.team) # home team in predictions
pat <- c(pat, pred$scores$away.team) # away team in predictions
}
buenos <- !(is.na(phs) | is.na(pas)) #
phs <- phs[buenos] # predicted home score
pas <- pas[buenos] # predicted away score
pht <- pht[buenos] # home team in predictions
pat <- pat[buenos] # away team in predictions
momio <- data %>% filter(date >= unique(scores$date)[j+1]) # momios conjunto de prueba
momio <- momio[buenos,]
mean(pht == momio$home.team); mean(pat == momio$away.team)
mean(phs + pas > 2.5 & momio$home.score + momio$away.score > 2.5)#.32 #.31 #.31
mean(phs + pas < 2.5 & momio$home.score + momio$away.score < 2.5)#.24 #.25 #.26
hs <- momio$home.score
as <- momio$away.score
Probabilidades condicionales
mean(phs + pas > 3) # proporción de partidos con más de tres goles según el modelo
mean(phs + pas > 3 & hs + as > 2.5)/mean(phs + pas > 3)
probabilidad condicional estimada de ganar en over 2.5
po_25[j-169] <- mean(phs + pas > 3 & hs + as > 2.5)/mean(phs + pas > 3)
mean(phs + pas < 2.1) # proporción de partidos con menos de 2.1 goles según el modelo
mean(phs + pas < 2.1 & hs + as < 2.5)/mean(phs + pas < 2.1)
probabilidad condicional estimada de ganar en under 2.5
pu_25[j-169] <- mean(phs + pas < 2.1 & hs + as < 2.5)/mean(phs + pas < 2.1)
}
probabilidad condicional estimada de ganar en over 2.5
s <- seq(0,3,.1)
y<- NULL; y2 <- c()
for (i in 1:31) {
y[i] <- mean(phs + pas > 3 & hs + as > s[i])/mean(phs + pas > 3)
y2[i] <- mean(phs + pas < 2.1 & hs + as < s[i])/mean(phs + pas < 2.1)
}
length(s)
plot(s,y2)
Al graficar las proporciones es claro observar que las probabilidad aumentan
De forma considerable en todos los niveles, es decir, cuadno la probabilidad
de ganar con 1 gol, 2 y 3 de ventaja.
Dadas las limitaciones de mi ordenador, el mejor modelo al que se ha llegado
Es cuando tomamos el 24%-26% de fechas unicas.
H.o. prop. de ganar con 2.5 goles de ventaja con 325 fechas unicas es
menor o igual que con 170
H.A. Prop de ganar con 2.5 goles de ventaja con 325 fechas unicas es mayor que con
170 unicas.
Probabilidades Condicionales Estimadas
.661 > 2.5 #325
.594 < 2.5 #325
.64 > 2.5 #170
.58 < 2.5 #170
hist(as + hs)
hist(pas + phs)
Al graficar el histograma de la suma de los goles reales (Por asi decirlo)
Nos damos cuenta que la cantidad de partidos donde hubo mas de 4 goles
Es mucho mayor que aquella de los partidos predecidos, en base a esto
Se cambia el parametro a 4 para obtener mejores resultados.
Si se disminuye el valor condicional de la suma real de los goles anotados
Se obtienen mejores ganancias al igual que menores perdidas.
Por los histogramas de nuestros datos
Sabemos que estos no siguen una distribucion normal
Por otro lado, al calcular el AIC dentro del modelo de ranks
Nos percatamos que este aumenta conforme la poblacion lo hace
Esto por la misma naturaleza del criterio de AIC
De igual forma, tambien aumenta la desviacion, pero esta de forma menos explosiva
Por lo que la obtencion de nuestro mejor modelo sera basara en la probabilidad
condicional estimada de ganar en over 2.5
Y la probabilidad condicional estimada de ganar en bajo 2.5 goles
Por otro lado, podemos observar del modelo de regresion logistica basada en la
Dif de goles, que el cambio mas notorio ocurre cuando un equipo lleva una ventaja
superior a dos goles
El modelo inicial itera 1066 veces la funcion team.ranks con intervalos de j
Fechas unicas.
170 ~ 13%, 618 ~ 50%, 309 ~ 25%, 927 ~ 75%
for (j in 170:927) # Para Estimar el mejor modelo
{
phs <- NULL; pas <- NULL; pht <- NULL; pat <- NULL; j <- 325; pu_25 <- NULL; po_25 <- NULL for(i in 1:(length(unique(scores$date))-j)){ ranks <- rank.teams(scores = scores, teams = teams, min.date = unique(scores$date)[i], max.date = unique(scores$date)[i+j-1], silent = TRUE, time.weight.eta = 0.0005) pred <- predict(ranks, date = unique(scores$date)[i+j], silent = TRUE)
}
buenos <- !(is.na(phs) | is.na(pas)) # phs <- phs[buenos] # predicted home score pas <- pas[buenos] # predicted away score pht <- pht[buenos] # home team in predictions pat <- pat[buenos] # away team in predictions momio <- data %>% filter(date >= unique(scores$date)[j+1]) # momios conjunto de prueba momio <- momio[buenos,] mean(pht == momio$home.team); mean(pat == momio$away.team) mean(phs + pas > 2.5 & momio$home.score + momio$away.score > 2.5)#.32 #.31 #.31 mean(phs + pas < 2.5 & momio$home.score + momio$away.score < 2.5)#.24 #.25 #.26 hs <- momio$home.score as <- momio$away.score
Probabilidades condicionales
mean(phs + pas > 3) # proporción de partidos con más de tres goles según el modelo mean(phs + pas > 3 & hs + as > 2.5)/mean(phs + pas > 3)
probabilidad condicional estimada de ganar en over 2.5
po_25[j-169] <- mean(phs + pas > 3 & hs + as > 2.5)/mean(phs + pas > 3)
mean(phs + pas < 2.1) # proporción de partidos con menos de 2.1 goles según el modelo mean(phs + pas < 2.1 & hs + as < 2.5)/mean(phs + pas < 2.1)
probabilidad condicional estimada de ganar en under 2.5
pu_25[j-169] <- mean(phs + pas < 2.1 & hs + as < 2.5)/mean(phs + pas < 2.1)
}
probabilidad condicional estimada de ganar en over 2.5
s <- seq(0,3,.1) y<- NULL; y2 <- c() for (i in 1:31) { y[i] <- mean(phs + pas > 3 & hs + as > s[i])/mean(phs + pas > 3) y2[i] <- mean(phs + pas < 2.1 & hs + as < s[i])/mean(phs + pas < 2.1) } length(s) plot(s,y2)
Al graficar las proporciones es claro observar que las probabilidad aumentan
De forma considerable en todos los niveles, es decir, cuadno la probabilidad
de ganar con 1 gol, 2 y 3 de ventaja.
Dadas las limitaciones de mi ordenador, el mejor modelo al que se ha llegado
Es cuando tomamos el 24%-26% de fechas unicas.
H.o. prop. de ganar con 2.5 goles de ventaja con 325 fechas unicas es
menor o igual que con 170
H.A. Prop de ganar con 2.5 goles de ventaja con 325 fechas unicas es mayor que con
170 unicas.
Probabilidades Condicionales Estimadas
.661 > 2.5 #325
.594 < 2.5 #325
.64 > 2.5 #170
.58 < 2.5 #170
hist(as + hs) hist(pas + phs)
Al graficar el histograma de la suma de los goles reales (Por asi decirlo)
Nos damos cuenta que la cantidad de partidos donde hubo mas de 4 goles
Es mucho mayor que aquella de los partidos predecidos, en base a esto
Se cambia el parametro a 4 para obtener mejores resultados.
Si se disminuye el valor condicional de la suma real de los goles anotados
Se obtienen mejores ganancias al igual que menores perdidas.
(phs[j] + pas[j]) > 3) y (hs[j] + as[j]) > 2.5)
<<<< (phs[j] + pas[j]) > 4) y (hs[j] + as[j]) > 2.5) #Las perdidas disminuyen
<<<< (phs[j] + pas[j]) > 4) y (hs[j] + as[j]) > 1.5)
Juegos con momios máximos
cap <- 50000; g <- NULL
for(j in 1:length(phs)){ if(((phs[j] + pas[j]) > 3) & (0.64/(momio$Max.2.5.O[j]^-1) > 1)){ if((hs[j] + as[j]) > 2.5) cap <- cap + 1000*(momio$Max.2.5.O[j]-1) else cap <- cap - 1000 g <- c(g, cap) }
if(((phs[j] + pas[j]) < 2.1) & (0.58/(momio$Max.2.5.U[j]^-1) > 1)){ if((hs[j] + as[j]) < 2.5) cap <- cap + 1000*(momio$Max.2.5.U[j]-1) else cap <- cap - 1000 g <- c(g, cap) } } tail(g)
Escenario con momios máximos
g <- data.frame(Num_Ap = 1:length(g), Capital = g) p <- ggplot(g, aes(x=Num_Ap, y=Capital)) + geom_line( color="purple") + geom_point() + labs(x = "Número de juego", y = "Capital", title = "Realizando una secuencia de juegos ~ Momios Maximos") + theme(plot.title = element_text(size=12)) + theme(axis.text.x = element_text(face = "bold", color="blue" , size = 10, angle = 25, hjust = 1), axis.text.y = element_text(face = "bold", color="blue" , size = 10, angle = 25, hjust = 1)) # color, ángulo y estilo de las abcisas y ordenadas p
Escenario con momios promedio
cap <- 50000; g <- NULL
for(j in 1:length(phs)){ if(((phs[j] + pas[j]) > 4) & (0.64/(momio$Avg.2.5.O[j]^-1) > 1)){ if((hs[j] + as[j]) > 2.5) cap <- cap + 1000*(momio$Avg.2.5.O[j]-1) else cap <- cap - 1000 g <- c(g, cap) }
if(((phs[j] + pas[j]) < 2.1) & (0.58/(momio$Avg.2.5.U[j]^-1) > 1)){ if((hs[j] + as[j]) < 2.5) cap <- cap + 1000*(momio$Avg.2.5.U[j]-1) else cap <- cap - 1000 g <- c(g, cap) } } tail(g) #58170
g <- data.frame(Num_Ap = 1:length(g), Capital = g) p <- ggplot(g, aes(x=Num_Ap, y=Capital)) + geom_line( color="purple") + geom_point() + labs(x = "Número de juego", y = "Capital", title = "Realizando una secuencia de juegos") + theme(plot.title = element_text(size=12)) + theme(axis.text.x = element_text(face = "bold", color="blue" , size = 10, angle = 25, hjust = 1), axis.text.y = element_text(face = "bold", color="blue" , size = 10, angle = 25, hjust = 1)) # color, ángulo y estilo de las abcisas y ordenadas p