拓端tecdat|Python隨機波動率(SV)模型對標普500指數(shù)時間序列波動性預測
原文鏈接:http://tecdat.cn/?p=22546?
原文出處:拓端數(shù)據(jù)部落公眾號
資產(chǎn)價格具有隨時間變化的波動性(逐日收益率的方差)。在某些時期,收益率是高度變化的,而在其他時期則非常平穩(wěn)。隨機波動率模型用一個潛在的波動率變量來模擬這種情況,該變量被建模為隨機過程。下面的模型與 No-U-Turn Sampler 論文中描述的模型相似,Hoffman (2011) p21。

這里,r是每日收益率序列,s是潛在的對數(shù)波動率過程。
建立模型
首先,我們加載標普500指數(shù)的每日收益率。
returns = (pm.get_data("SP500.csv"))
returns[:5]

正如你所看到的,波動性似乎隨著時間的推移有很大的變化,但集中在某些時間段。在2500-3000個時間點附近,你可以看到2009年的金融風暴。
ax.plot(returns)

指定模型。
GaussianRandomWalk('s', hape=len(returns))
nu = Exponential( ?.1)
r = StudentT( ?pm.math.exp(-2*s),
obs=returns)
擬合模型
對于這個模型,最大后驗(Maximum?A?Posteriori,MAP)概率估計具有無限的密度。然而,NUTS給出了正確的后驗。
pm.sample(tune=2000
Auto-assigning NUTS sampler...

?

plot(trace['s']);

觀察一段時間內(nèi)的收益率,并疊加估計的標準差,我們可以看到該模型是如何擬合一段時間內(nèi)的波動率的。
plot(returns)
plot(exp(trace[s]);

np.exp(trace[s])

參考文獻
Hoffman & Gelman. (2011).?The No-U-Turn Sampler: Adaptively Setting Path Lengths in Hamiltonian Monte Carlo.

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