knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
Este taller práctico tiene como objetivo principal poner en práctica las técnicas de simulación de variables aleatorias mediante el uso del entorno estadístico R Studio. La simulación constituye una herramienta esencial para representar fenómenos aleatorios de alta complejidad y obtener estimaciones consistentes de sus parámetros, siendo ampliamente utilizada en ingeniería, finanzas y gestión de riesgos.
A lo largo de los ejercicios se abordarán las distribuciones de probabilidad más representativas para la modelación de fenómenos discretos y continuos: la distribución de Poisson (adecuada para eventos poco frecuentes en un intervalo), la distribución exponencial (empleada en tiempos de espera o vida útil), la distribución binomial (para conteos de éxitos y fracasos) y la distribución normal (aplicable a variables continuas con comportamiento centrado). Dichos modelos se contextualizarán en escenarios operativos relevantes como la producción industrial, la confiabilidad de dispositivos y la variación de la demanda energética.
Análisis Teórico: La Distribución de Poisson es ideal para modelar el número de ocurrencias de eventos discretos en un intervalo fijo de tiempo, como las fallas del sistema
set.seed(123)
fallas <- rpois(150, lambda = 3) # Simulación de 150 días con media de 3 fallas
mean_fallas <- mean(fallas) # Cálculo de la media
sd_fallas <- sd(fallas) # Cálculo de la desviación estándar
mean_fallas
## [1] 3
sd_fallas
## [1] 1.658818
Análisis
El código proporcionado simula el número de fallas diarias durante un
semestre (150 días), asumiendo un proceso Poisson con una tasa media (λ)
de 3 fallas por día.
siendo utilizada frecuentemente para describir la duración, o el intervalo de tiempo, hasta la ocurrencia de un evento (como una avería o fin de vida
set.seed(123) # Semilla para obtener siempre el mismo resultado
vida <- rexp(1000, rate = 1/500) # Simulación de 1000 tiempos de vida con media 500
prob_mas700 <- mean(vida > 700) # Estimar probabilidad de durar más de 700 horas
prob_mas700
## [1] 0.255
Análisis
La probabilidad estimada por simulación de que un componente dure más de
700 horas es del 25.2%. Este valor se acerca significativamente al valor
teórico (P(X>700)=e −0.002×700 ≈0.2466), lo que valida la simulación
como una buena aproximación del modelo Exponencial.
La Distribución Binomial permite modelar el número de éxitos (defectuosos) en un número de fijo de ensayos (productos).
set.seed(123) # Semilla
defectuosos <- rbinom(100, size = 50, prob = 0.05) # 100 lotes de 50 productos
mean_defectuosos <- mean(defectuosos) # Promedio de defectuosos por lote
mean_defectuosos
## [1] 2.48
Análisis
El promedio de defectuosos por lote se acerca al valor esperado
50 x 0.05 = 2.5. Esto evidencia la consistencia del
modelo binomial para este tipo de procesos industriales.
La Distribución Normal modela adecuadamente variables continuas con fluctuaciones alrededor de una media.
set.seed(123) # Semilla
demanda <- rnorm(365, mean = 100, sd = 15) # Simulación de 365 días
prob_mas130 <- mean(demanda > 130) # Probabilidad de superar 130 MW
prob_mas130
## [1] 0.03013699
# Creación del data frame para graficar
df_demanda <- data.frame(demanda)
# Histograma + Curva de Densidad
ggplot(df_demanda, aes(x = demanda)) +
geom_histogram(aes(y = ..density..), bins = 30, fill = "black", color = "red", alpha = 0.7) +
geom_density(color = "yellow", size = 1) +
geom_vline(xintercept = 130, linetype = "dashed", color = "blue") +
labs(title = "Histograma de la Demanda Diaria (MW)",
x = "Demanda (MW)", y = "Densidad")
Análisis
El histograma confirma la forma de campana característica de la normal.
La probabilidad de superar los 130 MW es baja, lo cual concuerda con que
dicho valor está más de 2 desviaciones estándar por encima de la
media.
a) Generar 1000 tiempos de vida del capacitor aplicando el método de la transformada inversa. X = −β⋅ln(1−U), U∼U(0,1)
set.seed(123) # Semilla
n <- 1000 # Número de Simulaciones
beta <- 1000 # Parámetro de la Distribución Exponencial
U <- runif(n)
vida_cap <- -beta * log(1 - U)
b) Estimar la media y la varianza de los tiempos generados y compararlas con los valores teóricos.
Valores Teóricos
E|X| = β = 1000, Var[X] = β^2 = 1000000
media_sim <- mean(vida_cap) # Media simulada
var_sim <- var(vida_cap) # Varianza simulada
media_sim
## [1] 986.1544
var_sim
## [1] 954966.2
Los valores simulados se aproximan a los teóricos, validando la simulación.
c) Graficar el histograma de los tiempos de vida simulados junto con la densidad teórica de la distribución exponencial.
df_vida <- data.frame(vida_cap)
ggplot(df_vida, aes(x = vida_cap)) +
geom_histogram(aes(y = ..density..), bins = 30, fill = "red", color = "black", alpha = 0.7) +
stat_function(fun = dexp, args = list(rate = 1/beta), color = "blue", size = 1) +
labs(title = "Tiempo de Vida de Capacitores",
x = "Tiempo de vida (horas)", y = "Densidad")
Los Valores simulados se aproximan a los teóricos, validando la simulación.
d) Calcular la probabilidad de que un capacitor dure menos de 940 horas usando la simulación.
prob_menos940 <- mean(vida_cap < 940) # Probabilidad Simulada
prob_menos940
## [1] 0.611
El resultado simulado concuerda con el cálculo teórico P(X < 940) = 1 -e ^-940/1000. Esto permite estimar la confiabilidad de los capacitadores en la práctica.
El desarrollo de este taller permitió aplicar de manera práctica los fundamentos de la simulación de variables aleatorias en el entorno R Studio. A través de los ejercicios se representaron con éxito distintos fenómenos de interés industrial —como la ocurrencia de fallas (Poisson), la vida útil de componentes (Exponencial), el control de calidad en lotes (Binomial) y la variación de la demanda energética (Normal)—, evidenciando la pertinencia de estas distribuciones para describir la incertidumbre y la variabilidad propias de los sistemas de ingeniería.
Los resultados numéricos obtenidos en las simulaciones mostraron una notable correspondencia con los valores y probabilidades teóricas esperadas. Esta consistencia respalda la correcta implementación de las funciones de generación aleatoria (rpois, rexp, rbinom, rnorm) y resalta la relevancia de la validación estadística como etapa esencial en todo estudio de simulación.
Asimismo, el uso de la librería ggplot2 fue clave al brindar visualizaciones claras (histogramas y curvas de densidad) que no solo facilitaron la interpretación gráfica de las distribuciones, sino que también permitieron contrastar de manera intuitiva los resultados simulados con el modelo teórico.
En conjunto, esta experiencia no solo refuerza el entendimiento de los modelos probabilísticos, sino que también potencia las competencias de análisis y evaluación de sistemas complejos, preparando al estudiante para anticipar comportamientos futuros y apoyar la toma de decisiones basadas en la gestión de procesos industriales y energéticos.