Ola,<div>para simular uma normal bivariada tem-se</div><div><br></div><div><div>library(tmvtnorm)</div><div>dado_simulado <- rmvnorm(n, mean=media, sigma=sigma)</div><div><br></div><div>em que n é tamanho da sua amostra simulada</div>
<div>media é um vetor de medias das variaveis X1 e X2</div><div>sigma é uma matriz de covariancias das variaveis X1 e X2.</div><div><br></div><div>para maiores informações tente ?tmvtnorm</div><div><br></div><div>Espero ter ajudado.</div>
<div><br></div><div><br></div><br><div class="gmail_quote">Em 19 de junho de 2012 17:04, Rodrigo Coster <span dir="ltr"><<a href="mailto:rcoster@gmail.com" target="_blank">rcoster@gmail.com</a>></span> escreveu:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Caros,<br><br>o R tem alguma função para simulação de distribuições bivariadas?<br><br>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))<br>
<br>dsjc <- function(u,v,tauU,tauL) {<br><br> ## Adaptado do Código para Matlab de Andrew Patton - <a href="http://publicecondukeedu/~ap172/codehtml" target="_blank">http://publicecondukeedu/~ap172/codehtml</a><br> k1 = 1/log2(2-tauU)<br>
k2 = -1/log2(tauL)<br> 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))<br>
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)<br> CL1 = CL1/CL2<br><br> k1 = 1/log2(2-tauL)<br>
k2 = -1/log2(tauU)<br> u = 1-u<br> v = 1-v<br> 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))<br>
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)<br> CL3 = CL3/CL4<br> CL = 0.5*(CL1+CL3)<br>
<br><br> return(CL)<br>}<br><br><br>psjc <- function(U,V,tauU,tauL) {<br><br> ## Adaptado do Código para Matlab de Andrew Patton - <a href="http://publicecondukeedu/~ap172/codehtml" target="_blank">http://publicecondukeedu/~ap172/codehtml</a><br>
K = 1/log2(2-tauU);<br> G = -1/log2(tauL);<br> out1 = 1-((1-(((1-((1-U)^K))^(-G))+((1-((1-V)^K))^(-G))-1)^(-1/G))^(1/K));<br> K = 1/log2(2-tauL); # switching the upper and lower measures<br> G = -1/log2(tauU);<br> U = 1-U;<br>
V = 1-V;<br> out2 = (1-U) + (1-V) - 1 + 1-((1-(((1-((1-U)^K))^(-G))+((1-((1-V)^K))^(-G))-1)^(-1/G))^(1/K));<br> out1 = 0.5*(out1+out2);<br> return(out1)<br>}<br><br><br>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>
<br style="font-family:Tahoma;font-size:13px"><font face="'Times New Roman'" size="4">Natália da Silva Martins<br>Bacharel em Estatística - Universidade Estadual de Maringá/ UEM<br>Mestranda em Estatística e Experimentação Agronômica - ESALQ/ USP<br>
Contato: (19) 8306-4743</font> <br><div><br></div><br>
</div>