library(tidyverse) library(ggplot2) library(ggptt) library(gridExtra) library(RColorBrewer) library(ggpubr) library(here) library(glue) library(statfitools) devtools::load_all() set_proj() knitr::opts_chunk$set(fig.path = "Raportin_kuviot/") tyot_vakanssi_ku_dat <- readRDS(here("data/avoimet_tyopaikat_tyonhakijat.rds")) data(dat_kokonaismuutto, dat_muutto_aikasarja_km, dat_muuttotiedot_kunnittain, tyo_muutto_atyyppi, dat_tulopendelointi, dat_pendelointi) muutto_ptoim1_dat <- readRDS(here("data/paa-asiallinen_toiminta_ja_muutto/muuttoaikasarjat_kokomaa_ptoim1_ulos.rds")) tyot_vakanssi_dat <- readRDS(here("data/avoimet_tyopaikat_tyonhakijat_atyyppi.rds")) atyyppi_colour <- c(brewer.pal(6, "Oranges")[6:4], brewer.pal(6, "Blues")[6:5] , brewer.pal(6, "Greens")[6:5]) aluetyyppit <- setNames(c("pk", "yo-kaup", "kaup", "tk_keskus", "kaupms", "ydinms", "ms"), c("Pääkaupunkiseutu", "Yliopistokaupungit", "Kaupungit", "Muut työssäkäyntikeskukset", "Kaupunkien läheinen maaseutu", "Ydinmaaseutu", "Harvaan asuttu maaseutu"))
p1 <- dat_kokonaismuutto %>% ggplot(aes(x = vuosi, y = muuttoja, col = muuton_tyyppi)) + geom_line() + theme(legend.title = element_blank()) + ylab("Muuttoja") + xlab(NULL) + #ggtitle("Muuttojen määrä Suomessa 1990 - 2018") + geom_hline(yintercept = 0, color = "black", linetype = 2) + theme(legend.position = "bottom", legend.justification = "left") + scale_y_continuous(labels = deci_comma, breaks = scales::pretty_breaks(n = 6)) + scale_x_continuous(breaks = scales::pretty_breaks(n = 6)) + scale_color_manual( labels = c( "Maakuntien väliset muutot", "Seutukuntien väliset muutot", "Kuntien väliset muutot", "Kuntien sisäiset muutot" ), values = brewer.pal(5, "Blues")[2:5] ) + guides(colour = guide_legend(nrow = 2)) p1 # ggsave(here("analyysit/Raportin_kuviot/muutot90_17.png"), p1, width = 6.5, height = 5.5)
dat_kokonaismuutto %>% filter(vuosi == max(vuosi)) %>% knitr::kable()
p2 <- dat_kokonaismuutto %>% ggplot(aes(x = vuosi, y = muuttoaste, col = muuton_tyyppi)) + geom_line() + theme(legend.title = element_blank()) + ylab("Muuttoaste") + # Muuttojen määrä suhteessa väkilukuun xlab(NULL) + #ggtitle("Muuttoasteet Suomessa 1990 - 2016") + geom_hline(yintercept = 0, color = "black", linetype = 2) + theme(legend.position = "bottom", legend.justification = "left") + scale_x_continuous(breaks = scales::pretty_breaks(n = 6)) + scale_y_continuous(labels = percent_comma) + scale_color_manual(labels = c("Maakuntien väliset muutot", "Seutukuntien väliset muutot", "Kuntien väliset muutot", "Kuntien sisäiset muutot"), values = brewer.pal(5, "Blues")[2:5]) + guides(colour = guide_legend(nrow = 2)) # ggsave("analyysit/Raportin_kuviot/muuttoasteet90_17.png", p2) p2
dat_kokonaismuutto %>% filter(muuton_tyyppi != "kuntien sisaiset muutot") %>% ggplot(aes(x = vuosi, y = muuttoaste, col = muuton_tyyppi)) + geom_line() + theme(legend.title = element_blank()) + ylab("Muuttoaste") + # Muuttojen määrä suhteessa väkilukuun xlab(NULL) + #ggtitle("Muuttoasteet Suomessa 1990 - 2016") + geom_hline(yintercept = 0, color = "black", linetype = 2) + theme(legend.position = "bottom", legend.justification = "left") + scale_x_continuous(breaks = scales::pretty_breaks(n = 6)) + scale_y_continuous(labels = percent_comma) + scale_color_manual(labels = c("Maakuntien väliset muutot", "Seutukuntien väliset muutot", "Kuntien väliset muutot", "Kuntien sisäiset muutot"), values = brewer.pal(5, "Blues")[2:5]) + guides(colour = guide_legend(nrow = 2)) # ggsave(here::here("analyysit/Raportin_kuviot/muuttoasteet90_17_ei_sis.png"))
p3 <- ggarrange(p1 + guides(colour = guide_legend(nrow = 1)), p2 + guides(colour = guide_legend(nrow = 1)), ncol = 2, common.legend = TRUE, legend = "bottom") # ggsave("analyysit/Raportin_kuviot/muutot_muuttoasteet90_17t.png", p3, # width = 300, # height = 150, # units = "mm") p3
ptoim1_tiedot <- c( "Työttömät" = "seutukuntien_valinen_tyottomien_muutto", "Työlliset" = "seutukuntien_valinen_tyollisten_muutto", "Opiskelijat" = "seutukuntien_valinen_opiskelijoiden_muutto", "0-14 -vuotiaat" = "seutukuntien_valinen_lasten_muutto", "Muut työvoiman ulkopuolella olevat" = "seutukuntien_valinen_palvelusmiesten_muutto", "Eläkeläiset" = "seutukuntien_valinen_elakelaisten_muutto", "Muut työvoiman ulkopuolella olevat" = "seutukuntien_valinen_muutyovoimanulkopuolella_muutto" ) # Seutukuntien väliset muutot muutto_ptoim1_pdat <- muutto_ptoim1_dat %>% filter(tiedot %in% ptoim1_tiedot) %>% mutate(tiedot = fct_recode(tiedot, !!!ptoim1_tiedot)) %>% group_by(tiedot, vuosi) %>% summarise(value = sum(value)) %>% ungroup() muutto_ptoim1_pdat %>% ggplot(aes(x = vuosi, y = value)) + geom_area(aes(fill = tiedot)) + theme_light(14) + theme( legend.title = element_blank(), legend.position = "bottom", legend.justification = "left" ) + scale_fill_manual(values = brewer.pal(8, "Blues")) + scale_x_continuous(breaks = scales::pretty_breaks(n = 6)) + scale_y_continuous(labels = deci_comma) + labs(x = NULL, y = "Seutukuntien välisiä muuttoja") + stat_summary(fun.y = "sum", geom = "line", color = "black", linetype = 1, size = 1, show.legend = FALSE)
muutto_ptoim1_pdat %>% filter(vuosi == max(vuosi)) %>% mutate(osuus = 100 * value / sum(value)) %>% add_row(tiedot = "Yhteensä", value = sum(.$value), osuus = sum(.$osuus)) %>% knitr::kable(digits = 0) # muutto_ptoim1_dat %>% # filter(vuosi == 2015, tiedot == "asukkaat")
tyon_siirtyminen_tiedot <- c( "Muutto" = "seutukuntien_valinen_muutto", "Työikäisten muutto" = "seutukuntien_valinen_tyoikaisten_muutto", "Työpaikan siirtyminen" = "seutukuntien_valinen_tyon_siirtyminen", "Työtä siirtävä muutto" = "seutukuntien_valinen_tyota_siirtava_muutto", "Työllisten muutto" = "seutukuntien_valinen_tyollisten_muutto", "Työllistävä muutto" = "seutukuntien_valinen_tyottomien_tyollistava_muutto", "Työllistävä muutto" = "seutukuntien_valinen_tyovoiman_ulkopuolelta_tyollistava_muutto" ) tyon_siirtyminen_pdat <- dat_muutto_aikasarja_km %>% filter(tiedot %in% tyon_siirtyminen_tiedot) %>% mutate(tiedot = fct_recode(tiedot, !!!tyon_siirtyminen_tiedot), tiedot = fct_reorder(tiedot, value, .desc = TRUE)) %>% group_by(tiedot, time) %>% summarise(value = sum(value)) %>% ungroup() tyon_siirtyminen_pdat %>% ggplot(aes(time, value/1000, colour = tiedot)) + geom_line() + geom_h0() + scale_x_continuous(breaks = scales::pretty_breaks()) + scale_colour_manual(values = rev(atyyppi_colour[2:7])) + the_legend_bot() + labs(y = "1000 henkeä", x = NULL, colour = NULL)
dat_muuttotiedot_kunnittain %>% filter(Tiedot == "nettomuutto") %>% mutate(aluetyyppi = fct_recode(aluetyyppi, "Muut keskukset" = "Muut työssäkäyntialueden keskukset")) %>% group_by(aluetyyppi, Vuosi) %>% summarize(nettomuutto = sum(values)) %>% ungroup() %>% ggplot(aes(x = Vuosi, y = nettomuutto, color = aluetyyppi)) + geom_line() + geom_hline(yintercept = 0, color = "grey", size = 1) + scale_colour_manual(values = atyyppi_colour) + the_title_blank("l") + # the_legend_bot() + labs(x = NULL, y = NULL, caption = "Lähde: PTT, Tilastokeskus", title = "Nettomuutot", subtitle = "Tulo- ja lähtömuuttojen erotus vuosittain")
time_range <- range(tyo_muutto_atyyppi$time) tyo_muutto_atyyppi %>% select(time, aluetyyppi, 'Työperäinen' = tyo_muutto_netto, '18-80-vuotiaat' = tmuutto_netto) %>% mutate(aluetyyppi = fct_recode(aluetyyppi, 'Muu maaseutu' = "Ydinmaaseutu", 'Muu maaseutu' = "Harvaan asuttu maaseutu", 'Muut keskukset' = "Muut työssäkäyntialueen keskukset"), aluetyyppi = ggptt::line_wrap(aluetyyppi, 25)) %>% group_by(time, aluetyyppi) %>% summarise_all(sum) %>% ungroup() %>% gather(vars, values, -time, -aluetyyppi) %>% ggplot(aes(time, values, colour = vars)) + facet_wrap( ~ aluetyyppi) + geom_line() + geom_h0() + # scale_colour_manual(values = atyyppi_colour) + the_title_blank(c("x", "l")) + the_legend_bot() + labs(subtitle = glue("Samana vuonna asuin- ja työpaikan kuntaan vaihtaneiden ja 18-80-vuotiaiden nettomuutto vuosina {time_range[1]}-{time_range[2]}."), caption = "Lähde: PTT, Tilastokeskus", y = "henkeä") # ggsave("tyo_muutto_atyyppi.png", height = 6, width = 12)
time_range <- range(dat_tulopendelointi$time) dat_tulopendelointi_tyyppi %>% filter(koulutusaste == "Yhteensä", ika == "Yhteensä", aluetyyppi != "Koko maa") %>% select(-ika, -koulutusaste) %>% mutate(aluetyyppi = fct_recode(aluetyyppi, 'Muu maaseutu' = "Ydinmaaseutu", 'Muu maaseutu' = "Harvaan asuttu maaseutu"), aluetyyppi = ggptt::line_wrap(aluetyyppi, 25)) %>% group_by(time, aluetyyppi, pendelointi) %>% summarise_all(sum) %>% ungroup() %>% mutate(pendelointi = fct_recode(pendelointi, kaikki = "Yhteensä", asuinkunnassa = "Asuinkunnassaan työssäkäyvät", pendeloivat = "Alueelle pendelöivät")) %>% spread(pendelointi, values) %>% mutate(values = 100 * pendeloivat / kaikki) %>% ggplot(aes(time, values, colour = aluetyyppi)) + geom_line() + scale_colour_manual(values = atyyppi_colour) + the_title_blank(c("x", "l")) + # the_legend_bot() + labs(subtitle = glue("Muissa kunnissa asuvien osuus työssäkäyvistä alueilla", " vuosina {time_range[1]}-{time_range[2]}."), title = "Muista kunnista työssäkäyvien osuus", caption = "Lähde: PTT, Tilastokeskus", y = "%") # ggsave("fig/pend_atyyppi.png", height = 6, width = 12)
tyot_vakanssi_dat %>% select(time, aluetyyppi, "Työttömyysaste" = tyottomyysaste_trend, "Vakanssiaste" = vakanssiaste_trend) %>% gather(vars, values, - time, -aluetyyppi) %>% mutate(aluetyyppi = fct_relevel(aluetyyppi, aluetyyppit), aluetyyppi = fct_recode(aluetyyppi, !!!aluetyyppit)) %>% ggplot(aes(x = time, y = 100 * values, col = aluetyyppi)) + facet_wrap(~ vars, scales = "free") + geom_line() + geom_h0() + labs(y = "%, trendi", x = NULL, color = NULL) + scale_color_manual(values = atyyppi_colour) + theme(legend.position = "bottom", legend.justification = "left") + guides(col = guide_legend(nrow = 3))
tyot_vakanssi_dat %>% select(time, aluetyyppi, "Työttömät" = tyottomat_trend, "Avoimet työpaikat" = avoimet_tyopaikat_trend) %>% gather(vars, values, - time, -aluetyyppi) %>% mutate(aluetyyppi = fct_relevel(aluetyyppi, aluetyyppit), aluetyyppi = fct_recode(aluetyyppi, !!!aluetyyppit), vars = fct_rev(vars)) %>% ggplot(aes(x = time, y = values, col = aluetyyppi)) + facet_wrap(~ vars, scales = "free") + geom_line() + geom_h0() + labs(y = "henkeä/paikkaa, trendi", x = NULL, color = NULL) + scale_color_manual(values = atyyppi_colour) + theme(legend.position = "bottom", legend.justification = "left", legend.text = element_text(size = 12)) + guides(col = guide_legend(nrow = 3))
tyot_vakanssi_ku_dat %>% filter(Maakunta != "Ahvenanmaa - Åland") %>% filter(vuosi == 2018) %>% group_by(Seutukunta) %>% summarise(tyottomyysaste = 100 * sum(Tyottomat, na.rm = TRUE) / sum(Tyovoima, na.rm = TRUE), vakanssiaste = 100 * sum(Avoimet_tyopaikat, na.rm = TRUE) / sum(Avoimet_tyopaikat + Tyovoima - Tyottomat, na.rm = TRUE), Tyottomat = sum(Tyottomat, na.rm = TRUE)) %>% ungroup() %>% ggplot(aes(tyottomyysaste, vakanssiaste, size = Tyottomat)) + geom_point(alpha = 0.5) + stat_smooth(method = "lm") + geom_h0() + scale_size(guide = "none") + labs(x = "Työttömyysaste, %", y = "Vakanssiaste, %")
marginal_effects_selection_personal_unemp <- readRDS(here("data/liikkuvuusvalintamallitulokset/marginal_effects_selection_personal_unemployed.rds")) personal_labels = c("Sukupuoli (ref: mies)", "Ikä, vuosia", "Opiskelija, ptoim2, (ref: ei opiskelija)", "Syntynyt ulkomailla (ref: ei syntynyt ulkomailla", "Keskiasteen koulutus (ref: peruskoulu)", "Korkea-asteen koulutus (ref: peruskoulu)", "Tutkija-asteen koulutus (ref: peruskoulu)", "Puoliso töissä", "Pari, lapsia (ref: pari, ei lapsia)", "Asuu yksin (ref: pari, ei lapsia)", "Yksinhuoltaja (ref: pari, ei lapsia)", "Asuu vuokralla (ref: omistuasuja)", "Omistuoikeusasunto (ref: omistusasuja)", "Muu asumismuoto (ref: omistusasuja)", "Muuttokokemus", "Pendelöintikokemus")[16:1] me_labels <- c( `Pendelöintikokemus` = "comm_exp_t0TRUE", `Muuttokokemus` = "migr_exp_t0TRUE", `Muu asumismuoto (ref: omistusasuja)` = "hape_t0Other tenure status", `Omistuoikeusasunto (ref: omistusasuja)` = "hape_t0Right of occupancy dwelling", `Asuu vuokralla (ref: omistuasuja)` = "hape_t0Rents the dwelling", `Yksinhuoltaja (ref: pari, ei lapsia)` = "pety_t0Single parent", `Asuu yksin (ref: pari, ei lapsia)` = "pety_t0Living alone", `Pari, lapsia (ref: pari, ei lapsia)` = "pety_t0Couple with children", `Puoliso töissä` = "spouse_working_t1TRUE", `Tutkija-asteen koulutus (ref: peruskoulu)` = "ututku_aste_t1Doctoral or equivalent level", `Korkea-asteen koulutus (ref: peruskoulu)` = "ututku_aste_t1Tertiary education", `Keskiasteen koulutus (ref: peruskoulu)` = "ututku_aste_t1Secondary education", `Syntynyt ulkomailla (ref: syntynyt Suomessa` = "syntyp2Born abroad", `Opiskelija, ptoim2, (ref: ei opiskelija)` = "opiskelija_t1Student", `Ikä, vuosia` = "ika_t1", `Sukupuoli (ref: mies)` = "sukup_t1Female" ) marginal_effects_selection_personal_unemp %>% ggplot(aes(y = coefficient, x = var, label = coefficient)) + geom_hline(yintercept = 0, linetype = 4, color = "black", size = 1.2) + geom_segment(aes(y = 0, x = var, yend = coefficient, xend = var), color = "#0ABBEC", size = 3) + #geom_errorbar(aes(x = var, ymin = coefficient - 2*data$se, ymax = coefficient + 2*data$se), # color = "red", size = 1.2, linetype = 2) + geom_point(stat = "identity", color = "#006FB9", size = 10) + geom_text(color = "white", size = 3) + coord_flip() + theme(axis.text.y = element_text(size = rel(0.8), face = "bold")) + labs(x = NULL, y = "Keskimääräinen marginaalivaikutus, %-yksikköä", title = "Liikkuvuuden todennäköisyys, työttömät") + scale_x_discrete(labels = personal_labels) #ggsave("analyysit/Liikkuvuusvalinnat/kuvaajat/marginal_effects_selection_personal_unemployed.png", # width = 5, height = 6)
marginal_effects_outcome_personal_unemp <- readRDS(here("data/liikkuvuusvalintamallitulokset/marginal_effects_outcome_personal_unemployed.rds")) marginal_effects_outcome_personal_unemp %>% ggplot(aes(y = coefficient, x = var, label = coefficient)) + geom_hline(yintercept = 0, linetype = 4, color = "black", size = 1.2) + geom_segment(aes(y = 0, x = var, yend = coefficient, xend = var), color = "#0ABBEC", size = 3) + #geom_errorbar(aes(x = var, ymin = coefficient - 2*data$se, ymax = coefficient + 2*data$se), # color = "red", size = 1.2, linetype = 2) + geom_point(stat = "identity", color = "#006FB9", size = 10) + geom_text(color = "white", size = 3) + coord_flip() + theme(axis.text.y = element_text(size = rel(0.8), face = "bold"), title = element_text(size = rel(0.8))) + labs(x = NULL, y = "Keskimääräinen marginaalivaikutus, %-yksikköä", title = "Muuttamisen todennäköisyys, työttömät") + scale_x_discrete(labels = personal_labels) #ggsave("analyysit/Liikkuvuusvalinnat/kuvaajat/marginal_effects_outcome_personal_unemployed.png", # width = 5, height = 6)
me_unemp <- bind_rows("Liikkuvuuden todennäköisyys" = marginal_effects_selection_personal_unemp, "Muuton todennäköisyys liikkujilla" = marginal_effects_outcome_personal_unemp, .id = "step") %>% mutate(var = fct_recode(var, !!!me_labels)) me_unemp %>% ggplot(aes(y = coefficient, x = var, label = coefficient)) + facet_wrap(~ step) + geom_hline(yintercept = 0, linetype = 4, color = "black", size = 1.2) + geom_segment(aes(y = 0, x = var, yend = coefficient, xend = var), color = "#0ABBEC", size = 3) + #geom_errorbar(aes(x = var, ymin = coefficient - 2*data$se, ymax = coefficient + 2*data$se), # color = "red", size = 1.2, linetype = 2) + geom_point(stat = "identity", color = "#006FB9", size = 10) + geom_text(color = "white", size = 3) + coord_flip() + theme(axis.text.y = element_text(size = rel(0.8), face = "bold"), title = element_text(size = rel(0.8))) + labs(x = NULL, y = "Keskimääräinen marginaalivaikutus, %-yksikköä", title = "Liikkuvuusvalinnat, työttömät")
marginal_effects_selection_personal_emp <- readRDS(here("data/liikkuvuusvalintamallitulokset/marginal_effects_selection_personal_employed.rds")) marginal_effects_selection_personal_emp %>% ggplot(aes(y = coefficient, x = var, label = coefficient)) + geom_hline(yintercept = 0, linetype = 4, color = "black", size = 1.2) + geom_segment(aes(y = 0, x = var, yend = coefficient, xend = var), color = "#0ABBEC", size = 3) + #geom_errorbar(aes(x = var, ymin = coefficient - 2*data$se, ymax = coefficient + 2*data$se), # color = "red", size = 1.2, linetype = 2) + geom_point(stat = "identity", color = "#006FB9", size = 10) + geom_text(color = "white", size = 3) + coord_flip() + theme_light() + theme(text = element_text(size = 10, family = "sans")) + labs(x = NULL, y = "Keskimääräinen marginaalivaikutus, %-yksikköä", title = "Liikkuvuuden todennäköisyys, työlliset") + scale_x_discrete(labels = personal_labels) #ggsave("analyysit/Liikkuvuusvalinnat/kuvaajat/marginal_effects_selection_personal_employed.png", # width = 5, height = 6)
marginal_effects_outcome_personal_emp <- readRDS(here("data/liikkuvuusvalintamallitulokset/marginal_effects_outcome_personal_employed.rds")) marginal_effects_outcome_personal_emp %>% ggplot(aes(y = coefficient, x = var, label = coefficient)) + geom_hline(yintercept = 0, linetype = 4, color = "black", size = 1.2) + geom_segment(aes(y = 0, x = var, yend = coefficient, xend = var), color = "#0ABBEC", size = 3) + #geom_errorbar(aes(x = var, ymin = coefficient - 2*data$se, ymax = coefficient + 2*data$se), # color = "red", size = 1.2, linetype = 2) + geom_point(stat = "identity", color = "#006FB9", size = 10) + geom_text(color = "white", size = 3) + coord_flip() + theme_light() + theme(text = element_text(size = 10, family = "sans")) + labs(x = NULL, y = "Keskimääräinen marginaalivaikutus, %-yksikköä", title = "Muuttamisen todennäköisyys pendelöinnin sijaan, työlliset") + scale_x_discrete(labels = personal_labels) #ggsave("analyysit/Liikkuvuusvalinnat/kuvaajat/marginal_effects_outcome_personal_employed.png", # width = 5, height = 6)
me_emp <- bind_rows("Liikkuvuuden todennäköisyys" = marginal_effects_selection_personal_emp, "Muuton todennäköisyys liikkujilla" = marginal_effects_outcome_personal_emp, .id = "step") %>% mutate(var = fct_recode(var, !!!me_labels)) me_emp %>% ggplot(aes(y = coefficient, x = var, label = coefficient)) + geom_blank(data = me_unemp) + facet_wrap(~ step) + geom_hline(yintercept = 0, linetype = 4, color = "black", size = 1.2) + geom_segment(aes(y = 0, x = var, yend = coefficient, xend = var), color = "#0ABBEC", size = 3) + #geom_errorbar(aes(x = var, ymin = coefficient - 2*data$se, ymax = coefficient + 2*data$se), # color = "red", size = 1.2, linetype = 2) + geom_point(stat = "identity", color = "#006FB9", size = 10) + geom_text(color = "white", size = 3) + coord_flip() + theme(axis.text.y = element_text(size = rel(0.8), face = "bold"), title = element_text(size = rel(0.8))) + labs(x = NULL, y = "Keskimääräinen marginaalivaikutus, %-yksikköä", title = "Liikkuvuusvalinnat, työlliset")
Ruutuaineistosta laskettu
dat_matkat_aluokka %>% gather(vars, values, tyomatka_asuin, tyomatka_tyo) %>% mutate(vars = fct_recode(vars, "Asuinpaikan mukaan" = "tyomatka_asuin", "Työpaikan mukaan" = "tyomatka_tyo")) %>% ggplot(aes(time, values, colour = aluokka)) + facet_wrap(~ vars) + geom_line() + geom_h0() + scale_colour_manual(values = atyyppi_colour) + scale_x_continuous(labels = no_century) + labs(title = "Keskimääräiset työmatkat", subtitle = "Ruutuaineistosta kaupunki-maaseutuluokituksella", caption = "© YKR / SYKE ja TK 2018", y = "km") + the_title_blank(c("x", "l")) # ggsave("matkat.png", height = 8, width = 16)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.