市場創造型のイノベーション 書評:The Prosperity Paradox

2024/10/20

ノーベル物理学賞の対象としての機械学習  今年のストックホルムの物理学賞に、機械学習の分野への貢献に対してジョン・ホップフィールド氏と以前グーグルにいたトロントのジェフリー・ヒントン氏が選出された。  ACM、チューリング賞なら自然なのだが、コンピュータサイエンスの分野から物理学賞として選ばれるのは珍しい。ストックホルムの賞は物理学と化学と生理学の3種類しかないので、物理学的な考えがアルゴリズムに導入されているので物理学という枠組みが適用されるのであろう。それだけ機械学習の社会へのインパクトが大きいという ...

ReadMore

外国為替平衡操作のパラドックス

2024/9/20

 経済や金融の分野で、統計的な手法を使って市場を分析していると、実際の経済現象と一般に認識されている経済状況の間でパラドックスに出会うことがあります。  大規模金融緩和や長期間の金融緩和が経済活動の縮小を招くことや、通貨当局の外国為替市場介入により当局の意図とは逆方向に為替レートが推移することなどは、このサイトでも紹介しています。  ここでは以前、データの因果性を解析するツールの一つとしてcausal-learnや、CausalPyを紹介しました。パラドックスのように映る経済現象を正しく認知する上で因果性 ...

ReadMore

世界株式市場の混乱:外国為替市場介入による資金供与と相場操縦

2024/8/30

 2024年8月初旬、金融市場を揺るがす株式市場の乱高下が発生し、世界の主要な金融市場で混乱が見られました。東京市場では、8月5日に日経平均株価が12%を超える下落を記録しました。主要な原因と見られる背景が見過ごされているため、本稿でまとめておきます。  これは、端的に言えば犯罪収益によるドル円為替レートの相場操縦がもたらした株式市場の混乱です。 外為市場介入のリスク  前月の7月に財務省がドル売り市場介入を通じて、投機グループに資金を供与しました。建て玉余力を増加させた同グループがドル円の相場操縦を実施 ...

ReadMore

ヒューリスティックス:マーコヴィッツ・ポートフォリオ理論 対 不確実性

2024/8/22

 合理性の限界について検討を重ねていたハーバート・A・サイモンの時代は、ダニエル・カーネマン氏等の行動ファイナンスは経済学の主要な流れとはなっていませんでした。  サイモンは複雑系経済学の起源の一つとみなせますが、その時は複雑系という用語もありませんでした。 サイモンは人工的な現象(経済現象を含む)は、環境に従順であるという点で”環境依存性”を持っているとみなしていました。  サイモンの仕事を継承するような、現在、複雑系や行動心理学の分野で活動している人々は、不確実な状況での認知や予測に関して新しい知見を ...

ReadMore

マイナス金利 : ニューケインジアンの視点

2024/8/13

 多くのニューケインジアンのモデルでは、外因によりゼロ金利が想定されることで経済が流動性の罠に陥ることがあります。スウェーデン、デンマーク、スイス、ユーロ圏、日本で、深刻な不況に対応する非伝統的な金融政策として、金利を負の領域に導く政策が取られました。  欧州、米国ではコロナ・パンデミックからの回復と東欧での軍事侵攻を契機にしたグローバルなインフレーションに対応して、政策金利を引き上げました。日本は、最近マイナス金利政策を解除し、現在も量的緩和を継続しています。  量的緩和の効果に対しては、多数の研究報告 ...

ReadMore

書評:May Contain Lies -嘘を含んでいるかもしれない

2024/7/15

May Contain Lies: How stories, statistics and studies exploit our biases - and what we can do about it. Alex Edmans 嘘を含んでいるかもしれない:どのようにストーリー、統計、調査研究が私たちのバイアスにつけ込むか、私たちがそれについてできること。 嘘を含んでいるかもしれない  著者は、私たちの日々の生活に影響する誤った情報が氾濫している複雑な現代社会において、より賢明に考え、正しい判断を行う上 ...

ReadMore

現代のプロパガンダと量的緩和の陰影

2024/5/27

 ロシアが侵攻した地域で、老婆に物資を支給している映像を撮るロシア人を、ウクライナの現地の市民が動画撮影してSNSに投稿していました。ロシア兵は老婆に食料品を支給していましたが、その老婆は、解放している様子を演出するためにロシアから連れてきたエキストラでした。SNS動画には現地の市民がブーイングをしている様子が映されていました。  ロシアの国営放送では、そうしたエキストラを使った映像が放映され、ブチャでの惨状は放映されません。ロシア国内の市民が知るロシア語の報道は、現地を圧政から解放するロシア兵の映像です ...

ReadMore

causal-learnによる因果探索

2024/4/25

 【マネーサプライと物価上昇の因果推論】で、二つの時系列データ間のGranger因果性を調べました。ベクター自己回帰モデル(Vector Auto-Regression:VAR)を適用したものです。他にも、近年、新しい因果推論、因果探索アルゴリズムが提案されています。PythonやR上に実装された因果推論パッケージがAI関連技術に投資している企業や機関からリリースされています。  causalQueries, causalml, causal-learn等、【為替レートと地政学的リスク-割り込まれた時系列 ...

ReadMore

書評:Statistical Consequences of Fat Tails

2024/3/27

Statistical Consequences of Fat Tails Real World Preasymptotics, Epistemology, and Applications Nassim Nicholas Taleb Statistical Consequences of Fat Tails  タレブ氏の著書は、ビジネス書と一般向けの啓蒙書の印象がありますが、本書は統計の専門書になっています。  この著書は、不確実で複雑な現実社会をどのように生きるかという、著者のIncertoプロジェク ...

ReadMore

書評:BATTLEGROUND

2024/3/21

BATTLEGROUND Ten conflicts that explain the new Middle East. Christopher Phillips BATTLEGROUND - Ten conflicts that explain the new middle east  本書で示す中東は、14の異なる独立した国と地域からなります。著者は北アフリカのリビア、トルコも中東に拡張(モロッコ、アルジェリア、チェニジア)して論じています。イラン、イスラエル、トルコ、クルド等を除いて、多くの地域はア ...

ReadMore

リスクモデル

CausalImpactによる為替レート推移の因果推論

Counterfactualの推論

 Counterfactual(もしそれが発生していなければ、どうなっていたか)の概念についてPythonのライブラリを使った検証例について熟考していたところ、同様のCounterfactualに関するのRパッケージがCRANに提供されているため、このライブラリを評価してみました。それは"CausalImpact"というベイズ構造化モデルを使った因果推論のRパッケージです。

 このパッケージはグーグル社のKay H. BrodersenよりApacheライセンスで提供されています。内部でbstsライブラリ(Bayesian structual time series)、Boomライブラリ(Bayesian Object Oriented Model)を使っています。

 時系列上の現象で作られた介入または干渉(intervention)[ 注 ]について因果の影響を予測するのは難しいことです。パッケージの目的は、interventionの後で、もしその介入または干渉(intervention)が発生していなければ、どのように反応が進んだかを予測するために、構造ベイズ時系列モデルを使うことで、この困難さにとり組むことです。

注:干渉または介入(intervention)

ここでいうinterventionとは、Judea Pearlのdo-operaterによる因果推論の intervention を指しています。

因果加法モデル(causal additive model)では、因果モデルの主要なツールとして、Pearlによってdo-calculus が導入されました。通常の条件確率 P[Y|X] はXの観測値 x とリンクしますが、do(.)条件確率 P[ Y| do(X=x) ]は強制してXに値 x を与えます。二つの条件確率はlookingとdoing の対立概念です。

参考文献

"Inferring causal impact using Bayesian structural time-series models"
Kay H. Brodersen Fabian Gallusser Jim Koehler Nicolas Remy Steven L. Scott

"Causality Models,Reasoning, and Inference" Judea Pearl

インストール

CausalImpactをCRANからインストールします。Boomを要求するのでBoomもインストールします。

> install.packages("Boom")
 --- このセッションで使うために、CRAN のミラーサイトを選んでください --- 
 URL 'https://mirrors.nics.utk.edu/cran/bin/macosx/big-sur-arm64/contrib/4.2/Boom_0.9.11.tgz' を試しています 
Content type 'application/x-gzip' length 87420992 bytes (83.4 MB)
==================================================
downloaded 83.4 MB


 ダウンロードされたパッケージは、以下にあります 
 	/var/folders/z3/y2vb_4653kjcytsygg5bkv7w0000gn/T//Rtmpb5olu1/downloaded_packages 
> install.packages(CausalImpact)
 要求されたパッケージ bsts をロード中です 
 要求されたパッケージ BoomSpikeSlab をロード中です 
 要求されたパッケージ Boom をロード中です 

 次のパッケージを付け加えます: ‘Boom’ 

 以下のオブジェクトは ‘package:stats’ からマスクされています:

    rWishart


 次のパッケージを付け加えます: ‘BoomSpikeSlab’ 

 以下のオブジェクトは ‘package:stats’ からマスクされています:

    knots

 要求されたパッケージ zoo をロード中です 

 次のパッケージを付け加えます: ‘zoo’ 

 以下のオブジェクトは ‘package:base’ からマスクされています:

    as.Date, as.Date.numeric

 要求されたパッケージ xts をロード中です 

 次のパッケージを付け加えます: ‘bsts’ 

 以下のオブジェクトは ‘package:BoomSpikeSlab’ からマスクされています:

    SuggestBurn

サンプルデータ

 期間2021年5月12日〜2023年3月17日のドル円為替レートを例に評価してみます。データポイントは東欧の侵攻のタイムスパンに属しています。為替の時系列データはcsvファイルで読み込むことを想定しています。

> library(CausalImpact)
> usdfxr <- read.csv(file="./Downloads/xxx/USDJPY.csv",encoding="UTF-8", header=F, sep=",")
> tail(usdfxr)
            V1       V2      V3       V4      V5 V6
432 2023-03-10 136.1675  136.99  134.119  134.86  0
433 2023-03-13 134.4365 135.037  132.298 133.211  0
434 2023-03-14  133.209 134.898  133.039 134.242  0
435 2023-03-15  134.242 135.112 132.2235 133.344  0
436 2023-03-16  133.344 133.826  131.729 133.483  0
437 2023-03-17  133.482  133.58  131.577 131.846  0

ヘッダを定義します。

> names(usdfxr) <-c("date","open","high","low","close","volume")
> head(usdfxr)
        date     open     high     low    close volume
1       date     open     high     low    close volume
2 2021-05-12  108.613  109.209 108.611  109.032      0
3 2021-05-13  109.669  109.785 109.482 109.5435      0
4 2021-05-14 109.4545 109.6535  109.21  109.348      0
5 2021-05-17  109.281  109.502 109.076  109.218      0
6 2021-05-18   109.21  109.285 108.839  108.946      0
> usd_close <- c(as.numeric(as.character(usdfxr[-1,]$close)),NA)
> head(usd_close)
[1] 109.0320 109.5435 109.3480 109.2180 108.9460 108.8980

CausalImpactのトレーニングで用いるデータの終端の詳細を規定します。モデルのトレーニング用(Pre-intervention period)、Counterfactual予測(post-intervention period)

> pre.period <- c(1, 195)
> post.period <- c(196, 430)

推論を実行するために、CausalImpactの分析を走らせます。

> impact <-CausalImpact(usd_close, pre.period,post.period)
> plot(impact)

 デフォルトでは三つのパネルを表示します。最初の表示が、事後の処置用のCounterfactual予測。2番目のパネルが観測データとCounterfactual予測の相違です。3番目のパネルは2番目のパネルからinterventionの蓄積の影響を図示しています。

分析結果

 分析の数値結果を得るには

> summary(impact)
Posterior inference {CausalImpact}

                         Average      Cumulative    
Actual                   134          31594         
Prediction (s.d.)        115 (2.7)    27103 (628.2) 
95% CI                   [110, 120]   [25893, 28285]
                                                    
Absolute effect (s.d.)   19 (2.7)     4491 (628.2)  
95% CI                   [14, 24]     [3309, 5701]  
                                                    
Relative effect (s.d.)   17% (2.7%)   17% (2.7%)    
95% CI                   [12%, 22%]   [12%, 22%]    

Posterior tail-area probability p:   0.00113
Posterior prob. of a causal effect:  99.88713%

For more details, type: summary(impact, "report")

 上記CausalImpactの事後推論の結果に表示されているActualは実際のデータ、Absolute effectは実際のデータと予測値の乖離、Relative effectはデータと予測値の乖離の%表示を意味しています。Averageは平均、Cumulativeは累積値です。

 95% CIは 95%のConfidence Intervalの略です。確率分布の中心から離れた両端の極端な値(上位のテイルと下位のテイル部分)を外した部分を指しており、信頼度が95%の確率でこの範囲に入ることを意味していいます。

 推論の結果は、予測値が平均115円で95%の確率で110円から120円の間にあることを示し、実際のデータ(134円)が平均で 17%乖離していることを示しています。

 posterior tail-area probability p(事後テイル領域確率): は、この結果が偶然に発生する確率を意味し、その値は非常に小さくなっています(p=0.00113%)。 これは乖離の原因としては統計的に非常に高い因果性があることを意味します。

 Posterior prob. of causal effect:がその確率を示しており、99.88713% の確率で因果性があることを示しています。

備考

 CausalImpactではトレーニングに使うモデルは、ベイズ構造化時系列モデルを用いています。パラメータの設定は、データセットをトレーニング用と予測用に分離して設定するだけなので、簡易にCausal effectに関するベイズ推論を実行することができます。ただし、内部で使用するモデルはベイズ構造化時系列モデルに限定されます。上記の例では非常によく適合しています。

 季節要因やその他固有の変数を追加し、詳細なモデルを特別に作り、Counterfactualの予測をするにはコードの量もMCMCの所要時間も要します。階層ベイズでは数日間MCMCを走らせることがあります。

 状態空間モデルで適合できる時系列データでは、このライブラリを使うことで、所要時間もかからず簡単に因果性の検証ができるようです。

サンプルデータとして用いた為替レートの推移については、以下にも記述。

-リスクモデル
-, , , ,