library(MiscImport) library(tidyverse) library(readxl) library(zoo) library(lubridate) library(ggcorrplot)
monetary_df = import_boi_monetary_df()
gdp_df = read_csv(paste0(Sys.getenv("USERPROFILE"), "\\OneDrive - Bank Of Israel\\Data", "\\BoI\\real_data", "\\GDP_nominal_quarterly.csv"), col_names = c("date","gdp")) gdp_df = gdp_df %>% mutate(date = as.yearqtr(date, format = "%d/%m/%Y")) %>% mutate(gdp_trend = gdp / gdp[date == as.yearqtr("2000 Q1")])
mortgage_credit_df = read_xlsx( paste0( Sys.getenv("USERPROFILE"), "\\OneDrive - Bank Of Israel\\Data", "\\BoI\\Credit\\new_mortgages_by_linkage.xlsx" ), col_names = c( "date", "real_variable", "real_fixed", "nominal_variable", "nominal_fixed", "total", "fx-real_variable", "fx-nominal_fixed" ), range = cell_limits(c(2, 1), c(NA, 8)), col_types = c("date", rep("numeric", 7)) ) %>% mutate(date = as.yearmon(date)) mortgage_interest_df = read_xlsx(paste0(Sys.getenv("USERPROFILE"), "\\OneDrive - Bank Of Israel\\Data", "\\BoI\\Credit\\mortgages_fixed_interest.xlsx"), col_names = c("date","fixed_mortgage_rate"), range = cell_limits(c(2, 1), c(NA, 2)), col_types = c("date","numeric")) %>% mutate(date = as.yearmon(date))%>% inner_join(read_xlsx(paste0(Sys.getenv("USERPROFILE"), "\\OneDrive - Bank Of Israel\\Data", "\\BoI\\Credit\\mortgage_interest.xlsx"), col_names = c("date","real_mortgage_rate"), range = cell_limits(c(2, 1), c(NA, 2)), col_types = c("date","numeric")) %>% mutate(date = as.yearmon(date)), by = "date")
mortgage_credit_df = mortgage_credit_df %>% pivot_longer(-date) %>% separate(name, into = c("linkage","rate_type"),sep = "_", fill = "right") %>% mutate(date_yearqtr = as.yearqtr(date)) %>% inner_join(select(gdp_df, c(date, gdp_trend)), by = c("date_yearqtr" = "date")) %>% mutate(value_norm = value / gdp_trend) %>% select(-c("date_yearqtr","gdp_trend"))
mortgage_credit_df %>% filter(linkage == "nominal") %>% filter(rate_type == "fixed") %>% select(date, starts_with("value")) %>% pivot_longer(-date, names_to = "category") %>% ggplot(aes(date, value, color = category)) + geom_line()
mortgage_credit_df %>% filter(linkage == "nominal") %>% filter(rate_type == "fixed") %>% select(date, credit = value_norm) %>% inner_join(select(mortgage_interest_df, c("date","fixed_mortgage_rate")), by = "date") %>% filter(date >= as.yearmon("Jan 2010")) %>% select(-date) %>% cor() %>% ggcorrplot(type = "upper",show.diag = FALSE, lab = TRUE)
mortgage_credit_df %>% filter(linkage == "nominal") %>% filter(rate_type == "fixed") %>% select(date, credit = value_norm) %>% inner_join(select(mortgage_interest_df, c("date","fixed_mortgage_rate")), by = "date") %>% filter(date >= as.yearmon("Jan 2010")) %>% pivot_longer(-date) %>% ggplot(aes(date, value, color = name)) + geom_line()
mortgage_credit_df %>% filter(linkage == "nominal") %>% filter(rate_type == "fixed") %>% select(date, credit = value_norm) %>% inner_join(select(mortgage_interest_df, c("date",rate = "fixed_mortgage_rate")), by = "date") %>% filter(year(date) > 2010) %>% mutate(rate = rate - lag(rate, 12)) %>% mutate(credit = lead(credit, 12) - credit) %>% filter(complete.cases(.)) %>% pivot_longer(-date) %>% ggplot(aes(date, value, color = name)) + geom_line()
mortgage_credit_df %>% filter(linkage == "nominal") %>% filter(rate_type == "fixed") %>% select(date, credit = value_norm) %>% inner_join(select(mortgage_interest_df, c("date",rate = "fixed_mortgage_rate")), by = "date") %>% filter(year(date) > 2010) %>% mutate(rate = rate - lag(rate, 12)) %>% mutate(credit = lead(credit, 12) - credit) %>% filter(complete.cases(.)) %>% ggplot(aes(credit,rate)) + geom_point()
mortgage_credit_df %>% filter(linkage == "nominal") %>% filter(rate_type == "fixed") %>% select(date, credit = value) %>% mutate(date_yearqtr = as.yearqtr(date)) %>% inner_join(select(gdp_df, c(date, gdp_trend)), by = c("date_yearqtr" = "date")) %>% mutate(credit_norm = credit / gdp_trend) %>% select(-c(date_yearqtr,gdp_trend)) %>% inner_join(select(mortgage_interest_df, c("date","fixed_mortgage_rate")), by = "date") %>% filter(fixed_mortgage_rate < quantile(fixed_mortgage_rate,0.99)) %>% ggplot(aes(fixed_mortgage_rate,credit_norm)) + geom_point() + geom_smooth()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.