排列熵(Permutation Entropy,PeEn)
概念
排列熵同样和前面提到的近似熵、样本熵以及模糊熵一样,都是用于衡量时间序列复杂程度而的指标。只不过,它在计算重构子序列之间的复杂程度时,引入了排列的思想。
排列熵求法
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),规定一个嵌入维度
m
m
m (embedding dimension)和一个时间延迟
L
L
L (delay time)。
2、通过将原序列进行重构,将每个子序列以
X
(
i
)
X(i)
X(i)表示,其中
X
(
i
)
=
u
(
i
)
,
u
(
i
+
L
)
,
.
.
.
,
u
(
i
+
(
m
−
1
)
L
)
X(i)=u(i),u(i+L),...,u(i+(m-1)L)
X(i)=u(i),u(i+L),...,u(i+(m−1)L)。
3、然后对每个
X
(
i
)
X(i)
X(i)内部进行递增排序,也就是
u
(
i
+
(
j
1
−
1
)
L
)
≤
u
(
i
+
(
j
2
−
1
)
L
)
≤
.
.
.
≤
u
(
i
+
(
j
m
−
1
)
L
)
u(i+(j_{1}-1)L)\leq u(i+(j_{2}-1)L)\leq ... \leq u(i+(j_{m}-1)L)
u(i+(j1−1)L)≤u(i+(j2−1)L)≤...≤u(i+(jm−1)L),其中,如果两个值相等,就按照它们中
j
i
j_{i}
ji 的下标
i
i
i进行排序。这样的话,一个
X
i
X_{i}
Xi 就被映射到了
(
j
1
,
j
2
,
.
.
.
,
j
m
)
(j_{1},j_{2},...,j_{m})
(j1,j2,...,jm),这正是
m
!
m!
m! 个排列中的一种。也就是说,每一个
m
m
m 维的子序列
X
(
i
)
X(i)
X(i) 都被映射到了
m
!
m!
m! 种排列中的其中之一。
4、通过上面的步骤,就将连续的
m
m
m 维子空间用一个这样的符号序列表示了,其中这些符号的个数有
m
!
m!
m!。将所有符号的概率分布用
P
1
,
P
2
,
.
.
.
,
P
K
P_{1},P_{2},...,P_{K}
P1,P2,...,PK表示,其中
K
≤
m
!
K\leq m!
K≤m!。
5、计算 Shannon Entropy ,则时间序列
u
(
1
)
,
u
(
2
)
,
u
(
3
)
,
.
.
.
,
u
(
N
)
u(1),u(2),u(3),...,u(N)
u(1),u(2),u(3),...,u(N)的排列熵为:
H
(
m
)
=
−
∑
j
=
1
K
P
j
l
n
P
j
H(m) = -\sum_{j=1}^{K}P_{j}lnP_{j}
H(m)=−j=1∑KPjlnPj
注:
当
P
j
=
1
/
m
!
P_{j} = 1/m!
Pj=1/m!,也就是每种符号都有且它们的概率都相等,此时时间序列的复杂程度最高,所以排列熵最大,为
l
n
(
m
!
)
ln(m!)
ln(m!)。另外,为了方便表示,通常会将
H
(
m
)
H(m)
H(m)除以一个
l
n
(
m
!
)
ln(m!)
ln(m!)来归一化,这样
0
≤
H
(
m
)
/
l
n
(
m
!
)
≤
1
0\leq H(m)/ln(m!) \leq 1
0≤H(m)/ln(m!)≤1
思考
排列熵作为衡量时间序列复杂程度的指标,越规则的时间序列,它对应的排列熵越小;越复杂的时间序列,它对应的排列熵越大。但是这样的结果是建立在合适的
m
m
m 的选择的基础上的,如果
m
m
m 的选取很小,如1或者2的话,那么它的排列空间就会很小(1!、2!)。经过研究表明,这个
m
m
m 的选取还是要根据实际情况来决定,一般而言,Bandt and Pompe 建议的取值是
m
=
3
,
.
.
.
,
7
m=3,...,7
m=3,...,7。
另外,通过排序和排列的思想在计算概率分布的时候,个人感觉会对内部序列中的异常点不敏感,如{1,2,3,4,5,6}和{1,2,3,4,5,99}在被映射的时候是一样的,但是其中5->6和5->99的性质却差别很大。
ref:
《Detecting dynamical changes in time series using the permutation entropy》