首先从时间的角度可以把一个序列基本分为3类:
1.纯随机序列(白噪声序列),这时候可以停止分析,因为就像预测下一次硬币哪一面朝上一样毫无规律。
2.平稳非白噪声序列,它们的均值和方差是常数,对于这类序列,有成熟的模型来拟合这个序列在未来的发展状况,如AR,MA,ARMA等(具体模型算法及实现在后面)
3.非平稳序列,一般做法是把他们转化为平稳的序列,在按照平稳序列的算法进行拟合。如果经过差分后平稳,则应使用ARIMA模型进行拟合。下面需要知道你的序列属于哪一种(平稳性检验)
(1)单位根检验
函数:adftest(A)
结果为0,则序列为非平稳
(2)Daniel检验
对于显著性水平A,计算时间序列的秩相关系数q,若T大于二分a数,则认为序列非平稳。
函数:RT = tiedrank(a);
n = length(a);t = 1:n;
q = 1-6/(n*(n2-1))sum((t-Rt).2)
T = Qssqrt(n-2)/sqrt(1-q^2);
t_0 = tinv(0.975,n-2)
三、选择模型
平稳的序列自相关图和偏自相关图不是拖尾就是截尾。
截尾就是在某阶之后,系数都为 0 。
拖尾就是有一个衰减的趋势,但是不都为 0 。
如果自相关是拖尾,偏相关截尾,则用 AR 算法
如果自相关截尾,偏相关拖尾,则用 MA 算法
如果自相关和偏相关都是拖尾,则用 ARMA 算法, ARIMA 是 ARMA 算法的扩展版,用法类似 。