Simulación 1

Para el primer punto se solicita simular el proceso de producción de engranajes en un mes y analizar el número de piezas defectuosas que llega al centro de inspección en intervalos de una hora.

Modelo usado: En este caso, se percibe un modelo de probabilidad discreta de Poisson. Este se logra diferenciar ya que se caracteriza por eventos que suceden en intervalos particulares que a su vez son totalmente independientes al resto de intervalos. Este modelo es apropiado para modelar este tipo de procesos donde ocurren eventos de manera independiente en un intervalo continuo de tiempo. Cada llegada de una pieza defectuosa al centro de inspeccion se considera un evento discreto que no afecta o altera la llegada de otras piezas defectuosas en los siguientes intervalos.

Por otro lado, el problema nos da a entender que se debe estimar una media de piezas defectuosas, dado que hace referencia al número de ocurrencias o la tasa promedio del evento aleatorio durante el intervalo definido. Se representa como lambda. Para el ejercicio este párametro fue libre de elegir y se considera para el siguiente ejemplo una tasa promedio de 12 piezas defectuosas por mes.

La variable en cuestion será la cantidad de piezas defectuosas durante un mes de producción.

Aclarado el modelo a usar se usa el siguiente código para llevar a cabo la simulacion:

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
# Definir parámetros de la simulación
set.seed(12921991)  # Para reproducibilidad
intervalos_simulacion <- 28  # Numero de intervalos
lambda <- 12  # Tasa de Poisson para todo el mes (número de engranajes defectuosos por mes)

# Crear un rango de valores x
valores_x <- 0:intervalos_simulacion

# Calcular la probabilidad de la distribución de Poisson para cada valor de x
probabilidades <- dpois(valores_x, lambda)

En este caso se usa la librería ggplot para la visualización de la gráfica que se mostrará mas adelante. Se registran: una semilla para reproducibilidad de la simulacion, los intervalos de simulacion (en este caso se tomaran en cuenta 24 intervalos) y finalmente el lambda, el cual es un párametro que para este ejercicio tomaremos como 12.

Posteriormente es necesario crear un rango de valores para x, los cuales parten de los intervalos de simulación y con la función dpois se calcula la probabilidad correspondiente que se resalta en el eje y correspondiente.

A continuacion se puede observar una pequeña tabla con el número del intervalo, el valor de x y la probabilidad correspondiente:

# Crear un data frame con los resultados
datos <- data.frame(Valores_x = valores_x, Probabilidades = probabilidades)
print(datos)
##    Valores_x Probabilidades
## 1          0   6.144212e-06
## 2          1   7.373055e-05
## 3          2   4.423833e-04
## 4          3   1.769533e-03
## 5          4   5.308599e-03
## 6          5   1.274064e-02
## 7          6   2.548128e-02
## 8          7   4.368219e-02
## 9          8   6.552328e-02
## 10         9   8.736438e-02
## 11        10   1.048373e-01
## 12        11   1.143679e-01
## 13        12   1.143679e-01
## 14        13   1.055704e-01
## 15        14   9.048890e-02
## 16        15   7.239112e-02
## 17        16   5.429334e-02
## 18        17   3.832471e-02
## 19        18   2.554981e-02
## 20        19   1.613672e-02
## 21        20   9.682032e-03
## 22        21   5.532590e-03
## 23        22   3.017776e-03
## 24        23   1.574492e-03
## 25        24   7.872460e-04
## 26        25   3.778781e-04
## 27        26   1.744053e-04
## 28        27   7.751345e-05
## 29        28   3.322005e-05

Finalmente, se representa la distribución en un gráfico de histograma:

# Graficar la distribución del número de engranajes defectuosos
ggplot(datos, aes(x = Valores_x, y = Probabilidades)) +
  geom_bar(stat = "identity", fill = "blue", color = "black", alpha = 0.7) +
  labs(title = "Distribución del número de engranajes defectuosos",
       x = "Número de engranajes defectuosos",
       y = "P(X=x)") +
  theme_minimal()


Simulacion 2

La siguiente simulación consiste en un juego donde el concursante lanza un dado y respecto a la cantidad de puntos del dado (1,2,3,4,5,6) el jugador podra ganar 100 pesos como puntos indique el dado, excepto en el caso que al salir 5 o 6 sera el concursante quien deba pagar tantos billetes de 100 pesos al anfitrión segun los puntos indicados.

Modelo usado: Dado que el lanzamiento de un dado tiene una probabilidad igual de resultar en cualquier número entre 1 y 6, podemos usar un modelo de probabilidad uniforme discreta para modelar este proceso. La variable que se utilizara como X será el numero de puntos que aparezca cuando se lance el dado.

El uso de un modelo de distribución de probabilidad uniforme es el indicado para este caso, puesto que la probabilidad ante obtener el resultado ante el lanzamiento de un dado es equitativo para cada cara del dado y no hay razón para creer que un número sea más probable de obtener que otro. Además, el juego se basa en el azar y la aleatoriedad inherente al lanzamiento de un dado.

Modelación del juego La forma en que se modelara el juego va a ser la siguiente: tomaremos la variable X que ya definimos anteriormente y al tener cada cara tiene la misma probabilidad de caer entonces tenemos P(X=1) =1/6, P(X=2) =1/6, P(X=3) =1/6, etc.

Ahora debemos hallar la cantidad de dinero esperado que el jugador pueda conseguir o perder conforme cada tiro entonces utilizamos la formula de esperanza para la distribución uniforme discreta: 𝐸(𝑋) = 1/𝑛(𝑥1 + 𝑥2 + ⋯ + 𝑥n)

Tomamos n=6 debido a que son 6 posibles resultados 𝐸(𝑋) =1/6(100+200+300+400-500-600)= -$16.6

Este valor encontrado infiere que el concursante perderá aproximadamente con cada tiro, esto no significa que el concursante siempre pierda. Sin embargo, es lo que se llegaria a esperar frente a la dinamica del juego.

Antes de continuar con la simulación, el anterior calculo ya nos dirige a la conclusión de quien tiene la ventaja en el juego, el concursante o el anfitrión.

Para la simulación:

uniforme = function(n){
  
  dados = sample(1:6, n, replace = TRUE)
  suma = 0
  for(i in 1:n){
    if(dados[i] >= 5){
      suma = suma - (dados[i]*100)
    }
    else{
      suma = suma + (dados[i]*100)
    }
    print(dados[i])
  }
  print(suma)
}

En este primer fragmento de código se crea una funcion que me indica los puntos a la cara del dado obtenida. A su vez la suma de dinero siempre y cuando se obtenga los puntos del 1 al 4 y cuya cantidad se multiplica por 100 pesos. Caso contrario ocurre cuando se obtiene el numero 5 o 6 debido a que se resta la cantidad de puntos por 100 pesos.

Para un estudio mas exacto estudiamos esta simulacion al lanzar por una cantidad de lanzamientos especifica. Entre mayor sea el numero de lanzamientos es mas probable encontrar que el concursante pierde dinero ya que usualmente arroja numeros negativos. En este caso decidimos tomar de referencia 10 lanzamientos

uniforme(10)
## [1] 6
## [1] 1
## [1] 1
## [1] 2
## [1] 1
## [1] 1
## [1] 6
## [1] 1
## [1] 2
## [1] 6
## [1] -900

¿Por qué ocurre esto? A pesar de que el concursante tenga mas posibilidades de obtener mas puntos por tener mas caras de los dados a su favor el hecho de que por cada punto equivale a 100 pesos conlleva a que sacar un 5 o un 6 perjudique en gran medida al jugador al restar una mayor cantidad de dinero. Para compensar este hecho el jugador deberia de obtener las caras de los lados que le beneficia pero debemos recordar que al lanzar cada cara tienen la misma probabilidad de ocurrir por lo que es muy poco probable una victoria en este juego. La ventaja en definitiva la obtiene el anfitrion (esto tampoco indica que el concursante tenga una derrota asegurada, esta conclusion se limite al valor esperado estudiado)