Ⅰ 兩個時間序列的相關系數能否反映它們之間的相似性
從概念上說基本可以。在應用學科里,斗吵分析相關系數,是很普遍的做法。
舉個例子:很多金融分析,就通過做兩支股票價格波動(實際上是兩個時間序列)的相關,來判斷他們之間的關系,這個做法在行業里非常普遍,比如基金經理,就要分析他的portfolio里各支股票之間的相關系數,來達到最大化收益(portfolio期望值)同時最小化風險(portfolio標准方差)的目的。
比如,同一板塊里(比如高科技板塊)的股票價格波動,經常是正相關。直接競爭行業或公司之間的股票價格波動,不少是負相關。
下面是詞條里抄的:
相關系數又稱線性相關系數.它是衡量變數之間線性相關程度的指標。樣本相關系數用r表示,總體相關系數用ρ表示,相關系數的取值范圍為[-1,1]。|r|值越大,誤差Q越小,變數之間的線性相關程度越高;|r|值越接近0,Q越大,變數之間的線性相關程度越低。
相關系數又稱皮(爾生)氏積矩相關系數,說明兩個現象之間相關關系密切程度的統計分析指標。相關系數用希臘字母γ表示,γ值的范圍在-1和+1之間。γ>0為正相關,γ<0為負相關。γ=0表示不相關;γ的絕對值越大,相關程度越高。
兩個現象之間的相關程度,一般劃分為四級:
如兩者呈正相關,r呈正值,r=1時為完全正相關;如兩者呈負相關則r呈負值,而r=-1時為完全負相關。完全正相關或負相關時,所有圖點都在直線回歸線上;點子的分布在直線回歸線上下越離散,r的絕對值越小。當例數相等時,相關系數的絕對值越接近1,相關禪銷碰越密切;越接近於0,相關越不密切。當r=0時,說明X和Y兩個變數賀談之間無直線關系。通常|r|大於0.8時,認為兩個變數有很強的線性相關性。
Ⅱ 基於Dynamic Time Warping(DTW)的時間序列相似度計算與效率優化
首先,我們要了解時間序列問題。時間序列是事件隨時間變化而變化的序列,比如一個人做後空翻的動作,相機每秒記錄10張照片,形成時間序列。或者錄制一段話,錄音筆每秒記錄10個音,形成時間序列。生活中很多現象,如一天的室內溫度、一個月的股票價格,都是時間序列。
對於這些時間序列,我們經常想知道兩個時間序列之間的相似度。例如,家中的語音識別開門系統,先記錄下「我要開門」的聲音,以後每次說出「我要開門」,系統會匹配這兩個時間序列的相似度,相似度高就開門,低則不開門。動態時間規整(Dynamic Time Warping,簡稱DTW)是一種計算時間序列相似度的經典且常用方法。
在介紹DTW之前,我們先了解一個基礎的相似度計算方法:歐氏距離(Euclidean Distance,ED)。以時間序列Q和C為例,假設長度都是N,ED的計算方法是在每個時間點上將Q值減去C值,將這些差值相加得到總距離D。然而,ED存在一個問題:如果兩個時間序列形狀相似但存在時間偏移,ED計算出的相似度可能不高。
動態時間規整(DTW)則解決了這個問題。DTW的目標是找到最匹配的Q和C之間的距離,定義最匹配的方式是讓總距離最小。DTW需要構建一個矩陣DA,y軸代表時間序列Q,x軸代表時間序列C。矩陣從左下角開始填起,直到右上角。每個點代表Q和C之間距離的累加值。矩陣建立完成後,從右上角開始追溯,找到最短距離的路徑,即為兩個時間序列之間的最佳匹配。
接下來,我們使用動態規劃演算法(Dynamic Programming)來實現DTW。構建一個矩陣,左下角為Q的第一個時間點和C的第一個時間點的差值,右上角為Q的最後一個時間點和C的最後一個時間點的差值。矩陣中的每個點代表從起點到當前點的最短距離。我們從左下角開始,計算每個點與其左下方三個點的距離,並選取最小值作為當前點的距離。最終,我們從右上角找到最短的路徑,即為兩個時間序列之間的最匹配路徑。
實現DTW的代碼中,我們首先構建矩陣並填充,通過計算每個點與其左下方三個點的距離,選擇最小值作為當前點的距離。最後,通過回溯路徑,找到最匹配的Q和C之間的距離。
然而,DTW也有其缺點,主要在於時間復雜度高,為O(NM),其中N和M分別是兩個時間序列的長度。為提高效率,我們可以使用Early Abandoning Z-Normalisation方法,提前放棄計算距離超過當前最優距離的時間序列。Normalisation是為了確保時間序列在比較前已標准化,防止不同尺度帶來的影響。此外,通過Reordering Early Abandoning方法,我們優化計算順序,從而減少計算量。
再進一步,我們可以通過Reversing the Query/Data Role方法,改變查詢和數據的角色,利用Lower Bounding方法來進一步減少計算量。Cascading Lower Bounds方法則結合多個Lower Bounding方法,根據時間復雜度和緊湊度權衡,實現高效計算。
綜上所述,動態時間規整(DTW)是一種高效計算時間序列相似度的方法,通過一系列剪枝優化,提高了計算效率。這些方法不僅適用於語音識別、模式識別等領域,也廣泛應用於各類時間序列相似度計算。