在时间序列分析课程中会需要用到自相关函数的计算,也就是当前期的值和滞后期的值之间的关系,这个指标的计算在计量软件中会比较容易实现,但是如果想要用python做怎么实现呢。代码如下:#导入库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
#准备数据:模拟一个时间序列
np.random.seed(100)
price=pd.Series(np.random.rand(20),index=pd.date_range('2011-1-20', freq='D',periods=20) )
#计算自相关函数的有关统计量
#我们用函数sm.tsa.acf来实现
#这个函数的第一个位置参数x是需要进行自相关函数值计算的时间序列,关键字unbiased参数设定是否进行无偏估计
#关键字nlags 参数设定之后期数,默认期数为40,或者是能够计算出来的最大期数。
#关键字qstat参数用来设定是否报告每个自相关系数对应的Ljung-Box q 统计量,默认是False
#关键字fft参数用来设定是否通过傅氏变换(FFT)来计算ACF,默认取值为False
#关键字alpha参数用来设定显著性水平,如果设定了显著性水平,则会报告对应的置信区间
#键字missing参数用来设定当遇到缺失值的时候如何处理,默认值是None
#此函数的返回结果包括自相关系数,置信区间(如果没有设定alpha,则不会报告),Q统计量,p-values
#下面是此函数的帮助文件
'''
help(sm.tsa.acf)
Help on function acf in module statsmodels.tsa.stattools:
acf(x, unbiased=False, nlags=40, qstat=False, fft=None, alpha=None, missing='none')
Calculate the autocorrelation function.
Parameters
----------
x : array_like
The time series data.
unbiased : bool
If True, then denominators for autocovariance are n-k, otherwise n.
nlags : int, optional
Number of lags to return autocorrelation for.
qstat : bool, optional
If True, returns the Ljung-Box q statistic for each autocorrelation
coefficient. See q_stat for more information.
fft : bool,