[R-br] Pedindo ajuda para simulação em R
Rodrigo Coster
rcoster em gmail.com
Domingo Agosto 21 14:43:49 BRT 2011
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 em 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 em 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 em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20110821/1e2089f6/attachment.html>
Mais detalhes sobre a lista de discussão R-br