如何从24小时移动平均数据中获取小时读数?

时间:2019-06-22 06:44:30

标签: excel vba moving-average

我有一个关于PM10空气污染浓度水平的24小时移动平均值的excel数据集,需要从中获取各个小时的读数。移动平均数据每小时更新一次,因此在小时t处,读数是从t-23到t小时的24个读数的平均值,在小时t + 1时,读数是从t-22到t +的平均值。 1等。我没有任何已知的数据点可以推断,只有24小时移动平均值。

有什么办法可以从移动平均值中获取时间t,t + 1等的每小时小时读数?

数据集包含3年以上的数据,因此每天(每小时)有24个读数,该数据集具有数千个读数。

我试图寻找一种可能的方法来实现一个简单的excel VBA代码来做到这一点,但是却空了。我在Stackoverflow和stackexchange或其他论坛上看到的大多数帖子都涉及从离散数据计算移动平均值,这与我在这里要做的相反。

我见过的少数几个涉及使用矩阵,我不太确定该如何实现。 (https://stats.stackexchange.com/questions/67907/extract-data-points-from-moving-average) (https://stats.stackexchange.com/questions/112502/estimating-original-series-from-their-moving-average

任何建议将不胜感激!

1 个答案:

答案 0 :(得分:0)

简短的回答:您不能。

考虑3点的移动平均线。甚至考虑将每个MA项乘以3,所以我们确实有连续的总和

Data: a b c d e f g
MA    a+b+c
        b+c+d
          c+d+e
            d+e+f
              e+f+g

使用初始值,您可以执行某些操作。要找到d的值,您需要知道b + c,想知道a(因为已知a + b + c)。然后要找到e,就知道c + d + e和d,因此必须找到c,由于已经需要a,所以还需要b。

通常,对于长度为n的MA,如果您知道前n-1个值(因此也知道第n-1个值,因为它知道总和),则可以找到所有后续值。您也可以从头开始。但基本上,如果您没有足够的原始数据,则会迷失方向:数据的n-1个第一值与可能的MA系列之间存在1-1关系。如果您没有足够的信息,则可能存在无数种可能性,并且您将无法确定哪一种是正确的。

在这里,我考虑了最简单的MA,其中每个变量的系数为1 / n(因此您计算总和并除以n)。但这适用于任何MA,但复杂度稍高一些,以说明总和中每一项的不同系数。