我正在使用python 3.7。
我正在使用 ARIMA 模型执行时间序列预测。我正在使用自相关图评估ARIMA数据的属性 - 特别是使用来自pandas.plotting的autocorrelation_plot。
我的数据有 50,000 条左右的记录,这使得绘图非常繁忙,很难挑选出任何具体的趋势。有没有办法限制 x 轴以使前几百个滞后更加聚焦?
我无法分享实际情节,但我的代码如下:
import pandas as pd
from pandas.plotting import autocorrelation_plot
#Import Data
time_series_2619 = pd.read_csv("Consumption/2619.csv", parse_dates=['Date/Time'], index_col = ['Date/Time'])['Recording']
#Auto Correlation Plot
autocorrelation_plot(time_series_2619)
我在文档中找不到任何内容。
>autocorrelation_plot
返回一个matplotlib.axis对象。因此,您可以简单地使用 set_xlim()
方法来限制 x 轴:
ax = autocorrelation_plot(time_series_2619)
ax.set_xlim([0, 500])
,您可以使用 plot_acf()
函数并指定滞后。
# import the plotting functions for act and pacf
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
plot_acf(df1['Thousands of Passengers'], lags=40);
只是为了添加另一种绘制自相关的方法,说实话,在小数据情况下要快得多:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
plt.title('Autocorrelation plot')
plt.plot(np.arange(720), [time_series_2619['column_name'].autocorr(j) for j in range(720)])
plt.show();
您只是在使用 pandas 系列的 Series.autocorr()
函数,它需要一个滞后数并返回两个时间戳之间的自相关。做一个简单的理解列表,你将能够有一个自相关数组,可以使用pyplot轻松绘制。