Skip to main content

[函数] ZScore

Input​

  • 时间序列 X={xt}X = \{x_t\}
  • 滚动时间窗口 ww

Execution​

  1. 统计 XX 的总长度,若长度小于 ww , 则返回 NaN 结束逻辑.

  2. 对于每个时间点 tt ,在区间 [t−w+1,t][t-w+1, t] 内取子序列

    Xt={xt−w+1,xt−w+2,…,xt}X_t = \{x_{t-w+1}, x_{t-w+2}, \dots, x_t\}
  3. 统计 XtX_t 中非空数值的数量 cc 与窗口长度 ww 的比例,记作 r=c/wr=c/w , 若 r<0.5r < 0.5 , 则返回 NaN 结束逻辑.

  4. 计算该窗口中非空数值的样本均值与样本标准差:

    μt=1c∑i=t−w+1txi,σt=1c−1∑i=t−w+1t(xi−μt)2\mu_t = \frac{1}{c}\sum_{i=t-w+1}^t x_i, \quad \sigma_t = \sqrt{\frac{1}{c-1}\sum_{i=t-w+1}^t (x_i - \mu_t)^2}
  5. 定义滚动 z-score:

    zt=xt−μtσtz_t = \frac{x_t - \mu_t}{\sigma_t}
  6. 返回 ztz_t .

Notes​

  • 当 σt=0\sigma_t = 0 时将 ztz_t 设为 0.