4/10/13 Introdução à Simulação Estocás5ca usando R INF2035 – PUC-­‐Rio, 2013.1 Departamento de InformáAca -­‐ PUC-­‐Rio Hélio Lopes Departamento de InformáAca – PUC-­‐Rio A plataforma R
• R é uma linguagem de programação de alto nível que oferece recursos para a produção de gráficos de qualidade bem como para a realização de cálculos estaSsAcos com boa precisão numérica. • Dentre as virtudes de R não podemos deixar de mencionar que ela obedece os padrões de soVware livre e que está disponível para uma boa variedade de plataformas de hardware e sistemas operacionais. • Há uma grande comunidade de desenvolvedores contribuindo permanentemente para a criação de novas funcionalidades, bem como para a correção dos eventuais problemas que R apresenta. 1 4/10/13 A plataforma R
• A comunidade R_STAT, disponível em h\p://br.groups.yahoo.com/group/R_STAT, é um exemplo disso para usuários de R no Brasil. • O número de bibliotecas de qualidade para as mais diversas aplicações cresce constantemente aumentando, com isso, a aplicabilidade deste sistema em diversas áreas. • R pode ser obAdo tanto compilado quanto para compilar pelo síAo h\p://www.r-­‐ project.org. • Para uma excelente introdução ao R veja “An IntroducAon to R” no próprio síAo onde se obtem o soVware. A plataforma R
• Como em todas as outras linguagens, é possível declarar variáveis em R que são referenciadas pelos seus nomes. • Os nomes das variáveis podem conter qualquer letra, dígito ou ponto mas não pode começar com um dígito. • Os nomes das variáveis são “case sensi(ves”, assim dado, Dado, e Dado referem a três variáveis diferentes. • O operator de atribuição em R é “<-­‐”. 2 4/10/13 A plataforma R
• Exemplos: > Dado <-­‐ 4 > Soma <-­‐ 2 + 2 > um.nome.de.variavel.grande <-­‐ sqrt(16) Cada linha de comando acima atribui a variável que está do lado esquerdo do operador de atribuição o valor do lado direito. Para todos esses casos é atribuído o valor 4 às variáveis Dado, Soma e um.nome.de.variavel.grande A plataforma R
• Para ver o valor de uma variável em R, você deve executar o comando print, ou simplesmente o nome da própria variável: > print(Dado) > Dado 3 4/10/13 A plataforma R
• Nem sempre usaremos variáveis reais no R. De fato na maioria das aplicações usaremos variáveis que são vetores, que são uma lista de objetos do mesmo Apo. • Existem várias maneiras diferentes de se criar um vetor no R. Muitas funções e operadores retornam uma instância de um vetor. Aqui veremos algumas formas de como se criar um vetor e algumas funções que operam esses componente a componente. A plataforma R
• A função c “combina” ou “coleciona” valores em um vetor: > v <-­‐ c(1,2,-­‐0.5,0.3) > v • A função seq cria uma sequencia de valores em um vetor: > w <-­‐ seq(1,4) > w • Para acessar a primeira componente do vetor, faça: > w[1] 4 4/10/13 Distribuições de variáveis aleatórias • Neste ponto é conveniente lembrar que conhecer a distribuição de uma variável aleatória consiste em ser capaz de calcular a probabilidade de qualquer evento dentro da classe de eventos possíveis, suas uniões e interseções. • A função de distribuição acumulada, definida por F(t)= Pr(X< t) para todo t real, é capaz de caracterizar a distribuição de qualquer variável aleatória X. Distribuições de variáveis aleatórias
• As propriedades das funções de distribuição acumulada são as seguintes: Se x n ⇥ x então F(xn ) F (x).
Se x ⇥ ⇤ então F (x) ⇥ 0, e se x ⇥ ⇤ então F (x) ⇥ 1
Se x<y então F(x) F (y).
• Reciprocamente, toda função saAsfazendo as três propriedades acima é função de distribuição acumulada, isto é, ela caracteriza a distribuição de alguma variável aleatória real. 5 4/10/13 Funções densidade de probabilidade • Caso exista uma função f : +
para a qual F(t)
= t
f (x) dx
⇥
então dizemos que F caracteriza a distribuição de uma variável aleatória conSnua. • Nesse caso, f recebe o nome de densidade de probabilidade, ou simplesmente de densidade, e também caracteriza a distribuição da viariável aleatória. Funções densidade de probabilidade
• Toda densidade de probabilidade possui duas propriedades: • Ela é não negaAva, e o conjunto {x
: f (x) > 0}
recebe o nome de suporte da densidade ou da distribuição, e • a sua integral é unitária, isto é: f (x) dx = 1.
• A função de distribuição acumulada de variáveis aleatórias conSnuas é estritamente crescente no suporte e, portanto, inversível nesse conjunto. 6 4/10/13 Variáveis aleatórias discretas • Caso o espaço amostral da variável aleatória seja finito ou enumerável, dizemos se tratar de uma variável aleatória discreta. • Nesse caso, basta conhecer a probabilidade de cada evento atômico para caracterizar a sua distribuição, isto é, a função (xi , pi = Pr(X = pi ))
para todo evento elementar x
i . • A função (x
i , p i =
Pr(X
=
p i ))
recebe o nome de função de probabilidade, e é possível ver que a função de distribuição acumulada, neste caso, é constante por partes: F(t)=
xi t
pi
Momentos • Uma informação muito importante que decorre do conhecimento da distribuição de uma variável aleatória é a dos seus momentos. • O momento de ordem k da variável aleatória X com distribuição caracterizada pela densidade f é dado pela integral E(X k ) =
xk f (x) dx
se ela exisAr. • Caso se trate de uma variável aleatória discreta, a integral é subsAtuída por uma soma. 7 4/10/13 Momentos • O primeiro momento recebe o nome de esperança ou média,
e a diferença entre o segundo momento e o quadrado da
esperança é chamado variância, isto é:
Var(X) = E(X 2 )
(E(X))2 .
Distribuição uniforme A distribuição uniforme no intervalo unitário ocupa um lugar de destaque no universo da simulação estocásAca. Ela é definida pela densidade (0,1)
onde A
é a função indicadora do conjunto A, isto é: f (x) = 1
(x)
1
1A (x) = 0 se x ⇥ A
1A (x) = 1 se x A
8 4/10/13 Distribuição uniforme
A probabilidade de qualquer evento dentro do intervalo unitário depende apenas do comprimento do intervalo, isto é: Pr(a ⇥ X ⇥ b) = 1/(b a)
para todos 0 < a < b < 1. EXERCÍCIO: Qual é a função distribuição de uma variavel uniforme no intervalo (0,1)? Distribuição exponencial
• A distribuição da variável aleatória X chama-­‐se exponencial padrão se a sua densidade é f(t)=exp{ t}
+
(t)
• Com isso, a sua função de distribuição acumulada é F(t)=(1-exp{ t})
+
(t)
• A distribuição da variável aleatória Y = λX, com X exponencial padrão e λ > 0 chama-­‐se exponencial de média λ, e a sua densidade é fY (t) =
1
exp{ t/ }
+
(t).
9 4/10/13 Distribuição normal • A distribuição da variável aleatória X é chamada normal padrão ⇥
se a sua densidade é f (t) = 1 exp 1 t2 , para todo t ⇥ .
2
2
• Não dispomos de uma forma explícita para a função de distribuição acumulada da distribuição normal padrão, mas há uma relação entre ela e uma importante função especial chamada “função de erro”: (t) = 2 t exp{ x2 } dx.
0
• É frequente =
erf(t)
, e vale que ⇥ encontrar a notação (t)
(t)
= 2F
( 2t)
1 , com F a função de distribuição acumulada da lei normal padrão. Distribuição normal • Se X segue uma distribuição normal padrão, então Y = σX + µ, com µ um número real qualquer e σ > 0, segue uma distribuição normal de média µ e desvio padrão σ (ou, equivalentemente, variância σ2 ). Neste caso, a densidade de Y é fY (t) =
1
2 ⇥
exp
1
2⇥ 2 (t
⇥
µ)2 .
10 4/10/13 Distribuição log-­‐normal • Se X segue uma lei normal de média µ e variância σ2 , então Y = eX segue uma distribuição log-­‐normal de parâmetros µ e σ2 . A densidade que caracteriza esta ⇤
distribuição é ⇥ ⌅
2
1
1 log(y) µ
fY (y) = y⇥2 ⇥2 exp
.
2
⇥
2
• Note que µ e σ são apenas os parâmetros que indexam esta lei; não são a média e a variância da distribuição. A média desta distribuição é E(Y ) = exp { µ + σ2 / 2 } , enquanto a variância é dada por ⌅
⇥⇤
⇥
Var(Y ) = exp 2µ +
2
exp
2
1 .
Distribuição Bernoulli • Uma das distribuições discretas mais simples é a lei de Bernoulli. • Uma variável aleatória discreta segue a lei de Bernoulli com parâmetro p que pertence ao intervalo [0, 1] se ela adota o valor 1 com probabilidade p ou o valor 0 com probabilidade 1 − p. • Desta forma, a função de probabilidade que caracteriza esta lei é {(0, 1 − p), (1, p)}. 11 4/10/13 Distribuição Binomial • A soma de n variáveis aleatórias independentes e idenAcamente distribuídas, cada uma obedecendo uma distribuição de Bernoulli com parâmetro p segue uma lei Binomial com parâmetro (n, p). • A função de probabilidade que caracteriza esta distribuição é k,
n
k
⇥
pk (1
p)n
k
⇥
para todo 0 ⇥ k ⇥ n.
Distribuição de Poisson • A distribuição de Poisson caracteriza a contagem do número de eventos que, isoladamente, são raros mas para os quais são feitas muitas observações independentes. • Imaginemos, por exemplo, a situação de observar em um pequeno intervalo de tempo a chegada de um freguês em um banco, ou a ocorrência de um sinistro para uma empresa de seguros devido a um roubo de carro; a probabilidade disso ocorrer é pequena, mas quando a observação é realizada ao longo de um intervalo maior ela se torna razoável. 12 4/10/13 Distribuição de Poisson • Nessas condições, e com algunas restrições adicionais, podemos modelar o número de eventos com a variável aleatória X cuja lei é dada por k
Pr(X = k) = k! e , para todo k
0
onde λ > 0 é a média e o parâmetro que caracteriza a distribuição. Inversão • Veremos agora como transformar variáveis aleatórias uniformes em variáveis aleatórias que obedecem outra distribuição. • O resultado que será apresentado a seguir é um dos pilares da simulação estocásAca. 13 4/10/13 Inversão Teorema: Sejam F : IR → [0, 1] a função de distribuição acumulada de uma variável aleatória e F− a sua inversa generalizada, dada por F−(t) = inf {x : t = F(x)}. Se U é uma variável aleatória que segue uma lei uniforme no intervalo (0, 1) então F é a função de distribuição acumulada da variável aleatória resultante da transformação V = F−(U). Lema: Quando a variável aleatória de interesse é con[nua vale que F−(t) = F−1 (t) para todo t em IR. Inversão • A aplicabilidade deste resultado geral restringe-­‐se somente à disponibilidade de boas implementações de F−1 ou de F−. Casos importantes para os quais não há formas explícitas simples são as distribuições normal e log-­‐normal, por exemplo. • No caso da distribuição exponencial com parâmetro λ, a função de distribuição acumulada é dada por F(t) = (1 − exp{−t/λ})1R+ (t), logo a inversa é dada por F−1 (t) = −λ log(1 − t). Com isso, a variável aleatória Y = −λ log(1 − X) segue uma distribuição exponencial com média λ quando X segue uma lei uniforme no intervalo (0, 1). 14 4/10/13 Inversão • Para gerar ocorrências da distribuição de Bernoulli podemos
usar o Teorema e fazer Y = 1(0,p) (U). Com isso, Y irá
obedecer a lei desejada com parâmetro p.
• As ocorrências de variáveis aleatórias binomiais podem ser
construídas como a soma de eventos de variáveis aleatórias
Bernoulli independentes.
• Mas existe uma forma mais eficiente de gerar uma
binomial…qual será?
Inversão • A geração de ocorrências de variáveis aleatórias Poisson pode parecer inviável com este método pois, em princípio, requereria o cálculo de infinitos valores de probabilidade. • Esse problema pode ser contornado fazendo uso de um algoritmo iteraAvo que, dada a ocorrência da variável aleatória uniforme X(ω) = x, calcule o valor inicial p0 = Pr(Y = 0) = e−λ e faça a comparação com apenas o primeiro “degrau” da inversa generalizada da função de distribução acumulada. Se p0 < x então retorne 0, caso contrário calcule p1 = Pr(Y = 1) = λe−λ e faça a comparação com p0 + p1 , e assim por diante… 15 4/10/13 Método polar para a geração de uma Normal padrão • De volta à distribuição normal, podemos, em princípio, uAlizar o seguinte resultado: • Sejam U 1 , U 2 variáveis aleatórias independentes e idenAcamente distribuídas segundo uma lei uniforme no intervalo unitário. Definamos R = sqrt(−2 log U1) e Θ = π(2 U2 − 1). As variáveis aleatórias X, Y definidas por X = R cos Θ e Y = R sen Θ são independentes com distribuição comum normal padrão. Gerando variáveis aleatórias no R • A plataforma R oferece diversas roAnas para a geração de ocorrências de variáveis aleatórias com estas e muitas outras distribuições. • Dentre elas podemos mencionar runif, para ocorrências de uniformes, rbinom para binomiais (e, como caso parAcular, de Bernoulli), rnorm para normais e rpois para Poisson. 16