FECHA: 14/05/2025
# Leer y preparar datos
df <- read.csv("Focos de Calor 2021.csv", header = TRUE, sep = ",", dec = ".")
latitud <- df$LATITUDE
brillo <- df$BRIGHTNESS
# Escalar valores grandes
Latitud <- latitud / 1e12
Brillo <- brillo / 1e16
x <- Latitud #(variable independiente, predictor)
y <- Brillo #(variable dependiente, respuesta)
#Justificación:
#LATITUDE es una variable espacial (posición geográfica),
#generalmente considerada como variable explicativa o
#predictora porque no depende de BRIGHTNESS.
#BRIGHTNESS es una medida que puede variar según la latitud
# por eso la tratamos como variable dependiente o respuesta.
# Limpiar datos
datos_limpios <- na.omit(data.frame(x, y))
datos_pot <- subset(datos_limpios, x > 0 & y > 0)
x <- datos_pot$x
y <- datos_pot$y
# Transformación logarítmica
logx <- log(x)
logy <- log(y)
# Modelo potencial
regresion_potencial <- lm(logy ~ logx)
summary(regresion_potencial)
##
## Call:
## lm(formula = logy ~ logx)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.121830 -0.016841 0.005943 0.024647 0.119757
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.432324 0.006145 558.5 <2e-16 ***
## logx 0.012327 0.001121 11.0 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.04344 on 928 degrees of freedom
## Multiple R-squared: 0.1153, Adjusted R-squared: 0.1143
## F-statistic: 120.9 on 1 and 928 DF, p-value: < 2.2e-16
# Coeficientes del modelo
beta0_pot <- coef(regresion_potencial)[1]
beta1_pot <- coef(regresion_potencial)[2]
a_pot <- exp(beta0_pot)
b_pot <- beta1_pot
# Mostrar modelo
cat("Modelo potencial: BRIGHTNESS = ", round(a_pot, 4), " * LATITUDE ^ ", round(b_pot, 4), "\n")
## Modelo potencial: BRIGHTNESS = 30.9485 * LATITUDE ^ 0.0123
# Gráfico con colores suaves
plot(x, y,
col = "skyblue", # color de los puntos
pch = 16, # tipo de punto
main = "Regresión Potencial: BRIGHTNESS vs LATITUDE",
xlab = "LATITUDE", ylab = "BRIGHTNESS",
col.lab = "gray30", col.main = "gray30")
# Curva ajustada en rojo claro
curve(a_pot * x^b_pot, from = min(x), to = max(x),
add = TRUE, col = "#FF6F61", lwd = 2)

# Correlación
r_potencial <- cor(logx, logy)*100
cat("Correlación potencial (log-log):", round(r_potencial, 4), "%\n")
## Correlación potencial (log-log): 33.9514 %
# Leer y preparar datos
df <- read.csv("Focos de Calor 2021.csv", header = TRUE, sep = ",", dec = ".")
latitud <- df$LATITUDE
brillo <- df$BRIGHTNESS
# Escalar valores grandes
Latitud <- latitud / 1e16
Brillo <- brillo / 1e16
x <- Latitud
y <- Brillo
# Limpiar datos
datos_limpios <- na.omit(data.frame(x, y))
datos_pot <- subset(datos_limpios, x > 0 & y > 0)
x <- datos_pot$x
y <- datos_pot$y
# Crear variable para regresión polinómica grado 2
x2 <- x^2
# Ajustar modelo polinómico grado 2
regresion_poly2 <- lm(y ~ x + x2)
# Resumen del modelo
summary(regresion_poly2)
##
## Call:
## lm(formula = y ~ x + x2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.9117 -0.6208 0.2029 0.8084 4.1472
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 32.37014 0.09433 343.142 < 2e-16 ***
## x 30.98548 5.05505 6.130 1.3e-09 ***
## x2 -177.36077 48.55667 -3.653 0.000274 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.431 on 927 degrees of freedom
## Multiple R-squared: 0.09472, Adjusted R-squared: 0.09277
## F-statistic: 48.5 on 2 and 927 DF, p-value: < 2.2e-16
# Extraer coeficientes
coeficientes <- coef(regresion_poly2)
cat("Modelo polinómico grado 2: \n")
## Modelo polinómico grado 2:
cat("BRIGHTNESS =", round(coeficientes[1], 6), "+", round(coeficientes[2], 6), "* LATITUDE +",
round(coeficientes[3], 6), "* LATITUDE^2\n")
## BRIGHTNESS = 32.37014 + 30.98548 * LATITUDE + -177.3608 * LATITUDE^2
# Gráfico con puntos y curva ajustada
plot(x, y,
col = "skyblue",
pch = 16,
main = "Regresión Polinómica Grado 2: BRIGHTNESS vs LATITUDE",
xlab = "LATITUDE", ylab = "BRIGHTNESS",
col.lab = "gray30", col.main = "gray30")
# Secuencia para curva ajustada
x_seq <- seq(min(x), max(x), length.out = 200)
# Valores predichos con el modelo polinómico grado 2
y_pred <- coeficientes[1] + coeficientes[2]*x_seq + coeficientes[3]*x_seq^2
# Añadir curva ajustada
lines(x_seq, y_pred, col = "#FF6F61", lwd = 2)

# Calcular correlación lineal
r <- cor(x, y)
# Mostrar correlación en porcentaje
cat("Correlación lineal entre LATITUDE y BRIGHTNESS: ", round(r * 100, 2), "%\n")
## Correlación lineal entre LATITUDE y BRIGHTNESS: 28.58 %