FECHA: 14/05/2025
install.packages("scatterplot3d")
library(scatterplot3d)
# Leer y preparar los datos
df <- read.csv("Focos de Calor 2021.csv", header = TRUE, sep = ",", dec = ".")
df$FRP <- as.numeric(df$FRP) / 1e16
df$BRIGHTNESS <- as.numeric(df$BRIGHTNESS) / 1e16
df$SCAN <- as.numeric(df$SCAN) / 1e16
# Filtrar valores positivos
df <- df[df$FRP > 0 & df$BRIGHTNESS > 0 & df$SCAN > 0, ]
# Crear paleta de colores: rojo (alto) → naranja → amarillo (bajo)
paleta <- colorRampPalette(c("red", "orange", "yellow"))
colores <- paleta(100)
# Escalar FRP a una escala de 1 a 100 para asignar colores
frp_escala <- cut(df$FRP, breaks = 100, labels = FALSE)
color_puntos <- colores[frp_escala]
# Ajustar modelo de regresión lineal múltiple
modelo_lineal <- lm(FRP ~ BRIGHTNESS + SCAN, data = df)
summary(modelo_lineal)
##
## Call:
## lm(formula = FRP ~ BRIGHTNESS + SCAN, data = df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.602 -0.506 -0.344 0.012 35.259
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -8.878430 0.234112 -37.92 <2e-16 ***
## BRIGHTNESS 0.265640 0.006789 39.13 <2e-16 ***
## SCAN 19.269874 1.057592 18.22 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.405 on 22459 degrees of freedom
## Multiple R-squared: 0.07497, Adjusted R-squared: 0.07489
## F-statistic: 910.1 on 2 and 22459 DF, p-value: < 2.2e-16
# Graficar la nube de puntos 3D con colores según FRP
Relacion <- scatterplot3d(
x = df$BRIGHTNESS,
y = df$SCAN,
z = df$FRP,
main = "Relación FRP ~ BRIGHTNESS + SCAN",
xlab = "BRIGHTNESS",
ylab = "SCAN",
zlab = "FRP",
color = color_puntos, # usar colores según FRP
angle = 55,
pch = 16,
grid = TRUE,
box = TRUE
)
# Dibujar el plano de regresión
Relacion$plane3d(modelo_lineal)
