#r #var
#r #var
Вопрос:
Я пытаюсь создать кривую VaR с помощью модели Copula-GARCH в R. Вот что у меня есть:
library("fGarch")
library("quantmod")
library(ghyp)
library(copula)
Получение цен на акции Boeing и Airbus и расчет доходности:
getSymbols("BA", from="2014-01-01", to="2016-10-19")
p<-as.numeric(Ad(BA))
l<-length(p)
y<-p[2:l]/p[1:(l-1)]-1
getSymbols("AIR",from="2014-01-01", to="2016-10-19")
p1<-as.numeric(Ad(AIR))
y1<-diff(p1)/head(p1,-1)
Создание оптимального портфеля:
gammas <- seq(0,1,0.001)
var <- var(y)*gammas^2 var(y1)*(1-gammas)^2 2*cov(y, y1)*gammas*(1-gammas)
optimal <- (var(y1) - cov(y, y1))/(var(y) var(y1) - 2*cov(y, y1))
optimal
prt<-optimal*y (1-optimal)*y1
y2<-cbind(y,y1)
head(y2)
Двумерное распределение доходности:
cdf<-pobs(y2)
plot(cdf)
Инициализация связки:
t.cop<-tCopula(dim=2, param=0.5, df=2, df.fixed=TRUE)
fit<-fitCopula(data=cdf, copula=t.cop)
summary(fit)
Монте-Карло и VaR:
N0<-10000
points_cop<-rCopula(copula=fit@copula, N0)
plot(points_cop, cex=0.2)
y_cop<-quantile(y, points_cop)
y1_cop<-quantile(y1, points_cop)
prt_y2<-optimal*y_cop (1-optimal)*y1_cop
quantile(prt_y2, 0.05)
Проблема заключается в получении кривой VaR (здесь разбивается выборка на тестовую и проверяемую выборку):
N1<-15000
test1<-prt_y2[(N1 1):length(prt_y2)]
VaR1<-rep(0,length(test1))
for(i in (N1 1):length(prt_y2))
{train1<-prt_y2[(i-N1):(i-1)]
...............
}
Как я могу объединить GARCH и copulas для подгонки модели и создания кривой VaR?