Python绘制时序图,ACF和PACF图

您所在的位置:网站首页 一阶差分模型的适用条件 Python绘制时序图,ACF和PACF图

Python绘制时序图,ACF和PACF图

#Python绘制时序图,ACF和PACF图| 来源: 网络整理| 查看: 265

在时序分析众多模型中,最为基础也是最为重要的有AR§模型,MA(q)模型,以及两者的结合ARMA(p,q)模型,同时考虑ARMA模型的平稳性,若有一个或多个根落于单位圆上,则此时的ARMA模型称作自回归单整移动平均过程,ARIMA(p,d,q)模型。

数据科学线性代数公式汇总

在这里插入图片描述 这里介绍Python绘制ACF和PACF图,进行模型定阶

导入模块 import sys import os import pandas as pd import numpy as np import statsmodels.api as sm import statsmodels.formula.api as smf import statsmodels.tsa.api as smt from statsmodels.tsa.stattools import adfuller from statsmodels.stats.diagnostic import acorr_ljungbox from statsmodels.graphics.api import qqplot import matplotlib.pylab as plt from matplotlib.pylab import style style.use('ggplot') from arch.unitroot import ADF import warnings warnings.filterwarnings("ignore") pd.set_option('display.float_format', lambda x: '%.5f' % x) np.set_printoptions(precision=5, suppress=True) pd.set_option('display.max_columns', 100) pd.set_option('display.max_rows', 100) 加载数据 data = pd.read_excel("data.xlsx",index_col="年份",parse_dates=True) data.head() xt年份1952-01-01100.000001953-01-01101.600001954-01-01103.300001955-01-01111.500001956-01-01116.50000 平稳性检验 时序图 data["diff1"] = data["xt"].diff(1).dropna() data["diff2"] = data["diff1"].diff(1).dropna() data1 = data.loc[:,["xt","diff1","diff2"]] data1.plot(subplots=True, figsize=(18, 12),title="差分图")

在这里插入图片描述

时序图检验 - - 全靠肉眼的判断和判断人的经验,不同的人看到同样的图形,很可能会给出不同的判断。因此我们需要一个更有说服力、更加客观的统计方法来帮助我们检验时间序列的平稳性,这种方法,就是单位根检验。

单位根检验 print("单位根检验:\n") print(ADF(data.diff1.dropna())) 单位根检验: Augmented Dickey-Fuller Results ===================================== Test Statistic -3.156 P-value 0.023 Lags 0 ------------------------------------- Trend: Constant Critical Values: -3.63 (1%), -2.95 (5%), -2.61 (10%) Null Hypothesis: The process contains a unit root. Alternative Hypothesis: The process is weakly stationary. **单位根检验** - -对其一阶差分进行单位根检验,得到:1%、%5、%10不同程度拒绝原假设的统计值和ADF Test result的比较,本数据中,P-value 为 0.023,接近0,ADF Test result同时小于5%、10%即说明很好地拒绝该假设,本数据中,ADF结果为-3.156,拒绝原假设,即一阶差分后数据是平稳的。 白噪声检验

判断序列是否为非白噪声序列

from statsmodels.stats.diagnostic import acorr_ljungbox acorr_ljungbox(data.diff1.dropna(), lags = [i for i in range(1,12)],boxpierce=True) (array([11.30402, 13.03896, 13.37637, 14.24184, 14.6937 , 15.33042, 16.36099, 16.76433, 18.15565, 18.16275, 18.21663]), array([0.00077, 0.00147, 0.00389, 0.00656, 0.01175, 0.01784, 0.02202, 0.03266, 0.03341, 0.05228, 0.07669]), array([10.4116 , 11.96391, 12.25693, 12.98574, 13.35437, 13.85704, 14.64353, 14.94072, 15.92929, 15.93415, 15.9696 ]), array([0.00125, 0.00252, 0.00655, 0.01135, 0.02027, 0.03127, 0.04085, 0.06031, 0.06837, 0.10153, 0.14226]))

通过P



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3