【小白从小学Python、C、Java】
【Python全国计算机等级考试】
【Python数据分析考试必会题】
● 标题与摘要
Python数据分析
ADF平稳性假设检验
● 选择题
以下关于ADF检验说法错误的是:
A 可以用来检验时间序列是否平稳
B Python中可以用statsmodels模块实现ADF检验
C 在Arima模型中不会用到ADF检验
D 原序列未通过ADF检验,可以进行差分处理
● 问题解析
1.在数据分析中,ADF检验一般是用来检验给定的时间序列是否平稳的,有些模型对于时间序列的平稳性是有要求的。
2.python中可使用现成的工具statsmodels来实现adf检验,在使用前需要用from statsmodels.tsa.stattools import adfuller 语法去导入模块,如附图1所示。
3.Arima模型是差分整合移动平均自回归模型,是时间序列分析中的一种模型,在使用该模型之前,需要对时间序列数据的平稳性进行检验,所以可能会用到ADF检验。
4.若时间序列未通过ADF检验,则可以对原序列先进行一阶差分的处理,若一阶差分后的数据仍未平稳,可以继续进行二阶差分、多阶差分,如附图1所示,原时间序列未通过ADF检验,将原序列一阶差分之后通过了ADF检验。
5.ADF检验的平稳性判断:ADF检验输出结果的第一个值是t统计量,第二个值是p值。时间序列是否通过了ADF检验,一般可以通过P值判断,一般以5%为临界值水平,P值小于0.05,表明拒绝原假设——序列是不平稳的。例如:p值为0.0229<0.05,说明序列在5%显著性水平下平稳。
● 附图
图1 statsmodels模块实现ADF检验
● 附图代码
from statsmodels.tsa.stattools import adfuller
import pandas as pd
time=pd.date_range(start="2022-01-01",end="2022-01-07",periods=7)
price=[1.2, 2.3, 3.2, 4.2, 5.4, 6.1, 7.7]
df1 = pd.DataFrame({'time':time,'price':price})
print(df1)
price1=df1['price']
adf_result1 = adfuller(price1)
print(adf_result1)
print(adf_result1[1])
price2=price1.diff(1)
price2=price2.dropna()
adf_result2 = adfuller(price2)
print(adf_result2)
print(adf_result2[1])
● 正确答案
C
● 温馨期待
期待大家提出宝贵建议,互相交流,收获更大,助教:qmy
欢迎大家转发,一起传播知识和正能量,帮助到更多人。期待大家提出宝贵改进建议,互相交流,收获更大。辛苦大家转发时注明出处(也是咱们公益编程交流群的入口网址),刘经纬老师共享知识相关文件下载地址为:http://liujingwei.cn