В statsmodels plot_acf есть параметр, который называется «беспристрастный»: «unbiased: bool, если True, то знаменателями для автоковариации являются nk, в противном случае n.»
Почему существует параметр «беспристрастный»? Почему нужно, чтобы знаменатель был n - k, а не n? В приведенном ниже коде показана разница между отображаемым acf с unbiased = True и unbiased = False.
import numpy as np, pandas as pd, matplotlib.pyplot as plt, statsmodels.api as sm
dta = sm.datasets.sunspots.load_pandas().data
dta.index = pd.Index(sm.tsa.datetools.dates_from_range('1700', '2008'))
del dta["YEAR"]
Вот значение для l oop для вычисления acf (насколько я понимаю):
c = []
for i in range(1, 201):
c.append(np.corrcoef(dta['SUNACTIVITY'][i:], dta['SUNACTIVITY'][:-i])[0, 1])
Постройте акф с беспристрастным = True:
sm.graphics.tsa.plot_acf(dta.values.squeeze(), lags = 200, unbiased = True, zero = False)
plt.plot([0] + c)
plt.show()
Постройте акф с беспристрастным = False:
sm.graphics.tsa.plot_acf(dta.values.squeeze(), lags = 200, unbiased = False, zero = False)
plt.plot([0] + c)
plt.show()
Спасибо!