如何获取时间序列自相关函数plot_acf原始数据 按滞后索引提取相关系数及显著性
ACF原始数值提取方法
以下为常用统计分析环境的实现方案:
Python环境实现
- 依赖安装(未安装时执行):
pip install statsmodels numpy - 核心实现步骤:
- 导入依赖
import numpy as np from statsmodels.tsa.stattools import acf
- 计算ACF系数与显著性参数
调用acf方法时指定alpha参数获取置信区间,指定qstat=True获取Ljung-Box检验的精确显著性p值:
# 替换为你的实际时间序列数据 time_series = [你的时间序列数据] # nlags设置需要计算的最大滞后阶数,alpha=0.05对应95%显著性水平 acf_coef, conf_int, q_stat, p_values = acf(time_series, nlags=30, alpha=0.05, qstat=True)
- 按要求格式输出结果
# 滞后0阶的相关系数恒为1,无统计显著性意义,p值设为NaN print(f"x[0] -> ({acf_coef[0]:.2f}, {np.nan})") # 遍历其余滞后阶数输出 for lag in range(1, len(acf_coef)): print(f"x[{lag}] -> ({acf_coef[lag]:.2f}, {p_values[lag-1]:.2f})")
输出示例:
x[0] -> (1.00, nan)
x[1] -> (0.89, 0.00)
x[12] -> (0.11, 0.23)
R语言环境实现
直接调用acf()函数,返回结果的acf属性存储各阶相关系数,调用Box.test()函数可获取对应滞后阶数的显著性p值,逻辑与Python方案一致。
内容的提问来源于stack exchange,提问作者Kristof
相关产品推荐
相关产品推荐

