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
descriptionde 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."
)
)
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).
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
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
## 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
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 ✓.
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:
ISTAC: ISTAC_Selected.rds,
ISTAC_Selected_metadatos.xlsx y
ISTAC_Selected_analisis.Rmd.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").```{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.