问题标签 [rolling-computation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
69 浏览

r - 找出时间序列 r 中变异性最小的时期

我有一个时间序列,并希望找到具有最低连续变异性的时期,即滚动 SD 在最长连续时间步长的最小值附近徘徊的时期。

我可以很容易地从数据或图表中看出,具有最低可变性的最长周期从 t=11 开始。是否有一个功能可以帮助我找到这段持续低变化的时期,也许会自动尝试为滚动窗口设置不同的大小?我对找到具有最低 SD 的时间步长不感兴趣,而是寻找这个低 SD 比其他时间步长更一致的时期。

我现在能想到的就是查看 rol[i]-rol[i+1] 之间的区别,循环遍历向量并使用计数器来查找 SD 连续低值的周期。我也在考虑使用聚类分析, kmeans(rol, 5)但我可以有很长的时间序列,这些序列很复杂,我必须手动选择聚类的数量。

0 投票
1 回答
54 浏览

python - 使用 pandas 滚动的数据框所有值的实际平均值

如果我有这样的df:

如果我想计算 2 行窗口的平均值,我可以使用这个:

返回:

这是 2 行窗口的平均值,使用单行元素的平均值。因此,例如rolling_meanin row1 (4) 是 row0 的平均值(1+1)/2 = 1和 row1 (7) 的值之间的平均值:(1+7)/2 = 4

如果我想要前 2 行中这 3 个值的平均值,我应该得到结果:(1+1+7)/3 = 3. 为了获得它,我使用了这个:

这将返回我想要的输出:

我的问题是:有没有更优雅和 Pythonic 的方式来做到这一点?谢谢

0 投票
4 回答
2595 浏览

r - rolling regression by group in the tidyverse?

There are many questions about rolling regression in R, but here I am specifically looking for something that uses dplyr, broom and (if needed) purrr.

This is what makes this question different. I want to be tidyverse consistent. Is is possible to do a proper running regression with tidy tools such as purrr:map and dplyr?

Please consider this simple example:

For each group (in this example, a or b):

  1. compute the rolling regression of y on x over the last 2 observations.
  2. store the coefficient of that rolling regression in a column of the dataframe.

Of course, as you can see, the rolling regression can only be computed for the last 2 rows in each group.

I have tried to use the following, but without success.

Any ideas?

Expected output for the last two rows of the first a group is 0.5 and 0.5 (there is indeed a perfect linear correlation between y and x in this example)

More specifically:

and also

EDIT:

interesting follow-up to this question here rolling regression with confidence interval (tidyverse)

0 投票
3 回答
11599 浏览

python - Python pandas:将函数应用于 dataframe.rolling()

我有这个数据框:

我需要实现这一点:

  1. 对于我的数据框中的每一行,
  2. 如果任意 3 个连续单元格中的 2 个或多个值大于 10,
  3. 那么这 3 个单元格中的最后一个应标记为 True。

根据上述标准,生成的数据框 df1 的大小应与 True 或 False 相同:

  • df1.iloc[0,1] 是 NaN,因为在该单元格中,只给出了两个数字,但需要至少 3 个数字来进行测试。
  • df1.iloc[1,3] 为 False,因为 [7,8,9] 中没有一个大于 10
  • df1.iloc[3,4] 为 True,因为 [18,19,20] 中的 2 或更多大于 10

我认为带有函数的 dataframe.rolling.apply() 可能是解决方案,但究竟如何呢?

0 投票
1 回答
566 浏览

r - 滚动窗口估计协方差矩阵

我得到了 4 年的资产回报时间序列,我正在尝试执行滚动窗口,以估计校准期为 6 个月的方差-协方差矩阵。总的来说,我应该获得 40 个协方差矩阵。我试图运行下面编写的代码,但它是错误的。如何修改此 R 代码?

将包含 5 种资产在 20 天内的收益的矩阵视为数据集

我想校准 5 天内收益的协方差矩阵,因此考虑到第 1、2、3、4、5 天。然后我想校准另一个协方差矩阵,考虑到第 6、7、8、9、10 天。依此类推,使用滚动窗口(我曾尝试使用循环 for)。

但是将窗口大小设置为 5,对于第一个矩阵,代码考虑第 1、2、3、4、5 天,但对于第二个矩阵,代码考虑第 2、3、4、5、6 天(不是 6 , 7, 8, 9, 10 我想要的)。这是我的问题。我不知道如何修改代码以便从第 2 天到第 6 天进行这种“拆分”。

0 投票
1 回答
690 浏览

r - 协方差矩阵的滚动窗口

我得到了 4 年的资产回报时间序列,我正在尝试执行滚动窗口,以估计校准期为 6 个月的方差-协方差矩阵。

通常,将包含 5 种资产在 20 天内的收益的矩阵视为数据集

我想校准 5 天内收益的协方差矩阵,因此考虑到第 1、2、3、4、5 天。然后我想校准另一个协方差矩阵,考虑到第 4、5、6、7、8 天。依此类推,使用滚动窗口(我曾尝试使用循环 for)。

但是将窗口大小设置为 5,对于第一个矩阵,代码考虑第 1、2、3、4、5 天,但对于第二个矩阵,代码考虑第 2、3、4、5、6 天(不是 4 , 5, 6, 7, 8 我想要的)。这是我的问题。我不知道如何修改代码以便从第 2 天到第 4 天进行这种“拆分”。我该如何解决这个问题?

0 投票
3 回答
595 浏览

r - 在r中的多列上滚动总和

我正在使用如下所示的数据集处理 R:

数据集的屏幕截图

我想要做的是我想创建名为 Pre1991, Pre1992, Pre1993, ... 的变量,这些变量将存储该年的累积值,例如

很快。

我的真实数据集包含 1900-2017 年的变量,因此我无法手动执行此操作。我想写一个for循环,但它没有用。

有人可以帮忙查看我的代码/建议其他方法吗?谢谢!

编辑1:

非常感谢!我想知道是否有办法可以反向使用 cumsum 函数?例如,如果我对特定年份之后发生的事情感兴趣:

0 投票
1 回答
1004 浏览

pandas - Python Pandas 滚动平均值与另一列中的窗口值

pandas.DataFrame.rolling用来计算股票指数收盘价系列的滚动平均值。我可以在 Excel 中做到这一点。我怎样才能在 Pandas 中做同样的事情?谢谢!

下面是我计算移动平均值的 Excel 公式,窗口长度在列中ma window

这是 Excel 版本的快照

0 投票
0 回答
115 浏览

r - R data.table 滚动连接

假设我有这两个data.tables:

对于 A 中的每个 id,我想加入 B 中最接近(基于日期)的先前值。这给出了所需的结果:

问题是,我在 B 中不仅仅是一列,而是几百列。我真的不想输入所有这些列名,例如 valueXXX = i.valueXXX 等,特别是因为 B 中列的数量和名称可能会改变。

所以我尝试像这样进行滚动连接:

如您所见,结果根本不是我想要的。有人可以向我解释一下,为什么 data.table 会这样吗?另外,在不对所有这些列名进行硬编码的情况下实现我想要的结果的正确方法是什么?

编辑:弗兰克提供的链接确实解决了我的问题。基本上定义要添加的变量的向量,然后将“:=”与mget一起使用:

0 投票
2 回答
395 浏览

r - 使用不同的列(自变量)执行多重滚动回归

如何在单独的回归中将 y1 作为因变量,将 y2、y3 等作为自变量进行多重滚动回归:

请参见下面的示例:

下面我制作了 y1 与 y2 的滚动相关性

结果看起来不错

但是现在我想测试 y1 ~ y3、y1 ~ y4 等(我有一个总共 120 列的数据集)

以下帖子已接近,但我无法重现编码:

https://stackoverflow.com/questions/39438484/r-how-to-do-rolling-regressions-for-multiple-return-data-at-once-with-the-depe

如何调整rollingb以完成工作?

@Yannis Vassiliadis 提供的解决方案有效,但是后续问题提出了如何将所有系数(beta)很好地取消列出到具有相应日期的矩阵/data.frame 中(如在 xts 中)?