2025.04.07

ChatGPTで代替経済指標の分析をしてみた

はじめに

グループ研究開発本部・AI研究開発室のS.Sです。
これまでChatGPTに金融データ分析を行わせる記事を書いてきているので、今回も代替経済指標の分析を行わせるというテーマで記事を書いてみます。
直近では関税政策の影響で市場センチメントが悪化し、株式指数が調整局面入りしたことも記憶に新しいので、各種代替指標の分析を通して事前にそのような兆候をつかめるかどうかという観点で少し分析をしてみたいと思います。

指標の選定

株式・為替などの先行指標となりそうな代替指標をChatGPTにピックアップしてもらうと以下のようになりました。
衛星画像など興味深いデータもありますが、直近の動きを捉えられそうな表形式データに絞ってみると、EPUあたりがやはりお手軽そうです。

データ名称 入手方法・URL 更新頻度 データ形式 分析用途の例
Google トレンド検索量データ
Google検索キーワードの人気度指数。特定企業名や金融関連ワードの検索ボリューム推移がわかる。一般投資家や消費者の関心動向を示す指標として活用
入手: Google トレンド公式サイト(無料)で検索語ごとに指数を取得可能(Google Trends)。
API: 公開APIは無いが、非公式にPythonライブラリ(Pytrends等)で自動取得可能。
週次が中心(週単位の相対指数)。※直近は日次データも提供 CSV(ウェブ画面からエクスポート)、JSON(非公式API利用時) : 企業名の検索量急増はその企業への注目度上昇を示し、株価上昇の先行シグナルとなり得る​

。為替では経済不安関連ワードの検索増加がリスク回避の兆候となる可能性がある。

Reddit (WallStreetBets) 銘柄言及数
SNS上の個人投資家動向データ。Reddit掲示板「r/WallStreetBets」で各銘柄が言及された回数を集計。ミーム株など個人投資家間で話題の銘柄を把握
入手: 無料のReddit APIを用いてスレッドやコメントを収集・解析可能。プログラミング不要な代替としてQuiverQuantなどが過去データを公開(例: QuiverQuant WSBページ)。 日次(掲示板の投稿を毎日クロールして集計)​ JSON(API経由で取得)、CSV(集計データをダウンロード) : SNS上で言及が急増した銘柄は短期的な急騰・急落が起こりやすく、言及数のトレンドは株価変動の先行指標になり得る。特にWallStreetBetsで話題化した銘柄は出来高急増や価格変動につながるケースがある。
ウィキペディア閲覧数データ
Wikipedia上の特定企業ページなどの閲覧回数。投資家や一般人がその企業について調べている度合いを示す。閲覧数激増は何らかのニュースや異変を反映
入手: ウィキメディア財団の提供する公式APIから無料取得可能。ページ名と期間を指定して日ごとの閲覧数を取得(例: Wikimedia REST APIのPageviewsエンドポイント) 日次(各ページの毎日の閲覧数データ) JSON(API応答)、CSV(API結果をエクスポート) : 企業XのWikipediaページ閲覧数が平常時の数倍に跳ね上がった場合、その企業に関する報道やイベントへの関心急増を示すため、近い将来の株価変動(急騰・急落)の前兆となる可能性​

。為替では経済危機関連ページの閲覧増加が市場の不安心理を示唆することがある。

衛星夜間光データ
人工衛星で観測した夜間の地上の光量(Nighttime Lights)。都市の灯りの強さから経済活動レベルを推計するオルタナティブ指標。GDP成長や消費動向と相関
入手: NOAA/NASAが衛星夜間光データを無料公開(例: NOAA Earth Observation GroupのVIIRS Nighttime Lights)。Google Earth Engineでもデータセット(VIIRS夜間光の月次コンポジットなど)にアクセス可能。
NOAA EOG 夜間光データ参照
月次(雲の影響を除去し月平均光量を算出)。※日次の速報値も一部提供あり GeoTIFF画像(衛星画像データ)、CSV等(地域別集計結果) : 米国全体や特定地域の夜間光強度が継続的に増加していれば、生産活動や消費が活発化している可能性が高い。公式GDPや小売売上高に先行して景気拡大を示唆し、株式市場の強気材料と判断できる。​
バルチック海運指数 (BDI)
乾貨物の国際海上輸送コスト指数。鉄鉱石や石炭など 原材料の海上輸送費 を示す指数で、世界的な原料需要や貿易動向の先行指標
入手: Baltic Exchangeが算出。公式データは有料だが、TradingEconomicsやInvesting.comで最新値や過去値を無料閲覧可能。Nasdaq Data Link(旧Quandl)の一部無料データセットから取得できる場合もあり。
Investing.com BDI参照
日次(営業日ごとに指数更新) CSV(サイト上からダウンロード/API提供時)、JSON(APIがある場合) : BDIの上昇基調は世界的な貨物需要増を意味し、海運株や資源国通貨(豪ドルなど)の上昇に先行するシグナルと考えられる​
経済政策不確実性指数 (EPU)
Economic Policy Uncertainty Index。新聞記事中の「経済」「政策」「不確実」といったキーワード頻度に基づき政策不透明感を指数化したデータ。政策リスクの高まりを示す

入手: 指数開発者(Bakerら)の公式サイトから国別・米国の指数データを無料提供(PolicyUncertainty.comにCSVあり)。米国版はFRED(St. Louis Fed)のデータベースにも収録(シリーズID: USEPUINDXM/USEPUINDXD)。
policyuncertainty.com参照
月次(米国は月次指数、一部カテゴリ指数は日次集計もあり)​ CSV / XLS(公式サイト提供)、JSON(FRED API経由) : 政策不確実性指数が急騰している局面では、政府・金融政策への不透明感から市場心理が悪化している可能性が高い。これは将来の株価下落やリスクオフによるドル高・新興国通貨安など為替変動の前触れとなり得る。
AAII個人投資家センチメント調査
米国個人投資家協会(AAII)が実施する個人投資家の強気/弱気マインド調査。今後6ヶ月の株式見通しが「強気」「中立」「弱気」の割合で毎週集計される
入手: AAII公式サイトで最新結果と過去の集計を無料公開(※詳細データのダウンロードは会員向けだが、非会員でも直近結果の閲覧可)。またMacroMicroやYCharts等のサイトで歴史データをグラフ表示・CSV取得可能。
AAII Sentiment Survey参照
週次(毎週木曜に更新) HTML(サイト上で結果公表)、CSV/XLS(会員向け配布資料やサードパーティ経由) : 個人投資家の強気割合が極端に高い場合は市場過熱のシグナル、弱気が極端に高い場合は悲観の行き過ぎ(底打ち)シグナルとして逆張り指標に利用されることが多い。
インサイダー取引情報 (Form 4)
上場企業の役員・大株主による自社株売買データ。米SECに提出されるForm 4から取得。内部者(インサイダー)の売買動向は企業業績への自信度合いを示すとされる
入手: 米国SECのEDGARデータベースから無料取得可能。EDGARのAPIやRSSフィードで公開直後のForm 4を取得でき、形式はXML/JSON。あるいはOpenInsider等のサイトで銘柄ごとに過去のインサイダー取引を検索・CSVダウンロード可能。
SEC EDGAR Filings参照
随時更新(日々複数のForm 4提出があり即時公開。集計用途には日次・週次でまとめて分析) XML / JSON(EDGAR提供)、CSV(スクレイピングや加工で生成) : ある企業で経営陣による**まとまった自社株買い(クラスター買い)**が報告された場合、市場ではポジティブなシグナルと捉えられる​

。インサイダーの大量買いは将来の株価上昇を先読みする材料となり得る。一方、経営陣の売却が相次ぐ場合はネガティブ情報の先取りと見做され、株価下落の予兆と判断できる。

Indeed求人件数指数
オンライン求人サイトIndeedに掲載された求人件数の推移データ。求人広告の増減から労働市場の動向を把握する。民間ベースの雇用先行指標
入手: Indeed社の経済研究所(Hiring Lab)がGitHub上で国別・業種別の求人指数データを公開しており無料ダウンロード可​

。また米国の総合指数はセントルイス連銀のFREDにも「Job Postings on Indeed」として収録。
Indeed Hiring Lab Data (GitHub)(データリポジトリ)参照

日次(インデックスは基本日次更新。分析時は週次平均などに集計可能)​ CSV(GitHub上で提供)、JSON(FRED API経由) : 求人件数の増減は景気や雇用の先行指標となる。例えばIndeed求人指数が継続的に上昇していれば、公式統計の雇用者数増加に先行して労働需給の逼迫を示し、景気拡大による株価上昇や利上げ観測による通貨高(ドル高)につながる可能性がある。
CFTC建玉明細 (Commitment of Traders)
米CFTC(商品先物取引委員会)が毎週公開する先物ポジション報告書。主要先物市場における投機筋・商業筋などカテゴリー別の建玉(買い・売り持ち高)動向
入手: CFTC公式サイトで各週のCOTレポートを閲覧・ダウンロード可能。最新週はHTML/PDFで公表され、過去分は年次ごとにまとめたCSV(ZIP)を提供​

。またNasdaq Data Link経由で自動取得することも可能。
CFTC COT Reports(公式ページ)参照

週次(毎週金曜日に更新。火曜日時点のポジションを集計)​ CSV / XLS(公式サイト配布データ)、HTML/PDF(レポート形式) : 先物市場における投機筋ポジションは相場のセンチメントを示すため、極端な買い越し・売り越しは反転の兆候となり得る。例えばIMM通貨先物でドル買い持ちが過去最高水準に達していれば、その先のドル高一服や反落を予測する材料となる。株価指数先物でも機関投資家のポジション偏りは株式市場の過熱感・悲観度合いを測る指標として活用される

経済政策不確実性指数 (EPU)の分析

EPUとは以下のような特徴を持った指標です。

  • 政策不透明感の測定: 政府の政策発表や議論に伴う不確実性を定量的に示します。

  • メディア分析に基づく: 新聞記事などの報道中のキーワード頻度を解析して算出され、経済環境の不透明さを反映します。

  • 先行指標として活用: 経済成長や市場変動の先行シグナルとして、投資家や政策立案者に注目されています。

実装

それではEPUの増減を大きく3つ(上位・中間・下位)に分けて影響を見積もってみたいと思います。
指標が変化した日から前後30日間で株式・ドル・原油の価格がどう変化したかを可視化してみます。
以下のようなプロンプトでコードを書いてもらいます。

添付ファイルはEconomic Policy Uncertainty Index for United Statesの週次データです。 このデータを入力ファイルとして受け取り、政策の不確実性の株価・ドルインデックス・原油価格への影響を評価するpythonコードを書いてください。 具体的にはEPUの変化率を分位数で3分割して、変化が生じた時から前後30日間の平均リターンを上記の各資産ごとに算出してください。 データはyahoo financeから取得すること。

プロンプトにはEPUの系列データを添付しており、プロットしてみると以下のようになります。
関税のヘッドラインが増えた2024/11の大統領選以降は指数が増加傾向にあることがわかります。

最初に出てきた分析コードは以下のようになります。
何点か気になるポイントがあります。

  • 前後30日間の平均リターンはよくあるイベント影響の分析のように1日刻みで累積リターンを出してほしい
  • yahoo financeからだと一部取得がうまくできないTickerが指定されている
import pandas as pd
import numpy as np
import yfinance as yf
from datetime import timedelta

# --- 1. EPUデータの読み込みと前処理 ---
# CSVファイル(例: "USEPUINDXD.csv")には少なくとも日付("Date")とEPU水準("EPU")の列がある前提です。
epu_df = pd.read_csv("/mnt/data/USEPUINDXD.csv", parse_dates=['Date'])
epu_df.sort_values('Date', inplace=True)
epu_df.reset_index(drop=True, inplace=True)

# EPUの変化率(パーセント変化)を計算
epu_df['EPU_change'] = epu_df['EPU'].pct_change()
# 初回はNaNとなるため削除
epu_df = epu_df.dropna(subset=['EPU_change']).reset_index(drop=True)

# EPU変化率を3分位(Low, Medium, High)に分割
epu_df['Quantile'] = pd.qcut(epu_df['EPU_change'], 3, labels=['Low', 'Medium', 'High'])

# --- 2. 資産データ取得のための期間設定 ---
# イベント(EPUデータ)の最小・最大日付に対して、前後30日分の期間を設定
start_date = (epu_df['Date'].min() - pd.Timedelta(days=30)).strftime('%Y-%m-%d')
end_date = (epu_df['Date'].max() + pd.Timedelta(days=30)).strftime('%Y-%m-%d')

# --- 3. Yahoo Financeから各資産のデータ取得 ---
# ここでは例として以下のティッカーを使用しています:
# ・株価:S&P500(^GSPC)
# ・ドルインデックス:米ドルインデックス(^DXY)
# ・原油価格:WTI原油先物(CL=F)
tickers = {
    'Stock': '^GSPC',
    'Dollar': '^DXY',
    'Oil': 'CL=F'
}

# 各資産の日次終値データとリターン計算
asset_returns = {}
for asset, ticker in tickers.items():
    data = yf.download(ticker, start=start_date, end=end_date)
    # 調整後終値を利用
    data = data[['Adj Close']].rename(columns={'Adj Close': asset})
    # 日次リターン(パーセント変化)を計算
    data[asset + '_ret'] = data[asset].pct_change()
    asset_returns[asset] = data[[asset + '_ret']]

# 各資産のリターンを日付で結合
returns_df = pd.concat([asset_returns[asset] for asset in tickers.keys()], axis=1)
returns_df.index = pd.to_datetime(returns_df.index)

# --- 4. イベントスタディ:各EPUイベント日について前後30日間の平均リターン計算 ---
window = 30  # 前後30日間
results = []

# 各イベント(EPUデータの各行)に対して処理
for _, row in epu_df.iterrows():
    event_date = row['Date']
    quantile = row['Quantile']
    
    # イベントウィンドウの開始日・終了日(30日前~30日後)
    window_start = event_date - pd.Timedelta(days=window)
    window_end = event_date + pd.Timedelta(days=window)
    
    # 該当期間のリターンデータ(市場が休場の場合はデータが存在しない日もあります)
    window_data = returns_df.loc[window_start:window_end]
    
    avg_stock = window_data['Stock_ret'].mean()
    avg_dollar = window_data['Dollar_ret'].mean()
    avg_oil = window_data['Oil_ret'].mean()
    
    results.append({
        'Event_Date': event_date,
        'Quantile': quantile,
        'Avg_Stock_Return': avg_stock,
        'Avg_Dollar_Return': avg_dollar,
        'Avg_Oil_Return': avg_oil
    })

results_df = pd.DataFrame(results)

# --- 5. 各分位群ごとの平均リターンを集計 ---
summary = results_df.groupby('Quantile').agg({
    'Avg_Stock_Return': 'mean',
    'Avg_Dollar_Return': 'mean',
    'Avg_Oil_Return': 'mean'
}).reset_index()

print("【イベントスタディ結果】")
print("各EPU変化率分位群における、イベント日(前後30日)の平均リターン")
print(summary)

そこで以下のように修正の指示を出してみます。

0日から見て、-30日から0日, 0日から30日でそれぞれの累積リターンを1日刻みで出すように上記のコードを修正してください。このような累積リターンはイベント分析でよく利用されるものです。

するとほぼ想像通りの可視化コードを回答してくれました。

import pandas as pd
import numpy as np
import yfinance as yf
from datetime import timedelta

# --- 1. EPUデータの読み込みと前処理 ---
# CSVファイル("USEPUINDXD.csv")には少なくとも"Date"(日付)と"EPU"(EPU水準)の列がある前提です。
epu_df = pd.read_csv("/mnt/data/USEPUINDXD.csv", parse_dates=['Date'])
epu_df.sort_values('Date', inplace=True)
epu_df.reset_index(drop=True, inplace=True)

# EPUの変化率(%変化)を計算
epu_df['EPU_change'] = epu_df['EPU'].pct_change()
epu_df = epu_df.dropna(subset=['EPU_change']).reset_index(drop=True)

# 変化率を3分位に分割(Low, Medium, High)
epu_df['Quantile'] = pd.qcut(epu_df['EPU_change'], 3, labels=['Low', 'Medium', 'High'])

# --- 2. Yahoo Financeから資産データ(調整後終値)を取得 ---
# イベント(EPUデータ)の最小・最大日付に対し、前後30日分の期間を設定
start_date = (epu_df['Date'].min() - pd.Timedelta(days=30)).strftime('%Y-%m-%d')
end_date = (epu_df['Date'].max() + pd.Timedelta(days=30)).strftime('%Y-%m-%d')

# 使用する資産のティッカー(例)
# ・株価指数:S&P500 (^GSPC)
# ・ドルインデックス:^DXY
# ・原油価格:WTI原油先物 (CL=F)
tickers = {
    'Stock': '^GSPC',
    'Dollar': '^DXY',
    'Oil': 'CL=F'
}

# 各資産の調整後終値データをダウンロードし、辞書に保存
prices_dict = {}
for asset, ticker in tickers.items():
    data = yf.download(ticker, start=start_date, end=end_date)
    # 調整後終値のみ抽出し、列名を資産名に変更
    prices_dict[asset] = data[['Adj Close']].rename(columns={'Adj Close': asset})

# 複数資産の価格データを日付インデックスで統合
prices_df = pd.concat(prices_dict.values(), axis=1)
prices_df.index = pd.to_datetime(prices_df.index)

# --- 3. 各イベントごとに、イベント日を0日として前後30日間の累積リターンを計算 ---
# 累積リターンは、各イベント日の調整後終値を基準(=1)として、
# 各日の価格比 (price / price_at_event) から (基準比-1) を算出することで求めます。

event_results = []  # 各イベントのウィンドウごとの累積リターンを格納するリスト

for _, row in epu_df.iterrows():
    event_date = row['Date']
    quantile = row['Quantile']
    
    # イベントウィンドウ:イベント日を0日、前後30日間
    window_start = event_date - pd.Timedelta(days=30)
    window_end = event_date + pd.Timedelta(days=30)
    # カレンダー日付の連続した日付を生成(1日刻み)
    date_range = pd.date_range(start=window_start, end=window_end, freq='D')
    
    # prices_dfからウィンドウ内のデータを抽出し、カレンダー日付に合わせる(欠損日は直前の値で補完)
    window_prices = prices_df.reindex(date_range).ffill()
    # 相対日(リラティブデー)の計算:イベント日との差(日数)
    window_prices['rel_day'] = (window_prices.index - event_date).days
    
    # イベント日の価格(基準となる値)を取得
    try:
        event_price = window_prices.loc[event_date, list(tickers.keys())]
    except KeyError:
        # イベント日が取引日でない場合は、最も近い取引日の価格を利用
        event_price = window_prices.iloc[window_prices.index.get_loc(event_date, method='nearest')][list(tickers.keys())]
    
    # 各資産について、累積リターン = (価格 / イベント日の価格) - 1 を計算
    for asset in tickers.keys():
        window_prices[asset + '_cum_return'] = window_prices[asset] / event_price[asset] - 1
    
    # 必要な列のみ抽出し、イベント日・分位群情報を追加
    event_window = window_prices[['rel_day'] + [asset + '_cum_return' for asset in tickers.keys()]].copy()
    event_window['Event_Date'] = event_date
    event_window['Quantile'] = quantile
    event_results.append(event_window)

# 全イベントの結果を1つのDataFrameに統合
all_events_df = pd.concat(event_results, ignore_index=True)

# --- 4. 分位群・相対日ごとの平均累積リターンを算出 ---
summary = all_events_df.groupby(['Quantile', 'rel_day']).agg({
    'Stock_cum_return': 'mean',
    'Dollar_cum_return': 'mean',
    'Oil_cum_return': 'mean'
}).reset_index()

# 結果の表示
print("【イベント分析結果】")
print("各EPU変化率分位群ごと、相対日(-30日~+30日)における平均累積リターン")
print(summary)じ

実際に動かしてみて軽く手直ししたコードは以下のようになります。
必要だったのは小さな修正のみでほぼ元のコードのまま動かすことができました。

import pandas as pd
import numpy as np
import yfinance as yf
from datetime import timedelta

# --- 1. EPUデータの読み込みと前処理 ---
# CSVファイル("USEPUINDXD.csv")には少なくとも"Date"(日付)と"EPU"(EPU水準)の列がある前提です。
epu_df = pd.read_csv("./USEPUINDXD.csv", parse_dates=['observation_date'])
epu_df = epu_df.rename(columns={"observation_date": "Date", "USEPUINDXD": "EPU"})
epu_df.sort_values('Date', inplace=True)
epu_df.reset_index(drop=True, inplace=True)

# EPUの変化率(%変化)を計算
epu_df['EPU_change'] = epu_df['EPU'].pct_change()
epu_df = epu_df.dropna(subset=['EPU_change']).reset_index(drop=True)

# 変化率を3分位に分割(Low, Medium, High)
epu_df['Quantile'] = pd.qcut(epu_df['EPU_change'], 3, labels=['Low', 'Medium', 'High'])

# --- 2. Yahoo Financeから資産データ(調整後終値)を取得 ---
# イベント(EPUデータ)の最小・最大日付に対し、前後30日分の期間を設定
start_date = "2020-01-01"
end_date = "2025-04-01"

# 使用する資産のティッカー(例)
# ・株価指数:S&P500 (^GSPC)
# ・ドルインデックス:^DXY
# ・原油価格:WTI原油先物 (CL=F)
tickers = {
    'Stock': '^GSPC',
    'Dollar': 'DX-Y.NYB',
    'Oil': 'CL=F'
}

# 各資産の調整後終値データをダウンロードし、辞書に保存
prices_dict = {}
for asset, ticker in tickers.items():
    data = yf.download(ticker, start=start_date, end=end_date)
    data = data.xs(data.columns.levels[1][0], axis=1, level=1)
    # 調整後終値のみ抽出し、列名を資産名に変更
    prices_dict[asset] = data[['Close']].rename(columns={'Close': asset})

# 複数資産の価格データを日付インデックスで統合
prices_df = pd.concat(prices_dict.values(), axis=1)
prices_df.index = pd.to_datetime(prices_df.index)

# --- 3. 各イベントごとに、イベント日を0日として前後30日間の累積リターンを計算 ---
# 累積リターンは、各イベント日の調整後終値を基準(=1)として、
# 各日の価格比 (price / price_at_event) から (基準比-1) を算出することで求めます。

event_results = []  # 各イベントのウィンドウごとの累積リターンを格納するリスト

for _, row in epu_df.loc[lambda x: x["Date"].between(start_date, end_date)].iterrows():
    event_date = row['Date']
    quantile = row['Quantile']

    # イベントウィンドウ:イベント日を0日、前後30日間
    window_start = event_date - pd.Timedelta(days=30)
    window_end = event_date + pd.Timedelta(days=30)
    # カレンダー日付の連続した日付を生成(1日刻み)
    date_range = pd.date_range(start=window_start, end=window_end, freq='D')

    # prices_dfからウィンドウ内のデータを抽出し、カレンダー日付に合わせる(欠損日は直前の値で補完)
    window_prices = prices_df.reindex(date_range).ffill()
    # 相対日(リラティブデー)の計算:イベント日との差(日数)
    window_prices['rel_day'] = (window_prices.index - event_date).days

    # イベント日の価格(基準となる値)を取得
    try:
        event_price = window_prices.loc[event_date, list(tickers.keys())]
    except KeyError:
        # イベント日が取引日でない場合は、最も近い取引日の価格を利用
        event_price = window_prices.asof(event_date)[list(tickers.keys())]

    # 各資産について、累積リターン = (価格 / イベント日の価格) - 1 を計算
    for asset in tickers.keys():
        window_prices[asset + '_cum_return'] = window_prices[asset] / event_price[asset] - 1

    # 必要な列のみ抽出し、イベント日・分位群情報を追加
    event_window = window_prices[['rel_day'] + [asset + '_cum_return' for asset in tickers.keys()]].copy()
    event_window['Event_Date'] = event_date
    event_window['Quantile'] = quantile
    event_results.append(event_window)

# 全イベントの結果を1つのDataFrameに統合
all_events_df = pd.concat(event_results, ignore_index=True)

# --- 4. 分位群・相対日ごとの平均累積リターンを算出 ---
summary = all_events_df.groupby(['Quantile', 'rel_day']).agg({
    'Stock_cum_return': 'mean',
    'Dollar_cum_return': 'mean',
    'Oil_cum_return': 'mean'
}).reset_index()

# 結果の表示
print("【イベント分析結果】")
print("各EPU変化率分位群ごと、相対日(-30日~+30日)における平均累積リターン")
print(summary)

結果

分析期間を2020/01~現在までに絞り込み、上記のコードをもとにしたアウトプットを可視化すると以下のようになります。
株式では政策の不確実性が高くなると、30日後までのリターンが平均的なケースより低くなる傾向がみて取れます。

原油の場合も同様です。
将来の政策などにより景気が減速する可能性が出てくると、パフォーマンスも低下する傾向にあります。

ドルの場合は反対に安全資産として買われる傾向があることから、むしろ不確実性が高まるとパフォーマンスがよくなっています。

まとめ

GPTによる分析でEPUのような代替指標がさまざまな資産に関わるリスクの先行指標として利用できそうなことがわかりました。
この手のよくある分析も手動で毎回分析コードを書くとデータの取得や各種集計など煩わしいですが、ざっくりとした可視化であればGPTにおまかせしてもある程度のところまではやってくれるようです。

最後に

グループ研究開発本部 AI研究開発室では、データサイエンティスト/機械学習エンジニアを募集しています。ビッグデータの解析業務などAI研究開発室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ 募集職種一覧 からご応募をお願いします。皆さんのご応募をお待ちしています。

  • Twitter
  • Facebook
  • はてなブックマークに追加

グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。

 
  • AI研究開発室
  • 大阪研究開発グループ

関連記事