ADF检验(statsmodels.tsa.stattools.adfuller())

statsmodels.tsa.stattools.adfuller():迪基-福勒检验Augmented Dickey-Fuller(ADF) Test

格式:

statsmodels.tsa.stattools.adfuller(x, maxlag=None, regression=‘c’, autolag=‘AIC’, store=False, regresults=False)

参数:

① x :要测试的数据系列。
②maxlag:int;测试中包含的最大延迟,默认为12 *(nobs / 100)^ {1/4}。
③regression:{‘c’,‘ct’,‘ctt’,‘nc’};包含在回归中的常量和趋势顺序。
‘c’:仅限常量(默认值)。
‘ct’:恒定和趋势。
‘ctt’:常数,线性和二次趋势。
‘nc’:没有恒定,没有趋势。
④autolag: {‘AIC’,‘BIC’,‘t-stat’,None};自动确定滞后时使用的方法。
如果为None,则使用maxlag滞后。
如果是’AIC’(默认值)或’BIC’,则选择滞后数以最小化相应的信息标准。
基于’t-stat’的maxlag选择。从maxlag开始并使用5%大小的测试来降低延迟,直到最后一个滞后长度的t统计量显着为止。
⑤store:bool;如果为True,则另外返回adf统计信息的结果实例。默认值为False。
⑥regolults:bool,optional;如果为True,则返回完整的回归结果。默认值为False。

返回值:

①ADF:float;测试统计(检验的结果,也就是统计量的值)。
②pvalue:float;probability value(统计量的概率P值)。
③usedlag:int;使用的滞后数量(计算过程中用到的延迟阶数)。
④NOBS:int;用于ADF回归和计算临界值的观察数(用于ADF回归和计算的观测值的个数)。
⑤critical values:dict;测试统计数据的临界值为1%,5%和10%(配合第一个一起看的,是在99%,95%,90%置信区间下的临界的ADF检验的值。)。
⑥icbest:float;如果autolag不是None,则最大化信息标准。
⑦resstore:ResultStore, optional; 一个虚拟类,其结果作为属性附加。

参考文献:

  • https://blog.youkuaiyun.com/qq_36707798/article/details/88640684

  • https://blog.youkuaiyun.com/orDream/article/details/100038076?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3.pc_relevant_antiscanv2&utm_relevant_index=5

  • https://blog.youkuaiyun.com/The_Time_Runner/article/details/89969173

### ADF检验及其P值的解读 ADF(Augmented Dickey-Fuller Test)是一种用于检测时间序列是否存在单位根的方法。如果时间序列具有单位根,则该序列是非平稳的;反之,如果没有单位根,则可以认为序列是平稳的。 当ADF检验的结果显示 **p值为0.000** 时,这意味着在给定的显著性水平下(通常为0.05),有足够的证据拒绝原假设 \(H_0\),即时间序列存在单位根[^2]。具体来说: - 原假设 (\(H_0\)):时间序列存在单位根(非平稳)。 - 备择假设 (\(H_a\)):时间序列不存在单位根(平稳)。 #### P值的意义 P值表示观察到的数据与原假设一致的概率。对于ADF检验而言: - 如果 p值 ≤ 显著性水平(如0.05),则拒绝原假设,说明时间序列是平稳的。 - 如果 p值 > 显著性水平,则无法拒绝原假设,意味着时间序列可能非平稳。 当 p值接近于零(例如0.000),这表明数据强烈支持备择假设,即时间序列很可能是平稳的。这种情况下,我们可以更有信心地认为时间序列不含有单位根。 #### 实践中的应用 在实际的时间序列分析中,比如金融数据分析或经济预测建模,确保输入模型的时间序列是平稳的是非常重要的。这是因为许多经典的时间序列模型(如ARIMA模型)都依赖于平稳性的前提条件[^3]。通过ADF检验确认序列平稳后,才能进一步进行模型拟合和其他统计推断操作。 另外,在多变量时间序列分析里,像协整关系的研究也需要先验证各单个序列是否具备一定的特性,比如通过ADF测试判断其稳定性后再做更深入探讨,如同引用所提到的例子那样评估两只股票之间是否存在长期均衡联系[^4]。 ```python from statsmodels.tsa.stattools import adfuller def perform_adf_test(series): result = adfuller(series.dropna()) print(f'ADF Statistic: {result[0]}') print(f'p-value: {result[1]}') # Example usage with a time series 'data' perform_adf_test(data['close']) ``` 此代码片段展示了如何利用`statsmodels`库执行ADF检验并打印出相应的统计量和p值以便后续解释。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值