hvasquez28 / g1-ds_santander-f2-team7

Repository for the team 7's R project. This group belongs to the Bedu-Santander Data Science course, Phase 2.
GNU General Public License v3.0
0 stars 0 forks source link

Proponer hipotesis #3

Open hvasquez28 opened 1 year ago

NorbertoP7 commented 1 year ago

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)

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.

(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