python用回归、arima、随机森林、GARCH模型分析国债期货波动性、收益率、价格预测

简介: python用回归、arima、随机森林、GARCH模型分析国债期货波动性、收益率、价格预测

全文链接:http://tecdat.cn/?p=31123

分析师:Yihan Mao


本文为客户提供咨询,让个人购买人员了解美国国债期货的特性,以便于进行个人投资及管理


任务/目标

由于国债期货的方便,可以快速交易,所以无论是用来投机还是用来对冲风险都有很好的作用效果。我们提取美国国债期货的数据,进行波动性,收益率上的分析,并进行价格预测。

相关视频

1]NFR5I9)6JFU%IET`O]V0J.png

J2087J]8Y2KV@3@EU$F54G1.png

5IFE6%[@I35{`(}586ODNI2.png

数据源准备

用python(import YahooFinance)获取美国国债期货近10年的数据作为基本分析数据。同时,由于国债期货的价格受到许多宏观因素的影响,所以并且还需要找到一些其他的影响要素,这里我们提取GDP,CPI,Treasury Yield(收益率)并作为我们的特征。

特征转换

数据预处理。datetime换成标准时间,算出日logreturn(log收益),分别算出15,50,100天的SMA与RSI加入到特征。画出boxplot,通过图过滤掉outliers跟一些不正常的点。用pandas筛选数据,填补过滤掉空数据。

分析收益

画出日收益率,寻找聚集波动性强的点,进行进一步分析。通过图看出在哪一段时间日收益较高,并且寻找近期事件发生的影响。我们发现存在收益相对较高,有投资价值。

分析波动性

波动性可以考虑为标准差的表现。首先直观观察,画出短期SMA与长期SMA,交点较多的地方为潜在波动性强的地方。再画出Bollinger Bands,密集的地方为波动性大的地方。

}}W1[4DWXW4R8@EF18MK$55.png

SEDJ96F1(}(TKEYBVJ$ZA61.png

将这段时间发生的事情结合在一起分析,可以看出人们在发生经济变动的时候会选择用此国债期货进行风险转移。


点击标题查阅往期内容


3S(HZGD)YHCS6%IA[9UNGCI.png

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

左右滑动查看更多

01

S6T``N1O57$%POVS[8N7`DR.png

02

5~STGE([ONNV[AY~CWX[8NN.png

03

VYBJ3ZTMD0)CEFR{F1L$YZW.png

04

~FW6GTT8G57GMYPXM2J7VWK.png


建模分析

Regression Model:

由于特征数据有多重因素,我们可以一个多重线性回归。通过画图scatterplot matrix我们发现,很多之间并不是线性,而且存在变量之间的线性关系(由于目标是预测,所以可以忽略),所以我们进行Box-Tidewell Transformation. 然后选取训练集合跟预测集合,建立模型进行回归预测。

ARIMA:

由于国债期货不是商品类型,所以我们不考虑季节性的变化。(ARIMA模型是指将非平稳时间序列转化为平稳时间序列,然后将结果变量做自回归(AR)和自平移(MA)。)

首先画图查看是否存在自相关。用ADF test来检测是否平稳,如果不平稳我们对其进行差分处理,知道检测P-value<0. 然后用Ljung-Box Test 检测白噪声,如果不是白噪声证明可以预测此时间序列。

RYGX8SEE[W2G`U)ZZ6BO8MM.png

接下来定阶。Auto-select得知选择ARIMA(1,1,1). 我们建立模型。并对模型进行residual分析,得知模型良好。

IH7{B`Y_5K2382KT`0N(E]P.png

同时看出residual可以看做normal分布。

我们选择前80%的数据为训练集合,后20%为测试集合,建立预测。

08%2S}@))3EQ_Z3YU18$WZT.png

可以看出预测值与实际值近似。如果假设经济状况平稳,没有重大事情发生的状况下(eg.covid-19),可以参考其变化来进行投机,实际上仍需考虑多方面宏观因素。

随机森林:

用随机的方式建立一个由很多决策树组成的,每一棵树都只负责自己的部分。每一棵树来进行自己的分类运算,最后选择评分最高的来进行预测。

N9]23KN~ZZ1MC59{]23CY2V.png

GARCH模型:

金融市场有杠杆效应。方差并不是恒定的,ARCH模型是一个很好的解决方法。

由于国债期货长达30年,很多宏观因素的变化对其有很大的影响。

预测取决于我们的目的,如果我们的目的仅仅是投机,我们只需要观察价格的变化走势,同时受到一些宏观因素的影响。比如我们还可以通过画出RSI的变化,来训练什么时候应该买入卖出。

9AV5YMUS9~Q6ZJ)0)_O@F}E.png

同时根据交易量(Volume)的变化可以看出人们的活动状况,尤其是在宏观事件影响的时候。这个对于风险管理有很重要的参考价值。

改进:

可以根据每周工作日设置indicator变量,更好的反应时间因素。同时可以设置他们的相互作用(interaction effect)。

选取的宏观因素可以进一步增加。

关于作者

在此对Yihan Mao对本文所作的贡献表示诚挚感谢,他毕业于厦门大学(马来西亚分校),专长金融数学,数据分析可视化。

相关文章
|
6天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品市场预测的深度学习模型
使用Python实现智能食品市场预测的深度学习模型
35 5
|
7天前
|
机器学习/深度学习 算法 数据可视化
使用Python实现深度学习模型:智能食品配送优化
使用Python实现深度学习模型:智能食品配送优化
24 2
|
6天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
22 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
6天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
28 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
自然语言处理 算法 Python
|
自然语言处理 算法 索引
|
6天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
6天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
6天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
8天前
|
设计模式 算法 搜索推荐
Python编程中的设计模式:优雅解决复杂问题的钥匙####
本文将探讨Python编程中几种核心设计模式的应用实例与优势,不涉及具体代码示例,而是聚焦于每种模式背后的设计理念、适用场景及其如何促进代码的可维护性和扩展性。通过理解这些设计模式,开发者可以更加高效地构建软件系统,实现代码复用,提升项目质量。 ####