Press "Enter" to skip to content

极坐标的轴如何随着列数而变化?

使用Polars计算Variograms的序曲

照片由Yiorgos从Unsplash拍摄。

我一段时间以来一直在阅读关于Variograms [1]的文章。这是地统计学中使用的一种可视化工具,用于观察特定数量如何随空间变化。它可以作为一个非常好的诊断工具,帮助回答以下问题:

  • 是否从点xi到距离d的一些距离,我们不再从xi获得任何信息?
  • 测量结果是否以距离为函数具有周期性?

我一直很好奇将这个理论应用于时间序列数据,特别是因为与时间序列特定方法(如自相关[2])相比,Variogram适用于缺失或不均匀分布的数据(这是真实时间序列数据的特征)并且可以扩展到更高的维度[3, 4]。

Variograms的问题在于计算成本很高。然而,我最近一直在使用polars并且认为rolling [5]方法和/或表达式非常适合Variogram算法。棘手的部分是Variograms与滞后数的比例相关,因此我想快速看看在使用Expr.rolling [6]处理大量列时是否会出现显着的性能下降。

POC:Polars .rolling是否可以用于Variograms?

Variogram的算法相对简单[1]:

极坐标的轴如何随着列数而变化? 四海 第2张

其中h为滞后(例如,距离),delta为容差阈值,z为我们测量的值,N为在[h-delta<= j-i <=h+delta]范围内的点的集合。我们实际上是在试图找到差值在[h-delta,h+delta]范围内的所有点对i,j。

而polars的rolling函数做的事情非常相似。对于每个点,它创建窗口[5]:

  • (x0 + offset, x0 + offset + period]
  • (x1 + offset, x1 + offset + period]

如果我们定义offset = h – delta,并且让period=2*delta,则我们会重新创建…

Leave a Reply

Your email address will not be published. Required fields are marked *