拓端tecdat|Python用GARCH、離散隨機(jī)波動(dòng)率模型DSV模擬和估計(jì)股票收益時(shí)間序列與蒙特
原文鏈接:http://tecdat.cn/?p=25165?
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
這篇文章介紹了一類(lèi)離散隨機(jī)波動(dòng)率模型,并介紹了一些特殊情況,包括 GARCH 和 ARCH 模型。本文展示了如何模擬這些過(guò)程以及參數(shù)估計(jì)。本文為這些實(shí)驗(yàn)編寫(xiě)的 Python 代碼在文章末尾引用。
離散隨機(jī)波動(dòng)率模型
是一個(gè)隨機(jī)基,有一個(gè)完整的
?
?的可測(cè)量子集?
?, 一個(gè)概率
和一個(gè)過(guò)濾
因此,時(shí)間實(shí)例使用非負(fù)整數(shù)進(jìn)行索引?
獲取序列的第一個(gè) t元素?
, 記
.
離散隨機(jī)波動(dòng)率(? ?DSV) 模型?
?是一個(gè)實(shí)值?stochastic process?(一系列隨機(jī)變量)滿(mǎn)足以下方程:
其中:
Z 是 F 的噪聲過(guò)程。
φi 是實(shí)數(shù),我假設(shè)?
?并且 gi ,hi 是非負(fù)值。
fi 、gi 和 h_ihi 是過(guò)程的確定性函數(shù)。
過(guò)程?
?通常稱(chēng)為?偏移,而 σ 稱(chēng)為??X的波動(dòng)率。因?yàn)棣?是一個(gè)隨機(jī)過(guò)程,所以上面定義的過(guò)程 X?屬于一個(gè)隨機(jī)波動(dòng)率模型的大家族。
對(duì)于噪聲過(guò)程 Z,使得每個(gè) Z_t的均值和方差都存在,我們有?
?和?
.
案例
制定通用 DSV 模型的特化:
后移算子?
,對(duì)于?
,產(chǎn)生其參數(shù)過(guò)程的滯后版本,即?
, 和?
, 如果?
. 例如
為方便起見(jiàn),我設(shè)置?
?和?
.
對(duì)于下面列表中的所有特殊情況,我假設(shè)函數(shù) fi 、gi 和 h_i從參數(shù)過(guò)程的歷史中選擇一個(gè)元素,即?
, 和?
.
GARCH?過(guò)程定義另外設(shè)置
。
GARCH(1, 1)過(guò)程非常流行,所以讓我們明確地統(tǒng)計(jì)動(dòng)態(tài):
在?ARCH?過(guò)程中,波動(dòng)性具有簡(jiǎn)化形式,對(duì)于所有 i,λi = 0,并且?
。
ARCH(1)過(guò)程還?滿(mǎn)足?
?對(duì)所有??
:
模擬
離散隨機(jī)波動(dòng)率模型通常用于對(duì)觀察到的時(shí)間序列的對(duì)數(shù)收益進(jìn)行建模。因此,為了模擬原始時(shí)間序列的路徑,我們需要模擬其對(duì)數(shù)收益并計(jì)算?
.
由帶參數(shù)的高斯噪聲驅(qū)動(dòng)的 GARCH(1,1) 過(guò)程的樣本路徑?
:
path( [0.001, 0.2, 0.25])
cumprod* repeat.reshape
plt.subplots
注意 σ 過(guò)程為?
?不能低于?
≈0.0353
最大似然估計(jì)
最大似然(ML)參數(shù)估計(jì)是所有討論模型的選擇方法,因?yàn)檗D(zhuǎn)換密度,即給定過(guò)去信息的 X_t 的密度
是明確已知的。因此,過(guò)程樣本路徑 x?的對(duì)數(shù)似然函數(shù)由下式給出
其中
,而
?是 Z的密度。將上述對(duì)數(shù)似然函數(shù)最小化可得到?
的最大似然估計(jì)
:
.
蒙特卡羅研究
為了測(cè)試 ML 參數(shù)估計(jì)過(guò)程,我進(jìn)行了以下蒙特卡羅實(shí)驗(yàn)。
使用參數(shù) (0.001, 0.2, 0.25) 模擬長(zhǎng)度為 5000 的 2500 個(gè)獨(dú)立 GARCH(1,1) 過(guò)程路徑。我使用了高斯噪聲,即?
.
將這些路徑中的每一個(gè)都輸入到 ML 估計(jì)并獲得估計(jì)的參數(shù)向量?
.
此優(yōu)化過(guò)程中參數(shù)的搜索范圍限制為 [1e-8, 1]。
將原始
與估計(jì)的?
進(jìn)行比較。
使用參數(shù)向量
模擬 GARCH(1,1),計(jì)算均值和標(biāo)準(zhǔn)差,并將它們與“真實(shí)”均值和標(biāo)準(zhǔn)差(分別為 5.098 和 1.084)進(jìn)行比較。
正如期望的那樣,估計(jì)量?
非常不準(zhǔn)確,并且在大多數(shù)情況下,甚至不接近真實(shí)向量
。特別是,估計(jì)的
和?
通常設(shè)置為零(參見(jiàn)下面的直方圖)。
ps = [0.001, 0.2, 0.25]
cumprod * repeat
print, np.std
另一方面,來(lái)自估計(jì)的
的過(guò)程均值和標(biāo)準(zhǔn)偏差要準(zhǔn)確得多。這是一件好事,因?yàn)槲覀兺ǔ8P(guān)心恢復(fù)未知數(shù)據(jù)生成過(guò)程的特征,而不是模型的真實(shí)參數(shù)值。
mes, stvs, esms
ax[1].hist
fig.tight_layout
柯西噪音
噪聲過(guò)程 ?不必歸一化為均值 0 和方差 1。實(shí)際上,我們只需要確保隨機(jī)變量 Zt 的分布具有密度即可。如果是這種情況,過(guò)程模擬和 ML 估計(jì)都可以按照描述的方式工作。
那么如何用從柯西分布中采樣的噪聲替換高斯噪聲呢?在許多概率論書(shū)籍中,柯西分布被用作反例,因?yàn)樗哂性S多“病態(tài)”特性。例如,它沒(méi)有均值,因此也沒(méi)有方差。
我不知道柯西分布中的不穩(wěn)定樣本是什么樣子的??匆幌聨в袇?shù)向量的 GARCH(1,1) 過(guò)程的示例路徑?
:
如果使用路徑生成函數(shù)的時(shí)間足夠長(zhǎng),甚至可能會(huì)生成溢出異常。因此,我用來(lái)生成上面顯示的直方圖的 Python 函數(shù)失敗了。為了了解原因,讓我們使用來(lái)自柯西分布的樣本生成一些直方圖:
柯西分布具有分位數(shù)函數(shù)
對(duì)?
?評(píng)估?
給出
這意味著,例如,在 0.0001 的概率下,采樣值大于 3183.10。為了比較,讓我們計(jì)算標(biāo)準(zhǔn)正態(tài)分布的相應(yīng)分位數(shù):
norm.ppf(0.99)
norm.ppf(0.999)
norm.ppf(0.9999)
最受歡迎的見(jiàn)解
1.HAR-RV-J與遞歸神經(jīng)網(wǎng)絡(luò)(RNN)混合模型預(yù)測(cè)和交易大型股票指數(shù)的高頻波動(dòng)率
2.R語(yǔ)言中基于混合數(shù)據(jù)抽樣(MIDAS)回歸的HAR-RV模型預(yù)測(cè)GDP增長(zhǎng)
3.波動(dòng)率的實(shí)現(xiàn):ARCH模型與HAR-RV模型
4.R語(yǔ)言ARMA-EGARCH模型、集成預(yù)測(cè)算法對(duì)SPX實(shí)際波動(dòng)率進(jìn)行預(yù)測(cè)
5.GARCH(1,1),MA以及歷史模擬法的VaR比較
6.R語(yǔ)言多元COPULA GARCH 模型時(shí)間序列預(yù)測(cè)
7.R語(yǔ)言基于ARMA-GARCH過(guò)程的VAR擬合和預(yù)測(cè)
8.matlab預(yù)測(cè)ARMA-GARCH 條件均值和方差模型
9.R語(yǔ)言對(duì)S&P500股票指數(shù)進(jìn)行ARIMA + GARCH交易策略