Árbol de Decisión — Exploración Petrolera

Introducción - Planteamiento del problema

La toma de decisiones bajo incertidumbre es clave en proyectos de inversión como la exploración petrolera, donde existen riesgos y beneficios variables. En este caso, una empresa debe elegir entre vender un terreno, perforar directamente o realizar un estudio sísmico que brinde información adicional, considerando que la probabilidad de encontrar petróleo es del 45%. Cada alternativa implica distintos costos y posibles ganancias, por lo que el problema consiste en determinar cuál opción maximiza el beneficio esperado mediante el uso de herramientas como el árbol de decisión y el Valor Monetario Esperado (VME).


  1. Parámetros del modelo
library(data.tree)

p_petrol      <- 0.45
ingreso       <- 600000
costo_perf    <- 100000
precio_venta  <-  90000
costo_sismico <-  30000
p_pos_si      <-   0.80
p_pos_no      <-   0.25

Definición de variables

Se definen los parámetros principales del problema de decisión:

  • p_petrol = 0.45: Probabilidad de que exista petróleo en el terreno (45%).

  • ingreso = 600000: Ganancia obtenida en caso de encontrar petróleo.

  • costo_perf = 100000: Costo de realizar la perforación. Este valor se pierde si no se encuentra petróleo.

  • precio_venta = 90000: Valor de venta del terreno, considerado como una opción segura sin riesgo.

  • costo_sismico = 30000: Costo asociado a la realización del estudio sísmico.

  • p_pos_si = 0.80: Probabilidad de que el estudio sísmico resulte positivo dado que sí existe petróleo (verdadero positivo).

  • p_pos_no = 0.25: Probabilidad de que el estudio sísmico resulte positivo dado que no existe petróleo (falso positivo).

Se definen los valores del problema:

  • Probabilidad inicial de encontrar petróleo: 45%
  • Perforar implica riesgo pero alta ganancia
  • El estudio sísmico tiene costo, pero mejora la información

2. Actualización Bayesiana

Se actualizan las probabilidades:

  • Si el estudio sale positivo, la probabilidad de petróleo aumenta
  • Si sale negativo, la probabilidad disminuye

Esto aplica el Teorema de Bayes, reduciendo incertidumbre.

p_no    <- 1 - p_petrol
p_s_pos <- p_pos_si*p_petrol + p_pos_no*p_no
p_s_neg <- 1 - p_s_pos

post_si_pos <- (p_pos_si * p_petrol) / p_s_pos
post_no_pos <- 1 - post_si_pos
post_si_neg <- ((1-p_pos_si) * p_petrol) / p_s_neg
post_no_neg <- 1 - post_si_neg

Act. de probabilidades (Teorema de Bayes)

Se realizan los siguientes cálculos para actualizar la información luego del estudio sísmico:

  • p_no <- 1 - p_petrol
    Se calcula la probabilidad de que no haya petróleo, como complemento de la probabilidad inicial.

  • p_s_pos <- p_pos_si*p_petrol + p_pos_no*p_no
    Se obtiene la probabilidad total de que el estudio salga positivo, considerando tanto el caso en que sí hay petróleo como cuando no lo hay (ley de probabilidad total).

  • p_s_neg <- 1 - p_s_pos
    Se calcula la probabilidad de que el estudio salga negativo, como complemento del caso positivo.

  • post_si_pos <- (p_pos_si * p_petrol) / p_s_pos
    Se calcula la probabilidad de que sí haya petróleo dado que el estudio salió positivo, aplicando el Teorema de Bayes.

  • post_no_pos <- 1 - post_si_pos
    Se obtiene la probabilidad de que no haya petróleo dado un resultado positivo, como complemento.

  • post_si_neg <- ((1-p_pos_si) * p_petrol) / p_s_neg
    Se calcula la probabilidad de que sí haya petróleo dado que el estudio salió negativo, usando nuevamente Bayes.

  • post_no_neg <- 1 - post_si_neg
    Se obtiene la probabilidad de que no haya petróleo dado un resultado negativo, como complemento.


3. Cálculo del VME

  • Perforar directo: decisión sin información adicional

  • Con estudio:

    • Si el resultado es positivo → se perfora
    • Si es negativo → se vende

Esto muestra una estrategia óptima condicionada

vme_perf <- function(p_si)
  p_si*(ingreso-costo_perf) + (1-p_si)*(-costo_perf)

vme_directo   <- vme_perf(p_petrol)
vme_perf_pos  <- vme_perf(post_si_pos)
vme_perf_neg  <- vme_perf(post_si_neg)

dec_pos <- max(vme_perf_pos, precio_venta)
dec_neg <- max(vme_perf_neg, precio_venta)

vme_estudio <- p_s_pos*dec_pos + p_s_neg*dec_neg - costo_sismico

Se calcula el VME para cada alternativa y se determinan las decisiones óptimas:

  • vme_perf <- function(p_si)
    Se define una función que calcula el VME de perforar, en función de la probabilidad de encontrar petróleo (p_si).

  • p_si*(ingreso-costo_perf) + (1-p_si)*(-costo_perf)
    Fórmula del VME:

    • Si hay petróleo → ganancia neta (ingreso - costo)
    • Si no hay → pérdida del costo de perforación
  • vme_directo <- vme_perf(p_petrol)
    Se calcula el VME de perforar directamente, usando la probabilidad inicial.

  • vme_perf_pos <- vme_perf(post_si_pos)
    Se calcula el VME de perforar dado que el estudio salió positivo.

  • vme_perf_neg <- vme_perf(post_si_neg)
    Se calcula el VME de perforar dado que el estudio salió negativo.

  • dec_pos <- max(vme_perf_pos, precio_venta)
    Se elige la mejor decisión cuando el resultado es positivo:
    perforar o vender, según cuál tenga mayor valor.

  • dec_neg <- max(vme_perf_neg, precio_venta)
    Se elige la mejor decisión cuando el resultado es negativo.

  • vme_estudio <- p_s_pos*dec_pos + p_s_neg*dec_neg - costo_sismico
    Se calcula el VME total de realizar el estudio sísmico:

    • Se ponderan las decisiones óptimas según las probabilidades
    • Se resta el costo del estudio

4. Resultados

cat("===== ÁRBOL PETROLERO =====\n")
## ===== ÁRBOL PETROLERO =====
cat(sprintf("VME(Perforar directo): $%s\n",  format(round(vme_directo),  big.mark=",")))
## VME(Perforar directo): $170,000
cat(sprintf("VME(Vender):           $%s\n",  format(precio_venta,           big.mark=",")))
## VME(Vender):           $90,000
cat(sprintf("VME(Con estudio):      $%s\n",  format(round(vme_estudio),  big.mark=",")))
## VME(Con estudio):      $181,475

Interpretación

Se comparan las alternativas:

  • Vender → opción segura
  • Perforar → mayor riesgo
  • Estudio → combina información + decisión óptima

Se identifica cuál genera mayor ganancia esperada.


5. Decisiones condicionadas

cat(sprintf("  Sísmico+: P(petróleo)=%.3f → %s\n",
    post_si_pos, ifelse(dec_pos==vme_perf_pos,"Perforar","Vender")))
##   Sísmico+: P(petróleo)=0.724 → Perforar
cat(sprintf("  Sísmico−: P(petróleo)=%.3f → %s\n",
    post_si_neg, ifelse(dec_neg==vme_perf_neg,"Perforar","Vender")))
##   Sísmico−: P(petróleo)=0.179 → Vender

Interpretación

  • Si el estudio es positivo → conviene perforar
  • Si es negativo → conviene vender

Se adapta la decisión según la información.


6. Decisión óptima final

opts  <- c(vme_directo, precio_venta, vme_estudio)
noms  <- c("Perforar directo","Vender","Contratar estudio")

noms[which.max(opts)]
## [1] "Contratar estudio"

Interpretación

La mejor alternativa es:

Contratar estudio sísmico

Porque:

  • Maximiza el VME
  • Reduce el riesgo de pérdida

7. Árbol con data.tree

arbol <- Node$new("Decisión\nPrincipal")

Interpretación

Se construye el árbol de decisión:

  • Nodo raíz → decisión principal
  • Ramas → alternativas
  • Subramas → escenarios

Permite visualizar todo el proceso de decisión.


8. Análisis de sensibilidad

ps <- seq(0.05, 0.95, 0.01)

Interpretación

Se analiza cómo cambia la decisión según la probabilidad de petróleo:

  • Probabilidad baja → vender
  • Probabilidad media → estudio
  • Probabilidad alta → perforar

Los cruces en el gráfico indican cambios de estrategia.


🔹 9. Conclusión

Interpretación final

  • El estudio sísmico tiene valor económico positivo
  • Permite tomar decisiones más inteligentes
  • Reduce incertidumbre

Mejor decisión: realizar el estudio antes de actuar




``` r
library(DiagrammeR)

grViz("
digraph arbol {

graph [layout = dot, rankdir = LR, nodesep=0.6, ranksep=0.8]

node [fontname = Helvetica]

# ===== NODO DECISIÓN INICIAL =====
D0 [label = 'D', shape = box, style = filled, fillcolor = '#4A90E2', fontcolor = white]

# ===== NODOS DE AZAR =====
C1 [label = 'C', shape = circle, style = filled, fillcolor = '#F5A623']
C2 [label = 'C', shape = circle, style = filled, fillcolor = '#F5A623']

# ===== DECISIONES INTERNAS =====
Dpos [label = 'D', shape = box, style = filled, fillcolor = '#4A90E2', fontcolor = white]
Dneg [label = 'D', shape = box, style = filled, fillcolor = '#4A90E2', fontcolor = white]

# ===== NODOS TERMINALES =====
node [shape = box, style = rounded]

# Perforar directo
T1 [label = '$500k']
T2 [label = '-$100k']

# Estudio (decisiones)
T3 [label = 'Perforar\n$290,960']
T4 [label = 'Vender\n$90k ∥']

T5 [label = 'Perforar\n$20k ∥']
T6 [label = 'Vender\n$90k']

# Vender directo
T7 [label = '$90k ∥']

# ===== VME =====
V1 [label = 'VME = $170k', shape = box, color = red]
V2 [label = 'VME = $170,781 ★', shape = box, style = filled, fillcolor = '#D5F5E3']
V3 [label = 'VME = $90k', shape = box, color = red]

# ===== CONEXIONES =====

# Decisión inicial
D0 -> C1 [label = 'Perforar ∥']
D0 -> C2 [label = 'Estudio ★']
D0 -> T7 [label = 'Vender ∥']

# ===== PERFORAR =====
C1 -> T1 [label = '0.45']
C1 -> T2 [label = '0.55']
T1 -> V1
T2 -> V1

# ===== ESTUDIO =====
C2 -> Dpos [label = 'S+ (0.5525)']
C2 -> Dneg [label = 'S- (0.4475)']

# ===== DECISIÓN SI S+ =====
Dpos -> T3
Dpos -> T4

# ===== DECISIÓN SI S- =====
Dneg -> T5
Dneg -> T6

# ===== BACKWARD =====
T3 -> V2
T6 -> V2

}
")

Conclusión

La estrategia óptima para la empresa es contratar el estudio sísmico.

Si el estudio predice petróleo, perforar el terreno. Si el estudio predice ausencia de petróleo, vender el terreno.

Esta estrategia maximiza el valor esperado del proyecto y justifica pagar hasta $41,502 por la información que proporciona el estudio.