2017-02-21 2 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,)

I 시리즈 비 로그 통과 만 logdf.values을 통과, 거의 모든 것을 시도했습니다. 작동하지 않습니다. NumPy와 및 statsmodel 버전 :

print(statsmodels.__version__) 
print(pd.__version__) 
print(np.__version__) 
0.6.1 
0.18.1 
1.11.3 
+0

데이터 시리즈의 앞에있는 0은 무엇입니까? 또한 한 시즌 만 있다면 계절적인 효과를 예측할 수 없습니다. 계절을 추세 또는 다른 효과와 구별 할 수있는 방법이 없습니다. – user333700

+0

내가 생각하는 날짜보다 0은 그 날짜에 대한 색인이 붙은 팬더 시리즈를 의미합니다. –

+0

Max가 맞습니다. 팬더 시리즈는 해당 날짜에 대해 색인이 생성됩니다. 왜 우리는 단 한 시즌만으로 계절별 효과를 추정 할 수 없습니까? 어쨌든 그냥 샘플 시리즈입니다, 나는 더 큰 데이터 세트 (실제로 resampled) 날짜로 그룹화있어, 그리고 여전히 나는이 오류가 발생했습니다 (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 버전 :이 수 희망

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

:

statsmodels.__version__ 0.8.0 
pandas.__version__ 0.20.1 

다음은 결과입니다 당신의 문제도 해결하십시오.

관련 문제