Python和Scipy中的季节性调整
我想用Python对每个月的数据进行季节性调整。你可以从这些数据系列中看到:www.emconfidential.com,数据中有很强的季节性成分。我想调整这些数据,这样我就能更好地判断这个系列的趋势是上升还是下降。有没有人知道用scipy或者其他Python库怎么简单地做到这一点?
5 个回答
2
现在有一个软件包,似乎正好符合你的需求!你可以看看这个叫做 seasonal
的软件包,这里有一个 链接。我个人觉得它非常有用,不知道其他人怎么想。
19
Statsmodels可以做到这一点。它有一个基本的季节性分解功能,还有一个可以用来进行Census X13调整的封装工具。你也可以使用rpy2来访问一些R语言中非常优秀的季节性分析库。下面是statsmodels的季节性分解示例:
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
pd.options.display.mpl_style = 'default'
%matplotlib inline
dta = sm.datasets.co2.load_pandas().data.resample("M").fillna(method="ffill")
res = sm.tsa.seasonal_decompose(dta)
fig = res.plot()
fig.set_size_inches(10, 5)
plt.tight_layout()
http://statsmodels.sourceforge.net/0.6.0/release/version0.6.html
3
没有什么神奇的Python库可以自动帮你进行季节性调整。做这种事情的应用程序通常都比较复杂。
你需要自己搞清楚相关的数学知识,然后再用scipy这个库来帮你计算其他的内容。