蒙特卡罗模拟与信用风险分析
1. 蒙特卡罗模拟
蒙特卡罗模拟在解决各类金融相关问题时,需要生成一组随机数。当对精度要求极高时,就必须生成大量这样的随机数。例如,在为期权定价时,我们会采用极小的时间间隔或大量的步骤来提高解决方案的准确性。因此,蒙特卡罗模拟的效率在计算时间和成本方面就成为了一个至关重要的问题,尤其是在需要为数千个期权定价的情况下。
提高效率的方法主要有两种:
- 优化算法 :即优化我们的代码。
- 使用特殊随机数 :使用分布更均匀的特殊类型随机数,这被称为准蒙特卡罗模拟,索博尔序列就是一个典型的例子。索博尔序列属于低差异序列,它满足随机数的特性,但分布更为均匀。
以下是使用Python生成普通均匀分布随机数并绘制散点图的代码:
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(12345)
n = 200
a = np.random.uniform(size=(n * 2))
plt.scatter(a[:n], a[n:])
plt.show()
而使用索博尔序列生成随机数并绘制散点图的代码如下:
import sobol_seq
import scipy as sp
import matplotlib.pyplot as plt
a = []
n = 100
for i in sp.ara
超级会员免费看
订阅专栏 解锁全文
2278

被折叠的 条评论
为什么被折叠?



