Я не совсем уверен, что идет не так, может быть, 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
, поэтому он выдает ошибку. Однако это сработает, если мы ограничим вывод регрессии чем-то, что может быть приведено, например:
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