私はライブラリrugarchを使用していますが、ライブラリと同じ出力を「手動で」探して、すべてを正しく理解しているかどうかを確認します。 私の分散傍受(オメガ)を私のデータセットの無条件分散と等しくしたいと思います。したがって、ugarchspec関数でvariance.targeting = TRUEを設定しました。rugarchとvariance targeting in R
私は私の無条件共分散がほぼ同等であることを確認できます。 シグマ:しかし、私はGARCH方程式と「手動」に同じ条件付き分散の時系列を見つけることができません オメガ/(1-アルファ1-β1) (T)²=オメガ+アルファ* X(T-1)^ 2 +ベータ*シグマ(T-1)²
ここでは私の問題を説明するために、再現例です
data(sp500ret)
sp500ret <- scale(sp500ret, scale = FALSE, center = TRUE) # de-mean
model <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1), variance.targeting = TRUE),
mean.model = list(armaOrder = c(0, 0), include.mean = FALSE), distribution.model = "norm")
fit <- ugarchfit(model, sp500ret)
omega <- [email protected]$coef[3]
alpha <- [email protected]$coef[2]
beta <- [email protected]$coef[1]
var(sp500ret)
# 0.0001426482
omega/(1 - alpha - beta)
# 0.0001426587
var_rugarch <- [email protected]$var
var_manual <- c()
var_manual[1] <- var_rugarch[1]
for (t in 2:5523) {
var_manual[t] <- omega + alpha * sp500ret[t-1]^2 + beta * var_manual[t-1]
}
which(var_rugarch == var_manual)
# [1] 1
しかし、 variance.targeting = FALSEの場合、最後の行はvar_rugarch = var_manualを示します。 variance.targeting = TRUEの場合、これら2つの変数が同じでない理由は何ですか?