[R-br] Simulação de distribuição bivariada

Rodrigo Coster rcoster em gmail.com
Terça Junho 19 17:04:16 BRT 2012


Caros,

o R tem alguma função para simulação de distribuições bivariadas?

Seguem as funções densidades e distribuição da distribuição que tenho
intesse em simular (u e v são as variaveis, tauU e tauL os parametros,
todos no intervalo (0,1))

dsjc <- function(u,v,tauU,tauL) {

 ## Adaptado do Código para Matlab de Andrew Patton -
http://publicecondukeedu/~ap172/codehtml
 k1 =  1/log2(2-tauU)
 k2 = -1/log2(tauL)
 CL1 = ((1 - (1 - u)^k1)^(k2 - 1)* (1 - u)^(k1 - 1)*(-1 + k1*(k2* (-1 + (-1
+ (1 - (1 - u)^k1)^(-k2) + (1 - (1 - v)^k1)^(-k2))^(k2^(-1))) + (-1 + (1 -
(1 - u)^k1)^(-k2) + (1 - (1 - v)^k1)^(-k2))^(k2^(-1))))* (1 - (-1 + (1 - (1
- u)^k1)^(-k2) + (1 - (1 - v)^k1)^(-k2))^(-k2^(-1)))^(k1^(-1))* (1 - (1 -
v)^k1)^(k2 - 1)* (1 - v)^(k1 - 1))
 CL2 = (((-1 + (-1 + (1 - (1 - u)^k1)^(-k2) + (1 - (1 -
v)^k1)^(-k2))^(k2^(-1)))^2) * ((1 - (1 - u)^k1)^k2 + (1 - (1 - v)^k1)^k2 -
(1 - (1 - u)^k1)^k2* (1 - (1 - v)^k1)^k2)^2)
 CL1 = CL1/CL2

 k1 =  1/log2(2-tauL)
 k2 = -1/log2(tauU)
 u  = 1-u
 v  = 1-v
 CL3 = ((1 - (1 - u)^k1)^(k2 - 1)* (1 - u)^(k1 - 1)*(-1 + k1*(k2* (-1 + (-1
+ (1 - (1 - u)^k1)^(-k2) + (1 - (1 - v)^k1)^(-k2))^(k2^(-1))) + (-1 + (1 -
(1 - u)^k1)^(-k2) + (1 - (1 - v)^k1)^(-k2))^(k2^(-1))))* (1 - (-1 + (1 - (1
- u)^k1)^(-k2) + (1 - (1 - v)^k1)^(-k2))^(-k2^(-1)))^(k1^(-1))* (1 - (1 -
v)^k1)^(k2 - 1)* (1 - v)^(k1 - 1))
 CL4 = (((-1 + (-1 + (1 - (1 - u)^k1)^(-k2) + (1 - (1 -
v)^k1)^(-k2))^(k2^(-1)))^2) * ((1 - (1 - u)^k1)^k2 + (1 - (1 - v)^k1)^k2 -
(1 - (1 - u)^k1)^k2* (1 - (1 - v)^k1)^k2)^2)
 CL3 = CL3/CL4
 CL  = 0.5*(CL1+CL3)


 return(CL)
}


psjc <- function(U,V,tauU,tauL) {

 ## Adaptado do Código para Matlab de Andrew Patton -
http://publicecondukeedu/~ap172/codehtml
 K =  1/log2(2-tauU);
 G = -1/log2(tauL);
 out1 = 1-((1-(((1-((1-U)^K))^(-G))+((1-((1-V)^K))^(-G))-1)^(-1/G))^(1/K));
 K =  1/log2(2-tauL); # switching the upper and lower measures
 G = -1/log2(tauU);
 U = 1-U;
 V = 1-V;
 out2 = (1-U) + (1-V) - 1 +
1-((1-(((1-((1-U)^K))^(-G))+((1-((1-V)^K))^(-G))-1)^(-1/G))^(1/K));
 out1 = 0.5*(out1+out2);
 return(out1)
}
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120619/c83c6a52/attachment.html>


Mais detalhes sobre a lista de discussão R-br