问题标签 [rollapply]

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 投票
1 回答
2675 浏览

r - 在时间序列对象上使用 rollapply 时,标准偏差为零警告消息

我有一个 xts 对象,其中包含 12 个变量,时间间隔为 15 分钟。

我希望计算每个时间间隔的每个变量之间的相关性。由于我有 12 个变量,我希望我的 xts 对象中的 15 分钟数据点中的每一个都有一个 12 x 12 矩阵。

对于相关计算,我使用以下代码:

上面代码中的“10”使用 10 个时间序列值来计算相关矩阵,因此我将在我的开头有 9 个 NA 值,wideRawXTSscaledCorr相关值在第 10 个返回。

当我将滑动窗口的值更改为 <10 的任何值时,我会重复出现以下错误:

这是我可以用来查看这些错误是否仅仅是我的数据的症状的唯一测试,还是由于我犯的一些编码错误?有没有其他方法可以让我更深入地了解代码以查看哪些值导致了这些错误?

0 投票
1 回答
568 浏览

r - 从滚动 1 年回归计算公司特定的 Fama-French 贝塔系数

我想知道是否有人可以指导我完成 R 中的 rollapply 函数。我想用 fama-french 因素进行 1 年的滚动回归。该数据集在 Excel 中准备,包含 2011-2017 年的每周数据。因此,时间窗口设置为 52 周。我想计算 2012-2017 年期间的 1 年滚动 beta 系数,因此从 2011 年的第一周开始,时间窗口将从 [1:52] 移动到 [2:53]。我有几个定价因素,这个意味着我必须运行多元线性回归。

这是我到目前为止所尝试的:

但是,我没有得到 5 年的每周滚动测试版,而是整个期间的回归:

输出还为我在整个期间内为其他 fama-french 因子提供了相同的 beta。

我认为这个 xts 代码可以确保 R 理解数据集是一个时间序列。

我也试过这个:

仍然给我相同的输出。

我对 R 相当陌生,因此非常感谢任何帮助。

谢谢!

0 投票
1 回答
606 浏览

r - 每组过去窗口大小日期的总和

这个问题类似于我如何做一个条件和,它只在某些日期标准之间看起来但略有不同,并且答案不适合当前问题。主要区别在于基于每个组的日期列可能不一定完整(即,可能缺少某些日期)

输入:

规则:对于每个组在每个日期,回顾 3 个日历日期(包括当前日期)。计算总和。

预期输出:

我尝试将 rollapply 与 partial=T 一起使用,但结果似乎不正确。

0 投票
2 回答
190 浏览

r - 如何提高双滚动窗口操作的效率?

有没有人对如何提高以下代码示例的效率有什么想法或建议?

首先,我通过一个简单的示例来定义问题,在这篇文章的底部有一个完整的 MWE(实现)。


首先,考虑以下“随机”测试向量(通常长度 >25000):

A被分成一个“种类”的训练和测试集,都带有滚动窗口。在这个 MWE 中,考虑了长度为的训练集开始和长度4为的测试集2(通常长度>200)。因此,最初,以下值是训练集和测试集的一部分:

接下来,我要减去test_1train_1每个可能的连续位置train_1(因此是第一个滚动窗口)中减去,生成run_1_sub矩阵。

之后,我想在每一行找到run_1_sub的总和除以每一行中的条目数不是NaN.

在下一步中,“种类”的训练和测试集通过将它们的顺序增加A一来更新(因此是第二个滚动窗口):

如前所述,test_2在每个可能的位置减去train_2run_2_subrun_2_sum计算。这个过程一直持续到测试集代表 A 的最后两个值,最后我以 6 个run_sum矩阵结束(在这个 MWE 中)。但是,我的实施非常缓慢,我想知道是否有人可以帮助我提高效率?


这是我的实现:

自然,以下初始化设置会减慢run_sumrun_sub显着降低:

这里,生成的经过时间run_sub分别为run_sum120.04 秒和 28.69 秒。

关于如何提高和改进速度和代码的任何建议?

0 投票
1 回答
1302 浏览

r - 在 R 中同时使用 lapply 和 lm 函数

我有一个 df 如下:

等等...

我想使用lm(r~t).

但是,我想为每次迭代估计一个模型,其中迭代发生在设定的时间窗口内t+k。本质上,第一个模型应该用t=0,t=1,...t=5, if估计k = 5,第二个模型应该用 估计t=1, t=2,...,t=6,依此类推。

换句话说,它从具有设置窗口 t+k 的起点进行迭代,其中 k 是某个预先指定的窗口长度,并在该特定窗口长度上迭代地应用 lm 函数。

我试过像这样使用 lapply:

但是,我收到以下错误:

r[x, ] 中的错误:维数不正确

如果我删除 [x,],每次迭代都会给我相同的模型,换句话说,使用所有的观察。

如果我使用 rollapply:

在哪里:

我得到了 15 个模型,但它们都是在整个数据集上估计的,提供相同的截距和系数。这很奇怪,因为我在新脚本中测试之前设法让 rollapply 工作。由于某种原因,它不再起作用,所以我很困惑 R 是否在欺骗我,或者我的代码是否有问题。

如何调整这些方法以确保它们按照我的意愿进行迭代?

0 投票
1 回答
355 浏览

r - How can I find Covariance for every n row in R

I have 2 large set of data, each have 2000+ data and trying to find the covariance for every 5 row.

What is my next step so I can find the covariance like this`

and

0 投票
0 回答
596 浏览

r - 计算时间序列中的运行总和/衰减值

我正在寻找在时间序列中计算特定类型的“递减”总和或衰减值。

例如,假设我有一些简单的数据:

我想计算“魔法种子”的价值,这样它的影响就会随着时间的推移而递减。例如,假设每个值在下一周都有 20% 的值,所以 magicseeds 列 (30) 中的第一个值将是 30*0.2+6*0.2 等等,直到时间序列结束 (=7.488)。最后一个值 (20) 的计算结果为 0,因为它是时间序列中的最后一个值。

过滤器功能很接近,但是是考虑到总时间序列的累积总和,例如。

我也一直在测试 rollapply 功能,但运气不佳。

最终输出将是这样的:

更新: 这里或多或少地回答了这个问题: 通过改变行位置迭代和计算跨行的计算

0 投票
1 回答
179 浏览

r - 仅当特定百分比的数据可用时才使用 rollapply 计算平均值

我有一列每小时数据,想用它rollapply来计算每小时的 24 小时滚动平均值。我的数据包含NA's,如果 24 小时期间 75% 的数据可用,我只想计算滚动平均值,否则我希望考虑 24 滚动平均值NA

我怎样才能修改上面的代码来完成这个?

0 投票
3 回答
576 浏览

r - 如何在 R 中的 data.table 中汇总给定条件的滞后时间数据?

我对 R 相当陌生,并且已经阅读了一些教程。我想做的是找到一种根据某些条件将数据连接到自身的好方法。

在这种情况下,我想做的是选择任意长度的延迟并创建一个滚动窗口。例如,如果滞后 = 1 且窗口宽度 = 2,我想汇总每个月前 1 个月的 2 个月(如果存在)。

如果我从这样的数据表开始:

包含计算字段的表可能如下所示:

我已经尝试了具有列表宽度的 rollapply() ,但它似乎取决于数据是否为常规时间序列。然而,我的不是。它需要按公司分组,并且可能缺少某些行。它还需要根据 Month 和 Year 字段获取前 n 行。

我意识到一种解决方法可能是渲染数据,以便为每个 Company 子集执行操作,并在中间缺少几个月的时间注入虚拟数据,但我认为可能存在更好的方法。

我尝试了以下方法,它应用了滞后和滚动窗口,但不考虑月份、年份和公司。

0 投票
3 回答
656 浏览

r - 在 R 中使用 ccf() 和 rollapply 跨变量

我有 3 列数据,每列 10 行,如下所示

我的实际数据总共有 10 个变量,但为简单起见,我只使用了 3 个。

对于下面的每个排列,我想使用大小为 4 的滚动窗口来计算 ccf

例如

如您所见,上面的示例仅适用于第 1 列和第 2 列,但我希望使用滚动窗口方法对所有列都执行此操作。

滚动窗口过程很容易使用 rollapply 函数来处理,您可以在其中指定窗口的大小,并将 by.column 指定为 FALSE,这样它就不会分别在每一列上应用该函数。

如果我想对每一列滚动应用诸如 mean 之类的函数,我可以这样做,但是所有组合的列之间的循环让我大吃一惊,我无法弄清楚。

对于输出,ccf 结果应按行存储,并且尺寸应为 10x9,因为原始数据中有 10 行,ccf 函数有 9 个排列。输出的前 3 行将是 NA,因为滚动窗口使用的大小为 4。下面的值仅用于说明目的,并不是真正的输出值。

输出->

我会很感激在所有排列中应用循环的一点帮助,我想如果我得到了,我可以做 rollapply 包装器来实现滑动窗口。