BRIGHT_T31

UNIVERSIDAD CENTRAL DEL ECUADOR

PROYECTO: FOCOS DE CALOR EN EL ECUADOR

AUTORES: GUERRERO MARIA GABRIELA,PUCHAICELA MONICA, ZURITA JOHANNA

FECHA: 14/05/2025

datos <- read.csv("maate_focosdecalor_bdd_2021diciembre.csv",
                  header = T, sep = ",", dec = ".")

#Estructura de los datos 
str(datos)
## 'data.frame':    22476 obs. of  17 variables:
##  $ MES_REPORT: int  11 11 8 6 5 6 11 9 3 3 ...
##  $ DIA_REPORT: int  20 20 6 10 28 10 20 29 22 22 ...
##  $ 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" ...
##  $ TXT_1     : chr  "PARROQUIA RURAL" "PARROQUIA RURAL" "PARROQUIA RURAL" "PARROQUIA RURAL" ...
##  $ LATITUDE  : chr  "-4,981720000000000" "-4,969160000000000" "-4,958520000000000" "-4,957820000000000" ...
##  $ LONGITUDE : chr  "-79,041280000000000" "-79,049490000000006" "-79,118430000000004" "-79,111859999999993" ...
##  $ BRIGHTNESS: chr  "354,759999999999990" "342,009999999999990" "331,860000000000010" "331,399999999999980" ...
##  $ SCAN      : chr  "0,510000000000000" "0,510000000000000" "0,150000000000000" "0,540000000000000" ...
##  $ TRACK     : chr  "0,490000000000000" "0,490000000000000" "0,380000000000000" "0,420000000000000" ...
##  $ SATELLITE : chr  "1" "1" "1" "1" ...
##  $ CONFIDENCE: chr  "n" "n" "n" "n" ...
##  $ VERSION   : chr  "2.0NRT" "2.0NRT" "2.0NRT" "2.0NRT" ...
##  $ BRIGHT_T31: chr  "299,420000000000020" "298,149999999999980" "299,160000000000030" "296,800000000000010" ...
##  $ FRP       : chr  "12,100000000000000" "6,870000000000000" "3,770000000000000" "5,500000000000000" ...
##  $ DAYNIGHT  : chr  "D" "D" "D" "D" ...
#Extraccion variable Cuantitativa Continua
datos$BRIGHT_T31 <- as.numeric(gsub(",", ".", datos$BRIGHT_T31))
str(datos$BRIGHT_T31)
##  num [1:22476] 299 298 299 297 298 ...
BRIGHT_T31 <- na.omit (datos$BRIGHT_T31)

#Tabla de distribución de frecuencia

#Manualmente
min <-min(BRIGHT_T31)
max <-max(BRIGHT_T31)
R <-max-min
K <- floor(1+3.33*log10(length(BRIGHT_T31)))
A <-R/K

Li <-round(seq(from=min,to=max-A,by=A),2)
Ls <-round(seq(from=min+A,to=max,by=A),2)
Mc <-(Li+Ls)/2
ni<-c()
for (i in 1:K) {
  if (i < K) {
    ni[i] <- length(subset(BRIGHT_T31, BRIGHT_T31 >= Li[i] & BRIGHT_T31 < Ls[i]))
  } else {
    ni[i] <- length(subset(BRIGHT_T31, BRIGHT_T31 >= Li[i] & BRIGHT_T31 <= Ls[i]))
  }
}

sum(ni)
## [1] 22476
hi <-ni/sum(ni)*100
Ni_asc<-cumsum(ni)
Hi_asc<-cumsum(hi)
Ni_desc<-rev(cumsum(rev(ni)))
Hi_desc<-rev(cumsum(rev(hi)))

TDFBRIGHT_T31 <- data.frame(
  Li, Ls, Mc, ni, round(hi, 2), Ni_asc, Ni_desc, round(Hi_asc, 2), round(Hi_desc, 2)
)

colnames(TDFBRIGHT_T31) <- c("Li","Ls","Mc","ni","hi","Ni_asc(%)","Ni_desc(%)","Hi_asc","Hi_desc")

#Crear fila de totales

totales<-c(
  Li="-",
  Ls="-",
  Mc="-",
  ni=sum(ni),
  hi=sum(hi),
  Ni_asc="-",
  Ni_desc="-",
  Hi_asc="-",
  Hi_desc="-")

TDFBRIGHT_T31<-rbind(TDFBRIGHT_T31,totales)

#Simplificación con el histograma

Hist_BRIGHT_T31<-hist(BRIGHT_T31,breaks = 8,plot = F)
k<-length(Hist_BRIGHT_T31$breaks)
Li<-Hist_BRIGHT_T31$breaks[1:(length(Hist_BRIGHT_T31$breaks)-1)]
Ls<-Hist_BRIGHT_T31$breaks[2:length(Hist_BRIGHT_T31$breaks)]
ni<-Hist_BRIGHT_T31$counts
sum(ni)
## [1] 22476
Mc<-Hist_BRIGHT_T31$mids
hi<-(ni/sum(ni))
sum(hi)
## [1] 1
Ni_asc<-cumsum(ni)
Hi_asc<-cumsum(hi)
Ni_desc<-rev(cumsum(rev(ni)))
Hi_desc<-rev(cumsum(rev(hi)))
TDFBRIGHT_T31<-data.frame(Li=round(Li,2),
                          Ls=round(Ls,2),
                          Mc=round(Mc,2),
                          ni=ni,
                          hi=round(hi*100,2),
                          Ni_asc=Ni_asc,
                          Ni_desc=Ni_desc,
                          Hi_asc=round(Hi_asc*100,2),
                          Hi_desc=round(Hi_desc*100,2))
colnames(TDFBRIGHT_T31)<-c("Lim inf","Lim sup","MC","ni","hi(%)","Ni asc","Ni desc","Hi asc(%)","Hi desc(%)")

#Crear fila de totales
totales<-c(Li="TOTAL",
           Ls="-",
           Mc="-",
           ni = sum(as.numeric(TDFBRIGHT_T31$ni)),
           hi = sum(as.numeric(TDFBRIGHT_T31$hi) * 100),
           Ni_asc="-",
           Ni_desc="-",
           Hi_asc="-",
           Hi_desc="-")

TDFBRIGHT_T31<-rbind(TDFBRIGHT_T31,totales)


library(knitr)
library(kableExtra)
library(knitr)
library(kableExtra)

kable(TDFBRIGHT_T31, align = 'c', caption = "Tabla de Frecuencias de la Temp de Brillo VIIRS I-4") %>%
  kable_styling(full_width = FALSE, position = "center", bootstrap_options = c("striped", "hover", "condensed"))
Tabla de Frecuencias de la Temp de Brillo VIIRS I-4
Lim inf Lim sup MC ni hi(%) Ni asc Ni desc Hi asc(%) Hi desc(%)
220 240 230 8 0.04 8 22476 0.04 100
240 260 250 126 0.56 134 22468 0.6 99.96
260 280 270 2442 10.86 2576 22342 11.46 99.4
280 300 290 16677 74.2 19253 19900 85.66 88.54
300 320 310 3145 13.99 22398 3223 99.65 14.34
320 340 330 56 0.25 22454 78 99.9 0.35
340 360 350 13 0.06 22467 22 99.96 0.1
360 380 370 9 0.04 22476 9 100 0.04
TOTAL
22476 10000
#Gráficas

#Histograma
hist(BRIGHT_T31,breaks = 10,
     main = "Gráfica N°16.1: Distribución para la 
     Temp de Brillo VIIRS I-4",
     xlab = "Brillo VIIRS I-4(%)",
     ylab = "Cantidad",
     ylim = c(0,max(ni)),
     col = "blue",
     cex.main=0.9,
     cex.lab=1,
     cex.axis=0.9,
     xaxt="n")
axis(1,at=Hist_BRIGHT_T31$breaks,labels = Hist_BRIGHT_T31$breaks,las=1,
     cex.axis=0.9)

#Gráfica Global
hist(BRIGHT_T31, breaks = 10,
     main = "Gráfica N°16.2: Distribución para la 
     Temp de Brillo VIIRS I-4",
     xlab = "Brillo VIIRS I-4 (%)",
     ylab = "Cantidad",
     ylim = c(0, length(BRIGHT_T31)),
     col = "green",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")
axis(1, at = Hist_BRIGHT_T31$breaks,
     labels = Hist_BRIGHT_T31$breaks, las = 1,
     cex.axis = 0.9)

# Filtrar solo las filas numéricas (excluyendo la fila "TOTAL")
datos_grafico <- TDFBRIGHT_T31[!TDFBRIGHT_T31$MC %in% c("-", "TOTAL"), ]

# Convertir 'hi' a numérico
hi_numerico <- as.numeric(datos_grafico$hi)

barplot(hi_numerico,
        space = 0,
        col = "skyblue",
        main = "Gráfica N°16.3: Distribución porcentual de frecuencias 
        relativas para la Temp de Brillo VIIRS I-4",
        xlab = "Brillo VIIRS I-4",
        ylab = "Porcentaje (%)",
        names.arg = datos_grafico$MC,
        ylim = c(0, 100))

# Local
hist(BRIGHT_T31, breaks = 10,
     main = "Gráfica N°16.4: Distribución para Temp de Brillo VIIRS I-4 ",
     xlab = "Brillo VIIRS I-4 (%)",
     ylab = "Cantidad",
     ylim = c(0,max(ni)),
     col = "yellow",
     cex.main = 0.9,
     cex.lab = 1,
     cex.axis = 0.9,
     xaxt = "n")
axis(1, at = Hist_BRIGHT_T31$breaks,
     labels = Hist_BRIGHT_T31$breaks, las = 1,
     cex.axis = 0.9)

# Filtrar filas válidas (excluir "TOTAL")
datos_validos <- TDFBRIGHT_T31[!TDFBRIGHT_T31$MC %in% c("-", "TOTAL"), ]

# Convertir 'hi' a numérico
hi_valores <- as.numeric(datos_validos$hi)


barplot(hi_valores,
        space = 0,
        col = "brown",
        main = "Gráfica N°16.5: Distribución para la Temp de Brillo VIIRS I-4",
        xlab = "Brillo VIIRS I-4 (%)",
        ylab = "Porcentaje (%)",
        ylim = c(0, 60),
        names.arg = datos_validos$MC)

# Diagrama de Ojiva Ascendente y Descendente

plot(Li ,Ni_desc,
     main = "Gráfica N°16.6: Distribución de frecuencias Ascendente y descendente 
      para la Temp de Brillo VIIRS I-4",
     xlab = " Brillo VIIRS I-4 (%)",
     ylab = "Cantidad",
     xlim = c(0,900),
     col = "red",
     cex.axis=0.8,
     type = "o",
     lwd = 3,
     las=1,
     xaxt="n")
lines(Ls,Ni_asc,
      col = "green",
      type = "o",
      lwd = 3)
axis(1, at = seq(0, 900, by = 50))

# Diagrama de Ojiva Ascendente y Descendente Porcentual

plot(Li, Hi_desc * 100,
     main = "Gráfica N°16.7: Distribución de frecuencia Ascendente y Descendente porcentual
      para la Temp de Brillo VIIRS I-4  ",
     xlab = " Brillo VIIRS I-4(%)",
     ylab = "Porcentaje (%)",
     xlim = c(0,900),
     col = "red",
     type = "o",
     lwd = 2,
     xaxt="n")
lines(Ls, Hi_asc * 100,
      col = "blue",
      type = "o",
      lwd = 3)
axis(1, at = seq(0,900,by=50))

# Diagrama de Caja

boxplot(BRIGHT_T31,
        horizontal = TRUE,
        main = "Gráfica N°16.8:Distribución de frecuencia para la Temp de Brillo VIIRS I-4 ",
        xlab = " Tasa de contaminante(%)",
        col = "pink",
        outline = TRUE,
        pch = 1)

# INDICADORES ESTADISTICOS

# Indicadores de Tendencia Central

# Media aritmética
media <- round(mean(BRIGHT_T31), 2)
media
## [1] 292.07
# Moda
max_ni <- max(TDFBRIGHT_T31$ni)
moda <- TDFBRIGHT_T31$MC[TDFBRIGHT_T31$ni == max_ni]
moda
## [1] "370"
# Mediana
mediana <- median(BRIGHT_T31)
mediana
## [1] 294.45
# INDICADORES DE DISPERSIÓN #

# Varianza
varianza <- var(BRIGHT_T31)
varianza
## [1] 100.9172
# Desviación Estándar
sd <- sd(BRIGHT_T31)
sd
## [1] 10.04575
# Coeficiente de Variación
cv <- round((sd / media) * 100, 2)
cv
## [1] 3.44
# INDICADORES DE FORMA #

# Asimetría
library(e1071)
asimetria <- skewness(BRIGHT_T31, type = 2)
asimetria
## [1] -0.9165041
#Curtosis
curtosis <- kurtosis(BRIGHT_T31)
curtosis
## [1] 4.094959
tabla_indicadores <- data.frame("Variable" =c("Brillo VIIRS I-4 (%)"),
                                "Rango" = c("[1.1;9.99]"),
                                "X" = c(media),
                                "Me" = c(round(mediana,2)),
                                "Mo" = c("No hay moda"),
                                "V" = c(round(varianza,2)),
                                "Sd" = c(round(sd,2)),
                                "Cv" = c(cv),
                                "As" = c(round(asimetria,4)),
                                "K" = c(round(curtosis,2)),
                                "Valores Atipicos" = "No hay presencia de valores atipicos")

tabla_indicadores <- data.frame(
  Indicador = c("Mínimo", "Máximo", "Media", "Desviación estándar"),
  Valor = c(
    min(as.numeric(TDFBRIGHT_T31$MC), na.rm = TRUE),
    max(as.numeric(TDFBRIGHT_T31$MC), na.rm = TRUE),
    mean(as.numeric(TDFBRIGHT_T31$MC), na.rm = TRUE),
    sd(as.numeric(TDFBRIGHT_T31$MC), na.rm = TRUE)
  )
)
## Warning in data.frame(Indicador = c("Mínimo", "Máximo", "Media", "Desviación
## estándar"), : NAs introduced by coercion
## Warning in data.frame(Indicador = c("Mínimo", "Máximo", "Media", "Desviación
## estándar"), : NAs introduced by coercion
## Warning in mean(as.numeric(TDFBRIGHT_T31$MC), na.rm = TRUE): NAs introduced by
## coercion
## Warning in is.data.frame(x): NAs introduced by coercion
tabla_indicadores <- data.frame("Variable" =c("Brillo VIIRS I-4(%)"),
                                "Rango" = c("[1.1;9.99]"),
                                "X" = c(media),
                                "Me" = c(round(mediana,2)),
                                "Mo" = c("No hay moda"),
                                "V" = c(round(varianza,2)),
                                "Sd" = c(round(sd,2)),
                                "Cv" = c(cv),
                                "As" = c(round(asimetria,4)),
                                "K" = c(round(curtosis,2)),
                                "Valores Atipicos" = "No hay presencia de valores atipicos")
library(knitr)
kable(tabla_indicadores, align = 'c', caption = "Conclusiones de la variable de Temp de Brillo VIIRS I-4 ")
Conclusiones de la variable de Temp de Brillo VIIRS I-4
Variable Rango X Me Mo V Sd Cv As K Valores.Atipicos
Brillo VIIRS I-4(%) [1.1;9.99] 292.07 294.45 No hay moda 100.92 10.05 3.44 -0.9165 4.09 No hay presencia de valores atipicos