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