longitud <- datos$Longitude
longitud <- na.omit(longitud)
latitud <- datos$Latitude
latitud <- na.omit(latitud)
elevacion <- datos$Elevation
elevacion <- na.omit(elevacion)
temp_maxima <- datos$Max.Temperature
temp_maxima <- na.omit(temp_maxima)
temp_minima <- datos$Min.Temperature
temp_minima <- na.omit(temp_minima)
precipitacion <- datos$Precipitation
precipitacion <- na.omit(precipitacion)
viento <- datos$Wind
viento <- na.omit(viento)
humedad_relativa <- datos$Relative.Humidity
humedad_relativa <- na.omit(humedad_relativa)
radiacion_solar <- datos$Solar
radiacion_solar <- na.omit(radiacion_solar)## [1] 15.98 12.25 4.58 4.32 3.86 9.57
## [1] 16.10 15.50 11.55 12.02 11.73 12.11
# 3. Crear la tabla de pares de valores (Data Frame)
tabla_regresion <- data.frame(
Radiacion_Solar = x,
Temp_Maxima = y
)
# 4. Limpiar filas con valores vacíos (NA)
tabla_regresion <- na.omit(tabla_regresion)
# 5. Configurar R para mostrar TODAS las filas
options(max.print = nrow(tabla_regresion) * ncol(tabla_regresion))
# 6. Mostrar la tabla completa
print("Tabla completa de pares de valores (x, y):")## [1] "Tabla completa de pares de valores (x, y):"
## Radiacion_Solar Temp_Maxima
## 1 15.98 16.10
## 2 12.25 15.50
## 3 4.58 11.55
## 4 4.32 12.02
## 5 3.86 11.73
## 6 9.57 12.11
## 7 10.93 13.06
## 8 2.40 11.53
## 9 5.32 12.95
## 10 7.19 13.38
## 11 6.71 12.99
## 12 10.77 17.40
## 13 9.66 15.88
## 14 5.37 13.65
## 15 4.02 13.07
## 16 9.64 13.81
## 17 8.11 13.02
## 18 3.19 12.31
## 19 3.64 12.73
## 20 5.60 12.17
## 21 8.75 12.54
## 22 4.57 11.78
## 23 1.52 10.51
## 24 1.93 10.32
## 25 10.43 12.81
## 26 3.60 11.91
## 27 6.45 13.18
## 28 1.35 11.57
## 29 5.55 11.94
## 30 6.50 12.39
## 31 6.87 13.27
## 32 8.17 13.38
## 33 1.58 11.58
## 34 5.28 12.85
## 35 10.11 14.18
## 36 8.24 14.65
## 37 1.90 12.42
## 38 6.07 13.84
## 39 7.16 13.48
## 40 7.87 14.34
## 41 11.57 14.38
## 42 2.15 11.13
## 43 8.31 12.91
## 44 6.11 11.59
## 45 8.86 12.47
## 46 5.92 11.55
## 47 5.95 12.14
## 48 5.10 10.73
## 49 4.00 11.42
## 50 8.01 12.26
## 51 4.08 11.38
## 52 3.59 12.04
## 53 2.83 10.83
## 54 2.90 10.99
## 55 3.07 11.43
## 56 1.82 11.41
## 57 1.54 11.05
## 58 4.28 11.56
## 59 6.99 12.24
## 60 6.89 12.80
## 61 9.89 14.44
## 62 11.45 17.04
## 63 8.35 16.21
## 64 5.44 14.15
## 65 4.63 12.85
## 66 9.72 14.69
## 67 11.63 17.98
## 68 16.16 17.10
## 69 20.53 18.81
## 70 13.70 15.57
## 71 17.42 17.53
## 72 16.27 17.50
## 73 18.80 19.00
## 74 14.41 16.85
## 75 14.52 17.11
## 76 13.32 17.07
## 77 8.32 14.42
## 78 3.98 13.91
## 79 4.49 11.73
## 80 2.39 11.71
## 81 7.02 12.45
## 82 4.29 12.23
## 83 7.79 13.20
## 84 4.83 12.81
## 85 5.59 12.19
## 86 8.29 12.93
## 87 4.73 12.92
## 88 4.83 14.30
## 89 11.93 15.56
## 90 14.83 18.25
## 91 12.42 15.47
## 92 13.34 16.30
## 93 13.22 16.92
## 94 11.89 15.52
## 95 4.44 12.28
## 96 3.45 11.86
## 97 5.38 13.75
## 98 7.20 13.52
## 99 4.74 10.97
## 100 8.03 13.76
## 101 10.47 12.32
## 102 16.45 14.53
## 103 10.60 13.10
## 104 11.69 13.70
## 105 10.17 14.20
## 106 11.57 13.42
## 107 4.33 11.81
## 108 5.45 12.39
## 109 3.56 12.24
## 110 7.98 14.56
## 111 9.87 13.90
## 112 10.95 14.77
## 113 7.18 13.07
## 114 11.98 15.19
## 115 8.21 14.36
## 116 16.90 17.63
## 117 3.87 14.35
## 118 9.73 14.36
## 119 5.13 13.42
## 120 3.54 12.37
## 121 7.40 13.71
## 122 7.61 14.26
## 123 13.65 15.88
## 124 21.70 17.35
## 125 16.46 16.22
## 126 14.53 14.77
## 127 11.31 15.35
## 128 12.95 15.15
## 129 13.57 16.49
## 130 12.13 15.26
## 131 15.54 16.23
## 132 11.48 14.93
## 133 6.16 14.18
## 134 5.63 13.50
## 135 14.65 17.12
## 136 10.78 15.33
## 137 13.21 18.85
## 138 16.16 17.26
## 139 11.76 14.43
## 140 4.89 12.55
## 141 4.61 15.70
## 142 7.98 14.04
## 143 13.62 16.14
## 144 18.58 16.67
## 145 25.28 17.34
## 146 24.96 19.19
## 147 25.11 18.76
## 148 26.70 20.24
## 149 21.17 20.09
## 150 21.44 18.54
## 151 24.41 18.68
## 152 26.23 19.89
## 153 23.67 18.43
## 154 16.36 18.98
## 155 15.49 16.35
## 156 21.36 17.08
## 157 19.28 17.26
## 158 25.20 17.44
## 159 25.88 19.12
## 160 22.03 17.09
## 161 24.51 17.64
## 162 25.95 19.02
## 163 24.77 19.65
## 164 22.40 16.46
## 165 24.38 16.26
## 166 14.84 16.16
## 167 21.01 16.79
## 168 16.21 15.58
## 169 21.77 16.27
## 170 20.93 16.00
## 171 17.68 15.21
## 172 20.32 19.65
## 173 19.89 16.57
## 174 26.28 19.16
## 175 20.91 18.09
## 176 15.23 18.03
## 177 23.15 15.83
## 178 23.24 17.46
## 179 25.32 17.67
## 180 24.51 16.63
## 181 12.93 15.50
## 182 23.49 16.79
## 183 20.54 19.42
## 184 26.46 20.59
## 185 23.87 18.13
## 186 22.65 16.34
## 187 14.82 16.26
## 188 22.19 16.80
## 189 21.11 17.32
## 190 26.14 20.88
## 191 25.97 18.58
## 192 23.48 18.67
## 193 23.31 17.66
## 194 24.58 16.55
## 195 24.72 17.46
## 196 22.81 16.51
## 197 24.74 17.63
## 198 26.30 19.27
## 199 26.68 19.19
## 200 25.67 21.32
## 201 27.03 21.00
## 202 21.33 17.72
## 203 21.60 18.12
## 204 27.15 21.21
## 205 27.00 20.38
## 206 26.87 19.82
## 207 27.49 21.56
## 208 27.57 21.51
## 209 25.71 19.87
## 210 26.45 22.60
## 211 21.47 18.15
## 212 26.02 21.06
## 213 23.87 19.74
## 214 25.68 20.39
## 215 25.50 18.06
## 216 21.02 17.88
## 217 24.63 19.26
## 218 27.04 20.71
## 219 27.21 18.95
## 220 27.82 17.64
## 221 28.31 19.24
## 222 28.43 21.20
## 223 23.69 18.99
## 224 23.32 18.60
## 225 13.49 16.81
## 226 20.40 16.94
## 227 14.08 17.44
## 228 18.42 17.27
## 229 21.71 17.40
## 230 12.10 16.37
## 231 22.30 17.60
## 232 28.54 19.69
## 233 28.45 19.10
## 234 28.67 20.61
## 235 28.30 18.10
## 236 28.57 17.79
## 237 28.66 18.00
## 238 28.51 20.83
## 239 26.72 22.34
## 240 24.67 21.30
## 241 28.99 23.47
## 242 20.94 19.11
## 243 27.35 22.96
## 244 26.15 20.48
## 245 29.49 21.47
## 246 23.54 20.39
## 247 24.22 18.32
## 248 27.74 18.56
## 249 23.88 20.02
## 250 29.54 20.89
## 251 25.65 18.82
## 252 26.40 20.48
## 253 29.99 23.42
## 254 29.10 19.31
## 255 30.05 22.04
## 256 27.33 19.40
## 257 30.27 23.79
## 258 27.88 21.01
## 259 29.26 19.79
## 260 26.31 17.86
## 261 25.28 17.67
## 262 16.94 16.78
## 263 25.09 17.85
## 264 18.76 17.49
## 265 17.01 16.46
## 266 24.15 18.33
## 267 19.89 17.39
## 268 12.87 15.34
## 269 20.83 16.45
## 270 27.79 19.00
## 271 13.61 17.11
## 272 16.59 16.80
## 273 28.21 18.20
## 274 29.04 20.20
## 275 20.77 17.60
## 276 22.85 16.89
## 277 24.65 16.29
## 278 16.29 16.26
## 279 1.26 10.99
## 280 7.55 12.66
## 281 12.11 15.47
## 282 5.30 13.82
## 283 9.01 15.20
## 284 12.84 14.06
## 285 13.35 13.94
## 286 9.25 14.15
## 287 6.27 13.32
## 288 11.19 14.75
## 289 13.04 15.17
## 290 3.62 12.79
## 291 3.59 11.35
## 292 8.39 12.74
## 293 10.04 12.82
## 294 15.18 16.27
## 295 10.40 14.66
## 296 17.05 15.87
## 297 19.09 15.81
## 298 11.32 13.80
## 299 7.11 15.02
## 300 13.48 16.01
## 301 14.67 17.23
## 302 20.45 16.83
## 303 13.20 15.29
## 304 10.21 13.90
## 305 5.55 13.43
## 306 11.93 14.55
## 307 13.24 15.19
## 308 13.15 15.61
## 309 5.84 12.55
## 310 9.66 14.36
## 311 3.99 13.20
## 312 5.15 12.71
## 313 13.12 15.60
## 314 7.19 13.93
## 315 2.79 12.49
## 316 8.17 13.75
## 317 7.26 13.09
## 318 9.12 14.87
## 319 10.44 13.98
## 320 11.50 14.85
## 321 23.43 15.32
## 322 16.92 15.52
## 323 15.19 15.95
## 324 4.54 13.00
## 325 3.13 13.62
## 326 2.94 13.57
## 327 8.98 13.81
## 328 9.89 14.39
## 329 3.45 13.06
## 330 9.99 15.19
## 331 4.31 13.69
## 332 9.00 15.04
## 333 10.37 13.39
## 334 10.61 14.27
## 335 5.39 11.88
## 336 11.20 14.25
## 337 8.83 13.24
## 338 23.37 14.99
## 339 11.88 13.88
## 340 8.28 12.86
## 341 14.59 15.73
## 342 11.84 15.78
## 343 11.56 15.75
## 344 13.27 18.26
## 345 19.30 18.82
## 346 9.04 14.77
## 347 7.86 13.58
## 348 12.35 13.96
## 349 17.65 15.20
## 350 15.82 15.10
## 351 9.98 14.00
## 352 10.62 13.25
## 353 11.39 13.85
## 354 6.37 13.19
## 355 9.36 14.44
## 356 6.03 13.40
## 357 5.20 13.45
## 358 12.47 17.23
## 359 7.48 14.27
## 360 11.81 15.65
## 361 7.68 13.97
## 362 10.47 15.41
## 363 9.85 16.39
## 364 14.04 16.21
## 365 11.64 16.63
## 366 5.71 13.17
## Total de filas mostradas: 366
# 1. Graficar la nube de puntos
plot(x = tabla_regresion$Radiacion_Solar,
y = tabla_regresion$Temp_Maxima,
main = "Dispersión entre Tem. Máxima y Radiación solar",
xlab = expression("Radiación Solar (MJ/m"^2*"/día)"),
ylab = expression("Temperatura Máxima ("*degree*"C)"),
pch = 19,
col = "steelblue",
cex = 0.8)# 2. Ajustar el modelo lineal
modelo <- lm(y ~ x, na.action = na.omit)
# 3. Extraer y mostrar los parámetros
b0 <- coef(modelo)[1]
b1 <- coef(modelo)[2]
cat("La conjetura del modelo es:\n")## La conjetura del modelo es:
## Y = 11.2237 + 0.3129 * X
##
## Call:
## lm(formula = y ~ x, na.action = na.omit)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.5457 -0.8530 -0.0284 0.7079 3.4931
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 11.223741 0.125514 89.42 <2e-16 ***
## x 0.312879 0.007534 41.53 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.199 on 364 degrees of freedom
## Multiple R-squared: 0.8257, Adjusted R-squared: 0.8253
## F-statistic: 1725 on 1 and 364 DF, p-value: < 2.2e-16
# Usamos las variables x e y definidas anteriormente
modelo <- lm(y ~ x, na.action = na.omit)
# Extraer el Intercepto (b0)
intercepto <- coef(modelo)[1]
# Extraer la Pendiente (b1)
pendiente <- coef(modelo)[2]
# 4. Mostrar los resultados con claridad
cat("--- Parámetros del Modelo ---\n")## --- Parámetros del Modelo ---
## Intercepto (b0): 11.22374
## Pendiente (b1): 0.312879
## -----------------------------
# 5. Escribir la ecuación final
cat("La ecuación es: Temp_Maxima =", round(intercepto, 4), "+ (", round(pendiente, 4), "* Radiacion_Solar )\n")## La ecuación es: Temp_Maxima = 11.2237 + ( 0.3129 * Radiacion_Solar )
# MODELO DE REGRESIÓN LINEAL Y VISUALIZACIÓN
# 1. Ajustar el modelo de regresión lineal
modelo_lineal <- lm(Temp_Maxima ~ Radiacion_Solar, data = tabla_regresion)
# 2. Mostrar el resumen estadístico del modelo
summary(modelo_lineal)##
## Call:
## lm(formula = Temp_Maxima ~ Radiacion_Solar, data = tabla_regresion)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.5457 -0.8530 -0.0284 0.7079 3.4931
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 11.223741 0.125514 89.42 <2e-16 ***
## Radiacion_Solar 0.312879 0.007534 41.53 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.199 on 364 degrees of freedom
## Multiple R-squared: 0.8257, Adjusted R-squared: 0.8253
## F-statistic: 1725 on 1 and 364 DF, p-value: < 2.2e-16
# 3. Extraer los coeficientes para escribir la ecuación manualmente
coeficientes <- coef(modelo_lineal)
b0 <- coeficientes[1]
b1 <- coeficientes[2]
cat("La ecuación del modelo es: Y =", round(b0, 2), "+", round(b1, 2), "* X\n")## La ecuación del modelo es: Y = 11.22 + 0.31 * X
plot(tabla_regresion$Radiacion_Solar, tabla_regresion$Temp_Maxima,
main = "Modelo de Regresión Lineal",
# El '*' une las partes y '^2' pone el exponente
xlab = expression("Radiación Solar (MJ/m"^2*"/día)"),
ylab = expression("Temperatura Máxima ("*degree*"C)"),
pch = 19, col = "steelblue")
# Agregar la línea de tendencia (color rojo y más gruesa)
abline(modelo_lineal, col = "red", lwd = 2)# TEST DE CORRELACIÓN DE PEARSON
x <- tabla_regresion$Radiacion_Solar
y <- tabla_regresion$Temp_Maxima
# 2. Realizar el Test de Correlación de Pearson
resultado_test <- cor.test(x, y, method = "pearson")
# 3. Mostrar el resultado completo del test
print(resultado_test)##
## Pearson's product-moment correlation
##
## data: x and y
## t = 41.531, df = 364, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.8890033 0.9250430
## sample estimates:
## cor
## 0.9087017
# 4. Extraer solo el coeficiente de correlación (r)
r <- resultado_test$estimate
cat("\nEl coeficiente de correlación de Pearson (r) es:", r, "\n")##
## El coeficiente de correlación de Pearson (r) es: 0.9087017
# COEFICIENTE DE DETERMINACIÓN ($R^2$)
x <- datos$Solar
y <- datos$Max.Temperature
modelo <- lm(y ~ x, na.action = na.omit)
# 2. Extraer el Coeficiente de Determinación (R cuadrado)
resumen <- summary(modelo)
r_cuadrado <- resumen$r.squared
# 3. Mostrar el resultado
cat("--- Coeficiente de Determinación ---\n")## --- Coeficiente de Determinación ---
## R-squared (R2): 0.8257388
## En porcentaje: 82.57 %
## ------------------------------------
# 4. Interpretación (basada en los datos del volcán)
cat("Esto significa que el", round(r_cuadrado * 100, 2),
"% de la variación en la Temperatura Máxima se debe a la Radiación Solar.")## Esto significa que el 82.57 % de la variación en la Temperatura Máxima se debe a la Radiación Solar.
¿Cuál sería la temperatura máxima probable ante diferentes niveles de radiación solar 5, 15, 25, 30 (MJ/m”^2*“/día) ?
# ESTIMACIONES DEL MODELO (PREDICCIONES)
modelo <- lm(Max.Temperature ~ Solar, data = datos)
# 2. Definimos la "pregunta" (el valor de X que nos interesa)
pregunta_sol <- c(5, 15, 25, 30)
# 3. El modelo responde (hace la estimación)
respuestas <- predict(modelo, newdata = data.frame(Solar = pregunta_sol))
# 4. Mostrar los resultados de forma clara
for(i in 1:length(pregunta_sol)) {
cat("Pregunta: Si la radiación solar es", pregunta_sol[i], "MJ/m²/día",
"\nRespuesta: La temperatura estimada es", round(respuestas[i], 2), "°C\n\n")
}## Pregunta: Si la radiación solar es 5 MJ/m²/día
## Respuesta: La temperatura estimada es 12.79 °C
##
## Pregunta: Si la radiación solar es 15 MJ/m²/día
## Respuesta: La temperatura estimada es 15.92 °C
##
## Pregunta: Si la radiación solar es 25 MJ/m²/día
## Respuesta: La temperatura estimada es 19.05 °C
##
## Pregunta: Si la radiación solar es 30 MJ/m²/día
## Respuesta: La temperatura estimada es 20.61 °C
La conjetura del modelo lineal confirma que la temperatura atmosférica en el Volcán ANTISANA no fluctúa de forma aleatoria, sino que presenta una dependencia crítica y directa de la insolación diaria. Mientras que en niveles de radiación bajos la temperatura se mantiene en un rango base (cercano a los 11.22 °C). Esto demuestra que la radiación solar es el motor termodinámico dominante en la zona, donde cada incremento en la intensidad solar impacta de forma inmediata en el balance calórico del sitio, validando la alta fiabilidad predictiva de nuestro modelo (R² ≈ 82%).