Francisco MartĆnez Caballero (frama36@alumni.uv.es)
Jesus Lloret Quero (jelloque@alumni.uv.es)
Vicent Mompo Crespo (momcres@alumni.uv.es).
Universitat de ValĆØnciaTrabajo elaborado para la asignatura āProgramaciĆ³n y manejo de datos en la era del Big Dataā de la Universitat de ValĆØncia durante el curso 2021-2022. El repo del trabajo estĆ” aquĆ.
La pĆ”gina web de la asignatura y los trabajos de mis compaƱeros pueden verse aquĆ.
Para la asignatura de āProgramaciĆ³n y manejo de datos en la era del Big Dataā hemos decidido realizar un ensayo (en formato rmd) de relevancia general que afecta a todos los ciudadanos (especialmente a los agentes con menor poder adquisitivo), como es la inflaciĆ³n.
Resumen: El encarecimiento de los precios de la energĆa, junto la falta de microprocesadores y los estĆmulos monetarios mĆ”s ambiciosos en la historia reciente, estĆ”n ocasionando la apariciĆ³n de datos de inflaciĆ³n que no se alcanzaban desde la crisis del petrĆ³leo de los aƱos 70. En particular, la economĆa europea, y en especial la espaƱola, se encuentran en el peor momento posible para afrontar este desajuste en una de las principales variables macroeconĆ³micas, los precios. Esta circunstancia, estĆ” afectando especialmente a las rentas mĆ”s bajas y generando un problema de desabastecimiento de ciertos productos a escala mundial, en uno de los contextos mĆ”s inciertos del reciente siglo como consecuencia de la evoluciĆ³n de la crisis sanitaria provocada por el COVID-19.
The Abstract: Rising energy prices, together with the lack of microprocessors and the most ambitious monetary stimuli in recent history, are causing the emergence of inflation data that had not been reached since the oil crisis of the 1970s. In particular, The European economy, and especially the Spanish one, is in the worst possible moment to face this imbalance in one of the main macroeconomic variables, prices. This circumstance is especially affecting the lowest incomes and generating a problem of shortages of certain products on a global scale, in one of the most uncertain contexts of the recent century as a consequence of the evolution of the health crisis caused by COVID-19.
Palabras Clave: EnergĆa, InflaciĆ³n, EspaƱa, Europa, BCE, microprocesadores, precio, precios, gas, precios de la energĆa, expectativa.
La inflaciĆ³n es una de las principales variables macroeconĆ³micas que mayor distorsiĆ³n de expectativas pueden generar en los agentes econĆ³micos. ĀæPor quĆ©? se puede preguntar el lector. Esto es debido a que la fluctuaciĆ³n en precios es un concepto bĆ”sico que todo individuo de una sociedad, independientemente de si dispone de ciertos conocimientos econĆ³micos, rĆ”pidamente sabe analizar e interpretar. Este efecto, bajo el supuesto de racionalidad de los agentes que interactĆŗan en la economĆa, ocasiona un cambio en la toma de decisiones. La conclusiĆ³n es clara, a mayores precios, es decir, a mayor cantidad de unidades monetarias requeridas para la compra de un determinado bien, menor serĆ” la satisfacciĆ³n que nos da dicho intercambio. Si este efecto lo trasladamos al conjunto de bienes de una economĆa, las conclusiones sĆ³n las mismas, los agentes econĆ³micos (por norma general) dispondremos de menor poder adquisitivo, por lo tanto, seremos mĆ”s pobres.
Consideramos que el tema de estudio de la inflaciĆ³n es un tema actual, que afecta a la mayorĆa de las economĆas desarrolladas y del que no hay un cierto consenso dentro de la comunidad econĆ³mica sobre sus principales causas y, especialmente, su evoluciĆ³n en el corto/medio plazo.
En el momento que estamos desarrollando este breve artĆculo, la inflaciĆ³n a nivel mundial se encuentra ādisparadaā si la comparamos con la media histĆ³rica de los Ćŗltimos 20 aƱos en la gran mayorĆa de economĆas. Por poner en contexto al lector, el pasado octubre la economĆa estadounidense registrĆ³ una de sus mayores tasas de inflaciĆ³n en los Ćŗltimos 20 aƱos, un 6,2%. Alemania, otra economĆa caracterizada por tener ciertos recelos a presentar datos de inflaciĆ³n elevados, tambiĆ©n registra tasas superiores al 4%. La tĆ³nica inflacionista no es un efecto Ćŗnico de la economĆa germana, sinĆ³ que se estĆ” observando en la mayorĆa de economĆas que conforman la UniĆ³n Europea.
Record eurozone inflation of 4.9% (with core at 2.6%) puts pressure on ECB, by @MAmdorsky
ā Rafael Domenech (@rdomenechv) December 1, 2021
Anxiety grows over central bank policies as consumer prices continue to risehttps://t.co/a3dR9zzvyS pic.twitter.com/U3LJoSRFyt
š Ahora que el IPCA de la zona euro estĆ” en el 4,1% (4,6% en Alemania, 5,5% en EspaƱa), conviene prestar atenciĆ³n a cĆ³mo define concretamente el BCE el objetivo de inflaciĆ³n del 2% https://t.co/kyVMyR2DgJ, porque la letra pequeƱa del objetivo cambia e importa.
ā Daniel Fuentes šŖšŗ (@dfuentescastro) October 30, 2021
š§ Veamos...
1/n pic.twitter.com/xFcF8XwU0p
This is a fascinating chart:
ā Philipp Heimberger (@heimbergecon) November 25, 2021
the rise in headline inflation over recent months in the ā¬zone is entirely driven by items with high import content (energy, supply-side bottlenecks...). pic.twitter.com/vF55lR0MvU
Las motivaciones que nos ha llevado a la elecciĆ³n de esta tema sĆ³n varias;
Estudiar este fenĆ³meno tan excepcional en las economĆas europeas, y especialmente en nuestra economĆa domĆ©stica. Desde que empezamos a interesarnos por el mundo de las ciencias econĆ³micas no hemos vivido un perĆodo de alta inflaciĆ³n, por tanto, es una circunstancia que nos llama muchĆsimo la atenciĆ³n.
Desarrollar tanto los conocimientos econĆ³micos (teĆ³ricos y prĆ”cticos) que hemos adquirido en la carrera, como en el curso de R.Studio. Al respecto de este punto, queremos remarcar que nos ha llamado particularmente la atenciĆ³n la gran variedad de grĆ”ficos profesionalizados, como los anteriormente expuestos, que referentes economistas estĆ”n compartiendo para analizar el tema de interĆ©s. Esta es una motivaciĆ³n extra para nuestro artĆculo, tratar de crear grĆ”ficos profesionalizados.
Nuestro principal objetivo es tratar de dar respuesta de cuĆ”les sĆ³n las principales causas de la inflaciĆ³n y cĆ³mo puede afectar al crecimiento de nuestra economĆa en el corto/medio plazo.
Para la realizaciĆ³n del trabajo ha sido necesaria la obtenciĆ³n de informaciĆ³n procedente de diversas fuentes como por ejemplo el INE y Eurostat.
Para poder utilizar estos datos ha sido necesario modificarlos y adaptarlos antes de emplearlos y hacer grĆ”ficas. Esta adaptaciĆ³n la podemos encontrar dentro del apartado tidy, donde se recogen todas las modificaciones realizadas desde la descarga de un archivo como puede ser xlsx o cvs hasta tener un data frame cargado en el Global Environment.
#Hemos adquirido un dataframe de la inflaciĆ³n por agrupaciones, por ello cargamos el dataframe para poder observarlo en Data y lo convertimos en formato long.
inflacion_agrupaciones <- read_excel("datos/inflacion_agrupaciones.xlsx")
inflacion_agrupaciones <- inflacion_agrupaciones %>% pivot_longer(cols = 3:63, names_to = "date")
#Una vez lo hemos hecho, las variables data y value estaban en formato character, por ello hemos tenido que exportar este documento y cambiar estas variables a fomato numĆ©rico manualmente, obteniendo asĆ el data frame inflacion_agrup. Una vez hecho esto podemos cargar directamente.
inflacion_agrup <- inflacion_agrupaciones
#rio::export(inflacion_agrup, "./datos/inflacion_agrup.csv")
inflacion_agrup <- read_csv("datos/inflacion_agrup.csv",
col_types = cols(date = col_date(format = "%Y"),
value = col_number()))
#DATOS PARA LOS PAISES.
#Hemos realizado los pasos anteriores pero esta vez aplicandolos al dataframe que contienen los paises, obteniendo un nuevo dataframe inflacion_country que podemos cargar directamente.
inflacion_paises <- read_excel("datos/inflacion_paises.xlsx")
inflacion_paises <- inflacion_paises %>% pivot_longer(cols = 4:64, names_to = "date")
inflacion_paises$code<-tolower(countrycode(inflacion_paises$country_name,origin = 'country.name', destination = 'iso2c'))
#Una vez lo hemos hecho, las variables data y value estaban en formato character, por ello hemos tenido que exportar este documento y cambiar estas variables a fomato numĆ©rico manualmente, obteniendo asĆ el data frame inflacion_country. Una vez hecho esto podemos cargar directamente.
inflacion_country <- inflacion_paises
#rio::export(inflacion_country, "./datos/inflacion_country.csv")
inflacion_country <- read_csv("datos/inflacion_country.csv",
col_types = cols(date = col_date(format = "%Y"),
value = col_number()))
#DATOS PARA LA CREACIĆN DE MAPAS
#En este paso hemos jutado el dataframe world con el anterior para poder importarle las geometrias y poder hacer mapas.
world <- rnaturalearth::ne_countries(scale = "medium", returnclass = "sf")
world <- world %>% filter(subregion != "Antarctica") %>% filter(admin != "Greenland")
world <- world %>% dplyr::select(name, iso_a3, geometry)
inflacion_geom <- full_join(inflacion_country, world, by = c("country-code" = "iso_a3"))
# Para poder realizar un treemap hemos adquirdo datos sobre la evoluciĆ³n de varios componentes y los hemos tratado de la siguiente forma
contribucion <- read_excel("datos/contribucion.xls")
contribucion <- contribucion %>% pivot_longer(cols = 2:23, names_to = "date")
#rio::export(contribucion, "./datos/contribucion.csv")
contribucion <- read_csv("datos/contribucion.csv",
col_types = cols(date = col_date(format = "%Y/%m")))
# Alguna mierda que hagamos con estos datos
prc_hicp_manr <- read_excel("datos/prc_hicp_manr.xls")
prc_hicp_manr <- prc_hicp_manr %>% pivot_longer(cols = 2:35, names_to = "date")
prc_hicp_manr <- prc_hicp_manr %>% rename(country = `GEO/TIME`)
# rio::export(prc_hicp_manr, "./datos/prc_hicp_manr.csv")
prc_hicp_manr <- read_csv("datos/prc_hicp_manr.csv",
col_types = cols(date = col_date(format = "%Y/%m")))
inflacion_europea <- read_excel("datos/inflacion_europea.xlsx")
inflacion_europea <- inflacion_europea %>% pivot_longer(cols = 2:35, names_to = "date")
inflacion_europea <- inflacion_europea %>% rename(country = `GEO/TIME`)
#rio::export(inflacion_europea, "./datos/inflacion_europea.csv")
inflacion_europea <- read_csv("datos/inflacion_europea.csv",
col_types = cols(date = col_date(format = "%Y/%m")))
library(tidyverse)
world <- rnaturalearth::ne_countries(scale = "medium", returnclass = "sf")
world <- world %>% filter(subregion != "Antarctica") %>% filter(admin != "Greenland")
world <- world %>% dplyr::select(name, iso_a3, geometry)
inflacion_geom_europ <- left_join(inflacion_europea, world, by = c("country" = "name")) %>%
filter(date >= "2020-01-01")
inflacion_eurozona <- read_excel("datos/inflacion_eurozona.xlsx")
inflacion_eurozona <- inflacion_eurozona %>% pivot_longer(cols = 3:14, names_to = "date")
#rio::export(inflacion_eurozona,"./datos/inflacion_eurozona.csv")
inflacion_eurozona <- read_csv("datos/inflacion_eurozona.csv",
col_types = cols(date = col_date(format = "%Y/%m")))
inflacion_esp <- read_excel("datos/inflacion_esp.xlsx")
inflacion_esp <- inflacion_esp %>% pivot_longer(cols = 2:23, names_to = "date")
#rio::export(inflacion_esp,"./datos/inflacion_esp.csv")
inflacion_esp <- read_csv("datos/inflacion_esp.csv",
col_types = cols(date = col_date(format = "%Y/%m")))
ponderacion_componentesIPC <- read_excel("datos/ponderacion_componentesIPC.xls")
ponderacion_componentesIPC <- ponderacion_componentesIPC %>% pivot_longer(cols = 2:6, names_to = "date")
#rio::export(ponderacion_componentesIPC,"./datos/ponderacion_componentesIPC.csv")
ponderacion_componentesIPC <- read_csv("datos/ponderacion_componentesIPC.csv",
col_types = cols(date = col_number(),
value = col_number()))
inflacion_coumindades <- read_excel("datos/inflacion_coumindades.xls")
inflacion_coumindades <- inflacion_coumindades %>% pivot_longer(cols = 2:23, names_to = "date")
#rio::export(inflacion_coumindades,"./datos/inflacion_coumindades.csv")
inflacion_comunidades <- read_csv("datos/inflacion_coumindades.csv",
col_types = cols(date = col_date(format = "%Y/%m")))
inflacion_provincias <- read_excel("datos/inflacion_provincias.xls")
inflacion_provincias <- inflacion_provincias %>% pivot_longer(cols = 2:23, names_to = "date")
#rio::export(inflacion_provincias,"./datos/inflacion_provincias.csv")
inflacion_provincias <- read_csv("datos/inflacion_provincias.csv",
col_types = cols(date = col_date(format = "%Y/%m")))
inflacion_var_esp <- read_excel("datos/var_interanual_esp.xlsx")
inflacion_var_esp <- inflacion_var_esp %>% pivot_longer(cols = 2:360, names_to = "date")
#rio::export(inflacion_var_esp,"./datos/inflacion_var_esp.csv")
inflacion_var_esp <- read_csv("datos/inflacion_var_esp.csv",
col_types = cols(date = col_date(format = "%Y/%m")))
#Datos en formato polĆgono para poder eralizar un mapa de coropletas interactivo
shapefile_provincias <- shapefile("shp/Provincias_ETRS89_30N.shp")
#Datos para la realizaciĆ³n del grĆ”fico sobre la predicciĆ³n
prediccion_inflacion <- read_csv("datos/prediccion_inflacion.csv",
col_types = cols(Value = col_number()))
library(readr)
#my_url <- "https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/data/SDG_17_40/A.PC_GDP.S13.GD.EU27_2020+BE+BG+CZ+DK+DE+EE+IE+EL+ES+FR+HR+IT+CY+LV+LT+LU+HU+MT+NL+AT+PL+PT+RO+SI+SK+FI+SE+IS+NO+CH+UK/?format=SDMX-CSV&startPeriod=2020&endPeriod=2020"
#curl::curl_download(my_url, "./datos/deuda_eu.csv")
df_csv <- rio::import("./datos/deuda_eu.csv")
deuda_eu <- read_csv("./datos/deuda_eu.csv",
col_types = cols(OBS_VALUE = col_number())) %>%
dplyr::select(geo, OBS_VALUE) %>%
mutate(value = OBS_VALUE/100)
# Datos del Banco de espaƱa para tratar de analizar la influencia de la inflaciĆ³n en la poblaciĆ³n
#Este primero estĆ” relacionado con el porcentaje de activos reales que posee cada percentil de renta
datos_esp_prop <- read_excel("datos/datos_esp_prop.xlsx",
col_types = c("text", "numeric", "numeric",
"numeric", "numeric"))
datos_esp_prop <- datos_esp_prop %>% pivot_longer(cols = 2:5, names_to = "Propiedad")
# Este segundo esta relacionado con la propiedad de activos financieros de cada percentil de renta
datos_esp_inv <- read_excel("datos/datos_esp_inv.xlsx",
col_types = c("text", "numeric", "numeric",
"numeric", "numeric"))
datos_esp_inv <- datos_esp_inv %>% pivot_longer(cols = 2:5, names_to = "Act_real")
# Datos de la OCDE de la prevision del crecimiento del PIB eurozon
crecimiento <- read_csv("datos/crecimiento.csv",
col_types = cols(Value = col_number()))
En primer lugar, un breve repaso histĆ³rico acerca de la inflaciĆ³n.
Para la serie histĆ³rica analizada se puede observar como la inflaciĆ³n mundial ha experimentado una reducciĆ³n drĆ”stica en los Ćŗltimos 30 aƱos.
#GRAFICO 1
p1 <- inflacion_agrup %>%
filter(country_name == "Mundo") %>%
filter(date >= 1981) %>% filter(series == "subyacente") %>%
dplyr::select(-(series))
p1 <- p1 %>% dplyr::select(-(country_name))
p11 <- inflacion_agrup %>%
filter(country_name == "Mundo") %>%
filter(date >= 1981) %>% filter(series == "general") %>%
dplyr::select(-(series))
p11 <- p11 %>% dplyr::select(-(country_name))
subyacente <- xts(p1$value, order.by = p1$date, frequency = 365)
general <- xts(p11$value, order.by = p11$date, frequency = 365)
p <- cbind(subyacente,general)
dygraph(p, ylab= "% inflaciĆ³n",
main = "EvoluciĆ³n InflaciĆ³n") %>%
dyOptions(colors = c("blue", "brownw")) %>%
dyRangeSelector()
ĀæA quĆ© se debe esta reducciĆ³n generalizada para todas las economĆas ?
Especialmente a los beneficios de la globalizaciĆ³n sobre el crecimiento econĆ³mico : La globalizaciĆ³n ha generado un efecto escala, que se deriva del mayor tamaƱo de mercado. Este mayor tamaƱo de mercado incentiva a las empresas a crecer y a adquirir mayores conocimientos, lo cual aumenta la productividad agregada y, con ello, se produce un aumento de la oferta agregada a nivel mundial. A todo esto le tenemos que sumar la importancia del avance tecnolĆ³gico en las Ćŗltimas dĆ©cadas.
Si desagregamos, se puede confirmar lo anteriormente mencionado, aunque las economĆas tienen un ajuste diferente todas llegan al mismo destino, a una inflaciĆ³n caracterizada por tasas de crecimiento estables.
inflacion_g9 <- inflacion_country %>% mutate(paises = country_name) %>% filter(country_name %in% c("United States","China", "Japan", "Germany", "United Kingdom", "India","France","Italy", "Korea, Rep.")) %>% filter(`Series Name` == "general")
inflacion_g9 <- ggplot(inflacion_g9, aes(x=date, y=value)) +
geom_line(data=inflacion_g9 %>% dplyr::select(-country_name), aes(group=paises), color="grey", size=0.5, alpha=1) +
geom_line( aes(color=country_name), color="#69b3a2", size=1.2 )+
scale_color_viridis(discrete = TRUE) +
theme_ipsum() +
theme(
legend.position="none",
plot.title = element_text(size=14),
panel.grid = element_blank()) +
facet_wrap(~country_name) + theme(plot.subtitle = element_text(family = "serif"),
plot.caption = element_text(family = "serif"),
axis.title = element_text(family = "serif"),
plot.title = element_text(family = "serif")) +
labs(
caption = "Fuente: ElaboraciĆ³n propia con datos del Banco Mundial") +
labs(x = NULL, y = "Valores en %")
Desde que abandonamos el patrĆ³n oro, la mayorĆa de las economĆas han adoptado por un incremento sostenido y controlado de precios para fomentar su crecimiento. Aunque no vamos a entrar a valorar, ya que darĆa para otro artĆculo la efectividad de esta estrategia, desde la crisis del petrĆ³leo de los aƱos 70 la economĆa mundial se ha caracterizado por una estabilidad de precios, al menos, con lo que respecta a las economĆas del G-20. Ejemplo de este razonamiento lo tenemos en la confianza que el mercado de divisas tiene en las monedas de dicha agrupaciĆ³n (G-20), divisas como el dĆ³lar o el euro se han instaurado como activos āsegurosā. Toda esta ārelativa estabilidadā ha seguido mejorando la confianza internacional a la hora de desarrollar y profundizar en el comercio internacional, potenciando los beneficios anteriormente descritos sobre el conjunto de la economĆa.
inflacion_barras <- read_excel("datos/inflacion_barras.xlsx",
col_types = c("text", "text", "text",
"numeric", "numeric", "numeric",
"text", "numeric")) %>%
dplyr::select(-(nada))
inflacion_barras <- inflacion_barras %>%
group_by(date) %>%
arrange(date, desc(acumulada)) %>%
mutate(ranking = row_number()) %>%
filter(ranking <=9) %>%
ungroup()
tabla_1 <- ggplot(inflacion_barras, aes(ranking, acumulada, country = code, size = 20)) +
geom_col(aes(ranking, acumulada, fill = country_name)) +
scale_fill_brewer(palette = "Spectral") +
geom_flag(aes(ranking, acumulada, country = code), size = 10) +
geom_text(aes(ranking, acumulada, label = as.factor(acumulada), size = 40), hjust= -0.5) +
geom_text(aes(x=9, y=600, label = as.factor(date)), vjust = 0.2, alpha = 0.5, col = "gray", size = 15) +
scale_x_reverse() +
coord_flip(clip = "off", expand = FALSE) +
theme_light() +
theme(
panel.grid = element_blank(),
legend.position = "none",
axis.ticks.y = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_blank()) +
lims(y = c(NA,700)) + theme(axis.line = element_line(colour = NA),
axis.ticks = element_line(colour = NA),
panel.grid.major = element_line(colour = NA),
panel.grid.minor = element_line(colour = NA),
axis.text = element_text(colour = NA),
plot.background = element_rect(colour = NA)) +labs(x = NULL, y = NULL)+
labs(title = "AcumulaciĆ³n historica de la inflaciĆ³n",
subtitle = "InflaciĆ³n general desde 1971 hasta 2020.",
caption = "Fuente: ElaboraciĆ³n propia con datos del Banco Mundial") +
transition_states(as.factor(date),transition_length = 1, state_length = 0, wrap = FALSE)
tabla_1 <- tabla_1 + theme(legend.position = "none")
#gganimate::animate(tabla_1, nframes = 650, fps = 30)
Si ampliamos el foco (vĆ©ase mapa mundi y tablas) no todas las economĆas han contribuido en la misma proporciĆ³n al crecimiento sostenido en precios, aunque a nivel agregado la tendencia es a una reducciĆ³n de la tasa de crecimiento de los precios hasta estabilizarse en valores ārazonablesā desde una perspectiva actual (vĆ©ase punto 4.4).
Como se puede apreciar, las economĆas menos desarrolladas, disponen de mayores tasas de crecimiento en precios, esto se puede a diversidad de factores que no vamos a entrar a analizar, simplemente para hacer saber al lector que no en todos los paĆses del mundo se ha instaurado la estabilidad en precios. Es por eso que no los tendremos en cuenta a la hora de analizar el problema actual, ya que sĆ³n economĆas que per se, disponen de tasas de inflaciĆ³n mucho mĆ”s elevadas que las economĆas donde la estabilidad en precios si ha sido en la historia mĆ”s reciente un autĆ©ntico Ć©xito. Dicho lo cual, para analizar este problema nos vamos a centrar en el contexto europeo y en especial, en el contexto espaƱol. Por variedad de razones;
Son economĆas que comparten polĆtica monetaria y moneda comĆŗn, hecho que facilita el anĆ”lisis.
Son economĆas similares, donde su estudio nos puede facilitar la comparaciĆ³n.
Son el economĆas que cumplen los requisitos establecido para nuestro anĆ”lisis (ruptura de la tendencia en estabilidad relativa en precios).
library(lubridate)
inflacion_geom_2 <- inflacion_geom %>% filter(`Series Name` == "general") %>%
mutate(anyo = lubridate::year(date)) %>%
group_by(date) %>%
filter(anyo >= 2000) %>%
mutate(deciles = ntile(value, n = 10))
mapa <- ggplot() +
geom_sf(data = inflacion_geom_2, aes(geometry = geometry, fill = deciles)) +
theme_void() +
theme(plot.subtitle = element_text(family = "serif", face = "italic"),
plot.title = element_text(family = "serif", face = "italic")) +
labs(title = "Mapa:InflaciĆ³n mundial", fill = "InflaciĆ³n") +
scale_fill_continuous(low="#fffcbf",high="#3e9851") +
transition_manual(anyo)+
labs(title = "AƱo: {current_frame}",
caption = "Fuente: ElaboraciĆ³n propia con datos del Banco Mundial")
# gganimate::animate(mapa, nframes= 100, fps= 4, end_pause = 5)
Note el lector, que para el anĆ”lisis de dicho problema, tambiĆ©n se podrĆa haber estudiado la economĆa norteamericana y haber extraĆdo conclusiones similares.
inflacion_country_sub <- inflacion_country %>%
filter(`Series Name` == "subyacente")
inflacion_country_gen <- inflacion_country %>%
filter(`Series Name` == "general")
tabla_mundo <- left_join(inflacion_country_sub, inflacion_country_gen, by = c("country-code" = "country-code", "date" = "date"))
tabla_mundo <- tabla_mundo %>%
dplyr::select(country_name.x, date, value.x, value.y) %>%
dplyr::rename(country = country_name.x, subyacente_1 = value.x, general_1 = value.y) %>% filter(country != "Afghanistan") %>%
filter(country != "Albania")
tabla_mundo <- tabla_mundo %>%
mutate(subyacente = round(subyacente_1, digits = 2)) %>%
mutate(general = round(general_1, digits = 2)) %>%
dplyr::select(-c(subyacente_1, general_1))
datatable(tabla_mundo, class ="stripe hover compact row-border" , filter = 'top')
AquĆ el lector puede apreciar lo anteriormente expuesto, y consultar en caso de que resulte de su interes la evoluciĆ³n histĆ³rica para cada zona geogrĆ”fica.
america_latina <- inflacion_agrup %>% filter(series == "general") %>%
filter(country_name %in% c("AmƩrica Latina y el Caribe", "Mundo")) %>% filter( date >= 1971)
america_latina <- ggplot() +
geom_line(data = america_latina, aes(date, value, color = country_name), size=1) +
scale_color_viridis(discrete = TRUE) +
theme(
legend.position="none",
plot.title = element_text(size=14)
) +
ggtitle("Inflacion mundial") +
theme_ipsum() + theme(plot.subtitle = element_text(family = "serif"),
plot.caption = element_text(family = "serif"),
axis.title = element_text(family = "serif"),
plot.title = element_text(family = "serif")) +labs(title = "Grafica 3: America latina vs Mundo", subtitle = "(InflaciĆ³n general)",
x = NULL, y = "Valores en %") + theme(legend.text = element_text(size = 12),
legend.position = "bottom", legend.direction = "horizontal") +labs(colour = NULL, caption = "Fuente: ElaboraciĆ³n propia con datos del Banco Mundial")
america_latina
america_norte <- inflacion_agrup %>% filter(series == "general") %>%
filter(country_name %in% c ("AmƩrica del Norte", "Mundo")) %>% filter( date >= 1971)
america_norte <- ggplot() +
geom_line(data = america_norte, aes(date, value, color = country_name), size=1) +
scale_color_viridis(discrete = TRUE) +
theme(
legend.position="none",
plot.title = element_text(size=14)
) +
ggtitle("Inflacion mundial") +
theme_ipsum() + theme(plot.subtitle = element_text(family = "serif"),
plot.caption = element_text(family = "serif"),
axis.title = element_text(family = "serif"),
plot.title = element_text(family = "serif")) +labs(title = "Grafica 3: America del Norte vs Mundo", subtitle = "(InflaciĆ³n general)",
x = NULL, y = "Valores en %") + theme(legend.text = element_text(size = 12),
legend.position = "bottom", legend.direction = "horizontal") +labs(colour = NULL, caption = "Fuente: ElaboraciĆ³n propia con datos del Banco Mundial")
america_norte
union_europea <- inflacion_agrup %>% filter(series == "general") %>%
filter(country_name %in% c("UniĆ³n Europea", "Mundo")) %>% filter(date >= 1971)
union_europea <- ggplot() +
geom_line(data = union_europea, aes(date, value, color = country_name), size=1) +
scale_color_viridis(discrete = TRUE) +
theme(
legend.position="none",
plot.title = element_text(size=14)
) +
ggtitle("Inflacion mundial") +
theme_ipsum() + theme(plot.subtitle = element_text(family = "serif"),
plot.caption = element_text(family = "serif"),
axis.title = element_text(family = "serif"),
plot.title = element_text(family = "serif")) +labs(title = "Grafica 3: Union Europea vs Mundo", subtitle = "(InflaciĆ³n general)",
x = NULL, y = "Valores en %") + theme(legend.text = element_text(size = 12),
legend.position = "bottom", legend.direction = "horizontal") +labs(colour = NULL, caption = "Fuente: ElaboraciĆ³n propia con datos del Banco Mundial")
union_europea
africa_sahara <- inflacion_agrup %>% filter(series == "general") %>%
filter(country_name %in% c("Ćfrica al sur del Sahara", "Mundo")) %>% filter( date >= 1971)
africa_sahara <- ggplot(africa_sahara, aes(date, value, color=country_name)) +
geom_line(size=1) +
scale_color_viridis(discrete = TRUE) +
theme(
legend.position="none",
plot.title = element_text(size=14)
) +
ggtitle("Inflacion mundial") +
theme_ipsum() + theme(plot.subtitle = element_text(family = "serif"),
plot.caption = element_text(family = "serif"),
axis.title = element_text(family = "serif"),
plot.title = element_text(family = "serif")) +labs(title = "Grafica 3: Africa Subsahariana vs Mundo", subtitle = "(InflaciĆ³n general)",
x = NULL, y = "Valores en %") + theme(legend.text = element_text(size = 12),
legend.position = "bottom", legend.direction = "horizontal") +labs(colour = NULL, caption = "Fuente: ElaboraciĆ³n propia con datos del Banco Mundial")
africa_sahara
asia_pacifico <- inflacion_agrup %>% filter(series == "general") %>%
filter(country_name %in% c("Asia oriental y el PacĆfico", "Mundo")) %>% filter( date >= 1971)
asia_pacifico <- ggplot(asia_pacifico, aes(date, value, color=country_name)) +
geom_line(size=1) +
scale_color_viridis(discrete = TRUE) +
theme(
legend.position="none",
plot.title = element_text(size=14)
) +
ggtitle("Inflacion mundial") +
theme_ipsum() + theme(plot.subtitle = element_text(family = "serif"),
plot.caption = element_text(family = "serif"),
axis.title = element_text(family = "serif"),
plot.title = element_text(family = "serif")) +labs(title = "Grafica 3:Asia y el Pacifico vs Mundo", subtitle = "(InflaciĆ³n general)",
x = NULL, y = "Valores en %") + theme(legend.text = element_text(size = 12),
legend.position = "bottom", legend.direction = "horizontal") +labs(colour = NULL, caption = "Fuente: ElaboraciĆ³n propia con datos del Banco Mundial")
asia_pacifico
Las excepciones anteriormente mencionadas, valores que pueden ser considerados como āoutliersā, en nuestro estudio. No tiene ningun sentido estudiar el problema inflacionista actual en economias que histĆ³ricamente presentan distorsiones estructurales en la variable estudio.
library(patchwork)
inflacion_country_2 <- inflacion_country %>% mutate(anyo =lubridate::year(date))
inflacion_country_top <- inflacion_country_2 %>%
filter(`Series Name` == "general") %>%
filter(anyo == 2020) %>%
mutate(valor = round(value, digits = 2)) %>%
mutate(simbolo = "+") %>%
mutate(simbolo2 = "%") %>%
slice_max(value, n=5)
deflacion_country_min <- inflacion_country_2 %>% filter(`Series Name` == "general") %>%
filter( anyo == 2020) %>%
mutate(valor = round(value, digits = 2)) %>%
slice_min(value, n = 5)
p2 <- ggplot( inflacion_country_top, aes( reorder(country_name, value), value, fill = country_name, country=code, width = 0.5 ))+
geom_bar( stat = "identity") +
scale_fill_brewer(palette = "Spectral") +
geom_flag( y= -18, size=15 ) +
coord_flip() +
geom_text( aes(label= simbolo),
hjust = -0.4, size = 5,
position = position_dodge(width = 1),
inherit.aes = TRUE) +
geom_text( aes(label = valor),
hjust = -0.4, size = 5,
inherit. = TRUE) +
theme(aspect.ratio = 0.5) +
lims(y= c(NA,700)) + theme(axis.text = element_text(size = 11,
face = "bold"), axis.text.x = element_text(size = 0,
colour = "white")) +labs(x = "Valores expresado en %", y = NULL) + theme(panel.background = element_rect(fill = NA)) + theme(plot.subtitle = element_text(size = 14),
axis.text.x = element_text(vjust = 0),
plot.title = element_text(size = 15,
face = "bold")) +labs(title = "Diferencias entre los extremos",
subtitle = "Paises con mayor inflaciĆ³n y deflaciĆ³n general en 2020") +
theme(axis.line = element_line(colour = NA),
axis.ticks = element_line(colour = NA)) + theme(legend.position = "none")
p3 <- ggplot(deflacion_country_min, aes(reorder(country_name, value), value, fill = country_name, country=code))+
geom_bar(stat = "identity") +
geom_flag(y = 2, size = 15) +
scale_fill_brewer(palette = "Greens") +
geom_text( aes(label = valor),
vjust = 1.2, size = 5,
inherit. = TRUE) +
geom_text( aes(label = country_name),
vjust = -2, size = 5,
inherit. = TRUE) +
lims(y= c(-31,4)) +
theme(plot.subtitle = element_text(size = 14,
face = "bold"), axis.line = element_line(colour = NA),
axis.ticks = element_line(colour = NA),
axis.text = element_text(colour = NA),
panel.background = element_rect(fill = NA),
plot.background = element_rect(colour = NA)) +labs( x= NULL, y = NULL, caption = "Fuente: ElaboraciĆ³n propia con datos del Banco Mundial.") + theme(legend.position = "none")
p2 + inset_element(p3, left = 0.3, right = 1, bottom = -0.2, top = 0.8)
En resumen y la conslusiĆ³n que queremos remarcar antes de entrar en materia, es que en los Ćŗltimos 30 aƱos se ha acelerado el proceso de especializaciĆ³n productiva (si no tenemos en cuenta las excepciones), reduciendo los costes de producciĆ³n y fomentando el avance tecnolĆ³gico. Todo esto se traduce en una reducciĆ³n de los precios de los bienes y servicios que se comercian a nivel internacional, mejorando la calidad de vida de los agentes econĆ³micos.
El fenĆ³meno anteriormente descrito (reducciĆ³n mundial de los datos de inflaciĆ³n) tambiĆ©n se ha hecho visible en el viejo continente. En los Ćŗltimos aƱos, casi toda eurozona, se habĆa acostumbrado a que los precios altos dejarĆ”n de ser un dolor de cabeza. MĆ”s aĆŗn, cuando, a diferencia de otras economĆas como bien puede ser la estadounidense, el BCE se ha comprometido, casi desde su creaciĆ³n, a fijar su polĆtica monetaria para asegurar que la inflaciĆ³n se estabilice en su objetivo del 2 % a medio plazo.
Desde finales de verano de 2021, esta tendencia de estabilidad relativa de precios se ha quebrado.
mapa_2 <- ggplot() +
geom_sf(data = inflacion_geom_europ, aes(geometry = geometry, fill = value )) +
theme_void() +
theme(plot.subtitle = element_text(family = "serif", face = "italic"),
plot.title = element_text(family = "serif", face = "italic")) +
labs(title = "Mapa:InflaciĆ³n mundial", fill = "InflaciĆ³n") +
scale_fill_continuous(low="#fffcbf",high="#d7372a") +
lims(y =c(35,70)) +
lims(x = c(-20, 40)) + transition_manual(date) +
labs(title = "AƱo: {current_frame}",
caption = "Datos de Eurostat")
gganimate::animate(mapa_2, nframes = 200, fps = 20, end_pause = 6)
El encarecimiento de la energĆa, los cuellos de botella de las cadenas de producciĆ³n y la estratĆ©gia en polĆtica monetaria adoptada para luchar contra la covid (incremento del flujo monetario en la economĆa) han despertado a la inflaciĆ³n en la mayorĆa de las economĆas.
Si nos centramos en el contexto europeo, la principal causa de inflaciĆ³n es clara (grĆ”fico aportaciĆ³n componentes a la inflaciĆ³n), los precios de la energĆa han experimentado un repunte exponencial en los dos Ćŗltimos trimestres.
Estos altos precios energƩticos deben a se deben a varios factores:
contribucion <- contribucion %>%
filter(date == "2021-10-01") %>%
slice_max (value , n = 20)
componentes_europa <- treemap(contribucion,
index="componente",
vSize="value",
type="index",
title="AportaciĆ³n componentes a la inflaciĆ³n interanual de Octubre 2021",
palette="Spectral",
border.col=c("white"),
border.lwds=3,
fontface.labels=1,
bg.labels=c("transparent"),
align.labels=c("center", "center"),
overlap.labels=0.5)
La variaciĆ³n interanual del Ćndice de precios de consumo armonizado (IPCA) para la eurozona fue del 4,4% en octubre, en el momento de su publicaciĆ³n, fue la cifra mĆ”s alta en la serie histĆ³rica de la oficina europea de estadĆsticas, que arranca en 1997. Este insĆ³lito rĆ©cord ha sido batido solo un mes despuĆ©s, con un nuevo mĆ”ximo histĆ³rico en el dato de variaciĆ³n interanual de precios de consumo armonizado (IPCA) situĆ”ndose en el 4,9 %, 0,8 p.Ā p.Ā superior al del mes anterior.
Un apunte a destacar, para que el lector pueda formarse una mejor opiniĆ³n al respecto, es que estos datos sĆ³lo representan una media, es decir, como podrĆ” observar mediante la tabla adjunta en el punto 5.4 con los datos de inflaciĆ³n, tendremos economĆas por encima del 4,4% y economĆas por debajo. Alemania, por ejemplo, economĆa siempre sensible a los movimientos de los precios, llega a tener datos de IPC anual del 4,6% para octubre. EspaƱa se queda en el 5,4%. Un solo mes ha bastado para que Eurostat presente nuevos rĆ©cords en los datos de inflaciĆ³n. Alemania incrementa su Ćŗltimo dato en 1,4 puntos para llegar su IPC anual al 6%. BĆ©lgica se sitĆŗa en algo mĆ”s del 7%, y le superan los tres paĆses bĆ”lticos (Lituania, Letonia y Estonia). EspaƱa, por su parte, se queda en el 5,6%. Los Ćŗnicos paĆses de la zona euro en los que podrĆa hablarse de una inflaciĆ³n contenida son Francia (3,4%) y Portugal (2,7%): De todos modos, la gran mayorĆa de economĆas del viejo continente superaron el objetivo establecido en el 2%, anteriormente mencionado.
inflacion_eurozona <- inflacion_eurozona %>% filter( TIME == "European Union - 27 countries (from 2020)")
inflacion_eurozona_sub <- inflacion_eurozona %>% filter(Tipo == "subyacente")
inflacion_eurozona_gen <- inflacion_eurozona %>% filter(Tipo == "general")
europa <- ggplot() +
geom_col(data = inflacion_eurozona_sub, aes(date, value, fill = value), color= "grey", alpha = 0.5) +
scale_fill_continuous(low="#ffffbf",high="#fee08b") +
geom_text(data = inflacion_eurozona_sub, aes(date, value, label = value), y=-0.2 ) +
geom_text(data = inflacion_eurozona_sub, aes(date, value, label = "%"), y=-0.2, hjust = -1 ) +
geom_line(data = inflacion_eurozona_gen, aes(date, value, color = value),size = 1.5) +
scale_color_continuous(low="#3288bd",high="#3288bd") +
geom_text(data = inflacion_eurozona_gen, aes(date, value, label = value), vjust = -2,hjust = 1) +
geom_text(data = inflacion_eurozona_gen, aes(date, value, label = "%"), vjust = -2, hjust = -0.2) +
geom_point(data = inflacion_eurozona_gen, aes(date, value), size = 4, color = "#3288bd") +
geom_hline(yintercept = 2,
size = 1.5,
colour = "#abdda4",
linetype = "dashed") +
annotate(geom = "text",
x= as.Date("2020-11-21"),
y = 2.2,
label = "Objetivo inflacion 2%",
size = 4,
color = "black") +
theme(axis.text.x = element_text(angle = 70, hjust = 1)) +
scale_x_date(date_labels="%b %y",date_breaks ="1 month") +
lims(y= c(-0.3,5)) +
theme(panel.grid.major = element_line(colour = "darkgray",
linetype = "dashed"),
panel.grid.minor = element_line(colour = NA),
panel.background = element_rect(fill = NA),
plot.background = element_rect(colour = NA),
legend.position = "none") +labs(x = NULL, y = "Valores expresados en %") +
theme(panel.grid.major = element_line(colour = NA)) +
theme(legend.position = "right", legend.direction = "horizontal") +
labs(fill = "Subyacente") +
theme(legend.position = c(0.20, 0.8)) +
labs(colour = "General") +
theme(legend.text = element_text(colour = NA),
legend.title = element_text(face = "bold"),
legend.key = element_rect(fill = NA),
legend.background = element_rect(fill = NA))+labs(colour = "General ") +
theme(axis.text = element_text(size = 12,
face = "bold"), axis.text.y = element_text(size = 12)) +
theme(axis.line = element_line(linetype = "solid")) +
theme(axis.line = element_line(linetype = "blank"),
axis.ticks = element_line(colour = NA,
linetype = "blank"), plot.title = element_text(size = 14,
face = "bold"), legend.text = element_text(colour = "black")) +labs(title = "EvoluciĆ³n de la inflaciĆ³n en la Comunidad Europea",
subtitle = "InclaciĆ³n mensual ", caption = "Fuente: ElaboracĆ³n propia con datos de Eurostat") +
theme(axis.ticks = element_line(linetype = "solid"),
axis.text = element_text(colour = NA),
axis.text.x = element_text(colour = "black")) +labs(subtitle = "InclaciĆ³n mensual (Europa de los 27)") +
labs(y = NULL)
europa
Este problema nos llega en el peor momento posible para toda la eurozona. Aunque si hay economĆas con una buena estructura macroeconĆ³mica, otras, como el caso de la espaƱola o la italiana presentan ciertos desajustes que solo han hecho mĆ”s que de agravarse desde la llegada de la Covid-19. Cabe recordar que en la UE, la polĆtica monetaria estĆ” completamente supeditada por el BCE, por tanto las diferentes naciones no gozan de autonomĆa monetaria. La conclusiĆ³n es clara, la economĆa estĆ” sufriendo un shock dentro de su camino de recuperaciĆ³n del anterior shock , uno protagonizado por el alza en precios y otro por la paralizaciĆ³n econĆ³mica como consecuencia de la pandemia, por tanto, el problema original, como a continuaciĆ³n expondremos, solo ha hecho que complicar la incierta situaciĆ³n en la que desgraciadamente en los Ćŗltimos aƱos nos desenvolvemos.
library(tidyverse)
library(DT)
inflacion_eurozona <- read_csv("datos/inflacion_eurozona.csv",
col_types = cols(date = col_date(format = "%Y/%m")))
inflacion_eurozona_sub <- inflacion_eurozona %>% filter(Tipo == "subyacente") %>% rename(country = TIME)
inflacion_eurozona_gen <- inflacion_eurozona %>% filter(Tipo == "general") %>% rename(country = TIME)
tabla_inflacion <- left_join(inflacion_eurozona_gen, inflacion_eurozona_sub, by = c("date" = "date", "country" = "country"))
tabla_inflacion <- tabla_inflacion %>%
dplyr::select(country, date, Tipo.x, value.x, Tipo.y, value.y) %>%
dplyr::select(-(c(Tipo.x , Tipo.y))) %>%
rename(general = value.x, subyacente = value.y)
datatable(tabla_inflacion, class ="stripe hover compact row-border" , filter = 'top')
El precio de la luz dispara el IPC hasta el 5,6 %, su tasa mƔs alta en 29 aƱos.
Si nos centramos en el contexto espaƱol, la situaciĆ³n, como ya avanzamos, es tambiĆ©n crĆtica. El Ćŗltimo dato publicado por el Instituto Nacional de EstadĆstica (INE), marca un nuevo pico para la inflaciĆ³n este aƱo (5,6%), su tasa mĆ”s alta en 29 aƱos. Nuestra economĆa domĆ©stica se encuentra en una tendencia alcista desde el pasado marzo. La implicaciĆ³n econĆ³mica es clara; se estĆ” produciendo un encarecimiento del coste de la vida. Las causas sĆ³n las mismas que las anteriormente mencionadas para el contexto europeo (altos precios de la electricidad y los combustibles, el repunte del consumo y los problemas en las cadenas de suministro globales, falta de contenedores, escasez de trabajadores, carencia de chipsā¦).
inflacion_esp_gen <- inflacion_esp %>% filter(tipo == "general")
inflacion_esp_sub <- inflacion_esp %>% filter(tipo == "subyacente")
esp <- ggplot() +
geom_line(data = inflacion_esp_gen, aes(date, value, colour = tipo), size = 1.5) +
geom_point(data = inflacion_esp_gen, aes(date, value, colour = tipo, shape = tipo), size = 3) +
geom_text(data = inflacion_esp_gen, aes(date, value, label = value, colour = tipo), vjust = 2.5,hjust = 0.5, size = 3) +
geom_text(data = inflacion_esp_gen, aes(date, value, label = "%", colour = tipo), vjust = 2.5,hjust = -1, size = 3) +
geom_line(data = inflacion_esp_sub, aes(date, value, colour = tipo), size = 1.5) +
geom_point(data = inflacion_esp_sub, aes(date, value, colour = tipo, shape = tipo), size = 3) +
geom_text(data = inflacion_esp_sub, aes(date, value, label = value, colour = tipo), vjust = -1.5,hjust = 0.75, size = 3) +
geom_text(data = inflacion_esp_sub, aes(date, value, label = "%", colour = tipo), vjust = -1.5,hjust = -0.5, size = 3) +
scale_color_manual(breaks = c("general", "subyacente"),
values=c("#00008B", "#00BFFF")) +
geom_hline(yintercept = 0,
size = 0.25,
colour = "black",
linetype = "dashed") +
scale_x_date(date_labels="%b %y",date_breaks = "1 month") +
theme(axis.text.x = element_text(angle = 70, hjust = 1)) +
lims(y= c(-1, 6.5)) +
labs(x = NULL) +
labs(caption = "Fuente: ElaboraciĆ³n propia con datos de INEbase") +
theme(panel.grid.major = element_line(colour = NA)) +
theme(panel.background = element_rect(fill = "transparent")) +
theme(legend.title=element_blank()) +
theme(axis.title.y=element_blank(), axis.text.y=element_blank(),
axis.ticks.y=element_blank()) +
labs(colour = "General") + theme(plot.subtitle = element_text(colour = "gray24"),
panel.grid.major = element_line(colour = "white"),
panel.grid.minor = element_line(colour = "white"),
panel.background = element_rect(colour = "white"),
legend.position = "bottom", legend.background = element_rect(fill = "transparent"),
legend.direction = "horizontal") +
labs(title = "EvoluciĆ³n anual del IPC", subtitle = "Ćndice general y subyacente.") +
guides(shape = FALSE)
#grafico 2
esp_1 <- ggplot() +
geom_line(data = inflacion_var_esp, aes(date, value), colour = "#212F3D", size = 1.5) +
scale_x_date(date_labels="%Y",date_breaks ="5 years") +
geom_hline(yintercept =0,
size = 0.25,
colour = "black") +
annotate("rect",
xmin = as.Date("2020-01-01"),
xmax = as.Date("2022-11-01"),
ymin = -Inf,
ymax = Inf,
alpha = 0.4,
fill = "pink") +
scale_y_continuous(breaks = seq(-1, 6, 1)) +
labs(title = "VariaciĆ³n en los ultimos 30 aƱos.", subtitle = "Ćndice general.") +
theme(axis.line = element_line(size = 0.05,
linetype = "solid"), panel.grid.major = element_line(colour = "gray88",
size = 0.25, linetype = "twodash"), panel.grid.minor = element_line(colour = NA),
axis.text = element_text(face = "italic",
colour = "gray10"), axis.text.x = element_text(colour = "gray10"),
panel.background = element_rect(fill = NA,
colour = "aquamarine4"))+labs(x = NULL, y = NULL)
#esp + inset_element(esp_1, left = 0, right = 0.4, bottom = 0.5, top = 0.9)
En lo que respecta a la ponderaciĆ³n por componentes, como se puede apreciar, el patrĆ³n de pesos de cada partida que considera el INE para calcular el IPC no ha experimentado significativos cambios desde 2017. Puede sorprender que la partida de 04, aunque sĆ ha experimentado un incremento, no es tan marcado como el real, esto se debe simplemente al formato de cĆ”lculo. Con todo, el gran incremento del grupo 01 compensa las pequeƱas bajadas que han experimentado grupos como Ocio y cultura y RestauraciĆ³n y hoteles. Bajadas razonables si tenemos en consideraciĆ³n la situaciĆ³n sanitaria de los Ćŗltimos 2 aƱos.
componentes <- ggplot(ponderacion_componentesIPC, aes(Componentes, value, fill = as_factor(date)))+
geom_col(position = position_stack(reverse = TRUE)) +
coord_flip() +
scale_fill_brewer(palette = "Spectral") +
theme(panel.grid.major = element_line(colour = NA),
panel.grid.minor = element_line(colour = NA),
axis.text = element_text(face = "bold"),
legend.title = element_text(size = 14,
face = "bold"), panel.background = element_rect(fill = NA),
plot.background = element_rect(colour = NA),
legend.position = "bottom", legend.direction = "horizontal") +
labs(title = "Ponderaciones por grupos IPC",
x = NULL, y = "Unidades: %1000 en base 2016",
fill = NULL, subtitle = "AcumulaciĆ³n por grupos del periodo 2017-2021") +
theme(legend.position = "left", legend.direction = "vertical") +
labs(caption = "Fuente: Elaboracion propia con datos del INE")
componentes <- ggplotly(componentes)
componentes
Si minimizamos el foco de anĆ”lisis y desagregamos por CCAA, podemos observar como todas, exceptuando las islas canarias, disponen de peores datos que la media para la UE_27. Mayores conclusiones podemos extraer si analizamos el problema mediante datos por provincias (vĆ©ase mapa de provincias). Los mayores datos de inflaciĆ³n se encuentran en aquellas provincias caracterizadas por realizar actividades primarias/secundarias. Una explicaciĆ³n razonable se puede deber a la falta de capacidad de estos sectores para trasladar todo el sobrecoste adicional de los precios de la electricidad y materias primas a los siguientes eslabones en la cadena de valor. Aunque consideramos que puede ser un tema muy interesante, no vamos a entrar a estudiar en profundidad estos subtemas que surgen en nuestro artĆculo, ya que nos estamos a centrando mĆ”s en el estudio de la inflaciĆ³n a mayor escala, perĆ³ sĆ nos parece relevante al menos presentar los datos desagregados para observar en quĆ© zonas geogrĆ”ficas de EspaƱa, la pĆ©rdida de poder adquisitivo de las familias es mĆ”s acusada.
comunidades <- inflacion_comunidades %>%
filter(date == "2021-10-01") %>%
mutate(id = seq(1:19))
number_of_bar <- nrow(comunidades)
angle <- 90 - 360 * (comunidades$id-0.5) /number_of_bar
comunidades$hjust<-ifelse( angle < -90, 1, 0)
comunidades$angle<-ifelse(angle < -90, angle+180, angle)
p <- ggplot(comunidades, aes( as.factor(id),value, fill=nombre_comunidad)) +
geom_bar(stat="identity") +
scale_fill_manual(breaks = c("AndalucĆa", "AragĆ³n", "Principado de Asturias","Illes Balears","Canarias"," Cantabria","Castilla y LeĆ³n","Castilla - La Mancha","CataluƱa","Comunitat Valenciana","Extremadura","Galicia","Comunidad de Madrid","RegiĆ³n de Murcia","Comunidad Foral de Navarra","PaĆs Vasco","La Rioja","Ceuta","Melilla"),
values=c("#546e7a", "#fb8c00","#1b5e20","#00897b","#f4511e","#689f38","#ffca28","#4dd0e1","#01579b","#bdbdbd","#1a237e","#82b1ff","#5e35b1","#ffff00","#d500f9","#d4e157","#6d4c41","#e57373","#c51162")) +
ylim(-5,7) +
theme_minimal() +
theme(
axis.text = element_blank(),
axis.title = element_blank(),
panel.grid = element_blank(),
plot.margin = unit(rep(-1,4), "cm")) +
coord_polar(start = 0) +
geom_text(data=comunidades, aes(id, value+0.5, label=value, hjust=hjust ), color="black", fontface="bold",alpha=0.6, size=5, angle= comunidades$angle, inherit.aes = FALSE ) + labs(fill = "Comunidades") +
labs(x = NULL, fill = NULL)
p
data_prov <- tidy(shapefile_provincias)
data_prov$group <- as.character(data_prov$group)
nombres_provincias <- read_excel("datos/nombres_provincias.xlsx")
data_provincias_mapa <- left_join(data_prov, nombres_provincias, by = "id") %>% rename(prov = shapefile_provincias.Texto)
inflacion_prov <- read_excel("shp/inflacion_prov.xlsx")
inflacion_prov <- inflacion_prov %>% rename(id2 = id)
mapa_prov <- left_join(inflacion_prov, data_provincias_mapa, by = c("id2" = "id"))
aa <- mapa_prov %>%
ggplot(aes( x= long, y = lat, group = group)) +
geom_polygon(aes(fill=value),
color = "white", size = 0.2) +
labs( title = "Tasa de Riesgo de Pobreza por Comunidades AutĆ³nomas",
subtitle = "Unidades: Porcentaje",
caption = "Fuente: INE",
fill = "Tasa (%)") +
theme_minimal() +
theme(
axis.line = element_blank(),
axis.text = element_blank(),
axis.title = element_blank(),
axis.ticks = element_blank(),
plot.background = element_rect(fill = "snow", color = NA),
panel.background = element_rect(fill= "snow", color = NA),
plot.title = element_text(size = 16, hjust = 0),
plot.subtitle = element_text(size = 12, hjust = 0),
plot.caption = element_text(size = 8, hjust = 1),
legend.title = element_text(color = "grey40", size = 8),
legend.text = element_text(color = "grey40", size = 7, hjust = 0),
legend.position = c(0.93, 0.3),
plot.margin = unit(c(0.5,2,0.5,1), "cm")) +
theme_minimal() +
theme(
axis.line = element_blank(),
axis.text = element_blank(),
axis.title = element_blank(),
axis.ticks = element_blank(),
panel.background = element_rect(colour= "darkgrey", size= 0.5)) +
ggtitle("Provincias EspaƱolas")
aa <- ggplotly(aa)
aa
provincia_max <- inflacion_provincias %>% filter(date == "2021-10-01") %>% slice_max(value, n=1) %>%
dplyr::select(-date) %>%
rename(inflacion = value)
banderas <- c("https://upload.wikimedia.org/wikipedia/commons/6/63/Bandera_de_Le%C3%B3n_%28ciudad%29.svg", "https://upload.wikimedia.org/wikipedia/commons/b/bf/Bandera_de_la_provincia_de_Toledo.svg")
provincia_max_urls <- provincia_max %>% group_by(nombre_provincia) %>%
add_column(banderas) %>% ungroup()
Tabla_max <- provincia_max_urls %>% gt()
Tabla_max <- Tabla_max %>%
tab_header(title = md("**Provincia con mayor inflaciĆ³n**"),subtitle = md("A fecha: 01-10-2021"))
Tabla_max <- Tabla_max %>%
tab_options(heading.background.color = "#9ccc65") %>% tab_options(heading.title.font.size = 15, heading.subtitle.font.size = 13, column_labels.font.weight = "bold")
Tabla_max <- Tabla_max %>%
gt::text_transform(locations = cells_body(columns = vars(banderas)), fn = function(x) {gt::web_image(x, height = 50)}) %>% cols_align(
align = "center")
provincia_min <- inflacion_provincias %>% filter(date == "2021-10-01") %>%
slice_min(value, n=1) %>%
dplyr::select(-date) %>% rename(inflacion = value)
bandera <- c("https://upload.wikimedia.org/wikipedia/commons/9/9c/Bandera_Provincial_de_Las_Palmas.png")
provincia_min_urls <- provincia_min %>% group_by(nombre_provincia) %>%
add_column(bandera) %>% ungroup()
Tabla_min <- provincia_min_urls %>% gt()
Tabla_min <- Tabla_min %>%
tab_header(title = md("**Provincia con menor inflaciĆ³n**"),subtitle = md("A fecha: 01-10-2021"))
Tabla_min <- Tabla_min %>%
tab_options(heading.background.color = "#9ccc65") %>% tab_options(heading.title.font.size = 15, heading.subtitle.font.size = 13, column_labels.font.weight = "bold")
Tabla_min <- Tabla_min %>%
gt::text_transform(locations = cells_body(columns = vars(bandera)), fn = function(x) {gt::web_image(x, height = 50)}) %>% cols_align(
align = "center")
inflacion_provincias <- inflacion_provincias %>%
filter(date == "2021-10-01") %>%
rename(inflacion = value)
datatable(inflacion_provincias, class ="stripe hover compact row-border" , filter = 'top')
Para el caso espaƱol esta situaciĆ³n (aumento de los precios energĆ©ticos) le perjudica en mayor medida. Como es bien sabido, nuestra economĆa se caracteriza por una fuerte dependencia energĆ©tica exterior. Si consultamos los Ćŗltimos datos del Instituto Nacional de EstadĆstica (INE), en EspaƱa apenas se produce un tercio de la energĆa que se consume. Estos datos sitĆŗan a EspaƱa como uno de los paĆses de la UniĆ³n Europea mĆ”s dependientes energĆ©tica, ya que la media de la UE se sitĆŗa cerca del 50%. Este factor es clave para entender, en parte, el problema actual, y es una de las variables en las que se deberĆa empezar a centrar EspaƱa. Si no es asĆ, las futuras fluctuaciones del precio de la energĆa, generan inestabilidades en el coste de vida periĆ³dicamente, y en paralelo a los shocks. El futuro es incierto, y aunque se ha gozado de un perĆodo de estabilidad, nadie nos garantiza que las fluctuaciones no se repitan de forma prolongada.
Una inflaciĆ³n suficientemente alta perjudica a todo el mundo (o a casi todo el mundo), especialmente cuando Ć©sta es prolongada. Pero si tomamos como referencia las hipĆ³tesis que estĆ”n adoptando organismos internacionales y banco central europeo:
ššŖšŗ Lagarde no se da por vencida: "La inflaciĆ³n es transitoria y tiene forma de joroba"https://t.co/R4XFp89lAo pic.twitter.com/n03ga3yyzb
ā elEconomista.es (@elEconomistaes) December 3, 2021
Es decir, si asumimos que la inflaciĆ³n va a ser transitoria, que efectos puede tener sobre los agentes econĆ³micos, Āæa quiĆ©n afecta mĆ”s la inflaciĆ³n?
Los efectos redistributivos en un perĆodo corto de inflaciĆ³n ācontroladaā dependen de la estructura patrimonial y de la estructura de ingresos y gastos de los distintos individuos que conforman una determinada economĆa. La inflaciĆ³n es mĆ”s daƱina para aquellos agentes que tengan en cartera activos de renta fija en lugar de activos de renta variable (histĆ³ricamente Ć©sta se revalorizan en perĆodos de inflaciĆ³n). Es decir, aquellos agentes que carezcan de deuda (o cuya deuda estĆ© indexada a la inflaciĆ³n) y que dispongan de ingresos/gastos insensibles a la inflaciĆ³n en el corto plazo pueden verse beneficiados por la alza de precios. Por tanto, los agentes que no se hallen en esta situaciĆ³n (no disponen de una cartera patrimonial que se revalorice con la inflaciĆ³n) verĆ”n cĆ³mo su patrimonio neto se reduce en tĆ©rminos reales, junto a su capacidad de generaciĆ³n de nuevo ahorro en tĆ©rminos reales (bajo supuesto que no se producen revalorizaciones salariales en dicho perĆodo mayores a la inflaciĆ³n).
La pregunta que debe formularse el lector es clara:
ĀæEn quĆ© medida se encuentran distribuidos las familias entre dichas categorĆas?
Analicemos, pues, en quĆ© medida los ricos y los pobres se hallan en estas distintas categorĆas en nuestra economĆa domĆ©stica.
SegĆŗn los Ćŗltimos datos que dispone el Banco de EspaƱa, el porcentaje de familias con activos reales incrementa con la renta. Recuerde el lector dichos activos se caracterizan por tener cierta capacidad de revalorizarse con la inflaciĆ³n. Como se puede observar, mientras que 9 de cada 10 familias que conforman el decil con mayores ingresos disponen de vivienda principal en propiedad, solo el 65% aproximadamente del quintil mĆ”s pobre dispone de ella. Obtenemos resultados similares respecto a otros activos reales como las otras propiedades:
prop <- ggplot() +
geom_col(data = datos_esp_prop, aes(x = reorder(Propiedad, value), y = value, fill = `Percentil de renta`), position = "dodge") +
scale_fill_brewer(palette = "Greens") + theme(axis.text.x = element_text(colour = "black"),
panel.background = element_rect(fill = "white"),
plot.background = element_rect(fill = "white")) +labs(title = "Propiedad activos reales ",
x = NULL, y = NULL, caption = "Fuente: ElaboraciĆ³n propia con datos del Banco de EspaƱa")+labs(y = "Valore en %") +
theme(legend.position = "bottom", legend.direction = "horizontal")
Para la composiciĆ³n de los activos financieros disponemos de resultados similares. Como se puede observar, las familias situadas en los primeros deciles estĆ”n sesgadas hacia los activos de renta fija.
inv <- ggplot() +
geom_col(data = datos_esp_inv, aes( x = reorder (Act_real, value), y = value, fill = `PERCENTIL DE RENTA`), position = "dodge") +
scale_fill_brewer() +
theme(panel.background = element_rect(fill = "white")) +
labs(title = "Porcentaje de activos financieros",
x = NULL, y = "valores en %", caption = "Fuente: ElaboraciĆ³n propia con datos del Banco de EspaƱa ") +
theme(legend.position = "bottom", legend.direction = "horizontal")
A todo esto, cabe destacar, que por norma general, los ingresos/gastos de las rentas altas tienen la capacidad de adaptarse mejor a Ć©pocas de inflaciĆ³n. Esto es debido a variedad de motivos que afectan en mayor medida a las clases mĆ”s bajas; menor poder de negociaciĆ³n salarial, menores salarios, disponer de mayores proporciĆ³n de gastos fijos dependientes de la inflaciĆ³n, etc.
Queremos remarcar que estas conclusiĆ³n no debe ser aplicada a otras economĆas, los resultados dependen de cĆ³mo es la proporciĆ³n de posesiĆ³n de activos de renta fija vs renta variable en cada economĆa, sumado a otras variables que por simplicidad no hemos entrado a valorar en profundidad como bien puede ser la estructura del mercado de trabajo y la influencia que pueda tener la inflaciĆ³n sobre esta, el riesgo divisa, el volumen de paro, etc. PerĆ², bajo el supuesto de BCE (del que todos esperemos que no vaya mal encaminado), una conclusiĆ³n es clara; en EspaƱa la inflaciĆ³n perjudica especialmente a los mĆ”s pobres.
Las estimaciones de la OCDE sobre la evoluciĆ³n de la inflaciĆ³n estima que se volverĆ”n a datos por debajo del objetivo del 2%, tanto para Europa como para EspaƱa, a finales del 2022. Si no se cumplen las hipĆ³tesis, escenario no descartable ya que estos organismos se han caracterizado muchas veces por presentar errores en sus estimaciones, podemos esperar un perĆodo, donde se prorrogue mĆ”s de un Ćŗnico perĆodo. No sabemos quĆ© nos depararĆ” el futuro, pero una cosa queda clara, si las estimaciones no se cumplen, la alta inflaciĆ³n serĆ” desgarradora para una economĆa frĆ”gil que se encuentra en su senda de recuperaciĆ³n post-covid.
prediccion_df <- prediccion_inflacion %>%
dplyr::select(LOCATION, TIME, Value) %>%
mutate(fecha = lubridate::yq(TIME)) %>%
mutate(value = round(Value, 2)) %>%
dplyr::select(-TIME,-Value)
prediccion_df_ea17 <- prediccion_inflacion %>%
dplyr::select(LOCATION, TIME, Value) %>%
mutate(fecha = lubridate::yq(TIME)) %>%
mutate(value = round(Value, 2)) %>%
dplyr::select(-TIME,-Value) %>%
filter(LOCATION == "EA17")
prediccion_df_esp <- prediccion_inflacion %>%
dplyr::select(LOCATION, TIME, Value) %>%
mutate(fecha = lubridate::yq(TIME)) %>%
mutate(value = round(Value, 2)) %>%
dplyr::select(-TIME,-Value) %>%
filter(LOCATION == "ESP")
gg <- ggplot() +
geom_line(data = prediccion_df, aes(fecha, value, color = LOCATION), alpha = 0.2) +
geom_line(data = prediccion_df_ea17, aes(fecha, value), color= "#0288d1", size = 1.5) +
geom_point(data = prediccion_df_ea17, aes(fecha, value), color= "#0288d1", size = 3) +
geom_text(data = prediccion_df_ea17, aes(fecha, value, label = value, vjust = -2, hjust= 0.5)) +
geom_text(data = prediccion_df_ea17, aes(fecha, value, label = "%"), vjust = -2, hjust= -1.3) +
geom_hline(yintercept = 2,
size = 1.5,
colour = "#2e7d32",
linetype = "dashed") +
annotate("rect",
xmin = as.Date("2021-09-01"),
xmax = as.Date("2021-11-01"),
ymin = -Inf,
ymax = Inf,
alpha = 0.4,
fill = "pink") +
annotate(geom = "label",
x= as.Date("2023-07-01"),
y = 1,
label = "Zona montearia Europea",
size = 4,
color = "#0288d1") +
annotate(geom = "text",
x= as.Date("2020-04-01"),
y = 2.2,
label = "Objetivo inflacion 2%",
size = 4,
color = "black") +
scale_x_date(date_labels="%Y-%m",date_breaks ="3 months") +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
theme(panel.background = element_rect(fill = "white"),
legend.position = "none", legend.direction = "horizontal") +
labs(y = NULL, colour = NULL) +
theme(axis.ticks = element_line(linetype = "blank"),
axis.text.y = element_text(colour = "white")) +
theme(legend.position = NULL) +
theme(legend.position = "none")+
labs(x = NULL)
gg1 <- ggplot() +
geom_line(data = prediccion_df, aes(fecha, value, color = LOCATION), alpha = 0.2) +
geom_line(data = prediccion_df_esp, aes(fecha, value), color= "#b71c1c", size = 1.5) +
geom_point(data = prediccion_df_esp, aes(fecha, value), color= "#b71c1c", size = 3) +
geom_text(data = prediccion_df_esp, aes(fecha, value, label = value, vjust = -2, hjust= 0.5)) +
geom_text(data = prediccion_df_esp, aes(fecha, value, label = "%"), vjust = -2, hjust= -1.3) +
geom_hline(yintercept = 2,
size = 1.5,
colour = "#2e7d32",
linetype = "dashed") +
annotate("rect",
xmin = as.Date("2021-09-01"),
xmax = as.Date("2021-11-01"),
ymin = -Inf,
ymax = Inf,
alpha = 0.4,
fill = "pink") +
annotate(geom = "label",
x= as.Date("2023-07-01"),
y = 1,
label = "EspaƱa",
size = 4,
color = "#b71c1c") +
annotate(geom = "text",
x= as.Date("2020-04-01"),
y = 2.2,
label = "Objetivo inflacion 2%",
size = 4,
color = "black") +
scale_x_date(date_labels="%Y-%m",date_breaks ="3 months") +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
theme(panel.background = element_rect(fill = "white"),
legend.position = "none", legend.direction = "horizontal") +
labs(y = NULL, colour = NULL) +
theme(axis.ticks = element_line(linetype = "blank"),
axis.text.y = element_text(colour = "white")) +
theme(legend.position = NULL) +
theme(legend.position = "none")+
labs(x = NULL)
Las conclusiones extraĆdas para las estimaciones de inflaciĆ³n sĆ³n aplicables a las del PIB, es decir, si nos situamos en el mejor de los casos, todos los indicadores apuntan que hasta al menos un aƱo, no vamos a estabilizar la situaciĆ³n, por tanto, serĆa razonable pensar que el 2022 va ser un aƱo de dura recuperaciĆ³n econĆ³mica para las principales economĆas, especialmente en aquellas que ya tienen problemas de base antes del inicio de la escalada en precios, como bien puede ser la espaƱola.
crecimiento_df <- crecimiento %>%
dplyr::select(LOCATION, TIME, Value) %>%
mutate(fecha = lubridate::yq(TIME)) %>%
mutate(value = round(Value, 2)) %>%
filter(LOCATION %in% c("ESP","EA17")) %>%
dplyr::select(-TIME,-Value)
crecimiento <- ggplot(crecimiento_df, aes(fecha,value, color= LOCATION)) +
geom_line(size=2, linetype=7) +
scale_x_date(date_labels="%Y-%m",date_breaks ="3 months") +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
scale_color_manual(breaks = c("ESP","EA17"),values = c("#E04644","#7CCCE5")) +
facet_wrap(
vars(LOCATION), nrow = 2, ncol = 1) +
annotate("rect",
xmin = as.Date("2020-01-01"),
xmax = as.Date("2020-07-01"),
ymin = -Inf,
ymax = Inf,
alpha = 0.4,
fill = "grey") +
geom_hline(yintercept = 100,
size = 1,
colour = "grey",
linetype = "dashed") +
theme(panel.grid.major = element_line(colour = "gray90"),
panel.grid.minor = element_line(colour = NA),
plot.title = element_text(size = 10,
face = "bold"), panel.background = element_rect(fill = NA),
legend.position = "none") +
labs(title = "PredicciĆ³n de crecimiento PIB Eurozona",
x = NULL, y = NULL, colour = NULL, subtitle = "AƱo 2019 en base 100",
caption = "Fuente:ElaboraciĆ³n propia con datos de la OCDE.") +
theme(strip.background =element_rect(fill="#424254")) +
theme(strip.text = element_text(colour = 'white')) +
theme(strip.text = element_text(size = 15))
crecimiento
Aunque existe un fuerte debate dentro de la doctrina econĆ³mica sobre si el Banco Central Europeo (BCE) debe empezar a retirar estĆmulos, con las duras implicaciones que esto puede tener para las economĆas endeudadas como la espaƱola o la italiana, la estratĆ©gia adoptada por las autoridades monetarias europeas al momento de escribir este artĆculo es clara, no habrĆ” (por el momento) reducciĆ³n de los estĆmulos monetarios. Sobre esta lĆnea ya nos avanzaba el diario econĆ³mico francĆ©s Les Echos, en su entrevista al vicepresidente del BCE Luis de Guindos :
āDejamos claro que comenzaremos a subir los tipos poco despuĆ©s de haber finalizado nuestras compras netas de activos. ConfĆo en que esas compras netas continuarĆ”n durante el prĆ³ximo aƱoā
Esta estratĆ©gia, que ya tiene muchos detractores, especialmente las economĆas que presentan mayores datos inflaciĆ³n, podrĆamos definirla como razonable por variedad de razones:
Las principales causas de inflaciĆ³n no se deben a la polĆtica monetaria llevada a cabo por el BCE: La diferencia entre inflaciĆ³n general y subyacente (a juicio de los autores) es bastante grande. Como hemos mostrado mediante los dos Ćŗltimos grĆ”ficos, detrĆ”s de este aumento estĆ”n los sospechosos habituales de los Ćŗltimos meses: electricidad e hidrocarburos. En una palabra, la energĆa. Por tanto, delante de este problema de oferta, al que tambiĆ©n tenemos que sumarle la falta de microprocesadores, entre otros productos intermedios, poco se puede hacer actuando sobre la demanda (retirando estĆmulos monetarios).
Adicionalmente, el problema inflacionista llega en el peor momento posible. Por una parte, el nivel de endeudamiento de gran parte de las economĆas que conforman la eurozona disponen de ratios de Deuda/PIB (vĆ©ase grĆ”fico de endeudamiento) superiores al 100%. Esto supone una restricciĆ³n importante a la hora de tratar controlar la inflaciĆ³n mediante el aumento de tipos de interĆ©s, ya que, puede suponer un aumento en el coste amortizaciĆ³n de la deuda que ralentiza la recuperaciĆ³n econĆ³mica post-pandemia. Por otra parte, tambiĆ©n es poco probable que el BCE retire de forma anticipada los estĆmulos monetarios, mĆ”s todavĆa con la irrupciĆ³n de la variante Ć³micron, que supone un riesgo adicional para el crecimiento econĆ³mico
p <- ggplot() +
geom_col(data = deuda_eu, aes(x = reorder(geo, -value), y = value, fill = value)) +
scale_fill_continuous(low="#81F7F3", high="#0B615E") +
coord_flip() +
geom_hline(yintercept = 0.6,
size = 0.25,
colour = "blue",
linetype = "dashed") +
labs(x = NULL) +
labs (y = NULL) +
scale_y_continuous(labels = scales::percent) +
theme(panel.background = element_rect(fill = "transparent")) +
labs(title = "Deuda/PIB 2020.",
caption = "Fuente: ElaboraciĆ³n propia con datos de Eurostat") +
guides (fill = FALSE)
p
En resumen, para saber si el campo para tomar decisiones se ensancha en el futuro cercano, se tendrĆ” que despejar la incĆ³gnita de cuĆ”nto tiempo van a mantenerse los precios a esta altura y cĆ³mo se implementa, en caso de ser necesario, este tipo de polĆtica sin que Ć©sta ocasione una distorsiĆ³n de expectativas que lastre considerablemente el crecimiento econĆ³mico. Es decir la variable clave va a ser el tiempo. Un dato importante acerca de este tema nos la da la Ćŗltima rueda de prensa del presidente del la Reserva Federal (FED) Jerome Powell el pasado 30 de Noviembre, para la FED, despues de una exhaustiva reuniĆ³n, acaban de determinar que empezaran a retirar estĆmulos monetarios porque interpretan que la inflaciĆ³n ya no se puede considerar un fenĆ³meno transitorio.
#Fed's Powell: Itās time to retire the word 'transitory' regarding #inflation. Inflation expectations, measured by 5y5y swaps, have jumped to multi-year highs on both sides of the Atlantic. pic.twitter.com/atNmtRtnG5
ā Holger Zschaepitz (@Schuldensuehner) November 30, 2021
Salvando las distancias, ya que los datos de inflaciĆ³n sĆ³n mĆ”s preocupantes en la economĆa americana, si lo podemos considerar como un cambio de tendencia que nos puede empezar a invitar a la reflexiĆ³n acerca de la transitoriedad de la inflaciĆ³n. Por su parte, el banco central sigue apostando a que la subida es coyuntural y que entrado 2022 la inflaciĆ³n perderĆ” fuelle. Aunque no disponemos de la evidencia empĆrica suficiente para contrastar la validez de la hipĆ³tesis del BCE, consideramos que la soluciĆ³n no pasa sĆ³lo por reducir los estĆmulos monetarios, porque, como hemos visto, el principal problema que experimenta la economĆa europea y mundial es un problema de oferta. Nos hemos topado con cuellos de botella en diversas partes de nuestra estructura de producciĆ³n (los microchips, el gas, el carbĆ³n, el transporte, los contenedores, los trabajadores bien formadosā¦), en un contexto donde se han presentado los mayores paquetes de estĆmulo monetarios en la historia. Si no solucionamos el problema de forma inmediata, tanto por el lado de la oferta como por el de la demanda, podemos tener un problema de descontrol inflacionario que cada vez tendrĆ” una mayor complejidad a la hora de implementar soluciones. La conclusiĆ³n es clara, debemos empezar a tomarnos en serio la inflaciĆ³n.
La elaboraciĆ³n del artĆculo nos ha servido para aprender en diversos aspectos. Por una parte, hemos mejorado nuestras capacidades de bĆŗsqueda y anĆ”lisis de datos (aunque hemos de reconocer la mĆ”s costosa de la disciplina ādata scienceā), por otra parte, hemos profundizado mĆ”s en nuestro conocimiento de R.Studio. Si miramos en retrospectiva, los tres autores consideramos que R.Studio es una herramienta potente para trabajar con datos, nunca nos habrĆamos imaginado todas las opciones que nos puede dar la programaciĆ³n y en especial la presentaciĆ³n de informes mediante un fichero Rmarckdawn. Creemos que sĆ hemos conseguido nuestros objetivos establecidos el primer dĆa que nos pusimos en marcha, desarrollar tanto los conocimientos econĆ³micos como los aprendidos mediante el curso de R-studio. Salvando la distancia, si hemos conseguido realizar grĆ”ficos, bajo nuestro criterio, suficientemente elegantes como los compartidos por diferentes economistas que elaboran sus propios grĆ”ficos en su labor de divulgaciĆ³n. Ćs un tema bastante complejo, y que invita a la profunda reflexiĆ³n y estudio, pero, sin pecar de ambiciosos, creemos que sĆ hemos aportado nuestro, insisto, pequeƱĆsimo granito de arena a mostrar un problema econĆ³mico mediante el anĆ”lisis de datos y la elaboraciĆ³n de grĆ”ficos de una forma ya mĆ”s profesionalizada.
Para la realizaciĆ³n de los grĆ”ficos y los comentarios pertinentes nos hemos basado en la informaciĆ³n que vamos a exponer en los siguientes pĆ”rrafos.
Para poder realizar los comentarios, nos hemos formado con artĆculos como los siguientes:
Para poder realizar grƔficos animados, nos hemos basado en las explicaciones de como implementar el paquete gganimate en nuestro proyecto.
Con el paquete dygraph, ademĆ”s de conseguir realizar un grĆ”fico interactivo,este nos permite realizar zoom en cualquier parte del mismo que nos llame la atenciĆ³n.
Dados los problemas para conseguir realizar un mapa intercativo con geom_sf, nos descargamos unos archivos shapelfield con lo que conseguimos hacer un mapa de las provincias de EspaƱa.
AdemĆ”s, para la elaboraciĆ³n de grĆ”ficos que nos parecĆan Ćŗtiles para implementar en el trabajo, hemos consultado informaciĆ³n sobre como elaborar un treemap, para observar la importancia de los componentes, un barplot circular, para representar las comunidades autĆ³nomas, y un Spaghetti plot, para en un mismo grĆ”fico de lineas resaltar la que nos interese.
Por Ćŗltimo, destacar como tambiĆ©m hemos consultado trabajos realizados por nuestros compaƱeros el aƱo anterior. Estos Ćŗltimos los podemos encontrar aqui
Para concluir este apartado incluimos la session info
:
sessioninfo::session_info() %>% details::details(summary = 'current session info')
- Session info ---------------------------------------------------------------
setting value
version R version 4.1.1 (2021-08-10)
os Windows 10 x64
system x86_64, mingw32
ui RTerm
language (EN)
collate Spanish_Spain.1252
ctype Spanish_Spain.1252
tz Europe/Paris
date 2021-12-15
- Packages -------------------------------------------------------------------
package * version date lib
assertthat 0.2.1 2019-03-21 [1]
backports 1.2.1 2020-12-09 [1]
base64enc 0.1-3 2015-07-28 [1]
BiocManager 1.30.16 2021-06-15 [1]
bit 4.0.4 2020-08-04 [1]
bit64 4.0.5 2020-08-30 [1]
broom * 0.7.9 2021-07-27 [1]
bslib 0.3.1 2021-10-06 [1]
cellranger 1.1.0 2016-07-27 [1]
checkmate 2.0.0 2020-02-06 [1]
class 7.3-19 2021-05-03 [2]
classInt 0.4-3 2020-04-07 [1]
cli 3.0.1 2021-07-17 [1]
clipr 0.7.1 2020-10-08 [1]
codetools 0.2-18 2020-11-04 [2]
colorspace 2.0-2 2021-06-24 [1]
countrycode * 1.3.0 2021-07-15 [1]
crayon 1.4.2 2021-10-29 [1]
crosstalk 1.1.1 2021-01-12 [1]
curl 4.3.2 2021-06-23 [1]
data.table 1.14.0 2021-02-21 [1]
DBI 1.1.1 2021-01-15 [1]
dbplyr 2.1.1 2021-04-06 [1]
desc 1.3.0 2021-03-05 [1]
details 0.2.1 2020-01-12 [1]
digest 0.6.28 2021-09-23 [1]
dplyr * 1.0.7 2021-06-18 [1]
DT * 0.19 2021-09-02 [1]
dygraphs * 1.1.1.6 2018-07-11 [1]
e1071 1.7-8 2021-07-28 [1]
ellipsis 0.3.2 2021-04-29 [1]
evaluate 0.14 2019-05-28 [1]
extrafont 0.17 2014-12-08 [1]
extrafontdb 1.0 2012-06-11 [1]
fansi 0.5.0 2021-05-25 [1]
farver 2.1.0 2021-02-28 [1]
fastmap 1.1.0 2021-01-25 [1]
forcats * 0.5.1 2021-01-27 [1]
foreign 0.8-81 2020-12-22 [2]
fs 1.5.0 2020-07-31 [1]
gdtools 0.2.3 2021-01-06 [1]
generics 0.1.1 2021-10-25 [1]
gganimate * 1.0.7 2020-10-15 [1]
ggflags * 0.0.2 2021-11-03 [1]
ggplot2 * 3.3.5 2021-06-25 [1]
ggrepel * 0.9.1 2021-01-15 [1]
ggspatial * 1.1.5 2021-01-04 [1]
gifski * 1.4.3-1 2021-05-02 [1]
glue 1.4.2 2020-08-27 [1]
gridBase 0.4-7 2014-02-24 [1]
gridExtra 2.3 2017-09-09 [1]
grImport2 0.2-0 2019-11-25 [1]
gt * 0.3.1 2021-08-07 [1]
gtable 0.3.0 2019-03-25 [1]
haven 2.4.3 2021-08-04 [1]
here * 1.0.1 2020-12-13 [1]
highr 0.9 2021-04-16 [1]
hms 1.1.1 2021-09-26 [1]
hrbrthemes * 0.8.0 2020-03-06 [1]
htmltools 0.5.2 2021-08-25 [1]
htmlwidgets 1.5.4 2021-09-08 [1]
httpuv 1.6.3 2021-09-09 [1]
httr 1.4.2 2020-07-20 [1]
igraph 1.2.8 2021-11-07 [1]
jpeg 0.1-9 2021-07-24 [1]
jquerylib 0.1.4 2021-04-26 [1]
jsonlite 1.7.2 2020-12-09 [1]
kableExtra * 1.3.4 2021-02-20 [1]
KernSmooth 2.23-20 2021-05-03 [2]
klippy * 0.0.0.9500 2021-11-12 [1]
knitr * 1.36 2021-09-29 [1]
labeling 0.4.2 2020-10-20 [1]
later 1.3.0 2021-08-18 [1]
lattice 0.20-44 2021-05-02 [2]
lazyeval 0.2.2 2019-03-15 [1]
leafem * 0.1.6 2021-05-24 [1]
leaflet * 2.0.4.1 2021-01-07 [1]
lifecycle 1.0.1 2021-09-24 [1]
lubridate * 1.8.0 2021-10-07 [1]
magrittr 2.0.1 2020-11-17 [1]
mapview * 2.10.0 2021-06-05 [1]
mime 0.12 2021-09-28 [1]
modelr 0.1.8 2020-05-19 [1]
munsell 0.5.0 2018-06-12 [1]
openxlsx 4.2.4 2021-06-16 [1]
pacman 0.5.1 2019-03-11 [1]
patchwork * 1.1.1 2020-12-17 [1]
pillar 1.6.4 2021-10-18 [1]
pkgconfig 2.0.3 2019-09-22 [1]
plotly * 4.10.0 2021-10-09 [1]
plyr 1.8.6 2020-03-03 [1]
png 0.1-7 2013-12-03 [1]
prettyunits 1.1.1 2020-01-24 [1]
progress 1.2.2 2019-05-16 [1]
promises 1.2.0.1 2021-02-11 [1]
proxy 0.4-26 2021-06-07 [1]
purrr * 0.3.4 2020-04-17 [1]
R6 2.5.1 2021-08-19 [1]
raster * 3.4-13 2021-06-18 [1]
RColorBrewer 1.1-2 2014-12-07 [1]
Rcpp 1.0.7 2021-07-07 [1]
readr * 2.0.1 2021-08-10 [1]
readxl * 1.3.1 2019-03-13 [1]
reprex 2.0.1 2021-08-05 [1]
rgdal * 1.5-27 2021-09-16 [1]
rgeos * 0.5-8 2021-09-22 [1]
rio * 0.5.27 2021-06-21 [1]
rlang 0.4.12 2021-10-18 [1]
rmarkdown 2.11 2021-09-14 [1]
rnaturalearth * 0.1.0 2017-03-21 [1]
rnaturalearthdata * 0.1.0 2017-02-21 [1]
rprojroot 2.0.2 2020-11-15 [1]
rstudioapi 0.13 2020-11-12 [1]
Rttf2pt1 1.3.9 2021-07-22 [1]
rvest 1.0.1 2021-07-26 [1]
sass 0.4.0 2021-05-12 [1]
satellite 1.0.4 2021-10-12 [1]
scales * 1.1.1 2020-05-11 [1]
sessioninfo 1.1.1 2018-11-05 [1]
sf * 1.0-2 2021-07-26 [1]
shiny 1.7.1 2021-10-02 [1]
sp * 1.4-5 2021-01-10 [1]
streamgraph * 0.9.0 2021-11-19 [1]
stringi 1.7.5 2021-10-04 [1]
stringr * 1.4.0 2019-02-10 [1]
svglite 2.0.0 2021-02-20 [1]
systemfonts 1.0.3 2021-10-13 [1]
terra 1.4-20 2021-11-16 [1]
tibble * 3.1.6 2021-11-07 [1]
tidyr * 1.1.4 2021-09-27 [1]
tidyselect 1.1.1 2021-04-30 [1]
tidyverse * 1.3.1 2021-04-15 [1]
treemap * 2.4-3 2021-08-22 [1]
tweenr 1.0.2 2021-03-23 [1]
tweetrmd 0.0.9 2021-12-03 [1]
tzdb 0.1.2 2021-07-20 [1]
units 0.7-2 2021-06-08 [1]
utf8 1.2.2 2021-07-24 [1]
vctrs 0.3.8 2021-04-29 [1]
viridis * 0.6.2 2021-10-13 [1]
viridisLite * 0.4.0 2021-04-13 [1]
vroom 1.5.4 2021-08-05 [1]
webshot 0.5.2 2019-11-22 [1]
withr 2.4.2 2021-04-18 [1]
xfun 0.27 2021-10-18 [1]
XML 3.99-0.7 2021-08-17 [1]
xml2 1.3.2 2020-04-23 [1]
xtable 1.8-4 2019-04-21 [1]
xts * 0.12.1 2020-09-09 [1]
yaml 2.2.1 2020-02-01 [1]
zip 2.2.0 2021-05-31 [1]
zoo * 1.8-9 2021-03-09 [1]
source
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.2)
Github (rensa/ggflags@e3c6e51)
CRAN (R 4.1.1)
CRAN (R 4.1.2)
CRAN (R 4.1.2)
CRAN (R 4.1.2)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.2)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.2)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.2)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
Github (rlesur/klippy@378c247)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.2)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.2)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.2)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
Github (hrbrmstr/streamgraph@76f7173)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.2)
CRAN (R 4.1.2)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
Github (gadenbuie/tweetrmd@075102b)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
CRAN (R 4.1.1)
[1] C:/Users/narf2_000/Documents/R/win-library/4.1
[2] C:/Program Files/R/R-4.1.1/library