데이터 시각화

R을 이용한 한국은행 API로 미국과 한국 이자율 시각화

r-code-for-data-analysis 2023. 11. 11. 16:02

한국은행 사이트에서 api 를 이용하여 데이터 시각화를 해 보았다. 

 

여러 사이트들을 돌아다니며 R을 이용한 코드를 참고하려고 해도 마땅치 않았는데

R로 패키지를 만들어 놓으신 분이 있어 매우 편하게 할 수 있었다. (감사합니다. ^^)

 

https://github.com/seokhoonj/ecos

 

GitHub - seokhoonj/ecos: 한국은행 경제통계시스템 Economic Statistics System of Bank of Korea (Open API Service)

한국은행 경제통계시스템 Economic Statistics System of Bank of Korea (Open API Service) - GitHub - seokhoonj/ecos: 한국은행 경제통계시스템 Economic Statistics System of Bank of Korea (Open API Service)

github.com

 

우선 요즘 가장 핫한 정보인 한국과 미국의 이자율 데이터 시각화를 해 보았다. 

 

한국은행 api key 신청 부터 함

https://ecos.bok.or.kr/api/#/

 

한국은행 Open API 서비스

 

ecos.bok.or.kr

 

R 코드 작성

 

# 1. 패키지 설치 및 api key 입력

## 한국은행 R 패키지

# # install from CRAN
# install.packages("ecos")
# 
# # Alternatively
# devtools::install_github("seokhoonj/ecos")  
library(ecos)
api_key
# set your api key
ecos.setKey(api_key = "****************")

# or permanently
usethis::edit_r_environ() # add KOSIS_API_KEY="your_api_key" in .Renviron

 

# 2. 어떤 데이터를 볼 수 있는지 한번 훓어봄

 

 

# 3. 이자율 데이터 사용 (한국, 미국)

stat_code = "902Y006"

interest_rate_KR <- statSearch(stat_code = "902Y006", item_code1 = "KR", cycle = "M")
interest_rate_US <- statSearch(stat_code = "902Y006", item_code1 = "US", cycle = "M")

 

 

# 4. 시각화

bind_rows(interest_rate_KR %>% select(item_name1, time, data_value),
          interest_rate_US %>% select(item_name1, time, data_value)) %>% 
  mutate(date = as.Date(paste(substr(time, 1, 4), substr(time, 5, 6), "01", sep = "-")),
         data_value = as.numeric(data_value)) %>% 
  filter(date > "1999-12-31") %>% 
  ggplot(aes(x=date, y=data_value, col=item_name1))+geom_point()+geom_line()+
  labs(y="이자율 %", x= "연도", col='국가')+ 
  theme_minimal()

 

 

그럼 한국과 미국의 이자율 차이는 어떻게 될까?

한국의 이자율이 미국 보다 낮은 때는 경제 위기가 있었던 때가 아닐지...

앞으로 걱정된다. 

bind_rows(interest_rate_KR %>% select(item_name1, time, data_value),
          interest_rate_US %>% select(item_name1, time, data_value)) %>% 
  mutate(date = as.Date(paste(substr(time, 1, 4), substr(time, 5, 6), "01", sep = "-")),
         data_value = as.numeric(data_value)) %>% 
  filter(date > "1999-12-31") %>% 
  group_by(date) %>% summarise(item_name1, data_value, .groups = "drop")%>% 
  pivot_wider(names_from = item_name1, values_from = data_value) %>% 
  mutate(delta = 한국-미국) %>% 
  ggplot(aes(x=date, y=delta))+geom_point()+geom_line()+
  geom_hline(yintercept=0, linetype='dashed', color='red', size=1)+
  labs(y="한국-미국 이자율 차이 %", x= "연도")+ 
  theme_minimal()

728x90
반응형