Göteborgin yliopiston Quality of Government instituutti julkisti kuun vaihteessa uudet datansa. Datat ovat kattavia kokoelmia erilaisista maatason indikaattoreista. Päivitin samaan syssyyn ylläpitämäni R-paketin rqog
, jonka avulla voit käyttää datoja R:ssä. Paketin voit asentaan Github:sta devtools
-paketin avulla komennolla devtools::install_github("ropengov/rqog")
.
Paketin avulla pääset käsiksi kolmeen datakokonaisuuteen basic
, standard
ja oecd
, joista kaikista on sekä poikkileikkausaineisto (cross-sectional) että aikasarja-aineisto (time-series). Eri datoissa on eri määrä indikaattoreita.
library(rqog)
library(dplyr)
library(glue)
library(ggplot2)
library(tidyr)
library(geofacet)
library(knitr)
tribble(
~data, ~indikaattoreita,
"basic poikkileikkaus",length(unique(rqog::meta_basic_cs_2020$code)),
"basic aikasarja",length(unique(rqog::meta_basic_ts_2020$code)),
"standard poikkileikkaus",length(unique(rqog::meta_std_cs_2020$code)),
"standard aikasarja",length(unique(rqog::meta_std_ts_2020$code)),
"oecd poikkileikkaus",length(unique(rqog::meta_oecd_cs_2020$code)),
"oecd aikasarja",length(unique(rqog::meta_oecd_ts_2020$code))
%>% knitr::kable() )
data | indikaattoreita |
---|---|
basic poikkileikkaus | 373 |
basic aikasarja | 287 |
standard poikkileikkaus | 1758 |
standard aikasarja | 2086 |
oecd poikkileikkaus | 961 |
oecd aikasarja | 965 |
oecd
-datan aikasarjassa on siis peräti 965 eri indikaattorin aikasarjaa OECD-maista. Datojen avulla voi tarkastella monia kysymyksiä kuten vaikkapa Hesarissa tänään laajasti käsiteltyä syntyvyyttä ja keskitytään EU-maihin.
Aluksi etsitään sopivat indikaattorit rqog
-paketin mukana tulevasta datasta meta_oecd_ts_2020
.
%>%
meta_std_ts_2020 filter(grepl("Fertility|birth", name, ignore.case = TRUE))
## # A tibble: 25 × 5
## code name value label class
## <chr> <chr> <dbl> <chr> <chr>
## 1 eu_demfrate2 "Fertility rate, total" NA <NA> numeric
## 2 eu_demlbirthlf "Live births - females" NA <NA> numeric
## 3 eu_demlbirthlm "Live births - males" NA <NA> numeric
## 4 eu_demlbirthlt "Live births - total" NA <NA> numeric
## 5 eu_demmawc "Mean age of woman at childbirth" NA <NA> numeric
## 6 oecd_fertility_t1 "Total fertility rates" NA <NA> numeric
## 7 oecd_lifeexpy_g1 " Life expectancy at birth: total" NA <NA> numeric
## 8 oecd_lifeexpy_g2a " Life expectancy at birth: women" NA <NA> numeric
## 9 oecd_lifeexpy_g2b " Life expectancy at birth: men" NA <NA> numeric
## 10 wdi_birth "Birth rate, crude (per 1,000 people)" NA <NA> numeric
## # … with 15 more rows
Aineistosta löytyy kolme eri hedelmällisyysasteen indikaattoria: EU:n eu_demfrate2
(Fertility rate, total), OECD:n oecd_fertility_t1
(Total fertility rates) ja Maailmanpankin wdi_fertility
(Fertility rate, total (births per woman)). Tarkastellaan ensin millaiset aikasarjat näistä on ja ovat ne lähellä toisiaan.
# Haetaan data
<- rqog::read_qog(which_data = "std",
std_ts year = "2020",
data_type = "time-series") %>%
# nimetään maita uudelleen
mutate(cname = ifelse(grepl("France", cname), "France",
ifelse(grepl("Cyprus", cname), "Cyprus", cname)))
# Valitaan avainmuuttujat: maanimi, vuosi ja indikaattorit
<- std_ts %>%
dat filter(year >= 1980) %>%
select(cname,year,oecd_fertility_t1,wdi_fertility,eu_demfrate2) %>%
pivot_longer(names_to = "indikaattori", values_to = "arvo", 3:5) %>%
# filtteroidaan maat geofacet::eu_grid1-datan pohjalta
filter(cname %in% geofacet::eu_grid1$name)
ggplot(dat, aes(x = year, y = arvo, color = indikaattori, group = indikaattori)) +
geom_path(alpha = .4) +
::geom_text_repel(data = dat %>%
ggrepelna.omit() %>%
group_by(cname,indikaattori) %>%
filter(year == max(year, na.rm = TRUE)) %>%
ungroup(),
aes(label = year), show.legend = FALSE, size = 3) +
facet_geo(~cname, grid = geofacet::eu_grid1) +
labs(title = "EU:n, OECD:n ja Maailmanpankin hedelmällisyysaste-indikaattori EU-maissa 1980 alkaen",
color = NULL,
caption = "Data: Quality of Government Instititute 2020")
EU:n ja OECD:n aikasarjat jatkuvat molemmat vuoteen 2017 useimmissa maissa. OECD:n aikasarja ei käsitä kaikkia EU-maita, joten valitaan tarkasteltavaksi indikaattoriksi EU:n eu_demfrate2
. Taulukossa EU-maat on asetettu suuruusjärjestyksene vuoden 2017 arvon mukaan
<- dat %>%
dat2 na.omit() %>%
filter(indikaattori == "eu_demfrate2")
%>%
dat2 group_by(cname) %>%
filter(year == max(year, na.rm = TRUE)) %>%
ungroup() %>%
arrange(desc(arvo)) %>%
select(cname,arvo) %>%
setNames(c("maa","kokonaishedelmällisyysaste")) %>%
print(n = 100)
## # A tibble: 28 × 2
## maa kokonaishedelmällisyysaste
## <chr> <dbl>
## 1 France 1.9
## 2 Sweden 1.78
## 3 Ireland 1.77
## 4 Denmark 1.75
## 5 United Kingdom 1.74
## 6 Romania 1.71
## 7 Czech Republic 1.69
## 8 Latvia 1.69
## 9 Belgium 1.65
## 10 Lithuania 1.63
## 11 Netherlands 1.62
## 12 Slovenia 1.62
## 13 Estonia 1.59
## 14 Germany 1.57
## 15 Bulgaria 1.56
## 16 Hungary 1.54
## 17 Austria 1.52
## 18 Slovakia 1.52
## 19 Finland 1.49
## 20 Poland 1.48
## 21 Croatia 1.42
## 22 Luxembourg 1.39
## 23 Portugal 1.38
## 24 Greece 1.35
## 25 Cyprus 1.32
## 26 Italy 1.32
## 27 Spain 1.31
## 28 Malta 1.26
Lääkkeiksi ‘vauvakatoon’ Hesarin jutussa nimetään perhe-etuuksien parantaminen sekä työelämän perheystävällisyyden lisääminen. Työllisyysteen liittyviä muuttujia hakutermillä employment
löytyy standard
-datasta kaikkiaa 256. Valitaan niistä kahden muuttujan analyyseihin seuraavat kaksi muuttujaa:
eu_empy2554f
: Employment rates: 25-34 Years, Female (percentage of active population)eu_empy2554m
: Employment rates: 25-34 Years, Male (percentage of active population)
Hatarana teoreettisena ajatuksena ilman lähdeviitteitä pidetäköön sitä, että nuorten miesten matala työllisyysaste olisi yhteydessä matalaan syntyvyyteen, samoin kuin nuorten naisten korkea työllisyysaste.
<- std_ts %>%
dat select(cname,year,eu_empy2554f,eu_empy2554m,eu_demfrate2) %>%
filter(cname %in% geofacet::eu_grid1$name) %>%
rename(`2. miesten (25-34 vuotta) työllisyysaste (%)` = eu_empy2554m,
`1. naisten (25-34 vuotta) työllisyysaste (%)` = eu_empy2554f) %>%
na.omit() %>%
pivot_longer(names_to = "indikaattori", values_to = "arvo", 3:4)
<- bind_rows(
minmax_data %>% na.omit() %>% group_by(cname) %>%
dat filter(year == max(year, na.rm = TRUE)),
%>% na.omit() %>% group_by(cname) %>%
dat filter(year == min(year, na.rm = TRUE))
%>% ungroup()
)
ggplot(dat, aes(x = arvo, y = eu_demfrate2, color = indikaattori, group = indikaattori)) +
geom_point(alpha = .5, shape = 21, size = 1.5) +
geom_path(alpha = .5) +
geom_point(data = minmax_data) +
::geom_label_repel(data = minmax_data,
ggrepelaes(label = year), show.legend = FALSE, size = 2.5,
label.padding = unit(.5, "mm"), alpha = .6) +
facet_geo(~cname, grid = geofacet::eu_grid1, scales = "free") +
labs(title = "Nuorten miesten ja naisten työllisyysasteen yhteys kokonaishedelmällisyysasteeseen 1996-2017",
caption = "Data: Quality of Government Instititute 2020",
y = "kokonaishedelmälisyysaste",
color = NULL)
Jätetään tulkinta lukijalle. Todennäköisesti sekä kysymystä että analyysiä on syytä tarkentaa.