본문 바로가기
퀀트 분석/퀀트 기초

[Python] FRED에서 API로 경제 데이터 불러오기

by 쿼카퀀트 2020. 7. 22.
728x90

FRED 소개

FRED는 실업률, 금리, PMI 같은 경제 데이터를 모아 볼 수 있는 사이트입니다. 링크

FRED 메인 페이지

위 FRED사이트에서 데이터를 엑셀파일로 다운받을 수도 있지만, 그때그때 데이터를 엑셀로 받아 코드에 연결하는 일은 매우 번거롭습니다.

따라서 이번 글에서는,

 

1. 어떻게 API에 연결하는가(코딩 전 준비단계)

2. 어떻게 데이터를 불러오는가(코딩 단계)

 

두 가지를 설명합니다.

 

일단 코드를 보고싶다면, 맨 아래에 전체 코드를 정리해 두었습니다. 급하신분은 맨 아래로..

 

어떻게 API에 연결하는가

1. API Key 요청: FRED API를 쓰기 위해선 API key가 있어야 하므로, FRED에서 API Key를 발급받습니다. 키를 발급받기 위해서 여기에 들어가 아래 스크린샷처럼 'Request or view your API keys'를 클릭하세요. 

 

회원가입을 하고 링크에서 시키는대로 진행하면 드디어 아래와 같이 API key를 발급받을 수 있습니다(아래 사진 굵은 빨간 선에 본인의 API key가 있습니다).

2. API 파이썬 패키지 설치: 이제 FRED API를 사용해봅시다. FRED에선 C++, R 등 다양한 언어를 지원하지만, 여기선 Python을 사용하는 방법을 설명합니다. FRED와 연결된 다양한 API가 존재하지만, 그 중 개인적으로 mortada/fredapi가 가장 사용하기 편했기 때문에 이를 소개하고자 합니다. (mortada/fredapi 바로가기 링크)

 

패키지를 설치해봅시다. 파이썬이 이미 깔려있다고 가정하고, 아래와 같이 pip install fredapi를 입력하면 되고, 구글 코랩의 경우 코드 창에 !pip install fredapi라고 입력하면 됩니다.

# 터미널/프롬프트의 경우
pip install fredapi

# 아나콘다 사용하는 경우
conda install fredapi

# colab의 경우
!pip install fredapi

 

 

아래와 같이 패키지 설치가 완료되었다고 뜨면, 패키지 설치는 끝입니다. 만약 아직 한번도 코랩을 써보지 않았다면, 이참에 한번 써보길! 가볍게 사용하기에 매우 편리합니다. 코랩 링크 

 

3. FRED 데이터 다운로드: 마지막으로 앞서 발급받은 API key로 파이썬과 FRED를 연동시켜봅시다. 코드는 아래와 같으며, 'insert api key here'에 발급받은 API key를 입력해주면 됩니다.

from fredapi import Fred
fred = Fred(api_key='insert api key here')
data = fred.get_series('SP500')

이제 위 코드에서 만든 data를 출력해보고, 최근 S&P500 데이터가 잘 다운로드 되었는지 확인해봅시다.

 

여기까지 문제없이 성공했다면 FRED와 파이썬 연결은 끝입니다! 간단하죠ㅎㅎ 글로 설명하려니 어려운데, 직접 해보면 금방 끝납니다.

 

다음으론 데이터를 어떻게 불러오는지에 대해 간단하게 훑어봅시다.

 

어떻게 데이터를 불러오는가

앞서 만든 fred 객체와 fred.get_series() 를 통해 데이터를 받아올 수 있습니다. 위 코드에선 'SP500'이란 이름을 통해 S&P500 데이터를 불러왔는데, 이 이름은 어떻게 찾을 수 있을까요?

 

간단합니다. FRED 홈페이지(링크)에서 내가 원하는 데이터를 검색한 후 데이터를 클릭하면, 예시로 아래 스크린샷처럼 데이터 이름(10-Year Treasury Constant Maturity Rate) 옆에 'DGS10' 이란 이름이 있습니다.

 

이처럼 홈페이지에서 본인이 원하는 데이터의 코드명을 찾아, 파이썬에서 해당 데이터를 다운로드할 수 있습니다.

 

이 이름이 해당 데이터의 코드명입니다.

데이터의 코드명을 찾았다면, API에서 데이터를 받아올 수 있습니다.

 

이제 'SP500'을 'DGS10'으로 바꾸면, 아주 간단하게 10년 만기 미국채 이자율 시계열 데이터를 다운받을 수 있습니다. 예를 들어, 아래 코드를 작성하면 DGS10을 받아 rate_10Y에 저장하는 코드가 됩니다.

rate_10Y = fred.get_series('DGS10')

 

이 외에도 DGS2, DGS3MO 등 코드명을 찾아 각각 2년만기, 3개월만기 이자율 시계열 데이터를 받아올 수 있으며, 앞서 받은 S&P500 지수 시계열 데이터와 함께 Plot하면 아래 그림과 같이 S&P500 지수 그래프(검은 선 - 오른쪽 Y축)와 10년, 2년, 3개월 만기 미국채 이자율 그래프(빨강, 초록, 파랑선 - 왼쪽 Y축)를 파이썬에서 그려볼 수 있습니다.

rate_10Y = fred.get_series('DGS10')
rate_2Y = fred.get_series('DGS2')
rate_3M = fred.get_series('DGS3MO')

 

물론 이렇게 여러 데이터를 플로팅하는건 FRED에서도 할 수 있는 기능입니다. 여기에 들어가면 아래 스크린샷처럼 위 파이썬 그래프처럼 생긴(살짝 달라보이지만 기분탓이다) 그래프를 얻을 수 있는데요,

 

어쨌든 분석을 위해선 그래프가 아닌 실제 데이터를 보는게 중요하기에, 다음에 이 데이터들을 파이썬에서 어떻게 활용할지는 따로 설명하도록 하겠습니다.

 

전체 코드

전체 코드는 아래와 같습니다.

from fredapi import Fred
from matplotlib.pyplot as plt

fred = Fred(api_key='insert api key here')

sp500 = fred.get_series('SP500')

rate_10Y = fred.get_series('DGS10')
rate_2Y = fred.get_series('DGS2')
rate_3M = fred.get_series('DGS3MO')

plt.plot(sp500)
plt.plot(rate_10Y)
plt.plot(rate_2Y)
plt.plot(rate_3M)

 

728x90

댓글