滚动多元回归面板数据

2023-12-07

我正在尝试对过去 36 个月内对其中 18 个月进行观察的公司执行时间 t 的滚动回归,但我无法使该函数发挥作用。我只想要 var1 的系数。 X、y、z 是控制变量。

这是我尝试运行的数据和代码的示例。

structure(list(Year = c(2018, 2014, 2008, 2004, 2005, 2002, 2010, 
2008, 2013, 1998), Month = c(6, 12, 4, 6, 4, 8, 12, 11, 3, 3), 
    ISIN = c("NO0004895103", "NO0010571680", "NO0010010473", 
    "NO0003079709", "NO0003117202", "NO0003073801", "NO0010379266", 
    "NO0004913609", "NO0003072407", "NO0003679102"), SIZE = c(3637822300, 
    1.155e+10, 1925631048.5, 519688494.5, 790931587.08, 127597142.4, 
    2892152759.3, 554108244.7, 73484767, 375946560), BM = c(7.47698486077218e-07, 
    7.92202995594714e-07, 1.9900582030005e-07, 3.59385930497676e-07, 
    6.54209144403066e-07, 6.72227955087816e-07, 1.43273711611857e-06, 
    5.15824596832591e-07, 1.23252873661613e-06, 2.79726876987137e-07
    ), OP = c(0.145781283498513, 0.0433749257278669, 0.130477272126991, 
    0.211294037715838, 0.127523990874984, -0.0185266025249259, 
    -0.0822835066759631, 0.128844560922287, -0.0155446815227611, 
    0.416024745410667), INVEST = c(1.58608106515088, 0.00307252384303782, 
    0.33925195328069, -0.0984424241606425, 0.333479950150282, 
    0.13302885162465, -0.035773912311751, 0.408569401011161, 
    -0.206778240645154, -0.177187857233583), MonthlyReturn = c(-0.019509251810137, 
    0.095308641975309, 0.14864864864865, -0.034364261168385, 
    -0.064512147964095, -0.14080459770115, 0.13580244980708, 
    -0.1890214797136, -0.045226130653266, 0.39682527166336), 
    RiskFreeRate = c(0.00064, 0.00117, 0.00532, 0.00163, 0.00166, 
    0.00594, 0.00206, 0.00499, 0.00153, 0.00332), ShareTurnover = c(31649L, 
    907793L, 5318465L, 1831390L, 8956640L, 302000L, 7333090L, 
    516000L, 75553L, 2836550L), MarketExcessReturn = c(1.0813, 
    2.7638, 11.5701, 6.4672, -3.3108, -1.8598, 10.5445, -9.0969, 
    -0.0793, 10.8305), ExcessReturn = c(-2.0149251810137, 9.4138641975309, 
    14.332864864865, -3.5994261168385, -6.6172147964095, -14.674459770115, 
    13.374244980708, -19.40114797136, -4.6756130653266, 39.350527166336
    ), TradeDate = structure(c(17711, 16434, 13999, 12599, 12902, 
    11929, 14973, 14211, 15791, 10316), class = "Date"), GR_SIZE = structure(c(2L, 
    3L, 2L, 2L, 2L, 1L, 3L, 1L, 1L, 1L), .Label = c("1", "2", 
    "3"), class = "factor"), GR_OP = structure(c(2L, 1L, 2L, 
    2L, 1L, 1L, 1L, 2L, 1L, 3L), .Label = c("1", "2", "3"), class = "factor"), 
    GR_BM = structure(c(2L, 2L, 1L, 1L, 2L, 2L, 3L, 2L, 2L, 1L
    ), .Label = c("1", "2", "3"), class = "factor"), GR_INVEST = structure(c(3L, 
    1L, 3L, 1L, 3L, 3L, 2L, 3L, 1L, 1L), .Label = c("1", "2", 
    "3"), class = "factor"), SIZE_BM = structure(c(5L, 8L, 4L, 
    4L, 5L, 2L, 9L, 2L, 2L, 1L), .Label = c("11", "12", "13", 
    "21", "22", "23", "31", "32", "33"), class = "factor"), SIZE_OP = structure(c(5L, 
    7L, 5L, 5L, 4L, 1L, 7L, 2L, 1L, 3L), .Label = c("11", "12", 
    "13", "21", "22", "23", "31", "32", "33"), class = "factor"), 
    SIZE_INVEST = structure(c(6L, 7L, 6L, 4L, 6L, 3L, 8L, 3L, 
    1L, 1L), .Label = c("11", "12", "13", "21", "22", "23", "31", 
    "32", "33"), class = "factor"), Date = structure(c(17683, 
    16405, 13970, 12570, 12874, 11900, 14944, 14184, 15765, 10286
    ), class = "Date"), EPU_Paper = c(197.436482473082, 181.040599101032, 
    58.1799902251583, 62.5412044042803, 57.4799138334861, 52.420100605017, 
    61.1549363311955, 92.1818760618723, 76.2564063202547, 118.390708950295
    )), row.names = c(NA, -10L), class = "data.frame")
#merge dataframes
df_Final <- merge(df_Final, EPU_Paper, by = c("Year", "Month"))

# Create empty dataframe
date <- seq(as.Date("1991-01-31"),as.Date("2019-12-30"), by = "month")

Beta <- data.frame(ISIN = character(), Beta = numeric(), date =
                          as.Date(character()), stringsAsFactors = FALSE)

## Model
Returns_length <- 36 # No. of observations in rolling regression 
Returns_req <- 18 # observations of stocks requred in period 


for (i in 1:(length(date)-Returns_length)) {
  beta.tab <- df_Final %>% filter(TradeDate >= date[i] & TradeDate < date[i+Returns_length]) %>%
    group_by(ISIN) %>% filter(n() >= Returns_req) %>%
    do(ols.model = lm(data = df_Final, formula = ExcessReturn ~ var1 + x + y + z)) %>%
    mutate(Beta = coef(ols.model)[2]) %>% select("ISIN", "Beta") %>%
    mutate(TradeDate = date[Returns_length+i])
  Beta <- rbind(Beta, beta.tab)}

似乎有多个未定义的输入,df_Final and EU_paper,在问题中,但假设数据在组内按时间顺序排列并且我们想要应用lm从当前行到第 w-1 行,然后使用最后的注释中生成的一些数据,我们定义一个coef.x计算所需系数和滚动函数的函数roll它使用它(这里宽度为2)然后按组应用它g.

library(zoo)

w <- 2
nr <- nrow(DF)
coef.x <- function(ix) coef(lm(y ~ x + x1, DF, subset = ix))[["x"]]
roll <- function(ix) rollapplyr(ix, w, coef.x, fill = NA)
transform(DF, coef.x = ave(1:nr, g, FUN = roll))

giving:

  y              x            x1 g        coef.x
1 1 -0.56047564655  0.4609162060 1            NA
2 2 -0.23017748948 -1.2650612346 1  3.0275676040
3 3  1.55870831415 -0.6868528519 1  0.5590071753
4 4  0.07050839142 -0.4456619701 2            NA
5 5  0.12928773516  1.2240817974 2 17.0127792594
6 6  1.71506498688  0.3598138271 2  0.6306055904

这也可以使用 dplyr 编写,其中w, roll and coef.x来自上面:

library(dplyr, exclude = c("filter", "lag"))
library(zoo)

DF %>%
  group_by(g) %>%
  mutate(coef.x = roll(cur_group_rows())) %>%
  ungroup

Note

# test data
set.seed(123)
DF <- data.frame(y = 1:6, x = rnorm(6), x1 = rnorm(6), 
  g = c(1, 1, 1, 2, 2, 2))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

滚动多元回归面板数据 的相关文章

  • 如何使用 usmap 标记数字而不是名称?

    我知道 usmap 有一个选项label in plot usmap 我想标记一些数字 而不是状态名称 我想 usmap 中应该有与州质心坐标相关的数据 但我不知道如何找到它 如果我能得到 坐标然后我可以用它来标记数字geom text 这
  • 绘制点之间的所有线

    我有以下 R 代码 x lt c 0 01848598 0 08052353 0 06741172 0 11652034 y lt c 0 4177541 0 4042247 0 3964025 0 4074685 d lt data fr
  • kernlab 中 SVM 训练之外的核矩阵计算

    我正在开发一种新算法 该算法可以生成修改后的核矩阵以用于 SVM 训练 但遇到了一个奇怪的问题 出于测试目的 我比较了使用 kernelMatrix 接口和普通内核接口学习的 SVM 模型 例如 Model with kernelMatri
  • R 中的快速 QR 分解

    我有大量矩阵 需要对其执行 QR 分解并存储生成的 Q 矩阵 进行归一化 以便 R 矩阵在其对角线上具有正数 除了使用之外还有其他方法吗qr 功能 这是工作示例 system time Parameters for the matrix t
  • Dendextend:关于如何根据定义的组为树状图的标签着色

    我正在尝试使用一个名为 dendextend 的很棒的 R 包来绘制树状图并根据一组先前定义的组为其分支和标签着色 我已阅读您在 Stack Overflow 中的答案以及 dendextend vignette 的常见问题解答 但我仍然不
  • pyomo + 网状错误 6 句柄无效

    我正在尝试运行pyomo优化 我收到错误消息 Error 6 The handle is invalid 不知道如何解释它 环顾四周似乎与特权有关 但我不太明白 在下面找到完整的错误跟踪以及重现它的玩具示例 完整的错误跟踪 py run f
  • 从命令行运行 R 代码 (Windows)

    我在名为 analysis r 的文件中有一些 R 代码 我希望能够从命令行 CMD 运行该文件中的代码 而无需通过 R 终端 并且我还希望能够传递参数并在我的代码中使用这些参数 例如就像下面的伪代码 C gt execute r scri
  • 为什么 dplyr filter() 不能在函数内工作(即使用变量作为列名)?

    使用 dplyr 函数对数据进行过滤 分组和变异的函数 基本管道序列在函数之外工作得很好 这就是我使用真实列名称的地方 将其放入一个函数中 其中列名称是一个变量 并且某些函数可以工作 但有些函数则不能 尤其是 dplyr filter 例如
  • Purrr::map_df() 删除 NULL 行

    使用时purrr map df 我偶尔会传递一个数据框列表 其中一些项目是NULL 当我做 map df 返回行数少于原始列表的数据框 我想发生的事情是这样的map df calls dplyr bind rows 它忽略了NULL价值观
  • 以引用透明的方式从函数的省略号参数中提取符号

    事情又发生了 我正要按下发布答案按钮的问题被删除了 我正在寻找一种方法来从函数的省略号参数中提取绑定到符号的对象的值以及符号 也就是说 我试图以引用透明的方式从省略号中提取符号 我尝试过使用替代品和lazy dots 但没有成功 funct
  • 将每列的值乘以 R 中另一个 data.frame 中的权重

    我有两个data frames df and weights 代码如下 df看起来像这样 id a b d EE f 1 this 0 23421153 0 02324956 0 5457353 0 73068586 0 5642554 2
  • 使用 Shiny 发布平行坐标图表时出现“错误:路径[1]="”:没有这样的文件或目录”

    我有一个似乎很常见但我还没有找到解决方案的问题 当尝试使用 rCharts Parcoords 发布 Web 应用程序时 出现以下错误 错误 路径 1 没有这样的文件或目录 奇怪的是 该应用程序在我的笔记本电脑上运行得很好 下面是我正在使用
  • ddply 和aggregate 之间的区别

    有人可以通过以下示例帮助我了解聚合和 ddply 之间的区别 数据框 mydat lt data frame first rpois 10 10 second rpois 10 10 third rpois 10 10 group c re
  • 如何在 R 或 Python 中制作旭日图?

    到目前为止 我一直无法找到一个可以创建旭日图的 R 库约翰 斯塔斯科 http www cc gatech edu gvu ii sunburst 有人知道如何在 R 或 Python 中实现这一点吗 在极坐标投影中使用 matplotli
  • 为什么 R 更新后 sim_slopes() 中会出现此错误?

    我正在尝试使用 交互 包来创建简单斜率的约翰逊 尼曼图 但是 当尝试运行 sim slopes 函数时 出现以下错误 直到我将R更新到4 2 2 我才没有遇到这个问题 我使用的是 macOS Ventura 13 1 Error class
  • 投资决策:R中的NPV、IRR、PB计算

    我正在尝试计算不同数量项目的净现值 NPV 内部收益率 IRR 和投资回收期 PB 时间 以评估哪个投资项目提供最佳回报 到目前为止 我可以为每个项目单独计算几行代码 但我想做的是 编写一个函数 它接受一个包含许多不同项目及其现金流的矩阵
  • 实三次多项式的最快数值解?

    R 问题 寻找最快的方法来数值求解一堆已知具有实系数和三个实根的任意三次方程 据报道 R 中的 polyroot 函数对复杂多项式使用 Jenkins Traub 算法 419 但对于实多项式 作者参考了他们早期的工作 对于实三次或更一般的
  • 如何绘制具有显着性水平的箱线图?

    前段时间问了一个关于绘制箱线图的问题Link1 https stackoverflow com questions 14604439 plot multiple boxplot in one graph 我有一些包含 3 个不同组 或标签
  • 无法更改 RStudio 中的 R 版本

    我的 RStudio V 0 99 491 无法更改 R 版本 我以平常的方式行事Global Options gt R Version 然后它挂起并且不再工作或反应 R 运行良好的初始版本是R 3 1 0 我以前从未遇到过这样的问题 也许
  • 如何将plot中的单变量列表图表转换为ggplot2格式?

    我正在搜索 但仍然找不到一个非常简单的问题的答案 我们如何使用 R 中的 ggplot2 生成一个变量的简单线图 我正在分析时间序列数据 并且想要对图表进行更复杂的操作 我认为如果我使用 ggplot2 代替会更好plot It works

随机推荐

  • ||是什么意思在 JavaScript 中?

    我正在查看这些代码行here if callback callback sig graph 我从未在 javascript 方法调用中看到垂直的 或 条 他们的意思是什么 他们是否传递 true 参数 即 sig 或 graph 他们是否传
  • DateTime.TryParseExact 不适用于预期的字符串

    您好 我有以下方法 我将值 07 Jan 2014 13 48 46 传递给它 据我了解 TryParseExact 应该匹配格式 dd MMM yyyy hh mm ss 并返回 true 但它返回 false 有什么想法吗 string
  • 如果字符串的第一个字符为 0,则删除该字符

    我想删除字符串的第一个字符 如果第一个字符是 0 0 可以出现多次 有没有一个简单的函数可以检查第一个字符 如果为 0 则将其删除 现在我正在用 JS 尝试slice 功能但是很别扭 您可以使用删除字符串的第一个字符substring va
  • 失败的道具类型:道具“actions”在“测试”中被标记为必需,但其值为“未定义”

    我正在使用 React 和 Redux 创建一个简单的登录表单 我的app js is import React from react import render from react dom import Input from react
  • 如何从 JFileChooser 检索 UNC 路径而不是映射的驱动器路径

    只是想知道是否有办法从使用 JFileChooser 选择的文件返回 UNC 路径 我要选择的文件将驻留在具有 UNC 路径的映射驱动器上 现在 我似乎只能拉回映射驱动器的驱动器号 From https stackoverflow com
  • 如何使用 Gmail API 检查传入的新邮件

    我已经设置了一个可以从 Gmail 帐户中提取数据的 python 脚本 但我想将其设置为仅提取自上次我进行 API 调用以来的新消息 我将定期 ping 服务器 我已经查看了推送通知和发布 订阅 但我不太确定这些是否相关 或者我应该看看其
  • 如何在一个页面上运行多个ajax调用

    如果我正在制作一个 ajax 化 用户界面 其中包含许多 ajax 调用 用于创建 重命名 删除页面上的各种内容 处理所有这些 代码隐藏 ajax 页面的最佳方法是什么 起初 我为每个调用都有一个不同的 php 文件 即 Candy Ren
  • 使用邮件包时,“短语中缺少单词:不支持字符集”

    我正在尝试解析电子邮件 但使用邮件包时出现此类错误 这是邮件包裹上的错误还是我应该自己处理的问题 missing word in phrase charset not supported gb18030 charset not suppor
  • 由于 SESSION_DOMAIN,laravel 无法登录

    我在 env 中设置了 SESSION DOMAIN example com 现在我无法使用正确的电子邮件和密码登录我的帐户 有人遇到这个问题吗 对于所有遇到此错误的人 当您更改 SESSION DOMAIN 环境参数时 Laravel 将
  • 尽管处于调试模式,Bottle.py 仍缓存模板

    我刚刚在 GAE 上构建了我的第一个 Bottle py 应用程序 它正在工作 只是当我更改模板时 我必须重新启动开发服务器才能看到更改 文档说 当 Bottle debug True 时 模板缓存应该被禁用 并且您也可以调用 Bottle
  • 使用后续查询时出现无法打开数据库文件错误

    我有以下代码 第一个光标对象工作正常 但是当我执行另一个查询并将其分配给 FlightCursor 时 它给出了错误 Cursor cursor database query CityAndAirportsTable notificatio
  • 在 Ionic 中设置 CORS

    我正在创建我的第一个离子应用程序 但我正在与cors斗争 我在这方面没有很多经验 所以这个问题可能看起来很愚蠢 我无权访问 api 站点 因此无法更改其中的任何内容 这是我用来从 api 站点获取数据的代码 我读到cors只是在使用离子服务
  • NSPredicate 精确匹配

    NSArray arrData NSArray arrayWithObjects cloud country plant country cloud plant country plant cloud clouds country plan
  • 在 Windows 中打印到控制台时需要回车吗?

    看起来只放一个换行就足够了 但我知道它应该是回车 换行 如果不输入回车符而只使用换行符 会发生什么可怕的事情吗 这是 ANSI C 格式的 不会重定向到文件或其他任何内容 只是一个普通的控制台应用程序 Windows 控制台遵循与文件或实际
  • 为什么我在 Maven 中收到“401 Unauthorized”错误?

    为什么我在 Maven 中收到 401 Unauthorized 错误 这是我调用时遇到的错误mvn deploy 完整日志位于底部 INFO BUILD FAILURE ERROR Failed to execute goal org a
  • Android 中“未找到活动”

    我正在使用navigation drawer在 eclipse 中做一个简单的 Android 应用程序的模板 我在片段方面遇到了一些麻烦 我在清单中声明了一个名为 PresenceLog Fragment 的片段 但是当我调用它时Main
  • 在哪里可以找到 docker 镜像的 sha256 代码?

    我想使用它们的 sha256 代码提取 CentOS Tomcat 的映像 例如 docker pull myimage sha256 0ecb2ad60 但我找不到可以在任何地方使用的 sha256 代码 我检查了 DockerHub 存
  • 如何在 do.call 中添加函数的更多参数?

    我的问题是我如何能够向do call功能 例如 我想画多面的grid情节与grid arrange 我如何添加更多参数 例如ncol 3 and main main title 到命令do call grid arrange plots 考
  • Scala无法解析继承的Java接口常量成员

    Java中的类层次结构 界面 Cluster Classify Class Kluster层次结构如下所示 Cluster lt Kluster Classify lt File oop Cluster java package oop p
  • 滚动多元回归面板数据

    我正在尝试对过去 36 个月内对其中 18 个月进行观察的公司执行时间 t 的滚动回归 但我无法使该函数发挥作用 我只想要 var1 的系数 X y z 是控制变量 这是我尝试运行的数据和代码的示例 structure list Year