原文链接:http://tecdat.cn/?p=24492
介绍
此分析的目的是构建一个过程,以在给定时变波动性的情况下正确估计风险价值。风险价值被广泛用于衡量金融机构的市场风险。我们的时间序列数据包括 1258 天的股票收益。为了解释每日收益率方差的一小部分,我们使用 Box-Jenkins 方法来拟合自回归综合移动平均 (ARIMA) 模型,并测试带下划线的假设。稍后,当我们寻找替代方案、最佳拟合分布形式时,我们会检查收益率的正态性。我们使用广义自回归异方差 (GARCH) 方法估计残差的条件方差,并将其与 delta-normal 方法进行比较。
数据
出于建模过程的目的,我们每天收集了 5 年(2013 年 2 月至 2018 年 2 月)的花旗公司股票(共 1259 个观察样本)。
# 加载库 library(tidyverse) # 加载数据 read.csv('stock.csv', header = T) # 每只股票一栏 plot( y = stok$C , geo = 'line')
红线表示此特定时间范围内的平均收盘价。
非平稳过程具有随时间变化的均值、方差和协方差。使用非平稳时间序列数据会导致预测不可靠。平稳过程是均值回归的,即它在具有恒定方差的恒定均值附近波动。在我们的例子中,平稳性是指平稳时间序列满足三个条件的弱平稳性:
为了解决这个问题,我们主要使用差分法。一阶差分可以描述为
对于平稳性变换,我们更倾向于计算简单的日收益,表示如下
ret = diff(stoks$C) / socs$C\[-legth\] plot(x = 1:length, y = res )
为了验证收益率的平稳性,我们使用了 Dickey-Fuller 检验,其中零假设表示非平稳时间序列。
adf.test(ret)
小的 P 值 (<0.01) 表明有足够的证据拒绝原假设,因此时间序列被认为是平稳的。
Box-Jenkins 方法
对于时间序列分析,Box-Jenkins 方法应用 ARIMA 模型来找到代表生成时间序列的随机过程的时间序列模型的最佳拟合。该方法使用三阶段建模方法:a) 识别,b) 估计,c) 诊断检查。
识别
要使用 Box-Jenkins 方法,我们必须确保时间序列是平稳的。在我们的例子中,我们使用我们在前一部分中已经检查过平稳性的股票的收益率。此外,基于自相关函数 (ACF) 和偏自相关函数 (PACF),可以确定 ARIMA 模型的 p、d 和 q 阶。识别模型的另一种方法是 Akaike 信息准则 (AICc)。AIC 估计每个模型相对于其他每个模型的质量。
其中
- ∑u^2= 残差平方和
- T = 观察次数
- k = 模型参数的数量 (p + q + 1)
很明显,当模型中加入额外的滞后参数时,残差总和会减少,但可能会出现过拟合的问题。AIC 处理过拟合和欠拟合的风险。将选择 AIC 最低的模型。
auto.arima(rets )
可以通过上面的过程观察到我们计算了各种 ARIMA 模型的 AIC ,并且我们推断出合适的模型是 二阶自回归 (AR(2))。
估计
为了估计参数的系数,我们使用最大似然。使用ARIMA(2, 0, 0)作为选择模型,结果如下:
model
因此,该过程可以描述为:
rt=0.0437∗rt−1−0.0542∗rt−2+ϵt 其中 ϵt 是白噪声
诊断检查
该程序包括观察残差图及其 ACF & PACF 图,并检查 Ljung-Box 测试结果。如果模型残差的 ACF 和 PACF 没有显示显着滞后,则所选模型是合适的。
ggtsdisplay(plot)
ACF 和 PACF 图很相似,自相关似乎为零。右下角图表示残差与正态分布 N(0, σ2σ2) 相比的直方图。
为了进一步检验残差不相关的假设,我们执行 Ljung-Box 检验。
QLB统计量不对称地遵循具有 mpq 自由度的 X2 分布。零假设是指 H0:ρ1=ρ2=⋯=ρm=0
Box.test(resiuas)
Box.test(resiuas)
我们不能拒绝原假设,因此残差的过程表现得像白噪声,所以没有可能被建模。
R语言风险价值:ARIMA,GARCH,Delta-normal法滚动估计VaR(Value at Risk)和回测分析股票数据-2