R语言数据分析案例:基于向量自回归模型的标准普尔500指数长期预测与机制分析
R语言数据分析案例:基于向量自回归模型的标准普尔500指数长期预测与机制分析
本文将介绍如何使用R语言进行标准普尔500指数的长期预测分析。通过向量自回归(VAR)模型,我们将探讨如何基于历史数据预测未来走势,并分析其背后的经济机制。
一、背景介绍
2007 年的全球经济危机深刻改变了世界经济格局,引发了一系列连锁反应,波及各大洲。经济增长停滞不前,甚至在某些情况下出现负增长,给出口导向型发展中国家带来了不确定性。实体经济受到的冲击尤为严重,生产成本上升,利润下降,实际经济价值缩水。相比之下,金融部门的投资活动激增,原因是在动荡的经济环境中寻求稳定和更高的回报。然而,金融投资的性质与实体经济有很大不同,实体经济的特点是复杂且往往不可预测的因素交织在一起。
二、研究现状
理解和掌握标准普尔 500 指数的变化规律,对于正确评估美国经济趋势、跟踪世界经济发展的源和流、参与全球市场套利和定价具有重要的现实意义。基于标准普尔 500 指数在金融市场中的重要地位,标准普尔 500 指数的预测受到研究人员的更多关注。
目前对标准普尔 500 指数的研究主要集中在短期预测上,使用不同的研究工具。例如,[1]在预测标准普尔 500 指数值时使用隐马尔可夫链方法和离散时间马尔可夫链方法,指出使用全样本数据和特征子样本时预测效果更好。
三、数据集介绍和分析
3.1 数据分析
在这项研究中,选择了美国股票的标准普尔 500 指数进行预测分析,并初步选择开盘价、最高价、最低价和收盘价作为研究数据。
标准普尔 500 指数的数据收集时间为 1995 年 1 月 3 日至 2020 年 12 月 31 日,包括该期间内的交易日。
library(quantmod)
library(TTR)
data$Date <- as.Date(data$Date, format = "%Y/%m/%d")
# (VWAP)
data$VWAP <- with(data, rowSums(data[, c("High", "Low", "Close")]) / 3 * Volume / sum(data$Volume))
# Convert data to xts objects
HTM_xts <- xts(HTM[, c("Open", "High", "Low", "Close")], order.by = HTM$Date)
plot(HTM_xts)
addLegend("topleft", legend.names = colnames(HTM_xts), lwd = 1)
3.2稳定性分析
该检验的原假设和备择假设为:
- 原假设:该序列存在单位根。
- 备择假设:该序列不存在单位根。
如果我们不能拒绝原假设,我们可以说该序列是非平稳的。
以收盘价为例,通过上图我们可以看出,该指数的均值和标准差都在增加,初步判断该序列是非平稳的。
Variable | ADF Statistic | p value |
---|---|---|
Dickey-Fuller Test | Open | -0.428 |
0.985 | ||
High | -0.250 | 0.990 |
Low | -0.525 | 0.981 |
Close | -0.442 | 0.984 |
从表 1 中,我们观察到所有四个时间序列的 p 值都大于 0.05。因此,我们不能拒绝原假设,并得出时间序列是非平稳的结论。为了解决这个问题,我们需要对序列进行差分。
Variable | ADF Statistic | p value |
---|---|---|
Dickey-Fuller Test | Open | -18.943 |
0.010 | ||
High | -18.834 | 0.010 |
Low | -18.697 | 0.010 |
Close | -18.742 | 0.010 |
四、方法理论
向量自回归(VAR)模型是自回归(AR)模型的扩展,是一种常用的计量经济模型[6]。它考虑了多个变量之间的相互依赖关系,比简单的 AR 模型更全面。
五、模型建立和分析
选择 1995-01-03 至 2020-11-16 期间作为训练集,预测 2020-11-17 至 2020-12-31 期间的数据。
AIC(n) | HQ(n) | SC(n) | FPE(n) |
---|---|---|---|
1 | 17.678 | 17.686 | 17.699 |
47606900.000 | |||
2 | 17.073 | 17.086 | 17.111 |
25986330.000 | |||
3 |