# UNIVERSIDAD CENTRAL DEL ECUADOR
# Facultad de Ingeniería en Geología, Minas, Petroleos y Ambiental
# Ingeniería Ambiental
# Autor: Domenica Yepez
# Variable : Continua matorral

######################-ESTADÍSTICA INFERENCIAL-#################################

# Directorio de trabajo
setwd("C:/Users/HP/OneDrive - Universidad Central del Ecuador/SEMESTRE III/Estadistica/Incendios en Chile/Datos")
# Cargar los datos 
library(readr)
library(knitr)
datos <- read_delim("Conaf_Data_Chile_2017.csv", 
                    delim = ";", escape_double = FALSE, trim_ws = TRUE)
## Rows: 5234 Columns: 30
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr  (5): temporada, ambito, nombre_inc, inicio_c, combus_i
## dbl (23): Column1, codreg, codprov, codcom, numero, utm_este, utm_norte, cau...
## num  (2): long, lat
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Identificar la Variable Aleatoria Continua
# Extraer la variable matorral
matorral <-na.omit(as.numeric(datos$matorral)) 
# Configuración general
options(scipen = 999)

# Gráfico título inicial
plot(1, type = "n", axes = FALSE, xlab = "", ylab = "")
text(x = 1, y = 1, 
     labels = "ESTADÍSTICA INFERENCIAL", cex = 2, col = "blue", font = 6)

# Analizar la variable previo  en inferencial 
#valores de cero de matorral
matorral_cero<-subset(matorral, matorral==0)
length(matorral_cero)
## [1] 1637
#valores mayores de cero de matorral 
matorral.1<- subset(matorral, matorral>0)
length(matorral.1)
## [1] 3597
Caja_matorral.1<- boxplot(matorral.1, horizontal=T,
                          main = "Gráfica N°: Distribución de Superficie de matorral 
                          mayor a cero afectada en Chile",
                          xlab = " Superficie (ha)",
                          col =  "#FFDAC1",
                          pch = 1, plot = F)
#se divide los valores mayores de cero en comunes y no comunes 
matorral.1_comunes<- subset(matorral.1,matorral.1 < min(Caja_matorral.1$out))
matorral.1_outliers<-  subset(matorral.1,matorral.1 >= min(Caja_matorral.1$out) & matorral.1 < 200000)

#Celdas vacios
celdas_vac <- sum(is.na(matorral.1_comunes) | matorral.1_comunes == "")
celdas_vac
## [1] 0
#Depurar NA
matorral.1_comunes <- na.omit(matorral.1_comunes )

# Nuevo tamaño muestral
length(matorral.1_comunes )
## [1] 3061
Histograma <- hist(matorral.1_comunes, freq = FALSE, 
                   main = "Gráfica N°: Modelo de probabilidad con la curva exponencial",
                   ylab = "Densidad de probabilidad",
                   xlab = " Superficie de Matorral (ha)",
                   col = "skyblue")

# ########  Modelo Log-normal aplicado a matorral.1_comunes

# Log-transformación
log_matorral <- log(matorral.1_comunes)
# Calculo de parametros 
ulog <- mean(log_matorral)
sigmalog <- sd(log_matorral)
# Agregar la curva de la distribución log-normal 
x <- seq(min(matorral.1_comunes), max(matorral.1_comunes), 0.1)
Histograma<- hist(matorral.1_comunes, freq = FALSE, 
                  main = "Gráfica N: Modelo Log-normal para matorral (ha)",
                  ylab = "Densidad de probabilidad",
                  xlab = " Superficie de Matorral (ha)",
                  col = "skyblue")

# Superposición de la curva log-normal al histograma
curve(dlnorm(x, ulog, sigmalog), type = "l", col = "red", lwd = 2, add = TRUE)

# Frecuencias observadas y esperadas
FO_l <- Histograma$counts/length(matorral.1_comunes)
FE_l <- c()
for (i in 1:(length(Histograma$breaks) - 1)) {
  P <- (plnorm(Histograma$breaks[i + 1], ulog, sigmalog)) -
    (plnorm(Histograma$breaks[i], ulog, sigmalog))
  FE_l[i] <- P 
}

# Test de Pearson
Pearson <- cor(FO_l, FE_l)
Pearson
## [1] 0.9766417
# Test de Chi-Cuadrado
X2 <- sum((FO_l - FE_l)^2 / FE_l)
X2
## [1] 0.07932918
chi <- qchisq(0.99, length(Histograma$breaks) - 1)
chi
## [1] 26.21697
X2 > chi
## [1] FALSE
plot(FO_l, FE_l, main="Gráfica N°: Correlación de frecuencias entre el modelo exponencial
     y la realidad",
     xlab="Observado (hi)", ylab="Esperado (P)")
abline(lm(FE_l ~ FO_l), col="red", lwd=2)

# Cálculo de probabilidad entre 5 y 10 ha
P1 <- (plnorm(10, ulog, sigmalog) - plnorm(5, ulog, sigmalog)) * 100
P1
## [1] 22.92945
# Gráfico vacío con texto explicativo
plot(1, type = "n", axes = FALSE, xlab = "", ylab = "") 
text(x = 1, y = 1, 
     labels = paste("Cálculos de probabilidad\n(Estimación general)\n",
                    "¿Cuál es la probabilidad de que\nel valor del Matorral esté entre 5 y 10 ha?\n",
                    "R:", round(P1, 2), "%"),
     cex = 1.4,
     col = "blue",
     font = 6)

# Área bajo la curva
x <- seq(min(matorral.1_comunes), max(matorral.1_comunes), 0.01)
x_area <- seq(5, 10, length.out = 100)
plot(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), type = "l", col = "red", lwd = 2, 
     main = "Gráfica: Distribución Log-normal del Matorral en Incendios en Chile", 
     xlab = "Superficie de Matorral (ha)" , 
     ylab = "Densidad de probabilidad")

polygon(c(5, x_area, 10), c(0, dlnorm(x_area, meanlog = ulog, sdlog = sigmalog), 0), 
        col = rgb(0, 0, 1, alpha = 0.3), 
        border = NA)

legend("topright", legend = c("Modelo Log-normal", "Área entre 5 y 10 ha"), 
       col = c("red", rgb(0, 0, 1, alpha = 0.3)), lty = 1, lwd = 2)

# Intervalos de confianza de la media
limite_inf <- mean(matorral.1_comunes) - 2 * (sd(matorral.1_comunes) / sqrt(length(matorral.1_comunes)))
limite_sup <- mean(matorral.1_comunes) + 2 * (sd(matorral.1_comunes) / sqrt(length(matorral.1_comunes)))

# Tabla resumen
library(knitr)
tabla_modelos_1 <- data.frame("Superficie Matorral (ha)"  = c("[1,60]", ""),
                              "Modelo" = c("Log-normal", ""),
                              "Parámetros" = c(paste("Sigma =", round(sigmalog, 2)), 
                                               paste("u =", round(ulog, 2))),
                              "Test Pearson" = c(round(Pearson, 2), ""),
                              "Test Chi-cuadrado" = c(ifelse(X2 > chi,  "Aprobado","Reprobado"), ""),
                              "Dominio del Modelo" = c("x E [0 ; inf+) ", ""))

limites <- data.frame("Intervalo de Confianza" = c("Límite Inferior", "Límite Superior"),
                      "Grado Confianza (%)" = c("95 %", ""), 
                      "Superficie Matorral (ha)" = c(round(limite_inf, 2), round(limite_sup, 2)))

kable(tabla_modelos_1, align = 'c', caption = "Conclusiones del Modelo Log-normal para Superficie de Matorral")
Conclusiones del Modelo Log-normal para Superficie de Matorral
Superficie.Matorral..ha. Modelo Parámetros Test.Pearson Test.Chi.cuadrado Dominio.del.Modelo
[1,60] Log-normal Sigma = 1.17 0.98 Reprobado x E [0 ; inf+)
u = 1.75
kable(limites, align = 'c', caption = "Intervalos de Confianza de la Media Poblacional")
Intervalos de Confianza de la Media Poblacional
Intervalo.de.Confianza Grado.Confianza…. Superficie.Matorral..ha.
Límite Inferior 95 % 10.45
Límite Superior 11.38