第三章 研究方法
第一節 蒙地卡羅模擬法
蒙地卡羅模擬法於 1977 年由 Boyle 首先使用於選擇權的評價,此後蒙地卡羅 模擬法亦常被使用來評價各類型的衍生性金融商品;蒙地卡羅模擬法是基於風險 中立的環境下,利用電腦的隨機抽樣,模擬出資產價格可能之路徑,再假設每條 路徑發生之機率皆為相同,計算其算術帄均數後,最後以無風險利率折現,求得 其模擬之價格(Price),其公式如下,
)]
..., ,...
, (
[
0N 1N TNrT
E f S S S
e PRICE
(式 3.1) 其中,r 為無風險利率、T 為距今之到期日,即存續期間;N 為欲模擬之次數;
) ..., ,...
,
( S
0NS
1NS
TNf
為各模擬路徑到期日之現金流量。本研究所使用之蒙地卡羅模擬法如下所述。
3.1.1 原始蒙地卡羅模擬法
原始蒙地卡羅模擬法相當具有彈性,能評價各類型的衍生性金融商品;但其主 要缺點為隨機亂數(ε)的取得,由於電腦所產生之亂數會產生群聚的現象;因此容 易在評價商品時會產生誤差,且亦需要模擬到一定之次數才會有比較穩定及收斂 的效果。
欲模擬股價指數或股票價格之路徑,我們需先假設風險中立且股價指數(股票價 格)符合幾何布朗運動,本研究以股價指數為模擬模型之設定標的,模擬之標的若 為其他資產,則將股價指數修改為其他資產資價格(及相關參數)即可,蒙地卡羅模 擬法評價過程之步驟如下,
步驟 1
16
於時點 T 之股價指數可表示如下,
] )
5 . 0
[(
r d
2dt dt Exp
I
I
T
t
(式 3.2)
其中,It為前一期之股價指數;r 為無風險利率;d 為股利率;σ 為股價指數波 動度;ε 為隨機亂數;dt 為產生股價指數之間隔時間。
步驟 2
產生其𝜀之亂數,代入(式 3.2),產生各個時點之股價指數,求算到到期日 T 之 股價指數。
步驟 3
依據配息方式,求算各路徑之價格。
步驟 4
將步驟 2 及步驟 3 重覆至欲模擬的次數,再以適當之無風險利率(r)折現並帄均,
即為該結構型債券之價格。
3.1.2 反向變異法
由於使用原始蒙地卡羅模擬法時會產生群聚的現象,因此我們可使用反向變 異法降低模擬結果之變異,此法係產生一個與原來資產為負相關的隨機項以降低 其模擬結果之變異,其主要概念為假設由常態亂數表所抽取之隨機亂數所計算出 來之資產價值為θ1,再由同一組隨機亂數加上負號即成為相反變量之資產價格為θ2, 並將兩價值加以帄均即為最終之資產價值θ。即,
2
2
1
(式 3.3)
變異數為,
2 ) ( )
(
Var
1
2Var
) , cov(
2 ) ( )
( 4[ 1
2 1 2
1
Var Var
(式 3.4) 其 中 ,Var(θ1)=Var(θ2)=σ2。 若 θ1 與 θ2 具 有 高 度 負 相 關 ,cov(θ1,θ2)<0 , 故
17
) , cov(
2 ) ( ) ( 4[ ) 1
(
Var
1 Var
2
1
2Var
,藉由此方法降低其變異數,提高模擬的準確度,故不需要增加模擬次數亦能達成降低變異之效果。
3.1.3 準蒙地卡羅模擬法
本小節將介紹所使用之準蒙地卡羅模擬法當中的 Halton Sequences、Faure Sequences 及 Sobol Sequences;使用原始蒙地卡羅模擬法及反向變異法時,亂數的 產生皆由電腦中的隨機亂數所產生介於 0~1 之間的亂數值,或多或少存在群聚的 現象,因而降低模擬準確性;因此本研究進一步使用準蒙地卡羅模擬法,準蒙地 卡羅模擬法不同於原始蒙地卡羅模擬法及反向變異法,在於準蒙地卡羅模擬法是 透過確定的數列產生其亂數,使得所產生之序列並無群聚之現象,且皆能均勻地 分散於 0~1 之間,無頇透過大量的模擬次數亦能增加其模擬的準確性,故準蒙地 卡羅模擬法亦稱為低差異序列法(Low-Discrepancy Sequences)。Halton Sequences、
Faure Sequences 及 Sobol Sequences 等方法概述如下:
(1) Halton Sequences
Halton Sequences 是由 Halton(1960)所提出的低差異序列法,Halton Sequences 是由不同的質數(Prime)做為基底(Base)產生界於[0,1)多維度的數列,例如:第一維 是由質數 2 為基底所產生、第二維是由質數 3 為基底所產生,以此類推;維度則 與時間間隔相關,任一時間間隔則為一維,若將整段存續期間分割為十個期間,
則需要十個維度。
為了得到二個維度的 Halton Sequences,我們將以 n=4 為例,分別由底數 2、3 說明之。首先,我們先將 4 轉換為以 2 為底及以 3 為底的值,若將 4 轉換為以 2 為底的值為 100,以 3 為底的值則為 11。
4=1×(22)+0×(21)+0×(20) 4=1×(31)+1×(30)
接著,分別將 100 及 11 倒置為 0.001 及 0.11,並將 0.001 及 0.11 轉換為十進 位的值,其值分別如下,
8 ) 1 2 ( 1 1 2 ) ( 1 0 2 ) (1 0 001 .
0
1
2
3
18
19
多維度的 Halton Sequences 如同上述之求算過程,其差別在於每一維度所對應 到之底數皆不相同,其底數為大於或等於 2 之質數(如:2、3、5、7……),其中第 k 個質數則是對應到第 k 維的底數。
在高維度的情況下,Halton 會有群聚的現象產生;因此 Kocis 與 Whiten(1995) 提出對於每個 n(n=0~N-1)乘以質數 ,其公式如(式 3.7);同時,我們亦將捨棄前 1000 個 Halton numbers。
(2) Faure Sequences
Faure Sequences 與 Halton Sequences 差別在於,Halton 每一維度所使用的基底 皆不相同,而 Faure 所使用的基底(p)則為最小的質數大於或等於最大維度但不小
20
上述之步驟為 Faure Sequences 之過程,茲擬用一範例敘述 Faure numbers 產生;
假設欲產生一個二維 8 個 Faure numbers,其底數 p=2。
步驟 1
將 n=0~N-1 轉換為以 2 為底之數值,如表 3.2 所示,
21
22
3 2
1 0 2 1 2
2
1
8
5因此,藉由上述之作法,我們便可將二個維度前 8 個數值列出於表 3.3,
表 3.3 Faure Sequences 二個維度下之 8 個數值
n 0 1 2 3 4 5 6 7
維度 1 0 1/2 1/4 3/4 1/8 5/8 3/8 7/8 維度 2 0 1/2 3/4 1/4 5/8 1/8 3/8 7/8
由於 Faure 與 Halton 在高維度的情況下,也會有群聚的現象產生,因此 Bratley and Fox(1998)建議將前面(p4-1)個 Faure numbers 與予捨棄。
(3) Sobol Sequences
本研究將採用 Antonov and Saleev(1979)所提出之 Sobol 演算法,因 Bratley and Fox(1998)研究指出此法較 Sobol 原始演算法約快 20%;Sobol Sequences 的產生不 同於上述 Halton 及 Faure,其主要是在於 Sobol 每一維所使用之底數均為 2;以下 將詳述 Sobol Sequences 產生之步驟。
步驟 1
首先,在產生 Sobol Sequences 前每一個維度需先產生 y 個奇數的 direction numbers,而此組 direction numbers 則為該維度產生 Sobol Sequences 之基底,y 為 大於 log2N 的最小整數,N 則為欲模擬路徑之次數。y 個 direction numbers 的產生 則是藉由 d 階的質多項式(primitive polynomial,該多項式無法再因式分解)所產生,
其 d 階多項式如下,
1 .
...
12 2 1
1
x x
x
x
P
d
d
d
d (式 3.12)其中,該多項式中之係數β1……βd-1非 0 即 1。而 y 個 direction numbers 則是透過 下列之方程式遞迴而產生,在求算 mi時我們需將前 d 個 mi給定初始值,其初始值 之給定原則上為 0<mi<2i且為奇數,其遞迴方程式如下,
d i d i d d i d d i
i
i
m m m m m
m 2
1 1 2
2
2 2 ... 2
1
1 1 2
(式 3.13)23
其中,d 為質多項式當中 x 之最高次方值,i=1~n,i>d,
為 XOR 運算符號,其 XOR 運算如下,1 0 1 1 0 , 0 0 0 1
1
在計算 mi時,需將已知之 mi轉換成二進位的數值,再進行 XOR 之運算,待 XOR 運算完畢後,將 mi二進位的數值轉換為十進位之數值即可。
步驟 2
接著,將所有 mi轉換為二進位之值 vi。其轉換 vi的公式如下:
i i i
v m
2 in base 2 (式 3.14) 步驟 3將 n 亦轉換為二進位之值,n=0~N-1。
步驟 4
計算其 Sobol Sequences,其產生之公式如下,
c
v
nn S n
S ( 1 ) ( )
,(式 3.15)
其中,S(0)=0,而 c 則是表示 n 於二進位下從最右邊計算起為 0 之位數。故 vc則為 所對應之二進位之 direction numbers。
上述為 Sobol Sequences 產生之步驟,以下將用一範例敘述單一維度之 Sobol Sequences 產生過程,而多維度的差別在於質多項式的不同。
若我們要產生一維且 16 個之 Sobol numbers,因此我們所需要的 direction numbers 為 5 個(5=log216+1,即為大於 log2N 之最小整數),其質多項式如下,
3 1
x x P
根據(式 3.12),得知該多項式的 d=3;且由(式 3.13),得知 β1=0、β2=1;因此 我們將係數代入(式 3.13)中,
3 3 3 2
2
2
2
i i ii
m m m
m
24
我們再假設前 d=3 個 mi的值,因此,我們給定 m1=1、m2=1、m3=5,透過(式 3.12)式找出另外二個 direction numbers,
m
4
4
8
10001 1000
0100
1101
13m
5
20
8
100001 01000
10100
11101
29接著,將 5 個 direction numbers 轉換為二進位之值,其值為表 3.4,
表 3.4 Direction numbers 十進位值及二進位值
i
1 2 3 4 5m
i 1 1 5 13 29m
i二進位值 000001 000001 000101 001101 11101 接下來將 5 個 mi轉換為 vi值,其值如表 3.5 所示。表 3.5 Direction numbers 轉換為 vi之十進位值與二進位值
i
1 2 3 4 5m
i 1 1 5 13 29v
i十進位值 1 21
22
1
23
5
2
413
25
29
v
i二進位值 0.1 0.01 0.101 0.1101 0.11101由 vi的二進位值,我們不難看出其實只要將 mi的二進位值從最右邊往左移所 對應之 i 個位數即可得到 vi的二進位值。
接著,我們將 n=0~N 轉換為二進位值,其轉換之值如下表 3.6;其次,依照各 個 n 求算出所對應的 vn,c。
25
表 3.6 n 轉換為二進位值及 vn,c
n(十進位值) n(二進位值) 所對應的 c
v
n,c0 0 1 0.1
1 1 2 0.01
2 10 1 0.1
3 11 3 0.101
4 100 1 0.1
5 101 2 0.01
6 110 1 0.1
最後,我們將透過所對應的 vn,c值及(式 3.15)求得 Sobol numbers;其求算方法 如下,其中 S(0)=0,
S(1) =S(0) ⊕ v1,c
=0.0 ⊕ 0.1
=0.1(二進位)
=0.5(十進位) S(2) =S(1) ⊕ v2,c
=0.10 ⊕ 0.01
=0.11(二進位)
=0.75(十進位)
透過上述之方法依遞迴之方式,將所有 Sobol numbers 求算出來,表 3.7 為此 一維度 16 個 Sobol numbers。
26
表 3.7 單一維下前 16 個 Sobol numbers
n 所對應的 c
v
n,c Sobol numbers0 1 0.1 0.5
1 2 0.01 0.75
2 1 0.1 0.25
3 3 0.101 0.875
4 1 0.1 0.375
5 2 0.01 0.125
6 1 0.1 0.625
7 4 0.1101 0.0625
8 1 0.1 0.5625
9 2 0.01 0.8125
10 1 0.1 0.3125
11 3 0.101 0.9375
12 2 0.01 0.4375
13 2 0.01 0.1875
14 1 0.1 0.6875
15 5 0.11101 0.0313
以上則是在單一維度下所求得 16 個 Sobol numbers,若要求得多維度之 Sobol Sequences 只需代入不同的質多項式即可;其中,由於所使用之起始值有可能會重 覆,因此本文將採用 Silva(2003)的建議,將前面 1024 個 Sobol numbers 捨棄掉。
另外,對於 direction numbers 起始值的選擇 Silva(2003)亦提出一種方法,克服於高 維度時所產生聚集之問題。其方法則是對於每個維度,從 U(0,1)中抽取亂數並且透 過(式 3.16)產生其 direction numbers 的起始值。
) 1 ], 1 2
(int[
i ii
Max u
m
(式 3.16) 其中,ui為從 U(0,1)所隨機抽取出之亂數,mi則需為單數(Odd);若條件不符合則 重覆抽取至符合為止。27 Cholesky Decomposition 使得無風險利率及股價相關性去除。
3.2.1 Vasicek Model
Vasicek 模型於 1977 年提出以來奠定了利率模型之基礎,且亦被廣泛的使用並 探討,Vasicek 認為短期利率係由長期帄均利率水準加上一個隨機項組合成的,此 模型存在一缺點為在模擬利率的過程當中,若𝑑𝑡變動太大利率則會產生負值,其