Python和Scipy中的季节性调整

13 投票
5 回答
21184 浏览
提问于 2025-04-15 18:02

我想用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这个库来帮你计算其他的内容。

撰写回答