首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我从Statsmodels运行ARIMA时,我如何解决ValueError?

当我从Statsmodels运行ARIMA时,我如何解决ValueError?
EN

Stack Overflow用户
提问于 2020-08-18 22:48:02
回答 2查看 2.1K关注 0票数 0

在构建ARIMA时,我使用以下代码

代码语言:javascript
运行
复制
arima = ARIMA(ts.astype(float), freq = 'M',order=(4, d, 3)).fit()

当我运行上面的代码时,我得到了以下错误:

代码语言:javascript
运行
复制
ValueError: The given frequency argument could not be matched to the given index.

我的数据框如下所示:

代码语言:javascript
运行
复制
Date        A          B           C        D       E           F
2020-04-01  118     10932.54    203.617     1   0.296610    0.382666
2020-05-01  144     11645.20    167.575     1   0.361111    0.401953
2020-06-01  89      8545.86     196.084     1   0.449438    0.524768
2020-07-01  117     10512.30    194.442     1   0.384615    0.472443
2020-08-01  75      6613.11     189.289     1   0.280000    0.332995

Date列是我的索引。它没有频率标签。

我尝试给它一个频率标签,如下所示

代码语言:javascript
运行
复制
df.asfreq('M')

但是,这会将除Date列之外的每一列中的值转换为NaN

我试图在没有频率参数的情况下运行ARIMA模型;但是,我收到了以下警告消息:

代码语言:javascript
运行
复制
ValueWarning: No frequency information was provided, so inferred frequency MS will be used.

同样,我也收到了这样的警告:

代码语言:javascript
运行
复制
ValueError: The computed initial MA coefficients are not invertible
You should induce invertibility, choose a different model order, or you can pass your own start_params.

我不知道在这里该做什么。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2020-08-20 17:33:09

首先,您可以使用

代码语言:javascript
运行
复制
df = df.resample("M").last()

在不引入NaN值的情况下获得干净的月末df

其次,您应该使用SARIMAXstatsmodels.tsa.arima.model.ARIMA,而不是statsmodels.tsa.arima_model.ARIMA (注意,后者中的_是前者中的. )。statsmodels.tsa.arima.model.ARIMA本质上是SARIMAX的一个特例,它的性能通常更好。要使用新的ARIMA,您需要statsModels0.12.0rc0或主分支的构建。

在这个新模型中,你将不会有MA可逆性的问题。

票数 3
EN

Stack Overflow用户

发布于 2020-08-19 04:49:27

“is”表示“月份开始”,而“M”表示“月份结束”。

我的数据是每个月的开始,所以我应该把'MS‘传递给频率参数。

我用try/except解决了不可撤销的错误。

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

https://stackoverflow.com/questions/63471170

复制
相关文章

相似问题

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