蒙特卡羅
蒙地卡羅 - 收益的多元模擬
我正在 R 中實施蒙地卡羅模擬以生成多元相關回報。為此,我使用了 Cholesky 分解,應用於共變異數矩陣。但是,我看到 Cholesky 分解也可以應用於相關矩陣。哪種方法合適?
您應該將其應用於共變異數矩陣並從中計算相關矩陣。這是一個關聯 3 個隨機正態變數的範例。
讓:
$$ \bf Y \sim \mathcal N(0, \Sigma) $$ 在哪裡 $ \textbf{Y} = (Y_1,\dots,Y_n) $ 是正態隨機變數的向量,並且 $ \Sigma $ 給定的共變異數矩陣。
過程是:
- 模擬不相關的高斯隨機變數向量, $ \bf Z $
- 然後求平方根 $ \Sigma $ ,即一個矩陣 $ \bf C $ 這樣 $ \bf C \bf C^\intercal = \Sigma $ .
然後目標向量由下式給出
$$ \bf Y = \bf C \bf Z. $$ 這是一個虛擬的matlab程式碼:
N = 500000 u_1 = normrnd(zeros(N,1),1); u_2 = normrnd(zeros(N,1),1); u_3 = normrnd(zeros(N,1),1); u_4 = normrnd(zeros(N,1),1); rv = [u_1 '; u_2'; u_3'; u_4']; VarCov = [Some positive semi-definite matrix here 4x4]; ch = chol(VarCov); result = ch * rv;
然後只需將結果矩陣的每個條目除以標準差的乘積即可得到相關矩陣。