書評:Shocks, Crises, and False Alarms: How to Assess True Macroeconomic Risk

2025/4/20

Shocks, Crises, and False Alarms: How to Assess True Macroeconomic Risk Philipp Carlsson-Szlezak, Paul Swartz Shocks, Crises, and False Alarms: How to Assess True Macroeconomic Risk  本書はマクロ経済における近年見られたような、ショック、危機などのリスクを案内します。  マクロ経済のリスクを判断するとき、リスクが実際のショック ...

ReadMore

合衆国の新関税の税率と貿易収支

2025/4/17

2025年4月2日に合衆国の新しい関税の税率が公表されました。現在の貿易収支の状況と導入される関税の税率をまとめます。 合衆国の貿易収支 図1 合衆国の貿易収支2023年(単位:USD million)  図1は、左側が輸出国、右側が輸入国です。マウスポインタを領域の上に置くと、輸出入額(単位:100万USドル)を表示します。 データソースはJETROがまとめている貿易投資年報より参照。 新関税の税率と各国の対米貿易収支 図2 関税税率と対米貿易収支 対米貿易収支は、輸出額から輸入額を減算した値(単位:1 ...

ReadMore

強化学習による因果探索 gCastle因果探索アルゴリズムの検証(3)

2025/3/18

gCastleに実装された探索アルゴリズムの中で、強化学習を使ったアルゴリズムが高い性能を示しています。本稿ではこの探索のための強化学習アルゴリズムを解説します。 強化学習を使った探索  強化学習は一般的にポリシーを学習することを目的に用いられますが、彼らはこれをDAGの探索に使っています。  巡回セールスマンの問題と同様に、d次元のnシーケンスでベストスコアを導くことで、入力データからバイナリの隣接行列の生成を考えます。  隣接行列を出力するためにエンコーダ/デコーダ・モデルを作りますが、エンコーダ自己 ...

ReadMore

CastleBoardの使い方 gCastle因果探索アルゴリズムの検証(2)

2025/3/2

中国のAI技術動向の調査を兼ねて、gCastleに実装された因果探索アルゴリズムを検証しました。gCastleはGUIツールCastleBoardを含んでいますが、パッケージにツールのマニュアル類は添付されていません。そのため、本稿では実際にアルゴリズムを検証するためのCastleBoardの使い方について解説します。 CastleBoardの操作  GUIツールはいくつかの設定項目への入力でテストデータを生成できるため、テストプログラムを組むより簡単にアルゴリズムを検証できます。ツールの機能は主に二つの ...

ReadMore

マイニング・セクターのリスク許容度、関税の影響 (DoubleMLの推論)

2025/3/14

 2025年2月に合衆国の新政権の政策として、鉄鋼とアルミニウムに25%の関税が課されることが決定されました。一方で、ウクライナへのこれまでの支援の対価として、ウクライナの鉱物資源などの天然資源の権益取得が交渉されています。  この関税政策が、原料である鉄鉱石やボーキサイトなどの鉱物資源の採掘を行なっている企業に与える影響について分析します。  分析手段として機械学習を使った推論手法、DoubleML(Double Machine Learning)を用います。このDoubleMLという推論手法と同じ名称 ...

ReadMore

gCastle 因果探索アルゴリズムの検証

2025/2/28

gCastleは、因果探索アルゴリズムが実装された因果の構造を学習するツールチェインです。パッケージは、Webアプリを含んでおり、因果探索アルゴリズムがGUIベースの操作で検証できるようになっています。 gCastle 概要  Huawei社のリサーチラボから提供されています。因果探索アルゴリズムが実装されており、Webアプリを使用してアルゴリズムの動作が検証できます。  GCastleの名称は、Gradient-based Causal Structure Learning pipeline. の頭文字 ...

ReadMore

クレジット・カードの種別と利用額の最適化 YLearnによる因果推論(2)

2025/2/20

YLearn因果推論パッケージを使ったケース・スタディを使ってYLearnの機能を解説します。YLearnの因果推論パイプラインを使ったマーケティング上の分析の一つになります。クレジット・カードのグレードを更新した場合の効果の推論です。 機能と仕様  以下、簡単に機能をまとめ、最後にケーススタディを使って動作を確認します。ケース・スタディでは、Kaggleの実際のデータセットを使います。 DAG グラフと交絡因子  観測されていない変数はconfounding arcとして定義し、下の図1では(黒の点線) ...

ReadMore

YLearnによる因果推論(1) 概要とセットアップ

2025/2/20

 因果推論はAIシステムが、イベント間の真の因果関係をよりよく理解する助けになります。中国製のLLMが最近、話題(注1)になっていたので、データサイエンス分野で中国の因果推論に関する取り組みとツールについて評価します。  因果推論や因果探索のツールとして、Huaweiが提供しているgCastleと、因果探索・因果推論ツール、ylearnを使います。gCastleはPyTorchで実装された因果探索パッケージです。因果関係に関連した代表的なアルゴリズムが実装されて、検証ツールが提供されています。Huawei ...

ReadMore

Jupyter-notebookがAnaconda Navigatorから起動できない問題

2025/2/6

新しいAnaconda Navigatorをインストールしたところ、jupyter-notebook(7.3.2)がNavigatorから起動できない問題がありました。 Navigatorのエラーメッセージは、次のようになっています。 【The file /Users/xxx/anaconda3/bin/Jupyter_mac.command does not exist.】 jupyter_mac.command does not exist.  問題は、インストールまたはNavigatorが参照してい ...

ReadMore

Apple Silicon Mac 用 Anacondaバージョン更新・インストール

2025/2/5

Apple Silicon用に新しいバージョンのAnacondaがリリースされていたので、Navigatorの更新を兼ねてインストールします。 (Mac OSの更新(Sequoia15.3)によって、使用中のNavigatorが起動しなくなったため) Anaconda Navigatorのインストール  以下のAnacondaのサイトにアクセスします。最近のAIに対する、人と資本、計算リソースの流れを反映した画面に様変わりしています。 https://www.anaconda.com  【1】画面左上のP ...

ReadMore

slide ファイナンス リスクモデル

極値理論

極値理論

金融市場に関して、経験的に観測された事実として、価格の収益率のような時系列データの多くに該当する事項があります。

例えば、極端な収益率の値はクラスタを形成するようなことです。

収益率系列における極値は、同期してボラティリティ・クラスタを形成しやすいというようなことです。

極値理論は最大観測値に対するモデルであり、こうした金融時系列データが示す特徴的な現象を記述する上で整合性があります。

株価が急変するような場合、極端な観測値を効率的に使用する点で、株式、株価指数、ポートフォリオの損失に対するモデルとして実際に応用できるでしょう。

閾値モデル

ブロック最大値法

nブロック最大値Mnの分布はnが大きければ、3パラメータGEV分布で近似できます。

GEVとは(Generalized Extreme Value) distribution  一般化極値分布

以下のモデル

G(z) = exp{ -1 [1 + ξ((z - μ)/ σ) ]}

GEVの三つのパラメータは
μ:位置
σ:スケール
ξ:シェイプ xi 形状パラメータ

xi->0 の極限ではグンベル分布になります。

以下の機械学習を実行すると、このパラメータはそれぞれ以下の推定値になります。

xi : 0.155542
sigma: 1.041265
mu: 2.443496

パッケージevirを用います。

evir はExtrem Value in R の略です。

evir

これはS-PLUSのパッケージEVISからRに移植されています。

package evir

バージョン1.7-4

以下のCRANのWebサイトからAPIのマニュアルを参照することができます。

library('evir')
data(danish)
SieLos <-100.0 * siemens
GEV <- gev(SieLos, block="semester")
> library('evir')

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

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

    qplot

> data(siemens)
> SieLos <- 100.0 * simens
 エラー:  オブジェクト 'simens' がありません 
> SieLos <- 100.0 * siemens
> SieGEV <- gev(SieLos, block="semester")
> SieGEV
$n.all
[1] 6146

$n
[1] 48

$data
 [1] 3.332837 4.564551 2.929195 3.195160 3.074342 2.847947 2.317558 1.607382
 [9] 2.744829 1.353201 1.529342 1.645970 1.730462 1.859042 2.557895 1.772810
[17] 1.489706 2.946031 2.232120 2.157249 3.500081 3.812336 4.518762 3.425502
[25] 3.772542 4.385188 6.070131 4.355276 4.037816 5.117573 7.295798 3.131371
[33] 3.797925 5.732228 2.836112 6.211146 7.672870 3.368053 1.904819 3.829483
[41] 1.809127 3.817076 1.941525 3.345885 1.900642 1.844945 1.934538 1.125012

$block
[1] "semester"

$par.ests
      xi    sigma       mu 
0.155542 1.041265 2.443496 

$par.ses
       xi     sigma        mu 
0.1564440 0.1439107 0.1807022 

$varcov
             [,1]         [,2]        [,3]
[1,]  0.024474739 -0.007558325 -0.01260267
[2,] -0.007558325  0.020710290  0.01538971
[3,] -0.012602670  0.015389708  0.03265327

$converged
[1] 0

$nllh.final
[1] 82.07033

attr(,"class")
[1] "gev"

表示するにはplotで表示します。

> plot(SieGEV$data,type="h",col="blue", xlab="", main="Maximum Biannual Losses of Siemens")

ismev

ismevを使って gev.fit() gev()が返すパラメータを推定します。

上の図で縦軸にプロットされたevirで得た結果をismevの入力に渡します。

library('ismev')
SieGEV2 <-gev.fit(SieGEV$data)
SieGEV2

> library('ismev')
 要求されたパッケージ mgcv をロード中です 
 要求されたパッケージ nlme をロード中です 

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

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

    collapse

This is mgcv 1.8-42. For overview type 'help("mgcv-package")'.
> SieGEV2 <- gev.fit(SieGEV$data)
$conv
[1] 0

$nllh
[1] 82.07033

$mle
[1] 2.443496 1.041265 0.155542

$se
[1] 0.1807022 0.1439107 0.1564440

> SieGEV2
$trans
[1] FALSE

$model
$model[[1]]
NULL

$model[[2]]
NULL

$model[[3]]
NULL


$link
[1] "c(identity, identity, identity)"

$conv
[1] 0

$nllh
[1] 82.07033

$data
 [1] 3.332837 4.564551 2.929195 3.195160 3.074342 2.847947 2.317558 1.607382
 [9] 2.744829 1.353201 1.529342 1.645970 1.730462 1.859042 2.557895 1.772810
[17] 1.489706 2.946031 2.232120 2.157249 3.500081 3.812336 4.518762 3.425502
[25] 3.772542 4.385188 6.070131 4.355276 4.037816 5.117573 7.295798 3.131371
[33] 3.797925 5.732228 2.836112 6.211146 7.672870 3.368053 1.904819 3.829483
[41] 1.809127 3.817076 1.941525 3.345885 1.900642 1.844945 1.934538 1.125012

$mle
[1] 2.443496 1.041265 0.155542

$cov
            [,1]         [,2]         [,3]
[1,]  0.03265327  0.015389708 -0.012602670
[2,]  0.01538971  0.020710290 -0.007558325
[3,] -0.01260267 -0.007558325  0.024474739

$se
[1] 0.1807022 0.1439107 0.1564440

$vals
          [,1]     [,2]     [,3]
 [1,] 2.443496 1.041265 0.155542
 [2,] 2.443496 1.041265 0.155542
 [3,] 2.443496 1.041265 0.155542
 [4,] 2.443496 1.041265 0.155542
 [5,] 2.443496 1.041265 0.155542
 [6,] 2.443496 1.041265 0.155542
 [7,] 2.443496 1.041265 0.155542
 [8,] 2.443496 1.041265 0.155542
 [9,] 2.443496 1.041265 0.155542
[10,] 2.443496 1.041265 0.155542
[11,] 2.443496 1.041265 0.155542
[12,] 2.443496 1.041265 0.155542
[13,] 2.443496 1.041265 0.155542
[14,] 2.443496 1.041265 0.155542
[15,] 2.443496 1.041265 0.155542
[16,] 2.443496 1.041265 0.155542
[17,] 2.443496 1.041265 0.155542
[18,] 2.443496 1.041265 0.155542
[19,] 2.443496 1.041265 0.155542
[20,] 2.443496 1.041265 0.155542
[21,] 2.443496 1.041265 0.155542
[22,] 2.443496 1.041265 0.155542
[23,] 2.443496 1.041265 0.155542
[24,] 2.443496 1.041265 0.155542
[25,] 2.443496 1.041265 0.155542
[26,] 2.443496 1.041265 0.155542
[27,] 2.443496 1.041265 0.155542
[28,] 2.443496 1.041265 0.155542
[29,] 2.443496 1.041265 0.155542
[30,] 2.443496 1.041265 0.155542
[31,] 2.443496 1.041265 0.155542
[32,] 2.443496 1.041265 0.155542
[33,] 2.443496 1.041265 0.155542
[34,] 2.443496 1.041265 0.155542
[35,] 2.443496 1.041265 0.155542
[36,] 2.443496 1.041265 0.155542
[37,] 2.443496 1.041265 0.155542
[38,] 2.443496 1.041265 0.155542
[39,] 2.443496 1.041265 0.155542
[40,] 2.443496 1.041265 0.155542
[41,] 2.443496 1.041265 0.155542
[42,] 2.443496 1.041265 0.155542
[43,] 2.443496 1.041265 0.155542
[44,] 2.443496 1.041265 0.155542
[45,] 2.443496 1.041265 0.155542
[46,] 2.443496 1.041265 0.155542
[47,] 2.443496 1.041265 0.155542
[48,] 2.443496 1.041265 0.155542

attr(,"class")
[1] "gev.fit"

gev.diag()で表示させます。

> gev.diag(SieGEV2)

-slide, ファイナンス, リスクモデル
-