En este reporte analizamos si la actividad de perforación de pozos se mantuvo constante (Uniforme) durante el periodo histórico de 1935 a 1950.
Se utiliza la prueba de bondad de ajuste Chi-cuadrado para comparar las frecuencias observadas con las esperadas bajo una distribución teórica uniforme.
# --- CARGA INTELIGENTE DEL ARCHIVO ---
# Busca el archivo en la carpeta local o en la carpeta 'datos'
posibles_rutas <- c("Petroleo_Ontaro.csv", "/cloud/project/datos/Petroleo_Ontaro.csv")
ruta_valida <- ""
for (ruta in posibles_rutas) {
if (file.exists(ruta)) {
ruta_valida <- ruta;
break
}
}
if (ruta_valida == "") {
stop("ERROR: No se encuentra el archivo 'Petroleo_Ontaro.csv'. Verifica tu carpeta.")
}
datos <- read.csv(ruta_valida, header = TRUE, sep = ";", dec = ".", fill = TRUE)
# --- PROCESAMIENTO DE FECHAS ---
# Intenta varios formatos de fecha para evitar errores
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")
})
# Extraer año
datos$Year <- as.numeric(format(datos$Fecha_Format, "%Y"))
# Filtrar el periodo solicitado (1935-1950)
datos_periodo <- subset(datos, Year >= 1935 & Year <= 1950)
# Verificar que existan datos
if(nrow(datos_periodo) == 0) stop("No hay datos en el rango 1935-1950")Para un modelo uniforme, la frecuencia esperada (\(Fe\)) es el total de observaciones dividido equitativamente entre el número de años (\(k\)).
# 1. Tabla de Frecuencias Observadas (Fo)
tabla_fo <- as.data.frame(table(datos_periodo$Year))
colnames(tabla_fo) <- c("Año", "Observado")
# Asegurar que el Año sea numérico
tabla_fo$Año <- as.numeric(as.character(tabla_fo$Año))
Fo <- tabla_fo$Observado
k <- length(Fo) # Número de años
n <- sum(Fo) # Total de pozos
# 2. Frecuencias Esperadas (Fe)
# Hipótesis: La misma cantidad de pozos cada año
Fe <- rep(n / k, k)
# 3. Tabla Comparativa
tabla_uniforme <- data.frame(
Año = tabla_fo$Año,
Observado = Fo,
Esperado = round(Fe, 2),
Diferencia = Fo - round(Fe, 2)
)
# Mostrar tabla
print(tabla_uniforme)## Año Observado Esperado Diferencia
## 1 1935 380 350.06 29.94
## 2 1936 322 350.06 -28.06
## 3 1937 281 350.06 -69.06
## 4 1938 284 350.06 -66.06
## 5 1939 360 350.06 9.94
## 6 1940 330 350.06 -20.06
## 7 1941 427 350.06 76.94
## 8 1942 330 350.06 -20.06
## 9 1943 286 350.06 -64.06
## 10 1944 339 350.06 -11.06
## 11 1945 317 350.06 -33.06
## 12 1946 420 350.06 69.94
## 13 1947 375 350.06 24.94
## 14 1948 399 350.06 48.94
## 15 1949 371 350.06 20.94
## 16 1950 380 350.06 29.94
Calculamos el estadístico \(X^2\) para determinar si las diferencias son significativas.
# Cálculo del estadístico Chi-cuadrado
x2 <- sum((Fo - Fe)^2 / Fe)
# Grados de libertad (k - 1)
gl <- k - 1
# Valor Crítico (Nivel de significancia 0.05)
Vc <- qchisq(0.95, gl)
# Decisión lógica
es_uniforme <- x2 < Vc
resultado_texto <- ifelse(es_uniforme, "NO se rechaza H0 (Es Uniforme)", "SE RECHAZA H0 (No es Uniforme)")par(mar = c(5, 5, 4, 2))
# Gráfico de barras comparativo
barplot(
rbind(Fo, Fe),
beside = TRUE,
names.arg = tabla_uniforme$Año,
col = c("salmon", "orange"),
main = paste("Modelo Uniforme (1935–1950)"),
xlab = "Año",
ylab = "Frecuencia de Pozos",
las = 2,
cex.names = 0.8
)
legend("topright",
legend = c("Observado", "Esperado (Uniforme)"),
fill = c("salmon", "orange"),
bty = "n")El análisis del periodo 1935–1950 muestra lo siguiente: