16
4/10/13 1 Introdução à Simulação Estocás5ca usando R INF2035 – PUCRio, 2013.1 Departamento de InformáAca PUCRio Hélio Lopes Departamento de InformáAca – PUCRio 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.

AplataformaR - lopes//inf2035/Aula2Sim.pdf · e a diferença entre o segundo momento e o quadrado da esperança é chamado variância, isto é: Var(X) = E ... Distribuição&exponencial

Embed Size (px)

Citation preview

4/10/13  

1  

       

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.  

4/10/13  

2  

   

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  é  “<-­‐”.  

4/10/13  

3  

   

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  

4/10/13  

4  

   

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/10/13  

5  

   

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:  

       

•  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.  

Se xn ⇥ x entao F(xn) � F (x).Se x ⇥ �⇤ entao F (x)⇥ 0, e se x⇥⇤ entao F (x)⇥ 1Se x<y entaoF(x)� F (y).

4/10/13  

6  

   

Funções  densidade  de  probabilidade  

•  Caso  exista  uma  função                                                              para  a  qual                                                                                                                                                                                                                                                                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.  

F(t) =� t�⇥ f(x) dx

f : � +

   

Funções  densidade  de  probabilidade

•  Toda  densidade  de  probabilidade  possui  duas  propriedades:  •  Ela  é  não  negaAva,  e  o  conjunto        recebe   o   nome   de   suporte   da   densidade   ou   da  distribuição,  e  

•  a  sua  integral  é  unitária,  isto  é:      

•  A   função   de   distribuição   acumulada   de   variáveis   aleatórias  conSnuas   é   estritamente   crescente   no   suporte   e,   portanto,  inversível  nesse  conjunto.  

{ x � : f(x) > 0}

�f(x) dx = 1.

4/10/13  

7  

   

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        para  todo  evento  elementar                .  

•  A  função                                                                                        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:  

(xi, pi = Pr(X = pi))xi

(xi, pi = Pr(X = pi))

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      se  ela  exisAr.  

•  Caso  se  trate  de  uma  variável  aleatória  discreta,  a  integral  é  subsAtuída  por  uma  soma.  

E(Xk) =�

xkf(x) dx

4/10/13  

8  

   

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(X2)� (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      onde                        é  a  função  indicadora  do  conjunto  A,  isto  é:        

f(x) = 1(0,1)(x)

1A

1A(x) = 0 se x ⇥� A

1A(x) = 1 se x � A

4/10/13  

9  

   

Distribuição  uniforme

A   probabilidade   de   qualquer   evento   dentro   do   intervalo   unitário  depende  apenas  do  comprimento  do  intervalo,  isto  é:      para  todos  0  <  a  <  b  <  1.    EXERCÍCIO:  Qual  é  a  função  distribuição  de  uma  variavel  uniforme  no  intervalo  (0,1)?    

Pr(a ⇥ X ⇥ b) = 1/(b� a)

   

Distribuição  exponencial

•  A   distribuição   da   variável   aleatória   X   chama-­‐se   exponencial  padrão  se  a  sua  densidade  é  

•  Com  isso,  a  sua  função  de  distribuição  acumulada  é    

•  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  é    

f(t)=exp{�t} +(t)

F(t)=(1-exp{�t}) +(t)

fY (t) =1�

exp{�t/�} +(t).

4/10/13  

10  

   

Distribuição  normal  

•  A  distribuição  da  variável  aleatória  X  é  chamada  normal  padrão  se  a  sua  densidade  é  

•  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”:    

•  É  frequente  encontrar  a  notação                                                    ,  e  vale  que                                                                                                                                          ,  com  F  a  função  de  distribuição  acumulada  da  lei  normal    padrão.  

     

f(t) = 1�2�

exp�� 1

2 t2⇥

, para todo t ⇥ .

�(t) = 2��

� t0 exp{�x2} dx.

�(t) = erf(t)�(t) = 2F (

⇥2t)� 1

   

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⇥

.

4/10/13  

11  

   

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  é  

 •  Note  que  µ  e  σ2  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  

fY (y) = 1y⇥

2�⇥2 exp⇤� 1

2

�log(y)�µ

⇥2⌅.

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)}.  

4/10/13  

12  

   

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,

�nk

⇥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.    

4/10/13  

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    onde   λ   >   0   é   a   média   e   o   parâmetro   que   caracteriza   a  distribuição.    

Pr(X = k) = �k

k! e��, para todo k � 0

   

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.    

4/10/13  

14  

   

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).    

4/10/13  

15  

   

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…    

4/10/13  

16  

   

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   U1   ,   U2   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.