时间序列平稳性的双重假设检验:KPSS与ADF方法比较研究
创作时间:
作者:
@小白创作中心
时间序列平稳性的双重假设检验:KPSS与ADF方法比较研究
引用
CSDN
1.
https://blog.csdn.net/deephub/article/details/145299165
在进行时间序列分析之前,确定序列的平稳性是一个关键步骤。平稳性指的是时间序列的统计特性(如均值和方差)在时间维度上保持不变。本文将详细介绍如何运用KPSS 检验和Dickey-Fuller 检验来验证序列的平稳性。这两种检验方法基于不同的统计假设:KPSS 检验的原假设是数据非平稳,而 Dickey-Fuller 检验则假设数据平稳。
时间序列平稳性的基本概念
时间序列的平稳性主要体现在三个方面:
- 均值稳定性:序列的期望值在时间维度上保持恒定
- 方差稳定性:数据波动范围保持相对稳定
- 无周期性:数据不存在明显的周期性波动或循环模式
平稳性是许多时间序列模型(如 ARIMA)的基本假设条件,对模型的有效性具有重要影响。
以下我们将通过构造平稳序列和非平稳序列来演示这两种检验方法的应用。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.stattools import adfuller, kpss
# 构造平稳时间序列(白噪声过程)
np.random.seed(42)
stationary_series = np.random.normal(loc=0, scale=1, size=500)
# 构造非平稳时间序列(随机游走过程)
non_stationary_series = np.cumsum(np.random.normal(loc=0, scale=1, size=500))
# 创建数据框用于后续分析
data = pd.DataFrame({
"Stationary": stationary_series,
"Non-Stationary": non_stationary_series
})
plt.figure(figsize=(12, 6))
plt.plot(data['Stationary'], label='Stationary Series')
plt.plot(data['Non-Stationary'], label='Non-Stationary Series')
plt.title('Stationary vs Non-Stationary Time Series')
plt.xlabel('Time')
plt.ylabel('Value')
plt.legend()
plt.grid()
plt.savefig('stationary_vs_non_stationary.png')
plt.show()
def kpss_test(series):
statistic, p_value, _, critical_values = kpss(series, regression='c')
print("KPSS Test:")
print(f"Statistic: {statistic:.4f}")
print(f"P-Value: {p_value:.4f}")
print("Critical Values:")
for key, value in critical_values.items():
print(f"{key}: {value:.4f}")
print(f"Conclusion: {'Stationary' if p_value > 0.05 else 'Non-Stationary'}\n")
def adf_test(series):
statistic, p_value, _, _, critical_values, _ = adfuller(series)
print("Dickey-Fuller Test:")
print(f"Statistic: {statistic:.4f}")
print(f"P-Value: {p_value:.4f}")
print("Critical Values:")
for key, value in critical_values.items():
print(f"{key}: {value:.4f}")
print(f"Conclusion: {'Stationary' if p_value < 0.05 else 'Non-Stationary'}\n")
print("Testing the Stationary Series:\n")
kpss_test(data['Stationary'])
adf_test(data['Stationary'])
print("Testing the Non-Stationary Series:\n")
kpss_test(data['Non-Stationary'])
adf_test(data['Non-Stationary'])
平稳序列检验结果分析:
- KPSS 检验结果显示 p 值大于显著性水平 0.05,未能拒绝序列平稳的原假设
- Dickey-Fuller 检验的 p 值小于 0.05,拒绝序列存在单位根的原假设,证实序列平稳性
非平稳序列检验结果分析:
- KPSS 检验的 p 值小于 0.05,拒绝平稳性假设,表明序列非平稳
- Dickey-Fuller 检验的 p 值大于 0.05,未能拒绝单位根假设,同样证实序列非平稳性
总结
时间序列的平稳性检验是建模过程中的重要环节。KPSS 和 Dickey-Fuller 检验提供了两种互补的统计方法,可以帮助研究者准确评估序列的平稳性特征,并为后续的数据转换(如差分处理)提供依据。
- KPSS 检验适用于验证时间序列是否围绕确定性趋势呈现平稳特性
- Dickey-Fuller 检验主要用于检验序列是否存在单位根,尤其适用于 ARIMA 建模前的平稳性验证
由于这两种检验方法基于不同的统计假设,在实际应用中通常建议同时使用两种方法进行交叉验证,以获得更可靠的结论。
热门推荐
一文揭秘俄罗斯蜂蜜为什么这么便宜?
2024年山西省煤炭行业发展现状分析 规模以上企业原煤产量持续增长【组图】
园区绿色低碳生态建筑设计策略及绿色低碳景观设计策略
大卫·林奇:烧脑大师的光影传奇
先天性脑血管畸形:病因、症状、检查、治疗及护理全解析
思路创新:如何打破传统思维定势
警惕!孩子停止长高的 3 大信号,快带上你家萌娃来测骨龄
探寻轻子奥秘:穿越微观世界,揭秘宇宙最基本粒子的神秘面纱
胆囊结石会尿淀粉酶低不
AI产品经理:下一个金领职业 -- 解读吴恩达的前瞻洞见
超详细的普洱茶产区地图,快来喝一杯
安史之乱只是表象而已,深度分析大唐迅速由盛转衰背后的深层原因
一年四季对应哪些生肖?生肖与四季的奇妙联系
草木皆兵:历史典故中的幻战迷局,深刻寓意下的警觉之道
益生菌依靠什么维持肠道菌群平衡
益生菌的十大功效
《明日方舟》最佳阵容搭配推荐 打造实力团队享受策略乐趣
实业的底层工人现状与发展路径
品牌方如何做好全网形象塑造及自媒体平台内的舆情管控工作?
国际货币乘数效应:探究其对全球经济的影响及应对策略
深度剖析秦朝将领蒙恬的功绩及其对中国历史的影响
“三军可夺帅也” ——领导力与团队精神的深度解读
货币基金和银行存款区别:从收益率到安全性全方位解析
产品经理必读:构建MVP的五大步骤与三大注意事项
经常按摩小腿的好处
粤赣大动脉升级:长深高速扩容惠河段建设取得重要进展
想做日语翻译,日语需要达到什么水平?
高速通行费减半?这些省份的ETC优惠,不知道就亏大了!
空气炸锅炸薯条需要油吗?怎么样做出油炸般口感?教你正确方法!
0 - 6 个月宝宝的早教玩具:开启成长与发展的钥匙