library(dplyr)
library(ggplot2)
Hay tres tipos de dias de noticia, \(Excelente\), \(Bueno\) y \(Malo\), con probabilidades de \(0.35\), \(0.45\) y \(0.20\) respectivamente.
sample_days <- sample(c(1,2,3), size = 20, replace = TRUE, prob = c(0.35,0.45,0.20))
sample_days
[1] 2 3 2 1 2 1 2 2 3 2 2 2 1 2 1 2 2 1 2 2
La siguiente funcion, dependiendo el dia (Excelente, bueno o malo) devuelve el vector de probabilidades a usar para obtener la demanda:
getProbDay <- function(dia){
if(dia == 1){
prob_dia <- c(0.03,0.05,0.15,0.20,0.35,0.15,0.07)
}else if(dia == 2){
prob_dia <- c(0.10,0.18,0.40,0.20,0.08,0.04,0)
}else{
prob_dia <- c(0.44,0.22,0.16,0.12,0.06,0,0)
}
return(prob_dia)
}
Prueba de la funcion getProbDay()
:
getProbDay(sample_days[1])
[1] 0.10 0.18 0.40 0.20 0.08 0.04 0.00
Funcion que obtiene la utilidad:
utility <- function(inventario,demanda){
ganancia <- 0
if(inventario < demanda){
ganancia <- (inventario * 0.50) - (inventario * 0.33) - ((demanda - inventario) * (0.50-0.33))
}
else if (demanda < inventario){
ganancia <- (demanda * 0.50) - (inventario * 0.33) + ((inventario - demanda) * 0.05)
}
else if (inventario == demanda){
ganancia <- (demanda * 0.50) - (inventario * 0.33)
}
return(ganancia)
}
resultados <- data.frame(inventario = c(), demanda = c(), ganancia = c())
inventarioP <- c(40,50,60,70,80,90,100)
for (inv in inventarioP){
sample_days <- sample(c(1,2,3), size = 20, replace = TRUE, prob = c(0.35,0.45,0.20))
for(day in sample_days){
demanda <- sample(c(40,50,60,70,80,90,100), size = 1, replace = TRUE, prob = getProbDay(day))
ganancia <- utility(inv, demanda)
aux_df <- data.frame(inventario = inv, demanda = demanda, ganancia = ganancia)
resultados <- rbind(resultados, aux_df)
}
}
resultados
Graficando el resultado usando un sample de 20 dias.
resultados %>%
ggplot(aes(x = inventario, y = ganancia)) +
geom_point()
boxplot(ganancia ~ inventario, data = resultados)
Por lo que se puede ver que la mayor ganancia se genera cuando se tiene un inventario de entre \(70\) y \(80\) periodicos. Independientemente de cuantas personas compren los periodicos.