パラメトリック推定

Pythonで学ぶ定量的リスク管理

Jamsheed Shorish

Computational Economist

分布のクラス

  • 損失分布は確定していない
  • 可能な分布のクラスは?
    • 分布クラスを $f(x; \theta)$ とする
    • $x$ は損失(確率変数)
    • $\theta$ は未知のパラメータベクトル
  • 例: 正規分布
    • パラメータ: $\theta = (\mu, \sigma)$(平均 $\mu$、標準偏差 $\sigma$)
  • パラメトリック推定: データから最適な $\theta^\star$ を求める
  • 損失分布: $f(x,\theta^\star)$
Pythonで学ぶ定量的リスク管理

分布の当てはめ

  • 誤差最小化の基準で分布を当てはめる
    • 例: scipy.stats.norm.fit() で正規分布を当てはめる
      • 結果: 最適な平均と標準偏差
  • 利点:
    • ヒストグラムでデータと推定の差を可視化
    • 適合度検定を実施可能
Pythonで学ぶ定量的リスク管理

適合度

  • 推定分布はデータにどれだけ適合するか?
  • 可視化: ポートフォリオ損失のヒストグラムを描く

損失のヒストグラム

Pythonで学ぶ定量的リスク管理

適合度

  • 推定分布はデータにどれだけ適合するか?
  • 可視化: ポートフォリオ損失のヒストグラムを描く
  • norm.fit() による正規分布

正規分布付き損失ヒストグラム

Pythonで学ぶ定量的リスク管理

適合度

  • 推定した分布はデータにどれだけ適合するか?
  • 可視化: ポートフォリオ損失のヒストグラムを描く
  • 例:
    • 正規分布 norm.fit()
    • スチューデントのt分布 t.fit()
    • ヒストグラムが非対称?

正規分布付き損失ヒストグラム

Pythonで学ぶ定量的リスク管理

アンダーソン–ダーリング検定

  • 適合度の統計的検定
    • 帰無仮説: データは正規分布に従う
    • 検定統計量が critical_values を上回ると正規分布を棄却
  • scipy.stats.anderson をインポート
  • loss データで検定を実行
from scipy.stats import anderson

anderson(loss)
AndersonResult(statistic=11.048641503898523,
critical_values=array([0.57 , 0.649, 0.779, 0.909, 1.081]),
significance_level=array([15. , 10. ,  5. ,  2.5,  1. ]))
Pythonで学ぶ定量的リスク管理

歪度

  • 歪度: 分布の非対称さの度合い
    • 正規分布: 対称

正規分布

Pythonで学ぶ定量的リスク管理

歪度

  • 歪度: 分布の非対称さの度合い
    • 正規分布: 対称
    • スチューデントのt分布: 対称

正規分布とt分布

Pythonで学ぶ定量的リスク管理

歪度

  • 歪度: 分布の非対称さの度合い
    • 正規分布: 対称
    • スチューデントのt分布: 対称
  • 歪んだ正規分布(Skewed Normal): 非対称
    • 正規分布を特殊例として含む
    • 例: 損失が利益より多いポートフォリオに有用
    • scipy.stats に skewnorm として実装

正規分布、t分布、歪んだ正規分布

Pythonで学ぶ定量的リスク管理

歪度の検定

  • 対称分布からの乖離を検定: scipy.stats.skewtest
  • 帰無仮説: 歪みなし
  • scipy.stats から skewtest をインポート
  • loss データで検定を実行
    • 有意なら歪度を持つ分布クラスを使用
from scipy.stats import skewtest

skewtest(loss)
SkewtestResult(statistic=-7.786120875514511,
pvalue=6.90978472959861e-15)
Pythonで学ぶ定量的リスク管理

練習してみましょう!

Pythonで学ぶ定量的リスク管理

Preparing Video For Download...