Fuente de datos: https://suia.ambiente.gob.ec/?page_id=467

1. PRESENTACIÓN DEL TEMA .-

Las autorizaciones de uso y aprovechamiento del agua son instrumentos legales mediante los cuales el Estado reconoce el derecho de una persona natural o jurídica a utilizar el recurso hídrico bajo condiciones específicas (volumen, fuente, uso, tiempo).

Las Autorizaciones pueden tener distanta duración temporal en función de la naturaleza de su destino, pueden distinguirse entre:

Estas autorizaciones permiten:

Registro Público del Agua

El Estado al momento de otorgar el permiso para utilizar una fuente hídrica, éste debe ser inscrito en el Registro Público del Agua o “RPA”. Este sistema oficial, consolida la información sobre los derechos de uso y aprovechamiento del agua otorgados por el Ministerio del Ambiente , Agua y Transición Ecológica, que incluye datos técnicos, jurídicos y administrativos de las autorizaciones, concesiones, permisos y licencias hídricas.

Relevancia del análisis

Un análisis técnico de resoluciones del RPA permite:

2. FORMULACIÓN DEL PROBLEMA.-

2.1. ¿Cómo ha variado el otorgamiento de autorizaciones del uso y aprovechamiento del agua en Ecuador a lo largo del tiempo?

2.2. ¿Cuál ha sido el volumen autorizado a nivel provincial y por demarcación hidrográfica?

3. RESOLUCIÓN DEL PROBLEMA.-

Para resolver el problema planteado recurrimos al proceso de análisis de datos que incluye: Importar, Ordenar, Transformar y Visualizar.

3.1. Importación de datos y análisis de su estructura

El archivo que utilizamos fue el descargado del Registro Público del Agua con fecha 26 de junio del 2025. Este archivo vino en formato csv con separador especial de tipo |.

Paso 1: Cargamos librerías tidyverse y data.table.

#Carga de librerías
library(tidyverse) ## Permite manipular información alfanumérica.
library(data.table) ## Permite importar un base de datos de tipo csv con diferentes separadores

Paso 2: Importamos el dataset.

#Importamos el archivo y visualizamos los primeros registros del dataset.
ruaa_total <- fread("Base/ruaa_total.csv")

El resultado de la importación nos muestra en la ventana de variables una tabla de nombre ruaa_total con 163.389 registros y 58 variables.

Paso 3: Revisamos la estructura del dataset para elegir las columnas con las cuales vamos a continuar con el análisis

str(ruaa_total) ##Esta función nos arroja la estructura del dataset
## Classes 'data.table' and 'data.frame':   163389 obs. of  58 variables:
##  $ ruaa_id                    : int  367682 367681 367680 367679 367674 367674 367674 367670 367655 367655 ...
##  $ codigo_unico               : chr  "GU-GU-005064-371247" "GU-GU-000062-371259" "GU-GU-005061-371248" "GU-GU-005063-371249" ...
##  $ codigo_proceso             : chr  "GU-GU-005064-2023" "GU-GU-000062-2014" "GU-GU-005061-2023" "GU-GU-005063-2023" ...
##  $ nombre_exdh_dz             : chr  "GUAYAS" "GUAYAS" "GUAYAS" "GUAYAS" ...
##  $ nombre_excac_ot            : chr  "" "" "" "" ...
##  $ letra_proceso              : chr  "MD" "AA" "MD" "MD" ...
##  $ anio_tramite               : int  2023 2014 2023 2023 2015 2015 2015 2024 2017 2017 ...
##  $ fecha_inicio_autorizacion  : IDate, format: "2024-02-05" "2017-12-14" ...
##  $ fecha_inscripcion          : IDate, format: "2025-06-24" "2025-06-24" ...
##  $ numero_proceso             : chr  "5064" "062" "5061" "5063" ...
##  $ sub_proceso                : chr  "" "" "" "" ...
##  $ cedula_ruc                 : chr  "0992481293001" "0992482265001" "0992481293001" "0992481293001" ...
##  $ nom_usuario_autorizado     : chr  "TALUM S.A." "ISCACORP S.A." "TALUM S.A." "TALUM S.A." ...
##  $ direccion_usu_autorizado   : chr  "CALLE: PEDRO CARBO NUMERO: 553 INTERSECCION: VELEZ EDIFICIO: EDIF ZA SAN FRANCISCO PISO: 8 OFICINA: 1 REFERENCI"| __truncated__ "BARRIO: PUERTO SANTA ANA CALLE: AVDA P M GILBERT NUMERO: SN EDIFICIO: THE POINT PISO: 16 OFICINA: 1613 REFERENC"| __truncated__ "CALLE: PEDRO CARBO NUMERO: 553 INTERSECCION: VELEZ EDIFICIO: EDIF ZA SAN FRANCISCO PISO: 8 OFICINA: 1 REFERENCI"| __truncated__ "CALLE: PEDRO CARBO NUMERO: 553 INTERSECCION: VELEZ EDIFICIO: EDIF ZA SAN FRANCISCO PISO: 8 OFICINA: 1 REFERENCI"| __truncated__ ...
##  $ telefono_usu_autorizado    : chr  "" "" "" "" ...
##  $ email_usu_autorizado       : chr  "ab.jcquishpep@yahoo.com" "rottati@cedenocabanilla.com" "ab.jcquishpep@yahoo.com" "ab.jcquishpep@yahoo.com" ...
##  $ representante              : chr  "ECHEVERRIA YCAZA RICARDO GABRIEL" "CEDENO OTTATI JUAN DIEGO" "ECHEVERRIA YCAZA RICARDO GABRIEL" "ECHEVERRIA YCAZA RICARDO GABRIEL" ...
##  $ grupo_usu_autorizado       : chr  "EMPRESAS O COMPAÑÍAS (EXCEPTO PETROLERAS, ELÉCTRICO Y MINERO)" "EMPRESAS O COMPAÑÍAS (EXCEPTO PETROLERAS, ELÉCTRICO Y MINERO)" "EMPRESAS O COMPAÑÍAS (EXCEPTO PETROLERAS, ELÉCTRICO Y MINERO)" "EMPRESAS O COMPAÑÍAS (EXCEPTO PETROLERAS, ELÉCTRICO Y MINERO)" ...
##  $ tipo_usu_autorizado        : chr  "PARTICULAR" "PARTICULAR" "PARTICULAR" "PARTICULAR" ...
##  $ proceso_anterior           : chr  "" "" "" "" ...
##  $ coordenada_x_fuente        : num  623770 599886 623771 624965 573351 ...
##  $ coordenada_y_fuente        : num  9771484 9748351 9771476 9767530 9732655 ...
##  $ cota_fuente                : chr  "5" "31" "5" "5" ...
##  $ provincia_fuente           : chr  "GUAYAS" "GUAYAS" "GUAYAS" "GUAYAS" ...
##  $ canton_fuente              : chr  "SAMBORONDON" "GUAYAQUIL" "SAMBORONDON" "SAMBORONDON" ...
##  $ parroquia_fuente           : chr  "SAMBORONDON CABECERA CANTONAL" "GUAYAQUIL CABECERA CANTONAL" "SAMBORONDON CABECERA CANTONAL" "SAMBORONDON CABECERA CANTONAL" ...
##  $ sitio_captacion_fuenet     : chr  "SECTOR PLAZA LAGOS" "SISTEMA TRASVASE DAULE  SANTA ELENA" "SECTOR PLAZA LAGOS" "ZONA DE PLAZA LAGOS" ...
##  $ region_fuente              : chr  "COSTA" "COSTA" "COSTA" "COSTA" ...
##  $ tipo_parroquia_fuente      : chr  "CABECERA CANTONAL" "CABECERA CANTONAL" "CABECERA CANTONAL" "CABECERA CANTONAL" ...
##  $ sistema_fuente             : chr  "GUAYAS" "ZAPOTAL" "GUAYAS" "GUAYAS" ...
##  $ cuenca_fuente              : chr  "Río Guayas" "Río Daular" "Río Guayas" "Río Guayas" ...
##  $ sub_cuenca_fuente          : chr  "Río Daule" "Río Daular" "Río Daule" "Río Daule" ...
##  $ microcuenca_fuente         : chr  "5207005 Drenajes Menores" "5001008 Drenajes Menores" "5207005 Drenajes Menores" "5207005 Drenajes Menores" ...
##  $ pfafstetter                : chr  "14213" "15112" "14213" "14213" ...
##  $ nombre_fuente              : chr  "RIO DAULE" "RAMAL 5A  5B TOMA 5C" "RIO DAULE" "RIO DAULE" ...
##  $ tipo_fuente                : chr  "RIO" "RIO" "RIO" "RIO" ...
##  $ origen_fuente              : chr  "SUPERFICIALES CORRIENTES" "SUPERFICIALES CORRIENTES" "SUPERFICIALES CORRIENTES" "SUPERFICIALES CORRIENTES" ...
##  $ nom_uso_aprovechamiento    : chr  "OTRAS ACTIVIDADES PRODUCTIVAS" "RIEGO PARA PRODUCCION AGROPECUARIA Y AGRO INDUSTRIA DE EXPORTACION" "OTRAS ACTIVIDADES PRODUCTIVAS" "OTRAS ACTIVIDADES PRODUCTIVAS" ...
##  $ nom_sub_uso_aprovechamiento: chr  "OTROS" "CULTIVOS PERENNES" "OTROS" "OTROS" ...
##  $ dosis_cons_humano          : chr  "0.0000" "0.0000" "0.0000" "0.0000" ...
##  $ poblacion_actual           : int  0 0 0 0 0 0 0 0 1 0 ...
##  $ poblacion_futura           : int  0 0 0 0 0 0 0 0 1 0 ...
##  $ dosis_riego                : num  0 0.37 0 0 0.66 0.66 0.66 1 0 0 ...
##  $ numero_beneficiarios       : int  0 1 0 0 1 1 1 1107 0 0 ...
##  $ area_ha_regada             : num  0 13.8 0 0 30 ...
##  $ tipo_riego                 : chr  "" "GOTEO" "" "" ...
##  $ anio_proyeccion            : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ numero_animales            : chr  "0" "0" "0" "0" ...
##  $ codigo_area_minera         : chr  "" "" "" "" ...
##  $ nom_central_hidroelectrica : chr  "" "" "" "" ...
##  $ potencia_generada_kw       : chr  "0" "0" "0" "0" ...
##  $ potencia_instalada_kw      : chr  "0" "0" "0" "0" ...
##  $ caudal_autorizado_ls       : num  21.11 5 27.97 1.07 6.62 ...
##  $ volumen_agua_m3_anio       : num  665691 157680 882204 33892 625990 ...
##  $ tecnico_analista           : chr  "NEIRA MORA DANIELA NARCISA" "HIDALGO REINA LUIS IGNACIO" "NEIRA MORA DANIELA NARCISA" "NEIRA MORA DANIELA NARCISA" ...
##  $ fecha_obligacion_pago      : IDate, format: "2014-01-02" "2017-12-14" ...
##  $ estado_tramite             : chr  "CADUCADO" "VIGENTE" "CADUCADO" "CADUCADO" ...
##  $ observaciones              : chr  "5064-2023: LAS RESOLUCIONES DE MODIFICACIÓN DICTADAS, DEFINEN EL APROVECHAMIENTO, PERO NO MODIFICAN EL PLAZO, N"| __truncated__ "SE CALCULÓ EL VOLUMEN ANUAL, CON EL CAUDAL PERMANENTE, EN CONSIDERACIÓN DE NO ESTAR ESTABLECIDO EN LA RESOLUCIÓN" "5061-2023: LAS RESOLUCIONES DE MODIFICACIÓN DICTADAS, DEFINEN EL APROVECHAMIENTO, PERO NO MODIFICAN EL PLAZO, N"| __truncated__ "LAS RESOLUCIONES DE MODIFICACIÓN DICTADAS, DEFINEN EL APROVECHAMIENTO, PERO NO MODIFICAN EL PLAZO, NI LA VARIAC"| __truncated__ ...
##  - attr(*, ".internal.selfref")=<externalptr>

3.2. Transformación de datos

Revisada la estructura, segregamos la base original con las variables que vamos a utilizar en el análisis usando la librería de tidiverse().

base_rpa <- ruaa_total |> 
  select(ruaa_id, nombre_exdh_dz, fecha_inicio_autorizacion, tipo_usu_autorizado, provincia_fuente, pfafstetter, tipo_fuente, nom_uso_aprovechamiento, caudal_autorizado_ls, volumen_agua_m3_anio, estado_tramite)

Con la selección realizada creamos una nueva base con el nombre base_rpa que contiene la misma cantidad de registros pero con 11 variables.

Se aplicó la función summary() que realiza un resumen estadístico de las variables para entender valores mínimos, medios y máximos del volumen de agua consumo. Asi como también identificar valores NA que deben ser removidos del estudio.

summary(base_rpa)
##     ruaa_id       nombre_exdh_dz     fecha_inicio_autorizacion
##  Min.   :    48   Length:163389      Min.   :0217-02-21       
##  1st Qu.:131027   Class :character   1st Qu.:1996-02-01       
##  Median :186576   Mode  :character   Median :2008-08-25       
##  Mean   :207622                      Mean   :2005-04-29       
##  3rd Qu.:326318                      3rd Qu.:2016-03-01       
##  Max.   :367682                      Max.   :2222-07-13       
##                                      NA's   :511              
##  tipo_usu_autorizado provincia_fuente   pfafstetter        tipo_fuente       
##  Length:163389       Length:163389      Length:163389      Length:163389     
##  Class :character    Class :character   Class :character   Class :character  
##  Mode  :character    Mode  :character   Mode  :character   Mode  :character  
##                                                                              
##                                                                              
##                                                                              
##                                                                              
##  nom_uso_aprovechamiento caudal_autorizado_ls volumen_agua_m3_anio
##  Length:163389           Min.   :    -4.00    Min.   :    -67024  
##  Class :character        1st Qu.:     0.03    1st Qu.:         0  
##  Mode  :character        Median :     0.23    Median :         0  
##                          Mean   :    48.04    Mean   :    741821  
##                          3rd Qu.:     1.50    3rd Qu.:         0  
##                          Max.   :430000.00    Max.   :8949853728  
##                                                                   
##  estado_tramite    
##  Length:163389     
##  Class :character  
##  Mode  :character  
##                    
##                    
##                    
## 

El resumen nos muestra que dentro de la variable fecha_inicio_autorizacion tiene 511 valores NA que deben ser removidos y años mal ingresados. Además, vemos que en caudal tenemos valores 0 o negativos y en volumen no tenemos asignados datos.

#Observamos variables y registros con mayor detalle para identificar anomalias en el dataset.
view(base_rpa)

Como siguiente paso, vamos aplicar ciertas transformaciones para pulir el dataset conforme cada objetivo planteado y poder análizar Y visualizar el resultado.

3.3. Análisis y Visualizacion de resultados.

¿Evolución del número de Autorizaciones por año y tipo de uso?

Paso 1: Depuramos el dataset haciendo ciertas transformaciones, reagrupamos y guardamos el resultado en un nuevo objeto.

#Convertimos la columna de fecha en formato fecha y extraemos el año que necesitamos para el analisis
base_grupos <- base_rpa |> mutate(fecha_inicio_autorizacion = ymd(fecha_inicio_autorizacion),
                    anio = year(fecha_inicio_autorizacion)) |> 
  #Excluimos los valores que están mal ingresados y valores nulos de la columna año creada.
  filter(!anio %in% c(NA, 1900, seq(from = 2026, to = 2500))) |> 
  #Excluimos los valores nulos dentro de uso y aprovechamiento y valores mal ingresados.
  filter(!nom_uso_aprovechamiento %in% c("", "APROVECHAMIENTO", "N/A")) |> 
  #Reclasificamos los aprovechamientos productivos 
  mutate(uso_aprovechamiento = case_when(nom_uso_aprovechamiento %in% c("RIEGO PARA PRODUCCION AGROPECUARIA Y AGRO INDUSTRIA DE EXPORTACION","CULTIVOS VARIOS") ~ "RIEGO PRODUCTIVO",
                                          nom_uso_aprovechamiento %in% c("MINERIA", "PETROLERO", "ACTIVIDAD HIDROCARBURIFERA", "INDUSTRIAL") ~ "MINERIA Y PETROLEO",
                                          nom_uso_aprovechamiento %in% c("TERMAL", "BALNEOLOGIA") ~ "TURISTICO",
                                          nom_uso_aprovechamiento == "GENERACION DE HIDROELECTRICIDAD Y ENERGIA HIDROTERMICA" ~ "HIDROELECTRICIDAD",
                                          nom_uso_aprovechamiento == "RIEGO" ~ "RIEGO SOBERANIA ALIMENTARIA",
                                          .default = nom_uso_aprovechamiento
                                          )) |>
  #Agrupamos el resultado por año y aprovechamiento productivo
  group_by(anio, uso_aprovechamiento) |> 
  #Calculamos el total por año y aprovechamiento.
  summarise(conteo = n())

Luego de la depuración y transformación realizada se obtuvieron un total de 162.801,00 registros de Autorizaciones de Uso y Aprovechamiento del Agua cruda de un total 163.389,00. Eliminándose registros erróneos que sumaron 588 que representan un 0,36% del total.

Una vez hechas las transformaciones y reagrupaciones con tidyverse, procedemos a graficar utilizando un Gráfico de líneas múltiples para evaluar cómo cambia cada tipo de uso a lo largo del tiempo.

Paso 2: Graficamos el resultado en función del tiempo.

Primero debemos preparar las etiquetas que vamos a usar para representar el total de autorizaciones por uso en todos los años.

# Paso 1: total de autorizaciones por uso
totales_por_uso <- base_grupos |> 
  group_by(uso_aprovechamiento) |> 
  summarise(total = sum(conteo), .groups = "drop")

# Paso 2: obtener el punto del último año para cada uso adjuntándose el total de todos los usos
etiquetas_final <- base_grupos |> 
  group_by(uso_aprovechamiento) |> 
  filter(anio == max(anio)) |> 
  ungroup() |> 
  left_join(totales_por_uso, by = "uso_aprovechamiento") ## nos unidos al objeto que tiene el total

Generado el objeto etiquetas_final que contiene todas las autorizaciones por uso en todos los años, generamos el gráfico final y con geom_text graficamos las etiquetas.

base_grupos |>
  ggplot(aes(x = anio, y = uso_aprovechamiento, color = uso_aprovechamiento)) +
  geom_line(size = 1.2) +
  labs(title = "Evolucion anual de autorizaciones",
       caption = "Fuente: Registro Publico del Agua",
       x = "Anio", y = "Numero de autorizaciones") +
   geom_text(data = etiquetas_final,
          aes(label = total),  # ahora sí tiene x, y
          vjust = -0.5,
          hjust = 1,
          fontface = "bold",
          size = 3.5,
          show.legend = FALSE) +
  theme_bw() +
  theme(
    legend.position = "none",
    plot.title = element_text(hjust = 0.5, size = 16, face = "bold"),
    plot.subtitle = element_text(hjust = 0.5, size = 13),
    axis.title.x = element_text(face = "bold"),
    axis.title.y = element_text(face = "bold"))

Como observamos en la imagen,muchos usos han sido constantes en el tiempo. El uso más antiguo ha sido Riego Soberanía Alimentaria que inicio alrededor de los años 1970. El uso más reciente fue Acuacultura Soberania Alimentaria que inició entre el 2005 al 2007.

Si revisamos las cantidades, vemos que Riego Soberanía Alimentaria tiene la mayor cantidad de Autorizaciones con 72.180. Luego le sique Consumo Humano con 45.090, Abrevadero Soberanía Alimentaria con 25.741, siendo Abrevadero de Producción la que menos autorizaciones se han emitido.

¿Proporción de autorizaciones vigentes, no vigentes y otras?

En la base de datos descargada, tenemos el campo que dice estado_tramite, que tiene diferentes categorías como: vigentes, caducadas, canceladas, etc. Para simplificar el análisis, vamos a crear una nueva columna y categorizar entre vigentes la que indique como tal, no vigentes la que indica cancelado y caducado y otras, cualquier otro estado.

Paso 1: Guardamos la base depurada de la sección 3.3.1. sin agrupar para seguir trabajando con la misma.

base <- base_rpa |> mutate(fecha_inicio_autorizacion = ymd(fecha_inicio_autorizacion),
                    anio = year(fecha_inicio_autorizacion)) |> 
  #Excluimos los valores que están mal ingresados y valores nulos de la columna anio creada.
  filter(!anio %in% c(NA, 1900, seq(from = 2026, to = 2500))) |> 
  #Excluimos los valores nulos dentro de uso y aprovechamiento y valores mal ingresados.
  filter(!nom_uso_aprovechamiento %in% c("", "APROVECHAMIENTO", "N/A")) |> 
  #Reclasificamos los aprovechamientos productivos 
  mutate(uso_aprovechamiento = case_when(nom_uso_aprovechamiento %in% c("RIEGO PARA PRODUCCION AGROPECUARIA Y AGRO INDUSTRIA DE EXPORTACION","CULTIVOS VARIOS") ~ "RIEGO PRODUCTIVO",
                                          nom_uso_aprovechamiento %in% c("MINERIA", "PETROLERO", "ACTIVIDAD HIDROCARBURIFERA", "INDUSTRIAL") ~ "MINERIA Y PETROLEO",
                                          nom_uso_aprovechamiento %in% c("TERMAL", "BALNEOLOGIA") ~ "TURISTICO",
                                          nom_uso_aprovechamiento == "GENERACION DE HIDROELECTRICIDAD Y ENERGIA HIDROTERMICA" ~ "HIDROELECTRICIDAD",
                                          nom_uso_aprovechamiento == "RIEGO" ~ "RIEGO SOBERANIA ALIMENTARIA",
                                          .default = nom_uso_aprovechamiento
                                          ))

Paso 2: Realizamos las transformaciones necesarias para obtener la proporción de Autorizaciones vigentes, no vigentes y otras y su gráfico de barra.

base_categoria <- base |> 
  mutate(categoria = case_when(estado_tramite == "VIGENTE" ~ "VIGENTE",
                               estado_tramite %in% c("CADUCADO", "CANCELADO") ~ "NO VIGENTE",
                               .default = "OTRAS")) |> 
  count(categoria) |> 
  mutate(proporcion = round(n/sum(n) *100, digits = 2))

El resultado obtenido lo representamos en un grafico de barra sencillo ya que cumple la función determinada.

ggplot(data = base_categoria, 
       mapping = aes(x = categoria, y = proporcion)) +
  geom_col(aes(fill = proporcion),
           colour = "black") +
  labs (title = "Proporcion de Autorizaciones",
        subtitle = "Por estado de vigencia",
        caption = "Fuente: Registro Publico del Agua",
        x = "Cantidad de Autorizaciones",
        y = "Proporcion") +
  geom_text (aes(label = n),
             family = "arial",
             fontface = "bold",
             position = position_nudge(x=0),
             vjust = -0.3) +
  theme_bw() +
  theme(
    plot.title = element_text(hjust = 0.5, size = 16, face = "bold"),
    plot.subtitle = element_text(hjust = 0.5, size = 13),
    axis.title.x = element_text(face = "bold"),
    axis.title.y = element_text(face = "bold"))

El resultado muestra que el 63,38% de registros en el RPA se encuentran con estado Vigentes, otro 35,37% se encuentra con estado No Vigente, mientras que otros, ocupan el 1,25%.

¿Qué provincias concentran más autorizaciones vigentes?

Lo que hacemos es crear un objeto que contenta las proporciones de las provincias que tienen autorizaciones con estado vigentes para luego graficar el resultado.

base_categoria_vigentes <- base |> 
  mutate(categoria = case_when(estado_tramite == "VIGENTE" ~ "VIGENTE",
                               estado_tramite %in% c("CADUCADO", "CANCELADO") ~ "NO VIGENTE",
                               .default = "OTRAS")) |> 
  filter(categoria == "VIGENTE") |> 
  group_by(provincia_fuente) |> 
  summarise(conteo = n()) |> 
  mutate(proporcion = round(conteo/sum(conteo) *100, digits = 2))

El objeto creado lo graficamos utilizando una gráfica de barra invertida que muestra de menor a mayor la proporción de autorizaciones por provincia de la siguiente manera:

base_categoria_vigentes |> 
  ggplot(aes(x = reorder(provincia_fuente, proporcion), y = conteo)) +#Permita organizar de menor a mayor proporcion
  geom_col(fill = "#00abff") +
  geom_text(aes(label = proporcion), hjust = 0, size = 2, fontface = "bold") +
  coord_flip() +
  labs(title = "Autorizaciones de uso del agua VIGENTES",
       subtitle = "Agregacion por provincia",
       caption = "Fuente: Registro Publico del Agua",
       x = "Provincia",
       y = "Número de autorizaciones") +
  theme_bw() +
  theme(
    plot.title = element_text(hjust = 0.5, size = 16, face = "bold"),
    plot.subtitle = element_text(hjust = 0.5, size = 13),
    axis.title.x = element_text(face = "bold"),
    axis.title.y = element_text(face = "bold"))

Como podemos observar, la provincia de Loja es la que equipara la mayor cantidad de Autorizaciones vigentes con el 17,39%, le sigue Azuay con 14,06% y Bolívar con 10,36%. Este gráfico también nos muestra que las provincias de la Sierra es donde se concentra la mayor cantidad de autorizaciones vigentes.

3.3.2. ¿Cuál ha sido el volumen autorizado a nivel de provincia y por demarcación hidrográfica?

Para completar esta sección, seguimos trabajando con el objeto base que contiene los 162801 registros. Existe el campo volumen_agua_m3_año que podemos usar. Sin embargo, cuando aplicamos la función summary(), nos dimos cuenta que existen valores negativos. Por ello, vamos a realizar las transformaciones necesarias para que todos estos valores mal ingresados dejarlos en 0 y así determinar el volumen por provincia y demarcación hidrográfica en hectómetros cúbicos para que el resultado sea más entendible.

Al final vamos a realizar un gráfico que permita visualizar tanto las provincias como las demarcaciones y los volúmenes en cada caso.

Volumen autorizado por provincia

Primero, ajustamos el volumen por provincia de la siguiente forma:

volumen_prov <-  base |> 
  mutate(volumen = case_when(volumen_agua_m3_anio < 0 ~ "0"),
                             .default = volumen_agua_m3_anio) |>
  group_by(grupo = provincia_fuente) |> #Creamos una columna en común para unirlo.
  summarise(hm3 = round(sum(volumen_agua_m3_anio)/1000000, digits = 2)) |> 
  mutate(tipo = "Provincia") #Permite diferenciar la ubicación.

Volumen autorizado por demarcación hidrográfica

Segundo, ajustamos el volumen por demarcación hidrográfica de la siguiente forma:

volumen_demar <-  base |> 
  mutate(volumen = case_when(volumen_agua_m3_anio < 0 ~ "0"),
                             .default = volumen_agua_m3_anio) |>
  group_by(grupo = nombre_exdh_dz) |> #Creamos una columna en común para unirlo.
  summarise(hm3 = round(sum(volumen_agua_m3_anio)/1000000, digits = 2)) |> 
  mutate(tipo = "Demarcacion") #Permite diferenciar la ubicación.

Tercero, unimos los dos datasets generados de la siguiente forma:

volumen_total <- bind_rows(volumen_prov, volumen_demar)

Verificamos el resultado obtenido para ratificar correctamente la unión.

view(volumen_total)

Ahora si, graficamos el resultado aplicando facet_wrap.

ggplot(volumen_total, aes(x = reorder(grupo, hm3), y = hm3, fill = grupo)) +
  geom_col(color = "black", alpha = 0.8, show.legend = FALSE) +
  coord_flip() +
  facet_wrap(~tipo, scales = "free_y") +
  scale_y_continuous(
    breaks = seq(0, max(volumen_total$hm3, na.rm = TRUE), by = 10000)) +
  labs(
    title = "Volumen de agua autorizado",
    subtitle = "Hectómetros cúbicos por provincia y demarcación hidrográfica",
    caption = "Registro Publico del Agua",
    x = "Ubicación",
    y = "Volumen (Hm³)") +
  theme_bw() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    plot.title = element_text(hjust = 0.5, size = 13, face = "bold"),
    plot.subtitle = element_text(hjust = 0.5, size = 10),
    axis.title.x = element_text(face = "bold"),
    axis.title.y = element_text(face = "bold"))

4. CONCLUSIONES DEL ANÁLISIS

Una vez utilizada las diferentes herramientas que provee el paquete Tidyverse para manipulación, transformación y visualización de datos, podemos concluir en lo siguiente: