Matlab馬爾可夫鏈蒙特卡羅法(MCMC)估計隨機(jī)波動率(SV,Stochastic Volatility) 模
原文鏈接:http://tecdat.cn/?p=16708
原文出處:拓端數(shù)據(jù)部落公眾號
?
波動率是一個重要的概念,在金融和交易中有許多應(yīng)用。這是期權(quán)定價的基礎(chǔ)。波動率還使您可以確定資產(chǎn)分配并計算投資組合的風(fēng)險價值(VaR)。甚至波動率本身也是一種金融工具,例如CBOE的VIX波動率指數(shù)。但是,與證券價格或利率不同,波動不能直接觀察到。
取而代之的是,它通常被衡量為來自證券或市場指數(shù)的收益或收益歷史的統(tǒng)計波動。這種類型的度量稱為已實現(xiàn)波動率或歷史波動率。衡量波動率的另一種方法是通過期權(quán)市場,在該市場中,可以使用期權(quán)價格通過某些期權(quán)定價模型來得出基礎(chǔ)證券的波動性。Black-Scholes模型是最受歡迎的模型。這種定義稱為?隱含波動性。VIX基于隱含波動率。
存在多種統(tǒng)計方法來衡量收益序列的歷史波動率。較高頻率的數(shù)據(jù)可用于計算低頻收益的波動率。例如,使用日內(nèi)收益率來計算每日波動率;使用每日收益來每周波動。人們還可以使用每日OHLC(開盤價,最高價,最低價和收盤價)來計算每日波動率。更多的學(xué)術(shù)方法包括ARCH(自回歸條件異方差),GARCH(廣義ARCH),TGARCH(閾值GARCH),EGARCH(指數(shù)GARCH)等。我們不會詳細(xì)討論每個模型及其優(yōu)缺點。相反,我們將專注于隨機(jī)波動率(SV)模型,并將其結(jié)果與其他模型進(jìn)行比較。通常,SV模型很難用回歸方法來估計。
?
EUR / USD匯率
我們將以2003-2018年EUR / USD匯率的每日收盤價為例來計算每日波動率。
ask = readtable('EURUSDdaily.csv');
t = ask.Time;
cl = ask.close;
%% 相關(guān)性檢驗
rtn = double((cl - lagmatrix
% - remove NaN
t = t(2:en ?;
n = size(rtn,1); ? ?%數(shù)據(jù)量
figure('position',

?
圖1. EUR / USD的每日匯率 和每日對數(shù)收益率。
圖2顯示沒有證據(jù)表明收益率存在序列相關(guān)性。最多30個之后的收益的自相關(guān)函數(shù)(ACF)和偏自相關(guān)函數(shù)(PACF)無相關(guān)性。收益率的Ljung-Box Q檢驗也未顯示明顯的自相關(guān)。
% 序列相關(guān)性檢驗
figure('position',[355
figure('position',[355
ylabel('Return^2');

圖2.收益相關(guān)性檢驗。Ljung-Box Q檢驗(左下方)未顯示出明顯的自相關(guān)。自相關(guān)函數(shù)(右上)和偏自相關(guān)函數(shù)(右下)(紅色虛線為95%置信區(qū)間),表示沒有相關(guān)性。
但是,我們可以確定具有較大絕對收益的周期的群集。因此,絕對收益率值具有明顯的序列相關(guān)性。這在圖3的收益平方分析中得到了證實,其中ACF和PACF均顯著,并且Ljung-Box Q檢驗也強(qiáng)烈表明了序列自相關(guān)。這種相關(guān)性是由集群的波動性引起的,也就是說,波動率在某些時期(例如,2008年的金融危機(jī))較高,而在其他時期則較低。

圖3.收益率平方的相關(guān)檢驗。
GARCH(廣義自回歸條件異方差)模型
我們首先使用經(jīng)典GARCH(1,1)模型對收益序列進(jìn)行建模

可以使用Matlab來估算GARCH(1,1)模型。圖4和5中的ACF,PACF和Ljung-Box Q檢驗未顯示出殘差中的顯著序列相關(guān)性,圖4左上方的殘差項比原始收益序列更像白噪聲。然后可以認(rèn)為GARCH(1,1)模型足以描述收益率的波動性(圖6)。
% 序列殘差相關(guān)性檢驗
figure('position',[355 ? 320 ? 800 ? 400]);
plotcorrstat(t,res,30,1:30)
%% 繪制波動率
figure('position',[355 ? 320 ? 800 ? 200]);
plot(t,V
ylabel('GARCH Volatility h_t');
?

圖4. GARCH(1,1)模型殘差的相關(guān)性檢驗。

圖5.對GARCH(1,1)模型的殘差平方的相關(guān)性檢驗。

圖6. GARCH(1,1)模型的波動率。
馬爾可夫鏈蒙特卡洛(MCMC)
MCMC由兩部分組成。在?蒙特卡洛?部分是如何從一個給定的概率分布得出的隨機(jī)樣本,馬爾可夫鏈?部分的目標(biāo)是產(chǎn)生一個穩(wěn)定的隨機(jī)過程,稱為馬爾可夫過程。馬爾可夫過程具有以下特征:隨機(jī)過程的下一步驟的狀態(tài)僅取決于當(dāng)前步驟的狀態(tài)。這種依賴性不是確定性的。取而代之的是,由當(dāng)前概率到下一步的轉(zhuǎn)移由平穩(wěn)概率分布來描述。?

MCMC已被廣泛用于解決物理和財務(wù)問題。
隨機(jī)波動率(SV)模型
從1990年代初開始就隨機(jī)波動率建模,自1994年Jacquier,Polson和Rossi的論文首次為隨機(jī)波動率提供清晰證據(jù)以來,該模型就開始應(yīng)用。根據(jù)他們的開創(chuàng)性論文,我們編寫了SV模型,

?
MCMC診斷
根據(jù)問題和設(shè)置,MCMC在序列接近目標(biāo)分布之前可能需要進(jìn)行多次迭代。如圖7所示??beta快速達(dá)到穩(wěn)定狀態(tài)。穩(wěn)定性之前的這些迭代稱為“預(yù)燒期”。我們運行10000次迭代。
?

?
圖7.參數(shù)的迭代。
在MCMC過程中抽取樣本意味著連續(xù)樣本之間可能存在相關(guān)性。為了評估序列中有多少相關(guān),我們繪制了每個參數(shù)在不同滯后的樣本自相關(guān)函數(shù)(圖8)。具有高度相關(guān)性的馬爾可夫鏈在參數(shù)空間中緩慢移動,并需要更多的迭代和更長的計算時間才能以接近目標(biāo)分布的概率訪問參數(shù)空間中的不同區(qū)域。因此,給定固定的迭代總數(shù)?,具有高相關(guān)性的馬爾可夫鏈的獨立樣本的總數(shù)小于具有低相關(guān)性的馬爾可夫鏈的獨立樣本的總數(shù)?。
我們可以通過計算?有效樣本量?(ESS)表示單個馬爾可夫鏈的參數(shù)。了解ESS后,我們可以估算?MCMC方差,它衡量MCMC接近目標(biāo)分布的精確度。顯然,需要低MCMC方差。
可以為單個參數(shù)計算ESS。但是,考慮到參數(shù)之間的潛在互相關(guān)性(我們將在下面的聯(lián)合分布圖中看到),我們計算了多元ESS,發(fā)現(xiàn)在6000個樣本中大約有517個。這些小的標(biāo)準(zhǔn)誤差表明,我們的單個MCMC序列中的樣本很好地代表了參數(shù)的目標(biāo)聯(lián)合分布。在ESS值較小(通常<100)的情況下,要么必須調(diào)整分布的參數(shù)以減少自相關(guān),要么必須簡單地生成更多樣本(以計算時間為代價)。
可以采用用于Metropolis-Hastings算法的更復(fù)雜的提議方法來減少序列中的相關(guān)性,例如漢密爾頓式MCMC。

圖8.預(yù)燒期后參數(shù)序列的自相關(guān)。紅線表示5%的顯著性水平。
結(jié)果和討論
去除burin-in后,我們獲得了參數(shù)樣本的集合,這些樣本可以從參數(shù)的真實高維聯(lián)合分布中近似隨機(jī)抽取的樣本。然后,我們可以對這些參數(shù)進(jìn)行統(tǒng)計推斷。例如,成對參數(shù)的聯(lián)合分布和每個參數(shù)的邊緣分布如圖9所示。
使用聯(lián)合后驗分布證明采樣是合理的。但是,為不同的先驗分布的變量計算出接近形式的后驗分布將很麻煩。在這種情況下,Metropolis-Hastings采樣方法有優(yōu)勢。

?
圖9.配對參數(shù)的聯(lián)合分布的散點圖和參數(shù)的邊緣分布(對角線面板)的直方圖。
從邊緣分布,我們可以估計參數(shù)的均值和標(biāo)準(zhǔn)誤
?betaalpha1alpha2sigma均值0.004-0.0530.9570.044標(biāo)準(zhǔn)誤0.0080.0080.0060.004
隨機(jī)波動率及其置信區(qū)間是通過在序列變得穩(wěn)定之后計算采樣波動率的平均值,2.5%和97.5%的分位數(shù)來獲得的。繪制在圖10中。

圖10. 4000次測試后隨機(jī)波動率的后驗均值。隨機(jī)波動率的95%的分位數(shù)之間用紅色表示置信區(qū)間。
SV模型的隨機(jī)波動總體上與GARCH模型非常相似,但參差不齊。這是自然的,因為SV模型中假設(shè)了額外的隨機(jī)項。與其他模型相比,使用隨機(jī)波動率模型的主要優(yōu)點是,波動率被建模為隨機(jī)過程而不是確定性過程。這使我們可以獲得序列中每次的波動率的近似分布。當(dāng)應(yīng)用于波動率預(yù)測時,隨機(jī)模型可以為預(yù)測提供置信度。另一方面,缺點也很明顯。計算成本相對較高。

最受歡迎的見解
1.HAR-RV-J與遞歸神經(jīng)網(wǎng)絡(luò)(RNN)混合模型預(yù)測和交易大型股票指數(shù)的高頻波動率
2.WinBUGS對多元隨機(jī)波動率模型:貝葉斯估計與模型比較
3.波動率的實現(xiàn):ARCH模型與HAR-RV模型
4.R語言ARMA-EGARCH模型、集成預(yù)測算法對SPX實際波動率進(jìn)行預(yù)測
5.使用R語言隨機(jī)波動模型SV處理時間序列中的隨機(jī)波動率
6.R語言多元COPULA GARCH 模型時間序列預(yù)測
7.R語言基于ARMA-GARCH過程的VAR擬合和預(yù)測
8.R語言隨機(jī)搜索變量選擇SSVS估計貝葉斯向量自回歸(BVAR)模型
9.R語言對S&P500股票指數(shù)進(jìn)行ARIMA + GARCH交易策略