En este análisis estadístico evaluamos una variable discreta basada en la fecha de perforación de los pozos (“Spud Date”).
El objetivo es modelar la ocurrencia de perforaciones mediante una Distribución de Bernoulli, definiendo el “éxito” como una perforación realizada a partir del año 2000.
# --- CARGA INTELIGENTE DEL ARCHIVO ---
# Definimos las posibles rutas donde puede estar el archivo
posibles_rutas <- c("Petroleo_Ontaro.csv", "/cloud/project/datos/Petroleo_Ontaro.csv")
# Buscamos cuál es la correcta
ruta_valida <- ""
for (ruta in posibles_rutas) {
if (file.exists(ruta)) {
ruta_valida <- ruta
break
}
}
# Si no lo encuentra en ninguna parte, detiene el proceso con un mensaje claro
if (ruta_valida == "") {
stop("ERROR: No se encuentra el archivo 'Petroleo_Ontaro.csv'. Verifica que esté en la carpeta del proyecto o en la carpeta 'datos'.")
}
# Leemos el archivo usando la ruta encontrada
datos <- read.csv(ruta_valida,
header = TRUE, sep = ";", dec = ".", fill = TRUE)
# --- CONVERSIÓN ROBUSTA DE FECHAS ---
datos$Fecha_Format <- tryCatch({
as.POSIXct(datos$SPUD_DATE, format = "%Y/%m/%d %H:%M:%S", tz = "UTC")
}, error = function(e) {
as.POSIXct(datos$SPUD_DATE, tryFormats = c("%Y-%m-%d", "%d/%m/%Y"), tz = "UTC")
})
# Eliminar registros donde la fecha sea NA (vacía o inválida)
datos <- datos[!is.na(datos$Fecha_Format), ]
# Verificación de seguridad
if(nrow(datos) == 0) {
stop("ERROR CRÍTICO: No quedan datos válidos. Revisa el formato de la columna SPUD_DATE.")
}
# Extraer el Año
datos$Year <- as.numeric(format(datos$Fecha_Format, "%Y"))Para aplicar el modelo de Bernoulli (\(X \sim Ber(p)\)), transformamos la variable temporal en una variable binaria:
# Crear variable binaria (1 si es >= 2000, 0 si no)
datos$Bernoulli_2000 <- ifelse(datos$Year >= 2000, 1, 0)
# --- CÁLCULO SEGURO DE PROBABILIDADES ---
# Usamos mean() para obtener 'p' directamente.
p <- mean(datos$Bernoulli_2000, na.rm = TRUE)
q <- 1 - p
# Vectores para comparar Observado vs Teórico
probs_observadas <- c(q, p)
probs_teoricas <- c(q, p)
names(probs_observadas) <- c("Pre-2000", "Post-2000")
names(probs_teoricas) <- c("Pre-2000", "Post-2000")Parámetro estimado: \(p =\) 0.0356 (Probabilidad de éxito).
Evaluamos el ajuste mediante Chi-cuadrado.
# Estadístico Chi-cuadrado
# Sumamos un valor infinitesimal (1e-10) al denominador para evitar división por cero
x2 <- sum((probs_observadas - probs_teoricas)^2 / (probs_teoricas + 1e-10))
# Valor Crítico (95% confianza, 1 grado de libertad)
Vc <- qchisq(0.95, df = 1)
# Decisión lógica
aceptado <- x2 < Vcpar(mar = c(5, 5, 4, 2))
# Gráfico de barras comparativo
barplot(
rbind(probs_observadas, probs_teoricas),
beside = TRUE,
col = c("skyblue", "orange"),
names.arg = c("Antes de 2000", "Desde 2000"),
ylab = "Probabilidad",
ylim = c(0, 1.15),
main = "Modelo Bernoulli: Distribución de Perforaciones"
)
# Añadir leyenda
legend("top",
legend = c("Probabilidad Observada", "Probabilidad Teórica"),
fill = c("skyblue", "orange"),
bty = "n", horiz = TRUE)
grid(nx = NA, ny = NULL)El análisis de la variable discreta ‘Década de perforación’ (binarizada) arroja los siguientes resultados: