## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.0 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
riesgos <- data.frame(
Nombre = c("Riesgo por selección errónea",
"Riesgos legales y de cumplimiento",
"Riesgo por sesgos o discriminación"),
Impacto = c(4, 5, 2), # Escala de impacto (1-5)
Probabilidad = c(0.4, 0.2, 0.3), # Probabilidad de ocurrencia
Riesgo_Inherente = c(16, 10, 6) # Impacto * Probabilidad en escala 1-5
)
simular_riesgos <- function(n_sim, riesgos) {
resultados <- matrix(0, nrow = n_sim, ncol = nrow(riesgos))
colnames(resultados) <- riesgos$Nombre
for (i in 1:nrow(riesgos)) {
resultados[, i] <- rbinom(n_sim, size = 1, prob = riesgos$Probabilidad[i])
}
return(rowSums(resultados)) # Suma de riesgos ocurridos por simulación
}
cat("Probabilidad estimada de que ocurra al menos un riesgo:", probabilidad_al_menos_un_riesgo, "\n")
## Probabilidad estimada de que ocurra al menos un riesgo: 0.6639
## Promedio de riesgos que ocurren por simulación: 0.8978
El análisis sugiere que, aunque existe una alta posibilidad de que ocurra al menos un riesgo en el proceso de contratación, es poco probable que todos los riesgos se materialicen al mismo tiempo. Esto indica que aplicar controles efectivos en las áreas críticas (como evaluación de candidatos, cumplimiento normativo y reducción de sesgos) podría minimizar aún más la incidencia de riesgos.
table_resultados <- table(resultados_sim)
barplot(table_resultados / n_sim,
main = "Distribución de número de riesgos ocurridos",
xlab = "Número de riesgos ocurridos",
ylab = "Frecuencia relativa",
col = "blue")
El riesgo de selección errónea es alto, ya que en la mayoría de los casos la probabilidad simulada supera el 70%. Existe un 5% de escenarios extremos donde la probabilidad es cercana al 100%, lo que implica que en situaciones desfavorables este riesgo podría ocurrir casi con certeza. Por lo tanto, para mitigar este riesgo, la empresa debería fortalecer sus controles de selección, como mejorar las entrevistas estructuradas y las evaluaciones técnicas.
# Cargar librerías necesarias
library(ggplot2)
# Parámetros del riesgo de selección errónea
impacto <- 4 # Impacto del riesgo (de 1 a 5)
probabilidad <- 4 # Probabilidad de ocurrencia (de 1 a 5)
# Definir parámetros de la distribución Beta para modelar incertidumbre
alpha <- probabilidad + 1
beta <- (5 - probabilidad) + 1
# Simulación de Monte Carlo
set.seed(123) # Fijar semilla para reproducibilidad
num_simulaciones <- 10000
prob_ocurrencia_simulada <- rbeta(num_simulaciones, alpha, beta)
# Calcular métricas de riesgo
media_probabilidad <- mean(prob_ocurrencia_simulada)
cuantil_95 <- quantile(prob_ocurrencia_simulada, 0.95)
# Visualizar resultados
ggplot(data.frame(prob_ocurrencia_simulada), aes(x = prob_ocurrencia_simulada)) +
geom_histogram(binwidth = 0.05, fill = "blue", alpha = 0.7, color = "black") +
geom_vline(aes(xintercept = media_probabilidad), color = "red", linetype = "dashed", size = 1) +
geom_vline(aes(xintercept = cuantil_95), color = "green", linetype = "dashed", size = 1) +
labs(title = "Simulación Monte Carlo: Probabilidad de Selección Errónea",
x = "Probabilidad Simulada",
y = "Frecuencia") +
theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# Mostrar resultados clave
cat("Probabilidad media estimada del riesgo:", round(media_probabilidad, 3), "\n")
## Probabilidad media estimada del riesgo: 0.714
## Percentil 95% de probabilidad: 0.938
Existe un riesgo moderado-alto en el proceso de contratación, ya que más de la mitad de los escenarios simulados indican problemas potenciales en el proceso. En el 95% de los casos, el riesgo no supera cierto umbral (aproximadamente 85-90%). Sin embargo, hay un 5% de los escenarios donde el riesgo es extremadamente alto, lo que indica la posibilidad de problemas graves en casos excepcionales. Por lo tanto, para mitigar este riesgo, se debe mejorar los controles en el proceso de contratación (validación de antecedentes, auditorías internas).
# Cargar librerías necesarias
library(ggplot2)
# Parámetros del riesgo de selección errónea
impacto <- 5 # Impacto del riesgo (de 1 a 5)
probabilidad <- 5 # Probabilidad de ocurrencia (de 1 a 5)
# Definir parámetros de la distribución Beta para modelar incertidumbre
alpha <- probabilidad + 1
beta <- (5 - probabilidad) + 1
# Simulación de Monte Carlo
set.seed(123) # Fijar semilla para reproducibilidad
num_simulaciones <- 10000
prob_ocurrencia_simulada <- rbeta(num_simulaciones, alpha, beta)
# Calcular métricas de riesgo
media_probabilidad <- mean(prob_ocurrencia_simulada)
cuantil_95 <- quantile(prob_ocurrencia_simulada, 0.95)
# Visualizar resultados
ggplot(data.frame(prob_ocurrencia_simulada), aes(x = prob_ocurrencia_simulada)) +
geom_histogram(binwidth = 0.05, fill = "blue", alpha = 0.7, color = "black") +
geom_vline(aes(xintercept = media_probabilidad), color = "red", linetype = "dashed", size = 1) +
geom_vline(aes(xintercept = cuantil_95), color = "green", linetype = "dashed", size = 1) +
labs(title = "Simulación Monte Carlo: Probabilidad de Riesgos legales y de cumplimiento",
x = "Probabilidad Simulada",
y = "Frecuencia") +
theme_minimal()
# Mostrar resultados clave
cat("Probabilidad media estimada del riesgo:", round(media_probabilidad, 3), "\n")
## Probabilidad media estimada del riesgo: 0.858
## Percentil 95% de probabilidad: 0.991
La probabilidad media de cometer un error en la selección es alta (85.8%), lo que indica que este riesgo es muy recurrente en las simulaciones. Existe una alta concentración de valores cercanos a 1.0, lo que sugiere que en la mayoría de los escenarios simulados, la probabilidad de que ocurra este riesgo es elevada. El percentil 95 (99.1%) indica que en los casos más extremos, el riesgo de selección errónea se acerca al 100%, lo cual puede ser crítico para la organización. Por lo tanto, para mitigar este riesgo, es necesario reforzar los controles en la contratación, como la verificación de competencias, entrevistas estructuradas y pruebas psicométricas.
# Cargar librerías necesarias
library(ggplot2)
# Parámetros del riesgo de selección errónea
impacto <- 2 # Impacto del riesgo (de 1 a 5)
probabilidad <- 3 # Probabilidad de ocurrencia (de 1 a 5)
# Definir parámetros de la distribución Beta para modelar incertidumbre
alpha <- probabilidad + 1
beta <- (5 - probabilidad) + 1
# Simulación de Monte Carlo
set.seed(123) # Fijar semilla para reproducibilidad
num_simulaciones <- 10000
prob_ocurrencia_simulada <- rbeta(num_simulaciones, alpha, beta)
# Calcular métricas de riesgo
media_probabilidad <- mean(prob_ocurrencia_simulada)
cuantil_95 <- quantile(prob_ocurrencia_simulada, 0.95)
# Visualizar resultados
ggplot(data.frame(prob_ocurrencia_simulada), aes(x = prob_ocurrencia_simulada)) +
geom_histogram(binwidth = 0.05, fill = "blue", alpha = 0.7, color = "black") +
geom_vline(aes(xintercept = media_probabilidad), color = "red", linetype = "dashed", size = 1) +
geom_vline(aes(xintercept = cuantil_95), color = "green", linetype = "dashed", size = 1) +
labs(title = "Simulación Monte Carlo: Probabilidad de Riesgo por sesgos o discriminación",
x = "Probabilidad Simulada",
y = "Frecuencia") +
theme_minimal()
# Mostrar resultados clave
cat("Probabilidad media estimada del riesgo:", round(media_probabilidad, 3), "\n")
## Probabilidad media estimada del riesgo: 0.572
## Percentil 95% de probabilidad: 0.85