前提・実現したいこと
Pythonを使って時系列データから季節変動の要素を除去または分離がしたいです。
statsmodelsを使って元のデータからトレンド、季節性、残差を分離させているのですが、最初に指定するfreq(周期)で引っかかってしまいます。
というのも、使用しているデータには欠損日のある日時データでして、1年周期(freq=365or366)としてしまうと季節性が正しく除去できません。statsmodelsで周期性を指定する際,freqの指定を1年にしたいのですがどのように指定してやればよいのでしょうか?
それとも、各月で平均をとって月次データにした方が早いでしょうか?
よろしくお願い致します。
該当のソースコード
>>print(DATA) #'date'はindexに入ってます。データが得られた日付にばらつきがあり、毎日データが取れているわけではありません。 num date 2015-01-01 546 2015-01-03 550 2015-01-08 549 2015-01-10 551 2015-01-15 547 … 2019-12-15 602 2019-12-19 605 2019-12-22 601 2019-12-24 606 2019-12-28 607 2019-12-31 610 >>from statsmodels import api as sm res = sm.tsa.seasonal_decompose(DATA['num'],freq='Y') #'num'を各成分に分ける
発生している問題・エラーメッセージ
TypeError Traceback (most recent call last) <ipython-input-63-99725809b82c> in <module>() 33 34 ---> 35 res = sm.tsa.seasonal_decompose(DATA['num'],freq='Y') #'num'を各成分に分ける 36 /usr/local/lib/python3.6/dist-packages/statsmodels/tsa/seasonal.py in seasonal_decompose(x, model, filt, freq, two_sided, extrapolate_trend) 130 131 if filt is None: --> 132 if freq % 2 == 0: # split weights at ends 133 filt = np.array([.5] + [1] * (freq - 1) + [.5]) / freq 134 else: TypeError: not all arguments converted during string formatting
補足情報(FW/ツールのバージョンなど)
Python
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。