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) 1≤f(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对应,0与0对应,负值与正值分别进行线性变换。有些特征只有正数(如振幅指数)可以进行简单线性投射,即1对应最大值,-1对应最小值,其他值进行线性变换就可以了。
0有特殊含义的特征指数(如升降指数)这样投射:
假设特征指数的最大值是fmax,最小值是fmin。将[fmin,0]投射到[-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]