1 El paquete ESdata

ESdata es un paquete de R que permite acceder a información estadística de España estructurada como datos ordenados (tidy data). Si se tiene instalado previamente el paquete devtools, puede instalarse el paquete desde Github haciendo:

devtools::install_github("jmsallan/ESdata")

Una vez instalado el paquete, podemos acceder a los datos haciendo:

library(ESdata)

El paquete permite acceder a un conjunto de datos estructurados en data frames, con la Ășnica dependencia de disponer de una versiĂłn de R superior a la 3.5.0. Una buena alternativa para explorar estos datos es usar los paquetes del tidyverse:

library(tidyverse)

En su versiĂłn actual, el paquete dispone de informaciĂłn relativa a:

  • Empleo: Encuesta de PoblaciĂłn actĂ­va (EPA).
  • InflaciĂłn: Índice de Precios al Consumo (IPC).
  • Crecimiento: PIB a precios de mercado.

En este documento mostraremos la informaciĂłn disponible sobre el producto interior bruto.

2 El producto interior bruto

El producto interior bruto (PIB) es el valor monetario de los bienes y servicios finales producidos por una economĂ­a en un periodo de tiempo. El PIB mide el incremento de riqueza o patrimonio de una economĂ­a de manera agregada. Su medida permite evaluar el crecimiento de una economĂ­a, cĂłmo una economĂ­a obtiene y gasta su renta, y cĂłmo la distribuye entre sus miembros desde un punto de vista macroeconĂłmico.

En contraposiciĂłn a otros agregados que miden la producciĂłn de una economĂ­a, el PIB es:

  • Interior: se computan los bienes producidos en un territorio determinado, independientemente de si las personas que los haya producido pertenecen o no al territorio.
  • Bruto: evalĂșa el valor bruto de los bienes de capital producidos, sin detraer el valor de las amortizaciones de los bienes de capital durante el periodo.

El PIB es la medida preferida de evaluaciĂłn de la renta nacional, puesto que comprende los bienes a disposiciĂłn de los habitantes del territorio (interior), sin esperar a tener en cuenta las amortizaciones de los bienes de capital (bruto).

Usualmente el PIB se mide a precios de mercado. Esto significa que el precio de los bienes incluye incrementos de precios por impuestos sobre los bienes (p.e. el Impuesto de Valor Añadido) y decrementos por subvenciones.

El PIB, como el resto de agregados de renta nacional, puede calcularse de tres maneras:

  • A travĂ©s de la demanda agregada, tambiĂ©n llamado enfoque del gasto. El PIB se obtiene a travĂ©s de la demanda de bienes y servicios de los diferentes agentes econĂłmicos: consumidores, empresas, Estado y sector exterior.
  • A travĂ©s de la oferta agregada. En este enfoque, el PIB es la suma de valores agregados brutos. El valor agregado de una etapa de producciĂłn es igual al valor de su producciĂłn, menos el valor de los insumos utilizados por esa etapa.
  • A travĂ©s de las rentas o retribuciĂłn de los factores. El valor añadido en cada etapa de producciĂłn se distribuye entre los diferentes agentes de la oferta de factores productivos: la tierra, el trabajo y el capital.

Los tres enfoques dan el mismo valor de PIB, y su anĂĄlisis permite obtener informaciĂłn complementaria sobre la generaciĂłn y distribuciĂłn de rentas de un paĂ­s.

El Instituto Nacional de EstadĂ­stica (INE) provee valores del PIB a precios de mercado trimestralmente, asĂ­ como de agregados para su cĂĄlculo desde los tres enfoques. Los datos de PIB incorporados a ESdata se han obtenido de las tablas de https://www.ine.es/dynt3/inebase/es/index.htm?padre=5614&capsel=5615. El informe metodolĂłgico estandarizado se encuenta en https://www.ine.es/dynt3/metadatos/es/RespuestaDatos.html?oe=30024.

Si cree que ESdata no recoge información del PIB que podría ser de su interés, puede indicarlo en: https://github.com/jmsallan/ESdata

2.1 Enfoque basado en la demanda agregada (gasto)

En la tabla siguiente se muestran los agregados que reporta el INE para el cålculo del PIB a través de la demanda agregada. Este enfoque nos permite evaluar cómo evoluciona:

  • el consumo de las familias,
  • la inversiĂłn de las empresas, y el gasto pĂșblico en bienes de capital,
  • el impacto neto del sector exterior, calculado como diferencia entre exportaciones e importaciones de bienes y servicios.
Elementos de la demanda agregada
agr_label agregado
pib Producto interior bruto a precios de mercado
dn Demanda nacional
dn_01_C Gasto en consumo final
dn_011_C Gasto en consumo final de los hogares y las ISFLSH
dn_0111_C Gasto en consumo final de los hogares
dn_01111_C Gasto en consumo final interior de los hogares
dn_011111_C Gasto en consumo final interior de los hogares. Bienes duraderos
dn_011112_C Gasto en consumo final interior de los hogares. Otros bienes
dn_0112_C Gasto en consumo final de las ISFLSH
dn_012_C Gasto en consumo final de las AAPP
dn_0121_C Gasto en consumo final individual de las AAPP
dn_0122_C Gasto en consumo final colectivo de las AAPP
dn_013_C Consumo final individual efectivo
dn_02_FBC FormaciĂłn bruta de capital
dn_021_FBC FormaciĂłn bruta de capital fijo (FBCF)
dn_0211_FBC FBCF. Activos fijos materiales
dn_02111_FBC FBCF. Activos fijos materiales. ConstrucciĂłn
dn_021111_FBC FBCF. Activos fijos materiales. ConstrucciĂłn. Viviendas
dn_021112_FBC FBCF. Activos fijos materiales. ConstrucciĂłn. Otros edificios y construcciones
dn_02112_FBC FBCF. Activos fijos materiales. Maquinaria, bienes de equipo y sistemas de armamento
dn_021121_FBC FBCF. Activos fijos materiales. Maquinaria, bienes de equipo y sistemas de armamento. Material de transporte
dn_021122_FBC FBCF. Activos fijos materiales. Maquinaria, bienes de equipo y sistemas de armamento. Otros
dn_02113_FBC FBCF. Activos fijos materiales.Recursos biolĂłgicos cultivados
dn_0212_FBC FBCF. Activos fijos inmateriales. Productos de la propiedad intelectual
dn_022_FBC VariaciĂłn de existencias y adquisiciones menos cesiones de objetos valiosos
dn_0221_FBC VariaciĂłn de existencias
dn_0222_FBC Adquisiciones menos cesiones de objetos valiosos
dn_03_XM Demanda externa
dn_031_XM Exportaciones de bienes y servicios
dn_0311_XM Exportaciones de bienes
dn_0312_XM Exportaciones de servicios
dn_0313_XM Exportaciones de servicios. Gasto de los hogares no residentes en el territorio econĂłmico
dn_032_XM Importaciones de bienes y servicios
dn_0321_XM Importaciones de bienes
dn_0322_XM Importaciones de servicios
dn_0323_XM Importaciones de servicios. Gasto de los hogares residentes en el resto del mundo

2.2 Enfoque basado en la oferta agregada (valor añadido)

En la tabla siguiente se muestran los agregados que reporta el INE para el cålculo del PIB a través de la oferta agregada. Este enfoque nos permite evaluar cómo contribuyen las diversas actividades económicas a la producción total.

Elementos de la oferta agregada
agr_label agregado
pib Producto interior bruto a precios de mercado
vab_A VABpb Agricultura, ganaderĂ­a, silvicultura y pesca (A, CNAE 2009)
vab_BE VABpb Industria (B-E, CNAE 2009)
vab_C VABpb Industria. Industria manufacturera (C, CNAE 2009)
vab_F VABpb ConstrucciĂłn (F, CNAE 2009)
vab_GT VABpb Servicios (G-T, CNAE 2009)
vab_GI VABpb Servicios. Comercio, transporte y hostelerĂ­a (G-I, CNAE 2009)
vab_J VABpb Servicios. InformaciĂłn y comunicaciones (J, CNAE 2009)
vab_K VABpb Servicios. Actividades financieras y de seguros (K, CNAE 2009)
vab_L VABpb Servicios. Actividades inmobiliarias (L, CNAE 2009)
vab_MN VABpb Servicios. Actividades profesionales, científicas y técnicas y otras (M-N, CNAE 2009)
vab_OQ VABpb Servicios. AdministraciĂłn pĂșblica, educaciĂłn y sanidad (O-Q, CNAE 2009)
vab_RT VABpb Servicios. Actividades artĂ­sticas, recreativas y otros servicios (R-T, CNAE 2009)
imp_sub Impuestos menos subvenciones sobre los productos
imp Impuestos sobre los productos
sub Subvenciones sobre los productos

2.3 Enfoque basado en las rentas

En la tabla siguiente se muestran los agregados que reporta el INE para el cålculo del PIB a través de las rentas. Este enfoque permite evaluar cómo se reparte la renta entre el trabajo (salarios) y el capital (beneficios y rentas).

Elementos de ingresos
agr_label agregado
pib Producto interior bruto a precios de mercado
rem RemuneraciĂłn de los asalariados
sal Sueldos y salarios
css Cotizaciones sociales a cargo de los empleadores
rem_A RemuneraciĂłn de los asalariados. Agricultura, ganaderĂ­a, silvicultura y pesca (A, CNAE 2009)
sal_A Sueldos y salarios. Agricultura, ganaderĂ­a, silvicultura y pesca (A, CNAE 2009)
css_A Cotizaciones sociales a cargo de los empleadores. Agricultura, ganaderĂ­a, silvicultura y pesca (A, CNAE 2009)
rem_BE RemuneraciĂłn de los asalariados. Industria (B-E, CNAE 2009)
sal_BE Sueldos y salarios. Industria (B-E, CNAE 2009)
css_BE Cotizaciones sociales a cargo de los empleadores. Industria (B-E, CNAE 2009)
rem_C RemuneraciĂłn de los asalariados. Industria manufacturera (C, CNAE 2009)
sal_C Sueldos y salarios. Industria manufacturera (C, CNAE 2009)
css_C Cotizaciones sociales a cargo de los empleadores. Industria manufacturera (C, CNAE 2009)
rem_F RemuneraciĂłn de los asalariados. ConstrucciĂłn (F, CNAE 2009)
sal_F Sueldos y salarios. ConstrucciĂłn (F, CNAE 2009)
css_F Cotizaciones sociales a cargo de los empleadores. ConstrucciĂłn (F, CNAE 2009)
rem_GT RemuneraciĂłn de los asalariados. Servicios (G-T, CNAE 2009)
sal_GT Sueldos y salarios. Servicios (G-T, CNAE 2009)
css_GT Cotizaciones sociales a cargo de los empleadores. Servicios (G-T, CNAE 2009)
rem_GI RemuneraciĂłn de los asalariados. Comercio, transporte y hostelerĂ­a (G-I, CNAE 2009)
sal_GI Sueldos y salarios. Comercio, transporte y hostelerĂ­a (G-I, CNAE 2009)
css_GI Cotizaciones sociales a cargo de los empleadores. Comercio, transporte y hostelerĂ­a (G-I, CNAE 2009)
rem_J RemuneraciĂłn de los asalariados. InformaciĂłn y comunicaciones (J, CNAE 2009)
sal_J Sueldos y salarios. InformaciĂłn y comunicaciones (J, CNAE 2009)
css_J Cotizaciones sociales a cargo de los empleadores. InformaciĂłn y comunicaciones (J, CNAE 2009)
rem_K RemuneraciĂłn de los asalariados. Actividades financieras y de seguros (K, CNAE 2009)
sal_K Sueldos y salarios. Actividades financieras y de seguros (K, CNAE 2009)
css_K Cotizaciones sociales a cargo de los empleadores. Actividades financieras y de seguros (K, CNAE 2009)
rem_L RemuneraciĂłn de los asalariados. Actividades inmobiliarias (L, CNAE 2009)
sal_L Sueldos y salarios. Actividades inmobiliarias (L, CNAE 2009)
css_L Cotizaciones sociales a cargo de los empleadores. Actividades inmobiliarias (L, CNAE 2009)
rem_MN Remuneración de los asalariados. Actividades profesionales, científicas y técnicas y otras (M-N, CNAE 2009)
sal_MN Sueldos y salarios. Actividades profesionales, científicas y técnicas y otras (M-N, CNAE 2009)
css_MN Cotizaciones sociales a cargo de los empleadores. Actividades profesionales, científicas y técnicas y otras (M-N, CNAE 2009)
rem_OQ RemuneraciĂłn de los asalariados. AdministraciĂłn pĂșblica, educaciĂłn y sanidad (O-Q, CNAE 2009)
sal_OQ Sueldos y salarios. AdministraciĂłn pĂșblica, educaciĂłn y sanidad (O-Q, CNAE 2009)
css_OQ Cotizaciones sociales a cargo de los empleadores. AdministraciĂłn pĂșblica, educaciĂłn y sanidad (O-Q, CNAE 2009)
rem_RT RemuneraciĂłn de los asalariados. Actividades artĂ­sticas, recreativas y otros servicios (R-T, CNAE 2009)
sal_RT Sueldos y salarios. Actividades artĂ­sticas, recreativas y otros servicios (R-T, CNAE 2009)
css_RT Cotizaciones sociales a cargo de los empleadores. Actividades artĂ­sticas, recreativas y otros servicios (R-T, CNAE 2009)
ben Excedente de explotaciĂłn bruto y Renta mixta bruta
imp_sub Impuestos menos subvenciones sobre la producciĂłn y las importaciones
imp Impuestos sobre la producciĂłn y las importaciones
sub Subvenciones sobre la producciĂłn y las importaciones

3 El PIB en ESdata

La informaciĂłn sobre el PIB en ESdata se presenta en tablas separadas para cada uno de los enfoques del PIB. Los tres enfoques tienen una tabla para los agregados que he presentado en la secciĂłn anterior y otra para los datos:

Datos de PIB en ESdata
enfoque agregados datos
demanda pib_demanda_agregados pib_pm_demanda
oferta pib_oferta_agregados pib_pm_oferta
rentas pib_rentas_agregados pib_pm_rentas

Las variables de cada una de las tablas de datos son:

Variables en cada una de las tablas
datos periodo agregado ajuste tipo dato valor
pib_pm_demanda ✓ ✓ ✓ ✓ ✓ ✓
pib_pm_oferta ✓ ✓ ✓ ✓ ✓ ✓
pib_pm_rentas ✓ ✓ ✓ ✓ ✓

El contenido de las variables es:

  • periodo: el Ășltimo dĂ­a del trimestre del dato correspondiente a la fila, en formato de fecha Date.
  • el agregado correspondiente a cada una de las filas.
  • el ajuste de cada fila: ajustado para datos ajustados a estacionalidad y calendario, o no_ajustado.
  • el tipo de dato: o valor o `indice’.
  • el dato, que puede ser base, variaciĂłn trimestral var_trim, variaciĂłn anual var_anual, aportaciĂłn trimestral ap_trim o aportaciĂłn anual ap_anual.
  • el valor, en Ă­ndice o en millones de euros. Para el enfoque de rentas no estĂĄn disponibles datos en Ă­ndice.

4 Ejemplos de utilizaciĂłn

Puede obtenerse gran nĂșmero de visualizaciones y tablas con los datos incorporados al paquete. En cada caso hay que hacer el filtrado previo que nos permite obtener los datos requeridos. En esta secciĂłn presentaremos algunos ejemplos de visualizaciones de los datos de PIB.

4.1 PIB ajustado y no ajustado

En este grĂĄfico vemos la diferencia entre el PIB no ajustado y el ajustado. Podemos ver que para evaluar la evoluciĂłn del PIB es conveniente ver el ajustado.

pib_pm_demanda %>% 
  filter(agregado == "pib" & tipo == "indice" & dato == "base") %>%
  ggplot(aes(periodo, valor, group=ajuste)) + 
  geom_line(aes(linetype=ajuste)) +
  scale_linetype_manual(values = c("solid", "dotted"), labels = c("ajustado", "no ajustado")) +
  labs(title="Índice de PIB ajustado y no ajustado", x="", y="índice PIB") + 
  theme_bw() + 
  theme(legend.position = "bottom")

El gråfico muestra también cómo usar ggplot para diferenciar series por tipo de línea.

4.2 El impacto del COVID-19 en el PIB

En este grĂĄfico, mostramos el impacto del COVID-19 en el crecimiento econĂłmico usando las variaciones anuales y trimestrales.

library(lubridate)
pib_pm_demanda %>% 
  filter(agregado == "pib" & ajuste == "ajustado" & tipo == "valor" & dato %in% c("var_anual", "var_trim")) %>%
  filter(year(periodo) > 2017) %>%
  mutate(valor = valor/100) %>%
  ggplot(aes(periodo, valor, col=dato)) +
  geom_point() +
  geom_line() +
  labs(title = "Impacto del COVID-19 en el IPC", x="", y="variaciĂłn") +
  scale_color_brewer(name = "variaciĂłn", labels = c("anual", "trimestral"), palette = "PuOr") +
  scale_y_continuous(labels = scales::percent) +
  theme_dark() +
  theme(legend.position = "bottom")

El grĂĄfico muestra los siguientes recursos:

  • El uso de la funciĂłn year de lubridate para seleccionar datos a partir de 2017.
  • La superposiciĂłn de puntos y lĂ­neas en el mismo grĂĄfico.
  • El eje y en porcentaje con scale_y_continuous.
  • La selecciĂłn de colores con una paleta brewer.
  • El uso de theme_dark para presentaciones en pantalla.

4.3 DistribuciĂłn de la renta

Con pib_pm_rentas podemos evaluar cómo evoluciona la distribución de la renta. Para ello hemos de tener en cuenta que el PIB es igual a las remuneraciones, mås los beneficios. Como estamos evaluando el PIB a precios de mercado, hemos de añadir también impuestos y subvenciones.

\[ \text{pib} = \text{rem} + \text{ben} + \text{imp_sub} \]

En los agregados de rentas vemos que las remuneraciones incluyen los salarios y las cotizaciones empresariales a la Seguridad Social.

\[ \text{rem} = \text{sal} + \text{css} \]

Usaremos la primera ecuaciĂłn para encontrar el peso de los sueldos, los beneficios y los impuestos indirectos netos en el PIB a precios de mercado:

pib_pm_rentas %>% filter(agregado %in% c("pib", "rem", "ben", "imp_sub") & dato == "base" & ajuste == "ajustado") %>%
  pivot_wider(names_from = "agregado", values_from = "valor") %>%
  mutate(pr_rem = rem/pib, pr_ben = ben/pib, pr_imp = imp_sub/pib) %>%
  select(periodo, pr_rem, pr_ben, pr_imp) %>%
  pivot_longer(cols = -periodo, names_to = "dato", values_to = "valor") 
## # A tibble: 309 x 3
##    periodo    dato    valor
##    <date>     <chr>   <dbl>
##  1 2020-09-30 pr_rem 0.475 
##  2 2020-09-30 pr_ben 0.436 
##  3 2020-09-30 pr_imp 0.0893
##  4 2020-06-30 pr_rem 0.498 
##  5 2020-06-30 pr_ben 0.436 
##  6 2020-06-30 pr_imp 0.0661
##  7 2020-01-31 pr_rem 0.482 
##  8 2020-01-31 pr_ben 0.416 
##  9 2020-01-31 pr_imp 0.102 
## 10 2019-12-31 pr_rem 0.459 
## # 
 with 299 more rows

Luego haremos un grĂĄfico con geom_area para ver cĂłmo evolucionan las variables. El uso de mutate es para cambiar el orden de los niveles del factor de la variable valor:

pib_pm_rentas %>% filter(agregado %in% c("pib", "rem", "ben", "imp_sub") & dato == "base" & ajuste == "ajustado") %>%
  pivot_wider(names_from = "agregado", values_from = "valor") %>%
  mutate(pr_rem = rem/pib, pr_ben = ben/pib, pr_imp = imp_sub/pib) %>%
  select(periodo, pr_rem, pr_ben, pr_imp) %>%
  pivot_longer(cols = -periodo, names_to = "dato", values_to = "valor") %>%
  mutate(dato = factor(dato, levels = c("pr_ben", "pr_rem", "pr_imp"))) %>%
  ggplot(aes(periodo, valor, fill=dato)) +
  geom_area() +
  scale_fill_brewer(name = "rentas", labels = c("capital", "trabajo", "impuestos - subvenciones")) +
  labs(title = "Reparto del PIB entre capital y trabajo", x="", y="") +
  scale_y_continuous(labels = scales::percent) +
  theme_bw() +
  theme(legend.position = "bottom")

En este caso, hemos seleccionado los colores usando la paleta por defecto de scale_fill_brewer.

4.4 Cambios del peso de la construcciĂłn en la eocnomĂ­a

Los datos pib_pm_oferta permiten evaluar el peso en la economĂ­a de los diferentes sectores de actividad. En este grĂĄfico vemos cĂłmo ha evolucionado el peso del sector de la construcciĂłn. Ponemos en contexto los datos informando sobre la crisis de 2008.

pib_pm_oferta %>% 
  filter(agregado %in% c("pib", "vab_F") & ajuste == "ajustado" & tipo == "valor" & dato == "base") %>%
  pivot_wider(names_from = agregado, values_from = valor) %>% 
  mutate(prop = vab_F/pib) %>%
  ggplot(aes(periodo, prop)) +
  geom_line(size=1.2) + 
  labs(title="Peso de la construcciĂłn en la economĂ­a", y="construcciĂłn vs PIB", x="") +
  geom_vline(xintercept = as.Date("2008-12-31"), linetype="dashed", size=0.5,col ="#FF0000") +
  annotate("text", x=as.Date("2010-06-30"), y=0.12, label="crisis del 2008", hjust="left") +
  annotate("curve", x=as.Date("2010-06-15"), y =0.12, xend=as.Date("2008-12-31"), yend=0.11, curvature=0.2, arrow = arrow(length = unit(2, "mm"))) +
  scale_y_continuous(labels = scales::percent) +
  theme_bw() +
  theme(legend.position = "bottom")

AquĂ­ hemos usado de nuevo las funciones pivot_wider y pivot_longer de tidyr para calcular las proporciĂłn de la construcciĂłn en el PIB.

4.5 EvoluciĂłn anual de la construcciĂłn y el PIB

Los gråficos de línea sirven para evaluar la evolución de una magnitud a lo largo del tiempo. El gråfico que hemos presentado muestra la caída del peso de la construcción después de la crisis de 2008. Para ilustrar los valores absolutos de una magnitud es mejor usar un gråfico de barras. Aquí presentamos el peso de la construcción en la economía, sumando el PIB de los trimestres de cada año.

pib_pm_oferta %>% 
  filter(agregado %in% c("pib", "vab_F") & ajuste == "ajustado" & tipo == "valor" & dato == "base") %>%
  pivot_wider(names_from = agregado, values_from = valor) %>% 
  mutate(year=year(periodo)) %>%
  group_by(year) %>%
  summarise(pib=sum(pib), constr=sum(vab_F)) %>% 
  mutate(prop = constr/pib) %>%
  ggplot(aes(year, prop)) +
  geom_bar(stat = "Identity", fill="#DC143C") +
  labs(title="Peso de la construcciĂłn en la economĂ­a", y="construcciĂłn vs PIB", x="") + 
  scale_y_continuous(labels = scales::percent) +
  theme_bw() +
  theme(legend.position = "bottom")

También podemos comparar el peso de la construcción en el conjunto del PIB con gråficos de barras:

library(lubridate)  
pib_pm_oferta %>% 
  filter(agregado %in% c("pib", "vab_F") & ajuste == "ajustado" & tipo == "valor" & dato == "base") %>%
  pivot_wider(names_from = agregado, values_from = valor) %>% 
  mutate(year=year(periodo)) %>%
  group_by(year) %>%
  summarise(pib=sum(pib), constr=sum(vab_F)) %>%
  pivot_longer(-year, values_to = "valor", names_to = "dato") %>%
  ggplot(aes(year, valor, fill=dato)) +
  geom_bar(stat = "Identity", position = "dodge") + 
  labs(title="Evolución del PIB y la construcción", y="millones euros", x="año") +
  scale_fill_manual(name="Agregado", labels=c("VAB construcciĂłn", "Total PIB"), values = c("#B22222", "#228B22")) +
  theme_bw() +
  theme(legend.position = "bottom")

5 Propuestas de mejora

Si tiene alguna propuesta o ha detectado algĂșn error, puede ponerse en contacto conmigo desde: https://github.com/jmsallan/ESdata