knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>", 
  fig.height = 6,
  fig.width = 8,
  fig.path = "Report/", 
  echo = FALSE, message = FALSE, warning = FALSE
)


# library(ficomp)

devtools::load_all()

library(dplyr)
library(forcats)
library(ggplot2)
library(tidyr)
library(ggptt)

set_proj_theme()

data(ulc_oecd_dat, q_dat, a_dat, naq_eurostat_dat, eo_q_dat)

base_year <- 2010
base_years <- 2000:2018
geos <- c(Finland = "FI", Sweden = "SE", Germany = "DE", France = "FR")
start_time <- "1996-01-01"
geo_trans <- geo_fi
h_geos <- c("FI", "SE", "DE", "US")

Neljännesvuositiedot

Neljännesvuositietoja on kolme erilaista tietokantaa:

tibble(code = levels(naq_eurostat_dat$na_item), name = label_eurostat(levels(naq_eurostat_dat$na_item), "na_item"))

Nimellinen yksikkötyökustannus

OECD quarterly ULC data

OECD ULC tiedoissa olevat maat: r levels(ulc_oecd_dat$geo).

Maiden lukumäärä r length(levels(ulc_oecd_dat$geo)).

Muuttujat: r levels(ulc_oecd_dat$na_item)

ulc_oecd_dat %>% 
  filter(na_item == "NULC_APER") %>% 
  mutate(h_geo = fct_other(geo, keep = h_geos,other_level = "muut"),
         h_geo = fct_relevel(h_geo, h_geos),
         geo = fct_relevel(geo, rev(h_geos), after = Inf),
         size = !(geo %in% h_geo)) %>% 
  translate(h_geo, geo_trans) %>% 
  ggplot(aes(time, values, group = geo, colour = h_geo, size = size)) +
  geom_line() +
  scale_size_manual(values = c(2,1), guide = "none") +
  scale_colour_manual(values = geo_col(length(h_geos) + 1)) +
  the_title_blank()

# library(ggiraph)
# 
# ggi <- last_plot() + geom_line_interactive(aes(tooltip = geo))
# girafe(print(ggi))

Tiedot alkavat pääosin vuodesta 1995. Aloittamalla vuodesta 1996 saadaan muutama muu maa mukaan. Tietojen saatavuuden ja vertailtavuuden perusteella mukaan on otettu seuraavat maat.

ulc_oecd_dat %>% 
  filter(na_item == "NULC_APER") %>% 
  drop_na(values) %>% 
  group_by(geo, na_item) %>% 
  mutate(tmin = min(time), 
         tmax = max(time)) %>% 
  ungroup() %>% 
  mutate(selected = geo %in% c(eurostat_geos, oecd_geos_ulcq)) %>% 
  translate(geo, geo_trans) %>% 
  ggplot(aes(geo, ymin = tmin, ymax = tmax, colour = selected)) +
    geom_linerange(size = 2) +
    coord_flip() +
    geom_hline(yintercept = as.numeric(as.Date("1996-01-01"))) +
    scale_y_date(breaks = as.Date(c("1960-01-01", "1980-01-01", 
                                    "1996-01-01", "2000-01-01", "2020-01-01")), 
                 date_labels = "%Y") +
    scale_colour_manual(values = rev(geo_col(2)), guide = "none") +
    the_title_blank("y")

save_fig("2_ulc_oecd_selected_geo", height = 5.8)

Valitut maat OECD quarterly

Indeksi ja suhteellinen indeksi IMF painoilla. y-akseli on katkaistu.

q_dat_oecd_ulc %>% 
  # filter(geo != "JP") %>%
  select(geo, time, nulc_aper, nulc_aper_rel_imf) %>% 
  gather(vars, values, nulc_aper, nulc_aper_rel_imf) %>% 
  mutate(h_geo = fct_other(geo, keep = h_geos,other_level = "muut"),
         h_geo = fct_relevel(h_geo, h_geos),
         geo = fct_relevel(geo, rev(h_geos), after = Inf),
         size = !(geo %in% h_geo)) %>% 
  translate(h_geo, geo_trans) %>% 
  translate(vars, c(nulc_aper = "Indeksi", 
                    nulc_aper_rel_imf = "Suhteellinen indeksi")) %>% 
  ggplot(aes(time, values, group = geo, colour = h_geo, size = size)) +
  facet_wrap(~ vars) +
  geom_line() +
  scale_size_manual(values = c(2,1), guide = "none") +
  scale_colour_manual(values = geo_col(length(h_geos) + 1)) +
  the_title_blank(c("x", "l")) +
  scale_y_continuous(limits = c(70,130), expand = expansion(mult = 0, add = 0)) +
  labs(y = "indeksi, 2010 = 100")

save_fig("3_ulc_oecd")

OECD Economic Outlook

Alkaa 1991, mutta neljännesvuositieodoissa osasta maista ei tietoja. c("NO", "DK", "NZ", "ES")

eo_q_dat_large %>% 
  select(geo, time, values = nulc) %>% 
  group_by(geo) %>% 
  # coaleasce and na_if to set same min and ma for countries with all missing
  mutate(tmin = coalesce(na_if(min(time[!is.na(values)]), Inf), as.Date("1996-01-01")), 
         tmax = coalesce(na_if(max(time[!is.na(values)]), -Inf), as.Date("1996-01-01"))) %>% 
  ungroup() %>% 
  mutate(selected = geo %in% c(eurostat_geos, oecd_geos_ulcq)) %>% 
  translate(geo, geo_trans) %>% 
  ggplot(aes(geo, ymin = tmin, ymax = tmax, colour = selected)) +
    geom_linerange(size = 2, colour = geo_col(2)[1]) +
    coord_flip() +
    geom_hline(yintercept = as.numeric(as.Date("1991-01-01"))) +
    scale_y_date(breaks = as.Date(c("1960-01-01", "1980-01-01", 
                                    "1991-01-01", "2000-01-01", "2020-01-01")), 
                 date_labels = "%Y") +
    scale_colour_manual(values = rev(geo_col(2)), guide = "none") +
    the_title_blank("y")

save_fig("4_OECD_eo_geos")

Neljännesvuosidata

Yhdistelmä Eurostatin ja OECD:n Quarterly National Accounts datasta

q_dat %>% 
  select(geo, time, values = nulc_aper) %>% 
  group_by(geo) %>% 
  mutate(tmin = min(time[!is.na(values)]), 
         tmax = max(time[!is.na(values)])) %>% 
  ungroup() %>% 
  mutate(selected = geo %in% c(eurostat_geos, oecd_geos_ulcq)) %>% 
  translate(geo, geo_trans) %>% 
  ggplot(aes(geo, ymin = tmin, ymax = tmax, colour = selected)) +
    geom_linerange(size = 2, colour = geo_col(2)[1]) +
    coord_flip() +
    geom_hline(yintercept = as.numeric(as.Date("1996-01-01"))) +
    scale_y_date(breaks = as.Date(c("1996-01-01", "2000-01-01",
                                    "2020-01-01")),
    date_labels = "%Y") +
    scale_colour_manual(values = rev(geo_col(2)), guide = "none") +
    the_title_blank("y")

save_fig("5_Eurostat_OECD_geos")
data_quartely_est %>% 
  select(geo, time, values = nulc_aper) %>% 
  group_by(geo) %>% 
  mutate(tmin = min(time[!is.na(values)]), 
         tmax = max(time[!is.na(values)])) %>% 
  ungroup() %>% 
  mutate(selected = geo %in% c(eurostat_geos, oecd_geos_ulcq)) %>% 
  translate(geo, geo_trans) %>% 
  ggplot(aes(geo, ymin = tmin, ymax = tmax, colour = selected)) +
    geom_linerange(size = 2, colour = geo_col(2)[1]) +
    coord_flip() +
    geom_hline(yintercept = as.numeric(as.Date("1996-01-01"))) +
    scale_y_date(breaks = as.Date(c("1996-01-01", "2000-01-01",
                                    "2020-01-01")),
    date_labels = "%Y") +
    scale_colour_manual(values = rev(geo_col(2)), guide = "none") +
    the_title_blank("y")
q_dat %>% 
  # filter(geo != "JP") %>%
  select(geo, time, nulc_aper, nulc_aper_rel_imf) %>% 
  gather(vars, values, nulc_aper, nulc_aper_rel_imf) %>% 
  mutate(h_geo = fct_other(geo, keep = h_geos,other_level = "muut"),
         h_geo = fct_relevel(h_geo, h_geos),
         geo = fct_relevel(geo, rev(h_geos), after = Inf),
         size = !(geo %in% h_geo)) %>% 
  translate(h_geo, geo_trans) %>% 
  translate(vars, c(nulc_aper = "Indeksi", 
                    nulc_aper_rel_imf = "Suhteellinen indeksi")) %>% 
  ggplot(aes(time, values, group = geo, colour = h_geo, size = size)) +
  facet_wrap(~ vars) +
  geom_line() +
  scale_size_manual(values = c(2,1), guide = "none") +
  scale_colour_manual(values = geo_col(length(h_geos) + 1)) +
  the_title_blank(c("x", "l")) +
  scale_y_continuous(limits = c(70,130), expand = expansion(mult = 0, add = 0)) +
  labs(y = "indeksi, 2010 = 100")

save_fig("6_nulc_q_dat")

Vertailu OECD ULC ja yhdistelmä

Economic outlook antaa alkupäässä ja lopussa hieman erilaisia arvoja.

max_time_q <- max(q_dat$time)

bind_rows("Eurostat ja OECD QNA" = q_dat,
          "OECD ULC" = q_dat_oecd_ulc,
          "OECD EO" = rename(eo_q_dat, nulc_aper = nulc, nulc_aper_rel_imf = nulc_rel_imf),
          .id = "source") %>% 
  filter(geo == "FI", 
         # time >= start_time, 
         time <= max_time_q) %>% 
  select(source, time, nulc_aper, nulc_aper_rel_imf) %>% 
  gather(vars, values, nulc_aper, nulc_aper_rel_imf) %>% 
  # mutate(h_geo = fct_other(geo, keep = h_geos,other_level = "muut"),
  #        h_geo = fct_relevel(h_geo, h_geos),
  #        geo = fct_relevel(geo, rev(h_geos), after = Inf),
  #        size = !(geo %in% h_geo)) %>% 
  # translate(h_geo, geo_trans) %>% 
  translate(vars, c(nulc_aper = "Indeksi", 
                    nulc_aper_rel_imf = "Suhteellinen indeksi")) %>% 
  ggplot(aes(time, values, colour = source)) +
  facet_wrap(~ vars) +
  geom_line() +
  # scale_size_manual(values = c(2,1), guide = "none") +
  # scale_colour_manual(values = geo_col(length(h_geos) + 1)) +
  the_title_blank(c("x", "l")) +
  # scale_y_continuous(limits = c(70,130), expand = expansion(mult = 0, add = 0)) +
  labs(y = "indeksi, 2010 = 100") +
  the_legend_bot()

save_fig("7_nulc_comparison")

OECD EO:n ero tulee siitä, että siinä ei ole laskettu yrittäjäkorjausta.

bind_rows("Eurostat ja OECD QNA" = q_dat,
          "OECD EO" = eo_q_dat,
          .id = "source") %>% 
  filter(geo == "FI", 
         time <= max_time_q) %>% 
  select(source, time, nulc_aper,  nulc) %>% 
  gather(vars, values, -source, - time) %>% 
  filter(!is.na(values)) %>% 
  unite(vars, vars, source, sep = ", ") %>% 

  ggplot(aes(time, values, colour = vars)) +
  geom_line() +
  the_title_blank(c("x", "l")) +
  labs(y = "indeksi, 2010 = 100") +
  guides(color = guide_legend(nrow = 2)) +
  the_legend_bot()
# To check

bind_rows("Eurostat ja EO" = q_dat,
          "OECD ULC" = q_dat_oecd_ulc, .id = "source") %>% 
  select(geo, source, time, nulc_aper, nulc_aper_rel_imf) %>% 
  gather(vars, values, nulc_aper, nulc_aper_rel_imf) %>% 
  # mutate(h_geo = fct_other(geo, keep = h_geos,other_level = "muut"),
  #        h_geo = fct_relevel(h_geo, h_geos),
  #        geo = fct_relevel(geo, rev(h_geos), after = Inf),
  #        size = !(geo %in% h_geo)) %>% 
  # translate(h_geo, geo_trans) %>% 
  mutate(source = fct_rev(as_factor(source))) %>% 
  translate(vars, c(nulc_aper = "Indeksi", 
                    nulc_aper_rel_imf = "Suhteellinen indeksi")) %>% 
  ggplot(aes(time, values, colour = source)) +
  facet_grid(geo ~ vars) +
  geom_line() +
  # scale_size_manual(values = c(2,1), guide = "none") +
  # scale_colour_manual(values = geo_col(length(h_geos) + 1)) +
  the_title_blank(c("x", "l")) +
  # scale_y_continuous(limits = c(70,130), expand = expansion(mult = 0, add = 0)) +
  labs(y = "indeksi, 2010 = 100")

Koko talous ja teollisuus neljännesvuositiedoissa

Tässä vain eurostat maat

data_main_groups_q %>% 
    select(geo, nace0, time, nulc_aper = nulc_aper_va, nulc_aper_rel_imf = nulc_aper_va_rel_imf) %>% 
  gather(vars, values, nulc_aper, nulc_aper_rel_imf) %>% 
  mutate(h_geo = fct_other(geo, keep = h_geos,other_level = "muut"),
         h_geo = fct_relevel(h_geo, h_geos),
         geo = fct_relevel(geo, rev(h_geos), after = Inf),
         size = !(geo %in% h_geo)) %>% 
  translate(h_geo, geo_trans) %>% 
  translate(vars, c(nulc_aper = "Indeksi", 
                    nulc_aper_rel_imf = "Suhteellinen indeksi")) %>% 
  translate(nace0, c(total = "Koko talous", manu = "Teollisuus")) %>% 
  ggplot(aes(time, values, group = geo, colour = h_geo, size = size)) +
  facet_grid(nace0 ~ vars) +
  geom_line() +
  scale_size_manual(values = c(2,1), guide = "none") +
  scale_colour_manual(values = geo_col(length(h_geos))) +
  the_title_blank(c("x", "l")) +
  scale_y_continuous(limits = c(70,130), expand = expansion(mult = 0, add = 0)) +
  labs(y = "indeksi, 2010 = 100")

save_fig("8_nulc_q_total_manu")
bind_rows(annual = mutate(data_main_groups_a, time = as.Date(paste0(time, "-07-01"))), 
            quarterly = data_main_groups_q,
            ilc = mutate(data_ilc, time = as.Date(paste0(time, "-07-01"))), 
            .id = "source") %>% 
  select(geo, time, nace0, source, nulc_va_eur) %>% 
  mutate(nace0 = recode(nace0, manu_ex26 = "manu_ex26_27")) %>% 
  filter(nace0 == "manu") %>%
  group_by(source) %>% 
  weight_at(geo, time, at = c("nulc_va_eur"), weight_df = weights_ecfin42) %>% 
  ungroup() %>% 
  gather(vars, values, -geo, -time, -source,-nace0) %>% 
  filter(geo == "FI") %>% 
  ggplot(aes(time, values, color = source)) +
  geom_line() +
  facet_wrap(~ vars)
bind_rows(annual = mutate(data_main_groups_a, time = as.Date(paste0(time, "-07-01"))), 
            quarterly = data_main_groups_q,
            ilc = mutate(data_ilc, time = as.Date(paste0(time, "-07-01"))), 
            .id = "source") %>% 
  select(geo, time, nace0, source, nulc_va, lp_ind, d1_per_ind) %>% 
  filter(nace0 == "manu") %>%
  gather(vars, values, -geo, -time, -source,-nace0) %>% 
  filter(geo == "FI") %>% 
  ggplot(aes(time, values, color = source)) +
  geom_line() +
  facet_wrap(~ vars)
data_quartely_manu_est %>% 
  select(geo, time, nace0, nulc_va_eur, nulc_va_eur_long, nulc_va_eur_rel_ecfin21, nulc_va_eur_long_rel_ecfin21) %>% 
  filter(nace0 == "manu") %>% 
  gather(vars, values, -geo, -time, -nace0) %>% 
  filter(geo == "FI") %>% 
  ggplot(aes(time, values, color = vars)) +
  geom_line() 

Different measures quarterly

Different definations for unit labour cost: Output: GDP or value added Relation to hours worked or persons (relevant if adjusted for self-employed or for decomposition)

# lc_dat_nace <- 
#   naq_eurostat_dat %>% 
#   unite(vars, na_item, unit) %>%  
#   # filter(vars %in% c("D1_CP_MNAC", "B1G_CLV10_MNAC")) %>% 
#   spread(vars, values) %>% 
#   group_by(geo, nace_r2) %>% 
#   mutate(
#     # nominal unit labour cost
#     nulc_va = ind_ulc(D1_CP_MNAC, B1G_CLV10_MNAC, time = time, baseyear = base_year),
#     nulc = ind_ulc(D1_CP_MNAC, B1GQ_CLV10_MNAC, time = time, baseyear = base_year),
#     # nominal unit labour cost, adjusted to take account emploees/emplyed share
#     nulc_hw_va = ind_ulc(D1_CP_MNAC / SAL_DC_THS_HW, B1G_CLV10_MNAC / EMP_DC_THS_HW, time = time, baseyear = base_year),
#     nulc_hw = ind_ulc(D1_CP_MNAC / SAL_DC_THS_HW, B1GQ_CLV10_MNAC / EMP_DC_THS_HW, time = time, baseyear = base_year),
#     nulc_hw_eur = ind_ulc(D1_CP_MEUR / SAL_DC_THS_HW, B1GQ_CLV10_MNAC / EMP_DC_THS_HW, time = time, baseyear = base_year),
#     nulc_per_va = ind_ulc(D1_CP_MNAC / SAL_DC_THS_PER, B1G_CLV10_MNAC / EMP_DC_THS_PER, time = time, baseyear = base_year),
#     nulc_per = ind_ulc(D1_CP_MNAC / SAL_DC_THS_PER, B1GQ_CLV10_MNAC / EMP_DC_THS_PER, time = time, baseyear = base_year)) %>% 
#   ungroup()
# 
# lc_dat <- lc_dat_nace %>% 
#   filter(nace_r2 == "TOTAL")

q_dat %>% 
  filter(geo %in% h_geos,
         time >= start_time) %>% 
  select(geo, time, nulc, nulc_va, nulc_hw, nulc_hw_va, nulc_aper, nulc_aper_va) %>% 
  gather(ind, values, -geo, -time) %>% 
  ggplot(aes(time, values, colour = geo)) +
  geom_line() +
  facet_wrap(~ ind) +
  the_title_blank() 

On short term a NULC indicator selection does not matter. On longer term differences acculumate.

q_dat %>% 
  filter(geo == "FI",
         time >= start_time) %>% 
  select(geo, time, nulc, nulc_va, nulc_hw, nulc_hw_va, nulc_aper, nulc_aper_va) %>% 
  gather(ind, values, -geo, -time) %>% 
  group_by(geo, ind) %>% 
  mutate(change = 100 * (values / lag(values, 4, order_by = time) - 1)) %>% 
  ungroup() %>% 
  gather(vars, values, values, change) %>% 
  translate(vars, c(change = "Muutos, %", values = "Taso, indeksi 2010 = 100")) %>% 
  translate(ind, var_labels_fi, simple = TRUE, parts = c(4,5)) %>%
  ggplot(aes(time, values, colour = ind)) +
  facet_wrap(~ vars, scales = "free_y") +
  geom_line() +
  geom_hline(aes(yintercept = yint), 
             data = data.frame(yint = 0, vars = "Muutos, %")) +
  the_title_blank() +
  the_legend_bot() +
  guides(colour = guide_legend(nrow = 3))

save_fig("9_nulc_ind_comparison")
fast_geos <- 
  data_quartely_est %>%
  filter(time == max(time) & !is.na(nulc_aper_eur_long)) %>% 
  pull(geo)


dat_eff <- 
  ert_eff_ic_q %>% 
  select(geo, time, exch_rt, values) %>% 
  spread(exch_rt, values)

data_quartely_est_extra <- 
  data_quartely_est %>% 
  left_join(dat_eff, by = c("geo", "time")) %>% 
  # left_join(data_quartely_manu_est, by = c("geo", "time"), suffix = c("", "_manu")) %>% 
  group_by(time) %>%
  mutate(nulc_aper_eur_long_rel_ecfin14_extra =
           weight_index2(nulc_aper_eur_long, geo, time,
                         geos = setdiff(eurostat_geos, c("NL", "EL", "IE")), weight_df = weights_ecfin37)) %>%
  mutate(nulc_aper_eur_long_rel_fast =
           weight_index2(nulc_aper_eur_long, geo, time,
                         geos = fast_geos, weight_df = weights_ecfin37)) %>% 
  mutate(rulc_aper_long_rel_fast =
           weight_index2(rulc_aper_long, geo, time,
                         geos = fast_geos, weight_df = weights_ecfin37)) %>% 
  ungroup()

data_quartely_est_extra %>%
  select(geo, time, 
         # "14 maata" = nulc_aper_eur_long_rel_ecfin14_extra, 
         "20 maata" = nulc_aper_eur_long_rel_ecfin20,
         "10 maata" = nulc_aper_eur_long_rel_fast,
         # "EU komission" = REER_IC37_ULCT,
         "reaalinen, 10 maata" = rulc_aper_long_rel_fast,
         "reaalinen, 20 maata" = rulc_aper_long_rel_ecfin20,) %>% 
  filter(geo == "FI",
         time >= start_time) %>% 
  gather(ind, values, -geo, -time) %>% 
  mutate(ind = fct_rev(ind)) %>%
  mutate(time = halfq_shift(time)) %>% 
  ggplot(aes(time, values, colour = ind)) +
  geom_line() +
  geom_hline(yintercept = 100) +
  the_title_blank(c("x", "l")) +
  the_legend_bot() +
  guides(colour = guide_legend()) + 
  labs(title = "Suomen suhteelliset yksikkötyökustannukset samassa valuutassa",
       subtitle = "eli efektiivinen valuuttakurssi yksikkötyökustannuksilla. 
       Vertailussa komission indikaattori ja aidosta neljännesvuositiededosta
       lasketut 20 ja 10 maan tietoihin perustuvat indikaattorit",
       y = "indeksi, 2010 = 100", 
       caption = "Lähde: ECFIN, AMECO, Eurostat, OECD, PTT")


# data_quartely_est %>%
#   select(geo, time, nulc_aper_eur_long) %>%
#   spread(geo, nulc_aper_eur_long) %>%
#   View()


ggsave_twitter("nulc.png")

data_quartely_est_fi <- 
  data_quartely_est %>% 
  filter(geo == "FI")

data_quartely_est_extra_fi <- 
  data_quartely_est_extra %>% 
  filter(geo == "FI")

library(MacrobondAPI)

mb_nulc_aper_eur_long_rel_fast <- MacrobondAPI::CreateTimeSeriesObject(name = "ih:mb:com:nulcefast",
                                     description = "Suomen nimelliset suhteelliset yksikkötyökustannukset samassa valuutassa, 10 maata", 
                                     region = "fi", 
                                     category = "National accounts", 
                                     frequency = "Quarterly", 
                                     startDateOrDates = as.Date(data_quartely_est_extra_fi$time),
                                     values = data_quartely_est_extra_fi$nulc_aper_eur_long_rel_fast
                                     )

mb_nulc_aper_eur_long_rel_ecfin14 <- MacrobondAPI::CreateTimeSeriesObject(name = "ih:mb:com:nulcecfin14",
                                     description = "Suomen nimelliset suhteelliset yksikkötyökustannukset samassa valuutassa, 14 maata", 
                                     region = "fi", 
                                     category = "National accounts", 
                                     frequency = "Quarterly", 
                                     startDateOrDates = as.Date(data_quartely_est_fi$time),
                                     values = data_quartely_est_fi$nulc_aper_eur_long_rel_ecfin14
                                     )

mb_nulc_aper_eur_long_rel_ecfin20 <- MacrobondAPI::CreateTimeSeriesObject(name = "ih:mb:com:nulcecfin20",
                                     description = "Suomen nimelliset suhteelliset yksikkötyökustannukset samassa valuutassa, 20 maata", 
                                     region = "fi", 
                                     category = "National accounts", 
                                     frequency = "Quarterly", 
                                     startDateOrDates = data_quartely_est_fi$time[!is.na(data_quartely_est_fi$nulc_aper_eur_long_rel_ecfin20)],
                                     values = data_quartely_est_fi$nulc_aper_eur_long_rel_ecfin20[!is.na(data_quartely_est_fi$nulc_aper_eur_long_rel_ecfin20)]
                                     )

mb_rulc_aper_long_rel_fast <- MacrobondAPI::CreateTimeSeriesObject(name = "ih:mb:com:rulcfast",
                                     description = "Suomen reaaliset suhteelliset yksikkötyökustannukset, 10 maata", 
                                     region = "fi", 
                                     category = "National accounts", 
                                     frequency = "Quarterly", 
                                     startDateOrDates = data_quartely_est_extra_fi$time[!is.na(data_quartely_est_extra_fi$rulc_aper_long_rel_fast)],
                                     values = data_quartely_est_extra_fi$rulc_aper_long_rel_fast[!is.na(data_quartely_est_extra_fi$rulc_aper_long_rel_fast)]
                                     )

UploadOneOrMoreTimeSeries(list(mb_nulc_aper_eur_long_rel_fast, mb_nulc_aper_eur_long_rel_ecfin20, mb_rulc_aper_long_rel_fast))
q_dat %>% 
  select(time, geo, "Palkasaajakorvaukset" = d1_hw_ind, "Yksikkötyökustannukset" = nulc_hw_va_eur, "Työn tuottavuus" = lp_hw_ind) %>% 
  gather(vars, values, -geo, -time) %>% 
  group_by(geo, vars) %>% 
  mutate(values = rebase(values, time, 2015)) %>% 
  ungroup() %>% 
  filter(geo %in% c(geos, "NO", "DK", "NL", "IT", "ES"), time >= "2015-01-01") %>% 
  ggplot(aes(time, values, color = geo)) +
  facet_wrap(~ vars) +
  geom_line() +
  labs(y = "indeksi, 2015, Q1 = 100")
q_dat %>% 
  select(time, geo, d1_hw_ind) %>% 
  gather(vars, values, -geo, -time) %>% 
  group_by(geo, vars) %>% 
  mutate(values = rebase(values, time, 2015)) %>% 
  ungroup() %>% 
  filter(geo %in% c(geos, "NO", "DK", "NL", "IT", "ES"), time >= "2015-01-01") %>% 
  ggplot(aes(time, values, color = geo)) +
  facet_wrap(~ vars) +
  geom_line()

Omassa ja samassa valuutassa

Samassa valuutassa volatiliteetti paljon suurempi.

q_dat %>% 
  filter(geo %in% h_geos,
         time >= start_time) %>% 
  select(geo, time, nulc, nulc_eur) %>% 
  gather(ind, values, -geo, -time, factor_key = TRUE) %>% 
  ggplot(aes(time, values, colour = geo)) +
  geom_line() +
  facet_wrap(~ ind) +
  the_title_blank()

Sama suhteellisina.

q_dat %>% 
  filter(geo %in% h_geos,
         time >= start_time) %>% 
  select(geo, time, nulc_rel_imf, nulc_eur_rel_imf) %>% 
  gather(ind, values, -geo, -time, factor_key = TRUE) %>% 
  ggplot(aes(time, values, colour = geo)) +
  geom_line() +
  facet_wrap(~ ind) +
  the_title_blank()
# Nominal unit labour cost comparison from different sources

# NULC_APER_OECD = NULC_PER_ECB = nulc_per 
#   = (D1_CP_MNAC / SAL_DC_THS_PER) / (B1GQ_CLV10_MNAC / EMP_DC_THS_PER)
#   
# NULC_HW_ECB = nulc_hw 
#   = (D1_CP_MNAC / SAL_DC_THS_HW) / (B1GQ_CLV10_MNAC / EMP_DC_THS_HW)

ulc_oecd_with <- ulc_oecd_dat %>% 
  select(- unit) %>% 
  filter(na_item == "NULC_APER") %>% 
  mutate(na_item = paste0(na_item, "_OECD")) %>% 
  group_by(geo, na_item) %>% 
  mutate(values = rebase(values, time, base_year)) %>% 
  ungroup() %>% 
  spread(na_item, values)

ulc_eurostat_with <- ulc_eurostat_dat %>% 
  filter(na_item %in% c("NULC_HW", "NULC_PER")) %>% 
  select(time, geo, na_item, values) %>% 
  mutate(na_item = paste0(na_item, "_eurostat")) %>% 
  group_by(geo, na_item) %>% 
  mutate(values = rebase(values, time, base_year)) %>% 
  ungroup() %>% 
  spread(na_item, values)

ulc_ecb_with <- ulc_ecb_dat %>% 
  filter(na_item %in% c("NULC_HW", "NULC_PER")) %>% 
  select(time, geo, na_item, values) %>% 
  mutate(na_item = paste0(na_item, "_ECB")) %>% 
  group_by(geo, na_item) %>% 
  mutate(values = rebase(values, time, base_year)) %>% 
  ungroup() %>% 
  spread(na_item, values)

lc_with <- lc_dat %>% 
  select(time, geo, nulc, nulc_va, nulc_hw, nulc_hw_va, nulc_per, nulc_per_va) %>% 
  left_join(ulc_oecd_with, by = c("time", "geo")) %>% 
  # left_join(ulc_eurostat_with, by = c("time", "geo")) %>%
  left_join(ulc_ecb_with, by = c("time", "geo")) # %>%   filter(geo == "FI") %>% View()

lc_with %>% 
  gather(vars, values, - time, - geo) %>% 
  mutate(vars = fct_relevel(vars, "NULC_APER", after = Inf)) %>% 
  filter(geo == "FI") %>% 
  ggplot(aes(time, values, colour = vars)) +
  geom_line()

Painotus

Suomelle painoilla ei juuri väliä.

q_dat %>% 
  filter(geo %in% h_geos) %>% 
  select(geo, time, nulc_aper_rel15, nulc_aper_rel_bis, nulc_aper_rel_imf) %>% 
  gather(vars, values, -geo, -time) %>% 
  # mutate(h_geo = fct_other(geo, keep = h_geos,other_level = "muut"),
  #        geo = fct_relevel(geo, h_geos, after = Inf)) %>% 
  translate(geo, geo_fi) %>% 
  translate(vars, c(nulc_aper_rel15 = "BIS, kiinteä 2015", 
                    nulc_aper_rel_bis = "BIS", 
                    nulc_aper_rel_imf = "IMF")) %>% 
  ggplot(aes(time, values, colour = vars)) +
  geom_line() +
  facet_wrap(~ geo, scales = "free") +
  scale_size_manual(values = c(2,1)) +
  the_title_blank()

save_fig("Q_weights")

Vertailu muuttujiin

q_dat %>% 
  filter(geo %in% h_geos) %>% 
  select(geo, time, nulc_aper_rel_imf, gdp_ind_rel_imf, exp_ind_rel_imf, XPERF) %>% 
  mutate(nulc_aper_rel_imf = rebase(1/nulc_aper_rel_imf, time, base_year),
         XPERF = 100* XPERF) %>% 
  gather(vars, values, -geo, -time) %>% 
  # mutate(h_geo = fct_other(geo, keep = h_geos,other_level = "muut"),
  #        geo = fct_relevel(geo, h_geos, after = Inf)) %>% 
  translate(geo, geo_fi) %>% 
  translate(vars, c(nulc_aper_rel_imf = "ULCy, käänteinen", gdp_ind_rel_imf = "BKT", 
                    exp_ind_rel_imf = "Vienti", XPERF = "Vientimenestys")) %>% 
  ggplot(aes(time, values, colour = vars)) +
  geom_line() +
  facet_wrap(~ geo, scales = "free") +
  scale_size_manual(values = c(2,1)) +
  the_title_blank()

save_fig("Q_ulc_gdp_comp")
data_quartely_est %>% 
  filter(geo == "FI", time >= "1995-01-01") %>% 
  select(geo, time, nulc_var = nulc_aper_long_rel_ecfin20, gdp_ind_long_rel_ecfin20, exp_ind_long_rel_ecfin20, XPERF) %>% 
  mutate(nulc_var = rebase(1/(nulc_var), time, base_year),
         XPERF = rebase(XPERF, time, base_year)) %>% 
  gather(vars, values, -geo, -time) %>% 
  # mutate(h_geo = fct_other(geo, keep = h_geos,other_level = "muut"),
  #        geo = fct_relevel(geo, h_geos, after = Inf)) %>% 
  translate(geo, geo_fi) %>% 
  # translate(vars, c(nulc_aper_rel_imf = "ULCy, käänteinen", gdp_ind_rel_imf = "BKT", 
                    # exp_ind_rel_imf = "Vienti", XPERF = "Vientimenestys")) %>% 
  ggplot(aes(time, values, colour = vars)) +
  geom_line() +
  # facet_wrap(~ geo, scales = "free") +
  scale_size_manual(values = c(2,1)) +
  scale_y_continuous(sec.axis = sec_axis(~ . * -1)) +
  the_title_blank() +
  the_legend_bot() +
  guides(colour = guide_legend(nrow = 2))

save_board_figs("rel")
data_ameco_long %>% 
  filter(geo == "FI") %>% 
  filter(time >= "1995-01-01") %>% 
  select(geo, time, nulc_var = nulc_aper_rel_ameco15, 
         # rulc_var = rulc_aper_rel_ameco15, 
         out_var = gdp_ind_rel_ameco15) %>% 
  mutate(nulc_var = rebase(1/nulc_var, time, base_year)) %>%
  # mutate(rulc_var = rebase(1/rulc_var, time, base_year)) %>%
  # mutate(out_var = 100* (out_var / lag(out_var) -1) + 100) %>% 
  gather(vars, values, -geo, -time) %>% 
  # mutate(h_geo = fct_other(geo, keep = h_geos,other_level = "muut"),
  #        geo = fct_relevel(geo, h_geos, after = Inf)) %>% 
  translate(geo, geo_fi) %>% 
  # translate(vars, c(nulc_aper_rel_imf = "ULCy, käänteinen", gdp_ind_rel_imf = "BKT", 
                    # exp_ind_rel_imf = "Vienti", XPERF = "Vientimenestys")) %>% 
  ggplot(aes(time, values, colour = vars)) +
  geom_line() +
  facet_wrap(~ geo, scales = "free") +
  scale_size_manual(values = c(2,1)) +
  the_title_blank()


pttry/ficomp documentation built on June 11, 2024, 9:53 p.m.