本書主要針對攻讀數學、統計學、金融數學、運籌學和計算機科學等專業學位的學生,以及那些希望了解新的仿真理論和實踐的相關專業人士。書中介紹了蒙特卡羅方法在金融中的應用,并且將仿真用作呈現金融工程中模型和思想的工具。本書的特色在于深度解析了仿真的理論,包括方差減少方法中的重要研究及其在金融數學中的應用案例、馬爾可夫鏈蒙特卡羅方法和離散事件仿真。
本書的每章都包含了精選的問題,并在書后的附錄部分給出問題的解答。附錄包含了仿真程序的Maple工作表。該工作表也可以從與本書配套的網站上下載。這樣做的目的是鼓勵讀者在仿真實驗的有效設計中親自動手實踐。
本書源自作者在愛丁堡大學過去幾年里的教學實踐,它同樣也會受到從事金融業、統計學與運籌學研究的人員的青睞。
本書介紹了蒙特卡羅與仿真方法的理論及實踐。它來源于同時給兩個年級的學生開設的一門20個學時的課程。一個是愛丁堡大學數學學院本科最后一年的優等生們,另一個則是赫瑞瓦特大學和愛丁堡大學攻讀金融數學專業理學碩士學位的學生。
本書的目的是要成為一本能鼓勵讀者去寫且去實踐實際仿真模型的實用書。選擇Maple作為編程環境,可能看起來奇怪,甚至不合常理,而實際上選擇Maple的原因是在愛丁堡大學,從本科一年級開始所有數學系的學生都熟悉它。我相信這對許多其他數學系的學生來說也是如此。Maple軟件數值處理慢的缺點被它在概率、統計與作圖中的廣泛應用及列表處理函數應用等方面所抵消。書中羅列了互聯網上(www.wiley.com/go/dagpunar_simulation)所共享的大量專門的Maple程序,這些程序也列在了本書的附錄中。
本書的內容大體分為兩個部分,從第1~5章主要覆蓋理論和概率方面,從第6~8章覆蓋三個應用領域。第1章簡要概括了仿真的應用范圍。章節最后的問題部分包含了Maple程序的編寫,完整的解答在附錄1中給出。第2章著重偽隨機數的生成和評估。第3章討論了三種重要的從分布采樣生成隨機數的方法,它們是:分布函數的逆變換(也稱逆變換采樣法)、包圍取舍法和均勻比值法。盡管我們都知道很多其他的方法也可用,但是這三種方法使用的頻率最高,同時它們還具有算法編程實現簡單的優點。對其他方法感興趣的讀者可以參考Devroye(1986)的優秀著作或者本人早期的著作(Dagpunar,1988a)。附錄3中的兩個簡短的Maple程序可以讓讀者快速明確取舍類算法的效率。第4章解決了標準分布的采樣問題。重點在于提出簡短且實現簡單的算法。這樣的算法比Maple統計包中相應算法的運行速度更快。具體的算法列在附錄4中。結合第3章和第4章的內容,我希望能幫助讀者理解在各種程序包中可用的發生器是如何運行的,以及如何編寫程序包中未包含的分布的采樣算法或者改寫程序包中運行速度慢的算法。第5章介紹了方差減少方法。沒有這些方法,很多仿真在合理的處理時間內都不能給出精確估計。此外,本章的重點是介紹一種經驗的方法,讀者可以利用附錄5中的程序去說明不同方法的效率,包括重要采樣法和分層采樣法。
第6章和第8章是分別關于金融數學和馬爾可夫鏈蒙特卡羅方法的介紹,這些內容在10年前是無法寫出的。這些內容包含了高維積分在“奇異型”衍生品的定價和貝葉斯估計中所發現的結果,它們突然引起了仿真領域的復興。在第6章,我受到了Glasserman(2004)工作的影響,特別是他結合了重要采樣和分層采樣的有關工作。在第642節和第65節中,我希望給出更加直接且容易理解的,并能將這些方差減少方法導出且應用到亞式期權和一籃子期權中的方法。另一個高維積分的例子出現在隨機波動率中,第66節揭示了對該問題研究的冰山一角。盡管嚴謹的金融工程師是不會采用Maple來進行仿真的,然而在第6章中的數值例子顯然能說明:在仿真中采用高效的方差減少設計,即使采用Maple,也能在合理的時間內得到精確的結果。我也希望可以將Maple看作是在使用C++或Java編寫最終的有效程序之前,對各種模型進行實驗的一種有效方式。從這個方面來說,用Maple來輔助C++或FORTRAN生成代碼是有用的。
第7章介紹了離散事件的仿真,對運籌學研究人員來說這是最為熟知的。本章從仿真各種馬爾可夫過程的方法開始,同時考慮離散時間和連續時間類型。討論了自相關仿真結果分析的再生法。運籌學研究人員、金融工程師和貝葉斯統計學家的仿真需求在一定程度上是有重疊的,但是可以這么說,沒有哪一種單一的計算環境對所有應用領域來說都是理想的。運籌學研究人員可通過第7章的學習發展至會使用諸如Simscript II5或Witness這樣強大且專門的離散事件仿真語言。如果確實如此,我希望這本書可為他們在仿真的原理方面打下好的基礎。
第8章介紹了仿真迅速發展的其他領域,也就是馬爾可夫鏈蒙特卡羅方法及其在貝葉斯統計中的應用。這里,我受到了Robert和Casella(2004)以及Gilks等(1996)工作的影響。由于對系統修理和維護領域感興趣,所以在本章我也引入了可靠性領域的一些實例。Maple軟件用于處理本章中所討論的實例綽綽有余。對于更大的分級系統,可以利用BUGS這樣的專用程序包來解決。
在本書每一章的結尾都提出了一些問題,并有選擇地給出了相應的解答。少數的難題均明確標出。在本書的論述及問題部分,數值解答往往傾向于更有意義的圖形而不是作為依據的數據。這樣做可以使得其他形式的獨立計算能與本書中的相應計算進行對比。
對愛丁堡大學數學學院院長Alastair Gillespie教授同意我有一個學期學術公休表示感激。同時對在仿真課程中給予我支持的很多學生表示感謝,是他們給了我完成此書的動力。最后,感謝Angie對我的鼓勵和支持,以及她對我不在身邊的容忍。
譯者序
序言
術語表
第1章仿真與蒙特卡羅方法簡介1
1.1 定積分的求解1
1.2 蒙特卡羅方法是積分估計3
1.3 例子5
1.4 基于Maple軟件的仿真7
1.5 問題12
第2章均勻隨機數15
2.1 線性同余發生器15
2.1.1 混合線性同余發生器16
2.1.2 乘性同余發生器20
2.2 隨機數的理論檢驗23
2.2.1 由維數增加帶來的問題25
2.3 混合發生器26
2.4 經驗檢驗26
2.4.1 頻數檢驗27
2.4.2 序列檢驗28
2.4.3 其他經驗檢驗方法28
2.5 組合發生器29
2.6 隨機數發生器的種子29
2.7 問題30
第3章生成非均勻隨機數的一般方法33
3.1 累積分布函數的逆變換33
3.2 包圍取舍采樣法35
3.3 均勻比值采樣法39
3.4 自適應取舍采樣法43
3.5 問題47
第4章標準分布隨機數的生成53
4.1 標準正態分布53
4.1.1 BoxMüller方法53
4.1.2 改進的包圍取舍采樣法54
4.2 對數正態分布56
4.3 二元正態分布57
4.4 Gamma分布58
4.4.1 Cheng的loglogistic方法59
4.5 Beta分布60
4.5.1 Beta loglogistic方法61
4.6 χ2分布62
4.7 學生t分布63
4.8 廣義逆高斯分布64
4.9 泊松分布66
4.10 二項分布67
4.11 負二項分布68
4.12 問題68
第5章方差減少71
5.1 對偶變量71
5.2 重要采樣74
5.2.1 獨立同分布隨機變量和的超越概率77
5.3 分層采樣80
5.3.1 分層采樣的例子82
5.3.2 后分層采樣法85
5.4 控制變量88
5.5 條件蒙特卡羅方法91
5.6 問題93
第6章仿真與金融96
6.1 布朗運動96
6.2 資產價格運動98
6.3 簡單衍生品和期權的定價100
6.3.1 歐式看漲期權101
6.3.2 歐式看跌期權103
6.3.3 持續收益103
6.3.4 Delta套期保值104
6.3.5 離散套期保值104
6.4 亞式期權106
6.4.1 樸素仿真106
6.4.2 基于重要采樣和分層采樣的仿真107
6.5 一籃子期權111
6.6 隨機波動率114
6.7 問題118
第7章離散事件仿真121
7.1 泊松過程121
7.2 依時泊松過程125
7.3 平面上的泊松過程127
7.4 馬爾可夫鏈128
7.4.1 離散時間馬爾可夫鏈128
7.4.2 連續時間馬爾可夫鏈129
7.5 再生分析129
7.6 基于三段法的G/G/1排隊系統仿真131
7.7 醫院病房仿真135
7.8 問題137
第8章馬爾可夫鏈蒙特卡羅方法142
8.1 貝葉斯統計142
8.2 馬爾可夫鏈和MetropolisHastings算法143
8.3 基于獨立采樣的可靠性推斷147
8.4 逐分量MetropolisHastings采樣和Gibbs采樣149
8.4.1 多重失效率的估計151
8.4.2 捕獲再捕獲155
8.4.3最小修156
8.5 Gibbs采樣的其他方面160
8.5.1切片采樣160
8.5.2完備162
8.6問題163
第9章解答170
9.1 解答1 170
9.2 解答2 170
9.3 解答3 173
9.4 解答4 175
9.5 解答5 178
9.6 解答6 179
9.7 解答7185
9.8 解答8187
附錄1 第1章問題求解190
附錄2 隨機數發生器206
附錄3 計算接受概率208
附錄4 隨機數發生器(標準分布)212
附錄5 方差減少217
附錄6 仿真與金融226
附錄7 離散事件仿真258
附錄8 馬爾可夫鏈蒙特卡羅方法276
參考文獻300