#### UNIVERSIDAD CENTRAL DEL ECUADOR ######
#### AUTOR: JHONNY JOSÉ CATUCUAMBA CALCAN ####
#### 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")

# Separar valores comunes
total_veg_comunes <- total_veg_comunes[total_veg_comunes > 3 & total_veg_comunes <= 5]
summary(total_veg_comunes)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3.070 3.555 4.000 3.971 4.310 4.800
length(total_veg_comunes)
## [1] 199
hist_veg <- hist(total_veg_comunes,breaks = 5,freq = FALSE,
main = "Gráfica Nº 4.2.1 : Modelo de probabilidad log-normal",
xlab = "Vegetación Total(ha)",
ylab = "Densidad de Probabilidad")

#Modelo Log-normal
hist_veg <- hist(total_veg_comunes,breaks = 5,freq = FALSE,
main = "Gráfica Nº 4.2.2 : Modelo de probabilidad y curva log-normal",
xlab = "Vegetación Total(ha)",
ylab = "Densidad de Probabilidad")
log_total <- log(total_veg_comunes)
ulog <- mean(log_total)
sigmalog <- sd(log_total)
x <- seq(min(total_veg_comunes), max(total_veg_comunes), 0.0001)
curve(dlnorm(x, ulog, sigmalog), type = "l", col = "red", lwd = 2, add = TRUE)

FO_l <- hist_veg$counts
FE_l <- c()
for (i in 1:(length(hist_veg$breaks) - 1)) {
P <- (plnorm(hist_veg$breaks[i + 1], ulog, sigmalog)) -
(plnorm(hist_veg$breaks[i], ulog, sigmalog))
FE_l[i] <- P * length(total_veg_comunes)
}
# Test de Pearson (debe pasar el 75% o 0.75 )
cor(FO_l, FE_l)
## [1] 0.8330371
## APROBADO ##
# Test de Chi-Cuadrado (aprueba con FALSE)
X2 <- sum((FO_l - FE_l)^2 / FE_l)
X2
## [1] 17.80124
VC <- qchisq(0.9999, 3)
VC
## [1] 21.10751
X2 > VC
## [1] FALSE
# Cálculo de probabilidad
plot(1, type = "n", axes = FALSE, xlab = "", ylab = "") # Crear un gráfico vacío
text(x = 1, y = 1,
labels = "CÁLCULO DE PROBABILIDAD",
cex = 2, # Tamaño del texto (ajustable)
col = "blue", # Color del texto
font = 6) #tipo

P1 <- (plnorm(4.5, ulog, sigmalog) - plnorm(4, ulog, sigmalog)) * 100
P1
## [1] 31.85437
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 total de vegetación afectada (ha) \nesté entre 4 y 4.5? R: 31.85 (%)",
cex = 1.5, # Tamaño del texto (ajustable)
col = "blue", # Color del texto
font = 6) #tipo

x <- seq(min(total_veg_comunes), max(total_veg_comunes), 0.01)
x_area <- seq(4, 4.5, length.out = 100)
plot(x, dlnorm(x, meanlog = ulog, sdlog = sigmalog), type = "l", col = "red", lwd = 2,
main = "Gráfica Nº 4.3: Cálculo de Probabilidad de Vegetación Total",
xlab = "Superficie afectada (ha)",
ylab = "Densidad de probabilidad",
xaxt = "n")
polygon(c(4, x_area, 4.5), c(0, dlnorm(x_area, meanlog = ulog, sdlog = sigmalog), 0),
col = rgb(0, 0, 1, alpha = 0.3),
border = NA)
axis(1, at = c(0, 4, 4.5, 0.8), labels = c("0", "4", "4.5", "0.8"))
legend("topright", legend = c("Modelo Log-normal", "Área bajo la curva entre 4 y 4.5"),
col = c("red", rgb(0, 0, 1, alpha = 0.3)), lty = 1, lwd = 2,cex = 0.6,
x.intersp = 0.05,y.intersp = 0.5,inset = 0.001)

# 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] 3.904531
limite_sup <- mean(total_veg_comunes) + 2 * (sd(total_veg_comunes) / sqrt(length(total_veg_comunes)))
limite_sup
## [1] 4.037378
# La media aritmética poblacional (u) se encuentra,
# con un 95 % de confianza, entre
# 3.90 (ha) y 4.03 (ha)
tabla_modelos <- data.frame("Vegetación Total (ha)" = c("[3.07 , 4.80]", ""),
"Modelo" = c("Log-normal", ""),
"Parámetros" = c("Sigma = 0.12", "u = 1.37"),
"Test_de_Pearson" = c("0.83", ""),
"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("3.90", "4.03"))
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)
| [3.07 , 4.80] |
Log-normal |
Sigma = 0.12 |
0.83 |
aprobado |
|
|
u = 1.37 |
|
|
kable(tabla_intervalos, align = 'c',
caption = "Intervalos de Confianza de la Media Poblacional")
Intervalos de Confianza de la Media Poblacional
| Límite Inferior |
95 % |
3.90 |
| Límite Superior |
|
4.03 |