Carga de datos

Conteo de registros

La reducción de número de renglones es porque el dataset final debe contener los renglones con valores comunes en las columnas:

Y dado que CONAGUA, que es el dataset más precario, tiene el siguiente número de registros por año:

Entonces debido a este “mínimo común número de registros”, el num total para analizar se verá reducido drásticamente, eliminando 2020 y 2021, que si están presentes en CHIRPS preliminar y definitivo.

Comparación por año

Esta es la comparación de las 3 fuentes CHIRPS preliminar, CHIRPS definitivo y CONAGUA para los años 2015 a 2019.

El punto azul representa la media.

El punto rojo representa la desviación estándar.

Vemos que si bien las medias de los 3 a lo largo de los años coincide, la desviación si es diferente, lo que nos dice que aunque en tendencia y distribución se parezcan, el error será no despreciable.

Igual un problema para establecer una relación seran los valores extremísimos de CONAGUA, lo que hace que, sin importar el año, las distribuciones de esta variable estén sesgadas a la derecha y tengan colas larguísimas.

Confirmaremos lo anterior con la comparación por localidad

Comparación por localidad

Vemos el mismo comportamiento entre media y desviación estándar, y la presencia de valores extremos en CONAGUA, que nos confirma que, sin importar ahora la estación, seguiremos teniendo distribuciones sesgadas a la derecha con colas larguísimas.

Ajuste con modelo lineal

Primero exploremos las relaciones lineales de CHIRPS prelim y definitivo VS CONAGUA

Veremos si con regresiones lineales podemos confirmar nuestra advertencia.

## 
## Call:
## lm(formula = precip_conagua$avg_precip ~ precip_chirps_prelim$avg_precip + 
##     precip_chirps_definit$avg_precip)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -67.922  -0.664  -0.664  -0.664 191.834 
## 
## Coefficients:
##                                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                       0.66413    0.07206   9.217  < 2e-16 ***
## precip_chirps_prelim$avg_precip   0.25699    0.04237   6.066 1.34e-09 ***
## precip_chirps_definit$avg_precip  0.44409    0.03819  11.629  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.197 on 14289 degrees of freedom
## Multiple R-squared:  0.133,  Adjusted R-squared:  0.1329 
## F-statistic:  1096 on 2 and 14289 DF,  p-value: < 2.2e-16

Aquí vemos que a pesar que las 2 variables predictoras CHIRPS preliminar y CHIRPS definitivo son altamente significativas para el modelo, con probabilidad de que sean producto del azar de 0%, solo pueden explicar el 13.2900137% de varianza, lo cual es poco.

Igual la columna Estimate debería contar con valores > 1 si la relación fuera significativa.

Finalmente veremos las gráficas de los residuales de la regresión para diagnosticar la efectividad de la correlación:

La de arriba a la izquierda exhibe heteroscedasticidad, que significa que las diferencias entre CHIRPS y CONAGUA se vuelven más grandes a medida que CONAGUA (la variable objetivo) se vuelve más grande.

Igual la gráfica Normal Q-Q indica que tanto los predictores de CHIRPS como la variable objetivo de CONAGUA tienen distribuciones con colas larguísimas.

Y es imposible realizar las transformaciones usuales en nuestra variable objetivo por la presencia de numerosos 0s.

Eliminación de 0s

Vamos a reintentar ajustar un modelo lineal eliminando los casos donde CHIRPS preliminar, definitivo y CONAGUA son 0.

Primero, debemos notar que pasamos de +42,000 observaciones a apenas arriba de 2,500.

Pero en las gráficas seguimos viendo una distribución con cola larga y con bastantes eventos extremos, tanto por año como por estación:

No solo eso, ahora las medias y desviaciones estándar se desvían más entre estación y entre años, lo cual seguramente empeorará el ajuste lineal que intentemos hacer.

Veamos las relaciones lineales

## 
## Call:
## lm(formula = precip_conagua_sin0$avg_precip ~ precip_chirps_prelim_sin0$avg_precip + 
##     precip_chirps_definit_sin0$avg_precip)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -52.957 -12.751  -7.623   5.090 180.996 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            10.2206     1.2426   8.225 6.92e-16 ***
## precip_chirps_prelim_sin0$avg_precip    0.2356     0.2192   1.074  0.28294    
## precip_chirps_definit_sin0$avg_precip   0.5077     0.1899   2.673  0.00765 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 23.83 on 884 degrees of freedom
## Multiple R-squared:  0.08193,    Adjusted R-squared:  0.07985 
## F-statistic: 39.44 on 2 and 884 DF,  p-value: < 2.2e-16

Como podemos ver, el fit lineal es peor en este nuevo modelo sin 0s, que en el modelo original que consideraba todos los valores debido a lo siguiente:

  1. La significancia de los predictores bajó
  2. Aunque el p-value se mantiene bajo, el Estimate de los 3 permanece bajo
  3. Los residuales parecen no seguir una distribución normal.

Queda una cosa por intentar: la transformación Box Cox para convertir distribuciones sesgadas a la derecha.

Transformación de variable objetivo con Box-Cox

Transformamos variable objetivo con Box Cox:

## 
## Call:
## lm(formula = boxcox_data_conagua ~ precip_chirps_prelim_sin0$avg_precip + 
##     precip_chirps_definit_sin0$avg_precip)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.2334 -1.0110  0.0829  0.9948  3.1287 
## 
## Coefficients:
##                                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                            1.73675    0.06755  25.711   <2e-16 ***
## precip_chirps_prelim_sin0$avg_precip   0.01200    0.01192   1.007   0.3141    
## precip_chirps_definit_sin0$avg_precip  0.02395    0.01032   2.320   0.0206 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.296 on 884 degrees of freedom
## Multiple R-squared:  0.06563,    Adjusted R-squared:  0.06351 
## F-statistic: 31.05 on 2 and 884 DF,  p-value: 9.326e-14

Vemos que el ajuste lineal no mejora ni con la transformación. La precipitación de CHIRPS preliminar se convierte en una variable nada significativa para la relación con CONAGUA, mientras que CHIRPS definitivo pierde toda su significancia.

No solo eso, el Estimate del intercept bajó de 10 a 1.7.

Ahora veamos los plots de diagnóstico

Como podemos ver, aunque hemos tratado la parte de heteroscedasticidad que mostraba un patrón en 2 direcciones del modelo no corregido, seguimos con puntos en el extremo izquierdo, y aunque se conforman en una nube sin tendencia, esto nos indica que las observaciones extremas siguen pesando mucho y torciendo el ajuste lineal al punto de no sernos útil.

Conclusión

Dado que CHIRPS y CONAGUA se siguen en tendencia, pero no en magnitud, y que no hay transformaciones adecuadas para lidiar con datos con forma como las de CONAGUA, con muchos 0s y pocos eventos muy extremos, no podemos recomendar que se relacionen para la operatividad del seguro.