使用 dplyr 和 rollapply 在数据框中滚动预测

2023-12-26

我的第一个问题在这里:)

我的目标是:给定一个带有预测变量的数据框(每列一个预测变量/行观察值)使用 lm 拟合回归,然后使用滚动窗口使用最后一个观察值来预测值。

数据框如下所示:

> DfPredictor[1:40,]
           Y            X1           X2                 X3            X4               X5
1          3.2860       192.5115    2.1275              83381         11.4360           8.7440
2          3.2650       190.1462    2.0050              88720         11.4359           8.8971
3          3.2213       192.9773    2.0500              74130         11.4623           8.8380
4          3.1991       193.7058    2.1050              73930         11.3366           8.7536
5          3.2224       193.5407    2.0275              80875         11.3534           8.7555
6          3.2000       190.6049    2.0950              86606         11.3290           8.8555
7          3.1939       191.1390    2.0975              91402         11.2960           8.8433
8          3.1971       192.2921    2.2700              88181         11.2930           8.8681
9          3.1873       194.9700    2.3300             115959          1.9477           8.5245
10         3.2182       194.5396    2.4200             134754         11.3200           8.4990
11         3.2409       194.5396    2.2025             136685          1.9649           8.4192
12         3.2112       195.1362    2.1900             136316          1.9750           8.3752
13         3.2231       193.3560    2.2475             140295          1.9691           8.3546
14         3.2015       192.9649    2.2575             139474          1.9500           8.3116
15         3.1744       194.0154    2.1900             146202          1.8476           8.2225
16         3.1646       194.4423    2.2650             142983          1.8600           8.1948
17         3.1708       194.9473    2.2425             141377          1.8522           8.2589
18         3.1675       193.9788    2.2400             141377          1.8600           8.2600
19         3.1744       194.2563    2.3000             149875          1.8718           8.2899
20         3.1410       193.4316    2.2300             129561          1.8480           8.2395
21         3.1266       191.2633    2.2550             122636          1.8440           8.2396
22         3.1486       192.0354    2.3600             130996          1.8570           8.8640
23         3.1282       194.3351    2.4825              92430          1.7849           8.1291
24         3.1214       193.5196    2.4750              94814          1.7624           8.1991
25         3.1230       193.2017    2.3725              87590          1.7660           8.2310
26         3.1182       192.1642    2.4475              87715          1.6955           8.2414
27         3.1203       191.3744    2.3775              89857          1.6539           8.2480
28         3.1156       192.2646    2.3725              92159          1.5976           8.1676
29         3.1270       192.7555    2.3675              97425          1.5896           8.1162
30         3.1154       194.0375    2.3725              87598          1.5277           8.2640
31         3.1104       192.0596    2.3850              93236          1.5132           7.9999
32         3.0846       192.2792    2.2900              94608          1.4990           8.1600
33         3.0569       193.2573    2.3050              84663          1.4715           8.2200
34         3.0893       192.7632    2.2550              67149          1.4955           7.9590
35         3.0991       192.1229    2.3050              75519          1.4280           7.9183
36         3.0879       192.1229    2.3100              76756          1.3839           7.9133
37         3.0965       192.0502    2.2175              61748          1.3130           7.8750
38         3.0655       191.2274    2.2300              41490          1.2823           7.8656
39         3.0636       191.6342    2.1925              51049          1.1492           7.7447
40         3.1097       190.9312    2.2150              21934          1.1626           7.6895

例如,使用宽度 = 10 的滚动窗口,应估计回归,然后预测与 X1,X2,...,X5 对应的“Y”。 预测应包含在新列“Ypred”中。

有一些方法可以使用 rollapply + lm/predict + mudate 来做到这一点?

非常感谢!!


使用最后注释中的数据并假设在宽度为 10 的窗口中我们要预测最后一个 Y(即第 10 个),则:

library(zoo)

pred <- function(x) tail(fitted(lm(Y ~., as.data.frame(x))), 1)
transform(DF, pred = rollapplyr(DF, 10, pred, by.column = FALSE, fill = NA))

giving:

        Y       X1     X2     X3      X4     X5     pred
1  3.2860 192.5115 2.1275  83381 11.4360 8.7440       NA
2  3.2650 190.1462 2.0050  88720 11.4359 8.8971       NA
3  3.2213 192.9773 2.0500  74130 11.4623 8.8380       NA
4  3.1991 193.7058 2.1050  73930 11.3366 8.7536       NA
5  3.2224 193.5407 2.0275  80875 11.3534 8.7555       NA
6  3.2000 190.6049 2.0950  86606 11.3290 8.8555       NA
7  3.1939 191.1390 2.0975  91402 11.2960 8.8433       NA
8  3.1971 192.2921 2.2700  88181 11.2930 8.8681       NA
9  3.1873 194.9700 2.3300 115959  1.9477 8.5245       NA
10 3.2182 194.5396 2.4200 134754 11.3200 8.4990 3.219764
11 3.2409 194.5396 2.2025 136685  1.9649 8.4192 3.241614
12 3.2112 195.1362 2.1900 136316  1.9750 8.3752 3.225423
13 3.2231 193.3560 2.2475 140295  1.9691 8.3546 3.217797
14 3.2015 192.9649 2.2575 139474  1.9500 8.3116 3.205856
15 3.1744 194.0154 2.1900 146202  1.8476 8.2225 3.177928
16 3.1646 194.4423 2.2650 142983  1.8600 8.1948 3.156405
17 3.1708 194.9473 2.2425 141377  1.8522 8.2589 3.176243
18 3.1675 193.9788 2.2400 141377  1.8600 8.2600 3.177165
19 3.1744 194.2563 2.3000 149875  1.8718 8.2899 3.177211
20 3.1410 193.4316 2.2300 129561  1.8480 8.2395 3.145533
21 3.1266 191.2633 2.2550 122636  1.8440 8.2396 3.127410
22 3.1486 192.0354 2.3600 130996  1.8570 8.8640 3.148792
23 3.1282 194.3351 2.4825  92430  1.7849 8.1291 3.124913
24 3.1214 193.5196 2.4750  94814  1.7624 8.1991 3.124992
25 3.1230 193.2017 2.3725  87590  1.7660 8.2310 3.117981
26 3.1182 192.1642 2.4475  87715  1.6955 8.2414 3.117679
27 3.1203 191.3744 2.3775  89857  1.6539 8.2480 3.119898
28 3.1156 192.2646 2.3725  92159  1.5976 8.1676 3.121039
29 3.1270 192.7555 2.3675  97425  1.5896 8.1162 3.123903
30 3.1154 194.0375 2.3725  87598  1.5277 8.2640 3.119438
31 3.1104 192.0596 2.3850  93236  1.5132 7.9999 3.113963
32 3.0846 192.2792 2.2900  94608  1.4990 8.1600 3.101229
33 3.0569 193.2573 2.3050  84663  1.4715 8.2200 3.076817
34 3.0893 192.7632 2.2550  67149  1.4955 7.9590 3.083266
35 3.0991 192.1229 2.3050  75519  1.4280 7.9183 3.089377
36 3.0879 192.1229 2.3100  76756  1.3839 7.9133 3.084225
37 3.0965 192.0502 2.2175  61748  1.3130 7.8750 3.075252
38 3.0655 191.2274 2.2300  41490  1.2823 7.8656 3.063025
39 3.0636 191.6342 2.1925  51049  1.1492 7.7447 3.068808
40 3.1097 190.9312 2.2150  21934  1.1626 7.6895 3.091819

Note: Input DF可重复的形式是:

Lines <- "           Y            X1           X2                 X3            X4               X5
1          3.2860       192.5115    2.1275              83381         11.4360           8.7440
2          3.2650       190.1462    2.0050              88720         11.4359           8.8971
3          3.2213       192.9773    2.0500              74130         11.4623           8.8380
4          3.1991       193.7058    2.1050              73930         11.3366           8.7536
5          3.2224       193.5407    2.0275              80875         11.3534           8.7555
6          3.2000       190.6049    2.0950              86606         11.3290           8.8555
7          3.1939       191.1390    2.0975              91402         11.2960           8.8433
8          3.1971       192.2921    2.2700              88181         11.2930           8.8681
9          3.1873       194.9700    2.3300             115959          1.9477           8.5245
10         3.2182       194.5396    2.4200             134754         11.3200           8.4990
11         3.2409       194.5396    2.2025             136685          1.9649           8.4192
12         3.2112       195.1362    2.1900             136316          1.9750           8.3752
13         3.2231       193.3560    2.2475             140295          1.9691           8.3546
14         3.2015       192.9649    2.2575             139474          1.9500           8.3116
15         3.1744       194.0154    2.1900             146202          1.8476           8.2225
16         3.1646       194.4423    2.2650             142983          1.8600           8.1948
17         3.1708       194.9473    2.2425             141377          1.8522           8.2589
18         3.1675       193.9788    2.2400             141377          1.8600           8.2600
19         3.1744       194.2563    2.3000             149875          1.8718           8.2899
20         3.1410       193.4316    2.2300             129561          1.8480           8.2395
21         3.1266       191.2633    2.2550             122636          1.8440           8.2396
22         3.1486       192.0354    2.3600             130996          1.8570           8.8640
23         3.1282       194.3351    2.4825              92430          1.7849           8.1291
24         3.1214       193.5196    2.4750              94814          1.7624           8.1991
25         3.1230       193.2017    2.3725              87590          1.7660           8.2310
26         3.1182       192.1642    2.4475              87715          1.6955           8.2414
27         3.1203       191.3744    2.3775              89857          1.6539           8.2480
28         3.1156       192.2646    2.3725              92159          1.5976           8.1676
29         3.1270       192.7555    2.3675              97425          1.5896           8.1162
30         3.1154       194.0375    2.3725              87598          1.5277           8.2640
31         3.1104       192.0596    2.3850              93236          1.5132           7.9999
32         3.0846       192.2792    2.2900              94608          1.4990           8.1600
33         3.0569       193.2573    2.3050              84663          1.4715           8.2200
34         3.0893       192.7632    2.2550              67149          1.4955           7.9590
35         3.0991       192.1229    2.3050              75519          1.4280           7.9183
36         3.0879       192.1229    2.3100              76756          1.3839           7.9133
37         3.0965       192.0502    2.2175              61748          1.3130           7.8750
38         3.0655       191.2274    2.2300              41490          1.2823           7.8656
39         3.0636       191.6342    2.1925              51049          1.1492           7.7447
40         3.1097       190.9312    2.2150              21934          1.1626           7.6895"

DF <- read.table(text = Lines, header = TRUE)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 dplyr 和 rollapply 在数据框中滚动预测 的相关文章

  • 如何使用 dplyr 的 filter() 和 R-base 的 ifelse() 过滤数据框?

    我的数据框df看起来像这样 Home Away Inning Boston NYC Top NYC Boston Bottom NYC Boston Top 我想使用 dplyr 的filter 制作一个数据框 从ifelse query
  • 具有重复值的两个向量之间的“设置差异”

    我有 3 个向量 x lt c 1 3 5 7 3 8 y lt c 3 5 7 z lt c 3 3 8 我想找到以下元素x那些不在y并且不在z 有没有一个功能f这会给我以下输出 gt f x y 1 3 8 gt f x z 1 5 7
  • 如何在R中用随机数填充矩阵?

    expand grid i rexp 5 rate 0 1 它只创建一列 但有什么方法可以轻松地将其乘以 5 列吗 我的意思是 matlab 的做事方式 比如rand exp 0 1 10 20 创建一个指数分布随机数的矩阵 平均值为 0
  • 如何解决这个错误--dbWriteTable()

    我成功连接到 MYSQL DB 并尝试将结果写回数据库 dbWriteTable con predicted min forecast min 其中 Forecast min 只是双精度向量 我收到此错误消息 函数 类 fdef mtabl
  • 只保留矩阵中某些列具有相同元素的行

    让我举个例子 假设我们有 3 个表 重点关注 N 列 Table 1 Table 2 Table 3 N Values N Values N Values 5 1 5 1 5 1 10 2 6 2 6 21 15 3 10 3 10 5 1
  • 将误差线添加到多条线上以在 R 中的绘图上显示标准差

    我有一个包含许多不同线条的图 我想为每条线上的每个点添加误差线 df lt matrix runif 25 5 5 plot 1 5 seq 0 1 1 4 type n mapply lines as data frame df col
  • 如何在Shiny中动态生成的条件面板中格式化条件?

    我正在尝试使用 for 循环在 Shiny 中创建小部件 每个块包含 label 复选框 选择选择器 两个数字输入 我想根据复选框的值和选择选择器的值来设置显示或隐藏两个数字输入的条件 在我创建的 for 循环中 我为每个小部件变量添加了一
  • 如何识别数据集中其他列之和的列

    我想编写一个函数 最好用 R 语言 但也欢迎其他语言 它可以识别数据集中列之间的关系 仅限于加法 减法 其实际应用是在大型多列财务数据集上运行它 其中某些列是其他列的小计 并识别此类小计 理想情况下 我希望允许一些小的差异 例如允许舍入问题
  • R 中的闭包类似于 Python

    首先考虑以下 Python 代码 该代码计算函数被调用的次数 def counter fn count 0 def inner args kwargs nonlocal count count 1 print Function 0 was
  • 将多个对齐的绘图放置在一页上时避免浪费空间

    我想将四个图放在一个页面上 轴标签应仅打印在最边缘 即x仅用于底部图表的轴标签 以及y仅左图的轴标签 这既适用于整个轴的名称 也适用于各个刻度线 我可以使用以下代码生成一些内容 pdf file ExampleOutput pdf widt
  • 如何在Shiny中默认选择verbatimTextOutput中的文本?

    这是与我之前的问题相关的问题 是否可以有固定宽度的 verbatimTextOutput 并让文本在 Shiny 中换行 https stackoverflow com q 58516071 7669809 我有以下闪亮的应用程序 http
  • R 因子变量之间的相关性

    我想知道是否有一种简单的方法来识别与另一个变量 100 相关的特征 因子变量 因此 在示例中 该过程将匹配 颜色 和 车辆 以及 植物 和 高度 color lt c black black blue blue yellow vehicle
  • Foreach循环无法找到对象

    我正在尝试将 foreach 与并行后端结合使用来加速计算 用于特征选择的 AUCRF 随机森林的交叉验证 如果这确实重要的话 在这样做的过程中 我需要获取向量的子集 向量的名称可以更改 但可以作为字符向量进行访问 我使用 eval par
  • rpy2 在从 R 到 Python 的数据帧中处理 NA/缺失值时出现问题

    我在使用rpy2包进行转换时遇到问题dataframe将 R 中的内容保存到 Python 中 import os os environ R HOME Library Frameworks R framework Resources imp
  • rvest - 在 1 个标签中抓取 2 个类

    我是新来的 如何提取标签中具有 2 个类名或仅 1 个类名的元素 这是我的代码和问题 doc lt paste span class a1 b1 text1 span span class b1 text2 span library rve
  • 使用变量在 r 中像 aes_string 一样选择轴

    我试图提供一个带有列名的变量来创建一个plotly图表 类似于ggplot2 aes string 不知怎的 我被困住了 plot ly iris x Sepal Length y Sepal Width works as expected
  • 如何减小 R Plot 中图例的大小,同时仍使其可读?

    我试图用 R 中的两个 y 轴绘制多年来的一些数据 但是 每当我尝试包含图例时 图例就会主导我的绘图 当我使用其他地方建议的解决方案时 例如keyword和 或使用cex论据 在另一篇文章中建议here https stackoverflo
  • 将 data.frame 的列中的值替换为另一个 data.frame 中的值

    我的情况是 我有一个数据框 其中有一列填充了整数 1 到 6 我想用更具描述性的标签替换这些整数 这些标签在另一个充当 键 的数据框中提供 V1 V2 1 1 LABEL1 2 2 LABEL2 3 3 LABEL3 4 4 LABEL4
  • R:变换不规则时间字符串

    我有两个不同的时间序列 来自不同的数据帧 具有不同的不规则格式 但问题是相同的 我只想提取小时 分钟 秒和毫秒 时代系列看起来像这样 ts1 08 27 23 445 08 27 24 280 08 27 25 115 I tried st
  • 反转默认比例梯度ggplot2

    我是新手 我正在尝试设计热图 这是我的代码 ggplot gd aes Qcountry Q6 1 Q6d order TRUE geom tile aes fill prob colour white theme minimal labs

随机推荐

  • CORS 播放框架

    我正在 Play Framework 2 5 Java 后端开发 Angular 2 应用程序 如果我通过浏览器 URL 访问我的端点 它们就可以正常工作 但是 从 Angular 2 应用程序调用它会显示错误 XMLHttpRequest
  • 有没有办法跟踪扩展的资源使用情况?

    我通过 GitHub 和 Google 搜索注意到很多人都有和我类似的问题 vscode 挂起 除了文本编辑器之外 什么都不起作用 有时除了调试之外一切都有效 像往常一样 禁用所有扩展使其可以完美运行 检查开发者工具 我注意到 Extens
  • HSQLDB ROWNUM 与 Oracle 的兼容性

    THe HSQLDB 变更日志 http hsqldb org doc 2 0 changelist 2 0 txt指出ROWNUM 被添加到v2 2 0在针对内存 HSQLDB 运行集成测试时 我使用它没有任何问题 但是 我想对真实的 O
  • 未捕获的类型错误:对象 [object Object] 没有方法“on”

    谁能帮我解决这个问题 当我使用最新 或较新 版本的 jQuery 时 下面的小脚本可以正常工作 但是 当我使用旧版本的 jQuery 时 我的脚本显示on函数不存在 这是我的脚本 不适用于旧版本的 jQuery document ready
  • C# json 到数组调试“应用程序进入中断模式”

    我想将 json 转换为数组 但当我尝试调试模式时 我得到 应用程序进入中断模式 并且如果我尝试运行它 程序就会冻结 我用的答案是将 json 转换为 C 数组 https stackoverflow com questions 95865
  • Javascript / jQuery 粘性,不使用 css 位置:固定

    我正在寻找一个用于粘性标题的 Javascript jQuery 插件 它不会将元素的样式切换到固定位置 通常 我正在使用这个http stickyjs com http stickyjs com 而且效果很好 我正在开发一个带有 jQ u
  • 如何忽略大文件并推送到 git repo

    之前我本地使用的是git 没有使用 gitignore然后 我创建了一个 gitignore文件 并将所有不需要的文件写入其中 当我将它们推送到 git repo 时 出现 fatal The Remote endhanged Outsta
  • 如何将一个 DataFrame 列转换为包含基于另一个 DataFrame 的列的真值表?

    我有一个df with a user id and a category 我想将其转换为真值表 以确定该用户是否至少有一个该类别的条目 但是 最终表还应包括 df list 中出现的所有类别的列 这些列可能根本不会出现在df 现在我用一个创
  • 在javascript中求10的幂,还有比这更好的方法吗

    我需要创建一个特定幂的整数值 这不是正确的术语 但基本上我需要创建 10 100 1000 等 幂 将被指定为函数参数 我想出了一个解决方案 但它感觉很老套而且错误 我想学习一种更好的方法 如果有一种方法 也许不是基于字符串的方法 此外 e
  • javascript退出for循环而不返回

    我有一个 for 循环 我想像这样退出 function MyFunction for var i 0 i lt SomeCondition i if i SomeOtherCondition Do some work here retur
  • 如何在palm mojo中使用jquery?

    我该如何才能在我的 palm mojo 应用程序中使用 jquery 查看这个问题 https stackoverflow com questions 1545773 palm pre frameworks 尤其是评论 编辑回应评论 我对P
  • 是否可以匹配React Router 4中路由的#部分

    在我的应用程序中 我想将路径和哈希与不同的组件相匹配 例如 pageA modalB 将显示 PageA 作为主页 模态 B 位于顶部 我尝试了以下方法 其中包含路径属性的许多变体
  • 无法从 Listvew.Resources 内部访问视图模型属性

    我正在尝试将 SelectedItem 绑定到视图 但是当视图位于资源块内时 视图无法访问视图模型 当数据上下文重新分配给子级时 绑定适用于文本块 但不适用于用户控件 NoteView 我是否缺少任何绑定 PFB 修改了 整个 代码和内联注
  • 衡量 React Native 应用程序的性能

    我需要测量 React Native 应用程序的性能 最好的工具是什么 我在谷歌浏览器中尝试了谷歌跟踪 并在 iOS 平台的 mac 中尝试了 Instruments 但这些显示了很多无组织的数据 我实现了一些工具来帮助我检查应用程序的性能
  • jQuery.parent() 似乎不起作用

    parent 不返回我指定的父元素 我没有发现我的代码或 html 有任何问题 JavaScript var vehicle function return init function var that this jQuery vehicl
  • Facebook 营销 API。地理搜索

    我正在尝试从 Facebook 获取一个国家 地区所有城市的列表 我从 v2 9 的 FB 文档开始 Facebook 营销 API https developers facebook com docs marketing api targ
  • 从 Windows 批处理文件将空白行回显到控制台 [重复]

    这个问题在这里已经有答案了 当从 Windows 批处理文件将状态消息输出到控制台时 我想输出空行分解输出 我该怎么做呢 以下三个选项中的任何一个都适合您 echo echo echo 例如 echo off echo There will
  • 在 Heroku 上安装 PyODBC 时找不到 sql.h

    我正在尝试在 Heroku 上安装 PyODBC 但我得到fatal error sql h No such file or directorypip 运行时的日志中 我该如何修复这个错误 要跟进下面的答案 Ubuntu 的示例 sudo
  • Azure Functions RunOnStartUp 在配置中设置而不是在编译时设置?

    我有一个 Azure 计时器触发函数 计划在生产中每 3 个月运行一次 然而 在测试环境中 我希望它在每次触发时在启动时运行 目前我有 TimerTrigger TimerInterval RunOnStartup false 我真的不想改
  • 使用 dplyr 和 rollapply 在数据框中滚动预测

    我的第一个问题在这里 我的目标是 给定一个带有预测变量的数据框 每列一个预测变量 行观察值 使用 lm 拟合回归 然后使用滚动窗口使用最后一个观察值来预测值 数据框如下所示 gt DfPredictor 1 40 Y X1 X2 X3 X4