Я хочу вычислить альфа-квантиль распределения Гауссовой смеси. Я пробовал следующее:
альфа <- 0,05 </p>
# N равно длине возвращаемого ряда (2544 наблюдения), так что я хочу получать квантиль Value at Risk / Alpha для каждого дня я. w1 и w2 являются весами компонентов 1 и 2 обоих векторов одинаковой длины (2544). То же самое верно для mu, определяющего среднее значение = 0 и сигма для каждого компонента sig_sq_1 и sig_sq_2. К сожалению, я получаю убывающее сообщение: нет знака Изменить после 1000 итераций. Без использования exteInt = "yes" в uni root я получаю сообщение об уменьшении: конечная точка имеет такой же знак. Я действительно надеюсь, что любой из вас сможет помочь мне решить мою проблему!
for (i in 1:N){
x = OutSampleL[i]
mu = mu[i]
w1 = w[1,i]
w2 = w[2,i]
sig1 = sig_sq_1[i]
sig2 = sig_sq_2[i]
fx <- function(x) w1* dnorm(x, mu, sig1) + w2 * dnorm(x, mu, sig2)
cfx <- function(x, alpha, FUN = fx) {
integrate(function(x, FUN = fx) FUN(x), -Inf, x, subdivisions = 1000, stop.on.error = FALSE)$value - (1 - alpha)
}
VaR[i] <- uniroot(cfx, c(0, 1), extendInt = "yes", tol = 0.001, alpha = 0.05)$root
}
Большое спасибо !!