TSRunningVar 函数

TSRunningVar 函数计算运行窗口内的时间系列的方差。

语法

TSRunningVar(value      double precision, 
              num_values integer) 
returns double precision;

TSRunningVar(value      real, 
              num_values integer) 
returns double precision;
value
用于计算运行关联的第一个输入值。
num_values
在运行方差内包含的值的数量,k

描述

Apply 函数内使用 TSRunningVar 函数。

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

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

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

返回结果

最后 k 个值的 DOUBLE PRECISION 运行方差。

示例

此语句使用与 stock_data 相同的长度和日历、但非时间戳记的数据列生成时间系列。输出的元素 nstock_bar 元素 n-19n-18...n 的第 1 列的差异。输出的前 19 个元素略有不同:第一个元素是 NULL,因为没有为系列 1 定义差异。第二个输出元素是前两个输入元素的差异,依此类推。

如果 stock_data 的元素 iNULL,或者如果 stock_data 元素 i 的列 1NULL,那么输出元素 ii + 1、... i+ 19 仅是 19 个数字的差异(假设输入窗口中没有其他空值)。
select stock_name, Apply('TSRunningVar($0.high, 20)', 
                stock_data::TimeSeries(stock_bar))::
                TimeSeries(one_real)
from daily_stocks;