• Nenhum resultado encontrado

1 MAE0399 - An´alise de Dados e Simula¸c˜ao - 1

N/A
N/A
Protected

Academic year: 2022

Share "1 MAE0399 - An´alise de Dados e Simula¸c˜ao - 1"

Copied!
12
0
0

Texto

(1)

MAE0399 - An´alise de Dados e Simula¸c˜ao - 1o semestre de 2018 - IME - USP 1a Lista de Exerc´ıcios

1) Simulando de uma X ∼Poisson(λ) . Considerepi =P(X =i) a) Verifique a rela¸c˜ao recursiva apresentada nos slides de aula:

pi+1 = λ

i+ 1pi, i= 0,1,2,3,· · · Solu¸c˜ao: Assumindop0 =e−λ e usando a forma recursiva,

p1 = λ

1p0 =λe−λ p2 = λ

1 + 1p1 = λ2 2∗1e−λ p3 = λ

2 + 1p2 = λ3 3∗2∗1e−λ ...

pK = λ

(K −1) + 1pK−1 = λK K!e−λ

Portanto, temos que essa rela¸c˜ao recursiva gera probabilidades de uma Poisson com parˆametro λ.

b) Implemente o algoritmo indicado nos slides usando a linguagem R . Considere dois valores distintos deλ a sua escolha.

Solu¸c˜ao: Implementa¸c˜ao para qualquer valor de λ: C´odigo R:

r.pois <- function(N, lambda ){

x <- numeric(N) for(j in 1:N){

U <- runif(1)

Pois <- exp(-lambda) FPois <- Pois ; i <- 0 while(U >= FPois){

Pois <- lambda*Pois/(i+1) FPois <- Pois + FPois i <- i+1 }

x[j] <- i } return(x)}

(2)

c) Use o seu algoritmo para simular uma amostra de tamanho n = 100 de X.

Obtenha a m´edia da amostra e compare com o verdadeiro valor deλ. Fa¸ca um gr´afico de barras para os valores simulados usando como altura as frequˆencias relativas observadas e compare com as probabilidades exatas da Poisson.

Solu¸c˜ao: Foi gerada uma amostra de tamanho 100 de uma Poisson com parˆametro igual a 2 e o valor amostral da m´edia e da variˆancia foram respectiva- mente 1.88 e 2.167. As estimativas da m´edia, da variˆancia e das probabilidades

s˜ao relativamente pr´oximas dos valores reais e poderiam ser melhoradas com o aumento do tamanho da amostra.

d) Repita o item(c), usando a fun¸c˜aorpois do R e compare os resultados e tempo de processamento.

Usando a fun¸c˜ao system.time() obtemos que a fun¸c˜ao r.pois apresentou um tempo de execu¸c˜ao de 0.001 segundos e a fun¸c˜ao rpois apresentou um tempo de execu¸c˜ao de 0.0 segundos. A fun¸c˜ao padr˜ao do R foi mais r´apida do que a

(3)

fun¸c˜ao apresentada no item b). As estimativas da m´edia e da variˆancia para as duas fun¸c˜oes s˜ao:

Fun¸c˜ao E(X) Var(X) r.pois 2.1 2.60

rpois 2.13 2.04

2) Simule o valor da constante π usando o algoritmo de simula¸c˜ao proposto em sala.

Apresente uma tabela com os valores estimados para diferentes tamanhos de amos- tras.

Solu¸c˜ao: O valor de π at´e a quarta casa decimal ´e 3.1415 e para simular o valor de π podemos proceder da seguinte forma:

Para calcular um valor aproximado de π considere que o vetor aleat´orio (X,Y) ´e uniformemente distribu´ıdo em um quadrado de ´areaAQ= 4 definido pelos pontos (- 1,-1),(-1,1), (1,-1) e (1,1). Considere tamb´em que um c´ırculo de raio 1 (X2+Y2 ≤1), cujo a ´area ´e Acirc =π, est´a circunscrito a esse quadrado.

Com tais informa¸c˜oes, e desde que o vetor (X,Y) esteja uniformemente distribu´ıdo no quadrado, a probabilidade de um ponto estar dentro do c´ırculo ´e dada por,

Pcirc =P(X2+Y2 ≤1) = Acirc

AQ = π 4.

Assumindo que os pontos tenham a mesma probabilidade de atingir qualquer regi˜ao da ´area definida por −1 ≤ X ≤ 1 e −1 ≤ Y ≤ 1 podemos assumir que X ∼ U(−1,1) e Y ∼ U(−1,1). Deste modo, podemos reescrever as vari´aveis aleat´orias independentes X e Y em fun¸c˜ao de U1 ∼(0,1) e U2 ∼(0,1) respectivamente,

X = 2U1 −1, Y = 2U2 −1.

Para obter o valor aproximado de π temos que definir a seguinte vari´avel aleat´oria

I =





1, se X2+Y2 ≤1 0, se c.c.

(1)

Assim, I ∼ Bernoulli(π4) e o valor de π aproximado ´e dado simulando essa distri- bui¸c˜ao a partir de (1) e calculando sua m´edia de modo queπ = 4E(I)≈4∗1

n

n

X

i=1

Ii.

(4)

C´odigo R:

n <- c(100,500,1000,10^4, 10^7) pi_aprox <- numeric(5)

for(i in 1:5){

U1 <- runif(n[i]) U2 <- runif(n[i])

I <- (2*U1-1)^2 + (2*U2-1)^2

pi_aprox[i] <- 4*length(I[I<= 1])/n[i]

}

n 100 500 1000 104 107

Aproxima¸c˜ao doπ 3.0000 3.1440 3.1475 3.1488 3.1411

3) Use simula¸c˜ao para aproximar as integrais abaixo, partindo sempre da simula¸c˜ao de um n´umero aleat´orio b´asico, isto ´e, de U ∼U(0,1). Compare com os resultados exatos (se vocˆe puder obtˆe-los).

a) R1

0(1−x2)3/2dx Solu¸c˜ao:

Solu¸c˜ao da integral:

Fazendo a transforma¸c˜aou=x2, chegaremos a seguinte integral:

1 2

Z 1 0

(1−u)3/2u−1/2du= 1

2B(5/2,1/2) = 1 2

Γ(5/2)Γ(1/2)

Γ(3) = 3π

16 = 0.5890486, em que Γ(1/2) =√

π, Γ(5/2) = 3

π

4 e Γ(3) = 2.

M´etodo de Monte Carlo:

Z 1 0

(1−x2)3/2dx=E((1−X2)3/2)≈ 1 n

n

X

i=1

(1−Xi2)3/2. em que X∼U(0,1).

(5)

C´odigo R:

n <- 10^7 X <- runif(n)

mean(((1-X^2))^(3/2)) [1] 0.5892025

Comparando com o valor exato, temos que ´e uma boa aproxima¸c˜ao at´e a terceira casa decimal.

b) R2

−2ex+x2dx

Solu¸c˜ao: No item b) devemos aplicar uma transforma¸c˜ao de vari´avel de modo que o espa¸co de integra¸c˜ao seja o espa¸co (0,1). Fazendo a transforma¸c˜ao u =

x+2

4 chegaremos a seguinte integral,

Z 2

−2

ex+x2dx= 4 Z 1

0

exp 4u−2 + (4u−2)2

du = 4E exp 4U −2 + (4U−2)2)

≈ 4 n

n

X

i=1

exp 4Ui−2 + (4Ui−2)2).

em que U ∼U(0,1).

C´odigo R:

n <- 10^7 U <- runif(n)

4*mean(exp(4*U - 2 +(4*U - 2)^2 )) [1] 93.11628

c) R1 0

R1

0 exp(x+y)2dxdy Solu¸c˜ao

No item c) podemos ver a integral como sendo Z 1

0

Z 1 0

exp(x+y)2dxdy =EXY(exp(X+Y)2)≈ 1 n2

n

X

i=1 n

X

j=1

exp(Xi+Yj)2 em que X∼U(0,1) e Y ∼U(0,1).

C´odigo R:

(6)

n <- 10^4 x <- runif(n) y <- runif(n)

mean(sapply(x,FUN = function(x) exp((x + y)^2))) [1] 5.017221

d) R2

0 exp(x2/2)dx

Solu¸c˜ao: No item d) devemos fazer a transforma¸c˜ao u = x2. E assim, chega- remos a seguinte integral,

Z 2 0

exp(x2/2)dx= 2 Z 1

0

exp(2u2)du= 2E(exp(2U2))≈ 2 n

n

X

i=1

exp(2Ui2) Para encontrar o valor aproximado devemos executar o seguinte c´odigo no R, C´odigo R:

n <- 10^7 U <- runif(n) 2*mean(exp(2*U^2)) [1] 4.727395

4) Seja U ∼ U(0,1) use simula¸c˜ao para aproximar Cov(U, eU). Obtenha a resposta exata e compare com sua aproxima¸c˜ao.

Solu¸c˜ao:

Cov(U, eU) = E(U eU)−E(U)E(eU)

= 1− e−1

2 = 3−e

2 = 0.14085 C´odigo R:

n <- 10^7 U <- runif(n) cov(U,exp(U)) [1] 0.1408358

Como podemos ver, a aproxima¸c˜ao ´e boa at´e a quarta casa decimal.

(7)

5) A partir de um n´umero aleat´orio b´asico, apresente um algoritmo eficiente (ordenando as probabilidades) para simular da v.a. X abaixo.

X 2 4 6 8 10

Prob 0.10 0.30 0.40 0.15 0.05

a) Implemente o algoritmo e obtenha uma amostra de tamanho n = 100 dessa dis- tribui¸c˜ao. Compare as frequˆencias relativas observadas com as probabilidades exatas.

Solu¸c˜ao: As frequˆencias relativas para a amostra de tamanho 100 foram pr´oximas dos valores das probabilidades.

X 2 4 6 8 10

Frequˆencia relativa 0.09 0.29 0.45 0.12 0.05

b) Repetir (a) para n = 1000.

Solu¸c˜ao: As frequˆencias relativas com a amostra de tamanho 1000 foram de um modo geral mais pr´oximas dos valores das probabilidades.

X 2 4 6 8 10

Frequˆencia relativa 0.11 0.29 0.40 0.16 0.05

C´odigo R:

RX <- function(n){

px <- c(0.4,0.3,0.15,0.1,0.05) # porbabilidades ordenadas X <- c(6,4,8,2,10)

x <- numeric(n) Fx <- cumsum(px)

for(i in 1:n){ U <- runif(1) k = 1

while(U > Fx[k]){ k = k + 1 } x[i] = X[k] }

return(x)}

(8)

6) Um baralho possui 100 cartas numeradas 1,2, ...,100. As cartas s˜ao embaralhadas e ent˜ao retiradas, uma `a uma. Ocorre uma coincidˆencia quando a i-´esima carta aparece na i-´esima retirada, i = 1,2, ...,100. Escreva um programa para simular o processo e estimar a m´edia e variˆancia do total de coincidˆencias. Compare os valores simulados com os valores reais de m´edia e variˆancia

Solu¸c˜ao:

Primeiramente, calcularemos os valores reais da m´edia e da variˆancia. Considere as vari´aveis X1, ..., Xn, tais que:

x=





1,se ocorreu coincidˆencia na i-´esima carta 0,c.c

Temos que P(Xi = 1) = 1n e P(Xi = 1, Xj = 1) = (n−2)!n!

Desse forma, X1, ..., Xn s˜ao identicamente distribu´ıdas com distribui¸c˜aoBer(1/n) e n˜ao s˜ao independentes. Seja N =

n

X

i=1

Xi o n´umero de coincidˆencias obtidas.

E(N) =E n

X

i=1

Xi

=

n

X

i=1

E(Xi) =

n

X

i=1

1 n = 1 Como X1,· · · , Xn n˜ao s˜ao independentes temos que:

Cov(Xi, Xj) = E(XiXj)−E(Xi)E(Xj) =P(Xi = 1, Xj = 1)−P(Xi = 1)P(Xj = 1)

= (n−2)!

n! − 1

n2 = 1 n2(n−1) V ar(N) = V ar

n X

i=1

Xi

=

n

X

i=1

V ar(Xi) +

n

X

i=1

X

j=1 i6=j

Cov(Xi, Xj)

=

n

X

i=1

1 n

1− 1

n

+n(n−1) 1

n2(n−1) = 1− 1 n + 1

n = 1

O problema de embaralhamento das cartas pode ser relacionado ao problema de permuta¸c˜ao da sequˆencia 1,2,· · · ,100, uma vez que cada carta ´e retirada sem re- posi¸c˜ao. Utilizando o algoritmo descrito em aula para a simula¸c˜ao de permuta¸c˜oes aleat´orias, temos o seguinte algoritmo para simular o processo de embaralhamento das cartas.

(9)

1 Consideramos a sequˆencia P1,· · · , P100, tal que Pi =i, para i= 1,· · · ,100 2 Fa¸ca k= 100

3 Enquanto k >1 fa¸ca

4 Simule U ∼U nif(0,1) e fa¸caI =Int[k∗u] + 1 5 Troque os PI e Pk entre si

6 Fa¸ca k=k−1 C´odigo R

# Maneira 1

embaralhar <- function(n){

x <- seq(1:n) k <- n

while(k > 1){

u <- runif(1,0,1)

posicao <- floor(k*u)+1 aux <- x[posicao]

x[posicao] <- x[k]

x[k] <- aux k <- k-1 } return(x)

}

a <- seq(1:100) c<- vector() for(i in 1:1000){

x <- embaralhar(100) c[i] <- sum(x==a) }

> mean(c) [1] 0.968

> var(c) [1] 0.989966

(10)

# maneira 2

baralho <- 1:100

coincid <- numeric(10^7)

for(i in 1:10^7){ coincid[i] <- sum(sample(baralho,100) == baralho) }

> mean(coincid) [1] 1.000253

> var(coincid) [1] 1.000643

Como podemos ver, os valores simulados foram pr´oximos dos valores reais.

7) Usando o m´etodo da Transformada Inversa, derivar um algoritmo para gerar das vari´aveis aleat´orias com as seguintes fun¸c˜oes densidades de probabilidades. N˜ao precisa implementar no R

a) f(x) = e−1ex , 0≤x≤1.

Solu¸c˜ao: A distribui¸c˜ao acumulada do item a) ´e dada por, F(x) =

Z x 0

ey

e−1dy= ex−1 e−1 e sua inversa ´e dada por,

ex−1

e−1 = U

x = log(U(e−1) + 1), (2)

em que 0≤U ≤1. Assim, para gerar uma amosta da distribui¸c˜ao de X, basta gerar uma amostra deU ∼U(0,1) e aplicar em (2).

b) f(x) = x−22 , se 2≤x≤3 e f(x) = 2−x/32 ,se 3< x≤6

Solu¸c˜ao: Neste item, a distribui¸c˜ao acumulada est´a dividida em dois casos:

∗ Para 2≤x≤3

F(x) = Z x

2

y−2

2 dy= x2

4 −x+ 1

(11)

e

x2

4 −x+ 1 = U x2−4x+ 4(1−U) = 0

Resolvendo a equa¸c˜ao encontraremos duas ra´ızes, mas somente a raiz x= 2 + 2√

U ser´a usada, pois gera valores no intervalo 2 ≤ x ≤ 3, para 0≤U ≤1/4.

∗ Para 3 < x≤6 F(x) =

Z x 3

2−y/3

2 dy+F(3) =x− x2

12−3 + 9 12+1

4 =x− x2 12 −2 e

x− x2

12−2 = U x− x2

12 −(2 +U) = 0

Essa equa¸c˜ao possui duas ra´ızes, mas somente a raizx= 6−2p

3(1−U) = 6

1−q

1− 2+U3

ser´a usada, pois gera valores no intervalo 3 < x ≤ 6, para 1/4< U ≤1.

Portanto, para gerar uma amostra da distribui¸c˜ao deX basta gerar uma amos- tra da distribui¸c˜aoU ∼U(0,1) e aplicar em

x=





2 + 2√

U , se 0≤U ≤1/4 6−2p

3(1−U), se 1/4< U ≤1.

c) f(x) =e2x, sex≤0 e f(x) =e−2x, se x >0.

Solu¸c˜ao: A distribui¸c˜ao acumulada ´e,

F(x) =





e2x

2 , se x≤0 1− e−2x2 , se x >0

Invertendo a distribui¸c˜ao acumulada para cada caso, teremos que

x=





1

2log(2U), se 0≤U ≤ 12

12log(2(1−U)), se 12 < U ≤1 em que U ∼U(0,1) .

(12)

8) Deseja-se gerar de uma distribui¸c˜ao Gama com a seguinte densidade f(x) = 1

2x2e−x x >0.

Para isso, vamos usar o m´etodo de rejei¸c˜ao com proposta exponencial com taxa λ. Encontre o valor de λ que minimiza o n´umero esperado de itera¸c˜oes do algoritmo.

Solu¸c˜ao: Pelo m´etodo de rejei¸c˜ao, f(x)

g(x) =

1 2x2e−x

λe−λx = 1

2λx2e−(1−λ)x ≤C.

Fazendo dxd

f(x) g(x)

= 0 e simplificando chegaremos a 2x−(1−λ)x2 = 0, cujo as ra´ızes s˜aox1 = 0 e x2 = 1−λ2 . O valor deλque minimiza o n´umero esperado de itera¸c˜oes do algoritmo ´e dado minimizando a seguinte fun¸c˜ao,

f(1−λ2 )

g(1−λ2 ) = 2

λ(1−λ)2e−2 =C(λ).

Minimizando a fun¸c˜aoC(λ) encontraremos que o m´ınimo ocorre quandoλ= 13.

Referências

Documentos relacionados

[r]

A vers˜ao param´etrica do algoritmo de bootstrap assume parcialmente conhecida a distribui¸c˜ao de probabilidade F geradora dos dados observados, sendo necess´ario apenas definir

Exec´ıcio 1: Utilizando a mesma situa¸ c˜ ao do Exemplo 1, determine o tempo m´ edio que o cliente gasta no banco e o tempo m´ edio que o funcion´ ario trabalha a mais durante

Exemplo1: Suponha que trabalhos chegam a um sistema segundo um pro- cesso de Poisson n˜ ao homogˆ eneo com fun¸ c˜ ao de

Desenvolva um estudo de simula¸c˜ao para estimar o n´ umero de m´edio de clientes perdidos. Suponha que os trabalhos entram na fila somente se houver 10 ou

Similar a antes mas agora os clientes chegam segundo um PP N˜ ao Homogˆ eneo.. Um tecido doente inicialmente possue n c´ elulas com cˆ ancer e m c´

Pelo Lema 1, podemos escolher ε tal que toda contra¸c˜ ao ϕ : B[p; r] → M como no enunciado do corol´ ario possui imagem contida em B[p; r].. A conclus˜ ao segue ent˜ ao do

Vocˆ e pode fazer est´ a quest˜ ao mesmo que n˜ ao tenha escrito a fun¸c˜ ao carregue_mapa() ou a fun¸c˜ ao sokoban_resolvido(). Um exemplo de execu¸c˜ ao do programa est´ a