相似文件
换一批
经管之家送您一份
应届毕业生专属福利!
求职就业群
感谢您参与论坛问题回答
经管之家送您两个论坛币!
+2 论坛币
本章旨在说明,如何进行具相关性的多资产随机过程的模拟。这其中需要一些线性代数的计算,为了简化数学的说明,我们打算利用R的内建函数来执行线性代数的计算。其实,这当然不是必要的,很多C#的链接库都有提供这些功能。以我们打算在后面介绍的QuantLibC#链接库而言,它几乎提供所有金融工程中所需的数学函数。但是,使用R也有附带的好处,他也可以成为我们验证计算的工具。此为,R所提供的绘图功能,也是一项额外的好处。
第一节 资产与相关性 一些复杂的金融商品,其偿付条件可能牵涉到的资产价格不只一个,因此,我们仿真之标的变量,可能不只一个,而且变量之间有相关性。令两资产分别为
.....................................................................................................(3.1.1)若两变数报酬率之相关性为
,则我们可以先产生两个独立常态分配随机数,
与
。
我们可以使用下面的线性组合产生
与
,
........................................................................................(3.1.2) 矩阵表示为,
................................................................................(3.1.3) 我们可以发现,此系数矩阵为一下三角矩阵,
,
...............................................................................................(3.1.4) 如果我们转置此矩阵,得到
,将两者相乘,得到这两资产的相关性矩阵,
。
当资产数目为n时,我们可以先求得n资产的相关性矩阵,,然后将相关性矩阵透过线性代数的Cholesky分解,找出。
................................................................(3.1.5) 再由与n个独立的常态分配随机数,
,便可产生n个相关性矩阵为的常态分配随机数
。
.................................................................................................(3.1.6)
第三节 R的Cholesky函数
在多资产的模拟中,我们需要将相关性矩阵进行Cholesky分解。形成下三角与上三角矩阵的乘积。以一个2╳2的相相关性矩阵为例。M可分解成L与U的乘积。
...........................................................(3.3.1) #006
#007 > M <- matrix(c(1.0, 0.8, 0.8,1.0), nrow = 2, ncol = 2, byrow = TRUE)
#008 > U <- chol(M)
#009 > U
#010 [,1] [,2]
#011 [1,] 1 0.8
#012 [2,] 0 0.6
#013 > L <- t(U)
#014 > L
#015 [,1] [,2]
#016 [1,] 1.0 0.0
#017 [2,] 0.8 0.6
#018 > A = L %*% U
#019 > A
#020 [,1] [,2]
#021 [1,] 1.0 0.8
#022 [2,] 0.8 1.0
#023 >程序行表3.1
程序行表3.1示范了R语言的Cholesky分解函数,#007使用matrix()函数建立M矩阵;先以c()函数建立一维向量,内含四个分量,当作传入数据;然后,说明M矩阵为两列,两行的矩阵,并以列优先的方式,读取c()函数建立的一维向量。#008使用chol()函数执行Cholesky分解,将上三角矩阵传出给U矩阵。#013使用t()函数进行U矩阵的转置,将下三角矩阵传出给L矩阵。#018以L %*% U进行矩阵相乘,结果传给A。如果想知道每个变量的内容,只要在提示符号后输入变量的名称,按Enter就可看到结果。如#009输入U按Enter,便可看到2╳2的上三角矩阵。
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
|