時間序列的ADF校驗(單位根校驗)
時間序列的ADF校驗(單位根校驗)
使用模組statsmodels裡的
匯入模組
from statsmodels.tsa.stattools import adfuller
import pandas as pd
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
匯入資料
df = pd.read_csv('testdata.csv')
df['d_time'] = df['d_time'].apply(pd.to_datetime)
df.set_index('d_time', inplace=True)
df1= df.resample('5s').mean()
df1.reset_index(inplace=True)
df2 = pd.DataFrame(df1['value'])
adfuller(df2)
輸出結果
(-1.172934882196818,
0.6851287621408015,
52,
86348,
{'1%': -3.430425734173461,
'5%': -2.861573473259827,
'10%': -2.56678781665506},
-712254.0157072636)
進行一階差分,再進行校驗
df2_diff = df2.diff()
df2_diff.dropna(inplace=True)
adfuller(df2_diff)
結果
(-36.186333373649646,
0.0,
51,
86348,
{'1%': -3.430425734173461,
'5%': -2.861573473259827,
'10%': -2.56678781665506},
-712245.3883643872)
引數 | 說明 |
---|---|
x (array_like,1d) | 資料系列 |
maxlag (int | 測試中包含的最大延遲,預設為12 *(nobs / 100)^ {1/4} |
regression({‘c’,’ct’,’ctt’,’nc’}) | 包含在迴歸中的常量和趨勢順序‘(c’:僅限常量(預設)‘ct’:恆定和趨勢 ‘ctt’:常數,線性和二次趨勢 ‘nc’:沒有恆定,沒有趨勢) |
autolag {‘AIC’,’BIC’,’t-stat’,無} | 如果為None,則使用maxlag滯後 如果是’AIC’(預設值)或’BIC’,則選擇滯後數以最小化相應的資訊標準 基於’t-stat’的maxlag選擇。從maxlag開始並使用5%大小的測試來降低滯後,直到最後一個滯後長度的t統計量顯著為止 |
store(bool) | 如果為True,則另外返回adf統計資訊的結果例項。預設值為False |
regolults (bool,可選) | 如果為True,則返回完整的迴歸結果。預設值為False |
返回
值 | 說明 |
---|---|
adf (float) | 測試統計 |
pvalue (float) | MacKinnon基於MacKinnon的近似p值(1994年,2010年) |
usedlag (int) | 使用的滯後數量 |
nobs( int)用於ADF迴歸的觀察數和臨界值的計算 | |
critical values(dict) | 測試統計資料的臨界值為1%,5%和10%。基於MacKinnon2010) |
icbest(float) | 如果autolag不是None,則最大化資訊標準。 |
resstore (ResultStore,可選) | 一個虛擬類,其結果作為屬性附加 |
第一次
(-1.172934882196818,
0.6851287621408015,
52,
86348,
{'1%': -3.430425734173461,
'5%': -2.861573473259827,
'10%': -2.56678781665506},
-712254.0157072636)
adf>1%’ >5%’ >10%’ 且 p值很大,結論:不平穩
第二次,一階差分後
(-36.186333373649646,
0.0,
51,
86348,
{'1%': -3.430425734173461,
'5%': -2.861573473259827,
'10%': -2.56678781665506},
-712245.3883643872)
adf<1%’ <5%’ <10%’ 且 p值<0.05,結論:平穩序列
所以判斷為一階單整
參考:
https://www.itbook5.com/2019/08/11560/
相關文章
- vxe-table 校驗,根據行屬性校驗
- iview Form 表單校驗時,必傳符號錯位,校驗無效的某個原因ViewORM符號
- pydantic 欄位欄位校驗
- 使用hibernate校驗欄位
- springMVC:校驗框架:多規則校驗,巢狀校驗,分組校驗;ssm整合技術SpringMVC框架巢狀SSM
- WTForms 欄位 引數 校驗ORM
- vue表單校驗方法Vue
- 【java】校驗當前時間是否在規定的時間內Java
- element-ui自定義表單校驗規則及常用表單校驗UI
- 校驗十二小時制時間正規表示式
- JS對日期、時間校驗;相容IE new Date()JS
- antd頁面多表單校驗
- ECC校驗
- 身份證最後一位的校驗
- 一個簡單的身份證校驗
- PHP校驗15位和18位身份證號PHP
- SpringBoot分組校驗及自定義校驗註解Spring Boot
- 行式填報 資料校驗 --- 小計校驗
- element-ui的----el-form表單校驗巢狀表單校驗(表單多層巢狀)+el-table和el-form巢狀使用表單校驗UIORM巢狀
- flutter - 登陸介面&表單校驗Flutter
- 小程式自定義表單校驗
- 校驗表單如何擺脫 if else ?
- 資料校驗
- 分組校驗
- CRC校驗原理
- 引數校驗
- eslint 校驗去除EsLint
- 校驗區間是否存在重疊(Python)Python
- 時間序列交叉驗證
- 學習LayUI時自研的表單引數校驗框架UI框架
- [譯]簡單的React身份校驗機制React
- 校驗二十四小時制時間正規表示式
- vue: el-form只校驗部分欄位VueORM
- 介面自動化全量欄位校驗
- 奇偶校驗(轉換二進位制、bitset)
- js-動態表單校驗-吐血總結最近遇到的變態表單校驗2---element+原生JS
- 【vue3+vue2】清除ElementUI的el-input標籤的校驗-區別——resetFields()-移除校驗結果並重置欄位值 & clearValidate()-移除校驗結果VueUI
- 正整數表單校驗規則