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

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

全文链接: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

image.png

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

image.png

image.png

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


点击标题查阅往期内容


MATLAB用GARCH-EVT-Copula极值理论模型VaR预测分析股票投资组合


01

02

03

04

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的初值。程序中预测了未来五次交易的数据,并做了上下区间。

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

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

相关文章
|
13天前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【10月更文挑战第4天】在大数据时代,算法效率至关重要。本文从理论入手,介绍时间复杂度和空间复杂度两个核心概念,并通过冒泡排序和快速排序的Python实现详细分析其复杂度。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1);快速排序平均时间复杂度为O(n log n),空间复杂度为O(log n)。文章还介绍了算法选择、分而治之及空间换时间等优化策略,帮助你在大数据挑战中游刃有余。
40 4
|
10天前
|
数据可视化 算法 Python
基于OpenFOAM和Python的流场动态模态分解:从数据提取到POD-DMD分析
本文介绍了如何利用Python脚本结合动态模态分解(DMD)技术,分析从OpenFOAM模拟中提取的二维切片数据,以深入理解流体动力学现象。通过PyVista库处理VTK格式的模拟数据,进行POD和DMD分析,揭示流场中的主要能量结构及动态特征。此方法为研究复杂流动系统提供了有力工具。
22 2
基于OpenFOAM和Python的流场动态模态分解:从数据提取到POD-DMD分析
|
6天前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
25 2
|
7天前
|
存储 编译器 索引
Python 序列类型(2)
【10月更文挑战第8天】
Python 序列类型(2)
|
8天前
|
存储 C++ 索引
Python 序列类型(1)
【10月更文挑战第8天】
|
14天前
|
存储 JSON 数据处理
分析、总结Python使用列表、元组、字典的场景
分析、总结Python使用列表、元组、字典的场景
18 0
|
16天前
|
算法 安全 Go
Python与Go语言中的哈希算法实现及对比分析
Python与Go语言中的哈希算法实现及对比分析
21 0
|
16天前
|
机器学习/深度学习 自然语言处理 Go
Python与Go在AIGC领域的应用:比较与分析
Python与Go在AIGC领域的应用:比较与分析
19 0
|
9天前
|
存储 程序员 开发者
Python编程基础:从入门到实践
【10月更文挑战第8天】在本文中,我们将一起探索Python编程的奇妙世界。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息。我们将从Python的基本概念开始,然后逐步深入到更复杂的主题,如数据结构、函数和类。最后,我们将通过一些实际的代码示例来巩固我们的知识。让我们一起开始这段Python编程之旅吧!
|
2天前
|
设计模式 开发者 Python
Python编程中的设计模式:从入门到精通####
【10月更文挑战第14天】 本文旨在为Python开发者提供一个关于设计模式的全面指南,通过深入浅出的方式解析常见的设计模式,帮助读者在实际项目中灵活运用这些模式以提升代码质量和可维护性。文章首先概述了设计模式的基本概念和重要性,接着逐一介绍了几种常用的设计模式,并通过具体的Python代码示例展示了它们的实际应用。无论您是Python初学者还是经验丰富的开发者,都能从本文中获得有价值的见解和实用的技巧。 ####

热门文章

最新文章