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 = TRUE, sep = ",", dec = ",")
# Filtrar valores positivos para SCAN
VarLog <- datos$SCAN
VarLog <- VarLog[VarLog > 0]
# Crear histograma con 4 intervalos (5 puntos de corte)
HistoLog <- hist(VarLog, breaks = seq(min(VarLog), max(VarLog), length.out = 5),
freq = FALSE,
main = "Gráfica: Modelo Log-normal para SCAN",
xlab = "Valor", ylab = "Densidad",
col = "lightgreen")
# Parámetros logarítmicos (media y sd)
log_mu <- mean(log(VarLog))
log_sigma <- sd(log(VarLog))
# Añadir curva log-normal (línea roja)
curve(dlnorm(x, meanlog = log_mu, sdlog = log_sigma),
add = TRUE, col = "red", lwd = 2)
# Frecuencias observadas (conteos por clase)
Fo <- HistoLog$counts
# Número de clases
h <- length(Fo)
# Probabilidades teóricas en cada clase (intervalo)
P <- sapply(1:h, function(i) {
pl <- plnorm(HistoLog$breaks[i], meanlog = log_mu, sdlog = log_sigma)
pu <- plnorm(HistoLog$breaks[i + 1], meanlog = log_mu, sdlog = log_sigma)
pu - pl
})
# Frecuencias esperadas (número de datos multiplicado por probabilidad teórica)
Fe <- P * length(VarLog)
# Correlación Pearson entre frecuencias observadas y esperadas (en conteos)
Correlación <- cor(Fo, Fe) * 100
# Gráfico Pearson Observado vs Esperado
plot(Fo, Fe,
main = "Gráfica: Pearson entre Frecuencia Observada y Esperada (Log-normal)",
xlab = "Fo", ylab = "Fe", col = "blue3")
abline(lm(Fe ~ Fo), col = "red", lwd = 2)
# Test Chi-Cuadrado
# Para el test, se deben usar frecuencias absolutas (Fo, Fe), no porcentajes
x2 <- sum((Fo - Fe)^2 / Fe)
# Cálculo de grados de libertad:
# Número de clases - número de parámetros estimados (media y sd) - 1
k <- 2
gl <- h - k - 1
# Umbral para nivel confianza 95%
umbral <- qchisq(0.95, df = gl)
# Resultado test
cat("Chi-cuadrado calculado:", round(x2, 2), "\n")
## Chi-cuadrado calculado: 549.18
cat("Umbral (95%):", round(umbral, 2), "\n")
## Umbral (95%): 3.84
cat("¿Se acepta la hipótesis nula?:", x2 < umbral, "\n")
## ¿Se acepta la hipótesis nula?: FALSE
# Tabla resumen
Variable <- "SCAN"
tabla_resumen <- data.frame(
Variable,
`Test Pearson (%)` = round(Correlación, 2),
`Chi Cuadrado` = round(x2, 2),
`Umbral de aceptación` = round(umbral, 2)
)
library(knitr)
kable(tabla_resumen, format = "markdown", caption = "Resumen del test de bondad al modelo Log-normal")
| Variable | Test.Pearson…. | Chi.Cuadrado | Umbral.de.aceptación |
|---|---|---|---|
| SCAN | 99.54 | 549.18 | 3.84 |
# Cálculo de intervalo de confianza para la media logarítmica
log_values <- log(VarLog)
log_mu <- mean(log_values)
log_sigma <- sd(log_values)
n <- length(log_values)
e <- log_sigma / sqrt(n)
li <- log_mu - 2 * e
ls <- log_mu + 2 * e
# Tabla intervalo de confianza
tabla_media <- data.frame(
`Límite inferior` = round(li, 4),
`Media logarítmica` = round(log_mu, 4),
`Límite superior` = round(ls, 4),
`Error estándar` = round(e, 4)
)
kable(tabla_media, format = "markdown", caption = "Intervalo de confianza para la media logarítmica (95%)")
| Límite.inferior | Media.logarítmica | Límite.superior | Error.estándar |
|---|---|---|---|
| -0.8302 | -0.8273 | -0.8245 | 0.0014 |
# Visualización de la curva y probabilidad entre a y b
a <- 0.5
b <- 1.5
x <- seq(min(VarLog), max(VarLog), length.out = 1000)
plot(x, dlnorm(x, meanlog = log_mu, sdlog = log_sigma), type = "l",
col = "skyblue3", lwd = 2,
main = paste("Densidad log-normal y área entre", a, "y", b),
xlab = "SCAN", ylab = "Densidad de probabilidad")
x_section <- seq(a, b, length.out = 500)
y_section <- dlnorm(x_section, meanlog = log_mu, sdlog = log_sigma)
polygon(c(x_section, rev(x_section)),
c(y_section, rep(0, length(y_section))),
col = rgb(1, 0, 0, 0.5), border = NA)
lines(x_section, y_section, col = "red", lwd = 2)
# Probabilidad entre a y b
probabilidad <- plnorm(b, meanlog = log_mu, sdlog = log_sigma) -
plnorm(a, meanlog = log_mu, sdlog = log_sigma)
cat(sprintf("Probabilidad entre %.2f y %.2f: %.4f (%.2f%%)\n",
a, b, probabilidad, probabilidad * 100))
## Probabilidad entre 0.50 y 1.50: 0.2650 (26.50%)
#CONCLUSIÓN
##La variable SCAN sigue un modelo de probabilidad log-normal,
##aprobando el test de Pearson con un 99.54% de correlación entre frecuencias observadas y esperadas,
##y el test Chi-cuadrado con un valor de 549.18,
##superior al umbral de aceptación de 3.84 para un nivel de confianza del 95%.
##La probabilidad de que SCAN tome valores entre 0.5 y 1.5 es aproximadamente del 26.50%.
##La media logarítmica poblacional de SCAN se encuentra entre -0.830 y
##-0.8245 con un nivel de confianza del 95%.