時間序列分析 | 相似性度量基本方法

林勝聯府發表於2021-07-16

前言

時間序列相似性度量是時間序列相似性檢索、時間序列無監督聚類、時間序列分類以及其他時間序列分析的基礎。給定時間序列的模式表示之後,需要給出一個有效度量來衡量兩個時間序列的相似性。時間序列的相似性可以分為如下三種:

1、 時序相似性

  • 時序相似性是指時間序列點的增減變化模式相同,即在同一時間點增加或者減少,兩個時間序列呈現一定程度的相互平行。這個一般使用閔可夫斯基距離即可進行相似性度量。

2、 形狀相似性

  • 形狀相似性是指時間序列中具有共同的形狀,它通常包含在不同時間點發生的共同的趨勢形狀或者資料中獨立於時間點相同的子模式。兩個時間序列整體上使用閔可夫斯基距離刻畫可能不相似,但是他們具有共同相似的模式子序列,相似的模式子序列可能出現在不同的時間點。這個一般使用DTW動態時間規整距離來進行相似性刻畫。

3、變化相似性

  • 變化相似性指的是時間序列從一個時間點到下一個時間點的變化規律相同,兩個時間序列在形狀上可能並不一致,但是可能來自於同一個模型。這個一般使用ARMA或者HMM等模型匹配方法進行評估。

時間序列相似性度量可能會受到如下因素影響:

  • 時間序列作為真實世界的系統輸出或者測量結果,一般會夾雜著不同程度的 噪聲擾動
  • 時間序列一般會呈現各種變形,如
    • 振幅平移
    • 振幅壓縮
    • 時間軸伸縮
    • 線性漂移
    • 不連續點等
  • 時間序列之間可能存在不同程度的關聯;

以上因素在衡量時間序列相似性度量的時候要根據具體情況進行具體分析。

閔可夫斯基距離

給定兩條時間序列:

\[P=(x_1,x_2,...x_n),\ \ Q(y_1,y_2,...y_n) \]

閔可夫斯基距離的定義如下:

\[dist(P,Q) = \left(\sum\limits_{i=1}^n|x_i-y_i|^p\right)^{\frac{1}{p}} \]

注:

  1. \(p=1\)時,閔可夫斯基距離又稱為 曼哈頓距離

    \[dist(P,Q)=\sum\limits_{i=1}^n |x_i-y_i| \]

  2. \(p=2\)時,閔可夫斯基距離又稱為 歐氏距離

    \[dist(P,Q) = \left(\sum\limits_{i=1}^n|x_i-y_i|^2\right)^{\frac{1}{2}} \]

  3. \(p\rightarrow\infty\)時,閔可夫斯基距離又稱為 切比雪夫距離

    \[\lim\limits_{p\rightarrow\infty}\left(\sum\limits_{i=1}^n|x_i-y_i|^p\right)^{\frac{1}{p}} = \max\limits_{i}|x_i-y_i| \]

  4. 閔可夫斯基距離模型簡單,運算速度快。

  5. 閔可夫斯基距離比較直觀,但是它與資料的分佈無關,具有一定的侷限性

    • 在時間軸伸縮和彎曲情況下無法給出確切的度量

    • 只能針對長度相等的時間序列

    • 如果時間序列 \(P\) 的幅值遠遠大於 \(Q\) 的幅值,那麼得到的計算結果就會被時間序列 \(P\) 所過度作用。

    • 計算之前需要對資料進行尺度變化,例如減去均值併除以標準差,或者極大極小歸一化

  6. 這種方法在假設資料各個維度不相關的情況下,利用資料分佈的特性計算出不同的距離,如果資料維度之間資料相關,這時該類距離就不合適了!

餘弦相似度

給定兩個時間序列:

\[P=(x_1,x_2,...x_n),\ \ Q(y_1,y_2,...y_n) \]

餘弦相似度如下:

\[D_{cos}(P,Q) = \frac{\sum\limits_{i=1}^n x_iy_i}{\sqrt{\sum\limits_{i=1}^nx_i^2}\sqrt{\sum\limits_{i=1}^ny_i^2}} \]

動態時間規整距離

動態時間規整距離是一種動態規劃方法,通過尋找最小的對齊匹配路徑使兩序列之間距離最小,因而DTW可計算不同長度序列的距離,對時間序列偏移不敏感。

給定兩個時間序列(兩個時間序列並一定等長,即m和n不一定相等):

\[P=(x_1,x_2,...x_m),\ \ Q(y_1,y_2,...y_n) \]

\(A_{m\times n}=(a_{ij})_{m\times n}\) 表示 \(P\)\(Q\) 的距離矩陣,其中 \(a_{ij}\) 基於基距離方法進行計算,一般採用歐氏距離的平方:

\[a_{ij} = (x_i-y_j)^2 \]

然後在距離矩陣中,令\(W=w_1,w_2,...,w_k\)為時間序列 \(P\)\(Q\) 的動態時間彎曲路徑,其中 \(w_k=(a_{ij})_k\) 是路徑的第k個元素,且路徑 \(W\) 需要滿足以下條件:

1、 \(\max\{m,n\}\leq K\leq m+n-1\)

2、 \(w_1=a_{11}, w_k=a_{mn}\)

3、單調性:若\(w_k=a_{ij}, w_{k+1}=a_{kl}\),則需保證

\[0\leq k-i\leq 1, \ \ 0\leq l-j\leq 1 \]

根據上述三個條件可知,動態時間彎曲路徑並不唯一,在所有的動態時間彎曲路徑中使得 \(\sqrt{\sum\limits_{i=1}^K w_i}\) 的值最小的路徑稱為最佳動態時間彎曲路徑,所對應的距離即為動態時間彎曲距離。記 \(DTW (P,Q)\) 為P和Q之間的DTW距離,則有:

\[DTW(P,Q) = \min\left(\sqrt{\sum\limits_{i=1}^{K}w_i}\right) \]

為什麼稱DTW為動態時間規整距離呢?

因為DTW距離的計算過程是一個 動態規劃過程, 若令 \(P\)\(Q\)\(i\)\(j\) 處累積距離為 \(L(i,j)\),則由條件3可知,累積距離存在如下遞迴關係:

\[L(i,j) = \min\left[L(i-1,j-1), L(i-1,j), L(i,j-1)\right]+a_{ij} \]

易知:\(L(1,1)=a_{11}\), 且 \(DTW(P,Q)=L(m,n)\),因此DTW的計算過程就是:

  • 先使用基距離,如歐式距離初始化距離矩陣 \(A_{m\times n}=(a_{ij})_{m\times n}\)
  • 然後使用累積距離的遞迴公式求解得到\(L(m,n)\) 即為DTW距離

注:

  1. DTW距離通過允許序列在時間軸上偏移,克服了閔可夫斯基距離不能度量不等長序列、對於噪聲和振幅伸縮無法刻畫的缺陷
  2. 可以度量任意兩個長度時間序列間的距離,對時間軸上的扭曲不敏感,適用性、可靠性更強
  3. 計算複雜度高:\(O(mn)\) , 時間代價昂貴
  4. DTW距離不滿足三角不等式
  5. 相應改進方案:下界函式、加權動態時間規整距離、微分動態時間規整距離、FastDTW

基於相關性的相似度度量方法

給定兩個時間序列:

\[P=(x_1,x_2,...x_n),\ \ Q(y_1,y_2,...y_n) \]

相關係數定義如下:

\[Cor(P,Q) = \frac{Cov(P,Q)}{\sqrt{Var(P)\sqrt{Var(Q)}}} \]

相關係數為1,表示完全一致;相關係數為-1,表示完全負相關;相關係數為0,表示沒有相關性

基於互資訊的相似性度量方法

給定兩個時間序列:

\[P=(x_1,x_2,...x_n),\ \ Q(y_1,y_2,...y_n) \]

互資訊定義如下:

\[I(P,Q)=H(P)+H(Q)-H(P,Q) \]

互資訊取值範圍為\([0,\infty]\),互資訊為0表示兩者之間沒有公共資訊,互資訊為\(\infty\)表示相關性特別大,類似於相關係數的絕對值為1. 除此之外,可利用如下公式對互資訊進行歸一化:

\[\Lambda(P,Q) = \sqrt{1-e^{2I(P,Q)}} \]

基於互資訊的相似性度量方法(可能擴充)

上面基於互資訊的相似性度量並沒有考慮到不同時間序列之間的時間延遲關係,如果他們存在一定程度的時間延遲,那麼可以考慮如下方式的擴充:

  • 計算延遲互資訊,然後對不同的時間延遲所得互資訊求最大值或者直接求和
  • 計算轉移熵,然後求最大值或者直接求和

馬氏距離

上面提到了基於相關性和基於互資訊的距離,僅僅考慮到了變數之間的相關性,而馬氏距離則是同時考慮到變數不同維度之間存在相關性和尺度變換的關係,它表示的是變數之間的協方差距離。

假設有兩個n維空間中的點:

\[P=(x_1,x_2,...x_n),\ \ Q(y_1,y_2,...y_n) \]

那麼馬氏距離的定義為:

\[D_M(P,Q) = \sqrt{(P-Q)^T\Sigma^{-1}(P-Q)} \]

其中 \(\Sigma\) 是個協方差矩陣,但是貌似跟 \(P\)\(Q\) 沒啥關係,它應該是個 \(n\times n\) 的矩陣, 刻畫了n個屬性之間的關係,計算方式如下:

  • 對n維變數進行取樣,取樣得到樣本集合:\(\{P_1,P_2,...,P_m\}\),這個集合的規模可能比 \(n\) 大很多, 然後每個屬性有一個時間序列,計算各個屬性之間的協方差矩陣,以及各個屬性的均值組成的均值向量 \(\mu=[\mu_1,\mu_2,...,\mu_n]\)

如果利用矩陣分解,如LU分解對協方差矩陣 \(\Sigma\) 進行分解的話:\(\Sigma=LL^T\),然後對 \(P-Q\)做如下處理:

\[Z = L^{-1}(P-Q) \]

則馬氏距離可以表示為:

\[D_M(P,Q) = Z^TZ \]

特別地,馬氏距離可以用來衡量一個點 P 和樣本集合 \(\{P_1,P_2,...,P_m\}\) 之間的距離,這是通過比較 P 和均值向量 \(\mu\) 得到的:

\[D_M(P) = \sqrt{(P-\mu)\Sigma^{-1}(P-\mu)} \]

注:

  • 馬氏距離計算的不是時間序列之間的距離,而是對歐氏距離的推廣,計算的是兩個點之間的距離
    • 馬氏距離需要一個樣本集合來估算樣本均值和協方差。
    • 馬氏距離相當於將變數按照主成分進行旋轉,讓維度之間相互獨立,然後進行標準化,讓維度同分布
    • 主成分就是特徵向量方向,每個方向的方差就是對應的特徵值,所以其實就是按照特徵向量的方向進行旋轉,然後縮放特徵值倍

優點:

  • 馬氏距離不受量綱的影響,且由標準化資料和中心化資料計算出的兩點之間的馬氏距離相同
  • 馬氏距離可以排除變數之間相關性的干擾

缺點:

  • 需要計算協方差矩陣,協方差矩陣還需要可逆
  • 涉及到矩陣求逆
  • 不能處理非線性流形上的問題

參考文獻

時間序列聚類相關知識的總結與梳理: https://mp.weixin.qq.com/s/iusTb9UwKybwJBqd2kSvUA

機器學習基礎 | 互相關係數和互資訊異同探討:https://www.cnblogs.com/fangsf/p/15000465.html

馬氏距離:https://blog.csdn.net/qq_28087491/article/details/114370480?ops_request_misc=%7B%22request%5Fid%22%3A%22162639931516780274116169%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=162639931516780274116169&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-2-114370480.first_rank_v2_pc_rank_v29&utm_term=%E9%A9%AC%E6%B0%8F%E8%B7%9D%E7%A6%BB&spm=1018.2226.3001.4187

榮馨兵. 基於相似搜尋的時間序列預測方法及其應用[D]. 大連海事大學, 2018.

張勇. 時間序列模式匹配技術研究[D]. 華中科技大學. 2012

相關文章