趋近智
拟合SARIMA模型后,过程并未结束。进行诊断检查很重要,以评估所选模型是否充分拟合数据。这一步有助于判断模型假设是否合理满足,以及它是否捕获了时间序列中存在的主要模式,包括季节性。未能诊断模型可能导致预测不可靠和结论错误。
诊断时间序列模型(包括SARIMA)的主要工具是分析模型的残差。残差是训练数据中实际观测值与模型预测值之间的差异:
如果SARIMA模型拟合良好,残差理想情况下应类似白噪声。这意味着残差应具有:
接下来我们看看常用的诊断方法。
简单的第一步是绘制残差与时间的关系图。此图有助于直观检查模型未能捕获的任何剩余模式、异常值、非恒定方差或趋势。理想情况下,图上应显示点随机分布在零点附近,没有明显结构。
残差随时间的变化图。理想情况下,它们应在零线附近随机波动,不显示明显模式或趋势。
如果您观察到明确模式,例如持续的季节性或趋势,则表明模型阶数(非季节性或季节性)可能需要调整。如果残差的方差随时间显著变化(异方差性),则在建模前可能需要考虑数据变换(如对数或Box-Cox变换),或者可能需要更复杂的模型。
虽然并非严格要求模型系数有意义,但残差服从正态分布的假设对于构建准确的预测区间通常很重要。两种常用的正态性评估图是直方图和分位数-分位数(QQ)图。
模型残差的直方图(左)和QQ图(右)。直方图近似于钟形曲线,QQ图中的点接近对角线,表明残差与正态分布相当接近。
偏离正态性,尤其是重尾(QQ图中两端点明显偏离直线),可能表明预测区间不准确。
也许时间序列模型最重要的诊断方法是检查残差中的自相关性。如果模型已成功捕获了时间依赖性(包括非季节性和季节性),则残差应不相关。我们使用残差的ACF图进行此检查。
残差ACF图中显著的尖峰,尤其是在较低滞后(如1、2、3...)或在季节性滞后(,其中是季节周期),表明模型尚未完全捕获相关结构。
残差的ACF图。大多数尖峰都在置信区间内(虚线),表明没有显著自相关性残留。明显超出范围的尖峰可能表明存在问题。对于具有月度季节性()的SARIMA模型,要特别注意滞后12和24。
如果发现显著自相关性:
除了视觉检查,正式统计检验可以检查残差中的自相关性。Ljung-Box检验常用。它检验残差的前个自相关系数联合为零的原假设。
: 残差相互独立(无自相关)。 : 残差表现出自相关性。
该检验产生一个统计量和一个p值。如果p值很小(通常小于0.05这样的显著性水平),我们拒绝原假设,认定残差中仍存在显著自相关性,表明模型可能存在设定错误。
在Python的statsmodels库中,已拟合SARIMA模型的summary()方法通常包含Ljung-Box检验结果(常报告为“Prob(Q)”)。寻找大于0.05的p值,以支持残差独立的说法。
statsmodels等库在拟合SARIMA模型后提供的summary()输出是诊断信息的丰富来源。在Ljung-Box检验之后,它通常包含:
仔细审查此汇总表,为视觉诊断提供了量化补充。
通过系统地应用这些诊断检查——检查残差图、测试正态性、检查残差的ACF/PACF,以及解释Ljung-Box等正式检验——您可以对您拟合的SARIMA模型更有信心。如果诊断结果显示问题,请重新查看模型识别和阶数选择步骤(第3章和第5章),以调整模型结构,直到残差接近白噪声。只有在进行了全面诊断之后,才能继续使用模型进行预测。
这部分内容有帮助吗?
statsmodels.tsa.statespace.sarimax.SARIMAXResults.plot_diagnostics, `statsmodels` developers, 2024 - 官方文档,详细说明了如何使用和解释statsmodels SARIMA模型结果生成的诊断图(残差图、直方图、QQ图、ACF图)。© 2026 ApX Machine Learning用心打造