knitr::opts_chunk$set(
echo = TRUE,
message = FALSE,
warning = FALSE
)
V tomto cvičení nadväzujem na predošlé zadania a zostávam pri tej
istej téme:
miera nezamestnanosti v krajinách EÚ. Ako inšpiráciu
beriem databázu
Eurostat – une_rt_m (Unemployment by sex and age,
monthly data),
ktorá obsahuje mesačné údaje o nezamestnanosti v percentách.
Reálne by som vedela tieto údaje stiahnuť priamo z Eurostatu, napríklad cez:
https://ec.europa.eu/eurostat/databrowser/view/une_rt_m/default/table
Aby bol notebook jednoduchý a fungoval aj bez internetu a bez extra
balíkov,
v tomto cvičení používam malý simulovaný dataset, ktorý
má rovnakú štruktúru:
čas (mesiace v roku), krajina a miera nezamestnanosti v %.
Cieľ:
library(tidyverse)
library(ggplot2)
library(kableExtra)
Tu si vytváram malý dataset, ktorý má reprezentovať mieru
nezamestnanosti v roku 2023
v niekoľkých krajinách (Slovensko, Česko, Maďarsko, Poľsko).
V praxi by som čísla zobrala z Eurostatu, tu si ich len nasimulujem v podobnom rozsahu.
nezamestnanost <- 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),
Miera = c(5.8, 5.7, 5.6, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, 5.0,
2.9, 2.9, 2.8, 2.8, 2.7, 2.7, 2.6, 2.6, 2.5, 2.5)
)
set.seed(123)
nezamestnanost2 <- nezamestnanost %>%
mutate(
HU = round(Miera + rnorm(n(), 1.5, 0.3), 1), # Maďarsko
PL = round(Miera + rnorm(n(), 0.5, 0.2), 1) # Poľsko
)
head(nezamestnanost2)
## # A tibble: 6 × 6
## Rok Mesiac Krajina Miera HU PL
## <dbl> <chr> <chr> <dbl> <dbl> <dbl>
## 1 2023 Január Slovensko 5.8 7.1 6.1
## 2 2023 Február Slovensko 5.7 7.1 6.2
## 3 2023 Marec Slovensko 5.6 7.6 5.9
## 4 2023 Apríl Slovensko 5.6 7.1 6
## 5 2023 Máj Slovensko 5.5 7 5.9
## 6 2023 Jún Slovensko 5.4 7.4 5.6
Komentár:
Štruktúra je podobná Eurostatu: mám rok, mesiac, krajinu a mieru
nezamestnanosti v %.
K tomu som pridala ešte dva numerické stĺpce (HU, PL), aby som mala viac
čísel pre korelácie.
summary(nezamestnanost2)
## Rok Mesiac Krajina Miera
## Min. :2023 Length:20 Length:20 Min. :2.500
## 1st Qu.:2023 Class :character Class :character 1st Qu.:2.700
## Median :2023 Mode :character Mode :character Median :3.950
## Mean :2023 Mean :4.060
## 3rd Qu.:2023 3rd Qu.:5.425
## Max. :2023 Max. :5.800
## HU PL
## Min. :3.500 Min. :2.90
## 1st Qu.:4.275 1st Qu.:3.30
## Median :5.550 Median :4.45
## Mean :5.590 Mean :4.56
## 3rd Qu.:7.025 3rd Qu.:5.90
## Max. :7.600 Max. :6.20
nezamestnanost2 %>%
head(12) %>%
kable(
caption = "Prvých 12 pozorovaní miery nezamestnanosti v roku 2023",
digits = 1
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped","hover","condensed")
)
| Rok | Mesiac | Krajina | Miera | HU | PL |
|---|---|---|---|---|---|
| 2023 | Január | Slovensko | 5.8 | 7.1 | 6.1 |
| 2023 | Február | Slovensko | 5.7 | 7.1 | 6.2 |
| 2023 | Marec | Slovensko | 5.6 | 7.6 | 5.9 |
| 2023 | Apríl | Slovensko | 5.6 | 7.1 | 6.0 |
| 2023 | Máj | Slovensko | 5.5 | 7.0 | 5.9 |
| 2023 | Jún | Slovensko | 5.4 | 7.4 | 5.6 |
| 2023 | Júl | Slovensko | 5.3 | 6.9 | 6.0 |
| 2023 | August | Slovensko | 5.2 | 6.3 | 5.7 |
| 2023 | September | Slovensko | 5.1 | 6.4 | 5.4 |
| 2023 | Október | Slovensko | 5.0 | 6.4 | 5.8 |
| 2023 | Január | Česko | 2.9 | 4.8 | 3.5 |
| 2023 | Február | Česko | 2.9 | 4.5 | 3.3 |
Komentár:
V tabuľke vidieť prvé mesiace roka 2023. Slovensko má vyššiu mieru
nezamestnanosti ako Česko,
čo zodpovedá aj reálnym dátam z Eurostatu. Maďarsko a Poľsko sú
odvodené, ale pohybujú sa v podobnom rozsahu.
Aby som vedela pekne zobraziť vývoj v čase, pripravím si „dlhý“
formát pre ggplot2
– každý riadok je jedna krajina v jednom mesiaci.
nezam_long <- nezamestnanost2 %>%
select(Rok, Mesiac, Krajina, Miera)
ggplot(nezam_long, aes(x = Mesiac, y = Miera, color = Krajina, group = Krajina)) +
geom_line(linewidth = 1) +
geom_point(size = 2) +
labs(
title = "Miera nezamestnanosti (%, rok 2023)",
x = "Mesiac",
y = "% nezamestnaných",
color = "Krajina"
) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Komentár:
Graf ukazuje, že nezamestnanosť na Slovensku postupne mierne
klesá,
kým v Česku je už od začiatku roka na nižšej úrovni a mení sa len veľmi
málo.
Takýto typ grafu je vhodný na sledovanie trendu v čase.
Na výpočet korelačnej matice potrebujem mať viac numerických
stĺpcov.
Z nezamestnanost2 si vytiahnem len numerické premenné a
premenujem ich na názvy krajín.
wide_num <- nezamestnanost2 %>%
select(Slovensko = Miera,
Cesko = HU,
Madarsko = PL) %>%
as.data.frame()
head(wide_num)
## Slovensko Cesko Madarsko
## 1 5.8 7.1 6.1
## 2 5.7 7.1 6.2
## 3 5.6 7.6 5.9
## 4 5.6 7.1 6.0
## 5 5.5 7.0 5.9
## 6 5.4 7.4 5.6
cor_mat <- cor(wide_num, use = "pairwise.complete.obs")
cor_mat
## Slovensko Cesko Madarsko
## Slovensko 1.0000000 0.9787312 0.9934247
## Cesko 0.9787312 1.0000000 0.9687236
## Madarsko 0.9934247 0.9687236 1.0000000
Komentár:
Korelačná matica ukazuje, ako spolu súvisia miery nezamestnanosti medzi
krajinami.
Ak je korelácia blízko 1, znamená to, že nezamestnanosť sa v krajinách
vyvíja veľmi podobne.
Hodnota bližšie k 0 znamená 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 miery nezamestnanosti",
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 vidno, že medzi krajinami sú väčšinou kladné korelácie
–
ak nezamestnanosť rastie v jednej krajine, často rastie aj v
druhej.
To dáva zmysel pri ekonomicky prepojených krajinách v rámci EÚ.
nezam_long %>%
group_by(Krajina) %>%
summarise(
n = n(),
Priemer = mean(Miera),
Minimum = min(Miera),
Maximum = max(Miera),
.groups = "drop"
) %>%
kable(
caption = "Základné štatistiky miery nezamestnanosti 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 | 5.4 | 5.0 | 5.8 |
| Česko | 10 | 2.7 | 2.5 | 2.9 |
V tomto cvičení som si vybrala tému nezamestnanosti v
krajinách EÚ, inšpirovanú databázou
Eurostat une_rt_m. V notebooku som použitím jednoduchého
simulovaného datasetu:
Na dnes je to odo mňa všetko – naučila som sa niečo nové a teším sa na ďalšie zadania. Vanessa