library("tidyverse")
library("readr")
library("dplyr")
library("ggrepel")
#install.packages("tinytex")
#tinytex::install_tinytex()
library("tinytex")
#tinytex::tlmgr_install(c("collection-langjapanese", "ipaex", "zxjatype", "pxjahyper"))
library(knitr)

データの読み込み

"①"
## [1] "①"
df_GDP <- read.csv(here::here("data\\cleaned\\20250920_GDP_forecast.csv"))


df_office <- read.csv(here::here("data\\cleaned\\20250922_office_forecast.csv"))


"②"
## [1] "②"
df_actualGDP_jpn_tokyo <- read.csv(here::here("data\\cleaned\\20250925_actualGDP_jpn_tokyo.csv"))
#print(df_actualGDP_jpn_tokyo)

df_nominalGDP_jpn_tokyo <- read.csv(here::here("data\\cleaned\\20250925_nominalGDP_jpn_tokyo.csv"))
#print(df_nominalGDP_jpn_tokyo)


df_GDP_pop <- read.csv(here::here("data\\cleaned\\20250929_GDP_pop.csv"))
#print(df_GDP_pop)

データの加工

df_GDP <- df_GDP |>
  mutate(GDP = parse_number(as.character(GDP))) |>
  mutate(log_GDP = log(GDP), log_forecast = log(forecast), log_after_forecast = log(after_forecast)) |>
  mutate(growth_log_GDP = log_GDP - lag(log_GDP), growth_log_forecast = log_forecast -lag(log_forecast), growth_log_after_forecast = log_after_forecast - lag(log_after_forecast))


df_office <- df_office |>
  mutate(office = parse_number(as.character(office))) |>
  mutate(forecast = parse_number(as.character(forecast))) |>
  mutate(log_office = log(office), log_forecast = log(forecast), log_after_forecast = log(after_forecast))

df_actualGDP_jpn_tokyo <- df_actualGDP_jpn_tokyo |>
  mutate(jpn = parse_number(as.character(jpn))) |>
  mutate(tokyo = parse_number(as.character(tokyo))) |>
  mutate(tokyo = tokyo/1000) |>
  mutate(log_jpn = log(jpn), log_tokyo = log(tokyo)) |>
  mutate(growth_log_jpn = log_jpn - lag(log_jpn), growth_log_tokyo = log_tokyo -lag(log_tokyo)) |>
  group_by(period = if_else(year <= 1992, "1980-1992", "1993-2022"))


df_nominalGDP_jpn_tokyo <- df_nominalGDP_jpn_tokyo |>
  mutate(jpn = parse_number(as.character(jpn))) |>
  mutate(tokyo = parse_number(as.character(tokyo))) |>
  mutate(tokyo = tokyo/1000) |>
  mutate(log_jpn = log(jpn), log_tokyo = log(tokyo)) |>
  mutate(growth_log_jpn = log_jpn - lag(log_jpn), growth_log_tokyo = log_tokyo -lag(log_tokyo)) |>
  group_by(period = if_else(year <= 1992, "1980-1992", "1993-2022"))

df_GDP_pop <- df_GDP_pop|>
  mutate(log_tokyo_GDP_pop = log(tokyo_GDP_pop), log_jpn_GDP_pop = log(jpn_GDP_pop), log_tokyo_GDP_working_age_pop = log(tokyo_GDP_working_age_pop), log_jpn_GDP_working_age_pop = log(jpn_GDP_working_age_pop)) |>
  mutate(growth_log_tokyo_GDP_pop = log_tokyo_GDP_pop - lag(log_tokyo_GDP_pop), growth_log_jpn_GDP_pop = log_jpn_GDP_pop -lag(log_jpn_GDP_pop), growth_log_tokyo_GDP_working_age_pop = log_tokyo_GDP_working_age_pop -lag(log_tokyo_GDP_working_age_pop), growth_log_jpn_GDP_working_age_pop = log_jpn_GDP_working_age_pop -lag(log_jpn_GDP_working_age_pop)) |>
  group_by(period = if_else(year <= 1992, "1980-1992", "1993-2022"))

グラフ

df_GDP |>
  ggplot() +
  geom_line(aes(x = year, y = log_GDP, color = "GDP")) +
  geom_line(aes(x = year, y = log_forecast, color = "GDP forecast")) +
  geom_line(aes(x = year, y = log_after_forecast, color = "GDP forecast"), linetype = "dashed") +
  scale_x_continuous(breaks = seq(1980, 2023, 5)) +
  scale_y_continuous(breaks = seq(0, 15, 0.5)) +
  labs(x = "年", y = "実質GDP(対数化)", title = "GDPと予測") +
  scale_color_manual(values = c("black", "red")) +
  theme_classic() +
  theme(plot.title = element_text(hjust = 0.5), legend.title = element_blank())

df_office |>
  ggplot() +
  geom_line(aes(x = year, y = log_office, color = "office")) +
  geom_line(aes(x = year, y = log_forecast, color = "office forecast")) +
  geom_line(aes(x = year, y = log_after_forecast, color = "office forecast"), linetype = "dashed") +
  scale_x_continuous(breaks = seq(1980, 2023, 5)) +
  scale_y_continuous(breaks = seq(0, 15, 0.5)) +
  labs(x = "年", y = "office(対数化)", title = "オフィス床面積と予測") +
  scale_color_manual(values = c("black", "red")) +
  theme_classic() +
  theme(plot.title = element_text(hjust = 0.5), legend.title = element_blank())

日本と東京のGDP比較

df_actualGDP_jpn_tokyo |>
  ggplot() +
  geom_line(aes(x = year, y = jpn, color ="jpn")) +
  geom_line(aes(x = year, y = tokyo, color = "tokyo")) +
  scale_x_continuous(breaks = seq(1980, 2022, 5)) +
  scale_y_continuous(breaks = seq(0, 600000, 100000)) +
  labs(x = "年", y = "実質GDP(100万円)", title = "日本と東京都の実質GDP") +
  theme_minimal() +
  theme(legend.title = element_blank())

df_nominalGDP_jpn_tokyo |>
  ggplot() +
  geom_line(aes(x = year, y = jpn, color ="jpn")) +
  geom_line(aes(x = year, y = tokyo, color = "tokyo")) +
  scale_x_continuous(breaks = seq(1980, 2022, 5)) +
  scale_y_continuous(breaks = seq(0, 600000, 100000)) +
  labs(x = "年", y = "実質GDP(100万円)", title = "日本と東京都の名目GDP") +
  theme_minimal() +
  theme(legend.title = element_blank())

df_GDP_pop |>
  ggplot() +
  geom_line(aes(x = year, y = jpn_GDP_pop, color ="jpn_GDP_pop")) +
  geom_line(aes(x = year, y = tokyo_GDP_pop, color = "tokyo_GDP_pop")) +
  scale_x_continuous(breaks = seq(1982, 2020, 3)) +
  scale_y_continuous(breaks = seq(0, 10, 1)) +
  labs(x = "年", y = "実質GDP(10億円)", title = "実質GDP/人口") +
  theme_minimal() +
  theme(legend.title = element_blank())

df_GDP_pop |>
  ggplot() +
  geom_line(aes(x = year, y = jpn_GDP_working_age_pop, color ="jpn_GDP_working_age_pop")) +
  geom_line(aes(x = year, y = tokyo_GDP_working_age_pop, color = "tokyo_GDP_working_age_pop")) +
  scale_x_continuous(breaks = seq(1982, 2020, 3)) +
  scale_y_continuous(breaks = seq(0, 20, 1)) +
  labs(x = "年", y = "実質GDP(10億円)", title = "実質GDP/生産年齢人口") +
  theme_minimal() +
  theme(legend.title = element_blank())

成長率 散布図

df_nominalGDP_jpn_tokyo |>
  ggplot() +
  geom_point(aes(x = growth_log_jpn, y = growth_log_tokyo, color = period)) +
  geom_abline(intercept = 0, slope = 1) +
  scale_x_continuous(breaks = seq(-0.1, 0.1, 0.01)) +
  scale_y_continuous(breaks = seq(-0.1, 0.1, 0.01)) +
  labs(x = "日本の成長率", y = "東京の成長率", title = "日本と東京の名目GDP成長率", color = "色分け") +
  theme_bw()

df_actualGDP_jpn_tokyo |>
  ggplot() +
  geom_point(aes(x = growth_log_jpn, y = growth_log_tokyo, color = period)) +
  geom_abline(intercept = 0, slope = 1) +
  scale_x_continuous(breaks = seq(-0.1, 0.1, 0.01)) +
  scale_y_continuous(breaks = seq(-0.1, 0.1, 0.01)) +
  labs(x = "日本の成長率", y = "東京の成長率", title = "日本と東京の実質GDP成長率", color = "色分け") +
  theme_bw()

df_GDP_pop |>
  ggplot() +
  geom_point(aes(x = growth_log_jpn_GDP_pop, y = growth_log_tokyo_GDP_pop, color = period)) +
  geom_abline(intercept = 0, slope = 1) +
  geom_text(aes(x = growth_log_jpn_GDP_pop, y = growth_log_tokyo_GDP_pop, color = period, label = year), size = 3) +
  scale_x_continuous(breaks = seq(-0.1, 0.1, 0.01)) +
  scale_y_continuous(breaks = seq(-0.1, 0.1, 0.01)) +
  labs(x = "日本の成長率", y = "東京の成長率", title = "日本と東京の一人当たり実質GDP成長率", color = "色分け") +
  theme_bw()

df_GDP_pop |>
  ggplot() +
  geom_point(aes(x = growth_log_jpn_GDP_working_age_pop, y = growth_log_tokyo_GDP_working_age_pop, color = period)) +
  geom_text(aes(x = growth_log_jpn_GDP_working_age_pop, y = growth_log_tokyo_GDP_working_age_pop, label = year, color = period), size = 3) +
  geom_abline(intercept = 0, slope = 1) +
  scale_x_continuous(breaks = seq(-0.1, 0.1, 0.01)) +
  scale_y_continuous(breaks = seq(-0.1, 0.1, 0.01)) +
  labs(x = "日本の成長率", y = "東京の成長率", title = "日本と東京の生産年齢人口一人当たり実質GDP成長率", color = "色分け") +
  theme_bw()

相関係数

cor_table <- tibble(
  "データ" = c("名目GDP成長率", "実質GDP成長率", "一人当たり実質GDP成長率", "生産年齢人口一人当たり実質GDP成長率"),
  "相関係数" = c(cor(df_nominalGDP_jpn_tokyo$growth_log_jpn, df_nominalGDP_jpn_tokyo$growth_log_tokyo, use = "complete.obs"), cor(df_actualGDP_jpn_tokyo$growth_log_jpn, df_actualGDP_jpn_tokyo$growth_log_tokyo, use = "complete.obs"), cor(df_GDP_pop$growth_log_jpn_GDP_pop, df_GDP_pop$growth_log_tokyo_GDP_pop, use = "complete.obs"), cor(df_GDP_pop$growth_log_jpn_GDP_working_age_pop, df_GDP_pop$growth_log_tokyo_GDP_working_age_pop, use = "complete.obs"))
)
print(cor_table)
## # A tibble: 4 × 2
##   データ                              相関係数
##   <chr>                                  <dbl>
## 1 名目GDP成長率                          0.895
## 2 実質GDP成長率                          0.864
## 3 一人当たり実質GDP成長率                0.476
## 4 生産年齢人口一人当たり実質GDP成長率    0.394