Mar*_*din 6 numpy time-series decomposition pandas statsmodels
我知道这个话题有很多问题,但没有一个能帮助我解决这个问题.我真的坚持这个.
有一个简单的系列:
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()
Run Code Online (Sandbox Code Playgroud)
我一直在: 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
Run Code Online (Sandbox Code Playgroud)
正如 @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
Run Code Online (Sandbox Code Playgroud)
形状是
(12,)
Run Code Online (Sandbox Code Playgroud)
所以这会给出上面的错误:
seasonal_decompose(ts, freq=12, model='additive')
Run Code Online (Sandbox Code Playgroud)
但如果我尝试freq=11或任何其他int少于 12,例如
seasonal_decompose(ts, freq=11, model='additive')
Run Code Online (Sandbox Code Playgroud)
这有效
| 归档时间: |
|
| 查看次数: |
2386 次 |
| 最近记录: |