Beruflich Dokumente
Kultur Dokumente
DEIO - FCUL
1 Ano - 20 Semestre - 2012/2013
0
Introduo
88 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
89 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
89 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
89 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
89 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
90 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
Algoritmo:
input: m > 1 (mdulo),
a {1, 2, , m 1} (multiplicativo)
c {0, 1, , m 1} (incremento)
X0 {0, 1, , m 1} (a semente)
output: X1 , X2 , X3 , uma sequncia de NPA's
1: for n = 1, 2, 3, do
2: Xn (aXn1 + c ) mod m
3: output Xn
4: end for
91 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
92 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
93 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
94 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
Xn
Un =
m
onde {Xn }nN o output do gerador congruencial.
95 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
97 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
99 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
100 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
101 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
Demonstrao.
P [X x ] = P [FX1 (U ) x ] = P [inf {t R|FX (t ) U } x ]; ora
inf {t R|FX (t ) U } x sse FX (x ) U , pelo que
P [X x ] = P [U FX (x )] = FX (x ).
102 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
Exemplo (2.1)
Para gerar a va com fdp f (x ) = 3x 2 , x [0, 1], basta notar que
para x [0, 1[, F (x ) = x 3 que invertvel, F 1 (u ) = u 1/3 para
u (0, 1).
X = U 1/3 , U U[0,1]
103 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
Modelo Descrio
rxxx random generation
dxxx density function
pxxx cumulative probability function
qxxx quantile function
104 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
Modelos
Uniform runif dunif punif qunif
Normal rnorm dnorm pnorm qnorm
t-Student t rt dt pt qt
Exponential rexp dexp pexp qexp
Log normal rlnorm dlnorm plnorm qlnorm
Beta rbeta dbeta pbeta qbeta
Binomial rbinom dbinom pbinom qbinom
Poisson rpois dpois ppois qpois
105 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
# f.m.p.BINOMIAL(10,0.5)
t<-seq(0,k,by=1)
lines(t,dbinom(t,size=k, prob=0.5),type="h", lwd=3,col="red")
text(k/2,0.28,"f.m.p.BINOMIAL(10,0.5)", cex=1, font=2,col="red")
#f.m.p.BINOMIAL(20,0.25)
t<-seq(0,k,by=1)
lines(t,dbinom(t,size=k, prob=0.25),type="h", lwd=3,col="red")
text(k/2,0.28,"f.m.p.BINOMIAL(20,0.25)", cex=1, font=2,col="red")
106 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
107 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
n <- 1000
u <- runif(n)
x <- u^(1/3)
# density histogram of sample
hist(x, prob = TRUE, main = bquote(f(x)==3*x^2))
y <- seq(0, 1, .01)
lines(y, 3*y^2) #density curve f(x)
108 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
109 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
110 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
os pontos de descontinuidade de FX (x );
para cada valor gerado de X faa-se
1 gerar u do modelo U U[0,1]
2 sair com xi se FX (xi 1 ) < u FX (xi )
111 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
Mtodo de TI Bernoulli(p )
Exemplo (2.4 Bernoulli(p ) )
Gerar pelo Mtodo TI 10 valores do modelo Bernoulli (p = 0.4),
calcular a mdia e a varincia.
FX (0) = 1 p e FX (1) = 1; ento FX1 (u ) = 1, se u > 0.6 e FX1 (u ) = 0, se u 0.6.
> p <- 0.4
> n <- 20
> u <- runif(n)
> u>0.6
[1] FALSE TRUE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE FALSE
[13] TRUE FALSE FALSE TRUE FALSE FALSE FALSE TRUE
> x <- as.integer(u > 0.6) #(u > 0.6) is a logical vector
> x
[1] 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1
> mean(x) # valor terico E[X]=0.4=p
[1] 0.4
> var(x) # valor terico var[X]=0.24=(0.4)(0.6)=p(1-p)
[1] 0.2526316
112 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
modelo Bernoulli(p ) em R
113 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
115 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
119 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
e x
fX (x ) = P [X = x ] = , x = 0, 1, 2, , > 0
x!
o mtodo TI pode ser utilizado semelhante ao Logaritmico.
Exerccio:
Para o modelo de Poisson() fazer um programa semelhante ao
caso anterior e comparar ainda com os NPA's Poisson gerados pelo
R atravs da instruo rpois().
120 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
Proposio
Dados {Xi }, i 1, NPA's exponenciais unitrios independentes,
N :="maior inteiro tal que N X Poisson().
P
i =1 i
121 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
122 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
123 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
poisson<- function(n,lambda){
N<-integer(n)
for(i in 1:n) {
Tn=-log(runif(100))/lambda
Sn<-cumsum(Tn)
N[i]<- min(which(Sn>1))-1
}
return(N)
}
> X<-poisson(1000,5)
> mean(X)
[1] 5.048
> var(X)
[1] 5.060757
124 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
Exerccio
Implemente em R um algoritmo para gerao de n = 1000 NPA's
Poisson(), sem usar a instruo rpois.
Calcule a mdia e varincia amostrais de forma a comparar com .
Represente gracamente a fmp do modelo e o grco de barras
associado amostra gerada.
125 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
X[a,b] := X |a X b
127 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
128 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
131 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
133 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
134 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
134 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
134 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
134 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
134 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
135 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
n <- 200
a <- 2
b <- 2
u <- rgamma(n, shape=a, rate=1)
v <- rgamma(n, shape=b, rate=1)
x <- u / (u + v)
q <- qbeta(ppoints(n), a, b)
qqplot(q, x, cex=0.5, xlab="Beta(2, 2)", ylab="amostra")
abline(0, 1,col="red")
137 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
n <- 1000
nu <- 2
X <- matrix(rnorm(n*nu), n, nu)^2 # matriz dos quadrados das N(0,1)
# mtodo 1: Soma por linhas da matriz anterior
y <- rowSums(X)
# mtodo 2
y <- apply(X, MARGIN=1, FUN=sum) # vector de dimenso n
139 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
140 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
Exemplo (5.2)
Gerar n = 1000 de NPA's para cada uma das seguintes situaes e
comparar com os respectivos modelos tericos.
1
1 2
X := X1 + X2 ,
3 3
sendo X1 N (0, 1) e X2 N (3, 1) independentes.
2
1 2
fX (x ) = fX1 (x ) + fX2 (x ),
3 3
sendo X1 N (0, 1) e X2 N (3, 1).
141 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
Algoritmo NPA X := 13 X1 + 23 X2
1. Gerar x1 NPA N(0,1)
2. Gerar x2 NPA N(3,1)
3. Sada: x := 13 x1 + 23 x2
142 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
143 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
144 / 145
2.1 Geradores de NPA's
2.2 Mtodo de Transformao Inversa
2. Gerao de NPA's (Nmeros Pseudo-Aleatrios) 2.3 Mtodo de Rejeio
2.4 Mtodos de Transformao
2.5 Somas e Misturas
145 / 145