Pedindo ajuda para simulação em R

1) Este algoritmo da distribuição geométrica(p) Conhecendo a cdf: F(x)=1-(1-p)^x+1 F(x-1)=1-(1-p)^x Usando o método da transformada inversa F(x-1)<R<=F(x) 1-(1-p)^x<R<=1-(1-p)^x+1 (1-p)^x+1<R-1<=1-(1-p)^x ln(1-R)/ln(1-p)-1<=X<ln(1-R)/ln(1-p) X=[(ln(1-R)/ln(1-p))-1] 2)Gerar a distribuição de Poisson através do processo de Poisson que pode ser simulado gerando variáveis aleatórias exponenciais até sua soma exceder 1. Lembrar o método da inversa para distribuição exponencial X1= -1/A(ln(Ri)) Então A1+....+Ax<=1<A1+A2+....+Ax+Ax+1 torna-se -somatória de i=1 até x(1/A(ln(Ri)<=1< -somatória(i=1 até x+1(1/lambda(ln(Ri)) somatória de i=1 até x((ln(Ri)>=lambda>somatória(i=1 até x+1(ln(Ri)) ln(produtória(i=1 até x(Ri)>= -lambda>ln(produtória(i=1 até x(Ri) (produtória(i=1 até x(Ri)>=e^ -lambda>(produtória(i=1 até x(Ri) Isto leva ao algoritmo da rejeição Usando (produtória(i=1 até x(Ri)>=e^ -lambda>(produtória(i=1 até x(Ri) Passo 1: N=0 ; P=1 Passo 2: Gere número aleatório Rn-1 e substitua P por P*Rn-1 Passo 3: Se P<e^-lambda, então aceita N=n, senão rejeita o n, soma n por um e retorne ao passo 2. 3) Gerar a distribuição de Pareto que é definida por f(x|alfa)=alfa*x^-alfa-1 sobre (1,infinito). Mostre que pode ser gerada como potencia -1/alfa de uma variável uniforme. Eu tentei fazer a inversa mas não sei se é isto: a funçao de distribuição deve ser F(x)=1-x^-alfa e ao fazer a tranformada inversa: log(1-x)=log(u)/-alfa 4)Gerar a distribuição Beta onde U e V são i.i.d e a distribuição é (U^1/alfa)/((U^1/alfa)+V^(1/Beta)), condicional em U^1/alfa+V^1/B<=1.Tem que ser gerado com a potencia -1/alfa de uma uniforme. Desde já agradeço [edit] -------------------------------------------------------------------------------- _______________________________________________ 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.

Então cara, no 1o problema tu já tem a fórmula de X, então é só tocar na linguagem do R. No caso, teu R é um numero vindo da Uniforme[0,1] e p é o parâmetro conhecido. Por exemplo: p <- .8 x <- ((log(1-runif(1))/log(1-p))-1) Só que no caso assim tu gera números reais entre -1 e Inf, e o dominio da geométrica são só os numeros naturais, então tem que arredondar. p <- .8 ceiling(((log(1-runif(1))/log(1-p))-1)) Agora tu pode comparar com o rgeom() do R para ver se ta funcionando direito: table(rgeom(10000,p))/10000 table(ceiling(((log(1-runif(10000))/log(1-p))-1)))/10000 Na 2 tu faz com while. Na 3 tu errou os cálculos. f(x) = alfa / x ^ (alfa+1), dai tu acha que F(x) = x ^ -alfa Na 4 tu faz com while tb 2011/8/21 Mauro Sznelwar <sznelwar@uol.com.br>
** 1) Este algoritmo da distribuição geométrica(p)
Conhecendo a cdf: F(x)=1-(1-p)^x+1 F(x-1)=1-(1-p)^x Usando o método da transformada inversa F(x-1)<R<=F(x) 1-(1-p)^x<R<=1-(1-p)^x+1 (1-p)^x+1<R-1<=1-(1-p)^x ln(1-R)/ln(1-p)-1<=X<ln(1-R)/ln(1-p) X=[(ln(1-R)/ln(1-p))-1]
2)Gerar a distribuição de Poisson através do processo de Poisson que pode ser simulado gerando variáveis aleatórias exponenciais até sua soma exceder 1. Lembrar o método da inversa para distribuição exponencial X1= -1/A(ln(Ri)) Então A1+....+Ax<=1<A1+A2+....+Ax+Ax+1 torna-se -somatória de i=1 até x(1/A(ln(Ri)<=1< -somatória(i=1 até x+1(1/lambda(ln(Ri)) somatória de i=1 até x((ln(Ri)>=lambda>somatória(i=1 até x+1(ln(Ri)) ln(produtória(i=1 até x(Ri)>= -lambda>ln(produtória(i=1 até x(Ri) (produtória(i=1 até x(Ri)>=e^ -lambda>(produtória(i=1 até x(Ri) Isto leva ao algoritmo da rejeição
Usando (produtória(i=1 até x(Ri)>=e^ -lambda>(produtória(i=1 até x(Ri) Passo 1: N=0 ; P=1 Passo 2: Gere número aleatório Rn-1 e substitua P por P*Rn-1 Passo 3: Se P<e^-lambda, então aceita N=n, senão rejeita o n, soma n por um e retorne ao passo 2. 3) Gerar a distribuição de Pareto que é definida por f(x|alfa)=alfa*x^-alfa-1 sobre (1,infinito). Mostre que pode ser gerada como potencia -1/alfa de uma variável uniforme. Eu tentei fazer a inversa mas não sei se é isto: a funçao de distribuição deve ser F(x)=1-x^-alfa e ao fazer a tranformada inversa: log(1-x)=log(u)/-alfa 4)Gerar a distribuição Beta onde U e V são i.i.d e a distribuição é (U^1/alfa)/((U^1/alfa)+V^(1/Beta)), condicional em U^1/alfa+V^1/B<=1.Tem que ser gerado com a potencia -1/alfa de uma uniforme. Desde já agradeço
[edit<http://en.wikipedia.org/w/index.php?title=Pareto_distribution&action=edit§ion=21> ]
------------------------------
_______________________________________________ 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.
_______________________________________________ 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.

Muito obrigado pelas dicas, mas no quarto problema, na distribuição de Pareto não deu certo, levou em conta o domínio 1 até infinito para calcular a função de distribuição? Então cara, no 1o problema tu já tem a fórmula de X, então é só tocar na linguagem do R. No caso, teu R é um numero vindo da Uniforme[0,1] e p é o parâmetro conhecido. Por exemplo: p <- .8 x <- ((log(1-runif(1))/log(1-p))-1) Só que no caso assim tu gera números reais entre -1 e Inf, e o dominio da geométrica são só os numeros naturais, então tem que arredondar. p <- .8 ceiling(((log(1-runif(1))/log(1-p))-1)) Agora tu pode comparar com o rgeom() do R para ver se ta funcionando direito: table(rgeom(10000,p))/10000 table(ceiling(((log(1-runif(10000))/log(1-p))-1)))/10000 Na 2 tu faz com while. Na 3 tu errou os cálculos. f(x) = alfa / x ^ (alfa+1), dai tu acha que F(x) = x ^ -alfa Na 4 tu faz com while tb 2011/8/21 Mauro Sznelwar <sznelwar@uol.com.br> 1) Este algoritmo da distribuição geométrica(p) Conhecendo a cdf: F(x)=1-(1-p)^x+1 F(x-1)=1-(1-p)^x Usando o método da transformada inversa F(x-1)<R<=F(x) 1-(1-p)^x<R<=1-(1-p)^x+1 (1-p)^x+1<R-1<=1-(1-p)^x ln(1-R)/ln(1-p)-1<=X<ln(1-R)/ln(1-p) X=[(ln(1-R)/ln(1-p))-1] 2)Gerar a distribuição de Poisson através do processo de Poisson que pode ser simulado gerando variáveis aleatórias exponenciais até sua soma exceder 1. Lembrar o método da inversa para distribuição exponencial X1= -1/A(ln(Ri)) Então A1+....+Ax<=1<A1+A2+....+Ax+Ax+1 torna-se -somatória de i=1 até x(1/A(ln(Ri)<=1< -somatória(i=1 até x+1(1/lambda(ln(Ri)) somatória de i=1 até x((ln(Ri)>=lambda>somatória(i=1 até x+1(ln(Ri)) ln(produtória(i=1 até x(Ri)>= -lambda>ln(produtória(i=1 até x(Ri) (produtória(i=1 até x(Ri)>=e^ -lambda>(produtória(i=1 até x(Ri) Isto leva ao algoritmo da rejeição Usando (produtória(i=1 até x(Ri)>=e^ -lambda>(produtória(i=1 até x(Ri) Passo 1: N=0 ; P=1 Passo 2: Gere número aleatório Rn-1 e substitua P por P*Rn-1 Passo 3: Se P<e^-lambda, então aceita N=n, senão rejeita o n, soma n por um e retorne ao passo 2. 3) Gerar a distribuição de Pareto que é definida por f(x|alfa)=alfa*x^-alfa-1 sobre (1,infinito). Mostre que pode ser gerada como potencia -1/alfa de uma variável uniforme. Eu tentei fazer a inversa mas não sei se é isto: a funçao de distribuição deve ser F(x)=1-x^-alfa e ao fazer a tranformada inversa: log(1-x)=log(u)/-alfa 4)Gerar a distribuição Beta onde U e V são i.i.d e a distribuição é (U^1/alfa)/((U^1/alfa)+V^(1/Beta)), condicional em U^1/alfa+V^1/B<=1.Tem que ser gerado com a potencia -1/alfa de uma uniforme. Desde já agradeço .
participantes (2)
-
Mauro Sznelwar
-
Rodrigo Coster