def predict(df,steps):
start = df.index[0].year
end = df.index[-1].year
years_captured = [idx.year for idx in df.index]
years_inclusive = [elem for elem in range(start, end+1)]
s = df.T.squeeze()
for year in years_inclusive:
if not year in years_captured:
s = s.set_value(datetime.datetime(year=year,month=1,day=1),math.nan)
s.sort_index(inplace=True)
s = s.interpolate()
data = s.to_frame()
model_order = brute_search(data)
model_order = tuple([int(elem) for elem in model_order])
model = sm.tsa.ARIMA(data, model_order).fit(disp=0)
return model.forecast(steps=steps)[0], end
评论列表
文章目录