时间序列形态相似性分析(二)——相似性度量的一个应用实例

来源:互联网 发布:rime mac 编辑:程序博客网 时间:2024/06/01 09:29

(二)时间序列相似性度量的一个实例

我们取2008年8月25日——2008年9月5日共10个交易日的所有中小板块股票的收盘价格构成数据集如下图。

 

在这10个交易日中,每天都有交易的中小板股票共有229支,再加上中小板指数(sz399005),共有230个时间序列数据,如果我们考察每两个时间序列的相似性,将有Combine(230,2)=26335个时间序列对。我们使用如下SAS程序可以计算出这26335个时间序列对的相似度指标。

 

%let N=230;
%let M=10;
%let in=stock.finaldata;
%let out=stock.similar;
data temp(drop=stockid date close n k);
 do id=1 to (&N-1)*&M by &M;
  set &in point=id;
   var1=stockid;
  do j=(id+&M) to &N*&M by &M ;
   set &in  point=j;
   var2=stockid;
   do k=0 to (&M-1);
    d1=id+k;
    set &in point=d1;
    data1=close;
    d2=j+k;
    set &in point=d2;
    data2=close;
    output; 
   end;
  end;
 end;
stop;
run;
data &out(keep=var1 var2 similar);
 do id=1 to last by &M;
  set temp nobs=last;
  total=0;
  do i=0 to (&M-1);
   row1=id+i;
   set temp point=row1;
   x1=data1;
   y1=data2;
   do j=i+1 to (&M-1);
   row2=id+j;
   set temp point=row2;
   x2=data1;
   y2=data2;
   temp=(log(max((x2/x1)/(y2/y1),(y2/y1)/(x2/x1))))/(&M*(&M-1)/2);
   total=total+temp;
   similar=exp(total)-1;
   end;
  end;
  output;
 end;
 stop;
run;
proc sort data=&out;
by similar;
run;

 

结果我们发现,在所有229支股票中,sz002043(兔宝宝)和sz002047(成霖股份)两支股票的形态形似度最高,而sz002139(拓邦电子)和sz002174(梅花伞)相似度最低。这两对股票的2008年8月25日-9月5日走势图见以下两图,从图形直观上可以看出,这种方法至少从直观上是正确的,帮助我们从众多的中小板股票中,找出了形态形似性最大和最小的两对股票。