時間序列複雜性的度量 近似熵和樣本熵

2021-08-22 00:24:07 字數 1938 閱讀 4708

近似熵和樣本熵都是對非穩定時間序列的複雜型的度量,其思想都是檢測時間序列中的新的子串行產生概率。

近似熵和樣本熵計算方法:

近似熵的計算方法

原料:具有n個均勻資料點的時間序列;需要進行切割的子片段序列中的資料點數m;子片段之間相似性的容忍度r;

演算法步驟:

1.1將n個資料點的時間序列依照資料點的排序將其以m個資料點為乙個子片段進行劃分,總共可以得到(n-m+1)個子序列片段,將子串行片段使用x(i)進行標記;

1.2計算和當前第i個子片段序列相似的其他序列所佔的比例:

1.2.1計算當前第i個子序列片段x(i)和其他(n-m)個子序列段之間的距離d[x(i),x(j)]

d[x(i),x(j)]使用的演算法是計算兩個子串行片段對應資料點之間的最大距離:

上述距離需要總共計算n-m次;

1.2.2將這n-m個距離分別和給定的閾值r進行比較,當計算得到的距離小於閾值r時,認為當前距離對應的兩個子串行之間是相似的,對和當前序列相似的序列進行計數,得到number of x(j) such that d[x(i),x(j)]<=r,並且除以子片段序列總數n-m+1計算相似序列的比例

1.2.3上述是對乙個子串行片段x(i)的相似性片段比例進行統計得到,對整個時間序列對應的所有子片段做分析得到該m資料點規模下的子片段序列的平均相似率:

平均相似率計算有取log值

1.2.4同理取子串行片段的長度為m+1,重複上述操作得到:

φm+1(r)

1.2.5對兩個子串行片段的平均相似性做差得到原始訊號序列的近似熵:

樣本熵的就算方法

原料:具有n個均勻資料點的時間序列;需要進行切割的子片段序列中的資料點數m;子片段之間相似性的容忍度r;

演算法步驟:

2.1將n個資料點的時間序列依照資料點的排序將其以m個資料點為乙個子片段進行劃分,總共可以得到n-m+1個子序列片段,將子串行片段使用x(i)進行標記;

2.2計算和當前第i個子片段序列相似的其他序列所佔的比例:

2.2.1計算當前第i個子序列片段和其他(n-m)個子序列片段之間的距離d[x(i),x(j)]

d[x(i),x(j)]使用的演算法是計算兩個子串行片段對應資料點之間的最大距離:

上述距離需要總共計算n-m次;

2.2.2將這n-m個距離分別和給定的閾值r進行比較,當計算所得的距離小於閾值r時,被認定為當前距離對應的兩個子串行之間是相似的,對相似性序列個數進行計數,得到number of x(j) such that d[x(i),x(j)]<=r,並且除以子片段序列總數n-m計算和當前序列相抵的子串行的比例

2.2.3上述是對乙個子片段序列x(i)的相似性比例進行度量得到,對整個時間序列對應的所有子片段作分析得到該m資料點規模下的子片段序列的平均相似率:

平均相似率計算沒有取log值

2.2.4同理取子串行片段的長度為m+1,重複上述操作得到:

bm+1(r)

2.2.5取兩個平均值的對數做差得到原始序列訊號的樣本熵:

sampen = lnbm(r)-lnbm+1(r)

總結:通過上述對近似熵和樣本熵的計算步驟的對比發現可得兩者之間具有如下幾點區別

在進行比例計算是使用的是幾個子串行個數,是n-m個還是n-m+1個;

在對給定規模長度子串行的平均相似度的計算的時候是否進行了對數操作;

對最後熵的計算時有沒有進行對數操作;

通常嵌入維數m的選取是1或者是2;

相似度閾值r的選取是原始序列標準差的0.2倍左右

樣本熵只是對近似熵計算中的一些步驟進行了小小的變換,它和近似熵一樣是一種用於度量時間序列複雜性的方法,在評估生理時間序列複雜性和診斷病例狀態方面都有應用;

近似熵作為一種時間序列的統計量會導致不一樣的結果。

樣本熵相對近似熵來說具有相對一致性。

演算法時間複雜性歸納

註明出處 部落格原文 這一段很清晰的說明了時間複雜性的計算,已註明出處。下面分別對幾個常見的時間複雜度進行示例說明 1 o 1 temp i i j j temp 以上三條單個語句的頻度均為1,該程式段的執行時間是乙個與問題規模n無關的常數。演算法的時間複雜度為常數階,記作t n o 1 注意 如果...

程式設計的複雜性

不要以為我上面寫的東西不是 稍微調整下細節,這串 是可以在電腦上真實跑起來的,是不是特別簡單啊?你還敢說自己不懂程式設計麼?還會懼怕程式設計麼?但是也不要把程式設計想的太簡單了,上面的程式表達的只是乙個十分粗略的做飯過程,或者說乙個做飯的思路,真正要把做飯的程式實現出來,還要考慮很多的問題,比如如何...

程式系統的複雜性

近來在做一些專案,對程式複雜性給開發帶來的困難又有了進一步的認識。對於乙個從零開始的系統,我們要做的設計有以下這些工作 1.確定系統架構,具體講就是要多少臺機器,每個機器上執行哪些應用程式,每個應用程式的功能是什麼,這些程式通過什麼接 術進行互動。2.確定整個系統的資料模型。3.確定每個應用程式的資...