一、概述
首先引入Daniel檢驗的概念,即檢測序列平穩性的一種方法,它是建立在Spearman相關系數(一種秩相關系數)的基礎上的。
對於二維總體(X,Y)的樣本觀測數據,其中各分量
、
..
的秩統計量為R1、R2…Rn,y1,y2..yn的秩統計量為S1、S2…Sn。
推廣到時間序列預測樣本,Spearman的相關系數為:
構造統計量:
對於給定的alpha,通過t分布表可以查得的值,如果統計量大於查表的值,則接受檢驗假設H0: =0,即序列平穩,可以准確預測,否則拒絕H0,序列不平穩。
二、時間序列預測的優缺點分析
(一)優點:
根據過去的事物發展規律預測將來,對於波動不大的事物變化,有較為精確的預測性。適合用於預測經濟類等波動不明顯的問題。
(二)缺點:
如果事物的發展規律波動較大,Spearman相關系數的假設檢驗不通過,T檢驗值大於,序列不平穩,預測值出現較大誤差。
三、ARIMA時間序列預測實例:
MATLAB代碼:
1 %% 時間序列預測法 2 clc,clear all; 3 a = [15.2 15.9 18.7 22.4 26.9 28.3 30.5 33.8 40.4 50.7 58 66.7 81.2 83.4]; 4 Rt = tiedrank(a) %求原始序列的秩統計量、(即將原始數據(因變量)從小到大排列) 5 n = length(a); 6 t = 1:n; 7 disp('Qs:') 8 Qs = 1-6/(n*(n^2-1))*sum((t-Rt).^2) %di=Ri(自變量的秩統計量)-Si(因變量的秩統計量),即為di=t-Rt 9 T = Qs*sqrt(n-2)/sqrt(1-Qs.^2); 10 t_0 = tinv(0.975,n-2) %計算alpha/2的值 11 b = diff(a) %求原始序列的一階差分 12 m = ar(b,2,'ls') %估計標量時間序列的AR模型參數,option為最小二乘法 13 %僅用於標量時間序列。對於多變量數據,請使用arx。 14 disp('原始數據的預測值(第二個參數必須為列向量):') 15 bhat = predict(m,b') 16 disp('計算一個預測值(第二個參數必須為列向量):') 17 bhat(end+1) = forecast(m,b',1) 18 ahat = [a(1),a+bhat'] %原始數據預測值 19 delta = abs((ahat(1:end-1)-a)./a) %相對誤差
四、模型推廣及復用