TSRunningCor 函数

TSRunningCor 函数会计算运行窗口上的两个时间系列的运行关联。如果该窗口中任一输入的方差是零或 NULL,那么 TSRunningCor 函数会返回 NULL

语法

TSRunningCor(value1     double precision, 
             value2     double precision,
              num_values integer) 
returns double precision;

TSRunningCor(value1     real, 
             value2     real,
              num_values integer) 
returns double precision;
value1
用于计算运行关联的第一个时间系列的列。
value2
用于计算运行关联的第二个时间系列的列。
num_values
在运行关联内包括的值的数量,k

描述

Apply 函数内使用 TSRunningCor 函数。

TSRunningCor 函数针对固定数量的元素运行,而非针对固定长度的时间运行;因此,它可能不适用于不规则时间系列。

前 (num_values - 1) 个输出源自较短的窗口(第一个输出从第一个输入时间派生,第二个输出从前两个输入时间派生,依此类推)。输入中的 Null 元素也会导致窗口变短。

TSRunningCor 函数可以采用作为时间系列的列的参数。使用 Apply 函数接受的相同参数格式。

返回结果

最后 k 个值的 DOUBLE PRECISION 运行关联。

示例

此语句会在 20 个元素的窗口中查找 GBase 8s 和 AA1 的股票数据之间的运行关联。同样,前 19 个输出元素都是异常,因为生成它们的窗口都少于 20 个元素。第一个是 NULL,因为仅对于一个元素未定义关联。
select Apply('TSRunningCor($0.high, $1.high, 20)', 
                ds1.stock_data::TimeSeries(stock_bar), 
                ds1.stock_data::TimeSeries(stock_bar))::TimeSeries(one_real)
from daily_stocks ds1, daily_stocks ds2 
where ds1.stock_name = 'GBase' 
and ds2.stock_name = 'AA1';
提示: 当为 Apply 函数提供开始日期时,前 (num_values - 1) 个输出元素仍根据不完整的窗口形成。Apply 函数绝不会查看指定开始日期之前的数据。