4 年每日数据的滚动回归,每个新回归和不同因变量提前一个月

2024-02-20

我有 5 个自变量(附加数据中的 B-F 列)和一些因变量(附加数据中的 G-M 列),我需要针对所有自变量对每个因变量进行多重回归。回归必须有 4 年的数据窗口,并且每个新的估计都必须提前一个月。我需要提取系数并对每个系数进行 vasicek 调整(截距除外)。这个调整只是:

贝塔系数的调整 https://i.stack.imgur.com/PSzSu.png

数据看起来像

整个数据是:

Data.xls https://docs.google.com/spreadsheets/d/1XRm0VrQRmWs2s4GMwdSO2r6KyFZFyFmV/edit#gid=1028692018

其中自变量放置在 B-F 列中,因变量放置在 G-M 列中。我一直在努力解决这个问题,并且构建了两部分代码。首先,我提取每个因变量的回归系数,并根据 vasicek 调整来调整它们,但没有采用我需要的移动窗口:

depvar <- c("LYB_UN_Equity" ,"AXP_UN_Equity", "VZ_UN_Equity", "AVGO_UW_Equity", "BA_UN_Equity", "CAT_UN_Equity", "JPM_UN_Equity")
regresults <- lapply(depvar, function(dv) {
tmplm <- lm(get(dv) ~ Mkt + SMB + HML + RMW + CMA, data=newdata
#     ,subset=(Newdata$Fecha > "1996-01-01" & Newdata$Fecha < "1999-12-31"), na.action = na.exclude )
 k=length(tmplm$cofficients)-1
 SSE=sum(tmplm$residuals**2)
 n=length(tmplm$residuals)
 SE=sqrt(SSE/(n-(1-k))
coef(tmplm)*(summary(tmplm)$coef[,2]/SE+summary(tmplm)$coef[,2]) +coef(tmplm)*(SE/SE+summary(tmplm)$coef[,2])
})


allresults <- data.frame(depvar = depvar, 
                     do.call(rbind, regresults))
names(allresults)[2] <- "intercept"
allresults}

它有效,但正如我所说,我需要 4 年每日数据的滚动窗口,每个新估计都会提前一个月,所以我尝试使用嵌套 for 循环,但它不起作用:

for (j in 1:7) {
for (i in 1:length(newdata)) {
 #try(
  Model<-lm(newdata[seq(i,1056,24),j+6] ~ newdata[seq(i,1056,24), 2:6])
  #, silent=T)
betas <- as.matrix(coefficients(Model))
}}

错误是:

Error in model.frame.default(formula = newdata[seq(i, 1056, 24), j + 6] ~  :  invalid type (list) for variable 'newdata[seq(i, 1056, 24), j + 6]'

我是初学者,非常感谢您的帮助


问题中没有足够的数据来运行 4 年,并且因变量的值丢失,因此这里是一个使用w3 个月(而不是 4 年)和一组简化的统计数据,可以通过更改输入和数据进行调整reg.

请注意,yearmon 类将仅由年和月组成的日期存储为年 + 分数,其中分数 = 0, 1/12, ..., 11/12 表示 Jan、Feb、...、Dec,因此 w 的间隔长度月份为 w/12。

library(zoo)

# inputs
set.seed(123)
ndata <- data.frame(date = as.Date("2000-01-01") + 0:365, 
  z = rnorm(366))
A <- sqrt(0:365)
B <- (0:365)^0.25
w <- 3 # number of trailing months to regress over
depvars <- c("A", "B")
indep <- c("date", "z")

reg <- function(ym_, depvar, indep, data, w, ym) {
  ok <- ym > ym_ - w/12 & ym <= ym_
  fo <- reformulate(indep, depvar)
  fm <- lm(fo, data, subset = ok)
  co <- coef(fm)
  n <- nobs(fm)
  c(co, n = n)
}

ym <- as.yearmon(ndata$date)
ym_u <- tail(unique(ym), -(w-1))

L <- Map(function(depvar) {
  data.frame(yearmon = ym_u, 
    t(sapply(ym_u, reg, 
      depvar = depvar, indep = indep, data = ndata, w = w, ym = ym)), 
    check.names = FALSE)
}, depvars)

L

给出以下数据框列表,其中yearmon是执行回归的w个月期间最后一个月的年份和月份,n是该期间的天数。

$A
    yearmon (Intercept)       date             z  n
1  Mar 2000   -931.0836 0.08520186 -3.783475e-02 91
2  Apr 2000   -645.7504 0.05930666  5.638294e-03 90
3  May 2000   -536.6141 0.04942836  3.528984e-03 92
4  Jun 2000   -468.3192 0.04326379 -6.769498e-03 91
5  Jul 2000   -420.6956 0.03897671 -7.307754e-05 92
6  Aug 2000   -384.5289 0.03573000  1.343427e-03 92
7  Sep 2000   -356.8805 0.03325475 -1.272157e-03 92
8  Oct 2000   -333.4633 0.03116400  1.980825e-03 92
9  Nov 2000   -314.3980 0.02946651  2.223839e-04 91
10 Dec 2000   -298.0596 0.02801567 -2.949753e-04 92

$B
    yearmon (Intercept)        date             z  n
1  Mar 2000  -206.66238 0.019006840 -7.802128e-03 91
2  Apr 2000  -110.66468 0.010294703  1.301456e-03 90
3  May 2000   -83.11581 0.007801199  8.920903e-04 92
4  Jun 2000   -67.34099 0.006377318 -1.520903e-03 91
5  Jul 2000   -57.03138 0.005449255 -1.435477e-05 92
6  Aug 2000   -49.58352 0.004780660  2.702669e-04 92
7  Sep 2000   -44.11908 0.004291454 -2.438281e-04 92
8  Oct 2000   -39.65054 0.003892493  3.683646e-04 92
9  Nov 2000   -36.12215 0.003578342  4.162776e-05 91
10 Dec 2000   -33.18009 0.003317091 -5.103712e-05 92

或者如果首选数据框,则:

dplyr::bind_rows(L, .id = "depvar")

giving:

   depvar  yearmon (Intercept)        date             z  n
1       A Mar 2000  -931.08360 0.085201863 -3.783475e-02 91
2       A Apr 2000  -645.75036 0.059306657  5.638294e-03 90
3       A May 2000  -536.61413 0.049428357  3.528984e-03 92
4       A Jun 2000  -468.31918 0.043263786 -6.769498e-03 91
5       A Jul 2000  -420.69558 0.038976709 -7.307754e-05 92
6       A Aug 2000  -384.52887 0.035729997  1.343427e-03 92
7       A Sep 2000  -356.88052 0.033254748 -1.272157e-03 92
8       A Oct 2000  -333.46329 0.031163998  1.980825e-03 92
9       A Nov 2000  -314.39800 0.029466506  2.223839e-04 91
10      A Dec 2000  -298.05960 0.028015670 -2.949753e-04 92
11      B Mar 2000  -206.66238 0.019006840 -7.802128e-03 91
12      B Apr 2000  -110.66468 0.010294703  1.301456e-03 90
13      B May 2000   -83.11581 0.007801199  8.920903e-04 92
14      B Jun 2000   -67.34099 0.006377318 -1.520903e-03 91
15      B Jul 2000   -57.03138 0.005449255 -1.435477e-05 92
16      B Aug 2000   -49.58352 0.004780660  2.702669e-04 92
17      B Sep 2000   -44.11908 0.004291454 -2.438281e-04 92
18      B Oct 2000   -39.65054 0.003892493  3.683646e-04 92
19      B Nov 2000   -36.12215 0.003578342  4.162776e-05 91
20      B Dec 2000   -33.18009 0.003317091 -5.103712e-05 92

Note

我不清楚问题中统计计算的意图。我确实在第8页的顶部找到了公式这个文件 https://www.erawa.com.au/cproot/11652/2/Energy%20Networks%20Association%20-%20Draft%20Rate%20of%20Return%20Guidelines%20-%20Report%208%20-%20Vasicek%20Adjustment.pdf但它似乎与问题中提到的有所不同。无论如何,至少问题中的代码似乎需要对某些未平方的项目进行平方,并注意coef(fm), sigma(fm) and diag(vcov(fm))是系数、残差标准误差和系数标准误差的平方。

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

4 年每日数据的滚动回归,每个新回归和不同因变量提前一个月 的相关文章

  • 将命名参数列表传递给函数?

    我想编写一个小函数来从适当的分布生成样本 例如 makeSample lt function n dist params values lt makeSample 100 unif list min 0 max 10 values lt m
  • 基于服务器中的条件逻辑呈现闪亮的用户输入

    我正在尝试设置一个闪亮的导航栏面板页面 其中用户控制我根据一组单选按钮中所做的初始选择来显示更改 我直接在 ui 中渲染单选按钮 然后在 Server r 中的 观察到的 逻辑控制结构内构建条件控件 弹出错误是因为我的初始 if 语句计算结
  • R::bigmemory - 如何创建角色big.matrix?

    我尝试使用bigmemory封装在R我一开始就陷入困境 我愿意 temp lt matrix paste a 1 10 5 2 并得到一个字符矩阵 没关系 但后来我尝试 x lt as big matrix temp type char 我
  • 如何在 ggplot 中保持配色方案,同时删除每个图中未使用的级别?

    我想比较一个图中的数据的一些子组和另一图中的一些其他子组 如果我绘制一个图 其中绘制了所有子组 那么这个数字将是巨大的 并且每个单独的比较都会变得困难 我认为如果给定的子组在所有图中都具有相同的颜色 这对读者来说会更有意义 这是我尝试过的两
  • 是否可以通过扫描从控制台读取而不回显字符?

    这是一个示例函数 passwordEntry lt function cat Enter your password pwd lt scan n 1 what character quiet TRUE invisible pwd 并测试该功
  • 使用 broom 和 tidyverse 总结 r 平方游戏

    我发布了一个问题here https stackoverflow com questions 48627287 getting adjusted r squared value for each line in a geom smooth
  • 如何用外部图像填充地图边界?

    我正在创建一张带有州边界的巴西地图 这可以直接使用ggplot2 and geom sf 然而 这一次 我不想用数据填充每个状态的颜色 而是想用外部图像 png 填充每个状态的边界 类似于this https online olivet e
  • 如何从 Fortran 调用 R 函数?

    根据http gallery rcpp org articles r function from c http gallery rcpp org articles r function from c Rcpp 允许用户从 C 调用 R 函数
  • 在shiny中过滤传单地图数据

    我在用传单地图设置这个闪亮的东西时遇到了麻烦 我的原帖 https stackoverflow com questions 50111566 applying leaflet map bounds to filter data within
  • 使用 for 循环 Python 为数组赋值

    我正在尝试将字符串的值分配给不同的数组索引 但我收到一个名为 列表分配超出范围 的错误 uuidVal distVal uuidArray distArray for i in range len returnedList for beac
  • 如何删除箱线图上的刻度线

    我试图从箱线图中删除 x 轴刻度线 但保留与刻度线关联的标签 这在基础 R 中可能吗 colors lt c lightskyblue3 gray78 gold1 wheat1 boxplot avgscore module data mi
  • 使用 purrr 迭代替换数据帧列中的字符串

    我想用purrr使用以下命令在数据框列上迭代运行多个字符串替换gsub 功能 这是示例数据框 df lt data frame Year 2019 Text c rep a aa 5 rep a bb 3 rep a cc 2 gt df
  • 如何计算R中移动窗口内的平均斜率

    我的数据集包含2个变量y 和 t 05s y 每 05 秒测量一次 我正在尝试计算移动中的平均坡度20秒窗口 即计算第一个 20 秒斜率值后 窗口向前移动一个时间单位 05 秒 并计算下一个 20 秒窗口 在以下位置生成连续 20 秒斜率值
  • 通过间接引用列来修改数据框中的某些值

    我正在整理一些数据 我们将失败的数据分类到垃圾箱中 并按批次计算每个分类箱的有限产量 我有一个描述排序箱的元表 这些行按升序测试顺序排列 一些排序标签带有非语法名称 sort tbl lt tibble tribble weight lab
  • 如何使用 usmap 标记数字而不是名称?

    我知道 usmap 有一个选项label in plot usmap 我想标记一些数字 而不是状态名称 我想 usmap 中应该有与州质心坐标相关的数据 但我不知道如何找到它 如果我能得到 坐标然后我可以用它来标记数字geom text 这
  • R独特的列或行与NA无可比拟

    有谁知道如果incomparables的论证unique or duplicated 曾经被实施过incomparables FALSE 也许我不明白它应该如何工作 无论如何 我正在寻找一个巧妙的解决方案 以仅保留与另一列相同的唯一列 或行
  • 为什么 dplyr filter() 不能在函数内工作(即使用变量作为列名)?

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

    谁能告诉我如何仅读取下面每年数据的前 6 个月 7 列 例如使用read table Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2009 41 27 25 31 31 39 2
  • 将阴影区域添加到五分位数之间的直方图中

    All 我有一个包含 2 个直方图的图表 其中我还绘制了代表第 20 40 60 和 80 个百分位数的线条 下面的代码使用虚拟数据重现了类似的图表 data lt rbind data frame x rnorm 1000 0 1 g o
  • 相当于 min() 的 rowMeans()

    我在 R 邮件列表上多次看到这个问题 但仍然找不到满意的答案 假设我有一个矩阵m m lt matrix rnorm 10000000 ncol 10 我可以通过以下方式获得每行的平均值 system time rowMeans m use

随机推荐

  • 有没有一种方法可以从同一进程中的另一个线程查看一个线程的寄存器内容?

    假设我有一个包含三个线程的进程 A B 和 C 我想使用线程 A 暂停线程 B 检查线程 B 的寄存器值 堆栈内容 然后将线程 B 中的一些信息提供给线程 C 通过线程 A 根据this http yarchive net comp lin
  • 如何在 C 中初始化多维字符数组?

    我正在尝试将一些代码从 C 转换为 C 以便可以将其烧录到微控制器上 有人可以告诉我如何将 C 中的二维字符串数组转换为 C 中的内容吗 我的 C 代码如下所示 string DirectionPosition 00 10 01 01 11
  • 如何使用RequestBodyAdvice

    ControllerAdvice public class RequestBodyAdviceChain implements RequestBodyAdvice Override public boolean supports Metho
  • 用不同的字符串多次替换相同的字符[重复]

    这个问题在这里已经有答案了 我有一个字符串多次包含相同的字符 我想用数组中的不同字符串替换每次出现的该字符 IE 就像准备好的声明中一样 String SELECT FROM x WHERE a AND b Array alpha beta
  • C++ Builder XE2,TXMLDocument“禁止 DTD”

    当我尝试使用 DTD 读取 XML 文档 eagle 文件 时 出现错误 项目 xx 引发异常类 EDOMParserError 并显示消息 DTD is 禁止 XML 标头如下所示 如果我删除第二行 一切正常 经过一番谷歌搜索后 MSXM
  • Python 3 多处理池因变量较大而速度缓慢

    我在 Python 3 中使用多处理池时遇到了一个非常特殊的问题 请参阅下面的代码 import multiprocessing as MP class c object def init self self foo def a self
  • 名为 noMethodError ruby​​ 的私有方法

    我一直在尝试解决以下问题并遇到错误 问题的关键是使用给定的密钥序列来加密字符串 例如 当给出 cat 和 1 2 3 时 结果应该是 dcw 有什么建议么 错误如下 def vigenere cipher string key sequen
  • silverlight MatchTimeoutInMilliseconds bug:解决DomainServiceClientCodeGenerator

    银光5 Net框架4 我正在尝试针对 RIA 代码生成器中最近的错误实施解决方法 找不到匹配超时毫秒 https connect microsoft com VisualStudio feedback details 1988437 gen
  • 使用 json 文件动态导入不起作用 typescript

    所以我编写了一个这样的函数来获取多个环境的测试数据 export class DataHelper public static async getTestData fileName string Promise
  • Hadoop:将多个IP地址绑定到集群NameNode

    我在 Softlayer 上有一个四节点 Hadoop 集群 Master NameNode 有一个用于外部访问的公共IP地址和一个用于集群访问的私有IP地址 从节点 数据节点 具有私有IP地址 我试图连接到主节点 而不需要为每个从节点分配
  • Node.js 服务器和客户端之间的变量

    我使用 Node js 运行一个简单的 http 服务器 var http require http var fs require fs var index fs readFileSync index html var sensor req
  • 将 YouTube Iframe API 与 Nativescript 结合使用?

    UPDATE 从 Manoj 下面的代码和其他一些来源 我现在可以将 youtube 播放器加载到基于 Youtube iframe api 的 webview 中 但问题仍然是 如何让我的应用程序识别视频本身何时开始播放 视频加载后以及任
  • Python:在主程序和 PEP 8 开头导入

    The PEP 8 http python org dev peps pep 0008 建议在程序开始时导入模块 现在 我觉得在开始时导入其中一些main程序 即 之后if name main 说得通 例如 如果主程序从命令行读取参数 我倾
  • 一个月内创建的 Rails 范围

    我在编写模型范围时遇到了一些问题 我想根据模型对象发布的月份来过滤模型对象 即模型 BlogPost scope published in month gt date where published date date at beginni
  • 如何指示 Ajax Minifier 从 javascript 中删除 console.log

    我的 js 文件中有这样的行 console log FunctionName 默认 Ajax Minifier 设置不会从 min js 输出中删除这些行 我在这次讨论中注意到关于终止开关的对话 http ajaxmin codeplex
  • idn-ruby 捆绑安装时出错

    我的应用程序中有 twitter text gem 当我进行捆绑安装时 出现以下错误 需要优先解决它 我也去了github页面https github com twitter twitter text issues 225 https gi
  • 图片来源UriKind

    我有一个项目 它的名称是 xx 我创建一个具有以下路径的文件夹 images xx bin 调试 图像 图像仅包含一张照片 其名称为 1 jpg 主窗口包含图像控件 我设置此代码来加载图像源 但它不起作用 为什么 private void
  • 在 AIR 应用程序安装屏幕上显示图标

    是否可以在 AIR 应用程序安装屏幕上显示图标 我下载了一个 AIR 应用程序 我很惊讶地在第二个安装屏幕上看到了一个图标 当您购买 SSL 证书并使用该证书构建 Air 应用程序时 安装过程中会显示此图标
  • SQLite:.Net 比原生慢得多?

    这是我的查询 SELECT FROM GeoName WHERE 26 3665122100029 Lat 26 3665122100029 Lat 27 5978928658078 Long 27 5978928658078 Long l
  • 4 年每日数据的滚动回归,每个新回归和不同因变量提前一个月

    我有 5 个自变量 附加数据中的 B F 列 和一些因变量 附加数据中的 G M 列 我需要针对所有自变量对每个因变量进行多重回归 回归必须有 4 年的数据窗口 并且每个新的估计都必须提前一个月 我需要提取系数并对每个系数进行 vasice