Simulação de distribuição bivariada

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) }

Ola, para simular uma normal bivariada tem-se library(tmvtnorm) dado_simulado <- rmvnorm(n, mean=media, sigma=sigma) em que n é tamanho da sua amostra simulada media é um vetor de medias das variaveis X1 e X2 sigma é uma matriz de covariancias das variaveis X1 e X2. para maiores informações tente ?tmvtnorm Espero ter ajudado. Em 19 de junho de 2012 17:04, Rodrigo Coster <rcoster@gmail.com> escreveu:
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) }
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Natália da Silva Martins Bacharel em Estatística - Universidade Estadual de Maringá/ UEM Mestranda em Estatística e Experimentação Agronômica - ESALQ/ USP Contato: (19) 8306-4743

Sim, seria ótimo se a distribuição que tenho interesse fosse a normal, mas nao é o caso 2012/6/19 Natalia Martins <nsmbarreto@gmail.com>
Ola, para simular uma normal bivariada tem-se
library(tmvtnorm) dado_simulado <- rmvnorm(n, mean=media, sigma=sigma)
em que n é tamanho da sua amostra simulada media é um vetor de medias das variaveis X1 e X2 sigma é uma matriz de covariancias das variaveis X1 e X2.
para maiores informações tente ?tmvtnorm
Espero ter ajudado.
Em 19 de junho de 2012 17:04, Rodrigo Coster <rcoster@gmail.com> escreveu:
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) }
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
--
Natália da Silva Martins Bacharel em Estatística - Universidade Estadual de Maringá/ UEM Mestranda em Estatística e Experimentação Agronômica - ESALQ/ USP Contato: (19) 8306-4743
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

Se ela tiver um nome RSiteSearch("my target distribution") À disposição. Walmes. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================

Ja procurei no RSiteSearch, rseek e google e não encontrei nada... Se quiser tentar a sorte, o nome é Symmetrized Joe-Clayton
participantes (3)
-
Natalia Martins
-
Rodrigo Coster
-
Walmes Zeviani