在Python中对时间序列进行时间分解。

问题描述 投票:1回答:1

我想找一个能够对时间序列进行时间分解的软件包。R中有个包叫tempdisagg。

https:/journal.r-project.orgarchive2013RJ-2013-028RJ-2013-028.pdf。

有谁知道python中是否有类似的包?

如果这个包在python中不存在,那么是否有一个可用的例子,可以让人将该包中的这些函数从R中调用到Python中。

r python-3.x time-series rpy2 sklearn-pandas
1个回答
1
投票

我创建了一个开源的Python包,叫做 错时 是基于R tempdisagg包的。该包实现了基本的Chow-Lin和Litterman方法。它还允许像R包一样进行基本的平均、总和、首尾转换选择。

给出以下R中的函数调用来进行分解处理 sales.a 作为 exports.q:

model <- td(sales.a ~ 0 + exports.q,method="chow-lin-maxlog",conversion="sum")

可以用timedisagg进行类似的调用,如下所示。

from timedisagg.td import TempDisagg
td_obj = TempDisagg(conversion="sum", method="chow-lin-maxlog")
final_disaggregated_output = td_obj(expected_dataset)

其中 expected_dataset 是一个pandas数据框,格式如下。

      index  grain            X            y
0     1972      1   1432.63900          NaN
1     1972      2   1456.89100          NaN
2     1972      3   1342.56200          NaN
3     1972      4   1539.39400          NaN
4     1973      1   1535.75400          NaN
5     1973      2   1578.45800          NaN
6     1973      3   1574.72400          NaN
7     1973      4   1652.17100          NaN
8     1974      1   2047.83400          NaN
9     1974      2   2117.97100          NaN
10    1974      3   1925.92600          NaN
11    1974      4   1798.19000          NaN
12    1975      1   1818.81700   136.702329
13    1975      2   1808.22500   136.702329
14    1975      3   1649.20600   136.702329
15    1975      4   1799.66500   136.702329
16    1976      1   1985.75300   151.056074
17    1976      2   2064.66300   151.056074
18    1976      3   1856.38700   151.056074
19    1976      4   1919.08700   151.056074
..     ...    ...          ...          ...
152   2010      1  19915.79514   988.309676
153   2010      2  19482.48000   988.309676
154   2010      3  18484.64900   988.309676
155   2010      4  18026.46869   988.309676
156   2011      1  19687.52100          NaN
157   2011      2  18913.06608          NaN

这里X是 exports.q 和y是 sales.a.

輸出 final_disaggregated_output 将显示如下 y_hat 是分列的销售额。

   index  grain         X   y      y_hat
0   1972      1  1432.639 NaN  21.656879
1   1972      2  1456.891 NaN  22.219737
2   1972      3  1342.562 NaN  20.855413
3   1972      4  1539.394 NaN  23.937916
4   1973      1  1535.754 NaN  24.229008

编辑 - 如果有人需要帮助他们的数据到我的包,随时提出一个问题,在 粪便 为包。

© www.soinside.com 2019 - 2024. All rights reserved.