计算时间序列平均值的误差

机器算法验证 时间序列 标准错误 错误
2022-04-04 10:17:59

这可能是一个愚蠢的问题。我有数学知识,但我对统计方法的了解却令人尴尬地毫无希望。

我有多个时间序列,代表不同系统的各种数量,通过计算(分子动力学)模拟获得。我想说明每个系统的这些量的平均值和标准偏差,以及时间序列平均值误差的估计。

我一直在对所有时间步的值进行平均以获得平均值,并使用基本样本公式计算标准偏差。然后我使用这个标准偏差来获得平均值的标准误差为 (其中 = 标准偏差, = 时间步数,非常大)。

SEx¯=σxn
σn

但在我看来,时间序列中的数据很可能是相关的,所以这不是获得均值标准误差的有效方法。这个对吗?

如果是这样,那就是我卡住的地方。我可以执行哪些统计测试来获得均值误差的估计值?

3个回答

显然你有很好的统计直觉,因为你完全正确!由于各个项之间的相关性,观测平均值的标准误差不是从时间序列数据中对总体平均值的误差条的准确估计。

样本均值的实际方差为 其中之间的协方差m

(δm)2=1n[g0+2k=1n1nkngk]
gkxixik

事实证明,应用这个结果有点痛苦。如果你只是插入的估计协方差,你会得到非常错误的结果,主要是因为估计器之间的相关性。您可以通过多种不同的方式进行操作,各有利弊。一种相对简单且没有太多缺点的方法是只删除较高的协方差,无论如何您都没有很好的估计;事实证明,使用截止工作正常。有关这些问题的更多讨论,请参阅Ryo Okui,“Asymptotically Unbiased Estimation of Autocovariances and Autocorrelations with Long Panel Data”,Econometric Theory (2010) 26: 1263等论文。gkgkkmaxn

较早的评论者建议只进行 ARIMA 拟合,并从 ARIMA 模型的平均参数的误差条中获取平均值的误差条。如果数据实际上非常适合 ARIMA 模型,那很好。但是我在这里建议的方法是独立于模型的。

我正在回答我自己的问题,以供将来可能会觉得有帮助的人参考。不过,我接受了David Wright回答,因为它包含实际的解决方案,并且他完成了所有工作。

在这种情况下,我使用了 ARIMA,特别auto.arima是 R 包中的函数forecast由于我的数据集很大,我希望能够以计算方式实现我的解决方案,因此 R 非常有用。使用这个功能,它的平均值和标准误差被简单地打印到屏幕上,为我节省了很多工作。

感谢Carl首先提到 ARIMA,感谢David Wright对流程的扩展。你们俩都非常有帮助。我也很喜欢 David 对模型无关方法的解释,我肯定会对此进行更多研究。

我只能获得平均值的估计值d=0(也就是说,ARIMA 模型没有差异)。这是有道理的,因为平均值会通过差分减少到零(或接近?),但值得一提。

事实证明,最优 ARIMA 模型(仅限于(p,0,q),如上所述)对于我的大多数(但不是全部)数据集结果是(0,0,0). 如果我没记错的话(我很可能是这样!),这意味着数据的变化可以用白噪声来表示,而且根本不相关,所以我过于谨慎了。无论如何,确认这一点是件好事,而且这个问题在某些时候可能对时间序列相关性更强的人有用。

也许是 H. Flyvbjerg 和 HG Petersen 在“相关数据平均值的误差估计”中提出的“阻塞方法”,J. Chem。物理。91, 461 (1989) 会很有用。