Representación gráfica que integra alternativas, incertidumbre y probabilidades en un solo modelo dinámico.
A continuación se presenta una imagen técnica como referencia de la morfología de un árbol de decisión:
Estructura de un Árbol Base y Plegado (Referencia)
Nota de Referencia: La imagen anterior sirve exclusivamente como guía visual para identificar los componentes esenciales del modelo (nodos de decisión, azar y terminales) y no representa los valores específicos del caso petrolero.
Un árbol de decisión es un grafo dirigido acíclico que modela problemas de decisión secuencial. A diferencia de la tabla de pagos (estática, una sola etapa), el árbol captura la temporalidad: primero decides, luego observas la naturaleza, luego vuelves a decidir. Es el modelo estándar cuando el decisor puede recibir información entre decisiones.
Una empresa debe decidir entre vender un terreno ($90,000), perforar directamente (Inversión $100,000 con retorno de $600,000 si hay éxito) o realizar un estudio sísmico previo ($30,000).
Aplicamos el Principio de Optimalidad de Bellman: Las decisiones futuras deben ser óptimas independientemente de las decisiones iniciales.
# --- PARÁMETROS INICIALES ---
p_petrol <- 0.45 # Probabilidad a priori de encontrar petróleo
ingreso <- 600000 # Ingreso bruto si la perforación es exitosa
costo_perf <- 100000 # Costo fijo de realizar la perforación
precio_venta <- 90000 # Precio de venta directa del terreno
costo_sismico <- 30000 # Costo del estudio técnico sísmico
p_pos_si <- 0.80 # Probabilidad de que el estudio sea (+) si hay petróleo
p_pos_no <- 0.25 # Probabilidad de que el estudio sea (+) si NO hay petróleo
# --- CÁLCULO BAYESIANO (Actualización de Probabilidades) ---
p_no <- 1 - p_petrol # Probabilidad complementaria (no hay petróleo)
# Probabilidad total de obtener un resultado positivo en el estudio
p_s_pos <- p_pos_si * p_petrol + p_pos_no * p_no
# Probabilidad total de obtener un resultado negativo
p_s_neg <- 1 - p_s_pos
# Probabilidad a posteriori: Hay petróleo dado que el estudio fue positivo
post_si_pos <- (p_pos_si * p_petrol) / p_s_pos
# Probabilidad a posteriori: Hay petróleo dado que el estudio fue negativo
post_si_neg <- ((1 - p_pos_si) * p_petrol) / p_s_neg
# --- CÁLCULO DE VALOR MONETARIO ESPERADO (VME) ---
# Función para calcular el VME de perforar dada una probabilidad 'p'
vme_perf <- function(p) p * (ingreso - costo_perf) + (1 - p) * (-costo_perf)
vme_directo <- vme_perf(p_petrol) # VME si perforamos sin hacer el estudio
vme_perf_pos <- vme_perf(post_si_pos) # VME de perforar si el estudio salió (+)
vme_perf_neg <- vme_perf(post_si_neg) # VME de perforar si el estudio salió (-)
# Decisiones en los nodos secundarios (¿Perforar o Vender después del estudio?)
dec_pos <- max(vme_perf_pos, precio_venta) # Elección óptima tras estudio (+)
dec_neg <- max(vme_perf_neg, precio_venta) # Elección óptima tras estudio (-)
# VME Global de la alternativa "Contratar Estudio"
vme_estudio <- p_s_pos * dec_pos + p_s_neg * dec_neg - costo_sismicoEste análisis responde a: ¿Qué tan segura debe estar la empresa de que hay petróleo para que cambie su decisión?
# Creamos un vector de probabilidades desde 5% hasta 95%
ps <- seq(0.05, 0.95, 0.01)
# Aplicamos la lógica del árbol para cada punto de probabilidad
sens <- sapply(ps, function(p) {
pn <- 1 - p
sp <- p_pos_si * p + p_pos_no * pn
sn <- 1 - sp
pp <- (p_pos_si * p) / sp
pn2 <- ((1 - p_pos_si) * p) / sn
dp <- max(vme_perf(pp), precio_venta)
dn <- max(vme_perf(pn2), precio_venta)
# Retornamos los tres valores comparativos
c(Perforar = vme_perf(p), Vender = precio_venta, Estudio = sp * dp + sn * dn - costo_sismico)
})
# Convertimos la matriz en un dataframe y añadimos la columna de probabilidad (CORREGIDO)
df_s <- as.data.frame(t(sens)) %>% mutate(p_petrol = ps)
# Transformamos a formato largo para que ggplot pueda graficar las 3 líneas
df_long <- pivot_longer(df_s, -p_petrol, names_to = "Alternativa", values_to = "VME")
# Generación del gráfico estadístico
ggplot(df_long, aes(x = p_petrol, y = VME / 1000, color = Alternativa)) +
geom_line(linewidth = 1.2) + # Dibujar líneas de tendencia
geom_vline(xintercept = 0.45, linetype = "dashed", alpha = 0.5) + # Marcar nuestra P actual
scale_color_manual(values = c("Estudio" = "#0f7a52", "Perforar" = "#3a7fbd", "Vender" = "#d97706")) +
labs(title = "Análisis de Sensibilidad: VME vs Probabilidad de Petróleo",
subtitle = "La línea verde (Estudio) domina en la incertidumbre media",
x = "Probabilidad Inicial (P)", y = "VME (en miles $)") +
theme_minimal()De acuerdo al Backward Induction, la empresa debe seguir este plan: