El patrocinador del proyecto que usted está dirigiendo se le acerca y le pregunta:
–¿Qué probabilidad hay de que mi proyecto termine antes de abril por debajo de un millón de euros?
Para responder profesionalmente a esta pregunta, usted puede utilizar la técnica de simulación de Monte Carlo. Lo único que necesita es abrir un fichero Excel, modelar el riesgo de las actividades sobre los objetivos de tiempo y coste, y generar dos gráficas:
Apoyándose en esta gráfica, usted podría explicarle lo siguiente:
–Terminar antes de marzo es imposible. Teniendo en cuenta los riesgos, la fecha más probable para entregar un producto aceptable es el 31 de marzo, pero esta fecha no es muy creíble, ya que tan solo hay un 30% de probabilidad de terminar antes. Habría que esperar hasta mediados de abril si se quiere publicar una fecha límite con el 50% de confianza. Si se quiere probabilidad de retraso virtualmente nula, habría que publicar como fecha de fin de proyecto el 1 de junio.
Con esta otra gráfica podría darle una explicación sobre el coste:
–El presupuesto a la conclusión debería ser de 1,1M€, teniendo en cuenta la reserva para contingencias de 200k€. Hemos calculado la reserva para contingencias restando el percentil 50 (1,1M€) menos el percentil cero (900k€).
Si le pregunta que cómo ha generado estas gráficas tan útiles, usted puede responder:
–Hemos utilizado una técnica de análisis cuantitativo de riesgos denominada simulación de Monte Carlo.
–Imagino que para hacer eso estaréis usando una herramienta muy cara. ¡Yo no he autorizado este gasto contra el presupuesto del proyecto!
–Tranquilo, solo estamos usando Microsoft Excel nativo.
La función RAND()
Si modela bien la incertidumbre de las actividades, la técnica de Monte Carlo le permitirá elaborar una respuesta sobre el proyecto a partir de las actividades que lo componen. Esta técnica se basa en la capacidad de los ordenadores de hoy en día para generar con bastante precisión números aleatorios entre 0 y 1. En Microsoft Excel se usa la función RAND para obtener un número entre 0 y 1 con igual probabilidad, es decir, siguiendo una distribución uniforme U(0,1).
Utilizando estos números, podemos simular muchísimos posibles resultados para las duraciones y los costes de las actividades, que a su vez podemos sumar para computar la duración y el coste del proyecto completo, y así representar los rangos de incertidumbre con gráficas de probabilidad.
Monte Carlo para calcular el número pi
La aplicación más sencilla de Monte Carlo no tiene que ver con proyectos, sino con la deducción del número π. Imaginemos un sector circular de radio 1 inscrito en un cuadrado de lado 1:
En la figura, vemos que, por ejemplo, el punto (0.4,0.3) cae dentro del sector circular porque 0.4^2+0.3^2=0.25<=1, mientras que el punto (0.8,0.8) cae fuera, ya que 0.8^2+0.8^2=1.28>1.
¿Cuál es la probabilidad de que cualquier punto cualquiera (x,y) del cuadrado caiga dentro del sector circular? Dividiendo casos favorables entre casos posibles, obtenemos que dicha probabilidad es π/4.
- Casos favorables = el área del sector circular = π/4.
- Casos posibles = el área del cuadrado = 1.
Cualquier persona con conocimientos avanzados de estadística sabría obtener este resultado algebraicamente, utilizando variables aleatorias. Para ello modelaría las variables X e Y como variables uniformes U(0,1) y después deduciría que la probabilidad de que la variable aleatoria compuesta (X^2+Y^2) sea menor o igual que 1 es justamente π/4.
El método de Monte Carlo es un método numérico para llegar a estos resultados. Utilizando Monte Carlo no llegaremos a una expresión algebraica, sino a un número que será tanto más preciso cuanto mayor sea el número de simulaciones.
Veamos cómo utilizar Monte Carlo para calcular π. Puede descargar aquí el fichero Excel que he utilizado.
Si generamos suficientes puntos aleatorios (x,y) con la función RAND(), podríamos contar cada vez si caen dentro del sector circular, comprobando si cumplen la condición x^2+y^2<=1. Si contamos el número de puntos que cumplen la condición, lo dividimos por el número total de puntos y multiplicamos por 4, entonces deberíamos obtener un número parecido a π.
Con diez mil simulaciones, he obtenido una precisión del 99,68%:
Con veinte mil simulaciones, he obtenido una precisión del 99,89%:
Y por último, con treinta mil simulaciones, he obtenido una precisión del 99,97%:
Monte Carlo para estimar duraciones y costes de proyectos
El Dr. Mario Vanhoucke en su libro The Data-Driven Project Manager, propone los siguientes casos para modelar estadísticamente las actividades de cualquier proyecto:
- La actividad no tiene riesgo: Podemos confiar en la estimación basada en el juicio de expertos. La actividad puede modelarse con la estimación más probable.
- La actividad tiene poco riesgo: La estimación es más o menos precisa salvo por pequeñas variaciones inesperadas que podrían ocurrir debido a factores aleatorios. En este caso usaremos una distribución simétrica beta o triangular.
- La actividad tiene riesgo conocido: Las causas de las posibles desviaciones son bien conocidas. El equipo de gestión sabe que estas actividades pueden terminar más pronto o más tarde si estas causas se materializan. Usaremos una distribución asimétrica beta o triangular.
- La actividad tiene riesgo desconocido: Usamos una distribución uniforme. A veces el equipo de gestión no tiene conocimiento previo para producir una estimación fiable. En estos casos, lo mejor es definir un rango de posibles valores y definir una distribución uniforme que exprese esta falta de conocimiento sobre las estimaciones.
- La actividad es un cisne negro: Para algunas actividades se asume que la probabilidad de los potenciales problemas es muy baja, si bien no deben menospreciarse porque el impacto para el proyecto podría ser muy alto. Estas actividades típicamente se excluyen del análisis de riesgos por considerarlas fuera de lo normal, y suelen gestionarse como supuestos. Para el análisis de Monte Carlo, podemos modelarlas como si no tuvieran riesgo.
En el libro se utiliza un caso práctico consistente en construir un campo de tenis. En la siguiente tabla se muestran las estimaciones de las duraciones de las actividades, si son críticas o no, y los datos de la función de riesgo.
Como puede apreciarse en la tabla, las funciones de riesgo se modelan con tres valores: optimista, pesimista y más probable, y el tipo de función, propiamente. En el libro se propone seleccionar la función de riesgo según la probabilidad:
- triangular o beta simétrica para probabilidades bajas
- triangular o beta asimétrica para probabilidades medias
- uniforme para probabilidades altas
El impacto se puede modelar según la distancia entre los puntos optimista y pesimista.
Con los datos de la tabla, aplicando el teorema del límite central, ya podríamos estimar la duración del proyecto completo como una gaussiana de duración media 53 semanas y desviación típica 1,83 semanas.
Resulta cómodo modelar así el proyecto, como una distribución normal centrada en la semana 53 (μ=53), con desviación típica 1,83 (σ=1,83).
Por tratarse de la función normal, sabemos que la probabilidad en el intervalo (μ-σ,μ+σ) es del 68%, entre (μ-2σ,μ+2σ) del 95% y entre (μ-3σ,μ+3σ) del 99%. Así pues, para nuestro proyecto, podríamos decir rápidamente que:
Hay un 68% de probabilidad de que el proyecto termine entre las semanas 51 y 55.
Hay un 95% de probabilidad de que el proyecto termine entre las semanas 49 y 57.
Hay un 99% de probabilidad de que el proyecto dure entre 47 y 58 semanas.
También podríamos decir, por ejemplo, usando en Excel la fórmula NORMDIST(50; 53; 1,83;1) = 5%:
La probabilidad de que el proyecto termine antes de 50 semanas es de un 5%.
El inconveniente es que, en gestión de proyectos, el teorema del límite centralno es aplicable cuando hay pocas actividades, sus duraciones son dependientes, o varía el camino crítico entre simulaciones.
Si realizamos simulaciones de Monte Carlo, obtendríamos una distribución de probabilidad más exacta, que como se puede apreciar no se parece mucho a una campana de Gauss:
En la gráfica inferior, puede verse que los percentiles 22, 33 y 93 corresponden, respectivamente, a las semanas 48, 50 y 60. Así podríamos estimar que:
Hay un 71% (=93%–22%) de probabilidad de que el proyecto termine entre las semanas 48 y 60.
La probabilidad de que el proyecto termine antes de 50 semanas es de un 33%.
Pulsando este enlace puede descargar el fichero Excel que he utilizado. Les animo a que lo usen y lo distribuyan libremente, y les agradezco de antemano cualquier comentario, por favor.
Pulse aquí para leer este artículo en inglés.