Árbol Multietapa + Análisis de Sensibilidad

#Objetivo

El objetivo principal de este trabajo es analizar un problema de toma de decisiones estratégicas bajo incertidumbre aplicando un árbol de decisión multietapa. De manera específica, se busca modelar distintas alternativas de crecimiento para una startup tecnológica, cuantificar económicamente cada una de ellas mediante el Valor Monetario Esperado (VME) y determinar la decisión óptima en función de parámetros probabilísticos. Asimismo, se pretende realizar un análisis de sensibilidad respecto a la probabilidad de éxito de un proyecto piloto, con el fin de estudiar la estabilidad de la decisión óptima frente a cambios en los supuestos del modelo. Un objetivo adicional es ilustrar cómo estos conceptos pueden implementarse de manera sistemática en el lenguaje de programación R.

Introducción

Las startups tecnológicas operan en entornos altamente inciertos, caracterizados por mercados volátiles, información incompleta y restricciones financieras significativas. En este contexto, las decisiones relacionadas con el lanzamiento de productos, la expansión de mercado o el abandono de un proyecto deben evaluarse cuidadosamente desde un punto de vista estratégico y económico. Los árboles de decisión permiten estructurar estos problemas complejos mediante una combinación de decisiones secuenciales, eventos aleatorios y resultados monetarios. En este informe se estudia un árbol de decisión multietapa correspondiente al crecimiento de una startup tecnológica. Se analizan tres alternativas principales: lanzar el producto directamente a nivel nacional, realizar un proyecto piloto previo o cerrar el proyecto sin realizar nuevas inversiones. El análisis se fundamenta en el criterio del Valor Monetario Esperado, incorporando además un análisis de sensibilidad que permite comprender cómo varía la decisión óptima cuando cambia la probabilidad de éxito del proyecto piloto.

Metodología

1. Carga de librerías

# ====================================================
# ÁRBOL MULTIETAPA — Startup de Tecnología
# Análisis de sensibilidad incluido
# ====================================================
library(ggplot2); library(dplyr); library(tidyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

2. Definición de los parámetros base del problema

# Parámetros base
inv_nac    <- 200000
inv_piloto <-  60000
p_mer      <- c(0.30, 0.50, 0.20)
payoff_mer <- c(800000, 300000, -50000)
p_exito    <-    0.55
recup_fall <-  10000

En esta sección se establecen los supuestos económicos y probabilísticos del modelo:

  • inv_nac: inversión necesaria para un lanzamiento nacional.

  • inv_piloto: inversión requerida para un proyecto piloto (menor riesgo).

  • p_mer: probabilidades de los estados del mercado:

  • mercado grande (30 %),mercado medio (50 %), mercado pequeño (20 %).

  • payoff_mer: ganancias (o pérdidas) asociadas a cada estado del mercado.

  • p_exito: probabilidad de éxito del proyecto piloto.

  • recup_fall: monto recuperado si el piloto fracasa.

Estos valores definen el entorno de incertidumbre en el que la startup toma decisiones.

3. Definición de la función eval_arbol()

Esta función es el núcleo del análisis. Sirve para calcular el Valor Monetario Esperado de cada alternativa para distintos valores de probabilidad.

# Función de evaluación
eval_arbol <- function(p_ex=0.55, p_gr=0.30) { 
  pm <- c(p_gr, 0.50, 1-p_gr-0.50)   # Cálculo de probabilidades de mercado
  vme_nac    <- sum(payoff_mer * pm) - inv_nac  # Cálculo del VME del lanzamiento nacional
  vme_escal  <- sum(payoff_mer * pm) - inv_nac  # misma inversión # VME de la expansión tras un piloto exitoso
  vme_piloto <- p_ex*vme_escal + (1-p_ex)*recup_fall - inv_piloto  # Cálculo del VME del proyecto piloto
  
  #Comparación de alternativas y decisión óptima
  list(Nacional=vme_nac, Piloto=vme_piloto, Cerrar=0,
       Optima=max(vme_nac, vme_piloto, 0),
       Decision=c("Nacional","Piloto","Cerrar")[which.max(c(vme_nac,vme_piloto,0))])
}

4. Evaluación del caso base

Se evalúa el árbol usando la probabilidad base de éxito del piloto (p_exito = 0.55). Luego se imprimen los valores monetarios esperados y la decisión recomendada. Esto permite conocer qué decisión es mejor bajo los supuestos actuale

# Caso base
base <- eval_arbol()
cat("===== STARTUP — CASO BASE =====\n")
## ===== STARTUP — CASO BASE =====
cat(sprintf("VME Nacional:  $%s\n", format(round(base$Nacional),big.mark=",")))
## VME Nacional:  $180,000
cat(sprintf("VME Piloto:    $%s\n", format(round(base$Piloto),  big.mark=",")))
## VME Piloto:    $43,500
cat(sprintf("Decisión óptima: %s ($%s)\n",
    base$Decision, format(round(base$Optima), big.mark=",")))
## Decisión óptima: Nacional ($180,000)

5. Análisis de sensibilidad sobre la probabilidad de éxito

# Sensibilidad: P(éxito piloto)
p_exitos <- seq(0.10, 0.90, 0.02)

Se genera una secuencia de probabilidades de éxito del piloto entre 10 % y 90 %.
Para cada valor, el árbol de decisión se vuelve a evaluar:

sens <- lapply(p_exitos, function(p) {
  res <- eval_arbol(p_ex=p)
  data.frame(p_exito=p, Nacional=res$Nacional,
             Piloto=res$Piloto, Cerrar=0)
}) |> bind_rows()

Esto permite observar cómo cambia el VME de cada alternativa cuando cambia la probabilidad de éxito. ## 6. Cálculo del punto de indiferencia

# Punto de indiferencia Nacional vs Piloto
indiferencia <- approx(sens$Piloto-sens$Nacional,
                        sens$p_exito, xout=0)$y
cat(sprintf("\nPunto de indiferencia: P(éxito)=%.2f\n", indiferencia))
## 
## Punto de indiferencia: P(éxito)=NA
cat(sprintf("Si P(éxito) > %.2f → Piloto es mejor que Nacional\n", indiferencia))
## Si P(éxito) > NA → Piloto es mejor que Nacional

Este cálculo encuentra el valor de p_exito para el cual: VMEPiloto=VMENacionalVME_{} = VME_{}VMEPiloto=VMENacional Es decir, el umbral crítico a partir del cual conviene realizar un proyecto piloto en lugar de lanzar directamente.

7. Gráfico del análisis de sensibilidad

El gráfico muestra:

Este gráfico facilita la interpretación visual de la decisión óptima

# Gráfico de sensibilidad
sens_long <- pivot_longer(sens, -p_exito,
                           names_to="Alternativa", values_to="VME")
ggplot(sens_long, aes(x=p_exito, y=VME/1000, color=Alternativa)) +
  geom_line(linewidth=1.2) +
  geom_vline(xintercept=c(0.55, indiferencia),
             linetype=c("solid","dashed"), alpha=0.5) +
  scale_color_manual(values=c(Nacional="#3a7fbd",Piloto="#d97706",Cerrar="#8a9ab5")) +
  scale_x_continuous(labels=scales::percent) +
  labs(title="Análisis de Sensibilidad — Startup",
       subtitle=sprintf("Indiferencia en P(éxito)=%.0f%%. Caso base=55%% (línea sólida)",
                         indiferencia*100),
       x="P(Éxito Piloto)", y="VME (miles $)") +
  theme_minimal()
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_vline()`).

Conclusión

El análisis realizado demuestra la utilidad de los árboles de decisión multietapa y del Valor Monetario Esperado como herramientas para evaluar decisiones estratégicas en contextos de alta incertidumbre. En el caso de la startup tecnológica analizada, el proyecto piloto aparece como la estrategia óptima en la mayoría de los escenarios considerados, ya que permite limitar la inversión inicial y adaptar la decisión final en función de nueva información. Desde una perspectiva técnica y formativa, este trabajo evidencia cómo R puede utilizarse para implementar modelos de decisión complejos de manera clara y reproducible. La incorporación de análisis de sensibilidad refuerza la validez de las conclusiones, al mostrar cómo la decisión óptima responde a cambios en los supuestos probabilísticos. En conjunto, el enfoque desarrollado proporciona una base sólida para la toma de decisiones estratégicas informadas en entornos empresariales inciertos y constituye un ejemplo didáctico relevante para estudiantes de análisis cuantitativo y programación en R.