时间序列分析的缩放/参数加权函数

时间:2019-06-22 12:58:51

标签: function math time-series scaling weighted

我有一些时间序列数据,并且我想加权我的数据,因此最近的观测值的权重要比旧的观测值高。因此,我正在寻找一个满足一些属性的参数加权函数。它应该看起来像这样:

  

权重(时间,minTime,maxTime,minWeight,斜率) =吗?

其中

  • 时间显然是体重观察的时间,应该在minTime和maxTime之间(时间> = minTime,时间<= maxTime),
  • minTime 是最早的观察时间,
  • maxTime 是最新的观察时间,
  • minWeight 是要返回的最小重量(也是重量轴的截距;间隔:[0,1]),
  • 坡度调整曲线的形状。

输出: 输出应在[minWeight,1.0]区间内。

<image2>

有人知道这个加权函数的外观,还是一些提示或代码示例/伪代码?


我看过的一些功能:

  • 像根或幂函数
  

f(x)= x ^(n / m),如果n      

f(x)= x ^(n / m),如果n = m-线性函数

     

f(x)= x ^(n / m),如果n> m-幂函数

enter image description here

  

重新缩放(时间,最小时间,最大时间)=(时间-最小时间)/(最大时间-   minTime)

此加权功能提供区间[0,1]中的权重。但是曲线形状始终是线性的(无法调整),最小值始终为0(我也想对其进行调整)。

我想我太愚蠢了,无法将所有部分放在一起。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

可以通过引入新轴t'w'来简化此问题,如此处所示

enter image description here

有了这些坐标,方程很简单:

w'^2 = t'       - high-score
w' = t'         - normal-score
w' = t'^2       - low-score

因此,仅需将w'替换为(w - w0)/(1 - w0),将t'替换为(t - t0)/(t1 - t0)即可得到:

(w - w0)^2/(1 - w0)^2 = (t - t0)/(t1 - t0)      - high-score
(w - w0)/(1 - w0) = (t - t0)/(t1 - t0)          - normal-score
(w - w0)/(1 - w0) = (t - t0)^2 / (t1 - t0)^2    - low-score

现在我们必须解决w

w = w0 + (1 - w0)sqrt((t - t0)/(t1 - t0))       - high-slope
w = w0 + (1 - w0)(t - t0)/(t1 - t0)             - normal-slope
w = w0 + (1 - w0)(t - t0)^2 / (t1 - t0)^2       - low-slope

如果选择其他功能而不是sqrt()^2,则可以使用相同的技术。