如何测量时间序列的"homogeneity"?

How to measure "homogeneity" of time series?

我有两个时间序列,看这张图:

我需要测量系列"homogeneity"的水平。所以第一个看起来很零散,所以它应该有接近于零的低值,第二个应该有高值。

有什么算法可以使用吗?

了解更多关于系列之间的潜在差异或您关心的内容可能会有所帮助,但是这里...

如果需要,我会减去常数,使两个系列均值为零,然后对它们进行平方以获得类似幂的值,并对其进行足够的过滤以平滑掉在较低滤波器的情况下似乎是噪声的东西。然后计算并比较两个过滤幂的方差,对于较低的时间序列,我现在期望它是一条相当恒定的线,有一些下降,而对于较高的序列,一些东西花费大约一半的时间接近零和大约一半离开它的时间。

可能的过滤器包括一个简单的移动平均线,无论您的时间序列工具包提供什么,以及 https://en.wikipedia.org/wiki/Savitzky%E2%80%93Golay_filter

中描述的过滤器

我不确定同质性是什么意思,但是时间序列的平稳性是一个公认的概念。基本上,如果时间序列的滚动均值和标准差在整个时间内保持不变,则该时间序列是平稳的。您的两个时间序列似乎都具有大致恒定的均值,但最上面的时间序列的标准差随时间变化很大;有时它几乎为零,而在其他时候,它非常大。也许您可以采用滚动标准差的标准差,顶部系列的标准差远高于底部系列。如果你可以将它们加载到 pandas 作为顶部和底部,它可能看起来像

top_nonstationarity = np.std(top.rolling(window_size).std())
bottom_nonstationarity = np.std(bottom.rolling(window_size).std())