5.3 参数反向标准化

 

利用时间序列X计算出相关的特征指数,组成序表T

X

f(1)

f(2)

x1

f(1)1

f(2)1

x2

f(1)2

f(2)2

xn

f(1)n

f(2)n

原则上,从T中筛选出满足条件的特征指数就能够发现指定形状的曲线段Sp了。

Sp=T.select(a(1)f(1)b(1) , a(2) 1f(2)b(2) ,…)

其中f(i)是第i个特征指数,a(i)b(i)是参数,是第i个特征指数的筛选条件。

理论上讲,指数特征能够表征曲线的形状特点,组合以后就可以筛选指定的形状了,但实际使用时存在一些问题:

1. 时间序列不同,即使是同一个特征指数的量纲也可能不同。

:

X=[2,3,1,4,5,…]

Y=[2000,3000,1000,4000,5000,…]

以升降指数为例,X算出的升降指数基本是个位数,Y算出的升降指数基本是四位数。

2. 同一个时间序列,不同特征指数的量纲也可能不同。

:

Y=[2000,3000,1000,4000,5000,…]

Y算出的升降指数是四位数,振频指数不太可能是四位数。

因为存在这些问题,设置a(i)b(i)时就变得非常麻烦,每一个时间序列、每一个特征甚至是每一个时段的参数设置都不同,参数不好设置,也就无法发现指定形状了。

标准化是将特征指数进行线性变换,即将特征指数投射到一个固定区间内。我们不希望改变特征指数,只要对筛选参数做反向变换就可以了,即把参数固定在一个简单区间(如[0,1][-1,1])内,将参数反向投射到各个特征指数上,最后根据投射后的参数筛选形状。最常用的简单区间是[0,1],但考虑到一些特征指数的特点,如升降指数,负数表示下降,正数表示上升,0本身也有其特殊的意义即不升不降,用区间[0,1]会增加计算量,而[-1,1]更适合作为参数区间。

..

有些特征指数0有特殊含义(如升降指数),需要分段投射,即最小值与-1对应,最大值与1对应,00对应,负值与正值分别进行线性变换。有些特征只有正数(如振幅指数)可以进行简单线性投射,即1对应最大值,-1对应最小值,其他值进行线性变换就可以了。

0有特殊含义的特征指数(如升降指数)这样投射:

假设特征指数的最大值是fmax,最小值是fmin。将[fmin0]投射到[-1,0][0,fmax]投射到[0,1],特征指数f与筛选参数a的函数关系为:

F(a)=if(a=0,0,if(a<0,- fmin *a, fmax*a)),a[-1,1]

取值只有正数的特征指数(如振幅指数)这样投射:

F(a)=( fmax-fmin)*a/2+( fmax+fmin)/2,a[-1,1]