技術資料

金融変数と実体経済変数の因果探索と数法則発見法による波及経路のモデル化と可視化

目次 

目的 

VAR-LiNGAMによる時系列を考慮した因果探索を行い,時系列を考慮した3D因果グラフの作成,また数法則発見法を用いた経済変数のモデル化を行うことで,経済変数間の影響を直感的に理解できるようなシステムの実装を目指す.

使うモジュールのインストール 

使用するモジュール 

モジュールversion用途
pandasデータ収集やデータフレームへの格納などに用いる
LiNGAMVAR-LiNGAMによる分析に用いる
seleniumデータの収集,スクレイピングに用いる
pandas-market-calendars土日祝日を知ることができる.データの時間足調整に用いる
flaskシステムの実装に用いる
json3Dグラフの作成,ページ遷移先にデータを与えるのに用いる
pyvis3Dグラフの作成
webdriver_managerスクレイピングに用いる

モジュールのインストールはコマンドプロンプトでpip install モジュール名

バージョンまで指定する場合はコマンドプロンプトでpip install モジュール名==指定するバージョン でインストールする

データ収集と前処理 

スクレイピングによるデータ収集 

スクレイピングを用いてデータを収集する. スクレイピングには「selenium」を用いる. seleniumのバージョンについては上で示した通りである. seleniumではクリックなどのユーザーアクションを模倣することで深いところにあるデータも収集することができる. スクレイピングをする部分のコードはこれ↓

#ref(): File not found: "scraping.py" at page "蒲田さん卒論"

スクレイピング流れ.PNG.jpg

今回は日本銀行時系列統計データ検索サイトを例に説明する. 日本銀行時系列統計データ検索サイトではクリックアクションを繰り返すことで金利や物価指数など金融時系列データをcsvファイル形式で取得することができる.

ダウンロードしたデータはcsv形式でダウンロードされる.

そのため,ダウンロードされたcsvファイルを一つのフォルダにまとめて保存しする必要がある.

また,ダウンロードした時点のファイル名もダウンロードされた時間,回数によって勝手に決められてしまうものもあるため,ファイル名を変更する必要がある.

そのためにまず,ファイルのダウンロード先を指定する必要がある

dldir_path = Path('保存先のフォルダのパス')
dldir_path.mkdir(exist_ok=True)
download_dir = str(dldir_path.resolve())
options.add_experimental_option('prefs', {'download.default_directory': download_dir})

また,ファイル名を変更するコードとして以下を追加する.

filename_list=["変更後のファイル名(1)","変更後のファイル名(2)".....]
list_of_files = glob.glob('保存先のフォルダのパス/*')
latest_file = max(list_of_files, key=os.path.getctime)
file_name = str(latest_file.split('\\')[1])
print(latest_file)
print()
os.remove("csv/"+filename_list[i-1])
os.rename(latest_file,"csv/"+filename_list[i-1])

このコードでは

データの前処理 

分析するためにはデータの前処理を行わなければ正しい結果は得られない. 今回は前処理の手法として正規化を行う. 正規化の手法として,VAR-LiNGAMではMin-Max法によるデータの正規化,RF5に用いるデータの正規化手法としては説明変数にMax法による正規化,目的変数にはZ scoreによる正規化を行う.

VAR-LiNGAMへの適用 

VAR-LiNGAMの分析ではPythonのモジュール「LiNGAM」のVAR-LiNGAMを用いる. これは

数法則発見法(RF5法)によるモデル化 

数法則発見法の1つであるRF5を用いて経済変数間のモデル化を行う.

因果3Dグラフの作成 


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS