目次
こちらもおすすめ
金融におけるキャリブレーションとは
金融におけるキャリブレーションとは、観測されるマーケットデータに合うようにモデルのパラメーターを調整することである。
キャリブレーションはしっくりくる単語が日本語にはなく、「キャリブレーション」とそのまま使われることが多い。洋書を和訳した本ではたまに「較正」や「校正」という訳語が無理やり使われていることもあるが、モデルのパラメーターを「較正する」とか「校正する」と言われても何のことかわからない。
それよりは、モデルパラメーターを「いい感じに調整する」という意味で使われる。動詞として使う場合は、モデルパラメーターを「キャリブレートする」というように使う。
また、機械学習において「モデルを学習させる」というときの「学習させる」が「キャリブレートする」と同じ意味である。すなわち
モデルの学習
=モデルパラメーターのキャリブレーション
と思っておけばよいだろう。
モデルパラメーターには2種類ある
モデルパラメーターとは、モデルの特徴を表すインプットで、それを変化させることによって、モデルから得られる結果がシステマティックに変わるものである。
モデルパラメーターには、2種類ある。
(1)人間が自分の手で特定の値を設定する(「外生的に与える」とも言う)もの
(2)観測されるデータにフィットするように、キャリブレートすることで設定するもの
(1)キャリブレーションしないパラメーター
(1)は機械学習の文脈では「ハイパーパラメーター」とも言う。これはキャリブレーションしないパラメーターである。
観測されるデータにフィットさせるのではなく、先人の知恵で「だいたいこれくらいの値にするとうまくいくことが多い」というような感じで決めてしまうことも多い。その場合、設定の仕方に恣意性があるとして問題視されることもある。
もう一つの方法としては、グリッドサーチのように、想定される値の範囲だけ決め打ちして、あとはその範囲をしらみつぶしに探索することで、最も良い結果を与えるハイパーパラメーター値を見つけようとすることもある。いずれにせよ、(1)はキャリブレーション中に値を動かすことなく、あらかじめ設定された値で固定されたままである。
例えば、金利のバニラオプションを評価するのによく使われるSABRモデルでは、パラメーター \(\beta\) (ベータ:Beta)がこれ(ハイパーパラメーター)に該当する。SABRの \(\beta\) はトレーダーの感覚で決め打ちされていることも多く、キャリブレーションによって試行錯誤してマーケットに合わせに行く、ということは少ない。
(2)キャリブレーションするパラメーター
(2)がキャリブレーションによって設定されるパラメーターである。モデルパラメーターと言うときはたいていこちらのパラメーターを指す。
例えば、SABRモデルであれば、\(\beta\) 以外、つまり、\(\alpha, \nu, \rho\) がこれに該当する。
キャリブレーションされるパラメーターは、パラメーターの数が少ないモデルの場合、一つ一つに直感的な意味が与えられることも多い。すなわち、「このパラメーターを動かすと、結果のこの部分がこう変わる」というように、パラメーターの変化が結果にどう影響を与えるのかが、事前にわかっていて、言葉で説明できる、というケースが多い。モデルによってはそうではない、つまりパラメーターの意味を言葉で説明するのが困難なケースもあるが、その場合、モデルを使用する現場からは喜ばれないことが多い。
キャリブレーションの手順
キャリブレーションの手順は以下の通り。
- 何らかの初期値を設定する
- そのもとでモデルの計算結果を求める
- モデルの計算結果と、観測されるマーケットデータとのずれを求める
- それをもとにして、あらかじめ定めた最適化のアルゴリズムによってパラメーター値を更新する
- 更新されたパラメーター値のもとでモデルの計算結果を求める
- モデルの計算結果と、観測されるマーケットデータとのずれを求める
- (同様の手順を繰り返す)
- モデルとマーケットのずれが所定の範囲に収まるか、所定の繰り返し回数に到達すると、そこで繰り返しを終了する
このように、キャリブレーションとは、最もマーケットを良く再現するパラメーターを試行錯誤的に求めることである。
最適化のアルゴリズム
この、「試行錯誤的に」の部分について、では具体的にどのような方針で試行錯誤するのか、というと、それは上記の「最適化のアルゴリズム」によって決まっている。
実務で使用される最適化のアルゴリズムには非常に多くの種類がある。ファイナンスのプライシングモデルでは、最適化の目的関数(損失関数とも言う)の形から、非線形最小二乗法というカテゴリーの最適化アルゴリズムを使うことが多い。
有名なものにはLevenberg-Marquardt法があるが、これは結果が初期値に強く依存することが多い、という注意点がある。そういう意味でLocal Optimizerと呼ばれることがある。
それに対して、初期値に対する依存性が低いアルゴリズムであるGlobal Optimizerにも非常に多くの種類があるが、Simulated Annealing(焼きなまし法)やDifferential Evolution(差分進化)などがある。