博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
时间序列分析之熵(Entropy)
阅读量:2051 次
发布时间:2019-04-28

本文共 5983 字,大约阅读时间需要 19 分钟。

这个概念最早是用于热力学中,毕竟这个字是火字旁,用于衡量一个系统能量的不可用程度,熵越大,能量的不可用程度就越大;越小能量的不可用程度越低。它的物理意义是体系中混乱程度或者复杂程度的度量。

关于熵的应用也在不断拓展,从热力学到生物学、物理学,以及在时间序列分析上都有应用。

一、近似熵(Approximate Entropy, ApEn)

概念

近似熵是一种用于量化时间序列的不规则性或者复杂性的度量方式,它反映了时间序列中新的子序列产生的概率,也就是以一种条件概率的方式来衡量时间序列中新信息发生的可能性,因此越复杂的时间序列对应的近似熵就越大

近似熵求法

1、设有长度为 N N N的时间序列 u ( 1 ) , u ( 2 ) , u ( 3 ) , . . . , u ( N ) u(1),u(2),u(3),...,u(N) u(1),u(2),u(3),...,u(N),规定一个表示相似度比较的阈值 r r r,再确定一个划分子序列长度的度量 m m m

2、通过将原序列进行重构,这样就可以得到 ( N − m + 1 ) (N - m + 1) (Nm+1)个子序列 X ( 1 ) , X ( 2 ) , X ( 3 ) , . . . , X ( N − m + 1 ) X(1),X(2),X(3),...,X(N-m+1) X(1),X(2),X(3),...,X(Nm+1)。将每个子序列以 X ( i ) X(i) X(i)表示,其中 X ( i ) = u ( i ) , u ( i + 1 ) , u ( i + 2 ) , . . . , u ( i + m − 1 ) X(i)=u(i),u(i+1),u(i+2),...,u(i+m-1) X(i)=u(i),u(i+1),u(i+2),...,u(i+m1)
3、计算任意两个重构向量 X ( i ) X(i) X(i) X ( j ) X(j) X(j)之间的距离 d m [ X ( i ) , X ( j ) ] d_{m}[X(i), X(j)] dm[X(i),X(j)],其中 d m d_{m} dm表示两个重构向量 X ( j ) X(j) X(j)( 1 ⩽ j ⩽ N − m + 1 1\leqslant j \leqslant N-m+1 1jNm+1)与 X ( i ) X(i) X(i)之间的距离,距离 d m d_{m} dm由两个向量中对应位置元素的最大差值决定。这里包括 i = j i=j i=j的距离。
4、然后统计满足以下条件的向量个数,并求出与总的统计数目之间的比值:
C i m ( r ) = n u m [ d m ( X ( i ) , X ( j ) ) &lt; r ] N − m + 1 C_{i}^{m}(r) = \frac{num[d_{m}(X(i), X(j))&lt;r]}{N-m+1} Cim(r)=Nm+1num[dm(X(i),X(j))<r]这个过程称作 X ( i ) X(i) X(i)的模版匹配过程, C i m ( r ) C_{i}^{m}(r) Cim(r)表示任意一个 X ( j ) X(j) X(j)与模版之间的匹配概率。
5、定义在划分子序列个数为 m m m时的平均相似率: Φ m ( r ) = ∑ i = 1 N − m + 1 l o g ( C i m ( r ) ) N − m + 1 \Phi_{m}(r) = \frac{ \sum_{i=1}^{N-m+1}log(C_{i}^{m}(r))}{N-m+1} Φm(r)=Nm+1i=1Nm+1log(Cim(r))6、按照上面1~5再计算当划分子序列个数为 m + 1 m+1 m+1时的平均相似率 Φ m + 1 ( r ) \Phi_{m+1}(r) Φm+1(r)
7、得近似熵: A p E n = Φ m ( r ) − Φ m + 1 ( r ) ApEn=\Phi_{m}(r)-\Phi_{m+1}(r) ApEn=Φm(r)Φm+1(r)
注:关于 m m m r r r的选取, m m m通常选择为2或者3; r r r则根据实际应用的场景选择,通常选择 r = 0.2 ∗ s t d r=0.2*std r=0.2std s t d std std是原时间序列的标准差。从信息熵的角度来看,近似熵的思想是通过判断每个子序列中元素与全局子序列中每个元素之间的差异的大小来决定信息熵的大小,如果一个子序列与其他子序列之间的差异都很大,那么它满足 d m [ X ( i ) , X ( j ) ] ≤ r d_{m}[X(i), X(j)]\leq r dm[X(i),X(j)]r的数量就会很少,相对应它的信息量就大,因而它的信息熵就会很大。

二、样本熵(Sample Entropy, SampEn)

概念

样本熵同样也是用于衡量时间序列在单一尺度上的复杂度,与近似熵相比,具有更高的精度。样本熵是在近似熵的基础上的改进,所以求法也很类似。

样本熵的求法

1、设有长度为 N N N的时间序列 u ( 1 ) , u ( 2 ) , u ( 3 ) , . . . , u ( N ) u(1),u(2),u(3),...,u(N) u(1),u(2),u(3),...,u(N),规定一个表示相似度比较的阈值 r r r,再确定一个划分子序列长度的度量 m m m

2、通过将原序列进行重构,这样就可以得到 ( N − m + 1 ) (N - m + 1) (Nm+1)个子序列 X ( 1 ) , X ( 2 ) , X ( 3 ) , . . . , X ( N − m + 1 ) X(1),X(2),X(3),...,X(N-m+1) X(1),X(2),X(3),...,X(Nm+1)。将每个子序列以 X ( i ) X(i) X(i)表示,其中 X ( i ) = u ( i ) , u ( i + 1 ) , u ( i + 2 ) , . . . , u ( i + m − 1 ) X(i)=u(i),u(i+1),u(i+2),...,u(i+m-1) X(i)=u(i),u(i+1),u(i+2),...,u(i+m1)
3、计算任意两个重构向量 X ( i ) X(i) X(i) X ( j ) X(j) X(j)之间的距离 d m [ X ( i ) , X ( j ) ] d_{m}[X(i), X(j)] dm[X(i),X(j)],其中 d m d_{m} dm表示两个重构向量 X ( j ) X(j) X(j)( 1 ⩽ j ⩽ N − m + 1 1\leqslant j \leqslant N-m+1 1jNm+1)与 X ( i ) X(i) X(i)之间的距离,距离 d m d_{m} dm由两个向量中对应位置元素的最大差值决定。这里的 i ≠ j i \neq j i̸=j
4、然后统计满足以下条件的向量个数,并求出与总的统计数目之间的比值:
B i m ( r ) = n u m [ d m ( X ( i ) , X ( j ) ) &lt; r ] N − m B_{i}^{m}(r) = \frac{num[d_{m}(X(i), X(j))&lt;r]}{N-m} Bim(r)=Nmnum[dm(X(i),X(j))<r]这个过程称作 X ( i ) X(i) X(i)的模版匹配过程, B i m ( r ) B_{i}^{m}(r) Bim(r)表示任意一个 X ( j ) X(j) X(j)与模版之间的匹配概率。这里的 X ( i ) ≠ X ( j ) X(i) \neq X(j) X(i)̸=X(j),所以总的统计数就是 N − m N-m Nm
5、求 B i m ( r ) B_{i}^{m}(r) Bim(r)对于每个 i i i的平均值,也就是平均相似率,记为 B m ( r ) B^{m}(r) Bm(r) B m ( r ) = ∑ i = 1 N − m + 1 B i m ( r ) N − m + 1 B^{m}(r)= \frac{ \sum_{i=1}^{N-m+1}B_{i}^{m}(r)}{N-m+1} Bm(r)=Nm+1i=1Nm+1Bim(r)注意,这里的近似平均率没有取对数,这里也是和近似熵的区别。
6、按照上面的1~5步骤计算 m + 1 m+1 m+1时的平均相似率 B m + 1 ( r ) B^{m+1}(r) Bm+1(r)
7、这样就可以得到 N N N取有限值时,样本熵为: S a m p E n ( N , m , r ) = − l n [ B m + 1 ( r ) B m ( r ) ] SampEn(N,m,r) = -ln[\frac{B^{m+1}(r)}{B^{m}(r)}] SampEn(N,m,r)=ln[Bm(r)Bm+1(r)]
注:关于 m m m r r r的选取, m m m通常选择为1或者2; r r r则根据实际应用的场景选择,通常选择 r = 0.1 ∗ s t d ∼ 0.25 ∗ s t d r=0.1*std \sim 0.25*std r=0.1std0.25std s t d std std是原时间序列的标准差。近似熵是以 − l n ( C P ) -ln(CP) ln(CP)为模型,为了避免出现 l n ( 0 ) ln(0) ln(0)的情况,所以在计算重构向量距离的时候,剔除了与自身的比较。

三、模糊熵(Fuzzy Entropy,FsEn)

概念

模糊熵是在样本熵的基础上改进得到的,模糊熵引入了模糊隶属度函数,它是一种指数函数。它的主要特点是其参数的改变对复杂性度量的结果影响很小。

模糊熵的求法

1、设有长度为 N N N的时间序列 u ( 1 ) , u ( 2 ) , u ( 3 ) , . . . , u ( N ) u(1),u(2),u(3),...,u(N) u(1),u(2),u(3),...,u(N),规定一个表示相似度比较的阈值 r r r,再确定一个划分子序列长度的度量 m   ( m ⩽ N − 2 ) m\space (m\leqslant N-2) m (mN2)

2、通过将原序列进行重构,这样就可以得到 ( N − m + 1 ) (N - m + 1) (Nm+1)个子序列 X ( 1 ) , X ( 2 ) , X ( 3 ) , . . . , X ( N − m + 1 ) X(1),X(2),X(3),...,X(N-m+1) X(1),X(2),X(3),...,X(Nm+1)。将每个子序列以 X ( i ) X(i) X(i)表示,其中 X ( i ) = [ u ( i ) , u ( i + 1 ) , u ( i + 2 ) , . . . , u ( i + m − 1 ) ] − u 0 ( i ) X(i)=[u(i),u(i+1),u(i+2),...,u(i+m-1)]-u_{0}(i) X(i)=[u(i),u(i+1),u(i+2),...,u(i+m1)]u0(i)。这里的操作有点类似去中心化。其中 u 0 ( i ) = 1 m ∑ j = 0 m − 1 u ( i + j ) u_{0}(i) = \frac{1}{m}\sum_{j=0}^{m-1}u(i+j) u0(i)=m1j=0m1u(i+j)3、计算任意两个重构向量 X ( i ) X(i) X(i) X ( j ) X(j) X(j)之间的距离 d i j m [ X ( i ) , X ( j ) ] d^{m}_{ij}[X(i), X(j)] dijm[X(i),X(j)],其中 d i j m d^{m}_{ij} dijm表示两个重构向量 X ( j ) X(j) X(j)( 1 ⩽ j ⩽ N − m + 1 1\leqslant j \leqslant N-m+1 1jNm+1)与 X ( i ) X(i) X(i)之间的距离,距离 d m d_{m} dm由两个向量中对应位置元素的最大差值决定。这里同样 i ≠ j i \neq j i̸=j
4、引入模糊隶属度函数: A i j m = e x p [ − ( d i j m r ) n ] A^{m}_{ij} = exp[-(\frac{d^{m}_{ij}}{r})^{n}] Aijm=exp[(rdijm)n]5、计算针对于每个 i i i的平均值: C i m ( r ) = ∑ j = 1 , j ≠ i N − m + 1 A i j m N − m C_{i}^{m}(r) = \frac{\sum^{N-m+1}_{j=1,j \neq i}A_{ij}^{m}}{N-m} Cim(r)=Nmj=1,j̸=iNm+1Aijm6、定义 Φ m ( r ) = ∑ i = 1 N − m + 1 C i m ( r ) N − m + 1 \Phi^{m}(r)= \frac{\sum^{N-m+1}_{i=1}C_{i}^{m}(r)}{N-m+1} Φm(r)=Nm+1i=1Nm+1Cim(r)7、按照1~6步骤,求 m + 1 m+1 m+1时的 Φ m + 1 ( r ) \Phi^{m+1}(r) Φm+1(r)
8、模糊熵: F s E n ( N , m , r ) = l n Φ m + 1 ( r ) − l n Φ m ( r ) FsEn(N,m,r)=ln\Phi^{m+1}(r)-ln\Phi^{m}(r) FsEn(N,m,r)=lnΦm+1(r)lnΦm(r)

四、总结

关于重构向量的大小 m m m和相似度 r r r的选择都是要考虑的事情,过大的相似度会导致信息丢失,太小则会增加对噪声的敏感性。

上面几种熵,都是衡量时间序列在单一尺度上的复杂性。后面也有多尺度熵来衡量时间序列在不同尺度因子上的复杂性自相似性

REF

《基于 EEMD 和多尺度模糊熵的电机轴承故障特征提取方法研究 》

转载地址:http://bbklf.baihongyu.com/

你可能感兴趣的文章
【F12】九个Console命令,让js调试更简单
查看>>
【数据库】left join(左关联)、right join(右关联)、inner join(自关联)的区别...
查看>>
【雅思】【写作】【大作文】Advantage VS. Disadvantage
查看>>
【雅思】金山词霸-单词学习(41-80)
查看>>
【雅思】【写作】【大作文】Report
查看>>
【雅思】【作文】顾家北100句翻译
查看>>
【雅思】【写作】【大作文】Discuss both views and give your own opinion
查看>>
【托业】【金山词霸】21-42
查看>>
【托业】【金山词霸】单词1-20
查看>>
【Python】脚本运行报错:IndentationError: unindent does not match any outer indentation level...
查看>>
【JMeter】前置处理器
查看>>
【Linux】top命令详解
查看>>
【黑盒测试】测试用例的常用方法
查看>>
【Linux】阿里云服务器部署--禅道
查看>>
【Loadrunner】Loadrunner 手动关联技术
查看>>
【性能测试】性能测试表
查看>>
【Mock】mock基础、简单的单元测试代码练习。
查看>>
【Loadrunner】Loadrnner 参数化策略
查看>>
【WebDriver】WebDriver 常用操作
查看>>
【Selenium】selenium中隐藏元素如何定位?
查看>>