时间序列分析中的趋势相似性

15

我在时间序列分析方面是新手。我试图找出短期(1天)温度时间序列的趋势,并尝试了不同的近似方法。此外,采样频率为2分钟。数据是针对不同站点进行协调的。我将比较不同趋势,以查看它们是否相似。

我在这个过程中面临三个挑战:

Q1 - 如何提取模式?

Q2 - 如何量化趋势,因为我将比较属于两个不同地方的趋势?

Q3 - 何时可以说两个趋势是相似的或不相似的?


这个问题应该放在Cross-Validated上,因为它涉及到统计方法而不是编程。 - Peter Ellis
1个回答

11

Q1 - 如何提取模式?

您可以对两个数据集执行时间序列分析。您需要使用统计库进行测试和比较。

如果您可以使用Python,则pandas是一个不错的选择。

在R中,forecast软件包非常好。首先在两个数据集上运行ets

Q2 - 由于我将比较属于两个不同地方的趋势,所以如何量化趋势?

量化趋势的想法是首先寻找一个(线性)趋势线。所有统计软件都可以协助完成这项工作。例如,如果您假设有一个线性趋势,则该线将最小化与数据点的平方偏差。

维基百科关于趋势估计的文章相当易懂。 此外,请记住,趋势可以是线性、指数或阻尼的。可以尝试不同的趋势参数来处理这些问题。

Q3 - 什么情况下可以说两个趋势相似或不相似?

  1. 在两个数据集上运行ARIMA。(这里的基本思想是看看是否可以使用相同的参数(构成ARIMA模型)来描述您的温度时间序列。如果在forecast(R)中运行auto.arima(),它将为您的数据选择参数p,d,q,这是一个很大的便利。

  2. 另一个想法是对两个系列执行2样本t检验,并检查显着性的p值。(警告:我不是统计学家,所以我不确定是否有任何理论反对对时间序列进行这样的操作。)

  3. 在研究过程中,我遇到了Granger测试——基本思想是看一个时间序列是否有助于预测另一个时间序列。似乎非常适用于您的情况。

这些只是一些让您入门的东西。希望能有所帮助。


你能否评论在Pandas/Python中实现(1)的问题,即Python中的auto.arima()等效方法。以下评论表明这种自动化是正在进行中的工作:https://dev59.com/v2Eh5IYBdhLWcg3wIgbN - Quetzalcoatl
@Ram,请查看关于您的回答的后续内容,http://stats.stackexchange.com/questions/172226/proving-similarities-of-two-time-series。 - Moe
一些评论:1.为什么要限制自己只使用线性趋势线。更好的方法可能是指向一个标准分解工具,将其分解成季节、趋势和随机分量,并使用loess或类似的趋势。2.在两个数据集上运行ARIMA将无法帮助您评估趋势是否相似(尝试并查看-http://stats.stackexchange.com/questions/172226/proving-similarities-of-two-time-series)。 - Peter Ellis
我知道这是一个旧的答案,但是我要指出,在时间序列中数据点的顺序很重要,运行2个样本T检验会导致一个误导性的检验统计量。例如,如果你反转相同的时间序列数据,2个样本t检验将总是产生一个测试统计量为0.0的结果。 - Derek O

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接