This function is available only with RAP – The Trading Edition Enterprise.
Calculates the sample autocorrelation function of a stationary time series.
TS_AUTOCORRELATION (timeseries_expression, lagmax, lag_elem)
OVER (window-spec)
timeseries_expression A numeric expression, generally a column name, containing an element in a time series.
lagmax An integer specifying the maximum lag of autocovariances, autocorrelations, and standard errors of autocorrelations. The integer must be greater than or equal to 1, and less than the number of elements in the time series.
lag_elem An integer specifying which element in the autocorrelation array is to be returned. The integer must be greater than zero, and less than or equal to lagmax.
window-spec TS_AUTOCORRELATION is an OLAP function requiring an OVER () clause.
This time series function returns a double-precision floating-point value representing the autocorrelation value. TS_AUTOCORRELATION calls the function imsls_d_autocorrelation in the IMSL libraries.
The arguments of TS_AUTOCORRELATION map to the IMSL library function imsls_d_autocorrelation() as follows:
params = imsls_d_autocorrelation(n_objs, x[], lagmax, 0);
n_objs Contains the number of rows in the current window frame.
x[] Contains the value of timeseries_expression for the current window frame.
lagmax Maps to the user-defined aggregate function argument lag_max.
For detailed information on how the function imsls_d_autocorrelation performs time series calculations, see IMSL Numerical Library User’s Guide: Volume 2 of 2 C Stat Library.
This example shows an input data table, a SQL statement containing the TS_AUTOCORRELATION function, and the data values returned by the function. This example uses the following table (called DATASET) as its input data. The DATASET table contains 50 rows of time series data:
rownum |
data |
---|---|
1 |
0.315523 |
2 |
0.485859 |
3 |
0.676886 |
4 |
1.97381 |
5 |
2.77555 |
6 |
2.73657 |
7 |
2.64233 |
8 |
4.26118 |
9 |
3.13641 |
10 |
4.16566 |
11 |
2.95952 |
12 |
2.14504 |
13 |
1.98799 |
14 |
0.805859 |
15 |
0.833405 |
16 |
2.29075 |
17 |
1.30045 |
18 |
0.467122 |
19 |
-0.170107 |
20 |
-0.256657 |
21 |
-0.382597 |
22 |
-0.505511 |
23 |
-1.90147 |
24 |
-0.981688 |
25 |
-1.43116 |
26 |
-1.39389 |
27 |
-2.34823 |
28 |
-2.91122 |
29 |
-0.927423 |
30 |
-0.044383 |
31 |
-0.389648 |
32 |
0.545008 |
33 |
0.614096 |
34 |
0.364668 |
35 |
1.16043 |
36 |
-0.654063 |
37 |
0.616094 |
38 |
2.00875 |
39 |
1.86696 |
40 |
2.80171 |
41 |
3.78422 |
42 |
4.11499 |
43 |
2.77188 |
44 |
4.00312 |
45 |
4.21298 |
46 |
5.00413 |
47 |
4.74498 |
48 |
4.89621 |
49 |
3.93273 |
50 |
4.31592 |
The following SQL statement returns the second element from an array containing autocorrelations of the time series data from the data column:
SELECT TS_AUTOCORRELATION(data,2,2) OVER (ORDER BY ROWNUM rows BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS res FROM DATASET
Sybase IQ returns 50 rows, each containing the same value:
res |
---|
0.803659 |
0.803659 |
0.803659 |
0.803659 |
0.803659 |
0.803659 |
0.803659 |
0.803659 |
0.803659 |
... |
0.803659 |
Chapter 2, “Using OLAP” in the System Administration Guide: Volume 2
IMSL Numerical Library User’s Guide: Volume 2 of 2 C Stat Library