蒙特卡羅
如何計算 Monte Calo VaR 估計誤差
我正在執行蒙特卡羅來計算風險值(具有 3 維風險因子)現在,我想計算 VaR 相對於模擬次數的估計誤差(用尊重模擬次數)
VaR 的誤差公式是什麼?
- 做 $ N $ MC模擬 $ M $ 樣本,計算每個樣本的 VaR 估計值 $ {\widehat{VaR}i}{i=1}^N $ 你現在有了一個 IID 樣本!
- 取樣本(或無偏的)標準差來估計 VaR(這可能就是你所說的錯誤) $ SD(\widehat{VaR})=\sqrt{\frac{1}{N-1} \sum_{i=1}^N (\widehat{VaR}i - \overline{VaR})^2} $ 而且當然 $ \overline{VaR}=\frac{1}{N}\sum{i=1}^N\widehat{VaR}_i $
- 增加 $ M $ 得到你的情節,情節 $ M $ 反對 $ SD(\widehat{VaR}) $ 對於每個值 $ M \in [\underline{M}, \overline{M}] $ 你可能想使用類似的東西 $ \underline{M}=50 $ 和 $ \overline{M}=1000 $ 取決於應用程序。
編輯可能還有更容易處理的事情要做,但事實上 OP 已經在蒙地卡羅世界中,這就是蒙地卡羅的答案。
編輯 2
N = 1000 M = seq(50, 1000, by=10) VaRstdevs = rep(0, length(M)) i=1 for(nscenarios in M) { varsample = rep(0, N) for(sim in 1:N) { samp = rnorm(nscenarios, 0, 0.3/sqrt(252)) # 30% annualized sd MC sim varsample[sim] = -1.0*quantile(samp, 0.05) # VaR 95% } VaRstdevs[i] = sd(varsample) i=i+1 } plot(M, VaRstdevs)
假設您對路徑的回報實現 $ i $ 是 $ r_i = \beta\cdot f_i $ , 在哪裡 $ f_i=(f_{1i}, f_{2i}, f_{3i}) $ - 因素實現,和 $ \beta $ - 因子係數。所以,你的 VaR 是 $ VaR=percentile(r_i,\alpha) $ , 在哪裡 $ \alpha $ - 信心。
最簡單的蒙地卡羅停止準則是不斷添加路徑 $ i $ 並在不斷增長的樣本上計算 VaR,直到 VaR “停止變化”。例如,您可以跟踪最後 N 路徑期間 VaR 的 MAX 變化,並等待它變得小於所需的容差。