我不完全确定出了什么问题,也许apply.monthly()
是剥夺了一些属性,但回到基础似乎是可行的。
library(xts)
library(quantreg)
data(sample_matrix)
xt <- as.xts(sample_matrix)
f <- as.character(index(xt), format="%Y-%m")
xt.ym <- split(xt, f)
lapply(xt.ym, FUN=function(x) rq(Open ~ Close, data=x, tau=0.95))
作为参考,这是行不通的,但感觉应该
apply.monthly(xt, FUN=function(x) rq(Open ~ Close, data=x))
coredata.xts(x) 中的错误:当前不支持的数据类型
我已经意识到为什么apply.monthly()
不起作用了。它想要返回一个xts
对象,但无法强制回归对象列表为xts
,因此它会引发错误。但是,如果我们将回归输出限制为可以强制的东西,例如 f.ex,它将起作用。
apply.monthly(xt, FUN=function(x) rq(Open ~ Close, data=x)$coef)
# (Intercept) Close
# 2007-01-31 12.224046 0.7564106
# 2007-02-28 -6.326472 1.1242798
# 2007-03-31 -2.108973 1.0432247
# 2007-04-30 5.739395 0.8840677
# 2007-05-31 2.453616 0.9495129
# 2007-06-30 17.380465 0.6342055