我知道关于这个话题有很多问题,但没有一个能帮助我解决这个问题。我真的很坚持这个。
用一个简单的系列:
0
2016-01-31 266
2016-02-29 235
2016-03-31 347
2016-04-30 514
2016-05-31 374
2016-06-30 250
2016-07-31 441
2016-08-31 422
2016-09-30 323
2016-10-31 168
2016-11-30 496
2016-12-31 303
import statsmodels.api as sm
logdf = np.log(df[0])
decompose = sm.tsa.seasonal_decompose(logdf,freq=12, model='additive')
decomplot = decompose.plot()
我不断得到:ValueError: operands could not be broadcast together with shapes (12,) (14,)
我几乎尝试了所有方法,仅传递 logdf.values,传递非日志系列。这不起作用。
Numpy 和 statsmodel 版本:
print(statsmodels.__version__)
print(pd.__version__)
print(np.__version__)
0.6.1
0.18.1
1.11.3
正如 @yoonforh 指出的,在我的例子中,这是通过设置来解决的freq
参数小于时间序列长度。例如。如果你的时间序列ts
看起来像这样:
2014-01-01 0.0
2014-02-01 0.0
2014-03-01 1.0
2014-04-01 1.0
2014-05-01 0.0
2014-06-01 1.0
2014-07-01 1.0
2014-08-01 0.0
2014-09-01 0.0
2014-10-01 1.0
2014-11-01 0.0
2014-12-01 0.0
形状是
(12,)
所以这会给出上面的错误:
seasonal_decompose(ts, freq=12, model='additive')
但如果我尝试freq=11
或任何其他int
小于 12,例如
seasonal_decompose(ts, freq=11, model='additive')
这有效
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)