python、R语言ARIMA-GARCH分析南方恒生中国企业ETF基金净值时间序列分析

发布时间 2023-10-31 21:21:14作者: 拓端tecdat

全文链接:https://tecdat.cn/?p=34123

原文出处:拓端数据部落公众号

分析师:Yuyan Wang

虽然中国股票市场日益完善,但还不完全是弱有效市场,因此中国股票市场存在比较明显的通过技术分析达到的套利机会。

解决方案

任务/目标

根据基金净值的要求,运用多种模型分析实现股票走势的预测。

数据源准备

本次数据来源于天天基金网南方恒生中国企业ETF版面,数据获取采用python(版本3.6)爬虫,数据分析部分则是采用Rstudio(3.6.2)。由于南方恒生中国企业ETF没有分红,所以单位净值和累计净值相同,本次分析采用单位净值(数据采用从2018/2/8~2020/6/10,共556个)作为数据分析对象。本次数据分析采用的数据模型有AR, MA,ARMA,GARCH模型。

数据预处理

将获得数据进行标准化,并作图发现数据超出了[0,1]的限制,于是我们可以初步估计数据不满足正态性。其次,我们采取箱形图法分析分析数据中可能存在的异常值,发现数据中存在三个异常值点,2020-03-18 -3.636842,2020-03-19 -4.182578,2020-03-23 -3.552882。

image.png

数据波动性大且不聚集。于是对数据进行二阶差分(一次差分模型拟合效果不好)。利用箱型图法进行异常值检测,发现二阶差分之后的数据异常值增多,但是从图上可以看出数据具有集群波动性,在这里初步估计数据具有garch模型的特点。

image.png

构造

image.png

首先考察时间序列 时间序列平方以及绝对值的ACF和PACF图,判断二阶差分具有一定的ARCH性质,接下来我们使用MC.LEOAD.LI方法检验我们刚才的判断。右图说明,二阶差分数据具有很强的ARCH特征。现在我们计算其峰度以及偏度,判断其厚尾性。偏度为0.2112377,峰度为2.870266,j-b检验数为171.9739 远大于kai(2)的置信度5% 时的3.84, 因此相信序列存在高阶相关性和厚尾结构。

image.png

image.png

image.png

image.png

image.png

image.png

image.png

利用EACF方法判断garch的阶数。我们选取EACF图建议采用GARCH(1,2)模型。根据最小二乘法,发现模型参数α2不显著,因此考虑GARCH(1,1)模型。

image.png

image.png

发现CARCH模型的各项系数均显著。并比较GARCH(1,1)和GARCH(1,2)的AIC系数。发现GARCH(1,1)的系数665.12略小于GARCH(1,2)的666.77。

image.png

我们选用GARCH(1,1)模型进行模型诊断。根据QQ图发现GARCH(1,1)模型残差近似满足正态分布,其次我们检验shapiro数p-value = 0.8696 大于0.05,故我们认为残差满足正态性分布。我们采用L-B检验数,检验残差的独立性,这里发现m<11时,独立性满足。

image.png

image.png

划分训练集和测试集

考虑到最终模型会预测将来的某时间段的销量,为了更真实的测试模型效果,以时间来切分训练集和测试集。具体做法如下:假设我们以2018/2/8~2020/5/28的单位净值作为训练,最后5个交易日的数据作为测试。

建模

ARIMA  一般应用在股票和电商销量领域

ARIMA模型是指将非平稳时间序列转化为平稳时间序列,然后将结果变量做自回归(AR)和自平移(MA)。

GARCH

金融市场领域常用的分析模型,自回归条件异方差模型,消除arma模型对于同方差假设引起的问题,能够更好的认识到风险的波动性

模型优化

混合模型

由于上述模型确定具有一定的主观性,现考察混合模型是否能够更好的拟合数据。主要考察两种混合模型--ARMA(1,3) + GARCH(1,2)和 MA(1) + GARCH(1,1)。

image.png

采用h步向前估计,对之后的数据进行预测,其中将最后一天的数据(2020/06/10)作为预测原点,方差作为σt|t-1的初值。程序中预测了未来五次交易的数据,并做了上下区间。

发现预测数据与实际数据相差不大,并且在预测区间当中。

可以看出,销量的预测值的趋势已经基本与真实基金趋势保持一致,但是在预测期较长的区间段,其预测值之间的差别较大。

160301-stockdecline-stock.jpg

关于分析师

image.png

在此对Yuyan Wang对本文所作的贡献表示诚挚感谢,他毕业于同济大学,擅长数理金融、数据采集、数据分析。

点击标题查阅往期内容

R语言使用多元AR-GARCH模型衡量市场风险
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 条件均值和方差模型