r语言 - Python 中时间序列的时间分解



我正在尝试找到一个能够对时间序列进行时间分解的包。R中有一个名为tempdisagg的包。

https://journal.r-project.org/archive/2013/RJ-2013-028/RJ-2013-028.pdf

python中是否有任何人知道的类似软件包?

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

我创建了一个名为timedisagg的开源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是具有以下格式的熊猫数据帧:

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.qy 是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

编辑 - 如果有人需要帮助将他们的数据处理到我的包中,请随时在包的 git 上提出问题。