我在做一个关于时间序列和预测的数据分析项目。我有一个Dataframe,它包含了很多我需要处理的数据 Covid cases
. Dataframe如下所示:
Covid cases Confirmed Infections Difference
date
2020-02-24 19 NaN
2020-02-25 0 -19.0
2020-02-26 0 0.0
2020-02-27 1 1.0
2020-02-28 2 1.0
... ... ...
2021-02-25 1502 -136.0
2021-02-26 1468 -34.0
2021-02-27 1474 6.0
2021-02-28 715 -759.0
2021-03-01 298 -417.0
为了做一个预测,我使用arima模型(Dataframe是静态的),然后我尝试在我的图中应用一条预测线。我正在使用arima和sarimax的一些参数,然后用pandas打印图形。该行正在拟合时间序列,但它不显示在该行的结束位置。
代码:
def timeseries(dataframe, city_name):
cols = ['ID', 'name'] # Creating columns to be dropped
dataframe.drop(cols, axis=1, inplace=True) # Dropping columns that I don't need
dataframe.columns = ["date", "Covid cases"]
dataframe.describe()
dataframe.set_index('date', inplace=True)
dataframe.plot(figsize=(15, 6)) # Setting figure size
dataframe['Confirmed Infections Difference'] = dataframe['Covid cases'] - dataframe['Covid cases'].shift(1)
adfuller_test(dataframe['Confirmed Infections Difference'].dropna())
model = ARIMA(dataframe['Covid cases'], order=(1, 1, 1))
model_fit = model.fit(disp=0)
print(model_fit.summary())
dataframe['forecast'] = model_fit.predict(start=90, end=103, dynamic=True)
model = sm.tsa.statespace.SARIMAX(dataframe['Covid cases'], order=(1, 1, 1), seasonal_order=(1, 1, 1, 12))
results = model.fit()
dataframe['forecast'] = results.predict(start=90, end=103, dynamic=True)
future_dates = [dataframe.index[-1] + DateOffset(months=x) for x in range(0, 24)]
future_datest_df = pd.DataFrame(index=future_dates[1:], columns=dataframe.columns)
future_datest_df.tail()
future_df = pd.concat([dataframe, future_datest_df])
future_df['forecast'] = results.predict(start=104, end=120, dynamic=True)
future_df[['Covid cases', 'forecast']].plot(figsize=(12, 8))
以下是结果图:
因此,据你所知,预测似乎没有得到正确的应用。我想这是我给arima和sarimax的一些参数的问题。
期望图示例:
提醒: date
专栏是关于每一天的。我想预测的是未来几天的天气。
有什么想法吗?
暂无答案!
目前还没有任何答案,快来回答吧!