[R-br] Simulação de variáveis correlacionadas usando Cópulas
Gabriel Bruno de Lemos
gblemos em usp.br
Segunda Novembro 19 20:33:11 BRST 2012
Boa noite a todos! Já tem algum tempo que estou tentando aprender um pouco
mais sobre cópulas... e confesso que não está sendo a coisa mais simples do
mundo.
Sinto falta de alguma aplicação (rotina no R) mais simples mostrando uma
utilização aplicada deste tipo de função (principalmente para casos acima de
2 dimensões). Utilizo-a no meu trabalho para precificar portfólios... mas em
um software caixa preta...
Hoje consegui rodar um pequeno exemplo de uma das possíveis utilidades
destas cópulas. Gerar variáveis aleatórias correlacionadas... com as
marginais possuindo QUALQUER função de distribuição de probabilidade (não
ficando restrito ao caso da normal multivariada).
Parece que está funcionando legal... se alguém tiver mais alguns exemplos ou
possíveis correções na rotina abaixo será bem vinda!
Abs
require(copula)
## Primeiro define-se a cópula a ser utilizada – “t” neste caso. O comando
dispstr=”un” especifica que desejo informar 3 correlações diferentes na
matriz de correlações.
myCop.t <- ellipCopula(family = "t", dim = 3, dispstr = "un",
param = c(0.8, 0.5,0.2), df = 8)
## Definida a cópula, especifico quais marginais desejo que minha função
possua. Neste caso defini exponencial, normal e qui-quadrado.
myMvd <- mvdc(copula = myCop.t, margins = c("exp", "norm","chisq"),
paramMargins = list(list(rate= 2), list(mean = 0,sd = 1),
list(df=5)))
x.samp <- rMvdc(10000,myMvd)
cor(x.samp)
par(mfrow=c(1,3))
hist(x.samp[,1])
hist(x.samp[,2])
hist(x.samp[,3])
Gabriel Bruno de Lemos
Mestrando em Estatística e Experimentação Agronômica
Esalq / Usp
skype: gb_lemos
msn: gb_lemos em hotmail.com
(19) 8212-6999
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20121119/ce550372/attachment.html>
Mais detalhes sobre a lista de discussão R-br