时间序列基础操作:使用python与eviews对AR与ARMA模型进行定阶与预报

一般处理时间序列的基本过程:(无季节趋势)

处理时间序列的简单过程(无季节趋势)

注:上图中LB检验的统计量纠正:n*(n+2),而不是n*(n-2)

 几种基础时间序列模型(模型的具体形式补充见文末):

目录

一、Python处理

1.1.step1:平稳性检验与白噪音检验

1.1.1平稳性检验:ADF检验

1.1.2差分修正:

1.1.3白噪音检验:L-B统计量/Q统计量

1.2.step2:模型识别与定阶

1.2.1法一:观察ACF与PACF的拖尾与截尾

1.2.2法二:AIC与BIC信息准则

1.3.step3:模型构建与预报

1.3.4step4:模型检验

二、Eviews处理

2.1.step1:平稳性检验与白噪音检验

2.2.step2:模型识别与定阶

2.3.step3:模型构建与预报

2.3.1模型构建:

2.3.2模型预报:

2.4.step4:模型检验

2.5ARCH模型的检验和建立

ARCH效应检验:LM检验

对残差建立ARCH模型

三、Python实践过程 


以《应用时间序列分析》王燕,第四版中p94-p96页中17题数据为例

基础介绍:

一、Python处理

重点参考文章:

时间序列模型(ARIMA和ARMA)完整步骤详述_Foneone的博客-CSDN博客_arma_order_select_ic

1.1.step1:平稳性检验与白噪音检验

首先可以绘制线图直接观察数据走势粗略判断平稳性,既无趋势也无周期;

df.plot(color='blue',title='data-17') #绘制时间序列的线图

1.1.1平稳性检验:ADF检验

· 检验假设:H0:存在单位根 vs H1:不存在单位根

如果序列平稳,则不应存在单位根,所以我们希望能拒绝原假设

· python代码:adfuller

from statsmodels.tsa.stattools import adfuller
adftest = adfuller(x, autolag='AIC')  #ADF检验

检验结果如下:

 adftest[0]:ADF检验的t值; adftest[1]:ADF检验的t值的p值; adftest[4:6]:ADF检验对应三个置信度(1%,5%,10%)的t值,可以直接将 adftest[0]与这三个值做比较;

由本输出结果来看-5.7185显著小于后面三个t值,且p值接近为0,因而在1%的显著水平下拒绝原假设,认为该序列平稳;

1.1.2差分修正:

若不平稳可以考虑做差分运算修正为平稳序列。若差分后平稳,则对原序列建立ARIMA模型。

· python代码:timeseries.diff( )

#### 差分运算
def diff(timeseries):
    d1_sale=timeseries.diff(periods=1).dropna()#dropna删除NaN
    d1_sale.plot(color='orange',title='diff1')
    return d1_sale

1.1.3白噪音检验:L-B统计量/Q统计量

· 检验假设与统计量:

(上图a.中的“残差”应当替换为“序列”)通常m取【n/10】or【根号n】若观测量较小也可以取【n/4】;若拒绝原假设则认为不是白噪音检验

· python代码:acorr_ljungbox

from statsmodels.stats.diagnostic import acorr_ljungbox #白噪声检验
test_value = acorr_ljungbox(timeseries, lags=1)

检验结果如下:

 test_value[1]为p值,所以可以在5%的显著水平下认为该序列不是一个白噪音序列

1.2.step2:模型识别与定阶

1.2.1法一:观察ACF与PACF的拖尾与截尾

· python代码:

plot_acf(timeseries,lags) #lags:延迟阶数

plot_pacf(timeseries,lags)

import statsmodels.api as sm
from statsmodels.graphics.tsaplots import plot_acf,plot_pacf
def determinate_order_acf(timeseries):  
    plot_acf(timeseries,lags=30) #自己定延迟数
    plot_pacf(timeseries,lags=30)
    plt.show()

输出结果如下:

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值