时间序列金融数据预测及Pandas库详解( 二 )


时间序列金融数据预测及Pandas库详解

文章插图
 
输出结果如下:
时间序列金融数据预测及Pandas库详解

文章插图
 
仅仅获取了"No1"数据并绘制如下图所示图形:
时间序列金融数据预测及Pandas库详解

文章插图
 
5.Groupby操作Pandas具有灵活分组功能,工作方式类似于SQL中分组和Excel透视表,为进行分组,我们添加一组索引对应季度表,代码如下:
时间序列金融数据预测及Pandas库详解

文章插图
 
输出结果如下所示:
时间序列金融数据预测及Pandas库详解

文章插图
 
三. 时间序列算法-ARIMA
作者本来想通过下面代码导入雅虎财经数据,但是没有成功,最终选择自定义数据进行ARIMA算法实验 。
时间序列是通过曲线拟合和参数估计来建立 数学模型的理论方法,基本步骤如下:
(1).获取被观测系统时间序列数据;
(2).对数据绘图观测是否为平稳时间序列、非平稳d阶差分;
(3).得平稳时间序列,求其自相关系数ACF和偏自相关系数PACF,通过自相关和偏相关图分析,得到最佳阶层p和结束q;
(4).由d、q、p得到ARIMA模型,然后进行检验 。
1.获取数据导入库
时间序列金融数据预测及Pandas库详解

文章插图
 
代码从2001年到2090年共有90组数据,然后按照年份进行时间序列统计(freq='A'年份),输出结果如下所示:
时间序列金融数据预测及Pandas库详解

文章插图
 
绘制图形如下:
时间序列金融数据预测及Pandas库详解

文章插图
 
2.时间序列差分d
ARIMA模型要求是平稳型,如果是非平稳型的时间序列需要先做时间序列的差分,得到一个平稳的时间序列 。如果时间序列做d次差分才能得到一个平稳序列,则可使用ARIMA(p,d,q)模型,其中d表示差分次数 。代码如下:
主要调用df.diff(1)实现一阶差分的效果,此数据一阶和二阶差分的结果类似,均值和方差基本问题,这里的差分d值就取1 。
时间序列金融数据预测及Pandas库详解

文章插图
 
得到的平稳图形如下图所示:
时间序列金融数据预测及Pandas库详解

文章插图
 
3.合适的q和p值
得到一个平稳的时间序列后,需要选择合适的ARIMA模型,即ARIMA模型中的p和q值 。
注意:这里需要调用"pip install statsmodels"安装统计数学分析的包,有时您的版本过低会导致错误(尤其是Anaconda 2.7版本),则需要调用"pip install --upgrade statsmodels"升级包至0.8版本 。
代码如下:
时间序列金融数据预测及Pandas库详解

文章插图
 
输出结果如下所示,主要 调用plot_acf和plot_pacf函数 。
时间序列金融数据预测及Pandas库详解

文章插图
 
四. 时间序列预测分析最后给出选择ARIMA(8,0)模型对未来10年数据进行的代码 。代码如下:
时间序列金融数据预测及Pandas库详解

文章插图
 

时间序列金融数据预测及Pandas库详解

文章插图
 
输出相关ARIMA(8,0)系数和预测的2090-2100年结果如下所示:
时间序列金融数据预测及Pandas库详解

文章插图
 
输出图形如下所示,可以看到后面绿色部分为预测值,根据前面的波动规律近似得到 。
时间序列金融数据预测及Pandas库详解

文章插图
 
  
 




推荐阅读