一直在 Python 中处理时间序列,并使用
sm.tsa.seasonal_decompose
。在docs中,他们介绍了这样的功能:
我们添加了一个简单的季节性分解工具,与 R 的
相同。decompose
这是文档中的代码副本及其输出:
import statsmodels.api as sm
dta = sm.datasets.co2.load_pandas().data
# deal with missing values. see issue
dta.co2.interpolate(inplace=True)
res = sm.tsa.seasonal_decompose(dta.co2)
res.plot()
他们说这是“天真”,但没有免责声明它有什么问题。有谁知道吗
,StatsModels 似乎使用经典的移动平均方法来检测趋势并应用季节性分解(您可以查看更多here,特别是关于移动平均线和经典分解)。 但是,还可以使用其他高级季节性分解技术,例如
STL 分解,它也有一些 Python 实现。 (更新 - 11/04/2019 正如 @squarespiral 的评论所指出的,此类实现似乎已合并到 StatsModels 的 master 分支中)。 在上面的链接中,您可以找到有关每种建议方法的优点和缺点的完整参考。
希望有帮助!
,statsmodels.tsa.seasonal()
通过以下方式解构时间序列:
period=12
决定,例如;去趋势时间序列通过 Raw-Trend 或 Raw/Trend 获得,由参数 model
控制