我估计了六只选定股票的多变量条件方差模型,使用 PCA 来估计股票收益的因子结构,并使用单变量波动率模型来建模因子方差。根据这些估计,我如何得出投资组合第一个交易日的条件波动率估计?
#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
}
我无法为预测编写正确的代码。我尝试过使用 ugarchforecast,但我的输入可能是错误的,因为我的代码无法运行。
你有答案了吗?