Вопрос о результате autocorrelation_plot против результата autocorr

Я использовал autocorrelation_plot для построения автокорреляции прямой линии:

import numpy as np
import pandas as pd
from pandas.plotting import autocorrelation_plot
import matplotlib.pyplot as plt

dr = pd.date_range(start='1984-01-01', end='1984-12-31')

df = pd.DataFrame(np.arange(len(dr)), index=dr, columns=["Values"])
autocorrelation_plot(df)
plt.show()

Затем я попытался с помощью autocorr() Для расчета автокорреляции с разными лагами:

for i in range(0,366):
    print(df['Values'].autocorr(lag=i))

Выходное значение равно 1 (или 0,99) для всех задержек. Но из коррелограммы ясно, что автокорреляция - это кривая, а не прямая линия с фиксированным значением 1.

Правильно ли я интерпретировал коррелограмму или неправильно использовал функцию autocorr()? Спасибо!

1 ответ

Вы используете обе функции правильно, но... Autocorrelation_plot использует другой способ вычисления автокорреляций, чем autocorr().

Следующие два поста объясняют больше о различиях. К сожалению, я не знаю, какой способ расчета является правильным:

В чем разница между ACF панд и statsmodel ACF?

Почему NUMPY коррелят и corrcoef возвращают разные значения и как "нормализовать" коррелят в "полном" режиме?

Если вам это нужно, вы можете получить автокорреляции из графика автокорреляции следующим образом:

ax = autocorrelation_plot(df)
ax.lines[5].get_data()[1]
Другие вопросы по тегам