我試圖從我的模擬數據計算各種投資組合的cVaR(風險條件值)水平。Matlab計算for-loop中分佈分位數的平均值
我可以是一個單件組合使用下面的代碼做:
% Without a for-loop for series 1
test2 = test(:,1)
VaR_Calib_EVT = 100 * quantile(test2, VarLevel_Calib);
help1 = sum(test2(:) <VaR_Calib_EVT/100);
cVaR_Calib_EVT = sum(test2(test2 <VaR_Calib_EVT/100)/help1);
然而,把一個for循環左右(見下面的代碼)時,在cVaR_Calib_EVT的輸出值,除了錯誤單元格(1,1)中的值。
VarLevel_Calib = 0.05;
test = trnd(3,780,16);
nIndices = 16;
for i=1:nIndices
VaR_Calib_EVT (:,i) = 100 * quantile(test(:,i), VarLevel_Calib);
help1 (:,i) = sum(test(:,i)<(VaR_Calib_EVT(:,i)/100));
cVaR_Calib_EVT (:,i) = sum(test(test(:,i) <VaR_Calib_EVT(:,i)/100)/help1(:,i));
end
我在做什麼錯?
最佳, 卡羅琳
你是什麼意思「正確執行」?請更具體地說明你的輸出有什麼問題,你檢查了什麼,等等。 – Ratbert
嗨,雷伯特,謝謝你的幫助。我已經調整了我的問題,希望現在更有意義。 – Carolin
再一次地,您能否在句子「... cVaR_Calib_EVT中的輸出值是錯誤的,除了...」之外解釋「錯誤」的含義?你必須明白,我們不知道你想要做什麼以及你期望的結果。對我來說,你的代碼非常好,因爲它沒有錯誤。 – Ratbert