Este documento analiza en detalle los indicadores del ISTAC ya elegidos a partir de la tabla que genera ISTAC_TableDatasetGeneration.Rmd (ISTAC_datasets.xlsx), y comprueba si cumplen los requisitos para ser el dataset principal del proyecto personal de AEDV.

A diferencia del INE o de Eurostat, aquí no se analiza un único dataset sino un conjunto de indicadores que se descargan y se combinan en una sola tabla: cada indicador es un atributo que se sigue en el tiempo para cada región de Canarias.

Para analizar otros indicadores basta con cambiar sus códigos en el chunk de abajo y volver a compilar.

# CÓDIGOS DE LOS INDICADORES QUE VAMOS A ANALIZAR
IDS <- c("MATRICULA_VEHICULOS", "MATRICULA_VEHICULOS_TURISMOS", "PARQUE_VEHICULOS",
          "PARQUE_VEHICULOS_HABITANTE", "PARQUE_VEHICULOS_TURISMOS", "PARQUE_VEHICULOS_TURISMOS_HABITANTE")

# nombre base de los ficheros que se guardan en disco
filename <- "ISTAC_Selected"

Nota: la columna description de los metadatos se genera mediante consulta a IA a partir de fuentes oficiales del ISTAC. No proviene directamente de la API del ISTAC. Si se cambian los indicadores seleccionados habrá que rehacer la consulta a la IA pidiendo que se adapten las descripciones a los nuevos indicadores:

# DESCRIPCIONES GENERADAS POR IA para los indicadores de vehículos (el ejemplo
# por defecto es TURISTAS_*, que no tiene descripción propia todavía: sale
# "BUSCAR DESCRIPCIÓN" más abajo hasta que se redacte)
desc_ia <- tibble(
  id = c(
    "MATRICULA_VEHICULOS",
    "MATRICULA_VEHICULOS_TURISMOS",
    "PARQUE_VEHICULOS",
    "PARQUE_VEHICULOS_HABITANTE",
    "PARQUE_VEHICULOS_TURISMOS",
    "PARQUE_VEHICULOS_TURISMOS_HABITANTE"
  ),
  description = c(
    "Número de vehículos ordinarios nuevos matriculados en circulación en cada municipio e isla de Canarias en un período. Excluye vehículos usados y rematriculaciones.",
    "Número de turismos (automóviles para transporte de pasajeros) nuevos matriculados en circulación. Desglose del indicador MATRICULA_VEHICULOS restringido a vehículos de tipo turismo.",
    "Número total de vehículos en circulación en un municipio o isla de Canarias en un momento dado. Cifra acumulada de todos los vehículos actualmente registrados en uso.",
    "Número de vehículos en circulación por cada 1.000 habitantes. Mide la intensidad de motorización y permite comparar el nivel de motorización entre territorios.",
    "Número total de turismos en circulación en un municipio o isla de Canarias. Desglose del parque total de vehículos restringido a automóviles de pasajeros.",
    "Número de turismos en circulación por cada 1.000 habitantes. Permite analizar los patrones de motorización por tipo de vehículo y comparar entre territorios."
  )
)

1 Descarga, limpieza y guardado de los datos

ISTAC_datasets <- read.xlsx("ISTAC_datasets.xlsx") |>
  as_tibble()

istac.regions <- read_csv("ISTAC_AREAS_GEOGRAFICAS.csv", show_col_types = FALSE) |>
  as_tibble()

Descargamos cada indicador y los combinamos en una única tabla, añadiendo la columna INDICATOR para saber de cuál procede cada fila.

data <- tibble()
for(id in IDS){
  tb <- istac.data.download(id)
  if(is.null(tb)) next

  tb <- tb |>
    as_tibble() |>
    rename(VALUE = OBSERVACIONES) |>
    mutate(
      INDICATOR = id,
      VALUE     = as.numeric(VALUE)
    ) |>
    # MEASURE distingue el dato absoluto de variaciones/tasas derivadas del
    # mismo indicador (p. ej. INTERPERIOD_PERCENTAGE_RATE): nos quedamos solo
    # con el valor absoluto, que es la magnitud propia del indicador
    filter(!is.na(VALUE), MEASURE == "ABSOLUTE") |>
    select(-MEASURE) |>
    left_join(istac.regions, by = "GEOGRAPHICAL") |>
    select(GEOGRAPHICAL, NAME, INDICATOR, TIME, VALUE)

  data <- bind_rows(data, tb)
}
data <- arrange(data, GEOGRAPHICAL, TIME)

A diferencia del INE, Eurostat o el Banco Mundial, aquí no hace falta comprobar columnas con un solo valor: la API del ISTAC ya distingue el dato absoluto de sus variantes calculadas (MEASURE) y devuelve, por indicador, solo las columnas estructurales (GEOGRAPHICAL, NAME, INDICATOR, TIME, VALUE).

Guardamos los datos lo primero de todo, nada más limpiarlos, en formato rds (el formato nativo de R: conserva los tipos de las columnas y ocupa mucho menos que un Excel).

saveRDS(data, file = paste0(filename, ".rds"))

cat("Fichero guardado:", paste0(filename, ".rds"),
    sprintf("(%.1f MB)\n", file.info(paste0(filename, ".rds"))$size / 1024^2))
## Fichero guardado: ISTAC_Selected.rds (0.0 MB)

Guardamos también los metadatos de los indicadores recogidos en el catálogo de la asignatura (ISTAC_datasets.xlsx, generado por ISTAC_TableDatasetGeneration.Rmd): las filas correspondientes a los indicadores seleccionados, una por indicador, con la descripción generada por IA añadida.

metadatos <- ISTAC_datasets |>
  filter(id %in% IDS) |>
  left_join(desc_ia, by = "id") |>
  mutate(description = if_else(is.na(description), "BUSCAR DESCRIPCIÓN", description))

if(nrow(metadatos) == 0)
  stop("Ninguno de los indicadores seleccionados aparece en el catálogo del ISTAC. ",
       "Comprueba los códigos o vuelve a generar el catálogo con ISTAC_TableDatasetGeneration.Rmd")

if(nrow(metadatos) < length(IDS))
  warning("Solo se han encontrado en el catálogo ", nrow(metadatos), " de los ",
          length(IDS), " indicadores seleccionados: ",
          paste(setdiff(IDS, metadatos$id), collapse = ", "))

write.xlsx(metadatos, file = paste0(filename, "_metadatos.xlsx"), overwrite = TRUE)

Una vez guardados en disco los metadatos (fichero xlsx) y los datos (fichero RDS), iniciamos el proceso de análisis. A partir de aquí el documento se compila solo con los ficheros ya guardados en disco; no se usa ningún objeto de las secciones anteriores. Es a propósito: es la parte que se incorpora a la memoria del proyecto personal (ver la última sección, Incorporación del dataset a la memoria), así que tiene que poder ejecutarse sola (lo único que se usa de lo definido anteriormente es filename).

2 Análisis del dataset

metadatos

Nº id subject n.reg n.obs area freq initDate lastDate description
377 MATRICULA_VEHICULOS Transporte, movilidad y comunicaciones 97 1455 MUNI Y 2024 2026 Número de vehículos ordinarios nuevos matriculados en circulación en cada municipio e isla de Canarias en un período. Excluye vehículos usados y rematriculaciones.
378 MATRICULA_VEHICULOS_TURISMOS Transporte, movilidad y comunicaciones 97 1455 MUNI Y 2024 2026 Número de turismos (automóviles para transporte de pasajeros) nuevos matriculados en circulación. Desglose del indicador MATRICULA_VEHICULOS restringido a vehículos de tipo turismo.
379 PARQUE_VEHICULOS Transporte, movilidad y comunicaciones 96 7680 MUNI Y 2010 2025 Número total de vehículos en circulación en un municipio o isla de Canarias en un momento dado. Cifra acumulada de todos los vehículos actualmente registrados en uso.
380 PARQUE_VEHICULOS_HABITANTE Transporte, movilidad y comunicaciones 96 4608 MUNI Y 2010 2025 Número de vehículos en circulación por cada 1.000 habitantes. Mide la intensidad de motorización y permite comparar el nivel de motorización entre territorios.
381 PARQUE_VEHICULOS_TURISMOS Transporte, movilidad y comunicaciones 96 7680 MUNI Y 2010 2025 Número total de turismos en circulación en un municipio o isla de Canarias. Desglose del parque total de vehículos restringido a automóviles de pasajeros.
382 PARQUE_VEHICULOS_TURISMOS_HABITANTE Transporte, movilidad y comunicaciones 96 4608 MUNI Y 2010 2025 Número de turismos en circulación por cada 1.000 habitantes. Permite analizar los patrones de motorización por tipo de vehículo y comparar entre territorios.

data

## # A tibble: 6,716 × 5
##   GEOGRAPHICAL NAME   INDICATOR                           TIME  VALUE
##   <chr>        <chr>  <chr>                               <chr> <dbl>
## 1 35001        Agaete PARQUE_VEHICULOS                    2010  3243 
## 2 35001        Agaete PARQUE_VEHICULOS_HABITANTE          2010   562.
## 3 35001        Agaete PARQUE_VEHICULOS_TURISMOS           2010  2058 
## 4 35001        Agaete PARQUE_VEHICULOS_TURISMOS_HABITANTE 2010   356.
## 5 35001        Agaete PARQUE_VEHICULOS                    2011  3288 
## # ℹ 6,711 more rows

2.1 Información sobre las columnas de la tabla descargada

Se presentan las diferentes dimensiones, cada una con sus valores posibles y el nº de observaciones.

COLUMNA: GEOGRAPHICAL (96 opciones)

      GEOGRAPHICAL N.observ
 [1,] 35001        70      
 [2,] 35002        70      
 [3,] 35003        70      
 [4,] 35004        70      
 [5,] 35005        70      
 [6,] 35006        70      
 [7,] 35008        70      
 [8,] 35009        70      
 [9,] 35010        70      
[10,] 35011        70      
[11,] 35012        70      
[12,] 35013        70      
[13,] 35014        70      
[14,] 35015        70      
[15,] 35016        70      
[16,] 35017        70      
[17,] 35018        70      
[18,] 35019        70      
[19,] 35020        70      
[20,] 35021        70      
[21,] 35022        70      
[22,] 35023        70      
[23,] 35024        70      
[24,] 35025        70      
[25,] 35026        70      
[26,] 35027        70      
[27,] 35028        70      
[28,] 35029        70      
[29,] 35030        70      
[30,] 35031        70      
[31,] 35032        70      
[32,] 35033        70      
[33,] 35034        70      
[34,] 38001        70      
[35,] 38002        70      
[36,] 38004        70      
[37,] 38005        70      
[38,] 38006        70      
[39,] 38007        70      
[40,] 38008        70      
[41,] 38009        70      
[42,] 38010        70      
[43,] 38011        70      
[44,] 38012        70      
[45,] 38013        70      
[46,] 38014        70      
[47,] 38015        70      
[48,] 38017        70      
[49,] 38018        70      
[50,] 38019        70      
[51,] 38020        70      
[52,] 38021        70      
[53,] 38022        70      
[54,] 38023        70      
[55,] 38024        70      
[56,] 38025        70      
[57,] 38026        70      
[58,] 38027        70      
[59,] 38028        70      
[60,] 38029        70      
[61,] 38030        70      
[62,] 38031        70      
[63,] 38032        70      
[64,] 38033        70      
[65,] 38034        70      
[66,] 38035        70      
[67,] 38036        70      
[68,] 38037        70      
[69,] 38038        70      
[70,] 38039        70      
[71,] 38040        70      
[72,] 38041        70      
[73,] 38042        70      
[74,] 38043        70      
[75,] 38044        70      
[76,] 38045        70      
[77,] 38046        70      
[78,] 38047        70      
[79,] 38048        70      
[80,] 38049        70      
[81,] 38050        70      
[82,] 38051        70      
[83,] 38052        70      
[84,] 38053        70      
[85,] 38901        70      
[86,] ES70         70      
[87,] ES703        70      
[88,] ES704        70      
[89,] ES705        70      
[90,] ES706        70      
[91,] ES707        70      
[92,] ES708        70      
[93,] ES709        70      
[94,] 38003        69      
[95,] 38016        69      
[96,] 35007        68      

COLUMNA: NAME (96 opciones)

      NAME                                N.observ
 [1,] Adeje                               70      
 [2,] Agaete                              70      
 [3,] Agulo                               70      
 [4,] Agüimes                             70      
 [5,] Antigua                             70      
 [6,] Arafo                               70      
 [7,] Arico                               70      
 [8,] Arona                               70      
 [9,] Arrecife                            70      
[10,] Artenara                            70      
[11,] Arucas                              70      
[12,] Barlovento                          70      
[13,] Breña Alta                          70      
[14,] Breña Baja                          70      
[15,] Buenavista del Norte                70      
[16,] Canarias                            70      
[17,] Candelaria                          70      
[18,] El Hierro                           70      
[19,] El Paso                             70      
[20,] El Pinar de El Hierro               70      
[21,] El Rosario                          70      
[22,] El Sauzal                           70      
[23,] El Tanque                           70      
[24,] Fasnia                              70      
[25,] Firgas                              70      
[26,] Fuencaliente de la Palma            70      
[27,] Fuerteventura                       70      
[28,] Garachico                           70      
[29,] Gran Canaria                        70      
[30,] Granadilla de Abona                 70      
[31,] Guía de Isora                       70      
[32,] Gáldar                              70      
[33,] Güímar                              70      
[34,] Haría                               70      
[35,] Hermigua                            70      
[36,] Icod de los Vinos                   70      
[37,] Ingenio                             70      
[38,] La Aldea de San Nicolás             70      
[39,] La Frontera                         70      
[40,] La Gomera                           70      
[41,] La Guancha                          70      
[42,] La Matanza de Acentejo              70      
[43,] La Oliva                            70      
[44,] La Orotava                          70      
[45,] La Palma                            70      
[46,] La Victoria de Acentejo             70      
[47,] Lanzarote                           70      
[48,] Las Palmas de Gran Canaria          70      
[49,] Los Llanos de Aridane               70      
[50,] Los Realejos                        70      
[51,] Los Silos                           70      
[52,] Mogán                               70      
[53,] Moya                                70      
[54,] Puerto de la Cruz                   70      
[55,] Puerto del Rosario                  70      
[56,] Puntagorda                          70      
[57,] Puntallana                          70      
[58,] Pájara                              70      
[59,] San Andrés y Sauces                 70      
[60,] San Bartolomé                       70      
[61,] San Bartolomé de Tirajana           70      
[62,] San Cristóbal de La Laguna          70      
[63,] San Juan de la Rambla               70      
[64,] San Miguel de Abona                 70      
[65,] San Sebastián de La Gomera          70      
[66,] Santa Brígida                       70      
[67,] Santa Cruz de La Palma              70      
[68,] Santa Cruz de Tenerife              70      
[69,] Santa Lucía de Tirajana             70      
[70,] Santa María de Guía de Gran Canaria 70      
[71,] Santa Úrsula                        70      
[72,] Santiago del Teide                  70      
[73,] Tacoronte                           70      
[74,] Tazacorte                           70      
[75,] Tegueste                            70      
[76,] Teguise                             70      
[77,] Tejeda                              70      
[78,] Telde                               70      
[79,] Tenerife                            70      
[80,] Teror                               70      
[81,] Tijarafe                            70      
[82,] Tinajo                              70      
[83,] Tuineje                             70      
[84,] Tías                                70      
[85,] Valle Gran Rey                      70      
[86,] Vallehermoso                        70      
[87,] Valleseco                           70      
[88,] Valsequillo de Gran Canaria         70      
[89,] Valverde                            70      
[90,] Vega de San Mateo                   70      
[91,] Vilaflor de Chasna                  70      
[92,] Villa de Mazo                       70      
[93,] Yaiza                               70      
[94,] Alajeró                             69      
[95,] Garafía                             69      
[96,] Betancuria                          68      

COLUMNA: INDICATOR (6 opciones)

     INDICATOR                           N.observ
[1,] PARQUE_VEHICULOS                    1536    
[2,] PARQUE_VEHICULOS_HABITANTE          1536    
[3,] PARQUE_VEHICULOS_TURISMOS           1536    
[4,] PARQUE_VEHICULOS_TURISMOS_HABITANTE 1536    
[5,] MATRICULA_VEHICULOS                  287    
[6,] MATRICULA_VEHICULOS_TURISMOS         285    

COLUMNA: TIME (17 opciones)

      TIME N.observ
 [1,] 2024 576     
 [2,] 2025 576     
 [3,] 2010 384     
 [4,] 2011 384     
 [5,] 2012 384     
 [6,] 2013 384     
 [7,] 2014 384     
 [8,] 2015 384     
 [9,] 2016 384     
[10,] 2017 384     
[11,] 2018 384     
[12,] 2019 384     
[13,] 2020 384     
[14,] 2021 384     
[15,] 2022 384     
[16,] 2023 384     
[17,] 2026 188     

2.2 Regiones y número de observaciones

##  GEOGRAPHICAL                                NAME N.Observ
##         38001                               Adeje       70
##         35001                              Agaete       70
##         38002                               Agulo       70
##         35002                             Agüimes       70
##         38003                             Alajeró       69
##         35003                             Antigua       70
##         38004                               Arafo       70
##         38005                               Arico       70
##         38006                               Arona       70
##         35004                            Arrecife       70
##         35005                            Artenara       70
##         35006                              Arucas       70
##         38007                          Barlovento       70
##         35007                          Betancuria       68
##         38008                          Breña Alta       70
##         38009                          Breña Baja       70
##         38010                Buenavista del Norte       70
##          ES70                            Canarias       70
##         38011                          Candelaria       70
##         ES703                           El Hierro       70
##         38027                             El Paso       70
##         38901               El Pinar de El Hierro       70
##         38032                          El Rosario       70
##         38041                           El Sauzal       70
##         38044                           El Tanque       70
##         38012                              Fasnia       70
##         35008                              Firgas       70
##         38014            Fuencaliente de la Palma       70
##         ES704                       Fuerteventura       70
##         38015                           Garachico       70
##         38016                             Garafía       69
##         ES705                        Gran Canaria       70
##         38017                 Granadilla de Abona       70
##         38019                       Guía de Isora       70
##         35009                              Gáldar       70
##         38020                              Güímar       70
##         35010                               Haría       70
##         38021                            Hermigua       70
##         38022                   Icod de los Vinos       70
##         35011                             Ingenio       70
##         35020             La Aldea de San Nicolás       70
##         38013                         La Frontera       70
##         ES706                           La Gomera       70
##         38018                          La Guancha       70
##         38025              La Matanza de Acentejo       70
##         35014                            La Oliva       70
##         38026                          La Orotava       70
##         ES707                            La Palma       70
##         38051             La Victoria de Acentejo       70
##         ES708                           Lanzarote       70
##         35016          Las Palmas de Gran Canaria       70
##         38024               Los Llanos de Aridane       70
##         38031                        Los Realejos       70
##         38042                           Los Silos       70
##         35012                               Mogán       70
##         35013                                Moya       70
##         38028                   Puerto de la Cruz       70
##         35017                  Puerto del Rosario       70
##         38029                          Puntagorda       70
##         38030                          Puntallana       70
##         35015                              Pájara       70
##         38033                 San Andrés y Sauces       70
##         35018                       San Bartolomé       70
##         35019           San Bartolomé de Tirajana       70
##         38023          San Cristóbal de La Laguna       70
##         38034               San Juan de la Rambla       70
##         38035                 San Miguel de Abona       70
##         38036          San Sebastián de La Gomera       70
##         35021                       Santa Brígida       70
##         38037              Santa Cruz de La Palma       70
##         38038              Santa Cruz de Tenerife       70
##         35022             Santa Lucía de Tirajana       70
##         35023 Santa María de Guía de Gran Canaria       70
##         38039                        Santa Úrsula       70
##         38040                  Santiago del Teide       70
##         38043                           Tacoronte       70
##         38045                           Tazacorte       70
##         38046                            Tegueste       70
##         35024                             Teguise       70
##         35025                              Tejeda       70
##         35026                               Telde       70
##         ES709                            Tenerife       70
##         35027                               Teror       70
##         38047                            Tijarafe       70
##         35029                              Tinajo       70
##         35030                             Tuineje       70
##         35028                                Tías       70
##         38049                      Valle Gran Rey       70
##         38050                        Vallehermoso       70
##         35032                           Valleseco       70
##         35031         Valsequillo de Gran Canaria       70
##         38048                            Valverde       70
##         35033                   Vega de San Mateo       70
##         38052                  Vilaflor de Chasna       70
##         38053                       Villa de Mazo       70
##         35034                               Yaiza       70

2.3 Validación de requisitos AEDV

Indicadores: nº de regiones, rango de fechas y percentiles del tamaño de la serie temporal (periodos por región).

INDICATOR subject area freq_obs n_regiones date_start date_end P0 P25 P50 P75 P100
MATRICULA_VEHICULOS Transporte, movilidad y comunicaciones MUNI Y 96 2024 2026 2 3 3 3 3
MATRICULA_VEHICULOS_TURISMOS Transporte, movilidad y comunicaciones MUNI Y 96 2024 2026 2 3 3 3 3
PARQUE_VEHICULOS Transporte, movilidad y comunicaciones MUNI Y 96 2010 2025 16 16 16 16 16
PARQUE_VEHICULOS_HABITANTE Transporte, movilidad y comunicaciones MUNI Y 96 2010 2025 16 16 16 16 16
PARQUE_VEHICULOS_TURISMOS Transporte, movilidad y comunicaciones MUNI Y 96 2010 2025 16 16 16 16 16
PARQUE_VEHICULOS_TURISMOS_HABITANTE Transporte, movilidad y comunicaciones MUNI Y 96 2010 2025 16 16 16 16 16
Indicador Cobertura geográfica Datos actualizados (≥ 2024) Tamaño series (P25 ≥ umbral) CUMPLE LOS 3
MATRICULA_VEHICULOS [Y] ✔ ✔ ✘ ✘
MATRICULA_VEHICULOS_TURISMOS [Y] ✔ ✔ ✘ ✘
PARQUE_VEHICULOS [Y] ✔ ✔ ✔ ✔
PARQUE_VEHICULOS_HABITANTE [Y] ✔ ✔ ✔ ✔
PARQUE_VEHICULOS_TURISMOS [Y] ✔ ✔ ✔ ✔
PARQUE_VEHICULOS_TURISMOS_HABITANTE [Y] ✔ ✔ ✔ ✔

De los 6 indicadores seleccionados, 4 cumplen los tres criterios de validación (cobertura geográfica, datos actualizados y tamaño de las series temporales).

El requisito de disponer de al menos 4 atributos válidos se cumple ✓.

3 Incorporación del dataset a la memoria

Al compilar este documento se ha generado el fichero ISTAC_Selected_analisis.Rmd: es la sección Análisis del dataset de arriba, preparada para la sección Comprensión de los datos de la memoria, con los títulos al nivel de esa sección. Para incorporar el dataset a la memoria:

  1. Copia a la carpeta de la memoria estos ficheros de la carpeta ISTAC: ISTAC_Selected.rds, ISTAC_Selected_metadatos.xlsx y ISTAC_Selected_analisis.Rmd.
  2. Comprueba que en la carpeta de la memoria está también utilidades.R (viene en la carpeta ProyectoPersonal, junto al modelo de memoria) y que la memoria lo carga en el chunk de librerías: source("utilidades.R").
  3. Pega este chunk en la sección Comprensión de los datos de la memoria, cambiando los nombres de las tablas por otros que describan el dataset:
```{r, results='asis', cache=FALSE}
datos_ISTAC_Selected <- aedv_incluir_dataset("ISTAC_Selected_analisis.Rmd")
```

Al compilar la memoria, el análisis aparece en el lugar del chunk y los datos quedan en la tabla datos_ISTAC_Selected (un tibble), con la que se sigue trabajando en el resto de la memoria. Si incorporas varios datasets, pega un chunk por cada uno, con nombres de tabla distintos. En un dataset auxiliar, que no tiene que cumplir los requisitos de AEDV, aedv_incluir_dataset("ISTAC_Selected_analisis.Rmd", validacion = FALSE) omite la validación.

El texto explicativo del dataset (qué mide, qué significa cada variable y cada una de sus opciones…) se escribe en la memoria, antes o después del chunk, no en ISTAC_Selected_analisis.Rmd: ese fichero se sustituye cada vez que se vuelve a generar.