knitr::opts_chunk$set(
echo = TRUE,
message = FALSE,
warning = FALSE
)
# Úvod a voľba databázy
V nadväznosti na predchádzajúce zadanie som si nechala tú istú tému
–
infláciu HICP (Harmonised Index of Consumer Prices) zo
zdroja Eurostat, dataset
prc_hicp_manr (medziročná inflácia, %).
Vybrala som si krajiny Slovensko, Česko, Maďarsko,
Poľsko a obdobie okolo roku 2023.
Údaje sú zoradené v čase (mesačne) a umožňujú
porovnávať vývoj inflácie v regióne.
Oficiálny prehliadač datasetu:
https://ec.europa.eu/eurostat/databrowser/view/prc_hicp_manr/default/table
V tomto notebooku vytvorím tabuľky, grafy a heatmap korelačnej matice numerických veličín.
library(tidyverse)
library(ggplot2)
library(kableExtra)
Ak mám pripravený CSV súbor (napr.
hicp_inflacia_2023.csv), môžem ho načítať príkazom
read_csv().
Aby bol notebook funkčný aj bez externého súboru, vytváram malý
simulovaný dataset, ktorý reprezentuje medziročnú infláciu (%)
v roku 2023 pre štyri krajiny.
inflacia <- tibble(
Rok = rep(2023, 20),
Mesiac = rep(c("Január","Február","Marec","Apríl","Máj",
"Jún","Júl","August","September","Október"), 2),
Krajina = rep(c("Slovensko","Česko"), each = 10),
HICP = c(15.4,14.8,13.9,13.2,12.5,11.9,11.2,10.6,10.1,9.7,
17.5,16.8,15.9,15.2,14.6,13.7,12.9,12.1,11.4,10.8)
)
# rozšírim na viac krajín, aby bolo viac číselných stĺpcov
set.seed(123)
inflacia2 <- inflacia %>%
mutate(
HU = round(HICP + rnorm(n(), 2, 0.7), 1), # Maďarsko
PL = round(HICP + rnorm(n(), -1, 0.5), 1) # Poľsko
)
head(inflacia2)
## # A tibble: 6 × 6
## Rok Mesiac Krajina HICP HU PL
## <dbl> <chr> <chr> <dbl> <dbl> <dbl>
## 1 2023 Január Slovensko 15.4 17 13.9
## 2 2023 Február Slovensko 14.8 16.6 13.7
## 3 2023 Marec Slovensko 13.9 17 12.4
## 4 2023 Apríl Slovensko 13.2 15.2 11.8
## 5 2023 Máj Slovensko 12.5 14.6 11.2
## 6 2023 Jún Slovensko 11.9 15.1 10.1
Komentár:
V skutočnej analýze by som dáta stiahla priamo z Eurostatu a uložila do
CSV,
tu používam syntetický dataset s rovnakou štruktúrou – čas, krajina,
inflácia.
summary(inflacia2)
## Rok Mesiac Krajina HICP
## Min. :2023 Length:20 Length:20 Min. : 9.70
## 1st Qu.:2023 Class :character Class :character 1st Qu.:11.35
## Median :2023 Mode :character Mode :character Median :13.05
## Mean :2023 Mean :13.21
## 3rd Qu.:2023 3rd Qu.:14.90
## Max. :2023 Max. :17.50
## HU PL
## Min. :11.40 Min. : 8.50
## 1st Qu.:13.30 1st Qu.:10.18
## Median :15.20 Median :12.00
## Mean :15.31 Mean :12.18
## 3rd Qu.:17.00 3rd Qu.:13.93
## Max. :20.40 Max. :16.70
inflacia2 %>%
head(12) %>%
kable(
caption = "Prvých 12 pozorovaní medziročnej inflácie HICP v roku 2023",
digits = 1
) %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped","hover","condensed"))
| Rok | Mesiac | Krajina | HICP | HU | PL |
|---|---|---|---|---|---|
| 2023 | Január | Slovensko | 15.4 | 17.0 | 13.9 |
| 2023 | Február | Slovensko | 14.8 | 16.6 | 13.7 |
| 2023 | Marec | Slovensko | 13.9 | 17.0 | 12.4 |
| 2023 | Apríl | Slovensko | 13.2 | 15.2 | 11.8 |
| 2023 | Máj | Slovensko | 12.5 | 14.6 | 11.2 |
| 2023 | Jún | Slovensko | 11.9 | 15.1 | 10.1 |
| 2023 | Júl | Slovensko | 11.2 | 13.5 | 10.6 |
| 2023 | August | Slovensko | 10.6 | 11.7 | 9.7 |
| 2023 | September | Slovensko | 10.1 | 11.6 | 8.5 |
| 2023 | Október | Slovensko | 9.7 | 11.4 | 9.3 |
| 2023 | Január | Česko | 17.5 | 20.4 | 16.7 |
| 2023 | Február | Česko | 16.8 | 19.1 | 15.7 |
Komentár:
Tabuľka zobrazuje prvé mesiace roka 2023. Vidno, že inflácia je vo
všetkých krajinách vysoká,
ale úroveň sa medzi krajinami líši (najmä Maďarsko vs. Poľsko).
Najskôr si pripravím „dlhý“ formát pre ggplot2 – každý
záznam = jedna krajina, jeden mesiac.
inflacia_long <- inflacia2 %>%
select(Rok, Mesiac, Krajina, HICP) # pôvodný stĺpec HICP pre dve krajiny
ggplot(inflacia_long, aes(x = Mesiac, y = HICP, color = Krajina, group = Krajina)) +
geom_line(linewidth = 1) +
geom_point(size = 2) +
labs(
title = "Medziročná inflácia HICP (%, rok 2023)",
x = "Mesiac",
y = "Inflácia v %",
color = "Krajina"
) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Komentár:
Graf ukazuje postupný pokles inflácie v priebehu roka, ale rozdiely
medzi Slovenskom a Českom sú stále výrazné.
Takýto časový graf je vhodný na sledovanie trendu a prípadných zlomových
bodov.
Na výpočet korelačnej matice potrebujem viac číselných
stĺpcov.
Z inflacia2 si vytiahnem len numerické stĺpce (Slovensko,
Česko, Maďarsko, Poľsko).
wide_num <- inflacia2 %>%
select(Slovensko = HICP, Česko = HU, Maďarsko = PL) %>%
as.data.frame()
head(wide_num)
## Slovensko Česko Maďarsko
## 1 15.4 17.0 13.9
## 2 14.8 16.6 13.7
## 3 13.9 17.0 12.4
## 4 13.2 15.2 11.8
## 5 12.5 14.6 11.2
## 6 11.9 15.1 10.1
(Poznámka: názvy som zjednodušila – ide iba o numerické stĺpce, všetky v %.)
cor_mat <- cor(wide_num, use = "pairwise.complete.obs")
cor_mat
## Slovensko Česko Maďarsko
## Slovensko 1.0000000 0.9669645 0.9855983
## Česko 0.9669645 1.0000000 0.9466759
## Maďarsko 0.9855983 0.9466759 1.0000000
Komentár:
Korelačná matica ukazuje, ako silno spolu súvisia inflácie v
jednotlivých krajinách.
Hodnoty blízke 1 znamenajú silnú pozitívnu koreláciu (inflácia stúpa a
klesá podobne),
hodnoty blízke 0 slabý vzťah.
cor_long <- as_tibble(cor_mat, rownames = "Var1") %>%
pivot_longer(-Var1, names_to = "Var2", values_to = "Correlation")
ggplot(cor_long, aes(x = Var1, y = Var2, fill = Correlation)) +
geom_tile(color = "white") +
scale_fill_gradient2(
low = "#4575B4", mid = "white", high = "#D73027",
midpoint = 0, limits = c(-1, 1)
) +
coord_equal() +
labs(
title = "Heatmap korelačnej matice inflácie HICP",
x = NULL, y = NULL, fill = "kor."
) +
theme_minimal(base_size = 12) +
theme(
axis.text.x = element_text(angle = 45, hjust = 1),
panel.grid = element_blank()
)
Komentár:
Z heatmapy je vidno, že inflácia v regiónoch je silne pozitívne
korelovaná –
ekonomické šoky a cenové tlaky pôsobia podobne vo viacerých
krajinách.
Ak by sa niektoré dvojice krajín líšili (svetlejšie/nižšie hodnoty),
znamenalo by to rozdielnu dynamiku inflácie.
inflacia_long %>%
group_by(Krajina) %>%
summarise(
n = n(),
Priemer = mean(HICP),
Minimum = min(HICP),
Maximum = max(HICP),
.groups = "drop"
) %>%
kable(
caption = "Základné štatistiky inflácie podľa krajín (rok 2023)",
digits = 1
) %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped","hover","condensed"))
| Krajina | n | Priemer | Minimum | Maximum |
|---|---|---|---|---|
| Slovensko | 10 | 12.3 | 9.7 | 15.4 |
| Česko | 10 | 14.1 | 10.8 | 17.5 |
Vybrala som si ekonomickú databázu z Eurostatu – HICP
(medziročná inflácia) pre niekoľko krajín EÚ.
Aj keď tu pracujem so syntetickou kópiou, štruktúra a interpretácia
zodpovedajú skutočným dátam.
V tomto cvičení som: