差分和自相关函数图 x 轴远远超出数据集范围
Differencing and Autocorrelation Function plots x-axis extends far beyond dataset range
我有一系列 Sales
数据,其中关联的 Date
记录集作为索引。数据范围从 2013
到 2015
。我想 运行 这个时间序列的 ARIMA。
display(store1_train['Sales'])
Output:
Date
2013-01-01 0
2013-01-02 5530
2013-01-03 4327
2013-01-04 4486
2013-01-05 4997
...
2015-06-26 3317
2015-06-27 4019
2015-06-28 0
2015-06-29 5197
2015-06-30 5735
然而,当我 运行 以下代码绘制差分和自相关函数时,x 轴显示从 1970
到 2015
。为什么会发生这种情况,如何控制 x 轴范围?我已尝试为 plot_acf
指定 lags
参数,但没有任何反应。我是一个新手,从教程中找到了这段代码并根据我的需要进行了调整。
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
plt.rcParams.update({'figure.figsize':(7,7), 'figure.dpi':120})
# Original Series
fig, axes = plt.subplots(3, 2, sharex=True)
axes[0, 0].plot(store1_train.Sales); axes[0, 0].set_title('Original Series')
plot_acf(store1_train.Sales, ax=axes[0, 1])
# 1st Differencing
axes[1, 0].plot(store1_train.Sales.diff()); axes[1, 0].set_title('1st Order Differencing')
plot_acf(store1_train.Sales.diff().dropna(), ax=axes[1, 1])
# 2nd Differencing
axes[2, 0].plot(store1_train.Sales.diff().diff()); axes[2, 0].set_title('2nd Order Differencing')
plot_acf(store1_train.Sales.diff().diff().dropna(), ax=axes[2, 1])
plt.show()
绘图输出:
问题出在这行:fig, axes = plt.subplots(3, 2, sharex=True)
如果你设置 sharex=True
那么所有的子图都会有一个共同的 x 轴。原始系列应该用 x 轴上的日期和与数值的自相关绘制 -> 滞后范围从 1 到任何
如果将它们绘制在数字轴上,原始系列的日期将转换为数字,数字从 1970-01-01 开始,从 0 开始,因此 2013-01-01 将在某处具有非常高的值2万。
设置sharex=False
,然后应该又正常了。
我有一系列 Sales
数据,其中关联的 Date
记录集作为索引。数据范围从 2013
到 2015
。我想 运行 这个时间序列的 ARIMA。
display(store1_train['Sales'])
Output:
Date
2013-01-01 0
2013-01-02 5530
2013-01-03 4327
2013-01-04 4486
2013-01-05 4997
...
2015-06-26 3317
2015-06-27 4019
2015-06-28 0
2015-06-29 5197
2015-06-30 5735
然而,当我 运行 以下代码绘制差分和自相关函数时,x 轴显示从 1970
到 2015
。为什么会发生这种情况,如何控制 x 轴范围?我已尝试为 plot_acf
指定 lags
参数,但没有任何反应。我是一个新手,从教程中找到了这段代码并根据我的需要进行了调整。
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
plt.rcParams.update({'figure.figsize':(7,7), 'figure.dpi':120})
# Original Series
fig, axes = plt.subplots(3, 2, sharex=True)
axes[0, 0].plot(store1_train.Sales); axes[0, 0].set_title('Original Series')
plot_acf(store1_train.Sales, ax=axes[0, 1])
# 1st Differencing
axes[1, 0].plot(store1_train.Sales.diff()); axes[1, 0].set_title('1st Order Differencing')
plot_acf(store1_train.Sales.diff().dropna(), ax=axes[1, 1])
# 2nd Differencing
axes[2, 0].plot(store1_train.Sales.diff().diff()); axes[2, 0].set_title('2nd Order Differencing')
plot_acf(store1_train.Sales.diff().diff().dropna(), ax=axes[2, 1])
plt.show()
绘图输出:
问题出在这行:fig, axes = plt.subplots(3, 2, sharex=True)
如果你设置 sharex=True
那么所有的子图都会有一个共同的 x 轴。原始系列应该用 x 轴上的日期和与数值的自相关绘制 -> 滞后范围从 1 到任何
如果将它们绘制在数字轴上,原始系列的日期将转换为数字,数字从 1970-01-01 开始,从 0 开始,因此 2013-01-01 将在某处具有非常高的值2万。
设置sharex=False
,然后应该又正常了。