我有很多时间序列数据-水位和速度与时间的关系。它是水力模型仿真的输出。作为检查过程的一部分,以确认模型是否按预期运行,我必须绘制每个时间序列图,以确保数据中没有“摆动”(请参见下面的示例轻微摆动)。使用建模软件的UI是一种非常缓慢且费力的检查数据的方法。因此,我编写了一个简短的VBA宏,以将模型中的各种数据(包括结果)导入Excel并一次将其全部绘制出来。我希望编写另一个简短的VBA宏来分析时间序列数据并突出显示任何可疑的部分。
到目前为止,我唯一的想法就是可以对数据的斜率进行一些分析。在给定的搜索窗口内,斜率多次从正变为负的快速变化的任何地方都可以归类为不稳定。我是否缺少任何更简单的技巧?本质上,“稳定”模拟应提供非常平滑的曲线。任何突然的变化都可能是计算不稳定的结果。
1
阅读Tukey的书籍EDA中的一系列简单方法。例如,在书的开头,他描述了简单的平滑器及其用于获取残差的用法。后续的绝对残差平滑度将绘制曲线的局部变化,在发生快速,突然或异常变化的地方变高,而在其他地方保持较低。许多更复杂的方法都是可能的,但这也许就足够了。Tukey的平滑器在VBA中相对容易编码:我已经做到了。
—
ub
@whuber这本质上是滑动高通滤波器的功能吗?
—
amoeba
@amoeba也许吧。我对此类过滤器的理解是,它们并不完全是本地的,而且绝对不可靠,而Tukey的平滑器具有这两个重要特性。(现在人们使用Loess或GAM进行平滑,这很好,但实施起来却不那么容易。)
—
whuber