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 = ".")
# LIMPIEZA de valores no numéricos y negativos en SCAN
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# Convertir comas a puntos, eliminar caracteres no válidos
datos$TRACK <- gsub(",", ".", datos$TRACK)
# Validar que sean numéricos reales
datos$TRACK <- ifelse(grepl("^[0-9.]+$", datos$TRACK), as.numeric(datos$TRACK), NA)
# Eliminar o reemplazar valores negativos
datos$TRACK[datos$TRACK <= 0] <- NA # o usar filter(SCAN > 0) más adelante
#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 : num 0.49 0.49 0.38 0.42 0.49 0.42 0.49 0.36 0.43 0.43 ...
## $ 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
TRACK <- na.omit (datos$TRACK)
#Tabla de distribución de frecuencia
#Manualmente
min <-min(TRACK)
max <-max(TRACK)
R <-max-min
K <- floor(1+3.33*log10(length(TRACK)))
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(TRACK, TRACK >= Li[i] & TRACK < Ls[i]))
} else {
ni[i] <- length(subset(TRACK, TRACK >= Li[i] & TRACK <= Ls[i]))
}
}
sum(ni)
## [1] 22462
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)))
TDFTRACK <- data.frame(
Li, Ls, Mc, ni, round(hi, 2), Ni_asc, Ni_desc, round(Hi_asc, 2), round(Hi_desc, 2)
)
colnames(TDFTRACK) <- 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="-")
TDFTRACK<-rbind(TDFTRACK,totales)
#Simplificación con el histograma
Hist_TRACK<-hist(TRACK,breaks = 8,plot = F)
k<-length(Hist_TRACK$breaks)
Li<-Hist_TRACK$breaks[1:(length(Hist_TRACK$breaks)-1)]
Ls<-Hist_TRACK$breaks[2:length(Hist_TRACK$breaks)]
ni<-Hist_TRACK$counts
sum(ni)
## [1] 22462
Mc<-Hist_TRACK$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)))
TDFTRACK<-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(TDFTRACK)<-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(TDFTRACK$ni)),
hi = sum(as.numeric(TDFTRACK$hi) * 100),
Ni_asc="-",
Ni_desc="-",
Hi_asc="-",
Hi_desc="-")
TDFTRACK<-rbind(TDFTRACK,totales)
library(gt)
tabla_TRACK <- TDFTRACK %>%
gt() %>%
tab_header(
title = md("**Tabla N° 15**"),
subtitle = md("*Distribución de frecuencias simples y acumuladas para la variable TRACK (Tamaño de píxel)*")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 3")
) %>%
tab_options(
table.border.top.color = "black",
table.border.bottom.color = "black",
table.border.top.style = "solid",
table.border.bottom.style = "solid",
column_labels.border.top.color = "black",
column_labels.border.bottom.color = "black",
column_labels.border.bottom.width = px(2),
row.striping.include_table_body = TRUE,
heading.border.bottom.color = "black",
heading.border.bottom.width = px(2),
table_body.hlines.color = "gray",
table_body.border.bottom.color = "black"
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_body(
rows = `Lim inf` == "TOTAL"
)
)
tabla_TRACK
| Tabla N° 15 | ||||||||
| Distribución de frecuencias simples y acumuladas para la variable TRACK (Tamaño de píxel) | ||||||||
| Lim inf | Lim sup | MC | ni | hi(%) | Ni asc | Ni desc | Hi asc(%) | Hi desc(%) |
|---|---|---|---|---|---|---|---|---|
| 0.35 | 0.4 | 0.38 | 10158 | 45.22 | 10158 | 22462 | 45.22 | 100 |
| 0.4 | 0.45 | 0.43 | 3083 | 13.73 | 13241 | 12304 | 58.95 | 54.78 |
| 0.45 | 0.5 | 0.48 | 2869 | 12.77 | 16110 | 9221 | 71.72 | 41.05 |
| 0.5 | 0.55 | 0.52 | 1759 | 7.83 | 17869 | 6352 | 79.55 | 28.28 |
| 0.55 | 0.6 | 0.58 | 1680 | 7.48 | 19549 | 4593 | 87.03 | 20.45 |
| 0.6 | 0.65 | 0.63 | 1147 | 5.11 | 20696 | 2913 | 92.14 | 12.97 |
| 0.65 | 0.7 | 0.68 | 838 | 3.73 | 21534 | 1766 | 95.87 | 7.86 |
| 0.7 | 0.75 | 0.73 | 744 | 3.31 | 22278 | 928 | 99.18 | 4.13 |
| 0.75 | 0.8 | 0.78 | 184 | 0.82 | 22462 | 184 | 100 | 0.82 |
| TOTAL | - | - | 22462 | 10000 | - | - | - | - |
| Autor: Grupo 3 | ||||||||
#Gráficas
#Histograma
hist(TRACK,breaks = 10,
main = "Gráfica N°15.1: Distribución para el
Tamaño de Pixel",
xlab = "Tamaño de Pixel",
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_TRACK$breaks,labels = Hist_TRACK$breaks,las=1,
cex.axis=0.9)
#Gráfica Global
hist(TRACK, breaks = 10,
main = "Gráfica N°15.2: Distribución para el
Tamaño de Pixel",
xlab = "Tamaño de Pixel (%)",
ylab = "Cantidad",
ylim = c(0, length(TRACK)),
col = "green",
cex.main = 0.9,
cex.lab = 1,
cex.axis = 0.9,
xaxt = "n")
axis(1, at = Hist_TRACK$breaks,
labels = Hist_TRACK$breaks, las = 1,
cex.axis = 0.9)
# Filtrar solo las filas numéricas (excluyendo la fila "TOTAL")
datos_grafico <- TDFTRACK[!TDFTRACK$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°15.3: Distribución porcentual de frecuencias
relativas para Tamaño de Pixel",
xlab = "Tamaño de Pixel",
ylab = "Porcentaje (%)",
names.arg = datos_grafico$MC,
ylim = c(0, 100))
# Local
hist(TRACK, breaks = 10,
main = "Gráfica N°15.4: Distribución para Tamaño de Pixel",
xlab = "Escaneo (%)",
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_TRACK$breaks,
labels = Hist_TRACK$breaks, las = 1,
cex.axis = 0.9)
# Filtrar filas válidas (excluir "TOTAL")
datos_validos <- TDFTRACK[!TDFTRACK$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°15.5: Distribución para Tamaño de Pixel",
xlab = "Escaneo (%)",
ylab = "Porcentaje (%)",
ylim = c(0, 50),
names.arg = datos_validos$MC)
# Diagrama de Ojiva Ascendente y Descendente
plot(Li ,Ni_desc,
main = "Gráfica N°15.6: Distribución de frecuencias Ascendente y descendente
para Tamaño de Pixel",
xlab = "Escaneo (%)",
ylab = "Cantidad",
xlim = c(0,1),
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, 1, by = 0.25))
# Diagrama de Ojiva Ascendente y Descendente Porcentual
plot(Li, Hi_desc * 100,
main = "Gráfica N°15.7: Distribución de frecuencia Ascendente y Descendente porcentual
para el Escaneo de Seguimiento",
xlab = "Escaneo (%)",
ylab = "Porcentaje (%)",
xlim = c(0,1),
col = "red",
type = "o",
lwd = 2,
xaxt="n")
lines(Ls, Hi_asc * 100,
col = "blue",
type = "o",
lwd = 3)
axis(1, at = seq(0,1,by=0.25))
# Diagrama de Caja
boxplot(TRACK,
horizontal = TRUE,
main = "Gráfica N°15.8:Distribución de frecuencia para el Tamaño de Pixel",
xlab = " Tamaño de Pixel (%)",
col = "pink",
outline = TRUE,
pch = 1)
# INDICADORES ESTADISTICOS
# Indicadores de Tendencia Central
# Media aritmética
media <- round(mean(TRACK), 2)
media
## [1] 0.46
# Moda
max_ni <- max(TDFTRACK$ni)
moda <- TDFTRACK$MC[TDFTRACK$ni == max_ni]
moda_valor <- as.character(moda)
moda_valor
## [1] "0.68"
# Mediana
mediana <- median(TRACK)
mediana
## [1] 0.43
# INDICADORES DE DISPERSIÓN #
# Varianza
varianza <- var(TRACK)
varianza
## [1] 0.01173904
# Desviación Estándar
sd <- sd(TRACK)
sd
## [1] 0.1083469
# Coeficiente de Variación
cv <- round((sd / media) * 100, 2)
cv
## [1] 23.55
# INDICADORES DE FORMA #
# Asimetría
library(e1071)
asimetria <- skewness(TRACK, type = 2)
asimetria
## [1] 1.028684
#Curtosis
curtosis <- kurtosis(TRACK)
curtosis
## [1] 0.05652093
tabla_indicadores <- data.frame("Variable" =c("Tamaño de Pixel"),
"Rango" = c("[0.36;0.78]"),
"X" = c(media),
"Me" = c(round(mediana,2)),
"Mo" = c(moda_valor),
"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(gt)
tabla_indicadores_gt <- tabla_indicadores %>%
gt() %>%
tab_header(
title = md("**Tabla N° 15.9**"),
subtitle = md("*Indicadores estadísticos descriptivos para el Tamaño de Pixel (TRACK)*")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 3")
) %>%
tab_options(
table.border.top.color = "black",
table.border.bottom.color = "black",
table.border.top.style = "solid",
table.border.bottom.style = "solid",
column_labels.border.top.color = "black",
column_labels.border.bottom.color = "black",
column_labels.border.bottom.width = px(2),
row.striping.include_table_body = TRUE,
heading.border.bottom.color = "black",
heading.border.bottom.width = px(2),
table_body.hlines.color = "gray",
table_body.border.bottom.color = "black"
) %>%
tab_style(
style = cell_text(weight = "bold"),
locations = cells_title(groups = "title")
)
tabla_indicadores_gt
| Tabla N° 15.9 | ||||||||||
| Indicadores estadísticos descriptivos para el Tamaño de Pixel (TRACK) | ||||||||||
| Variable | Rango | X | Me | Mo | V | Sd | Cv | As | K | Valores.Atipicos |
|---|---|---|---|---|---|---|---|---|---|---|
| Tamaño de Pixel | [0.36;0.78] | 0.46 | 0.43 | 0.68 | 0.01 | 0.11 | 23.55 | 1.0287 | 0.06 | No hay presencia de valores atipicos |
| Autor: Grupo 3 | ||||||||||