ホーム > Blog

2009/08/12

参入オプションを対象とした2項モデルと無限満期モデルの解の整合性

標題の内容を検証するためのプログラムを学生に書かせていたが,昨夜確認したところあちこち間違っている(後述)ことが判明.軽微な修正では対応しきれないと判断し,全面的に作り直してみた.これが思ったより大変で,午後3時くらいまでかかった.

実装自体は簡単.大変なのは,以下の2つの要請を満足させようとすると問題規模が大きくなってしまうことだ:
[a] 二項モデルを無限満期モデルに近づけるためには,期間Tが十分長くなければならない
[b] 二項モデルが幾何Brown運動のよい近似となるためには,時間ステップΔTが十分短かくなければならない

さて,今回,学生が組んだプログラムの主な問題点は以下の5つ.
[1] 時点t+1の価値を時点tに割引くための係数の計算にΔTが使われていない.
[2] 二項モデルにおいて「状態変数が増加するときの変化率 u」と「状態変数が増加する確率 p」の計算が間違っている.
[3] 問題規模が少し大きくなるだけでハングアップする.
[4] このハングアップを回避するために T/ΔT を一定にしている.
[5] 状態変数の初期値が異なる問題のそれぞれに対して,2項ツリーを書き直している.

このうち,まず,[1, 2] は今井(2004)の誤りを鵜呑みにしたために生じたものだが,状態変数の増分の期待値と分散ぐらいチェックして欲しいものだ.Luenberger (1997) に正解が載っている.ただし,v = α-0.5σ^2 である点に注意すべき(これは状態変数の対数をとったものがBrown運動に従うことを考えれば当然).

次に,[3]の解決法として[4]はそもそも間違い.問題規模が大きくなっても計算できるように改良しない限り,要請[a, b]を同時に満足することは不可能.[3]は sparse 行列を活用することで解消できる.

[5]も計算時間の観点から問題だ.これに対しては,二項ツリーの再帰的な性質(i.e. 二項ツリーはどこで切っても二項ツリー)を活用する.具体的には,二項ツリーを「時点0」からTに向かって述ばすのではなく「時点 -J」から述ばす.こうすれば時点0でJ 個の「初期値」を持つ二項ツリーを生成できる.

で,作ってみたところ,無限満期モデルの解析解と二項モデルの数値解との誤差を1%未満にするためには,期間をT=100,時間ステップn=T/ΔTを1000個くらいにする必要があることが判った.これは,有限満期における陽解法アプローチの近似精度に対する批判(例えば,Huang and Pang,1998; Dempster and Hutton,1999; Coleman et al., 2002)とも整合的だ.

夕方,時間が適当に余ったので,確率動的システムの推計問題(特殊ケースとしてKalman filterを含む)勉強をしてみる→挫折.

参考文献:
今井潤一, 2004, リアル・オプション―投資プロジェクト評価の工学的アプローチ, 中央経済社.
Luenberger, D. G., 1997, Investment Science, Oxford Univ Pr.
Huang, J., Pang, J.-S., 1998. Option pricing and linear complementarity. Journal of Computational Finance2, 31–60.
Dempster, M., Hutton, J., 1999. Pricing American stock options by linear programming. Mathematical Finance9, 229–254.
Coleman, T.F., Li, Y., Verma, A., 2002. A Newton method for American option pricing. Journal of Computational Finance5, 51–78.