1 ADF檢驗也叫擴展的迪克富勒檢驗,主要作用是檢測序列的平穩性,也是最常用檢測序列平穩性的檢驗方法。
2 何為:平穩性?單位根?(略),見這部分隨便的其他內容有講解。是建模對數據的先決條件。
3 ADF檢驗的三種情形:

4 在MATLAB中常用的adf檢驗的操作:
4.1 經過差分使序列平穩。
% 如果結果h=0,表示拒絕原假設,數據不平穩
% 如果結果h=1,表示不拒絕原假設,數據平穩
% 注意這里和上圖不一樣,原假設為平穩1,。
%% 單位根檢驗實例 % Load Canadian inflation rate data. load Data_Canada Y = DataTable.INF_C; % Test the time series for a unit root. h = adftest(Y); disp(h); % 顯示結果: % h = % logical % 0 % 非平穩 % 如果結果h=0,表示拒絕原假設,數據不平穩 % 如果結果h=1,表示不拒絕原假設,數據平穩 %% 使序列進行平穩,進行一階差分 Y1 = diff(Y); % 經過一階差分 h1 = adftest(Y1); disp(h1); % h1 = % logical % 1 % 平穩 % 如果結果h=0,表示拒絕原假設,數據不平穩 % 如果結果h=1,表示不拒絕原假設,數據平穩
4.2 adf檢驗的其他輸出內容,詳細見MATLAB,doc中的內容
%% 另外,adf檢驗還有其他的輸出內容。
[h2,pValue,stat,cValue,reg] = adftest(Y1);
% h2 =
% logical
% 1
% pValue = % p值
% 1.0000e-03
% stat =
% -4.8186
% cValue =
% -1.9478
% reg =
% 包含以下字段的 struct:
%
% num: 40
% size: 39
% names: {'a'}
% coeff: 0.2285
% se: 0.1601
% Cov: 0.0256
% tStats: [1×1 struct]
% FStat: [1×1 struct]
% yMu: 0.0028
% ySigma: 1.5513
% yHat: [39×1 double]
% res: [39×1 double]
% DWStat: 1.8378
% SSR: 4.6502
% SSE: 86.7950
% SST: 91.4452
% MSE: 2.2841
% RMSE: 1.5113
% RSq: 0.0509
% aRSq: 0.0509
% LL: -70.9449
% AIC: 143.8898 % AIC信息准則
% BIC: 145.5533 % BIC信息准則
% HQC: 144.4866 % HQC信息准則
4.3 據上圖,三種情形在MATLAB的adftest中的選擇。
%% 輸入adf檢驗其他的內容
[h3,~,~,~,reg3] = adftest(Y1,'model','AR');
[h4,~,~,~,reg4] = adftest(Y1,'model','ARD');
[h5,~,~,~,reg5] = adftest(Y1,'model','TS');
disp([h3,h4,h5]);
disp([reg3.AIC,reg4.AIC,reg5.AIC;reg3.BIC,reg4.BIC,reg5.BIC...
;reg3.HQC,reg4.HQC,reg5.HQC]);
% 'model','AR';表示無截距項,無趨勢項的單位根檢驗
% 'model','ARD';表示有截距項,無趨勢項的單位根檢驗
% 'model','TS';表示由截距項,有趨勢項的單位根檢驗
% 另外,AIC,BIC,HQC准則在reg結構體內,可以調用用值觀察那種情形平穩
% 默認為'AR'形式,也就是不含截距項,不含趨勢項的單位根檢驗
4.4 如果選擇滯后項,可以用用戶設定的方式,如果滯后項設定為0,為DF檢驗。建議用戶這里不用自己設定
%% 滯后項 [h6,~,~,~,reg6] = adftest(Y1,'model','AR','lags',0); %DF檢驗形式 [h7,~,~,~,reg7] = adftest(Y1,'model','AR','lags',[0,1,2]);% 也可以對趨勢項進行遍歷
5 檢驗流程

