首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >statsmodel.SARIMAX .forecast()方法不执行

statsmodel.SARIMAX .forecast()方法不执行
EN

Stack Overflow用户
提问于 2018-11-23 15:06:43
回答 1查看 1.3K关注 0票数 1

我试图使用SARIMAX模型进行TS预测。然而,我有一些错误,我不知道如何处理。我的代码很简单:

代码语言:javascript
复制
import statsmodels.api as sm

fit = sm.tsa.statespace.SARIMAX(train).fit()
sarima = fit.forecast()

列车数据看上去

代码语言:javascript
复制
            y
ds  
2015-01-07  1
2015-01-14  64
2015-01-21  16
2015-01-28  50
2015-02-04  7

我得到了错误

代码语言:javascript
复制
 /usr/local/lib/python3.6/dist-packages/statsmodels/tsa/base/datetools.py in 
_date_from_idx(d1, idx, freq)
     84     offset. For now, this needs to be taken care of before you get 
     here.
     85     """
---> 86     return _maybe_convert_period(d1) + int(idx) * 
     _freq_to_pandas[freq]
     87 
     88 

TypeError: unsupported operand type(s) for *: 'int' and 'NoneType'

你知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2018-11-23 16:52:02

萨里玛是一个相当复杂的移动平均预测模型,具有许多参数和细微差别。您将需要深入研究这种方法的细节,以确保您正在适当地利用这一方法。为了简单地实现模型以获得结果,下面的示例应该会有所帮助:

代码:

代码语言:javascript
复制
import matplotlib.pyplot as plt
import statsmodels.api as sm
import numpy as np

np.random.seed(100)

data = np.sort(np.random.uniform(0, 1, size=30))
steps_to_predict = 5

model = sm.tsa.statespace.SARIMAX(endog=data,order=(2,0,0),enforce_stationarity=False)
sarima = model.fit()
print(sarima.summary())

# plot   
fig, ax = plt.subplots(1,1, figsize=(20,10))
ax.set_xlim(0,40)
ax.plot(train, "ro-", linewidth=2, markersize=12)
ax.plot(list(range(30,35)), sarima.forecast(steps_to_predict), "bo-", linewidth=2, markersize=12)

输出:

*注意观察到的数据是红色的,预测的步骤是蓝色的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53449025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档