Elementos de Estatstica
Computacional Usando Plataformas
de Software Livre/Gratuito
2a impresso
Alejandro C. Frery
UFAL
Francisco Cribari-Neto
UFPE
impa
Copyright 2011 by Alejandro C. Frery e Francisco Cribari-Neto
Publicaes Matemticas
Introduo Topologia Diferencial Elon Lages Lima
Criptografia, Nmeros Primos e Algoritmos Manoel Lemos
Introduo Economia Dinmica e Mercados Incompletos Alosio Arajo
Conjuntos de Cantor, Dinmica e Aritmtica Carlos Gustavo Moreira
Geometria Hiperblica Joo Lucas Marques Barbosa
Introduo Economia Matemtica Alosio Arajo
Superfcies Mnimas Manfredo Perdigo do Carmo
The Index Formula for Dirac Operators: an Introduction Levi Lopes de Lima
Introduction to Symplectic and Hamiltonian Geometry Ana Cannas da Silva
Primos de Mersenne (e outros primos muito grandes) Carlos Gustavo T. A. Moreira e
Nicolau Saldanha
The Contact Process on Graphs Mrcia Salzano
Canonical Metrics on Compact almost Complex Manifolds Santiago R. Simanca
Introduction to Toric Varieties Jean-Paul Brasselet
Birational Geometry of Foliations Marco Brunella
Introduo Teoria das Probabilidades Pedro J. Fernandez
Teoria dos Corpos Otto Endler
Introduo Dinmica de Aplicaes do Tipo Twist Clodoaldo G. Ragazzo, Mrio J.
Dias Carneiro e Salvador Addas Zanata
Elementos de Estatstica Computacional usando Plataformas de Software Livre/Gratuito
Alejandro C. Frery e Francisco Cribari-Neto
Uma Introduo a Solues de Viscosidade para Equaes de Hamilton-Jacobi Helena J.
Nussenzveig Lopes, Milton C. Lopes Filho
Elements of Analytic Hypoellipticity Nicholas Hanges
Mtodos Clssicos em Teoria do Potencial Augusto Ponce
Variedades Diferenciveis Elon Lages Lima
O Mtodo do Referencial Mvel Manfredo do Carmo
A Student's Guide to Symplectic Spaces, Grassmannians and Maslov Index Paolo
Piccione e Daniel Victor Tausk
Mtodos Topolgicos en el Anlisis no Lineal Pablo Amster
Tpicos em Combinatria Contempornea Carlos G. Moreira e Yoshiharu Kohayakawa
Uma Iniciao aos Sistemas Dinmicos Estocsticos Paulo Ruffino
Compressive Sensing Adriana Schulz, Eduardo A.B.. da Silva e Luiz Velho
O Teorema de Poncelet Marcos Sebastiani
Clculo Tensorial Elon Lages Lima
Aspectos Ergdicos da Teoria dos Nmeros Alexander Arbieto, Carlos Matheus e C. G.
Moreira
A Survey on Hiperbolicity of Projective Hypersurfaces Simone Diverio e Erwan
Rousseau
Algebraic Stacks and Moduli of Vector Bundles Frank Neumann
94
Sumario
1 Introducao 3
3 Metodo de Substituicao 21
3.1 Introducao a Plataforma Ox . . . . . . . . . . . . . . . 21
3.2 Modelos Estatsticos Parametricos . . . . . . . . . . . 25
3.3 O Problema de Inferencia . . . . . . . . . . . . . . . . 29
3.4 Metodo de Substituicao . . . . . . . . . . . . . . . . . 30
3.5 Sistemas de Equacoes nao Lineares . . . . . . . . . . . 31
5 Otimizacao Nao-linear 41
5.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.2 O Problema de Interesse . . . . . . . . . . . . . . . . . 42
5.3 Metodos Gradiente . . . . . . . . . . . . . . . . . . . . 42
1
2 SUMARIO
6 Series Temporais 57
6.1 Modelos de Previsao . . . . . . . . . . . . . . . . . . . 57
6.2 Aplicacao: ICMS . . . . . . . . . . . . . . . . . . . . . 62
7 Monte Carlo 78
7.1 Geradores Uniformes . . . . . . . . . . . . . . . . . . . 80
7.2 Geracao por Transformacao . . . . . . . . . . . . . . . 83
7.3 Metodo de Aceitacao-Rejeicao . . . . . . . . . . . . . . 87
7.4 Metodo de Composicao . . . . . . . . . . . . . . . . . 91
7.5 Experiencias Monte Carlo . . . . . . . . . . . . . . . . 92
Captulo 1
Introducao
3
4 [CAP. 1: INTRODUCAO
Estatstica Descritiva
Uni- e Multivariada
2.1 Introducao ao R
R e uma linguagem e um ambiente para computacao estatstica e
para preparacao de graficos de alta qualidade. E um projeto GNU
similar a linguagem e ambiente S-PLUS e, ainda que haja diferencas
significativas entre eles, grande parte do codigo desenvolvido para um
funciona no outro.
R oferece uma grande variedade de tecnicas estatsticas (modelos
lineares e nao-lineares, testes estatsticos classicos, modelos de series
temporais, classificacao e agrupamento, entre outros) e graficas, e e
altamente extensvel.
R e uma colecao integrada de facilidades de software para mani-
pulacao de dados, realizacao de calculos e preparacao de graficos, que
inclui
tratamento efetivo de dados e facilidades de armazenamento;
operadores para calculos em matrizes multidimensionais;
ferramentas de diversos nveis para analises de dados;
facilidades graficas para analise de dados;
5
6 [CAP. 2: ESTATISTICA DESCRITIVA UNI- E MULTIVARIADA
> help.start(browser="mozilla")
2.1.2 Bibliotecas
O sistema R utiliza diversas bibliotecas de funcoes e conjuntos de da-
dos adicionais, que sao carregadas com a auxlio da funcao library(),
tal como mostrado a seguir.
> library(cluster)
> install.packages()
abre interfaces para instalar novas bibliotecas; mais sobre esse assunto
na pagina 13 deste texto.
No site http://cran.r-project.org estao disponveis as bibli-
otecas oficiais.
> data(iris)
> read.table("dados.txt")
> read.csv("dados.csv", sep=";")
2.2 Definicoes
Quando trabalhamos com uma amostra de dados, ela nada mais e
que uma realizacao (idealmente representativa) de uma populacao de
interesse. E conveniente, para nao dizer imprescindvel, ter uma ideia
de como se comportam os dados da amostra antes de fazer qualquer
[SEC. 2.2: DEFINICOES 9
Descricao geral:
Tamanho da amostra n
Valores mnimo y1:n e maximo yn:n
[133] 6.4 6.3 6.1 7.7 6.3 6.4 6.0 6.9 6.7 6.9 5.8 6.8
[145] 6.7 6.7 6.3 6.5 6.2 5.9
> attach(iris)
> mean(Sepal.Length)
[1] 5.843333
> median(Sepal.Length)
[1] 5.8
> quantile(Sepal.Length)
0% 25% 50% 75% 100%
4.3 5.1 5.8 6.4 7.9
> postscript("box_plot.eps")
> boxplot(l_s, horizontal=T)
> dev.off()
e seu resultado pode ser visto na Figura 2.3. R oferece uma grande
variedade de parametros para controlar o aspecto com que os histo-
gramas em particular, e todos os graficos em geral, sao produzidos e
exibidos.
O diagrama stem-and-leaf e obtido a partir do comando
> stem(Petal.Length)
1 | 012233333334444444444444
1 | 55555555555556666666777799
2 |
2 |
3 | 033
3 | 55678999
4 | 000001112222334444
4 | 5555555566677777888899999
5 | 000011111111223344
5 | 55566666677788899
6 | 0011134
6 | 6779
Petal.Width
Petal.Length
Sepal.Width
Sepal.Length
0 2 4 6 8
0.2
0.1
0.0
1 2 3 4 5 6 7
Largo de Ptalos
> pairs(iris)
2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5
7.5
6.5
Sepal.Length
5.5
4.5
4.0
Sepal.Width
3.0
2.0
7
6
5
Petal.Length
4
3
2
1
2.5
1.5
Petal.Width
0.5
3.0
2.5
Species
2.0
1.5
1.0
2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5
7.5
6.5
Sepal.Length
5.5
4.5
4.0
3.5
Sepal.Width
3.0
2.5
2.0
7
6
5
Petal.Length
4
3
2
1
2.5
2.0
1.5
Petal.Width
1.0
0.5
1 2 3 4 5 6 7 8 9 10 11 12
13 14 15 16 17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32 33 34 35 36
37 38 39 40 41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72
73 74 75 76 77 78 79 80 81 82 83 84
85 86 87 88 89 90 91 92 93 94 95 96
109 110 111 112 113 114 115 116 117 118 119 120
121 122 123 124 125 126 127 128 129 130 131 132
133 134 135 136 137 138 139 140 141 142 143 144
21
22 [CAP. 3: METODO DE SUBSTITUICAO
29 return 0;
30 }
e a sua sada depois de compilado em ambiente Linux usando o com-
pilador gcc:
1 Conversion table ( F to C )
2
3 F C
4 0 -17.8
5 20 -6.7
6 40 4.4
7 60 15.6
8 80 26.7
9 100 37.8
10 120 48.9
24 [CAP. 3: METODO DE SUBSTITUICAO
11 140 60.0
12 160 71.1
13 180 82.2
14 200 93.3
15 220 104.4
16 240 115.6
17 260 126.7
18 280 137.8
19 300 148.9
A seguir o codigo equivalente em Ox
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2 * PROGRAM : celsius . ox
3 *
4 * USAGE : To generate a conversion table of
5 * temperatures ( from Fahrenheit to Cel
6 * sius ). Based on an example in the
7 * Kernighan & Ritchie s book .
8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
9
12 main ()
13 {
14 decl fahr ;
15
28 }
e a sua sada
1 Ox version 3.40 ( Linux ) ( C ) J . A . Doornik , 1994 -
2 2004
3
4 Conversion table ( F to C )
5
6 F C
7 0 -17.8
8 20 -6.7
9 40 4.4
10 60 15.6
11 80 26.7
12 100 37.8
13 120 48.9
14 140 60.0
15 160 71.1
16 180 82.2
17 200 93.3
18 220 104.4
19 240 115.6
20 260 126.7
21 280 137.8
22 300 148.9
que
n k k
lim Pr(Y = k) = lim p (1 p)nk = e .
p0 p0 k k!
n n
np np
1 1 y
f (y; ) = y e IR+ (y). (3.8)
()
lim E(bn ) = , ,
n
Pr
converge em probabilidade para , denotada bn , isto e, se para
todo > 0 vale que
lim Pr(|bn | > ) = 0,
n
35
36 [CAP. 4: METODO DE MAXIMA VEROSSIMILHANCA
Y 1
\
(, ) = arg max 2 y 1 exp(yi /)
(,)R+ () i
1in
Y
= arg max 2 ( ()n yi1 exp(yi /). (4.2)
(,)R+
1in
reduz-se a
X
\
(, ) = arg max 2 n ln n ln () + ( 1) ln yi
(,)R+
1in
1 X
yi . (4.3)
1in
1
Pn
O termo n i=1 yi foi calculado no programa principal P
e armaze-
n
nado na variavel global g_m1. Calcularemos o termo n1 i=1 ln yi
com o comando
g_logm1 = meanc(log(v_amostra));
e armazenaremos o resultado na variavel global g_logm1.
O codigo que implementa a funcao dada na equacao (4.5) e o
seguinte:
1 fu n c_ v e r o s s g a m m a ( const vP , const adFunc , const avScore ,
2 const amHessian ) {
3
4 decl alfa , beta ;
5
6 alfa = fabs ( vP [0]);
7 beta = fabs ( vP [1]);
8
9 adFunc [0] = - alfa * log ( beta ) - loggamma ( alfa ) +
10 alfa * g_logm1 - g_m1 / beta ;
11
12 return 1;
13 }
Otimizacao Nao-linear
5.1 Introducao
Em muitas situacoes praticas e comum precisarmos minimizar ou ma-
ximizar funcoes. Um exemplo de grande importancia e a obtencao
de estimativas de maxima verossimilhanca em modelos estatsticos e
econometricos; em muitos casos de interesse o estimador de maxima
verossimilhanca nao possui forma fechada e as estimativas devem
ser obtidas a partir da maximizacao numerica da funcao de veros-
similhanca ou da funcao de log-verossimilhanca, ou seja, precisamos
construir esta funcao com base no modelo postulado e depois maxi-
miza-la numericamente a fim de encontrar as estimativas de maxima
verossimilhanca dos parametros que definem o modelo. Um outro
exemplo envolve o problema de mnimos quadrados, onde o interesse
reside na minimizacao da soma dos quadrados de um conjunto de er-
ros, por exemplo, na estimacao de modelos nao-lineares de regressao
pelo metodo de mnimos quadrados nao-lineares.
O presente captulo apresenta um conjunto de ferramentas que sao
uteis na tarefa de encontrar mnimos e maximos de funcoes. Nao nos
preocuparemos inicialmente com a existencia de mais de um mnimo
ou maximo; a tecnica de simulated annealing, apresentada mais adi-
ante, sera util na localizacao de mnimos e maximos globais.
Ao longo do captulo trataremos da maximizacao de funcoes; para
minimizar uma funcao utilizando os metodos descritos a seguir basta
41
42 [CAP. 5: OTIMIZACAO NAO-LINEAR
1
() = + 0 + 0 ,
2
onde e um dado escalar, e um vetor de dimensao p 1 e e
uma matriz positiva-definida de ordem p p. A condicao de primeira
ordem para a maximizacao de e dada por = 0, resultando
assim na solucao
= 1 ,
t+1 = t + t t .
(t + t t )
= f (t + t t )0 t = 0.
t
t = Mt ft ,
(t + t t ) (t ) + t f (t )0 t .
t+1 t t ft0 t .
t+1 t t ft0 Mt ft .
44 [CAP. 5: OTIMIZACAO NAO-LINEAR
5.3.2 Newton-Raphson
O metodo de Newton ou de Newton-Raphson pode ser descrito pela
seguinte equacao de atualizacao:
t+1 = t Ht1 ft ,
onde
2 ()
H = H() = ,
0
i.e., H e a matriz hessiana. Neste metodo, temos, portanto, Mt =
Ht1 e t = 1 para todo t.
Para entender a motivacao por tras deste metodo, considere uma
expansao em serie de Taylor da condicao de primeira ordem em torno
de um ponto arbitrario, digamos 0 :
()
f (0 ) + H(0 )( 0 ).
[SEC. 5.3: METODOS GRADIENTE 45
5.3.3 BHHH
O metodo BHHH foi proposto por [1] e e semelhante ao metodo de
Newton-Raphson. A unica diferenca reside no fato de que se usa a
matriz ft ft0 (conhecida como outer product of the gradient) ao inves
de Ht no esquema iterativo. Ou seja, usamos
(t ) (t )
H = H () =
t t0
ao inves de
2 (t )
H = H() =
t t0
no esquema iterativo de Newton. Note que aqui nao precisamos cal-
cular a matriz de segundas derivadas. Este metodo e muito usado
em varias aplicacoes econonometricas; por exemplo, em [5] sugere-se
o uso deste algoritmo para estimacao de modelos GARCH (modelos
de heteroscedasticidade condicional auto-regressiva generalizada).
5.3.5 Quasi-Newton
Ha uma classe de algoritmos muito eficientes que elimina a neces-
sidade do calculo de segundas derivadas e tipicamente apresenta bom
desempenho: a classe de algoritmos quasi-Newton, tambem conhecida
como classe de metodos de metricas variaveis. Nesta classe, usa-se a
seguinte sequencia de matrizes:
Mt+1 = Mt + Nt ,
onde Nt e uma matriz positiva-definida. Note que se M0 , a ma-
triz inicial da sequencia, for positiva-definida, entao todas as demais
matrizes da sequuencia tambem o serao. A ideia basica e construir
iterativamente uma boa aproximacao para {H()}1 , ou seja, usar
uma sequencia de matrizes Mt tal que limt Mt = H 1 . A ideia
central do metodo remonta a um artigo que Davidon escreveu no fi-
nal da decada de 1950 [17]; este artigo, contudo, nao foi aceito para
publicacao a epoca, e sua publicacao so veio a se dar em 1991, mais
de trinta anos mais tarde [18]. Hoje ha diferentes algoritmos que
pertencem a esta classe. Por exemplo, o algoritmo DFP (Davidon,
Fletcher e Powell) usa
t t0 Mt t t0 Mt
Mt+1 = Mt + 0 + ,
t t t0 Mt t
[SEC. 5.4: PROBLEMAS COMBINATORIOS E SIMULATED ANNEALING 47
5.6 Exemplos
Seja Y1 , . . . , Yn uma amostra aleatoria de uma distribuicao tm , onde
m denota o numero de graus de liberdade da distribuicao t de Student.
Suponha que desejamos, para uma amostra gerada aleatoriamente
com n = 50, estimar m por maxima verossimilhanca. Isto e feito no
programa abaixo, escrito usando a linguagem Ox.
1 /* PROGRAMA : t . ox */
2
24 else
25 return 1; // 1 indica successo
26 }
27
28 main ()
29 {
30 decl vp , dfunc , dm , ir ;
31
34 vp = 2.0;
35 dm = 3.0;
36 s_vx = rant (N ,1 , dm );
37
54 }
1 $par
2 [1] 0.6186103 0.4695268
3
4 $value
5 [1] 0.8828092
6
7 $counts
8 function gradient
9 13 6
10
11 $convergence
12 [1] 0
13
14 $message
15 NULL
56 [CAP. 5: OTIMIZACAO NAO-LINEAR
4 $value
5 [1] 0.0003411431
6
7 $counts
8 function gradient
9 10000 NA
10
11 $convergence
12 [1] 0
13
14 $message
15 NULL
Assim, o ponto otimo obtido e (0.0002175535, 0.0031842382),
o valor da funcao neste ponto sendo 0.0003411431; nao ficamos, por-
tanto, presos em um mnimo local. Note que, em ambos os casos, o va-
lor de convergence foi 0, indicando que houve convergencia (quando
nao ha convergencia, optim retorna 1). Mas somente no segundo caso
esta convergencia se deu para o mnimo global.
Captulo 6
Modelos de Series
Temporais
57
58 [CAP. 6: SERIES TEMPORAIS
onde
com
Tt = (Nt Nt1 ) + (1 )Tt1 , 0 < < 1,
[SEC. 6.1: MODELOS DE PREVISAO 59
(B)yt = c + (B)ut ,
(B) = 1 1 B p B p ,
(B) = 1 + 1 B + + p B p .
em que e a media de 4d yt .
A classe de modelos ARIMA pode ser ampliada para lidar com
series sazonais. Muitas vezes nao e possvel transformar yt de forma
a remover a sazonalidade, ou seja, a propria sazonalidade pode apre-
sentar um padrao dinamico. Isto significa que ha necessidade de se
considerar uma sazonalidade estocastica e ajustar a serie original um
modelo ARIMA sazonal (SARIMA). Seja yt a serie de interesse e seja
s o perodo de sazonalidade, como antes. Sejam
(B s ) = 1 1 B s P B sP
62 [CAP. 6: SERIES TEMPORAIS
(B s ) = 1 1 B s Q B sQ ,
16.3
16.2
16.1
log(ICMS real)
16.0
15.9
15.8
tempo
6 Call :
7 HoltWinters ( x = icms . r . log )
8
9 Smoothing parameters :
10 alpha : 0.7537135
11 beta : 0
12 gamma : 0.6929771
13
14 Coefficients :
15 [ ,1]
16 a 16.2371339403
17 s1 0.0454481744
18 s2 0.0403461047
19 s3 -0.0361265360
20 s4 -0.0305452153
21 s5 0.0181958453
22 s6 0.0098216101
23 s7 0.0233084999
24 s8 0.0060877359
25 s9 0.0027844363
26 s10 -0.0026977290
27 s11 -0.0009882357
28 s12 -0.0122171962
29 >
30 > plot . ts ( icms . r . log , xlim = c (1994.1 , 2006.12) ,
31 + xlab = " tempo " , ylab = " log ( ICMS ) " )
32 > p1 = predict ( hw . fit .1 , 12)
[SEC. 6.2: APLICACAO: ICMS 67
46 > exp ( p1 )
47 Jan Feb Mar Apr
48 2004
49 2005 11727887 10864459 10925267 11470967
50 May Jun Jul Aug
51 2004
52 2005 11375307 11529764 11332913 11295538
53 Sep Oct Nov Dec
54 2004 11787876
55 2005 11233784 11253004 11127352
A previsao obtida e, assim, de R$ 11.8 bilhoes (mais exatamente,
R$ 11,787,876,000). O erro de previsao, definido como a diferenca
entre o valor previsto e o observado, foi de cerca de R$ 46 milhoes,
representando um erro relativo de 0.4%.
Passaremos, a seguir, a modelagem de BoxJenkins. De incio,
ajustamos o modelo airline e obtemos a previsao para dezembro de
2004:
1 > ajuste .1 = arima ( icms . r . log , order = c (0 ,1 ,1) ,
2 + seasonal = list ( order = c (0 ,1 ,1)))
3 > ajuste .1
4
5 Call :
6 arima ( x = icms . r . log , order = c (0 , 1 , 1) ,
7 seasonal = list ( order = c (0 , 1 , 1)))
68 [CAP. 6: SERIES TEMPORAIS
16.3
16.2
16.1
log(ICMS real)
16.0
15.9
15.8
tempo
9 Coefficients :
10 ma1 sma1
11 -0.3697 -0.9999
12 s.e. 0.1011 0.1976
13
17
23 2004
24 2005 16.22898 16.24306 16.23452 16.26204
25 Sep Oct Nov Dec
26 2004 16.29664
27 2005 16.28552 16.29615 16.29322
28 > p2 = exp ( predict ( ajuste .1 , 12) $pred )
29 > p2
30 Jan Feb Mar Apr
31 2004
32 2005 11636862 10626909 10830022 11276822
33 May Jun Jul Aug
34 2004
35 2005 11172610 11331107 11234723 11548189
36 Sep Oct Nov Dec
37 2004 11954760
38 2005 11822535 11948929 11913966
39
5 Call :
6 arima ( x = icms . r . log , order = c (1 , 1 , 2) ,
7 seasonal = list ( order = c (0 , 1 , 0)))
8
9 Coefficients :
10 ar1 ma1 ma2
72 [CAP. 6: SERIES TEMPORAIS
www-personal.buseco.monash.edu.au/~hyndman/Rlibrary. Par-
ticularmente util e a funcao best.arima, que seleciona o melhor mo-
delo arima variando nao apenas p e q, mas tambem P e Q (d e D
devem ser especificados pelo usuario). Esta funcao se encontra dispo-
nibilizada em http://www.de.ufpe.br/~cribari/arima.R. Antes
de utilizar a funcao, e necessario importa-la no R:
1 > source ( " arima . R " )
Usemos esta funcao com d = 1 e D = 1:
1 > best . arima ( icms . r . log , d =1 , D =1)
2 Series : icms . r . log
3 ARIMA (0 ,1 ,1)(0 ,1 ,1)[12] model
4
5 Coefficients :
6 ma1 sma1
7 -0.3697 -0.9999
8 s.e. 0.1011 0.1976
9
5 Coefficients :
6 ar1 ma1 ma2 sar1 sma1
7 -0.8864 0.5913 -0.3889 0.9987 -0.9584
8 s.e. 0.0592 0.1051 0.1008 0.0063 0.0987
9
Standardized Residuals
4
3
2
1
1 0
3
Time
ACF of Residuals
1.0
0.6
ACF
0.2
0.2
Lag
2 4 6 8 10
lag
16.0
15.9
15.8
tempo
16.2
data
16.0
15.8
0.06
seasonal
0.02
0.02
0.06
16.2
trend
16.1
16.0
0.05
remainder
0.05
0.15
1996 1998 2000 2002 2004
time
Simulacao Estocastica e
Ensaios Monte Carlo
78
79
Uma solucao simples (que pode ser melhorada) e por Monte Carlo
Pn
Forca Bruta, que consiste em aproximar por = n1 i=1 (yi ),
onde (y1 , . . . , yn ) sao amostras independentes da variavel aleatoria
Y.
A geracao de eventos de variaveis aleatorias i.i.d. com distribuicao
uniforme em (0, 1) e essencial para construir eventos de variaveis
aleatorias com outras distribuicoes e/ou outras estruturas de de-
pendencia. Veremos, por este motivo, tecnicas de geracao destes
eventos. Nosso objetivo e, entao, poder trabalhar com (u1 , . . . , un )
observacoes do vetor aleatorio (U1 , . . . , Un ) que satisfaca as seguintes
propriedades:
que lhe permita rejeitar a sequencia gerada por nao ter as proprieda-
des desejadas. Estas sequencias sao chamadas pseudo-aleatorias.
As duas propriedades basicas de um algoritmo f : Rk R capaz
de gerar sequencias pseudo-aleatorias sao
1. A funcao ui = f (ui1 , . . . , uik ) deve ser de custo computacio-
nal relativamente baixo.
2. Deve ser difcil conhecer ui1 dado so o conhecimento dos an-
tecedentes (ui , ui2 , . . . , uik ).
Outras propriedades desejaveis para um gerador deste tipo de sequen-
cias sao a repetibilidade, a portabilidade e a rapidez. A referencia
fundamental para este tema e o livro [30].
Basta gerar numeros inteiros nao-negativos e divid-los pelo ma-
ximo valor possvel da sequencia. Quanto maior for este divisor,
melhor sera a aproximacao a numeros reais no intervalo [0, 1]. O
custo computacional de realizar aritmetica inteira e menor que o de
faze-lo em ponto flutuante, e os resultados sao mais previsveis e
menos dependentes da maquina e do sistema operacional.
Veremos a seguir alguns algoritmos basicos para a geracao de
sequencias pseudo-aleatorias uniformes.
Ainda que muitas das sequencias geradas por este algoritmo sejam in-
teressantes e exibam boas propriedades, nem sempre e possvel garan-
tir o bom comportamento a longo prazo das mesmas. Como exemplo,
verifique quais sequencias sao geradas a partir de u0 = 0, u0 = 2100
e u0 = 3792.
Uma classe interessante de geradores, conhecida como congru-
enciais lineares, e definida pela recursao ui = (aui1 + c) mod M ,
para i 1, onde u0 recebe o nome de semente, M de modulo, a de
multiplicador e c de incremento. Se o incremento e nulo trata-se de
um gerador misto, caso contrario de um gerador multiplicativo. Como
exerccio sugerimos implementar um gerador deste tipo e verificar as
sequencias geradas com M = 64, semente arbitraria e
a = 29, c = 17,
a = 9, c = 1,
a = 13, c = 0,
a = 11, c = 0.
(a) y y + 1
(b) s s + px
3. Retornar y
p
Esta razao e, portanto, maximizada
p em x = 1, onde vale 2/e.
Assim sendo, temos que f (x) 2/eg (x), e o algoritmo fica es-
pecificado. Contudo, como gerar as ocorrencias Cauchy? Verifique
que a funcao de distribuicao acumulada da Cauchy padrao e dada por
F (t) = (2 arctan t + )/(2) e, portanto, se U segue uma lei uniforme
em (0, 1) teremos que X = tan((U 1/2)) seguira uma lei Cauchy
padrao. A Tabela 7.1, onde T denota True, isto e, condicao ve-
rificada, e F o contrario, mostra a execucao passo a passo deste
algoritmo.
Pr(C = k) = (1 p)k1 p,
95
96 REFERENCIAS BIBLIOGRAFICAS