Relación entre Radiación Solar, la precipitación y la Humedad Relativa en el Antisana

1 Carga de datos

library(readr)
dataANTISANA <- read_delim("C:/Users/Usuario/Desktop/TRABAJO DE ESTADISTICA/PDF-EXCEL-QGIS/dataANTISANA.csv", delim = ";", escape_double = FALSE, trim_ws = TRUE)
## Rows: 366 Columns: 10
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (1): Date
## dbl (9): Longitude, Latitude, Elevation, Max Temperature, Min Temperature, P...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

2 Justificación de selección de variables

cat(paste0(
  "Se seleccionaron **Radiación Solar**, **Precipitación** y **Humedad Relativa** porque representan tres componentes fundamentales del sistema climático: la **energía disponible** (radiación), el **proceso de condensación y lluvia** (precipitación) y el **contenido de vapor de agua en la atmósfera** (humedad). En zonas de alta montaña como el Antisana, estas variables interactúan de forma simultánea, ya que la presencia de nubosidad reduce la radiación incidente y favorece los eventos de lluvia, mientras que la humedad condiciona la formación de nubes y precipitación.\n\n",
  "**Definición de variables del estudio:**\n",
  "- **Variables independientes (X,Y):** **Radiación Solar** (`Solar`) y **Precipitación** (`Precipitation`).\n",
  "- **Variable dependiente (Z):** **Humedad Relativa** (`Relative Humidity`).\n"
))

Se seleccionaron Radiación Solar, Precipitación y Humedad Relativa porque representan tres componentes fundamentales del sistema climático: la energía disponible (radiación), el proceso de condensación y lluvia (precipitación) y el contenido de vapor de agua en la atmósfera (humedad). En zonas de alta montaña como el Antisana, estas variables interactúan de forma simultánea, ya que la presencia de nubosidad reduce la radiación incidente y favorece los eventos de lluvia, mientras que la humedad condiciona la formación de nubes y precipitación.

Definición de variables del estudio: - Variables independientes (X,Y): Radiación Solar (Solar) y Precipitación (Precipitation). - Variable dependiente (Z): Humedad Relativa (Relative Humidity).

3 Tabla de tríada de valores

Se comparan variables por causa y efecto

x <- dataANTISANA$Solar
y <- dataANTISANA$Precipitation
z <- dataANTISANA$`Relative Humidity`

tabla_trio <- data.frame(
  Rad_Solar = x,
  Precipitacion = y,
  Hume_Rela = z
)

print("Tabla de Trio:  (x), (y) y (z)")
## [1] "Tabla de Trio:  (x), (y) y (z)"
head(tabla_trio)
##   Rad_Solar Precipitacion Hume_Rela
## 1     15.98          8.49      0.93
## 2     12.25         35.44      0.96
## 3      4.58         41.53      0.98
## 4      4.32         15.48      0.99
## 5      3.86         28.71      0.98
## 6      9.57         25.19      0.97

4 Gráfica de nubes de puntos

library(plotly)
## Cargando paquete requerido: ggplot2
## 
## Adjuntando el paquete: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
fig <- plot_ly(dataANTISANA, 
               x = ~Solar, 
               y = ~Precipitation,
               z = ~`Relative Humidity`, 
               type = 'scatter3d', 
               mode = 'markers',
               marker = list(size = 4, 
                             color = ~`Relative Humidity`, 
                             colorscale = 'Viridis', 
                             opacity = 0.7))

fig <- fig %>% layout(
    title = "Gráfica 3D: Disperción entre la Radiación Solar(x), la Precipitación(y) y la Humedad Relativa(z)",
    scene = list(
      xaxis = list(title = 'Rad. Solar (MJ/m²)'),
      yaxis = list(title = 'Precipitación (mm)'),
      zaxis = list(title = 'Humedad Relativa (0-1)')
    )
  )
fig

5 Modelo de Superficie de la Regresión Múltiple No Lineal y Cálculo de Parámetros

modelo_superficie_hum <- lm(`Relative Humidity` ~ Solar + Precipitation + 
                             I(Solar^2) + I(Precipitation^2) + 
                             (Solar * Precipitation), 
                           data = dataANTISANA)

b_hum <- coef(modelo_superficie_hum)

cat("       PARÁMETROS: PREDICCIÓN DE HUMEDAD (Z)\n",
    " Intercepto (b0):        ", round(b_hum[1], 6), "\n",
    " Coef. Solar (b1):       ", round(b_hum[2], 6), "\n",
    " Coef. Precipitación (b2):", round(b_hum[3], 6), "\n",
    " Coef. Solar^2 (b3):     ", round(b_hum[4], 6), "\n",
    " Coef. Precip.^2 (b4):   ", round(b_hum[5], 6), "\n",
    " Coef. Interacción (b5): ", round(b_hum[6], 6), "\n",
    "Ecuación estimada:\n",
    sprintf("z (Humedad) = %.4f + (%.4f)x + (%.4f)y + (%.4f)x² + (%.4f)y² + (%.4f)xy\n", 
            b_hum[1], b_hum[2], b_hum[3], b_hum[4], b_hum[5], b_hum[6]))
##        PARÁMETROS: PREDICCIÓN DE HUMEDAD (Z)
##   Intercepto (b0):         1.016435 
##   Coef. Solar (b1):        -0.004942 
##   Coef. Precipitación (b2): -0.001084 
##   Coef. Solar^2 (b3):      -0.000233 
##   Coef. Precip.^2 (b4):    0 
##   Coef. Interacción (b5):  0.000219 
##  Ecuación estimada:
##  z (Humedad) = 1.0164 + (-0.0049)x + (-0.0011)y + (-0.0002)x² + (-0.0000)y² + (0.0002)xy

6 Sobre escritura del modelo de la Superficie sobre la nube de puntos

x_grid <- seq(min(dataANTISANA$Solar), max(dataANTISANA$Solar), length.out = 40)
y_grid <- seq(min(dataANTISANA$Precipitation), max(dataANTISANA$Precipitation), length.out = 40)

grid_antisana <- expand.grid(Solar = x_grid, Precipitation = y_grid)

grid_antisana$z_pred <- predict(modelo_superficie_hum, newdata = grid_antisana)

z_matrix <- t(matrix(grid_antisana$z_pred, nrow = 40, ncol = 40))

plot_ly() %>%
  add_markers(data = dataANTISANA, 
              x = ~Solar, y = ~Precipitation, z = ~`Relative Humidity`,
              marker = list(size = 3, color = "#2c3e50", opacity = 0.6),
              name = "Datos Reales") %>%
  add_surface(x = x_grid, y = y_grid, z = z_matrix,
              colorscale = "Viridis",
              opacity = 0.7,
              name = "Superficie Polinómica") %>%
  layout(
    title = "Gráfica 3D: Comparación realidad y modelo de la
              Radiación Solar, Precipitación y la Humedad Relativa ",
    scene = list(
      xaxis = list(title = "Rad. Solar (x)"),
      yaxis = list(title = "Precipitación (y)"),
      zaxis = list(title = "Humedad Rel. (z)")
    )
  )

7 Validación Estadística del Modelo de Superficie mediante Correlación Múltiple

resumen_3d <- summary(modelo_superficie_hum)
r2_multi <- resumen_3d$r.squared

r_multi <- sqrt(r2_multi)

cat("      VALIDACIÓN MATEMÁTICA: DE LA SUPERFICIE\n",
    " Coeficiente de Correlación Múltiple (R): ", round(r_multi, 4), "\n",
    " Relación Porcentual de:           ", round(r_multi * 100, 2), "%\n",
    " Coeficiente de Determinación (R²):       ", round(r2_multi, 4), "\n")
##       VALIDACIÓN MATEMÁTICA: DE LA SUPERFICIE
##   Coeficiente de Correlación Múltiple (R):  0.9348 
##   Relación Porcentual de:            93.48 %
##   Coeficiente de Determinación (R²):        0.8738

7.1 Tabla resumen de Modelo de la Superfice

library(gt)
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
r_val <- r_multi
r2_val <- r2_multi

fuerza_r <- case_when(
  r_val >= 0.7 ~ "Alta",
  r_val >= 0.4 ~ "Moderada",
  TRUE ~ "Baja"
)

fuerza_r2 <- case_when(
  r2_val >= 0.7 ~ "Muy Alta",
  r2_val >= 0.5 ~ "Media-Alta",
  r2_val >= 0.3 ~ "Moderada",
  TRUE ~ "Baja"
)

color_final <- if_else(r2_val >= 0.7, "#27ae60", "#f1c40f")

resumen_3d_df <- data.frame(
  conjetura = "Superficie Polinómica (Grado 2)",
  ecuacion = "z = b0 + b1x + b2y + b3x² + b4y² + b5xy",
  correlacion = sprintf("%.4f (%s)", r_val, fuerza_r),
  determinacion = sprintf("%.4f (%s)", r2_val, fuerza_r2)
)

resumen_3d_df %>%
  gt() %>%
  tab_header(
    title = md("**TABLA RESUMEN: MODELO DE SUPERFICIE 3D**"),
    subtitle = "Interacción entre la Radiación, Precipitación y Humedad Relativca en la estación meteorológica Antisana"
  ) %>%
  cols_label(
    conjetura = "Modelo",
    ecuacion = "Ecuación de Superficie",
    correlacion = "Correlación Múltiple (R)",
    determinacion = html("Determinación (R<sup>2</sup>)")
  ) %>%
  tab_source_note(source_note = "Autor: Grupo 3") %>%
  tab_style(
    style = cell_text(color = color_final, weight = "bold"),
    locations = cells_body(columns = c(correlacion, determinacion))
  ) %>%
  tab_options(
    heading.background.color = "#2c3e50",
    column_labels.font.weight = "bold",
    table.width = pct(100)
  ) %>%
  tab_style(
    style = cell_text(color = "white"),
    locations = cells_title(groups = c("title", "subtitle"))
  ) %>%
  cols_align(align = "center")
TABLA RESUMEN: MODELO DE SUPERFICIE 3D
Interacción entre la Radiación, Precipitación y Humedad Relativca en la estación meteorológica Antisana
Modelo Ecuación de Superficie Correlación Múltiple (R) Determinación (R2)
Superficie Polinómica (Grado 2) z = b0 + b1x + b2y + b3x² + b4y² + b5xy 0.9348 (Alta) 0.8738 (Muy Alta)
Autor: Grupo 3

8 Conclusiones

El análisis tridimensional permitió identificar que la Humedad Relativa en el Antisana no depende de un solo factor, sino de la interacción compleja entre la energía solar y los eventos de lluvia. El modelo de superficie de segundo grado alcanzó una Correlación Múltiple del 93.48%, lo que representa un ajuste estadístico significativamente superior a cualquier modelo lineal o potencial previo realizado por el equipo.

La ecuación de regresión múltiple que describe esta superficie es: \[\hat{z} = 1.016 + (-0.0049)x + (-0.0011)y + (-0.00023)x^2 + (0)y^2 + (0.00022)xy\]

Fenómeno de Supersaturación: Es pertinente señalar que el modelo proyecta valores de humedad relativa superiores al 100% (\(z > 1.0\)) en condiciones de baja radiación solar. Desde la perspectiva de la física atmosférica, este escenario representa un estado de supersaturación. En ecosistemas de alta montaña como el Antisana, el aire puede contener una masa de vapor de agua superior a la de equilibrio debido a la escasez de núcleos de condensación o cambios bruscos de presión, permitiendo que la humedad relativa teórica exceda el límite convencional antes de desencadenar la precipitación.

Ejemplo de Predicción: Utilizando la superficie, podemos estimar el comportamiento climático. Por ejemplo, ante una Radiación Solar de 12 \(MJ/m^2\) y una Precipitación de 10 \(mm\), el modelo estima una Humedad Relativa del 93.89%.