Upload
msuteam
View
779
Download
1
Embed Size (px)
Citation preview
Моделированиедоходности финансовыхактивовс
использованиемкопулФинансовая эконометрика
Содержание
• основы теории копул• модель «copula–GARCH»
Основытеориикопул
: Копулы определениеисвойства
Копула — функция со следующими свойствами:
Копула — совместная функция распределения d стандартных равномерных случайных величин:
Копулаисовместнаяфункцияраспределения
Пусть тогда и Таким образом, при подстановке в копулу значений частных функций распределения случайных величин мы получим их совместную функцию распределения
Плотностью копулы называется отношение Если случайные величины непрерывны, то
ТеоремаШкляра
Теорема Шкляра (Šklar, 1959)Пусть — частные функции распределения, — совместная функция распределения, тогда существует такая копула , что
Теорема Шкляра позволяет разделить процедуру оценки параметров совместного распределения на два шага:• оценка параметров частных функций распределения• оценка параметров копула-функции
Видыкопул
Виды копула-функций:• эллиптические — строятся на основе известных функций
распределения (нормальная, Стьюдента, Коши, Лапласа и другие);
• архимедовы — строятся на основе функции-генератора (Гумбеля, Клейтона, Франка и другие);
• экстремальные копулы (Гумбеля, Галамбоса и другие);• непараметрические копулы
(1:2)Эллиптическиекопулы
Копула Гаусса (нормальная копула)
Normal copula, contour plot
x
y
0.2
0.2
0.4
0.4
0.6
0.6
0.8
0.8
1
1
1.2
1.2
1.4
1.4
1.6
1.6
1.8
1.8
2
2
2.2
2.2
2.4
2.4
2.6
2.6
2.8
2.8
3.4
3.4
3.8
3.8
6
6
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.2
0.4
0.6
0.8
1.0
x
0.2 0.4 0.6 0.8
y
0.2
0.4
0.6
0.8
Den
sity
2
4
6
8
Normal copula, 3D plot
Student's copula, contour plot
x
y
2
2
2
2
3
3
3 3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
11
11
12
12
13
13
14
15
16
17
18
20
22
24
27 28
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.2
0.4
0.6
0.8
1.0
x
0.2 0.4 0.6 0.8
y
0.2
0.4
0.6
0.8
Density
10
20
30
40
50
Student's copula, 3D plot
(2:2)Эллиптическиекопулы
Копула Стьюдента (t-копула)
(1:2)Архимедовыкопулы
Копула Гумбеля
x
0.2 0.4 0.6 0.8
y
0.2
0.4
0.6
0.8
Den
sity
5
10
15
Gumbel copula, 3D plotGumbel copula, contour plot
x
y
0.5
0.5
1
1
1.5
1.5
2
2
2.5
2.5
3
3
3.5
4
4
5
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.2
0.4
0.6
0.8
1.0
(2:2)Архимедовыкопулы
Копула Клейтона
x
0.2 0.4 0.6 0.8
y
0.2
0.4
0.6
0.8
Den
sity
1
2
3
4
5
6
Clayton copula, 3D plotClayton copula, contour plot
x
y
0.3
0.3
0.4
0.4
0.5
0.5
0.6
0.6
0.7
0.7
0.8
0.8
0.9
0.9
1
1
1.1
1.1
1.2
1.2
1.3
1.3
1.4
1.4
1.5
1.6
1.7 1.8
1.9
2.1
2.4
4
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.2
0.4
0.6
0.8
1.0
Исходныеданные
library(datasets)
T <- nrow(EuStockMarkets) - 1
dax <- EuStockMarkets[,"DAX"]dax <- dax[2:(T+1)]/dax[1:T] - 1
smi <- EuStockMarkets[,"SMI"]smi <- smi[2:(T+1)]/smi[1:T] - 1
Моделированиечастныхфункцийраспределенияlibrary(ghyp)
# моделирование частных функций распределенияdax.fit <- stepAIC.ghyp(dax,dist=c("gauss","t","ghyp"), symmetric=NULL,silent=TRUE)$best.modelsmi.fit <- stepAIC.ghyp(smi,dist=c("gauss","t","ghyp"), symmetric=NULL,silent=TRUE)$best.model
# расчёт значений и dax.cdf <- pghyp(dax,object=dax.fit)smi.cdf <- pghyp(smi,object=smi.fit)cdf <- array(c(dax.cdf,smi.cdf),dim=c(T,2))
Моделированиекопулы
library(copula)
# объявление копулnorm.cop <- normalCopula(dim=2,param=0.5,dispstr="un")stud.cop <- tCopula(dim=2,param=0.5,df=5, df.fixed=TRUE,dispstr="un")gumb.cop <- gumbelCopula(dim=2,param=2)clay.cop <- claytonCopula(dim=2,param=2)
# подгонка копулыnorm.fit <- fitCopula(cdf,copula=norm.cop)stud.fit <- fitCopula(cdf,copula=stud.cop)gumb.fit <- fitCopula(cdf,copula=gumb.cop)clay.fit <- fitCopula(cdf,copula=clay.cop)
norm.fit@loglik 558.4
stud.fit@loglik 595.0
gumb.fit@loglik 533.3
clay.fit@loglik 486.3
Оценкафинансовогориска
# значения частных функций распределенияN <- 10^4stud.sim <- rcopula(n=N,copula=stud.fit@copula)
# доходности активовdax.sim <- qghyp(stud.sim[,1],object=dax.fit)smi.sim <- qghyp(stud.sim[,2],object=smi.fit)
w <- c(0.5,0.5)prt.sim <- w[1]*dax.sim + w[2]*smi.sim
# измерители рискаalpha <- 0.1prt.sim <- sort(prt.sim)VaR <- prt.sim[alpha*N]ES <- mean(prt.sim[1:(alpha*N-1)])
VaR -0.009
ES -0.016
Домашнеезадание
• рассчитать показатели VaR и ES для портфеля финансовых активов
• написать комментарии
Исходные данные – EuStockMarkets (кроме пары «DAX-SMI»)
Бонусные задания (необязательные):• построить кривую VaR • провести тест Купика и рассчитать значения функций
потерь
«Модель copula–GARCH»
Формализациямодели
Уравнения для дисперсии по частным GARCH-моделям:
Этапы моделирования:1. Оценка частных GARCH-моделей;2. Расчёт условных стандартизированных остатков 3. Моделирование многомерной величины
«Модель copula–GARCH» в R
# одномерные GARCH-моделиlibrary(fGarch)dax.gfit <- garchFit(data=dax,formula=~garch(1,1), shape=1.25,include.shape=F,cond.dist="ged",trace=F)smi.gfit <- garchFit(data=smi,formula=~garch(1,1), shape=1.3,include.shape=F,cond.dist="sged",trace=F)
# стандартизированные остаткиz <- matrix(rep(0,times=2*T),nrow=T,ncol=2)z[,1] <- dax.gfit@residuals / [email protected][,2] <- smi.gfit@residuals / [email protected]
# частные распределения остатковmean <- c(0,0); sd <- c(1,1); nu <- c(1.25,1.3)xi <- c(1,smi.gfit@fit$par["skew"])
cdf <- matrix(rep(0,times=2*T),nrow=T,ncol=2) for (i in 1:2) cdf[,i] <- psged(z[,i],mean=mean[i], sd=sd[i],nu=nu[i],xi=xi[i])
«Модель copula–GARCH» в R
# подгонка копулnorm.fit <- fitCopula(cdf,copula=norm.cop)stud.fit <- fitCopula(cdf,copula=stud.cop)gumb.fit <- fitCopula(cdf,copula=gumb.cop)clay.fit <- fitCopula(cdf,copula=clay.cop)
# метод Монте-Карлоcdf.sim <- rcopula(n=N,copula=stud.fit@copula)
z.sim <- matrix(rep(0,times=2*N),nrow=N,ncol=2)for (i in 1:2) z.sim[,i] <- qsged(cdf.sim[,i], mean=mean[i],sd=sd[i],nu=nu[i],xi=xi[i])
frc1 <- predict(dax.gfit,n.ahead=1)frc2 <- predict(smi.gfit,n.ahead=1)
mu <- c(frc1[,1],frc2[,1])sigma <- c(frc1[,3],frc2[,3])
Оценкафинансовогориска
# модельные доходности портфеляprt.sim <- w[1]*(mu[1]+sigma[1]*z.sim[,1]) + w[2]*(mu[2]+sigma[2]*z.sim[,2])
# измерители рискаprt.sim <- sort(prt.sim)VaR <- prt.sim[alpha*N]ES <- mean(prt.sim[1:(alpha*N-1)])
VaR -0.017
ES -0.026
Домашнеезадание
• рассчитать показатели VaR и ES для портфеля финансовых активов
• написать комментарии
Исходные данные – EuStockMarkets (кроме пары «DAX-SMI»)
Бонусные задания (необязательные):• построить кривую VaR • провести тест Купика и рассчитать значения функций
потерь