knitr::opts_chunk$set(
    echo = TRUE,
    message = FALSE,
    warning = FALSE
)

Úvod a voľba databázy

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ľ:


Balíčky

library(tidyverse)
library(ggplot2)
library(kableExtra)

Načítanie / simulácia údajov

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.


Základný popis údajov

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

Tabuľkový prehľad

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")
  )
Prvých 12 pozorovaní miery nezamestnanosti v roku 2023
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.


Graf: vývoj nezamestnanosti v čase

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.


Široký formát pre korelačnú maticu

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

Korelačná matica

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.


Heatmap korelačnej matice

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Ú.


Základné štatistiky podľa krajín

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")
  )
Základné štatistiky miery nezamestnanosti podľa krajín (rok 2023)
Krajina n Priemer Minimum Maximum
Slovensko 10 5.4 5.0 5.8
Česko 10 2.7 2.5 2.9

Záver

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