同花顺Supermind量化交易 金融时间序列1-AR、MR模型 附源代码

本文深入探讨金融时间序列,以沪深300指数为例,通过AR、MR模型进行数据拟合和预测。文章介绍了模型的构建过程,包括价格差分、ACF/PACF函数、信息准则和有效性检验,展示了模型在不同阶数下的表现,并提供了源代码。
摘要由CSDN通过智能技术生成

从金融时间序列的角度,以沪深300的收益和价格作为研究标的,使用AR、MR模型尝试拟合和预测,详述模型使用流程,以及模型与模型之间的表现差异。

金融时间序列(一)-AR、MR模型

作者:邱吉尔

1. 输入库包

In [1]:

import pandas as pd 
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import datetime
from scipy import stats
import statsmodels.api as sm
plt.style.use('seaborn')

2. 取出数据

In [2]:

HS300_close=get_price(['000905.SH'], '20171125', '20190125', '1d', ['close'], True, None,is_panel=1)['close']
HS300_close.columns=['HS300_close']
HS300_close['return']=HS300_close['HS300_close'].pct_change()

3. 时间序列1(AR Model) 

时间序列的平稳性被分为严平稳和宽平稳。其中,严平稳需要两个时间序列在时间的平移变换下,它们的联合分布保持不变。而宽平稳只需要序列的均值、方差相同即可。 由于严平稳的实现较为困难,所以一般来说平稳时间序列指的是宽平稳。如果是非平稳时间序列,可以通过多次差分的方法处理为宽平稳序列。
下列,我们就对沪深300指数价格使用了2次和20次的差分。显而易见,差分次数越多越平稳。

3.1 价格差分

In [10]:

HS300_close['close_diff2']=HS300_close['HS300_close'].diff(2)
HS300_close['close_diff20']=HS300_close['HS300_close'].diff(20)
HS300_close.dropna(inplace=True)
HS300_close.plot(subplots=True,figsize=(20,12))
plt.title('Stationary & Diff',y=4.7,size=25)

Out[10]:

<matplotlib.text.Text at 0x7f3cdf0360f0>

3.2 ACF自相关函数

自相关函数的含义是衡量序列数据和自己的相关程度,即x(t)和过去某个时间x(t−l)的相关性:

该假设检验统计量服从自由度为m的卡方分布。
原假设为所有自相关系数为0,取显著水平为0.05,若所有p值均小于0.05则拒绝原假设,认为该序列存在序列相关性。
以下是该假设检验统计量:

In [4]:

closeprice=HS300_close['HS300_close']
ACF,Q_test,P_value= sm.tsa.acf(closeprice, nlags=10, qstat = True)
data_show=np.c_[range(1,11),ACF[1:],Q_test,P_value]
data_df=pd.DataFrame(data_show,columns=['Lag','ACF','Q_test','P_value'])
data_df.set_index('Lag',inplace=True)
data_df.head(8)

Out[4]:

ACF Q_test P_value
Lag
1.0 0.988893 263.068428 3.678637e-59
2.0 0.978027 521.362501 6.131565e-114
3.0 0.967327 774.996387 1.145044e-167
4.0 0.954426 1022.852307 3.981759e-220
5.0 0.942327 1265.390107 2.010084e-271
6.0 0.929604 1502.330397 0.000000e+00
7.0 0.917226 1733.893361 0.000000e+00
8.0 0.904332 1959.864313 0.000000e+00

In [5]:

returndata=HS300_close['return']
ACF,Q_test,P_value= sm.tsa.acf(returndata, nlags=10, qstat = Tr
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值