r - 使用 rollRegres 和 plm 或 for 循环进行滚动回归?
问题描述
我尝试在面板数据上运行一个窗口期的滚动回归。
数据如下:
id t Y X1 X2 X3 X4 X5 X6
1 LP60068503 200002 3.9487727 5.95 0.47 -9.00 3.25 -7.18 0.43
2 LP60068503 200003 4.6201232 0.66 -5.04 3.10 -2.74 4.82 0.47
3 LP60068503 200004 -1.2757605 -5.58 -4.37 5.67 -1.08 1.22 0.46
4 LP60068503 200005 -1.3916501 -0.08 0.18 6.05 -3.30 4.84 0.50
5 LP60068503 200006 -2.4193548 0.67 0.50 2.94 -3.15 1.10 0.40
6 LP60068503 200007 0.8264463 -1.58 -0.71 3.25 -0.19 -0.10 0.48
id t Y X1. X2 X3 X4 X5 X6
340373 LP65117791 201207 3.4376360 0.56 -1.38 -2.57 2.29 -2.04 0.00
340374 LP65117791 201208 0.7893412 4.51 0.06 3.38 -1.68 1.45 0.01
340375 LP65117791 201209 0.2556494 3.49 1.65 2.33 -1.52 0.69 0.01
340376 LP65117791 201210 -1.0310320 1.67 -0.61 2.06 -0.93 -0.15 0.01
340377 LP65117791 201211 0.3411351 2.28 -2.40 -0.55 0.62 -0.80 0.01
340378 LP65117791 201212 0.7903986 3.38 2.48 3.09 -0.53 0.89 0.01
第一个想法是使用 roll_regress 功能,但我无法使 grp 工作。它一直告诉我 grp 必须是整数,它们是。由于我不确定 grp 是否能够用作索引,所以我转向了另一个想法。
roll_rolling <- roll_regres(Y ~ X1, data=dataset, width = 60L, grp = c("id","t"), do_downdates = TRUE)
第二个想法是通过 plm 组合常规面板回归并将其放入 roll_regres 功能中。
roll_rolling <- roll_regres(formula = plm(Y ~ X1 ,data=dataset, index = c("id","t"), model = "within"), width= 60L, do_downdates = TRUE)
我收到以下错误消息:
error in eval(predvars, data, env) : object 'Y' not found
我检查了数据集并正确定义了列。最重要的是,我已经通过以下方式清除了所有列表和环境
rm(list=ls())
我的代码有什么问题吗?和/或其次,有没有比我使用的路径更好的方法来实现结果?(我只使用 X1 使上面的回归保持简单。想要先让代码工作,然后再运行完整的回归)你建议用 for 循环来代替吗?
非常感谢,最好的,D。
解决方案
推荐阅读
- php - 动态准备语句 Readymade 函数,只准备一次语句
- react-native - 如何获取 React Native 中 Text 组件的行数?
- react-native - 如何在 react-native 中将按钮容器放置在可拖动模式框的底部?
- sql - Presto SQL - 寻找替代品的产品组合矩阵
- sql - 每月重置的运行总计
- python - Numpy 形状相同,均值返回不同形状
- python - Airflow DAGs 文件目录树没有更新?
- c# - mqttnet 客户端没有得到订阅的主题
- c - 如何让我的程序提示用户输入并使用函数将其存储到数组中?
- c# - 如何从 .NET Web 应用程序将日历事件发布到 Google 日历