Итак, я пытаюсь передать прогнозы DCC garch в портфель, чтобы делать еще более интересные вещи, такие как вычисление эффективной границы и т. Д.
dcc.garch11.spec
dcc.fit= dccfit(dcc.garch11.spec, data =Dat)
#Forecasting
dcc.fit.focast=dccforecast(dcc.fit, n.ahead = 1, n.roll = 0)
print(dcc.fit.focast)
R_focast <- dcc.fit.focast@mforecast$R
H_focast<-dcc.fit.focast@mforecast$H
#Portfolio Optimization (Use the forecasted variance covariance matrix)
#install.packages("timeSeries") need to make it timeSeries
library(timeSeries)
tsDat<-as.timeSeries(Dat)
#install.packages("fPortfolio")
library(fPortfolio)
covtEstimator <- function (x, data,spec) {x.mat = as.matrix(x)
list(mu = dcc.fit.focast@model$mu, Sigma = H_focast)}
covtSpec <- portfolioSpec()
setEstimator(covtSpec) <- "covtEstimator"
setNFrontierPoints(covtSpec) <- 5
covtFrontier <- portfolioFrontier(data = tsDat, spec = covtSpec)
Однако я получаю следующую ошибку:
Error in dimnames(x) <- dn :
length of 'dimnames' [1] not equal to array extent