#### UNIVERSIDAD CENTRAL DEL ECUADOR ######
#### AUTOR: JHONNY JOSÉ CATUCUAMBA CALCINA ####
#### CARRERA: INGENIERÍA AMBIENTAL ####
### VARIABLE: TOTAL_VEG ####
### MODELO DE DISPERSIÓN LOG-NORMAL #####
setwd("/cloud/project")
Datos <- read.csv("Conaf_Data_Chile_2017.csv")
total_veg <- Datos$total_veg
# Eliminar NA y valores negativos si los hubiera
total_veg <- na.omit(total_veg)
total_veg_mayores_cero <- subset(total_veg, total_veg > 0)
# Crear objeto boxplot
bp <- boxplot(total_veg_mayores_cero, plot = FALSE)
# Obtener los outliers identificados por el boxplot
outliers <- bp$out
# Separar valores atípicos
total_veg_outliers <- total_veg_mayores_cero[total_veg_mayores_cero %in% outliers]
# Separar valores comunes
total_veg_comunes <- total_veg_mayores_cero[!total_veg_mayores_cero %in% outliers]
hist_vegc <- hist(total_veg_comunes,breaks = 12,freq = FALSE,
main = "Gráfica Nº 4.1.1 : Modelo de probabilidad exponencial",
xlab = "Vegetación Total(ha)",
ylab = "Densidad de Probabilidad")

min(total_veg_comunes)
## [1] 1e-04
total_veg_comunes <- total_veg_comunes[total_veg_comunes > 1e-04 & total_veg_comunes < 3]
summary(total_veg_comunes)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0003 0.0500 0.2000 0.5006 0.7000 2.9500
length(total_veg_comunes)
## [1] 3582
hist_veg <- hist(total_veg_comunes,breaks = 12,freq = FALSE,
main = "Gráfica Nº 4.1.2 : Modelo de probabilidad exponencial",
xlab = "Vegetación Total(ha)",
ylab = "Densidad de Probabilidad")

# Modelo Exponencial
hist_veg <- hist(total_veg_comunes,breaks = 12,freq = FALSE,
main = "Gráfica Nº 4.1.3 : Modelo de probabilidad expoencial
con curva de regresión",
xlab = "Vegetación Total(ha)",
ylab = "Densidad de Probabilidad")
# Modelo Exponencial
# Calculo de Parámetros
lambda <- 1 / mean(total_veg_comunes)
# Superposición del modelo exponencial
# Agregar la curva de la distribución exponencial
x <- seq(min(total_veg_comunes), max(total_veg_comunes), length.out = 100)
lines(x, dexp(x, rate = lambda), col = "red", lwd = 2)

# Cálculo de frecuencias observadas y esperadas
FO <- hist_veg$counts/length(total_veg_comunes)
FE <- c()
for (i in 1:(length(hist_veg$breaks) - 1)) {
P <- (pexp(hist_veg$breaks[i + 1], rate = lambda)) -
(pexp(hist_veg$breaks[i], rate = lambda))
FE[i] <- P
}
# Test de Pearson (debe pasar el 75% o 0.75 )
cor(FO, FE)
## [1] 0.8955562
## APROBADO ##
# Test de Chi-Cuadrado (aprueba con FALSE )
X2 <- sum((FO - FE)^2 / FE)
X2
## [1] 0.3282877
VC <-qchisq(0.99,length(hist_veg$breaks) -1)
VC
## [1] 30.57791
X2 > VC
## [1] FALSE
plot(FO, FE, main="Gráfica N° 4.1.4: Correlación de frecuencias entre
el modelo exponencial y la realidad",
xlab="Observado (hi)", ylab="Esperado (P)")
abline(lm(FE ~ FO), col="red", lwd=2)

## APROBO CHI-CUADRADO ##
# Restricciones
# Dominio de la distribución exponencial:
# x E [0, inf+)
# Cálculo de probabilidad
P1 <- (pexp(1, rate = lambda) - pexp(0.5, rate = lambda) ) * 100
P1
## [1] 23.26534
plot(1, type = "n", axes = FALSE, xlab = "", ylab = "") # Crear un gráfico vacío
text(x = 1, y = 1,
labels = "Cálculos de probabilidad\n(Estimación general)\n
¿Cuál es la probabilidad de que\nel valor de vegetación total afectada ((ha) \n esté entre 0.5 y 1 (ha) ?\n\n
R: 23.26 (%)",
cex = 1.5, # Tamaño del texto (ajustable)
col = "blue", # Color del texto
font =6) #tipo

x <- seq(0, max(total_veg_comunes), length.out = 1000) # Generar valores para la curva
plot(x, dexp(x, rate = lambda), type = "l", col = "red", lwd = 2,
main = "Gráfica N°4.1.5: Distribución de Vegetación
Total Afectada (ha) con Modelo Exponencial
en el Análisis de incendios forestales",
xlab = "Superficie de Vegetación Total Afectada (ha)", ylab = "Densidad de Probabilidad",
xlim = c(0, max(x)),
ylim = c(0, 1.1 * max(dexp(x, rate = lambda))),
xaxt = "n") # Desactiva las etiquetas automáticas del eje X
x_area <- seq(0.5,1 , length.out = 100)
polygon(c(0.5, x_area, 1), c(0, dexp(x_area, rate = lambda), 0),
col = rgb(0, 0, 1, alpha = 0.3), border = NA)
axis(1, at = c(0.5, 1 ), labels = c("0.5", "1" ))
legend("topright",
legend = c("Modelo Exponencial", "Área bajo la curva entre 0.5 y 1"),
col = c("red", rgb(0, 0, 1, alpha = 0.3)),
lwd = c(2, NA),
pch = c(NA, 15),
pt.cex = 2,
bty = "n")

# Estimación por intervalos de confianza
# Cálculos
limite_inf <- mean(total_veg_comunes) - 2 * (sd(total_veg_comunes) / sqrt(length(total_veg_comunes)))
limite_inf
## [1] 0.4791542
limite_sup <- mean(total_veg_comunes) + 2 * (sd(total_veg_comunes) / sqrt(length(total_veg_comunes)))
limite_sup
## [1] 0.5219723
# La media aritmética poblacional (u) se encuentra,
# con un 95 % de confianza, entre
# 0.48 (ha) y 0.52(ha)
#- Concluiones -#
tabla_modelos <- data.frame("Vegetación Total (ha)" = c("[0.0003 , 4.80]", "2.9500"),
"Modelo" = c("exponencial", ""),
"Parámetros" = c("Lambda = 1.99", ""),
"Test_de_Pearson" = c("0.90", ""),
"Test_de_Chi_cuadrado" = c("aprobado", ""))
colnames(tabla_modelos) <- c("Vegetación Total (ha)", "Modelo",
"Parámetros", "Test Pearson",
"Test Chi-cuadrado")
tabla_intervalos <- data.frame(
"Intervalo_Confianza" = c("Límite Inferior", "Límite Superior"),
"Grado_Confianza" = c("95 %", ""),
"Vegetación Total (ha)" = c("0.48", "0.52"))
colnames(tabla_intervalos) <- c("Intervalo de Confianza",
"Grado Confianza (%)", "Vegetación Total (ha)")
plot(1, type = "n", axes = FALSE, xlab = "", ylab = "") # Crear un gráfico vacío
text(x = 1, y = 1,
labels = "CONCLUSIONES",
cex = 2, # Tamaño del texto (ajustable)
col = "blue", # Color del texto
font = 6) #tipo

library(knitr)
kable(tabla_modelos, align = 'c',
caption = "Conclusiones del Modelo Exponencial para Vegetación Total (ha)")
Conclusiones del Modelo Exponencial para Vegetación Total
(ha)
[0.0003 , 4.80] |
exponencial |
Lambda = 1.99 |
0.90 |
aprobado |
2.9500 |
|
|
|
|
kable(tabla_intervalos, align = 'c',
caption = "Intervalos de Confianza de la Media Poblacional")
Intervalos de Confianza de la Media Poblacional
Límite Inferior |
95 % |
0.48 |
Límite Superior |
|
0.52 |