You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

月度支出时间序列KPSS检验参数选择及结果解读疑问

关于KPSS检验regression参数选择的清晰指南

针对你的4年月度支出时间序列(已观察到趋势),我来帮你理清KPSS检验里regression参数的选择逻辑,以及结果解读的关键点:

先搞懂两个参数的核心差异

  • regression='c':这个模式检验的是序列是否围绕固定均值平稳。简单说,它默认你的序列没有趋势,只看数据会不会在某个恒定的平均值附近上下波动。
  • regression='ct':这个模式检验的是序列是否围绕线性趋势平稳。它允许你的序列有一个持续的上升/下降趋势,检验的是去除这个线性趋势之后的残差部分是否平稳。

结合你的场景,优先选regression='ct'

你已经明确观察到序列存在趋势,那第一步必须用'ct'模式来检验:

  • 如果用'c'模式,检验会把趋势当作“非平稳”的信号,大概率会得出“序列非平稳”的结论,但你根本分不清这个结论是因为趋势本身,还是序列真的存在单位根(真正的非平稳),这样的结果对你没什么参考价值。
  • 用'ct'模式的话,能精准判断:你的序列是“带着趋势但趋势之外的部分平稳”,还是“就算去掉趋势,依然是非平稳的”。

结果解读的关键(别和ADF搞混!)

KPSS检验的原假设是“序列平稳”(对应你选的'c'或'ct'的平稳类型),和ADF检验的原假设相反,这点一定要记牢:

  1. 如果p值 > 显著性水平(比如0.05):不能拒绝原假设,说明序列符合你所选的平稳类型——比如选'ct'的话,就是“围绕线性趋势平稳”,不需要做差分处理。
  2. 如果p值 < 显著性水平:拒绝原假设,说明即使考虑了线性趋势,序列还是非平稳的,这时候可能需要做差分,或者进一步分析序列的其他非平稳来源。

给你的代码示例

from statsmodels.tsa.stattools import kpss

# 针对带趋势的支出序列,先执行带趋势的KPSS检验
kpss_stat, p_value, used_lags, critical_values = kpss(your_monthly_expenses, regression='ct')

print(f"KPSS统计量: {round(kpss_stat, 4)}")
print(f"p值: {round(p_value, 4)}")
print(f"临界值: {critical_values}")

内容的提问来源于stack exchange,提问作者TL16

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:26:23