UNIVERSIDAD CENTRAL DEL ECUADOR

PROYECTO: FOCOS DE CALOR EN EL ECUADOR

AUTORES: GUERRERO MARIA GABRIELA, PUCHAICELA MONICA, ZURITA JOHANNA

FECHA: 14/05/2025

# Configuración
knitr::opts_chunk$set(echo = TRUE)
# importar datos
datos <- read.csv("Focos de Calor 2021.csv",
                  header = T, sep = ",", dec = ".")

#Estructura de los datos 
str(datos)
## 'data.frame':    22476 obs. of  12 variables:
##  $ ACQ_DATE  : chr  "20/11/2021" "20/11/2021" "06/08/2021" "10/06/2021" ...
##  $ DPA_DESPRO: chr  "ZAMORA CHINCHIPE" "ZAMORA CHINCHIPE" "ZAMORA CHINCHIPE" "ZAMORA CHINCHIPE" ...
##  $ DPA_DESCAN: chr  "CHINCHIPE" "CHINCHIPE" "CHINCHIPE" "CHINCHIPE" ...
##  $ DPA_DESPAR: chr  "CHITO" "CHITO" "PUCAPAMBA" "PUCAPAMBA" ...
##  $ LATITUDE  : num  -4.98e+15 -4.97e+15 -4.96e+15 -4.96e+15 -4.96e+15 ...
##  $ LONGITUDE : num  -7.90e+16 -7.90e+16 -7.91e+16 -7.91e+16 -7.92e+16 ...
##  $ BRIGHTNESS: num  3.55e+17 3.42e+17 3.32e+17 3.31e+17 3.28e+17 ...
##  $ SCAN      : num  5.1e+14 5.1e+14 1.5e+14 5.4e+14 5.0e+14 ...
##  $ TRACK     : num  4.9e+14 4.9e+14 3.8e+14 4.2e+14 4.9e+14 ...
##  $ INSTRUMENT: chr  "VIIRS" "VIIRS" "VIIRS" "VIIRS" ...
##  $ VERSION   : chr  "2.0NRT" "2.0NRT" "2.0NRT" "2.0NRT" ...
##  $ FRP       : num  1.21e+16 6.87e+15 3.77e+15 5.50e+15 2.90e+15 ...
Fecha <- datos$ACQ_DATE
datos$Fecha <- as.Date(datos$ACQ_DATE, format = "%d/%m/%Y")

# Extraer el mes en formato numérico
meses <- as.numeric(format(datos$Fecha, "%m"))

# Crear tabla de frecuencias de meses
TDFMes <- as.data.frame(table(meses))
colnames(TDFMes) <- c("Mes", "ni_mes")
TDFMes$hi_mes <- (TDFMes$ni_mes / sum(TDFMes$ni_mes)) * 100
print(TDFMes)
##    Mes ni_mes     hi_mes
## 1    1    771  3.4303257
## 2    2    418  1.8597615
## 3    3    149  0.6629293
## 4    4    273  1.2146289
## 5    5    298  1.3258587
## 6    6    497  2.2112476
## 7    7   1120  4.9830931
## 8    8   1335  5.9396690
## 9    9   2176  9.6814380
## 10  10   3105 13.8147357
## 11  11   8266 36.7770066
## 12  12   4068 18.0993059
# Graficar barplot con meses en el eje X
barplot(TDFMes$ni_mes, 
        main="Gráfica N°11.1: Frecuencia de los Meses de los focos de calor en Ecuador", 
        xlab="Mes", ylab="Cantidad", 
        names.arg = TDFMes$Mes, 
        las=2, 
        col = "lightcoral")

# Agrupar meses 1-6
TDFMes1_6 <- subset(TDFMes, as.numeric(as.character(Mes)) >= 1 & as.numeric(as.character(Mes)) <= 6)
hi1 <- TDFMes1_6$ni_mes / sum(TDFMes1_6$ni_mes)
print(hi1)
## [1] 0.32044888 0.17373234 0.06192851 0.11346633 0.12385702 0.20656692
barplot(hi1 * 100, 
        main = "Gráfica N°11.2: Distribución de Probabilidad de Meses 1-6", 
        xlab = "Mes",
        ylab = "Probabilidad (%)",
        names.arg = TDFMes1_6$Mes, 
        col = "lightcoral")

meses_numericos1 <- as.numeric(as.character(TDFMes1_6$Mes))
lambda1 <- sum(meses_numericos1 * TDFMes1_6$ni_mes) / sum(TDFMes1_6$ni_mes)
print(lambda1)
## [1] 3.166251
P1 <- dpois(meses_numericos1, lambda1)
print(P1)
## [1] 0.1334935 0.2113369 0.2230486 0.1765569 0.1118047 0.0590003
barplot(hi1 * 100, 
        main = "Gráfica N°11.2: Distribución de Probabilidad de Meses 1-6", 
        xlab = "Mes",
        ylab = "Probabilidad (%)",
        names.arg = TDFMes1_6$Mes, 
        col = "lightcoral")

meses_numericos1 <- as.numeric(as.character(TDFMes1_6$Mes))
lambda1 <- sum(meses_numericos1 * TDFMes1_6$ni_mes) / sum(TDFMes1_6$ni_mes)
print(lambda1)
## [1] 3.166251
P1 <- dpois(meses_numericos1, lambda1)
print(P1)
## [1] 0.1334935 0.2113369 0.2230486 0.1765569 0.1118047 0.0590003
barplot(rbind(hi1 * 100, P1 * 100),  
        main = "Gráfica N°11.3: Modelo de probabilidad Poisson para Meses 1-6", 
        xlab = "Mes",
        ylab = "Probabilidad (%)",
        names.arg = TDFMes1_6$Mes, 
        beside = TRUE, 
        col = c("lightcoral", "brown"))
legend("topright", legend = c("Real", "Modelo"),
       fill = c("lightcoral", "brown"))

Fo1 <- hi1
Fe1 <- P1
Correlación1 <- cor(Fo1, Fe1) * 100
plot(Fo1, Fe1, main="Gráfica N°11.4: Correlación de frecuencias en modelo Poisson \n Meses 1-6",
     xlab="Observado (hi)", ylab="Esperado (P)")
abline(lm(Fe1 ~ Fo1), col="red", lwd=2)

x2 <- sum(((Fo1 - Fe1)^2) / Fe1)
vc <- qchisq(0.95, length(Fo1) - 1)
x2 > vc
## [1] FALSE
Variable <- c("Mes 1-6")
tabla_resumen <- data.frame(
  Variable,
  round(Correlación1, 0), 
  round(x2, 2),            
  round(vc, 2)             
)
colnames(tabla_resumen) <- c("Variable", "Test Pearson (%)", "Chi Cuadrado", "Umbral de aceptación")

library(knitr)
kable(tabla_resumen, format = "markdown", caption = "Tabla Nº11.1: Resumen de test de bondad al modelo de probabilidad")
Tabla Nº11.1: Resumen de test de bondad al modelo de probabilidad
Variable Test Pearson (%) Chi Cuadrado Umbral de aceptación
Mes 1-6 -46 0.78 11.07
n1 <- sum(TDFMes1_6$ni_mes)
print(n1)
## [1] 2406
# Ejemplo de probabilidad para mes 3 en porcentaje
probabilidad_3 <- dpois(3, lambda1) * 100
cat("La probabilidad de que un foco de calor ocurra en el mes 3 es aproximadamente:",
    round(probabilidad_3, 2), "%\n")
## La probabilidad de que un foco de calor ocurra en el mes 3 es aproximadamente: 22.3 %
# Agrupar meses 7-12
TDFMes7_12 <- subset(TDFMes, as.numeric(as.character(Mes)) >= 7 & as.numeric(as.character(Mes)) <= 12)
hi2 <- TDFMes7_12$ni_mes / sum(TDFMes7_12$ni_mes)
print(hi2)
## [1] 0.05580468 0.06651719 0.10842053 0.15470852 0.41185850 0.20269058
barplot(hi2 * 100, 
        main = "Gráfica N°11.5: Distribución de Probabilidad de Meses 7-12", 
        xlab = "Mes",
        ylab = "Probabilidad (%)",
        names.arg = TDFMes7_12$Mes, 
        col = "skyblue")

meses_numericos2 <- as.numeric(as.character(TDFMes7_12$Mes))
lambda2 <- sum(meses_numericos2 * TDFMes7_12$ni_mes) / sum(TDFMes7_12$ni_mes)
print(lambda2)
## [1] 10.40837
P2 <- dpois(meses_numericos2, lambda2)
print(P2)
## [1] 0.07924115 0.10309641 0.11922951 0.12409850 0.11742392 0.10184931
barplot(rbind(hi2 * 100, P2 * 100),  
        main = "Gráfica N°11.6: Modelo de probabilidad Poisson para Meses 7-12", 
        xlab = "Mes",
        ylab = "Probabilidad (%)",
        names.arg = TDFMes7_12$Mes, 
        beside = TRUE, 
        col = c("skyblue", "blue"))

legend("topright", legend = c("Real", "Modelo"),
       fill = c("skyblue", "blue"))

Fo2 <- hi2
Fe2 <- P2
Correlación2 <- cor(Fo2, Fe2) * 100
plot(Fo2, Fe2, main="Gráfica N°11.7: Correlación de frecuencias en modelo Poisson \n Meses 7-12",
     xlab="Observado (hi)", ylab="Esperado (P)")
abline(lm(Fe2 ~ Fo2), col="red", lwd=2)

x2_2 <- sum(((Fo2 - Fe2)^2) / Fe2)
vc2 <- qchisq(0.95, length(Fo2) - 1)
x2_2 > vc2
## [1] FALSE
Variable <- c("Mes 7-12")
tabla_resumen <- data.frame(
  Variable,
  round(Correlación2, 0), 
  round(x2_2, 2),            
  round(vc2, 2)             
)
colnames(tabla_resumen) <- c("Variable", "Test Pearson (%)", "Chi Cuadrado", "Umbral de aceptación")

kable(tabla_resumen, format = "markdown", caption = "Tabla Nº11.2: Resumen de test de bondad al modelo de probabilidad")
Tabla Nº11.2: Resumen de test de bondad al modelo de probabilidad
Variable Test Pearson (%) Chi Cuadrado Umbral de aceptación
Mes 7-12 45 0.87 11.07
n2 <- sum(TDFMes7_12$ni_mes)
print(n2)
## [1] 20070
# Ejemplo de probabilidad para mes 9 en porcentaje
probabilidad_9 <- dpois(9, lambda2) * 100
cat("La probabilidad de que un foco de calor ocurra en el mes 9 es aproximadamente:",
    round(probabilidad_9, 2), "%\n")
## La probabilidad de que un foco de calor ocurra en el mes 9 es aproximadamente: 11.92 %