《量化投资:以python为工具》第四部分笔记
金融数据分析中常见的三类:横截面数据(不同个体同一时间)、时间序列数据(同一个体不同时间)、面板数据(不同个体不同时间)。
时间序列分析主要涉及以下内容:
数据序列有哪些基本特征?
数据序列是否有规律可行?
如果序列存在某种规律,如何通过统计学找到并描述这种规律?
多个时间序列之间是否存在某种关联?如何刻画这种关联?
如何利用历史数据的规律对未来预测?
时间序列的基本性质
1.自相关性:指一个时间序列两个不同时点的变量是否相关联。一般用时间序列的自协方差函数、自相关系数函数、偏自相关系数函数等统计量来体现。常常用来解释时间上的惯性。
python中用statsmodels模块中的acf和pacf来计算。
2.平稳性
时间序列的基本特征维持不变
强平稳性:两个时间间隔内的随机变量的分布一致。
弱平稳性:序列低阶平稳。任意序列均值为常数,或存在二阶矩,或l阶自协方差不随时间变化。
弱平稳不一定是强平稳,反之亦然。
可以用单位根检验来定量判断稳定性。python中可以用arch包中的ADF函数来进行。其原假设是:序列有单位根(序列是非平稳的)。
3.白噪声
市场有效性假说:在弱式有效市场中资产收益率序列不存在自相关性。白噪声序列就是一种不存在自相关性的序列。
若一个随机过程在任意时刻t的变量Xt满足:均值和协方差为0,方差为常数,则其为白噪声序列。
使用LB检验来检测一个序列是否为白噪声序列。用statsmodels的q_stat来实现。原假设为序列是随机的。
时间序列的预测
非白噪声序列才可以预测
移动平均预测:将过去变量平均值作为下一期的预测值。分为简单移动平均法、加权移动平均法、指数加权移动平均法。
ARMA模型是自回归模型(AR)和移动平均模型(MA)的结合,其出现标志着时间序列分析理论构建进入成熟阶段。
建模过程:
①序列识别
a.判断是否为平稳序列,若不是,转换为平稳序列。
b.判断是否为白噪声序列,若是,建模结束。若不是,进行下一步。
②模型识别与估计
③模型诊断
不仅对系数的显著性的检验,还包括对残差序列是否为白噪声的检验。如果残差为白噪声,说明模型已经充分提取了序列的信息。若是非白噪声序列,则模型还有进一步改进的空间。
总结:建模的过程,先是判断序列是否满足模型的假设,然后进行模型识别与估计,之后对模型进行诊断,看模型是否提取了序列的信息,有无改进空间。最后应用模型进行预测。
本章代码:https://github.com/zwdnet/MyQuant/tree/master/10
我发文章的四个地方,欢迎大家在朋友圈等地方分享,欢迎点“在看”。
我的个人博客地址:https://zwdnet.github.io
我的博客园博客地址: https://www.cnblogs.com/zwdnet/
我的知乎文章地址: https://www.zhihu.com/people/zhao-you-min/posts
我的微信个人订阅号:赵瑜敏的口腔医学学习园地