#UNIVERSIDAD CENTRAL DEL ECUADOR
#GRUPO 6
#VARIABLE DISCRETA-INFERENCIAL
#CARGA DE DATOS
setwd("~/")
datos <- read.csv("DATOS.csv", header = TRUE, sep = ";" , dec = ".")
str(datos)
## 'data.frame': 10190 obs. of 17 variables:
## $ Distrito_edit : chr "1" "1" "1" "1" ...
## $ Year_edit_Fecha_del_derrame : int 2013 2013 2013 2013 2013 2013 2013 2013 2013 2013 ...
## $ Mes_edit_Fecha_del_derrame : int 6 3 4 4 6 6 3 9 10 6 ...
## $ Categoria_Instalaciones : chr "Instalacion fija" "Pozos" "Pozos" "Pozos" ...
## $ Operacion_general : chr "Produccion" "Otro" "Produccion" "Produccion" ...
## $ Categoria_Fuente : chr NA "Tanques/Almacenamiento" "Lineas/Tuberias" "Infraestructura Fija" ...
## $ Grupo_causas_probable : chr NA "Afectaciones externas" "Factores humanos" "Problemas tecnicos" ...
## $ Liberacion_petroleo_crudo_edicion : num 0 0 0 0 0 ...
## $ Edicion_recuperacion_petroleo_crudo : num NA 0 0 0 0 0 0 0 0 NA ...
## $ Volumen_liberado_Cond_Final : num 0 0 0 10 0 0 0 1 0 0 ...
## $ Liberacion_agua_de_produccion_edicion: num 6720 3780 5040 420 10920 ...
## $ Liberacion_volumen_gas : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Volumen_condensado_recuperado : num NA 0 0 1 0 0 0 0 0 NA ...
## $ Edicion_Recuperacion_agua_producida : num NA 420 4620 0 10920 ...
## $ Derrame_sobre_agua_limpio : chr "NO" "NO" "NO" "NO" ...
## $ Estado_general : chr "Observaciones tecnicas" NA NA NA ...
## $ Codigo_area : int 1 1 1 1 1 1 1 1 1 3 ...
#VARIABLE DISCRETA 2:MES EN EL QUE OCURRIO CADA DERRAME---------------------------
# Extraer la variable Mes_edit_Fecha_del_derrame
Mes_edit_Fecha_del_derrame <- datos$Mes_edit_Fecha_del_derrame
# Tabla de frecuencias
tabla_Mes_edit_Fecha_del_derrame <- table(Mes_edit_Fecha_del_derrame)
tabla_Mes_edit_Fecha_del_derrame_df <- as.data.frame(tabla_Mes_edit_Fecha_del_derrame)
colnames(tabla_Mes_edit_Fecha_del_derrame_df) <- c("Mes_edit_Fecha_del_derrame", "ni")
# Calcular la frecuencia relativa (hi)
hi <- tabla_Mes_edit_Fecha_del_derrame_df$ni / sum(tabla_Mes_edit_Fecha_del_derrame_df$ni)
hi_porc <- round(hi * 100, 2)
Ni_asc <- cumsum(tabla_Mes_edit_Fecha_del_derrame_df$ni)
# Calcular la frecuencia acumulada descendente (Ni_dsc)
Ni_dsc <- rev(cumsum(rev(tabla_Mes_edit_Fecha_del_derrame_df$ni)))
Hi_asc <- cumsum(hi_porc)
# Calcular la frecuencia acumulada relativa descendente (Hi_dsc)
Hi_dsc <- rev(cumsum(rev(hi_porc)))
# Mostrar la tabla final con las nuevas columnas
tabla_Mes_edit_Fecha_del_derrame_df$hi <- hi
tabla_Mes_edit_Fecha_del_derrame_df$hi_porc <- hi_porc
tabla_Mes_edit_Fecha_del_derrame_df$Ni_asc <- Ni_asc
tabla_Mes_edit_Fecha_del_derrame_df$Ni_dsc <- Ni_dsc
tabla_Mes_edit_Fecha_del_derrame_df$Hi_asc <- Hi_asc
tabla_Mes_edit_Fecha_del_derrame_df$Hi_dsc <- Hi_dsc
# Mostrar la tabla final
print(tabla_Mes_edit_Fecha_del_derrame_df)
## Mes_edit_Fecha_del_derrame ni hi hi_porc Ni_asc Ni_dsc Hi_asc
## 1 1 956 0.09381747 9.38 956 10190 9.38
## 2 2 834 0.08184495 8.18 1790 9234 17.56
## 3 3 811 0.07958783 7.96 2601 8400 25.52
## 4 4 772 0.07576055 7.58 3373 7589 33.10
## 5 5 966 0.09479882 9.48 4339 6817 42.58
## 6 6 931 0.09136408 9.14 5270 5851 51.72
## 7 7 886 0.08694799 8.69 6156 4920 60.41
## 8 8 936 0.09185476 9.19 7092 4034 69.60
## 9 9 754 0.07399411 7.40 7846 3098 77.00
## 10 10 760 0.07458292 7.46 8606 2344 84.46
## 11 11 825 0.08096173 8.10 9431 1584 92.56
## 12 12 759 0.07448479 7.45 10190 759 100.01
## Hi_dsc
## 1 100.01
## 2 90.63
## 3 82.45
## 4 74.49
## 5 66.91
## 6 57.43
## 7 48.29
## 8 39.60
## 9 30.41
## 10 23.01
## 11 15.55
## 12 7.45
# Crear la tabla final con las variables modificadas
TDFMesEdit <- data.frame(
Mes_edit_Fecha_del_derrame = tabla_Mes_edit_Fecha_del_derrame_df$Mes_edit_Fecha_del_derrame,
ni = tabla_Mes_edit_Fecha_del_derrame_df$ni,
hi_porc = hi_porc,
Niasc = Ni_asc,
Nidsc = Ni_dsc,
Hiasc = Hi_asc,
Hidsc = Hi_dsc
)
# Mostrar la tabla final
print(TDFMesEdit)
## Mes_edit_Fecha_del_derrame ni hi_porc Niasc Nidsc Hiasc Hidsc
## 1 1 956 9.38 956 10190 9.38 100.01
## 2 2 834 8.18 1790 9234 17.56 90.63
## 3 3 811 7.96 2601 8400 25.52 82.45
## 4 4 772 7.58 3373 7589 33.10 74.49
## 5 5 966 9.48 4339 6817 42.58 66.91
## 6 6 931 9.14 5270 5851 51.72 57.43
## 7 7 886 8.69 6156 4920 60.41 48.29
## 8 8 936 9.19 7092 4034 69.60 39.60
## 9 9 754 7.40 7846 3098 77.00 30.41
## 10 10 760 7.46 8606 2344 84.46 23.01
## 11 11 825 8.10 9431 1584 92.56 15.55
## 12 12 759 7.45 10190 759 100.01 7.45
# Gráfico de barras de los meses de derrames
barplot(TDFMesEdit$ni,
main = "Gráfica No.1: Distribución de cada derrame por Mes",
xlab = "Mes", ylab = "Frecuencia Absoluta",
col = "magenta",
ylim = c(0, max(TDFMesEdit$ni) + 5),
names.arg = TDFMesEdit$Mes_edit_Fecha_del_derrame,
las = 2)

#De enero a Marzo
Mes1 <- as.numeric(datos$Mes_edit_Fecha_del_derrame)
Mes1 <- Mes1[!is.na(Mes1) & Mes1 >= 1 & Mes1 <= 3]
tabla_Mes1 <- table(Mes1)
df_Mes1 <- as.data.frame(tabla_Mes1)
colnames(df_Mes1) <- c("Mes", "ni")
# Calcular la frecuencia relativa (hi)
hi <- df_Mes1$ni / sum(df_Mes1$ni)
hi_porc <- round(hi * 100, 2)
# Calcular la frecuencia acumulada ascendente (Ni_asc)
Ni_asc <- cumsum(df_Mes1$ni)
Ni_dsc <- rev(cumsum(rev(df_Mes1$ni)))
# Calcular la frecuencia acumulada relativa ascendente (Hi_asc)
Hi_asc <- cumsum(hi_porc)
Hi_dsc <- rev(cumsum(rev(hi_porc)))
# Crear la tabla final con las variables modificadas
tabla_Mes_final <- data.frame(
Mes = df_Mes1$Mes,
ni = df_Mes1$ni,
hi_porc = hi_porc,
Niasc = Ni_asc,
Nidsc = Ni_dsc,
Hiasc = Hi_asc,
Hidsc = Hi_dsc
)
# Mostrar la tabla final
print(tabla_Mes_final)
## Mes ni hi_porc Niasc Nidsc Hiasc Hidsc
## 1 1 956 36.76 956 2601 36.76 100.00
## 2 2 834 32.06 1790 1645 68.82 63.24
## 3 3 811 31.18 2601 811 100.00 31.18
# Gráfico de barras solo para los meses de Enero hasta Marzo
barplot(tabla_Mes_final$ni,
names.arg = tabla_Mes_final$Mes,
main = "Gráfico No.2: Distribución de derrames entre los meses de Enero a Marzo",
cex.main = 0.8,
xlab = "Mes",
ylab = "Frecuencia",
col = "aquamarine",
las = 2,
cex.names = 0.8,
ylim = c(0, max(tabla_Mes_final$ni) + 5))

conteo_geom <- as.numeric(as.character(tabla_Mes_final$Mes))
# Frecuencia observada (ni) de la tabla
frecuencia_obs <- tabla_Mes_final$ni
# Estimar parámetro p (modelo geométrico)
media_x <- mean(rep(conteo_geom, frecuencia_obs))
p_hat <- 1 / media_x # Estimación de p
cat("Parámetro estimado p =", round(p_hat, 4), "\n")
## Parámetro estimado p = 0.5143
probs_geom <- dgeom(conteo_geom - 1, prob = p_hat)
frecuencia_esp <- round(sum(frecuencia_obs) * probs_geom)
# Crear la tabla final con los valores observados y esperados
tabla_geom <- data.frame(
Mes = tabla_Mes_final$Mes,
ni_obs = frecuencia_obs,
ni_esp = frecuencia_esp,
P_x = round(probs_geom, 4)
)
# Mostrar la tabla de frecuencias observadas y esperadas
print(tabla_geom)
## Mes ni_obs ni_esp P_x
## 1 1 956 1338 0.5143
## 2 2 834 650 0.2498
## 3 3 811 316 0.1213
# Gráfico comparativo observados vs esperados
barplot(rbind(frecuencia_obs, frecuencia_esp),
beside = TRUE,
names.arg = tabla_Mes_final$Mes,
col = c("aquamarine2", "aquamarine4"),
legend.text = c("Real", "Modelo"),
main = "Gráfico No.3: Comparación Observado vs Esperado entre Enero y Marzo",
cex.main=0.8,
xlab = "Mes",
ylab = "Frecuencia",
las = 2,
cex.names = 0.8)

# Test de bondad de ajuste (Chi-cuadrado)
Fo1 <- frecuencia_obs
Fe1 <- frecuencia_esp
if (any(Fe1 == 0)) {
cat("Advertencia: Hay frecuencias esperadas iguales a 0. El test de chi-cuadrado puede no ser válido.\n")
}
#Pearson
# Calcular el estadístico Chi-cuadrado (Pearson)
x2 <- sum((Fo1 - Fe1)^2 / Fe1)
cat("Estadístico Chi-cuadrado (Pearson):", round(x2, 4), "\n")
## Estadístico Chi-cuadrado (Pearson): 936.543
# Correlación entre observadas y esperadas
correlacion <- cor(Fo1, Fe1)
cat("Correlación entre observadas y esperadas:", round(correlacion, 4), "\n")
## Correlación entre observadas y esperadas: 0.9842
# Gráfico de correlación
plot(Fo1, Fe1,
main = "Gráfico No.4: Correlación Observadas vs Esperadas entre Enero y Marzo",
cex.main=0.8,
xlab = "Frecuencias Observadas",
ylab = "Frecuencias Esperadas",
pch = 19, col = "aquamarine")
abline(lm(Fe1 ~ Fo1), col = "aquamarine4", lwd = 2)
# Mostrar r en el gráfico
text(x = max(Fo1)*0.7,
y = max(Fe1)*0.9,
labels = paste("r =", round(correlacion, 4)),
col = "darkred", cex = 1.2)

# Valor crítico para contraste
k <- length(Fo1)
vc <- qchisq(0.95, df = k - 1)
cat("Valor crítico Chi-cuadrado (95%):", round(vc, 4), "\n")
## Valor crítico Chi-cuadrado (95%): 5.9915
cat("¿x² < valor crítico?", x2 < vc, "\n")
## ¿x² < valor crítico? FALSE
# Evaluación del modelo
if (x2 < vc) {
cat("No se rechaza la hipótesis nula (buen ajuste del modelo geométrico).\n")
} else {
cat("Se rechaza la hipótesis nula (el modelo no se ajusta bien a los datos).\n")
}
## Se rechaza la hipótesis nula (el modelo no se ajusta bien a los datos).
#De Abril a Junio
Mes2 <- as.numeric(datos$Mes_edit_Fecha_del_derrame)
Mes2 <- Mes2[!is.na(Mes2) & Mes2 >= 4 & Mes2 <= 6]
# Crear la tabla de frecuencias para Mes2 entre Abril y Junio
tabla_Mes2 <- table(Mes2)
df_Mes2 <- as.data.frame(tabla_Mes2)
colnames(df_Mes2) <- c("Mes_edit_Fecha_del_derrame", "ni")
# Calcular la frecuencia relativa (hi)
hi <- df_Mes2$ni / sum(df_Mes2$ni)
hi_porc <- round(hi * 100, 2)
# Calcular la frecuencia acumulada ascendente (Ni_asc)
Ni_asc <- cumsum(df_Mes2$ni)
# Calcular la frecuencia acumulada descendente (Ni_dsc)
Ni_dsc <- rev(cumsum(rev(df_Mes2$ni)))
# Calcular la frecuencia acumulada relativa ascendente (Hi_asc)
Hi_asc <- cumsum(hi_porc)
# Calcular la frecuencia acumulada relativa descendente (Hi_dsc)
Hi_dsc <- rev(cumsum(rev(hi_porc)))
# Crear la tabla final con las variables modificadas
tabla_Mes2_final <- data.frame(
Mes_edit_Fecha_del_derrame = df_Mes2$Mes_edit_Fecha_del_derrame,
ni = df_Mes2$ni,
hi_porc = hi_porc,
Niasc = Ni_asc,
Nidsc = Ni_dsc,
Hiasc = Hi_asc,
Hidsc = Hi_dsc
)
# Mostrar la tabla final
print(tabla_Mes2_final)
## Mes_edit_Fecha_del_derrame ni hi_porc Niasc Nidsc Hiasc Hidsc
## 1 4 772 28.92 772 2669 28.92 99.99
## 2 5 966 36.19 1738 1897 65.11 71.07
## 3 6 931 34.88 2669 931 99.99 34.88
# Gráfico de barras solo para los meses Abril a Junio
barplot(tabla_Mes2_final$ni,
names.arg = tabla_Mes2_final$Mes_edit_Fecha_del_derrame,
main = "Gráfico No.2: Distribución de derrames entre Abril a Junio ",
cex.main = 0.8,
xlab = "Mes",
ylab = "Frecuencia",
col = "cyan",
las = 2,
cex.names = 0.8,
ylim = c(0, max(tabla_Mes2_final$ni) + 5))

conteo_geom <- as.numeric(as.character(tabla_Mes2_final$Mes_edit_Fecha_del_derrame)) - 3
# Frecuencia observada (ni) de la tabla
frecuencia_obs <- tabla_Mes2_final$ni
# Estimar parámetro p (modelo geométrico)
media_x <- mean(rep(conteo_geom, frecuencia_obs))
p_hat <- 1 / media_x
cat("Parámetro estimado p =", round(p_hat, 4), "\n")
## Parámetro estimado p = 0.4855
probs_geom <- dgeom(conteo_geom - 1, prob = p_hat) # Probabilidades teóricas
frecuencia_esp <- round(sum(frecuencia_obs) * probs_geom)
# Crear la tabla final con los valores observados y esperados
tabla_geom <- data.frame(
Mes = tabla_Mes2_final$Mes_edit_Fecha_del_derrame,
ni_obs = frecuencia_obs,
ni_esp = frecuencia_esp,
P_x = round(probs_geom, 4)
)
# Mostrar la tabla de frecuencias observadas y esperadas
print(tabla_geom)
## Mes ni_obs ni_esp P_x
## 1 4 772 1296 0.4855
## 2 5 966 667 0.2498
## 3 6 931 343 0.1285
# Gráfico comparativo observados vs esperados
barplot(rbind(frecuencia_obs, frecuencia_esp),
beside = TRUE, # Para que las barras estén separadas
names.arg = tabla_Mes2_final$Mes_edit_Fecha_del_derrame,
col = c("cyan2", "cyan3"),
legend.text = c("Real", "Modelo"),
main = "Gráfico No.3: Comparación Observado vs Esperado entre Abril y Junio",
cex.main = 0.8,
xlab = "Mes",
ylab = "Frecuencia",
las = 2,
cex.names = 0.8)

# Test de bondad de ajuste (Chi-cuadrado)
Fo1 <- frecuencia_obs
Fe1 <- frecuencia_esp
if (any(Fe1 == 0)) {
cat("Advertencia: Hay frecuencias esperadas iguales a 0. El test de chi-cuadrado puede no ser válido.\n")
}
# Calcular el estadístico Chi-cuadrado (Pearson)
x2 <- sum((Fo1 - Fe1)^2 / Fe1)
cat("Estadístico Chi-cuadrado (Pearson):", round(x2, 4), "\n")
## Estadístico Chi-cuadrado (Pearson): 1353.899
# Correlación entre observadas y esperadas
correlacion <- cor(Fo1, Fe1)
cat("Correlación entre observadas y esperadas:", round(correlacion, 4), "\n")
## Correlación entre observadas y esperadas: -0.8723
# Gráfico de correlación
plot(Fo1, Fe1,
main = "Gráfico No.4: Correlación Observadas vs Esperadas entre Abril y Junio",
cex.main=0.8,
xlab = "Frecuencias Observadas",
ylab = "Frecuencias Esperadas",
pch = 19, col = "cyan")
abline(lm(Fe1 ~ Fo1), col = "cyan4", lwd = 2)

# Valor crítico para contraste
k <- length(Fo1)
vc <- qchisq(0.95, df = k - 1)
cat("Valor crítico Chi-cuadrado (95%):", round(vc, 4), "\n")
## Valor crítico Chi-cuadrado (95%): 5.9915
cat("¿x² < valor crítico?", x2 < vc, "\n")
## ¿x² < valor crítico? FALSE
# Evaluación del modelo
if (x2 < vc) {
cat("No se rechaza la hipótesis nula (buen ajuste del modelo geométrico).\n")
} else {
cat("Se rechaza la hipótesis nula (el modelo no se ajusta bien a los datos).\n")
}
## Se rechaza la hipótesis nula (el modelo no se ajusta bien a los datos).
#De Julio a Septiembre
Mes3 <- as.numeric(datos$Mes_edit_Fecha_del_derrame)
Mes3 <- Mes3[!is.na(Mes3) & Mes3 >= 7 & Mes3 <= 9]
# Crear la tabla de frecuencias para Mes3 entre Julio a Septiembre
tabla_Mes3 <- table(Mes3)
df_Mes3 <- as.data.frame(tabla_Mes3)
colnames(df_Mes3) <- c("Mes_edit_Fecha_del_derrame", "ni")
# Calcular la frecuencia relativa (hi)
hi <- df_Mes3$ni / sum(df_Mes3$ni)
hi_porc <- round(hi * 100, 2)
# Calcular la frecuencia acumulada ascendente (Ni_asc)
Ni_asc <- cumsum(df_Mes3$ni)
# Calcular la frecuencia acumulada descendente (Ni_dsc)
Ni_dsc <- rev(cumsum(rev(df_Mes3$ni)))
# Calcular la frecuencia acumulada relativa ascendente (Hi_asc)
Hi_asc <- cumsum(hi_porc)
# Calcular la frecuencia acumulada relativa descendente (Hi_dsc)
Hi_dsc <- rev(cumsum(rev(hi_porc)))
# Crear la tabla final con las variables modificadas
tabla_Mes3_final <- data.frame(
Mes_edit_Fecha_del_derrame = df_Mes3$Mes_edit_Fecha_del_derrame,
ni = df_Mes3$ni,
hi_porc = hi_porc,
Niasc = Ni_asc,
Nidsc = Ni_dsc,
Hiasc = Hi_asc,
Hidsc = Hi_dsc
)
# Mostrar la tabla final
print(tabla_Mes3_final)
## Mes_edit_Fecha_del_derrame ni hi_porc Niasc Nidsc Hiasc Hidsc
## 1 7 886 34.39 886 2576 34.39 100.00
## 2 8 936 36.34 1822 1690 70.73 65.61
## 3 9 754 29.27 2576 754 100.00 29.27
# Gráfico de barras solo para los meses de Julio a Septiembre
barplot(tabla_Mes3_final$ni,
names.arg = tabla_Mes3_final$Mes_edit_Fecha_del_derrame,
main = "Gráfico No.2: Distribución por derrames entre los meses de Julio a Septiembre ",
cex.main = 0.8,
xlab = "Mes", ylab = "Frecuencia",
col = "aquamarine",
las = 2,
cex.names = 0.8,
ylim = c(0, max(tabla_Mes3_final$ni) + 5))

conteo_geom <- as.numeric(as.character(tabla_Mes3_final$Mes_edit_Fecha_del_derrame)) - 6
# Frecuencia observada (ni) de la tabla
frecuencia_obs <- tabla_Mes3_final$ni
# Estimar parámetro p (modelo geométrico)
media_x <- mean(rep(conteo_geom, frecuencia_obs))
p_hat <- 1 / media_x # Estimación de p
cat("Parámetro estimado p =", round(p_hat, 4), "\n")
## Parámetro estimado p = 0.5131
probs_geom <- dgeom(conteo_geom - 1, prob = p_hat) # Probabilidades teóricas
frecuencia_esp <- round(sum(frecuencia_obs) * probs_geom)
# Crear la tabla final con los valores observados y esperados
tabla_geom <- data.frame(
Mes = tabla_Mes3_final$Mes_edit_Fecha_del_derrame, # Usamos la variable de los meses de derrame
ni_obs = frecuencia_obs,
ni_esp = frecuencia_esp,
P_x = round(probs_geom, 4)
)
# Mostrar la tabla de frecuencias observadas y esperadas
print(tabla_geom)
## Mes ni_obs ni_esp P_x
## 1 7 886 1322 0.5131
## 2 8 936 644 0.2498
## 3 9 754 313 0.1216
# Gráfico comparativo observados vs esperados
barplot(rbind(frecuencia_obs, frecuencia_esp),
beside = TRUE,
names.arg = tabla_Mes3_final$Mes_edit_Fecha_del_derrame,
col = c("aquamarine2", "aquamarine4"),
legend.text = c("Real", "Modelo"),
main = "Gráfico No.3: Comparación Observado vs Esperado entre el mes de Julio y Septiembre",
cex.main=0.8,
xlab = "Mes",
ylab = "Frecuencia",
las = 2, #
cex.names = 0.8)

# Test de bondad de ajuste (Chi-cuadrado)
Fo1 <- frecuencia_obs
Fe1 <- frecuencia_esp
if (any(Fe1 == 0)) {
cat("Advertencia: Hay frecuencias esperadas iguales a 0. El test de chi-cuadrado puede no ser válido.\n")
}
# Calcular el estadístico Chi-cuadrado (Pearson)
x2 <- sum((Fo1 - Fe1)^2 / Fe1)
cat("Estadístico Chi-cuadrado (Pearson):", round(x2, 4), "\n")
## Estadístico Chi-cuadrado (Pearson): 897.5368
# Correlación entre observadas y esperadas
correlacion <- cor(Fo1, Fe1)
cat("Correlación entre observadas y esperadas:", round(correlacion, 4), "\n")
## Correlación entre observadas y esperadas: 0.5498
# Gráfico de correlación
plot(Fo1, Fe1,
main = "Gráfico No.4: Correlación Observadas vs Esperadas",
xlab = "Frecuencias Observadas",
ylab = "Frecuencias Esperadas",
pch = 19, col = "aquamarine3")
abline(lm(Fe1 ~ Fo1), col = "red", lwd = 2)

# Valor crítico para contraste
k <- length(Fo1)
vc <- qchisq(0.95, df = k - 1)
cat("Valor crítico Chi-cuadrado (95%):", round(vc, 4), "\n")
## Valor crítico Chi-cuadrado (95%): 5.9915
cat("¿x² < valor crítico?", x2 < vc, "\n")
## ¿x² < valor crítico? FALSE
# Evaluación del modelo
if (x2 < vc) {
cat("No se rechaza la hipótesis nula (buen ajuste del modelo geométrico).\n")
} else {
cat("Se rechaza la hipótesis nula (el modelo no se ajusta bien a los datos).\n")
}
## Se rechaza la hipótesis nula (el modelo no se ajusta bien a los datos).
#De Octubre a Diciembre
Mes4 <- as.numeric(datos$Mes_edit_Fecha_del_derrame)
Mes4 <- Mes4[!is.na(Mes4) & Mes4 >= 10 & Mes4 <= 12]
# Crear la tabla de frecuencias para Mes4 entre Octubre a Diciembre
tabla_Mes4 <- table(Mes4)
df_Mes4 <- as.data.frame(tabla_Mes4)
colnames(df_Mes4) <- c("Mes_edit_Fecha_del_derrame", "ni")
# Calcular la frecuencia relativa (hi)
hi <- df_Mes4$ni / sum(df_Mes4$ni)
# Convertir la frecuencia relativa a porcentaje (hi_porc)
hi_porc <- round(hi * 100, 2)
# Calcular la frecuencia acumulada ascendente (Ni_asc)
Ni_asc <- cumsum(df_Mes4$ni)
# Calcular la frecuencia acumulada descendente (Ni_dsc)
Ni_dsc <- rev(cumsum(rev(df_Mes4$ni)))
# Calcular la frecuencia acumulada relativa ascendente (Hi_asc)
Hi_asc <- cumsum(hi_porc)
# Calcular la frecuencia acumulada relativa descendente (Hi_dsc)
Hi_dsc <- rev(cumsum(rev(hi_porc)))
# Crear la tabla final con las variables modificadas
tabla_Mes4_final <- data.frame(
Mes_edit_Fecha_del_derrame = df_Mes4$Mes_edit_Fecha_del_derrame,
ni = df_Mes4$ni,
hi_porc = hi_porc,
Niasc = Ni_asc,
Nidsc = Ni_dsc,
Hiasc = Hi_asc,
Hidsc = Hi_dsc
)
# Mostrar la tabla final
print(tabla_Mes4_final)
## Mes_edit_Fecha_del_derrame ni hi_porc Niasc Nidsc Hiasc Hidsc
## 1 10 760 32.42 760 2344 32.42 100.00
## 2 11 825 35.20 1585 1584 67.62 67.58
## 3 12 759 32.38 2344 759 100.00 32.38
# Gráfico de barras solo para los meses de 10 a 12
barplot(tabla_Mes4_final$ni,
names.arg = tabla_Mes4_final$Mes_edit_Fecha_del_derrame,
main = "Gráfico No.2: Distribución de derrames de petroleo entre Octubre y Diciembre",
cex.main=0.8,
xlab = "Mes",
ylab = "Frecuencia",
col = "blue2",
las = 2,
cex.names = 0.8,
ylim = c(0, max(tabla_Mes4_final$ni) + 5))

# Transformar los meses en conteo (10 = 1, ..., 12 = 3)
conteo_geom <- as.numeric(as.character(tabla_Mes4_final$Mes_edit_Fecha_del_derrame)) - 9
# Frecuencia observada (ni) de la tabla
frecuencia_obs <- tabla_Mes4_final$ni
# Estimar parámetro p (modelo geométrico)
media_x <- mean(rep(conteo_geom, frecuencia_obs))
p_hat <- 1 / media_x # Estimación de p
cat("Parámetro estimado p =", round(p_hat, 4), "\n")
## Parámetro estimado p = 0.5001
probs_geom <- dgeom(conteo_geom - 1, prob = p_hat) # Probabilidades teóricas
frecuencia_esp <- round(sum(frecuencia_obs) * probs_geom)
# Crear la tabla final con los valores observados y esperados
tabla_geom <- data.frame(
Mes = tabla_Mes4_final$Mes_edit_Fecha_del_derrame,
ni_obs = frecuencia_obs,
ni_esp = frecuencia_esp,
P_x = round(probs_geom, 4)
)
# Mostrar la tabla de frecuencias observadas y esperadas
print(tabla_geom)
## Mes ni_obs ni_esp P_x
## 1 10 760 1172 0.5001
## 2 11 825 586 0.2500
## 3 12 759 293 0.1250
# Gráfico comparativo observados vs esperados
barplot(rbind(frecuencia_obs, frecuencia_esp),
beside = TRUE,
names.arg = tabla_Mes4_final$Mes_edit_Fecha_del_derrame,
col = c("blue4", "blue"),
legend.text = c("Real", "Modelo"),
main = "Gráfico No.3: Comparación Observado vs Esperado (10-12)",
xlab = "Mes",
ylab = "Frecuencia",
las = 2,
cex.names = 0.8)

# Test de bondad de ajuste (Chi-cuadrado)
Fo1 <- frecuencia_obs
Fe1 <- frecuencia_esp
if (any(Fe1 == 0)) {
cat("Advertencia: Hay frecuencias esperadas iguales a 0. El test de chi-cuadrado puede no ser válido.\n")
}
# Calcular el estadístico Chi-cuadrado (Pearson)
x2 <- sum((Fo1 - Fe1)^2 / Fe1)
cat("Estadístico Chi-cuadrado (Pearson):", round(x2, 4), "\n")
## Estadístico Chi-cuadrado (Pearson): 983.4556
# Correlación entre observadas y esperadas
correlacion <- cor(Fo1, Fe1)
cat("Correlación entre observadas y esperadas:", round(correlacion, 4), "\n")
## Correlación entre observadas y esperadas: -0.176
# Gráfico de correlación
plot(Fo1, Fe1,
main = "Gráfico No.4: Correlación Observadas vs Esperadas",
xlab = "Frecuencias Observadas",
ylab = "Frecuencias Esperadas",
pch = 19, col = "blue")
abline(lm(Fe1 ~ Fo1), col = "red", lwd = 2)

# Valor crítico para contraste
k <- length(Fo1)
vc <- qchisq(0.95, df = k - 1)
cat("Valor crítico Chi-cuadrado (95%):", round(vc, 4), "\n")
## Valor crítico Chi-cuadrado (95%): 5.9915
cat("¿x² < valor crítico?", x2 < vc, "\n")
## ¿x² < valor crítico? FALSE
# Evaluación del modelo
if (x2 < vc) {
cat("No se rechaza la hipótesis nula (buen ajuste del modelo geométrico).\n")
} else {
cat("Se rechaza la hipótesis nula (el modelo no se ajusta bien a los datos).\n")
}
## Se rechaza la hipótesis nula (el modelo no se ajusta bien a los datos).