汇总和内插重叠的时间序列数据

时间:2018-11-05 23:17:18

标签: javascript time-series aggregate imputation linear-interpolation

我正在尝试汇总来自两种不同类型的测量的计数器数据。 第一种度量提供给定日期的计数器的准确值。

| Id | Day | Value |
|----|-----|-------|
|  1 |   1 | 10000 |
|  2 |  15 | 10100 |

第二种类型的度量给出了一段时间内计数器的相对值。

| Id | Period  | Value |
|----|---------|-------|
|  3 | 5 - 27  |   500 |
|  4 | 11 - 21 |   300 |

因此,例如,已知第1天的值为10000,并且在500天的时间段内将其增加了5-27。鉴于此,我试图汇总和内插两个来源,以生成一个每天的 total 值的单个时间序列:

| Day | Value |
|-----|-------|
| 1   | 10000 |
| 2   | 10010 |
| 3   | 10020 |
...
| 15  | 10100 |
...

我已经阅读了很多有关time series的内容,并发现了多种技术来规范化和插值第一种类型的度量值。但是,我似乎找不到找到将其与第二种类型混合使用的技术:在一段时间内的相对和可能重叠的度量。我尝试了几种手工制作的技术,但偶然发现了太多的问题。 例如,我尝试每天将范围值细分为较小的块(并平均重叠的度量值),但是我无法将其与其他度量值进行调和:

| Day | Measures | Aggregate | Total    |
|-----|----------|-----------|----------|
| 1   | [1]      | 10000     | 10000    |
...
| 5   | [3]      | 21.74     | 10021.74 | // (500 / 23 days) = 21.74
...
| 9   | [3]      | 21.74     | 10108.70 | // Higher than measure of day 15 (10100)!

考虑到测量的性质,是否有可能获得该结果?如果是,可以使用哪些技术?我希望通过JavaScript或直接在PostgreSQL数据库中实现此目标,但是这里的问题与任何语言均无关。

谢谢

0 个答案:

没有答案