为了测试时间序列的平稳性,您主要使用统计检验和可视化分析来确定该序列的统计属性(均值、方差、自相关)是否随时间保持不变。最常用的方法是增广迪基-富勒检验(ADF)、Kwiatkowski-Phillips-Schmidt-Shin 检验(KPSS),以及对滚动统计或自相关函数(ACF)等图表的可视化检查。 这些方法有助于识别违反平稳性假设的趋势、季节性或结构性中断,这至关重要,因为许多时间序列模型(例如 ARIMA)需要平稳数据才能可靠地工作。
ADF 检验是一种假设检验,其中零假设假定存在单位根(非平稳)。如果检验统计量比临界值更负(或者 p 值低于 0.05 之类的阈值),则拒绝零假设并得出该序列是平稳的结论。 例如,在 Python 中,您可以使用 statsmodels.tsa.stattools.adfuller()
运行此测试。 KPSS 检验颠倒了假设:零假设假定平稳性,而超过临界值的检验统计量表示非平稳性。 结合使用 ADF 和 KPSS 有助于避免错误的结论 - 例如,如果 ADF 拒绝非平稳性但 KPSS 也拒绝平稳性,则该序列可能具有确定性趋势。 像 statsmodels.tsa.stattools.kpss()
这样的工具实现了这一点。
可视化方法补充了统计检验。绘制时间序列可以揭示明显的趋势或季节性。例如,具有持续上升趋势或季度峰值的月度销售数据将无法满足平稳性。 滚动统计(例如,12 个月的滚动均值和方差)可以显示这些指标是否随时间变化。平稳序列的 ACF 图快速衰减,而非平稳序列则显示缓慢衰减。如果测试或视觉效果表明非平稳性,则应用诸如差分(计算周期性变化)或对数转换之类的转换。例如,对股票价格数据进行一次差分通常可以消除趋势。转换后始终重新测试以确认平稳性。