利用SARIMA模型对季节周期性的时序案例进行分析(一) |
您所在的位置:网站首页 › 预测降雨量可以用什么模型表示 › 利用SARIMA模型对季节周期性的时序案例进行分析(一) |
看过掌柜前几篇关于时序文章: 利用ARIMA模型对时间序列进行分析的经典案例(详细代码) “利用ARIMA模型对时间序列进行分析的经典案例(详细代码)”一文中会遇到的问题总结 ARIMA模型预测后出现一条直线的原因的朋友都知道在最后一篇掌柜遗留了一个问题,就是已确定当前的时序数据具有季节周期性,那么如何解决这类时序数据并进行预测分析呢?本文掌柜将从以下几个方面一一作答: SARIMA模型是什么? 如何使用SARIMA模型进行时序分析的?(SARIMA模型的步骤有哪些?) SARIMA模型的优点以及限制性有哪些?首先我们来看第一个问题,SARIMA模型是什么? 简单来讲,就是ARIMA的扩展,它明确支持带有季节成分的 单变量时间序列。 而多出来的几个参数就是下图大写的PDQ那部分: 其中m 表示时序的周期性,比如 以月为周期monthly,以年为周期yearly等。 下面接着看第二个问题:如何使用SARIMA模型进行时序分析的?(SARIMA模型的步骤有哪些?) 这里有这样一组示例数据: 上图👆表示的是 从1958年3月到2001年12月,美国夏威夷州空气中二氧化碳含量的时序图。 可以很明显的从时序图看出来,这是一个季节周期性的时序,所以下面我们用SARIMA模型进行一个处理和预测。 ( PS: 如果你的数据不是一开始就能明显看出季节周期性的,就请用掌柜上一篇博客👉:《ARIMA模型预测后出现一条直线的原因 》中提到的几种方法 来进行季节周期性的确定!!! ) SARIMA模型的参数选取 1.1 网格搜索(Grid Search) 法 首先对p、d、q 以及 P、D、Q进行不同参数组合的探索。话不多说,直接上代码: # 首先定义 p、d、q 的参数值范围,这里取 0 - 2. p = d = q = range(0, 2) # 然后用itertools函数生成不同的参数组合 pdq = list(itertools.product(p, d, q)) # 同理处理季节周期性参数,也生成相应的多个组合 seasonal_pdq = [(x[0], x[1], x[2], 12) for x in list(itertools.product(p, d, q))] print('Examples of parameter combinations for Seasonal ARIMA...') print('SARIMAX: {} x {}'.format(pdq[1], seasonal_pdq[1])) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |