我正在尝试用Python做我在ST上的STL函数。
R命令是
fit <- stl(elecequip, s.window=5)
plot(fit)
我如何在Python中执行此操作?我调查过statmodels.tsa有一些时间序列分析函数,但我可以在文档中专门找到“黄土时间序列的季节性分解”。类似地,在Python.org上有一个名为timeseries 0.5.0的库,但是它没有文档,它的主站点向下看。我知道rpy2有一个使用包装器的选项,但我不知道如何使用包装器。
感谢。
答案 0 :(得分:12)
我一直有类似的问题,并且正在努力找到最好的前进道路。
Here is a github repo for an STL decomposition based on the Loess procedure。它基于this paper提供的原始fortran代码。它实际上只是一个围绕原始Fortran代码的python包装器,因此您知道它可能运行良好并且没有错误。
如果你想要更多以Python为中心的东西并且愿意采用稍微简单的分解程序,那么StatsModels就有一个:
尝试将您的数据移至Pandas数据框,然后致电StatsModels tsa.seasonal_decompose
。请参阅following example:
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)
resplot = res.plot()
然后,您可以从以下位置恢复分解的各个组成部分:
res.resid
res.seasonal
res.trend
我希望这有帮助!
答案 1 :(得分:0)
答案 2 :(得分:0)