A plataforma R - DI PUC-Rio

Propaganda
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 
Download