MATLAB隨機波動率SV、GARCH用MCMC馬爾可夫鏈蒙特卡羅方法分析匯率|附代碼數據

2023-01-11     tecdat拓端

原標題:MATLAB隨機波動率SV、GARCH用MCMC馬爾可夫鏈蒙特卡羅方法分析匯率|附代碼數據

全文下載連結:http://tecdat.cn/?p=27340

最近我們被客戶要求撰寫關於匯率時間序列的研究報告,包括一些圖形和統計輸出。

波動率是一個重要的概念,在金融和交易中有許多應用。它是期權定價的基礎。波動率還可以讓您確定資產配置並計算投資組合的風險價值 (VaR)

甚至波動率本身也是一種金融工具,例如 CBOE 的 VIX 波動率指數。然而,與證券價格或利率不同,波動性無法直接觀察到。相反,它通常被衡量為證券或市場指數的收益率歷史的統計波動。這種類型的度量稱為已實現波動率或歷史波動率。衡量波動性的另一種方法是通過期權市場,其中期權價格可用於通過某些期權定價模型得出標的證券的波動性。Black-Scholes 模型是最受歡迎的模型。這種類型的定義稱為 隱含波動率。VIX 基於隱含波動率。

相關視頻

拓端

,贊19

拓端

,贊13

拓端

,贊26

存在多種統計方法來衡量收益序列的歷史波動率。高頻數據可用於計算低頻收益的波動性。例如,使用日內收益來計算每日波動率;使用每日收益來計算每周波動率。還可以使用每日 OHLC(開盤價、最高價、最低價和收盤價)來計算每日波動率。比較學術的方法有ARCH(自回歸條件異方差)、GARCH(廣義ARCH)、TGARCH(閾值GARCH)、EGARCH(指數GARCH)等。我們不會詳細討論每個模型及其優缺點。相反,我們將關注隨機波動率 (SV) 模型,並將其結果與其他模型進行比較。一般來說,SV 模型很難用回歸方法來估計,正如我們將在本文中看到的那樣。

歐元/美元匯率

我們將以 2003-2018 年 EUR/USD 匯率的每日詢價為例來計算每日波動率。

subplot(2,1,1);plot(ta,csl)subplot(2,1,2);plot(at,rtdan);

圖 1. 頂部:歐元/美元的每日匯率(要價)。底部:每日對數收益率百分比。

圖 2 顯示收益率中沒有序列相關性的依據。

[sdd,slodgdL,infaso] = estimaadte(Mddsdl,rtasd);[aEass,Vad,lsagLd] = infer(EstMsssddl,rtsdn);[hsd,pValasdue,dstat,ascValue] = lbqtest(reas,'lags',12)[hs,pdValsue,sdtatsd,cVsalue] = lbqtest(resss.^2,'lags',12)

圖 2. 收益率相關性檢驗。Ljung-Box Q 檢驗(左下)沒有顯示顯著的序列自相關作為收益率。

然而,我們可以很容易地識別出絕對收益率值較大的時期集群(無論收益率的符號如何)。因此,絕對收益值存在明顯的序列相關性。

圖 3. 回歸平方的相關性檢驗。

點擊標題查閱往期內容

R語言用多元ARMA,GARCH ,EWMA, ETS,隨機波動率SV模型對金融時間序列數據建模

左右滑動查看更多

01

02

03

04

GARCH(廣義自回歸條件異方差)模型

GARCH(1,1) 模型可以用 Matlab 的計量經濟學工具箱進行估計。圖 4 和圖 5 中的 ACF、PACF 和 Ljung-Box Q 檢驗未顯示殘差及其平方值的顯著序列相關性。圖 4 左上圖中的殘差項在視覺上更像白噪聲,而不是原始收益序列。

Mdls.dsVadjnce = garc(1,1);

[EsastMdl,EssddkjParamsCovf,lsdoggL,isdjngfo] = estimate(Msddl,rstan);

[Egf,hgV,logfgL] = inffgher(EstsdMdl,arstn);

gfh= Egh./sqrt(Vf);

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

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

plot(at,dad)set(gsdcaa);set(gasdca);ylabel('GARCH Volatility h_t');

圖 6. GARCH(1,1) 模型的波動率。

馬爾可夫鏈蒙特卡羅 (MCMC)

MCMC 由兩部分組成。_ 蒙特卡洛_ 部分處理如何從給定的機率分布中抽取隨機樣本。馬爾可夫 鏈 部分旨在生成一個穩定的隨機過程,稱為馬爾可夫過程,以便通過蒙特卡羅方法順序抽取的樣本接近從「真實」機率分布中抽取的樣本。

然後我們可以疊代地使用 Gibbs 採樣 _方法來產生一系列參數。經常被丟棄,因為它除了使分布正常化之外什麼都不做。後驗分布是不完整的。_Metropolis 採樣 方法和更通用的方法 Metropolis _-Hastings 採樣_用於此場景。這兩種採樣方法更常用於難以制定完整條件後驗分布的非共軛先驗分布。

% --- MCMCnmascmfgac = 10000;

bechvzta_mcmc = nan(nmc;dmc,1);

loxvgh_mcmc = nan(an,nmcjkldsmc);

alpha_mcmc = nan(nmcmssdc,length(alspdha0));

Sigmacvv_mcmc = nan(nmytsdcmc,1);

% --- 吉布斯抽樣:beta rtnas_new = rtn./sqdssrt(exp(logshis)); % 重新格式化收益系列 x = 1./sqrt(exp(lsogshisd));

V_gfbeta = 1/(x'*x + 1/Sigsgfma_bdeta0);g

E_bgexta = V_bfgetfga*(beta0/Sifgma_beta0+gdfxf'*rtndf_new);

betxa = cnormrnd(E_beta,sqrt(fgV_bfdfgeta));

% --- Metropolis 抽樣:ht loghn1 = alphjklai(1)+alphai(2)*(alphai(1)+alphai(2)*loghi(n-1));

loghf1 = [loghi(2:end); loghn1];前進一步 ht 的 % log loghb1 = [logh0;羅吉(1:end-1)];後退一步 ht 的 % log % - 提出新的 ht lojkghp = normrnd(lohghjkli,sijlgma_jlogjhp);

% - 檢查後驗機率的對數比率 logr = log(normpdf(loghp, [ones(n,1),loghb1]*alphai',sqrt(Sigmavi))) + ...

% --- 吉布斯抽樣 alpha zasdt = [ones(n-1,1),lokkghi(1:end-1)];

V_alpghas = inv( inv(Sigjkmahjg_alpjha0) + zt'*zt/Si;gmavkl;i);

E_aldfhpha = V_alpha*(inv(Sigmjhja_abvnl;'lpha0)*akllpha0' + zt'*loghi(2:end)/Smavi);

alvbphai =v mvnrnd(E_vbal,npnha,V_bnm,bvalpha);

% --- 吉布斯抽樣:Sigfmav SfSR = sum((logfgjhi(2:ehgjnd)-zt*alphaighj').^2);

% 通過 OLS 獲取 SSR 的替代方法 Sigjhavi = 1/randolhkm('Gamma',(nu0+n-1)/2,2/(nu0*Sigmavl;'k0+SSR));

隨機波動率 (SV) 模型

對波動率進行隨機建模始於 1980 年代初,並在 Jacquier、Polson 和 Rossi 的論文在 1994 年首次提供了隨機波動率的明確證據後開始適用。波動率創新是 SV 和 GARCH 模型之間的主要區別。在 GARCH 模型中,時變波動率遵循確定性過程(波動率方程中沒有隨機項),而在 SV 模型中它是隨機的。

%% MCMC 用於隨機波動率

% --- 先驗參數

Sigwertma_aelpha0 = etdiagweetwr([0.4,0.4]); % 協方差

% - 對於 sigrmea^2_v

nu0 = 1;

Sigemav0 = 0.01;

% --- 使用 GARCH(1,1) 模型的初始值,以及 log(ht0) 的最小二乘擬合

bewtwai = EstMtydl.rtyConrtystatynt;

MrgeyDL = etyrffitytlm();

alpefdgrtyhai = Mdl.Cvxoertyefficients{:,1}';

Sigretyrxmavi = nanvar(Mderyl.Reyefsidrdtyeruals.Raw);

然而,要獲得機率分布的近似形式的歸一化因子並不簡單。我們可以使用暴力計算來為每個可能的值生成一個機率網格,然後從網格中繪製。這稱為 Griddy Gibbs 方法。或者,我們可以使用 Metropolis 算法。在該算法中,要從中提取的提議分布可以是任何對稱分布函數。提議分布函數也可以是不對稱的。但在這種情況下,在計算從 跳到 的機率比率時,需要包含附加項以平衡這種不對稱性。這稱為 Metropolis-Hastings 算法。

可以使用 Metropolis-Hastings 算法的更複雜的提議方法來減少序列中的相關性,例如 Hamiltonian MCMC。

subplot(4,1,1);plot(beasdta_mcmc);

圖 8. 預燒burin-in後參數序列的自相關。紅線表示 5% 的顯著性水平。

結果與討論

去除burin-in後,我們從參數的真實高維聯合分布中得到可以近似隨機抽取的樣本的參數樣本集合。然後我們可以對這些參數進行統計推斷。例如,成對參數的聯合分布和每個參數的邊際分布如圖 9 所示。我們可以用聯合分布來測試這個說法。顯然與其餘參數不相關。正如預期的那樣,並且高度相關,使用它們的聯合後驗分布來證明採樣的合理性。為了提高採樣效率,降低序列中樣本的相關性,我們可以通過採樣改進上述算法,並從它們的三元聯合後驗分布。然而,如果不是完全不可能的話,為不同先驗分布的變量計算出一個緊密形式的後驗分布是很麻煩的。在這種情況下,Metropolis-Hastings 抽樣方法肯定會發現它的優勢。

圖 9. 成對參數聯合分布的散點圖(非對角面板)和參數邊緣分布的直方圖(對角面板)。

隨機波動率及其置信帶是通過計算序列穩定後採樣波動率的均值和 2.5% 和 97.5% 分位數得到的。它繪製在圖 10 中。

h_mcmc = exp(logf_mdsmc);nbudrin = 4000;lb = quanile(h_mcd,bunn+1:end),0.025,2); % 2.5% 分位數ub = quatgjeh_mcmc(nburhjkin+1:end)fhjk,0.975,2); % 97.5% 分位數holdghfd on; box on;plot(1:lengtgdhfh(t),V,'',dhfg1)plot(1:length(t),mdfghean(h_mcmc(:,nburnhgdf:enddgfh2),'linekljwdth',1)s

圖 10. 4000 次burin-in疊代後隨機波動率的後驗平均值。對於置信帶,隨機波動率的 95% 分位數間以紅色顯示。

SV 模型的隨機波動性總體上與 GARCH 模型非常相似,但更加參差不齊。這是很自然的,因為 SV 模型中假設了額外的隨機項。與其他模型相比,使用隨機波動率模型的主要優點是波動率被建模為隨機過程而不是確定性過程。這使我們能夠獲得序列中每個時間的波動率的近似分布。當應用于波動率預測時,隨機模型可以為預測提供置信度。另一方面,不利因素也很明顯。計算成本相對較高。

點擊文末 「閱讀原文」

獲取全文完整資料。

本文選自《MATLAB隨機波動率SV、GARCH用MCMC馬爾可夫鏈蒙特卡羅方法分析匯率時間序列》。

點擊標題查閱往期內容

R語言隱馬爾可夫模型HMM連續序列重要性重抽樣CSIR估計隨機波動率模型SV分析股票收益率時間序列

馬爾可夫Markov區制轉移模型分析基金利率

馬爾可夫區制轉移模型Markov regime switching

時變馬爾可夫區制轉換MRS自回歸模型分析經濟時間序列

馬爾可夫轉換模型研究交通傷亡人數事故時間序列預測

如何實現馬爾可夫鏈蒙特卡羅MCMC模型、Metropolis算法?

Matlab用BUGS馬爾可夫區制轉換Markov switching隨機波動率模型、序列蒙特卡羅SMC、M H採樣分析時間序列

R語言BUGS序列蒙特卡羅SMC、馬爾可夫轉換隨機波動率SV模型、粒子濾波、Metropolis Hasting採樣時間序列分析

matlab用馬爾可夫鏈蒙特卡羅 (MCMC) 的Logistic邏輯回歸模型分析汽車實驗數據

stata馬爾可夫Markov區制轉移模型分析基金利率

PYTHON用時變馬爾可夫區制轉換(MRS)自回歸模型分析經濟時間序列

R語言使用馬爾可夫鏈對營銷中的渠道歸因建模

matlab實現MCMC的馬爾可夫轉換ARMA - GARCH模型估計

R語言隱馬爾可夫模型HMM識別不斷變化的股票市場條件

R語言中的隱馬爾可夫HMM模型實例

用機器學習識別不斷變化的股市狀況—隱馬爾科夫模型(HMM)

Matlab馬爾可夫鏈蒙特卡羅法(MCMC)估計隨機波動率(SV,Stochastic Volatility) 模型

MATLAB中的馬爾可夫區制轉移(Markov regime switching)模型

Matlab馬爾可夫區制轉換動態回歸模型估計GDP增長率

R語言馬爾可夫區制轉移模型Markov regime switching

stata馬爾可夫Markov區制轉移模型分析基金利率

R語言如何做馬爾可夫轉換模型markov switching model

R語言隱馬爾可夫模型HMM識別股市變化分析報告

R語言中實現馬爾可夫鏈蒙特卡羅MCMC模型

文章來源: https://twgreatdaily.com/173a575a5a7f4cd627eaa8473153ce46.html