Example 24.2 Similarity Analysis

This simple example illustrates how to use similarity analysis to compare two time sequences. The following statements create an example data set that contains two time sequences of differing lengths:

data test;
input i y x;
datalines;
1   2  3
2   4  5
3   6  3
4   7  3
5   3  3
6   8  6
7   9  3
8   3  8
9  10  .
10 11  .
;
run;

The following statements perform similarity analysis on the example data set:

proc similarity data=test out=_null_
   print=all plot=all;
   input x;
   target y / measure=absdev;
run;

The DATA=TEST option specifies that the input data set WORK.TEST is to be used in the analysis. The OUT=_NULL_ option specifies that no output time series data set is to be created. The PRINT=ALL and PLOTS=ALL options specify that all ODS tables and graphs are to be produced. The INPUT statement specifies that the input variable is X. The TARGET statement specifies that the target variable is Y and that the similarity measure is computed using absolute deviation (MEASURE=ABSDEV).

Output 24.2.1 Description Statistics of the Input Variable, x
The SIMILARITY Procedure

Time Series Descriptive Statistics
Variable x
Number of Observations 10
Number of Missing Observations 2
Minimum 3
Maximum 8
Mean 4.25
Standard Deviation 1.908627

Output 24.2.2 Plot of Input Variable, x
Plot of Input Variable, x

Output 24.2.3 Target Sequence Plot
Target Sequence Plot

Output 24.2.4 Sequence Plot
Sequence Plot

Output 24.2.5 Path Plot
Path Plot

Output 24.2.6 Path Sequences Plot
Path Sequences Plot

Output 24.2.7 Path Sequences Scaled Plot
Path Sequences Scaled Plot

Output 24.2.8 Path Distance Plot
Path Distance Plot

Output 24.2.9 Path Distance Histogram
Path Distance Histogram

Output 24.2.10 Path Relative Distance Plot
Path Relative Distance Plot

Output 24.2.11 Path Relative Distance Histogram
Path Relative Distance Histogram

Output 24.2.12 Path Limits
Path Limits
Limit Specified
Absolute
Specified Percentage Minimum Allowed Maximum Allowed Applied
Compression None None 2 9 9
Expansion None None 0 7 7

Output 24.2.13 Path Statistics
Path Statistics
Path Number Path Percent Input Percent Target Percent Maximum Path Maximum
Percent
Input Maximum
Percent
Target Maximum
Percent
Missing Map 0 0.000% 0.000% 0.000% 0 0.000% 0.000% 0.000%
Direct Maps 6 50.00% 75.00% 60.00% 2 16.67% 25.00% 20.00%
Compression 4 33.33% 50.00% 40.00% 1 8.333% 12.50% 10.00%
Expansion 2 16.67% 25.00% 20.00% 2 16.67% 25.00% 20.00%
Warps 6 50.00% 75.00% 60.00% 2 16.67% 25.00% 20.00%

Output 24.2.14 Cost Plot
Cost Plot

Output 24.2.15 Cost Statistics
Cost Statistics
Cost Number Total Average Standard Deviation Minimum Maximum Input Mean Target Mean Minimum Path Mean Maximum Path Mean
Absolute 12 15.00000 1.250000 1.138180 0 3.000000 1.875000 1.500000 1.875000 0.8823529
Relative 12 2.25844 0.188203 0.160922 0 0.500000 0.282305 0.225844 0.282305 0.1328495

Relative Costs based on Target Sequence values


Output 24.2.16 Time Warp Plot
Time Warp Plot

Output 24.2.17 Time Warp Scaled Plot
Time Warp Scaled Plot

The following statements repeat the preceding similarity analysis on the example data set with warping limits:

proc similarity data=test out=_null_
   print=all plot=all;
   input x;
   target y / measure=absdev
              compress=(localabs=2)
              expand=(localabs=2);
run;

The COMPRESS=(LOCALABS=2) option limits local absolute compression to 2. The EXPAND=(LOCALABS=2) option limits local absolute expansion to 2.

Output 24.2.18 Path Plot with Warping Limits
Path Plot with Warping Limits

Output 24.2.19 Warped Path Limits
Path Limits
Limit Specified
Absolute
Specified Percentage Minimum Allowed Maximum Allowed Applied
Compression 2 None 2 9 2
Expansion 2 None 0 7 2

Output 24.2.20 Cost Plot with Warping Limits
Cost Plot with Warping Limits

The following statements repeat the preceding similarity analysis on the example data set but store the results in output data sets:

proc similarity data=test out=series
   outsequence=sequences outpath=path outsum=summary;
   input x;
   target y / measure=absdev
              compress=(localabs=2)
              expand=(localabs=2);
run;

The OUT=SERIES, OUTSEQUENCE=SEQUENCES, OUTPATH=PATH, and OUTSUM=SUMMARY options specify that the output time series, time sequences, path analysis, and summary data sets be created, respectively.