考虑一个 ARIMA 过程生成的时间序列
其中和的所有根都在单位圆外,的所有根都在单位圆上。
在这个序列中引入一个异常,得到
其中
表示异常发生的时刻,表示异常的量级,表示异常的演化模式。
下面考虑 4 种特定的异常,分别是 innovational outlier (IO),additive outlier (AO),level shift (LS) 以及 temporary change (TC)。它们的定义如下:
additive outlier (AO) 表现为序列的值在单次观测中突然变大或变小,而随后的观察结果不受异常值的影响。level shift (LS) 在异常值之后出现的所有观察值都偏移到一个新的水平。temporary change (TC) 和 LS 类似,只不过异常值的影响在随后的观察中呈指数减小,序列最终会回归到正常水平。实际上 AO 和 LS 可以看作是 TC 在 和 时的特例。这 3 种异常和系统之间是独立的,而 innovational outlier (IO) 则不然。IO 通过时间序列的相关结构,波及到与之邻近的一系列观察点。
例子:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.signal import lfilter, unit_impulse
def arma_process(ar, ma, size=200, scale=1., e=None):
if e is None:
e = np.random.normal(size=size)
return lfilter(ma, ar, scale*e)
# 考虑一个 ARMA(1, 1) 模型
ar = [1, 0.85]
ma = [1, 0.65]
sample = arma_process(ar, ma)
io = arma_process(ar, ma, e=10*unit_impulse(200, 100))
ao = 10*unit_impulse(200, 100)
tc = arma_process([1, -0.9], [1], e=10*unit_impulse(200, 100))
ls = arma_process([1, -1], [1], e=10*unit_impulse(200, 100))
x = range(200)
plt.figure(figsize=(12, 12))
plt.subplot(511)
plt.plot(x, sample)
plt.title('original signal')
plt.subplot(523)
plt.plot(x, io)
plt.title('innovational outlier (IO)')
plt.subplot(524)
plt.plot(x, sample+io, label='with IO')
plt.plot(x, sample, label='without IO')
plt.title('signal with IO')
plt.legend()
plt.subplot(525)
plt.plot(x, ao)
plt.title('additive outlier (AO)')
plt.subplot(526)
plt.plot(x, sample+ao, label='with AO')
plt.plot(x, sample, label='without AO')
plt.title('signal with AO')
plt.legend()
plt.subplot(527)
plt.plot(x, tc)
plt.title('temporary change (TC)')
plt.subplot(528)
plt.plot(x, sample+tc, label='with TC')
plt.plot(x, sample, label='without TC')
plt.title('signal with TC')
plt.legend()
plt.subplot(529)
plt.plot(x, ls)
plt.title('level shift (LS)')
plt.subplot(5,2,10)
plt.plot(x, sample+ls, label='with LS')
plt.plot(x, sample, label='without LS')
plt.title('signal with LS')
plt.legend()
plt.tight_layout()
plt.show()
更复杂的异常通常可以近似看作这几种异常的组合。
在 引入 m 个异常,则时间序列可以表示为:
其中 为处异常的演化模式。
参考文献
- Chen, C., & Liu, L.-M. (1993). Forecasting time series with outliers. Journal of Forecasting, 12(1), 13–35. https://doi.org/10.1002/for.3980120103
- Chen, C., & Liu, L.-M. (1993). Joint Estimation of Model Parameters and Outlier Effects in Time Series, Journal of the American Statistical Association, 88(421), 284-297. https://doi.org/10.1080/01621459.1993.10594321
- Outliers - Characteristics of Time Series - IBM Knowledge Center