乐趣区

关于数据挖掘:R语言ARIMAGARCH波动率模型预测股票市场苹果公司日收益率时间序列附代码数据

原文链接:http://tecdat.cn/?p=23934

最近咱们被客户要求撰写对于 ARIMA-GARCH 的钻研报告,包含一些图形和统计输入。

在本文中,咱们将尝试为苹果公司的日收益率寻找一个适合的 GARCH 模型

稳定率建模须要两个次要步骤。

  • 指定一个均值方程(例如 ARMA,AR,MA,ARIMA 等)。
  • 建设一个稳定率方程(例如 GARCH, ARCH,这些方程是由 Robert Engle 首先开发的)。

要做 (1),你须要利用驰名的 Box-Jenkins 办法,它包含三个次要步骤。

  • 辨认
  • 估算
  • 诊断查看

这三个步骤有时会有不同的名称,这取决于你读的是谁的书。在本文中,我将更多地关注(2)。

我将应用一个名为 quantmod 的软件包,它代表量化金融建模框架。这容许你在 R 中间接从各种在线资源中抓取金融数据。

#install.packages("quantmod") - 须要先装置该软件包

getSymbols(Symbols = "AAPL",
           src="yahoo", #其余起源包含:谷歌、FRED 等。

收益通常有一个非常简单的平均数方程,这导致了简略的残差。

咱们首先要测试序列依赖性,这是条件异方差的一个指标(序列依赖性与序列相干不同)。这是通过对原始序列的平方 / 绝对值进行测试,并应用 Ljung 和 Box(1978)的 Ljung-Box 测试等联结假如进行测试,这是一个 Portmentau 测验,正式测验间断自相干,直到预约的滞后数,如下所示。

其中 T 是总的周期数,m 是你要测试的序列相干的滞后期数,ρ2k 是滞后期 k 的相关性,Q∗(m)∼χ2α 有 m 个自由度。

查看

上面是 AAPL 对数收益工夫序列及其 ACF,这里咱们要寻找显著的滞后期(也能够运行 pacf)或存在序列自相干。

通过观察 ACF,程度序列(对数收益)并不是真正的自相干,但当初让咱们看一下平方序列来查看序列依赖性。


点击题目查阅往期相干内容

R 语言用多元 ARMA,GARCH ,EWMA, ETS, 随机稳定率 SV 模型对金融工夫序列数据建模

左右滑动查看更多

01

02

03

04

咱们能够看到,平方序列的 ACF 显示出显著的滞后。这是一个信号,阐明咱们应该在某个时候测试 ARCH 效应。

平稳性

咱们能够看到,AAPL 的对数回报在某种程度上是一个安稳的过程,所以咱们将应用 Augmented Dicky-Fuller 测验(ADF)来正式测验平稳性。ADF 是一个宽泛应用的单位根测验,即平稳性。咱们将应用 12 个滞后期,因为依据文献的倡议,咱们有每日数据。何:存在单位根(系列是非安稳的

## 
## Title:
##  Augmented Dickey-Fuller Test
## 
## Test Results:
##   PARAMETER:
##     Lag Order: 12
##   STATISTIC:
##     Dickey-Fuller: -14.6203
##   P VALUE:
##     0.01 
## 
## Description:
##  Mon May 25 16:45:37 2020 by user: Florian

下面的 P 值为 0.01,表明咱们应该回绝 Ho,因而,该系列是安稳的。

构造渐变_测验_

请留神,我从 2008 年底开始钻研 APPL 序列。以防止 08 年大消退,通常会在数据中产生结构性渐变(即趋势的重大降落 / 跳跃)。咱们将对结构性渐变 / 变动进行 Chow 测试。AAPL 的日收益率没有结构性渐变

该图显示,用于预计断点(BP)数量的 BIC(黑线)是 BIC 线的最小值,所以咱们能够确认没有结构性断点,因为最小值是零,即零断点。在预测工夫序列时,断点十分重要。

预计

在这一节中,咱们试图用 auto.arima 命令来拟合最佳 arima 模型,容许一个季节性差别和一个程度差别。

正如咱们所知,{Yt} 的个别 ARIMA(p,d,q)。

依据 auto.arima,最佳模型是 ARIMA(3,0,2),平均数为非零,AIC 为 -14781.55。咱们的均匀方程如下(括号内为 SE)。

Auto.arima 函数挑选出具备最低 AIC 的 ARIMA(p,d,q),其中。

其中 Λθ 是察看到的数据在参数的 mle 的概率。因而,如果 Auto.arima 函数运行 N 模型,其决策规定为 AIC∗=min{AICi}Ni=1

诊断查看

咱们能够看到,咱们的 ARIMA(3,0,2) 的残差是良好的体现。它们仿佛也有肯定的正态分布

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(3,0,2) with non-zero mean
## Q* = 6.7928, df = 4, p-value = 0.1473
## 
## Model df: 6.   Total lags used: 10

当初咱们将通过对咱们的 ARIMA(3,0,2) 模型的平方残差利用 Ljung-Box 测试来测验 ARCH 效应。

## 
##  Box-Ljung test
## 
## data:  resid^2
## X-squared = 126.6, df = 12, p-value < 2.2e-16

咱们能够看到,残差平方的 ACF 显示出许多显著的滞后期,因而咱们得出结论,的确存在 ARCH 效应,咱们应该对稳定率进行建模。

应用 GARCH 建设稳定率模型

下面将咱们的平均数方程中的残差进行了平方,看看大的冲击是否紧随在其余大的冲击之后(无论哪个方向,即负的或正的),如果是这样,那么咱们就有条件异方差,意味着咱们有须要建模的非恒定方差。上面是一个 GARCH(m,s) 的样子。

其中 {ϵ2t}mt= 1 是咱们通常的特异性冲击,iid 随机变量,即 ϵ2t∼WN(0,σ2ϵ)。咱们能够更紧凑地写成:

其中 B 是规范的后移算子 Biϵ2t=ϵ2t-i,Biσ2t=σ2t-i。对于任何整数 ii,以及 α 和 β 别离是度数为 m 和 s 的多项式

请留神,一个非凡状况是当 s = 0 时,GARCH(m,0) 被称为 ARCH(m)。

当我说 GARCH 家族时,它表明模型有变动。

  • SGARCH。一般 GARCH
  • EGARCH。指数 GARCH,容许稳定率不为负值(这迫使模型只输入正方差
  • FGARCH。这是为长记忆模型筹备的。它应用了被称为 ARFIMA 的 Fractionaly integrated ARIMA(即非整数整合)。
  • GARCH-M:这是 GARCH 的均值,适宜你的均值方程中有稳定率例如 CAPM 的方程中有 σ。
  • GJR-GARCH。假如负面冲击和侧面冲击之间存在不对称性(金融数据简直都是这样)。

为收益率序列建设稳定率模型包含四个步骤:

  1. 通过测试数据中的序列依赖性来指定一个均值方程,如果有必要,为收益序列建设一个 计量经济学模型(例如,ARIMA 模型)来打消任何线性依赖。
  2. 应用平均值方程的残差来测试 ARCH 效应。
  3. 如果 ARCH 效应在统计上是显著的,就指定一个稳定率模型,并对均值和稳定率方程进行联结预计。
  4. 仔细检查拟合的模型,必要时对其进行改良。

一个简略的 GARCH 模型有以下成分。

均值: 

稳定率方程:  

误差假如: 

# 以下命令将计算 GARCH(m,s)。请记住,对于某些 m 和 s 的组合,它可能不会收敛。garchlist(model="sGARCH", #其余选项有 egarch, fgarch 等。garchOrder=c(1,2)), #你能够在这里批改 GARCH(m,s) 的阶数
                               mean.model  , #指定你的 ARMA 模型,暗示你的模型应该是安稳的。distribution.model          #其余散布是 "std" 代表 t 散布,"ged" 代表个别误差散布 

咱们的稳定率方程由 GARCH(1,2) 给出,AIC:-5.5277(留神 GARCH 可能无奈收敛)。

上面是应用咱们的稳定率模型对稳定率进行的预测。这看起来是一个正当的稳定率预测,然而你想改良你的模型。

当初让咱们应用 rugarch 的规范性能,应用预计的 GARCH(1,2) 模型来产生 σt 的滚动预测,并将它们与 |rt| 作比照。

最初,咱们能够手动编写代码来查看随工夫变动的稳定率和对数收益率 rt,如下图。

# 这将有助于在对数收益率上绘制 sigma 随工夫变动的图。sigma.t #这是你的稳定率序列

ggplot()
  geom_line(aes(x=as.numeric(theme_bw()+

论断

事实证明,GARCH 系列是所谓确定性稳定率模型的一部分。还有一个家族叫做随机稳定率模型,它容许模型中存在随机性,而 GARCH 假如咱们对稳定率进行了完满的建模(如果你对你所剖析的序列十分相熟,这可能是一个好的假如,但理论状况并不总是这样)。随机稳定率模型通常是用马尔科夫链蒙特卡洛(MCMC)和准蒙特卡洛办法来预计的,如果你学过随机过程的相干内容,你会晓得这是什么。

参考文献

  • Tsay, R. (2010). Analysis of Financial Time Series. (3rd ed., Wiley Series in Probability and Statistics).
  • Brockwell, P., & Davis, Richard A. (2016). Introduction to time series and forecasting (3rd ed., Springer texts in statistics). New York: Springer.
  • Racine, Jeffrey S. (2019) Reproducible Econometrics Using R (Oxford)

点击文末 “浏览原文”

获取全文残缺材料。

本文选自《R 语言 ARIMA-GARCH 稳定率模型预测股票市场苹果公司日收益率工夫序列》。

点击题目查阅往期内容

R 语言危险价值:ARIMA,GARCH,Delta-normal 法滚动预计 VaR(Value at Risk)和回测剖析股票数据
R 语言 GARCH 模型对股市 sp500 收益率 bootstrap、滚动预计预测 VaR、拟合诊断和蒙特卡罗模仿可视化
R 语言单变量和多变量(多元)动静条件相关系数 DCC-GARCH 模型剖析股票收益率金融工夫序列数据稳定率
R 语言中的工夫序列分析模型:ARIMA-ARCH / GARCH 模型剖析股票价格
GARCH-DCC 模型和 DCC(MVT)建模预计
R 语言预测期货稳定率的实现:ARCH 与 HAR-RV 与 GARCH,ARFIMA 模型比拟
ARIMA、GARCH 和 VAR 模型预计、预测 ts 和 xts 格局工夫序列
PYTHON 用 GARCH、离散随机稳定率模型 DSV 模仿预计股票收益工夫序列与蒙特卡洛可视化
极值实践 EVT、POT 超阈值、GARCH 模型剖析股票指数 VaR、条件 CVaR:多元化投资组合预测危险测度剖析
Garch 稳定率预测的区制转移交易策略
金融工夫序列模型 ARIMA 和 GARCH 在股票市场预测利用
工夫序列分析模型:ARIMA-ARCH / GARCH 模型剖析股票价格
R 语言危险价值:ARIMA,GARCH,Delta-normal 法滚动预计 VaR(Value at Risk)和回测剖析股票数据
R 语言 GARCH 建模罕用软件包比拟、拟合规范普尔 SP 500 指数稳定率工夫序列和预测可视化
Python 金融工夫序列模型 ARIMA 和 GARCH 在股票市场预测利用
MATLAB 用 GARCH 模型对股票市场收益率工夫序列稳定的拟合与预测
R 语言极值实践 EVT、POT 超阈值、GARCH 模型剖析股票指数 VaR、条件 CVaR:多元化投资组合预测危险测度剖析
Python 用 ARIMA、GARCH 模型预测剖析股票市场收益率工夫序列
R 语言中的工夫序列分析模型:ARIMA-ARCH / GARCH 模型剖析股票价格
R 语言 ARIMA-GARCH 稳定率模型预测股票市场苹果公司日收益率工夫序列
Python 应用 GARCH,EGARCH,GJR-GARCH 模型和蒙特卡洛模仿进行股价预测
R 语言工夫序列 GARCH 模型剖析股市稳定率
R 语言 ARMA-EGARCH 模型、集成预测算法对 SPX 理论稳定率进行预测
matlab 实现 MCMC 的马尔可夫转换 ARMA – GARCH 模型预计
Python 应用 GARCH,EGARCH,GJR-GARCH 模型和蒙特卡洛模仿进行股价预测
应用 R 语言对 S&P500 股票指数进行 ARIMA + GARCH 交易策略
R 语言用多元 ARMA,GARCH ,EWMA, ETS, 随机稳定率 SV 模型对金融工夫序列数据建模
R 语言股票市场指数:ARMA-GARCH 模型和对数收益率数据探索性剖析
R 语言多元 Copula GARCH 模型工夫序列预测
R 语言应用多元 AR-GARCH 模型掂量市场危险
R 语言中的工夫序列分析模型:ARIMA-ARCH / GARCH 模型剖析股票价格
R 语言用 Garch 模型和回归模型对股票价格剖析
GARCH(1,1),MA 以及历史模拟法的 VaR 比拟
matlab 预计 arma garch 条件均值和方差模型

退出移动版