简介量化金融中使用的时间序列模型(一)

完整阅读:http://club.jr.jd.com/quant/topic/956213
简介量化金融中使用的时间序列模型(一)_第1张图片


在计量经济学领域中,我们主要研究三种数据,即横截面数据、面板数据和时间序列数据。其中横截面数据研究在一个给定的时间点上,不同观测样本的状态,例如:2016年12月16日全国各个城市天气质量AQI指数。面板数据指的是某些给定的样本在给定的时间跨度内的观测值。例如:2016年全国各个城市每日的天气质量指数。而时间序列研究一个个体在一段时间跨度内的变化。其特点为,每个观测值前后相关性很强,基本很难满足简单最小二乘法中随机抽样的假设。故时间序列数据有自己独特的一套研究方法,常用模型包括均值模型,波动率模型,非平稳模型等。

Python中的statsmodels工具包中的tsa模块提供了时间序列的函数,包括ARMA,VAR等模型,方便我们使用。

在这部分中,我主要介绍移动平均和平稳性两部分内容。

1. 移动平均(Moving average)

移动平均是用来刻画一个时间序列在最近一段时间内的走势的指标,其波动比原序列要小,平滑期数越长移动平均值越平缓。移动平均广泛的应用在各种股票的技术分析指标中(即均线),长短期均线结合使用可作为资产走势的判断依据,例如MACD,DMA,CCI等。均线是对趋势的确认,有滞后性。包括有简单移动平均,指数移动平均等。

a) 简单移动平均(Simple moving average):

M期简单移动平均计算方法为

spacer.gifblob.png

其中A为原始序列,spacer.gifA-bar为平滑后的数据。

此处以沪深300为例,利用matplotlib画出今年300指数的价格和十五日均线。

1
2
3
4
5
6
7
8
9
10
11
import matplotlib.pyplot as plt
from pandas import DataFrame
def macd(priceSer,n):
    return priceSer[-n:].mean()
df=get_price('000300.SH',start_date='2016-01-01',end_date='2016-12-15',fields=['close'])
MA=[]
for i in range(df.__len__()):
    MA.append(macd(df['close'][:i],15))
df['MA']=MA
plt.plot(df)
plt.show()

HS300MA15.png

可以看到,均线反映了滞后的走势信息。

b) 加权移动平均(Weighted moving average):

简单移动平均相当于给滞后期内的数据同等权重,而加权移动平均则对滞后期内数据赋予不同的权重。往往会给较短滞后期的数据赋予更高的权重,因为事件发生过去的时间越近,对现在的情况的影响越大。加权移动平均的特例是指数移动平均(Exponential moving average。可用递推表达式表示:blob.png

其等价于:

blob.png

在选择移动平均滞后期和指数移动平均的系数a的时候,应根据原始数据的特征判断。若原始数据波动较大,则应选择较长的滞后期,和较小的a;若原始数据较平稳,则应选择较短的滞后期和较大的a。这样可以获得容易观察到明显趋势的均线。

2. 平稳性(Stationary)

平稳性,简单来讲就是统计性质不随时间改变的性质。它是时间序列分析中的一条重要假设。我们平常讨论的平稳条件,指的是宽平稳条件,即随机过程Xt的均值、方差均不随时间t改变,且Xt与Xs的协方差只和t-s有关系。

为什么时间序列分析要求输入序列平稳呢?大数定律和中心极限定理是很多统计推断的依据。而这两个定理都要求样本是随机抽样的。在时间序列中,这个要求就等价于上述平稳序列的条件。同时,非平稳的时间序列会导致伪回归的问题。所以说,平稳性是时间序列分析的前提。

我们仍然以沪深300指数今年的价格线为例。首先绘制价格线的折线图,可以明显发现价格带有趋势性,是非平稳的序列,不符合时间序列的基本假设。
weiw
完整阅读


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31409419/viewspace-2130826/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31409419/viewspace-2130826/

你可能感兴趣的:(简介量化金融中使用的时间序列模型(一))