【AIの活用】FRED APIを取得して、Pythonで米国経済指標データを取込む方法

もう日本には1989年当時の経済力はないので、不景気のトリガーを引くのは米国か中国になるのは間違いないです。そこで米国の経済指標は世界に向けて公表されており信憑性が高いので利用してみることにしました。

FRED API Keysの取得方法

FREDとはFederal Reserve Economic Dataの略でセントルイス連邦準備銀行の調査部門が管理するデータベースです。H.8レポートは正式には「Assets and Liabilities of Commercial Banks in the United States(米国の商業銀行の資産と負債)」といい、ここのデータは景気の行方を知るのに有益です。

参照
読み込み中...読み込み中...

FREDにアカウント登録

FREDにアクセスしたら下記の右端赤枠の部分を見つけてクリックしてください。

赤枠のCreate New Accountにカーソルを合わせ、googleのアカウントがあればgoogleでログインをクリックしてください。一番簡単で早く設定できます。

無事にログインできると下記のような画像が出てきます。赤枠をクリックします。これでアカウントが登録されました。

ここはAPI KEY取得の理由の欄で、アプリケーションまたはプログラムを記載しろと言っているのでPythonのコードを書きました。レ点を入れて赤枠Request API Keyをクリックします。

無事に取得できるとかなり長いKeyコードが表示されます。念のためonenoteに保存しておきました。

あと大切なのは、上記の青字Legal Noticesをクリックして日本語訳でもいいので一読をおススメします。私はその中で引用が必要となっていたので「出典:BLS via FRED」を必ず入れることにしました。

もちろんブログ等に記載することなく個人利用で終わるならば不要です。

万が一API Keysが忘れたら赤枠をクリックすると表示されます。次からが本番です。

Pythonを使ってデータ収集

今、日米ともに株価・地価ともに価格上昇が止まりません。いつかは急激な下落場面が来ます。山高ければ谷深しという相場の格言がある通りです。

株価と地価のバブルが崩壊するときは、必ず銀行の貸付残高も驚異的な数字に積みあがっています。近いところだと2008年のリーマンショックの状況も見ながら検証するのがいいでしょう。

anacondaのインストール

下記にアクセスしてインストールしてください。重いソフトですが使いやすいです。

関連記事
読み込み中...読み込み中...
データ収集要件
  1. 期間2005年1月から最新のデータまで(月別、billion)
  2. Loans and Leases in Bank Credit, All Commercial Banks
  3. Commercial and Industrial Loans, All Commercial Banks
  4. Real Estate Loans, All Commercial Banks
  5. Consumer Loans, All Commercial Banks
  6. Deposits, All Commercial Banks
  7. Borrowings, All Commercial Banks

CopilotにPythonコードを書いてもらう

pythonを使用してAssets and Liabilities of Commercial Banks in the United Statesから2005年1月から最新データまでの貸出残高総額とその内訳及び預金残高総額を取得する。エクセル形式で作成しパソコンのDドライブに保存するコードを作成してください。
また、”Borrowings_Total”: “H8B3094NCBAM”,を追加したが単位がmillionなので他のシリーズのbillionと違う。millionからbillionにする修正コードも書いてください。

下記のようにコードを書いてくれます。6回くらい修正した結果のみを表示しております。私はANACONDAをインストールし、Spyderにコードを入力して使用しております。

import pandas as pd
from fredapi import Fred
import os #

# FRED APIキーを設定(事前に取得して入力)
fred = Fred(api_key='API KEYの入力')

# H.8レポート関連のシリーズID
series_ids = {

"Loans and Leases": "LOANS",# 銀行貸出残高総額
"Loans_Commercial": "BUSLOANS",# 商業・産業向け貸出
"Loans_RealEstate": "REALLN", # 不動産貸出
"Loans_Consumer": "CONSUMER", # 消費者貸出
"Deposits_Total": "DPSACBM027NBOG", # 預金総額
"Borrowings_Total": "H8B3094NCBAM", # 銀行借入総額

}


# 2005年1月から最新までのデータ取得
start_date = '2005-01-01'
data_frames = []

for name, sid in series_ids.items():
series = fred.get_series(sid, observation_start=start_date)


# 単位変換:Borrowings_Totalのみ million → billion
if name == "Borrowings_Total":
series = series / 1000 # 1,000で割って十億ドルに変換


df_temp = pd.DataFrame(series)
df_temp.columns = [name]
data_frames.append(df_temp)


# 全データを結合
df_all = pd.concat(data_frames, axis=1)
df_all.index.name = 'Date'

# Excelファイルとして保存
excel_file = "US_Bank_Assets_Liabilities_2005_latest.xlsx"
df_all.to_excel(excel_file)

print(f"過去データを含むExcelファイル '{excel_file}' を作成しました。")


# 保存先フォルダ(Dドライブ)
save_folder = "D:/FRED_Data" # ← Dドライブに保存
os.makedirs(save_folder, exist_ok=True)

# Excelファイルとして保存
excel_file = os.path.join(save_folder, "US_Bank_Assets_Liabilities_2005_latest.xlsx")
df_all.to_excel(excel_file)

print

もしGoogle Colaboratoryを使用してPythonコードを入力するならば、次のコードを1行目から追加する必要があります。

# まず必要なライブラリをインストール
!pip install fredapi openpyxl

シリーズIDの見つけ方

データを利用するにあたってはFREDのシリーズIDを正確に入力する必要があります。しかもこのIDは頻繁に変更されるので注意が必要です。

Copilotで最初コード作成したときのエラーが、シリーズIDのデータが古かったことが原因でした。ここは自分で探して手入力しました。FREDのデータで取得したいデータをクリックするとタイトルの右端にあります。下記の画像では赤枠の部分になります。

実行データの確認

Spyderにコードを入力し実行をしました。下記のようにDドライブにフォルダが作成され、指定した名前でファイルもありました。

データ分析

各種データの時系列化とグラフ化でリーマンショックの時の状況を参考に検証します。

データの時系列化

下記のようにエクセルデータとして保存されております。

グラフ化

棒グラフは『Deposits, All Commercial Banks』と『Borrowings, All Commercial Banks』にしてあとは折れ線グラフにしました。

検証結果

Y軸の左目盛りは折れ線グラフに対応し、右目盛りは棒グラフに対応したグラフなのでおかしいのではないかと思う人がほとんどでしょう。同一目盛りでグラフを見れば、預金残高の方が貸付残高より大きいので安心だろうと考えることでしょう。

そんな見方をするとリーマンショック時も安泰だったという結果になります。

リーマンショック時は、貸付残高が預金残高をはるかに上回っているグラフであることが確認できます。現在はそれほど乖離していないため、すぐさまリーマンショックは起きないのではと考えてしまいます。

しかし、資金総量がリーマンショック時の2倍と拡大していることが警戒要素となります。中国の不景気に始まる信用収縮、戦争や軍拡による社会情勢不安がもたらす信用収縮によって逆流し始めると世界大不況となります。

今回のデータ収集において米国の寛大さには驚きました。厳しい国だと思いますが、人を引き付ける魅力ある国家であることは間違いないです。

TOP