2017-02-21 43 views
3

我知道这个主题有很多问题,但他们都没有帮助我解决这个问题。我真的坚持这一点。seasonal_decompose:操作数无法与系列上的形状一起广播

随着一系列简单:

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 
+0

什么是数据系列前面的零点?此外,如果只有一个季节,我们无法估计季节性影响。无法区分季节与趋势或其他影响。 – user333700

+0

0以上的日期我认为只是意味着他有一个熊猫系列,索引在这些日期。 –

+0

马克斯是正确的,熊猫系列在这些日期索引。为什么我们无法估计只有一个季节的季节性影响?无论如何只是一个样本系列,我有一个更大的数据集按日期分组(实际重新采样),仍然我得到了这个错误(应该是numpy相关,我猜) –

回答

0

我注意到,与新的熊猫和statsmodel版本中,它似乎工作。

给定一个系列:

2016-01-03 8.326275 
2016-01-10 8.898229 
2016-01-17 8.754792 
2016-01-24 8.658172 
2016-01-31 8.731659 
2016-02-07 9.047233 
2016-02-14 8.799662 
2016-02-21 8.783549 
2016-02-28 8.782783 
2016-03-06 9.081825 
2016-03-13 8.737934 
2016-03-20 8.658693 
2016-03-27 8.666475 
2016-04-03 9.029178 
2016-04-10 8.781555 
2016-04-17 8.720787 
2016-04-24 8.633909 
2016-05-01 8.937744 
2016-05-08 8.804925 
2016-05-15 8.766862 
2016-05-22 8.651899 
2016-05-29 8.653645 
... 

和Pd/SM版本:

statsmodels.__version__ 0.8.0 
pandas.__version__ 0.20.1 

这是结果:

import statsmodels.api as sm 
logdf = np.log(df_series) 
decompose = sm.tsa.seasonal_decompose(logdf, model='additive', filt=None, freq=1, two_sided=True) 
decompose.plot() 

enter image description here

我希望这会解决你的问题。

相关问题