【AI先生の投資教室】Pythonで始めるFREDデータ分析: 初心者向けガイド

【AI先生の投資教室】Pythonで始めるFREDデータ分析: 初心者向けガイド

経済データを活用したい方にとって、アメリカ連邦準備制度理事会(FRB)が提供する経済データリポジトリであるFRED(Federal Reserve Economic Data)は非常に便利なツールです。本記事では、Pythonを使ってFREDのデータを取得し、簡単なデータ分析を行う方法を初心者にも分かりやすく説明します。

1. 必要なライブラリをインストール

Python初心者の方でも簡単に準備できるように、ライブラリのインストール方法を詳細に説明します。

(1) Python環境の準備

Pythonがインストールされていない場合、以下の手順でインストールしてください。無料です。

  1. Python公式サイトにアクセスし、「Download」から最新バージョンをダウンロードします。
  2. インストーラーを実行し、「Add Python to PATH」にチェックを入れてインストールします。

(2) 必要なライブラリのインストール

Pythonがインストールできたら、ターミナル(またはコマンドプロンプト)を開き、以下のコマンドを実行してください。

pip install pandas matplotlib fredapi

これにより、以下のライブラリがインストールされます。

  • pandas: データフレームを操作するためのライブラリ
  • matplotlib: データの可視化を行うためのライブラリ
  • fredapi: FREDのデータを取得するためのライブラリ

2. FRED APIキーの取得

FREDのデータにアクセスするには、APIキーが必要です。以下の手順で取得します。

  1. FREDの公式サイトにアクセスし、無料のアカウントを作成します。
  2. ログイン後、右上の「My Account」から「API Keys」をクリックします。
  3. 「Request API Key」を選び、キーを生成します。
  4. 生成されたAPIキーをコピーしておきます。

3. PythonコードでFREDデータを取得

Python初心者の方でも簡単にコードを準備できるよう、ChatGPTを利用してコードを生成する方法を以下に示します。

ChatGPTに依頼するプロンプト例

以下のプロンプトをそのままChatGPTに入力すると、必要なコードを生成してくれます。

プロンプト例:

Pythonのプロンプトをつくってください。
FRED APIキーは'******'です。
1970年以降のCPI(前年同月比)と、FFrateの関係を示すグラフを作りたいです。
双方の縦軸は0~20%で揃えてください。
景気後退期をグレー塗りで追記してください。

このプロンプトを使用すれば、必要なコードを即座に生成できます。「FRED APIキーは’******’です」の******に、先ほど取得した「FRED APIキー」を入力してください。

サンプルコード

以下は、上記プロンプトで生成されるコード例です。このコードをコピペして、Pythonに入力して下さい。

import pandas as pd
import matplotlib.pyplot as plt
from fredapi import Fred

# APIキーを設定
API_KEY = '******'
fred = Fred(api_key=API_KEY)

# データを取得
cpi_data = fred.get_series('CPIAUCSL').pct_change(periods=12) * 100  # 消費者物価指数の前年同月比
ffr_data = fred.get_series('FEDFUNDS')  # 連邦基金金利

# データフレームに変換
cpi_df = pd.DataFrame(cpi_data, columns=['CPI YoY Change (%)'])
ffr_df = pd.DataFrame(ffr_data, columns=['FFR'])

# データを結合
cpi_df.index = pd.to_datetime(cpi_df.index)
ffr_df.index = pd.to_datetime(ffr_df.index)
data = pd.merge(cpi_df, ffr_df, left_index=True, right_index=True)
data = data['1970-01-01':]  # 1970年以降

# プロット
fig, ax1 = plt.subplots(figsize=(12, 6))

ax1.set_title('CPI YoY Change and Federal Funds Rate (1970-Present)', fontsize=16)
ax1.set_xlabel('Year', fontsize=12)
ax1.set_ylabel('Percent', fontsize=12)
ax1.set_ylim(0, 20)

ax1.plot(data.index, data['CPI YoY Change (%)'], label='CPI YoY Change (%)', color='blue')
ax1.plot(data.index, data['FFR'], label='Federal Funds Rate', color='red')
ax1.legend(loc='upper left')

# 景気後退期のグレー塗り(例: 公式データをFREDから取得して使用可能)
recession_periods = [
    ('1973-11-01', '1975-03-01'),
    ('1980-01-01', '1980-07-01'),
    ('1981-07-01', '1982-11-01'),
    ('1990-07-01', '1991-03-01'),
    ('2001-03-01', '2001-11-01'),
    ('2007-12-01', '2009-06-01'),
    ('2020-02-01', '2020-04-01')
]

for start, end in recession_periods:
    plt.axvspan(pd.to_datetime(start), pd.to_datetime(end), color='gray', alpha=0.3)

plt.grid()
plt.show()

4. 分析の応用例

(1) 年率変化率の計算

消費者物価指数の年率変化率(インフレ率)は、上記コードで自動的に計算されています。必要に応じてデータを保存し、さらに詳細な分析を行うこともできます。

(2) データの保存

取得したデータをCSVファイルに保存することも可能です。

# CSVファイルに保存
data.to_csv('cpi_ffr_data.csv')

5. 作成したグラフの解説

上記のコードを実行すると、1970年以降の消費者物価指数(前年同月比)と連邦基金金利の関係を示すグラフが作成されます。エクセルでグラフを作るより早くて楽です。

このグラフには以下の特徴があります。

  • 青い線は消費者物価指数(CPI)の前年同月比、すなわちインフレ率を示しています。
  • 赤い線は連邦基金金利(FFR)を示しており、金利政策の動向を視覚化しています。
  • グレーで塗られた部分は景気後退期を表しており、経済の動向を把握する助けとなります。
  • 両軸は0%から20%に統一されており、インフレ率と金利の関係性を比較しやすくなっています。

このグラフを活用することで、金利政策がインフレにどのように影響を与えてきたかを視覚的に理解することができます。

6. よくあるエラーとその対処法

  • APIキーのエラー: APIキーが間違っているとデータを取得できません。正しいキーを設定してください。
  • シリーズIDの間違い: 存在しないシリーズIDを指定するとエラーが発生します。FREDのサイトで正しいIDを確認してください。
  • ネットワークエラー: インターネット接続が必要です。ネットワーク状況を確認してください。

7. 次のステップ

FREDには数多くの経済データが用意されています。以下のようなデータを取得し、さらに高度な分析を試してみてください。

  • GDP: シリーズIDはGDPC1
  • 失業率: シリーズIDはUNRATE
  • 連邦基金金利: シリーズIDはFEDFUNDS

例えば、GDPと失業率の関係をプロットしてみるなど、独自の経済分析を行うことができます。


これで、Pythonを使ったFREDデータ分析の基本が分かりました。初心者の方でも、上記の手順を参考にすることで簡単にデータ取得と分析が行えるはずです。