使用金字塔算法预测超出现有数据的范围

时间:2019-11-28 03:05:47

标签: python arima pyramid-arima

我正在为美国各州的房价创建50种不同的时间序列模型。我正在使用金字塔ARIMA完成此任务。

数据来自具有日期,状态和Median_Listing_Price列的.csv。

我已经创建了模型,并希望预测现有数据之外的值,但是我不知道该怎么做。

我有一个看起来像这样的图表:

enter image description here

我想要一个看起来像这样的图表: enter image description here

我还想将预测值输出到新的.csv。

当前代码:

# Indexing and creating series
df = pd.read_csv(f'state_csvs/{state}.csv', parse_dates=['Date'], date_parser=dateparse, index_col=0, header=0)
data = df[['Median_Listing_Price']]

# Divide into train and validation set
train = data.loc['2013-11':'2017-01']
valid = data.loc['2017-02':]

# Building the model
model = auto_arima(train, start_p=1, start_q=1, max_p=3, max_q=3, m=12, start_P=0, seasonal=True, d=1, D=1,
                   trace=True, error_action='ignore', suppress_warnings=True)
model.fit(train)

forecast = model.predict(n_periods=len(valid))
forecast = pd.DataFrame(forecast, index=valid.index, columns=['Prediction'])

# Plot the predictions for validation set
plt.plot(train, label='Train')
plt.plot(valid, label='Valid')
plt.plot(forecast, label='Prediction')
plt.title(f'{state}')
plt.show()

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码,

  mounted() {
    this.$nextTick(() => {
      this.map = this.$refs.myMap.mapObject;
      this.layer1 = this.$refs.leftLayer.mapObject;
      // this.layer2 = this.$refs.rightLayer.mapObject;
      L.control.sideBySide(this.layer1, this.layer2).addTo(this.map);
    });
  }

在我的情况下输出: 我已经做了12个月了,您可以设置自己的参数。 enter image description here