我估计了六只选定股票的多元条件方差模型,使用 PCA 来估计股票收益的因子结构,并使用 GARCH 波动率模型来建模因子方差。根据这个模型,我如何生成投资组合下一个交易日的条件波动率估计?
#Run Univariate GARCH(1,1) on Selected Number of factors
nf <- 4
GARCH_1_1 <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)),
mean.model = list(armaOrder = c(0, 0), include.mean = FALSE))
uspec <- multispec(replicate(nf, GARCH_1_1))
GARCH_multifit <- multifit(multispec = uspec, data = f[,1:nf], solver = 'hybrid')
sigma <- sigma(GARCH_multifit)
htMat <- xts(sigma^2, order.by = index(log_returns_demean))
#Building Conditional Variance Covariance Matrix
errors <- log_returns_demean - f[, 1:nf] %*% t(PCA$rotation[,1:nf])
omega <- diag(colMeans(errors^2))
ht <- array(dim = c(length(Stocks), length(Stocks), dim(log_returns_demean)[1]))
for (i in 1:dim(log_returns_demean)[1]) {
ht[, , i] <- PCA$rotation[,1:nf] %*% diag(as.numeric(htMat[i, ])) %*% t(PCA$rotation[,1:nf]) + omega
}
我找不到正确的功能来使用。
乏味但基本的代数