小编P. *_*nry的帖子

滚动回归多列

我有一个问题是找到一种最有效的方法来计算具有多列的xts对象的滚动线性回归.我已经在stackoverflow上搜索并阅读了之前的几个问题.

这个问题和答案很接近,但在我看来还不够,因为我想计算所有回归中因变量不变的多元回归.我试图用随机数据重现一个例子:

require(xts)
require(RcppArmadillo)  # Load libraries

data <- matrix(sample(1:10000, 1500), 1500, 5, byrow = TRUE)  # Random data
data[1000:1500, 2] <- NA  # insert NAs to make it more similar to true data
data <- xts(data, order.by = as.Date(1:1500, origin = "2000-01-01"))

NR <- nrow(data)  # number of observations
NC <- ncol(data)  # number of factors
obs <- 30  # required number of observations for rolling regression analysis
info.names <- c("res", "coef")

info <- array(NA, dim = …
Run Code Online (Sandbox Code Playgroud)

r apply linear-regression xts rolling-computation

7
推荐指数
1
解决办法
3857
查看次数

如何使用 xts 对象处理 TTR 库中的“系列包含非前导 NA”?

在对量化交易模型进行建模时,我经常遇到如何处理 NA 值的相同问题。下面的示例是关于自 1997 年 1 月 1 日以来存储在具有四列“高”、“低”、“收盘”、“成交量”的 xts 对象中的 EOD 数据的股票。数据来自彭博社。当我想计算滚动 20 天交易量时,会出现错误消息:

SMA(stock$Volume, 20)
Error in runSum(x, n) : Series contains non-leading NAs  
Run Code Online (Sandbox Code Playgroud)

我很快找到了问题(我知道这是 NA 值,因为我已经尝试了 1000 次)并发现这两天缺少体积数据。我在下面复制了那些天的数据。快速观察一下SMAEMA如果 TTR 中的,等函数前面是数字,然后是数字,则它们无法处理 NA。

stock <- as.xts(matrix(c(94.46,92.377,94.204,NA,71.501,70.457,70.979,NA), 2, 4,
  byrow = TRUE, dimnames = list(NULL, c("High","Low","Close","Volume"))),
  as.Date(c("1998-07-07", "1999-02-22")))
Run Code Online (Sandbox Code Playgroud)

处理这个问题的最佳方法是什么?是否将stock$VolumeNA 值存储为临时对象,然后计算滚动量并将其合并,merge.xts同时添加fill = NANA 值再次插入?但这是正确的,因为您使用的是过去 20 个交易日,而不仅仅是 20 天窗口中可用的 19 个交易日?

我希望某种“最佳实践”可以成为这篇文章的结果,因为我认为这个问题也会发生在金融领域的其他 R 用户身上,无论他们是从彭博、雅虎财经还是其他来源获取数据。

r xts

5
推荐指数
1
解决办法
1万
查看次数

为什么XTS函数在不附加Zoo的情况下找不到as.yearmon函数?

如果您有一个新的R会话(除了来自基础的软件包,没有附加任何软件包),并尝试创建按yearmon类排序的以下xts对象...

df <- data.frame(date = zoo::as.yearmon(seq.Date(as.Date("2015-01-01"),
                                                 as.Date("2015-12-31"),
                                                 by = "month")),
                 num = rnorm(12, 0, 1))

dates <- df[,1]

xts::xts(as.matrix(df[, -1]), order.by = dates)
Run Code Online (Sandbox Code Playgroud)

您得到以下错误。

在此处输入图片说明

我以为我了解R名称空间框架,但是在这种情况下我完全迷失了。当dates对象已经是yearmon对象时,为什么xts尝试调用as.yearmon函数?我知道xts取决于动物园,但这是原因吗?

如果连接了动物园,那么错误当然会消失。

我对此问题感兴趣的原因是,我正在创建一个使用xts包的包。我的函数之一返回一个xts对象,但是我希望我的包仅依赖R并导入所有其他包-据哈德利·威克姆(Hadley Wickham)所述,这是最佳实践(据我所知)。但是,由于这个问题,我需要依赖Zoo软件包才能完成这项工作。

我确定我会忽略某些事情,所以我希望SO的一个友好的人能够帮助解释这个问题并提出解决方案。谢谢!

r zoo xts

5
推荐指数
1
解决办法
1519
查看次数

标签 统计

r ×3

xts ×3

apply ×1

linear-regression ×1

rolling-computation ×1

zoo ×1