Diego Almeida de Oliveira
GOFTESTER: APRIMORAMENTO E
IMPLEMENTAC
¸ ˜
AO DA BIBLIOTECA LIBFIT EM UMA
FERRAMENTA PARA TESTES DE ADERˆ
ENCIA
Florian´opolis
2016
GOFTESTER: APRIMORAMENTO E
IMPLEMENTAC
¸ ˜
AO DA BIBLIOTECA LIBFIT EM UMA
FERRAMENTA PARA TESTES DE ADERˆ
ENCIA
Trabalho de conclus˜
ao de curso
sub-metido ao curso de Bacharelado em
Ciˆencia da Computa¸c˜
ao para a
ob-ten¸c˜
ao do Grau de Bacharel em Ciˆencia
da Computa¸c˜
ao.
Orientador: Prof. Dr. Paulo Jos´e de
Freitas Filho
Florian´opolis
2016
UFSC.
A ficha de identifica¸c˜
ao ´e elaborada pelo pr´
oprio autor
Maiores informa¸c˜
oes em:
GOFTESTER: APRIMORAMENTO E
IMPLEMENTAC
¸ ˜
AO DA BIBLIOTECA LIBFIT EM UMA
FERRAMENTA PARA TESTES DE ADERˆ
ENCIA
Este Trabalho de conclus˜ao de curso foi julgado aprovado para
a obten¸c˜
ao do T´ıtulo de “Bacharel em Ciˆencia da Computa¸c˜
ao”, e
aprovado em sua forma final pelo curso de Bacharelado em Ciˆencia da
Computa¸c˜
ao.
Florian´opolis, 24 de outubro 2016.
Prof. Dr. Renato Cislaghi
Coordenador de Projetos
Banca Examinadora:
Prof. Dr. Paulo Jos´e de Freitas Filho
Orientador
nha namorada, Ta´ıris, e todos os meus
familiares e amigos que sempre me
apoi-aram e me fizeram chegar at´e aqui.
Agrade¸co aos meus queridos pais, Enilce e Jissuy, por toda for¸ca,
carinho, compreens˜
ao, apoio e por sempre me mostrarem o melhor
caminho a ser seguido. Agrade¸co por todo o esfor¸co que fizeram para
criar a mim e meu irm˜ao com dignidade, respeito e educa¸c˜
ao.
Agrade¸co ao meu irm˜ao Lucas pelo companheirismo, amizade e
incentivo em todos os momentos de minha vida.
Agrade¸co meus av´
os Jissuy e Helo´ısa por terem me recebido em
Florian´opolis e me dado a oportunidade de crescer em diversos aspectos.
Agrade¸co aos meus familiares que apesar de muitos estarem
dis-tantes sempre me apoiaram, principalmente meus falecidos av´
os Jo˜ao
Ribeiro e Paschoalina Benedetti, que sem eles eu dificilmente chegaria
t˜ao longe.
Agrade¸co `
a minha namorada Ta´ıris por todo amor, carinho,
aten¸c˜
ao e por ter me ajudado nas v´
arias fases deste trabalho e da
minha gradua¸c˜
ao.
Agrade¸co aos meus amigos e colegas pelos momentos bons que
passamos juntos e por todo apoio dado a minha jornada, tanto na UFSC
quanto fora dela.
Agrade¸co aos meus professores por me passarem seus
conheci-mentos e por terem me ajudado a chegar at´e aqui.
Agrade¸co especialmente ao professor Dr. Paulo Jos´e de Freitas
Filho pelas oportunidades e pela orienta¸c˜
ao para a realiza¸c˜
ao deste
trabalho.
Agrade¸co aos membros da banca Mauro Roisenberg e S´ılvia
Mo-desto Nassar, por aceitarem o convite e pelas considera¸c˜
oes sobre este
trabalho.
Muito obrigado a todas as pessoas que contribu´ıram diretamente
ou indiretamente para que eu completasse mais essa jornada.
And smiles you’ll give and tears you’ll cry
And all you touch and all you see
Is all your life will ever be”
Os testes de aderˆencia s˜ao procedimentos estat´ısticos frequentemente
empregados quando se deseja verificar se uma dada amostra aleat´
oria
de dados adere alguma distribui¸c˜
ao te´orica. Entretanto, para se
apli-car os testes, todo um processo de tratamento dos dados, estimativa
dos parˆ
ametros das distribui¸c˜
oes, gera¸c˜
oes de tabelas de frequˆencia,
entre outros procedimentos, podem ser necess´
arios de se realizar.
To-dos esses procedimentos s˜ao aplicaTo-dos com o aux´ılio computacional, de
modo a agilizar o processo e, principalmente, fornecer para o usu´
ario
uma an´
alise dos resultados atrav´es de dados estat´ısticos e gr´
aficos
visualiz´aveis.
Este trabalho concentrou-se principalmente no
aper-fei¸coamento da biblioteca de testes de aderˆencia libfit, atrav´es da
in-clus˜
ao do teste Qui-Quadrado para algumas distribui¸c˜
oes de
probabi-lidade discretas, e no projeto e desenvolvimento de uma ferramenta
em C++ utilizando o framework Qt. Esta ferramenta, chamada
GOF-Tester, faz uso da libfit para realizar os testes de aderˆencia e gerar
resultados satisfat´
orios para o usu´
ario.
Palavras-chave: Distribui¸c˜
ao de Probabilidade, Teste de Aderˆencia,
Qui-Quadrado, libfit, C++, Qt.
Goodness-of-fit tests are tools frequently employed with the purpose of
verifying whether a given sample of random data fits some theoretical
probability distribution. However, in order to apply the tests, an
ela-borated process of manipulating samples, estimating parameters of
dis-tributions, creating frequency tables, among other procedures, might
be applied. All these procedures can be accomplished with the
sup-port of computers, accelerating the entire process and providing to the
user a solid analysis of the outcomes through statistic data and plotted
graphs. This research focuses mostly in improving the goodness-of-fit
library called libfit, by adding Qui-Square tests for some discrete
distri-butions, and designing and implementing a goodness-of-fit tool using
C++ and Qt framework. This tool, called GOFTester, uses libfit in
order to perform goodness-of-fit tests and provide satisfactory results
to the user.
Keywords: Probability Distribution, Goodness-of-fit Test, Chi-Square,
libfit, C++, Qt.
Figura 1 Fun¸c˜
ao massa da distribui¸c˜
ao Uniforme Discreta . . . 35
Figura 2 Fun¸c˜
ao massa da distribui¸c˜
ao Poisson. . . 36
Figura 3 Fun¸c˜
oes densidades da distribui¸c˜
ao Uniforme . . . 37
Figura 4 Fun¸c˜
oes densidades da distribui¸c˜
ao Exponencial . . . 37
Figura 5 Fun¸c˜
oes densidades da distribui¸c˜
ao Gamma . . . 39
Figura 6 Fun¸c˜
oes densidades da distribui¸c˜
ao Weibull . . . 40
Figura 7 Fun¸c˜
oes densidades da distribui¸c˜
ao Normal . . . 41
Figura 8 Fun¸c˜
oes densidades da distribui¸c˜
ao Lognomal . . . 42
Figura 9 Fun¸c˜
oes densidades da distribui¸c˜
ao Beta . . . 43
Figura 10 Fun¸c˜
oes densidades da distribui¸c˜
ao Triangular . . . 44
Figura 11 Relacionamento entre distribui¸c˜
oes de probabilidade . . . 45
Figura 12 Screenshot do Arena Input Analyzer . . . 54
Figura 13 Screenshot do Oracle Crystal Ball . . . 55
Figura 14 Screenshot do @Risk . . . 56
Figura 15 Diagrama de atividades para teste de aderˆencia vers˜
ao
original libfit . . . 58
Figura 16 Diagrama de classes do namespace fit da vers˜
ao original
da libfit . . . 59
Figura 17 Diagrama de classe da ferramenta GOFTester . . . 70
Figura 18 Tela de obten¸c˜
ao de parˆ
ametros com raiz quadrada como
crit´erio de intervalo do histograma . . . 80
Figura 19 Tela de obten¸c˜
ao de parˆ
ametros com Sturges como crit´erio
de intervalo do histograma . . . 81
Figura 20 Tela de escolha de distribui¸c˜
ao . . . 82
Tabela 1 Estimadores dos Parˆ
ametros de Distribui¸c˜
oes de
Proba-bilidade Discretas e Cont´ınuas. . . 46
Tabela 2 Compara¸c˜
ao de resultados de testes Qui-Quadrado usando
amostras de distribui¸c˜
ao Normal com parˆ
ametros µ = 10 e σ = 5.. 84
Tabela 3 Compara¸c˜
ao de resultados de testes Qui-Quadrado de
distribui¸c˜
ao Poisson com parˆ
ametro λ = 2, 5. . . 85
A-D
Teste Anderson Darling
DP
Distribui¸c˜
ao de Probabilidade
FDA
Fun¸c˜
ao Distribui¸c˜
ao Acumulada
FDP
Fun¸c˜
ao Densidade de Probabilidade
K-S
Teste Kolmogorov-Smirnov
M&S
Modeling and Simulation
MLE
Maximum Likelihood Estimation
a
Parˆ
ametro DP Uniforme Discreta, Uniforme e Triangular
α
Parˆ
ametro de forma e n´ıvel de significˆancia
A
2n
Estat´ıstica do teste Anderson-Darling
b
Parˆ
ametro DP Uniforme Discreta, Uniforme e Triangular
β
Parˆ
ametro DP Exponencial, Gamma, Weibull e Beta
c
Moda da DP Triangular
Dn
Estat´ıstica do teste Kolmogorov-Smirnov
f ej
Frequˆencia esperada em uma classe ou intervalo j
f oj
Frequˆencia observada em uma classe ou intervalo j
Fn(x)
Fun¸c˜
ao de distribui¸c˜
ao emp´ırica
F (x)
Fun¸c˜
ao distribui¸c˜
ao acumulada
f (x)
Fun¸c˜
ao densidade
F M P
Fun¸c˜
ao massa de probabilidade
H0
Hip´
otese nula de teste de hip´
otese
H1
Hip´
otese alternativa de teste de hip´
otese
λ
Parˆ
ametro DP Poisson
µ
M´edia amostral
n
Tamanho de uma amostra de dados
χ
2Estat´ıstica do teste Qui-Quadrado
S
Desvio padr˜
ao de uma amostra
valor p Probabilidade de significˆancia
¯
4.1
Fun¸c˜
ao de verifica¸c˜
ao do tipo das amostras . . . 60
4.2
Classe Histogram: histogram.h . . . 72
4.3
Classe Histogram: cria¸c˜
ao de intervalos . . . 73
4.4
Classe DistributionFit: distribution fit.h . . . 74
4.5
Classe DistributionFit: obten¸c˜
ao de pontos da FDP . . . . 75
4.6
Classe GoodnessOfFit: goodness of fit.h . . . 76
4.7
Classe GoodnessOfFit: aplica¸c˜
ao de teste de aderˆencia . . 77
4.8
Classe GOFTester: gof tester.h . . . 78
1
INTRODUC
¸ ˜
AO . . . .
27
1.1
JUSTIFICATIVA . . . 28
1.2
OBJETIVOS . . . 29
1.2.1 Objetivo Geral . . . 29
1.2.2 Objetivos Espec´ıficos . . . 29
1.3
METODOLOGIA . . . 29
1.4
ESTRUTURA DO TRABALHO . . . 31
2
FUNDAMENTAC
¸ ˜
AO TE ´
ORICA . . . .
33
2.1
DISTRIBUIC
¸ ˜
OES DE PROBABILIDADE . . . 33
2.1.1 Distribui¸
c˜
oes Discretas . . . 34
2.1.1.1 Uniforme Discreta . . . 34
2.1.1.2 Poisson . . . 35
2.1.2 Distribui¸
c˜
oes Cont´ınuas . . . 36
2.1.2.1 Uniforme . . . 36
2.1.2.2 Exponencial . . . 37
2.1.2.3 Gamma . . . 38
2.1.2.4 Weibull . . . 39
2.1.2.5 Normal ou Gaussiana . . . 40
2.1.2.6 Lognormal . . . 41
2.1.2.7 Beta . . . 42
2.1.2.8 Triangular . . . 43
2.1.3 Relacionamento entre as Distribui¸
c˜
oes de
Proba-bilidade . . . 44
2.2
ESTIMAC
¸ ˜
AO DE PAR ˆ
AMETROS DE DISTRIBUIC
¸ ˜
OES
DE PROBABILIDADE . . . 45
2.3
TESTES DE HIP ´
OTESES . . . 47
2.3.1 Testes de Aderˆ
encia . . . 48
2.3.1.1 Teste Qui-Quadrado . . . 48
2.3.1.2 Kolmogorov-Smirnov . . . 49
2.3.1.3 Anderson-Darling . . . 50
3
ESTADO DA ARTE . . . .
53
3.1
ARENA INPUT ANALYZER . . . 53
3.2
ORACLE CRYSTAL BALL . . . 54
3.3
@RISK . . . 55
4
PROPOSTA . . . .
57
4.1
APERFEIC
¸ OAMENTO DA BIBLIOTECA LIBFIT . . . 57
TER . . . 61
4.2.1 An´
alise de Requisitos . . . 62
4.2.1.1 Requisitos Funcionais . . . 62
4.2.1.2 Requisitos N˜
ao-Funcionais . . . 63
4.2.2 Projeto . . . 63
4.2.2.1 Casos de Uso . . . 63
4.2.2.2 Modelagem da Solu¸c˜
ao . . . 69
4.2.3 Implementa¸
c˜
ao . . . 71
4.2.3.1 Classe Histogram . . . 71
4.2.3.2 Classe DistributionFit . . . 74
4.2.3.3 Classe GoodnessOfFit . . . 76
4.2.3.4 Classe GOFTester . . . 78
4.2.3.5 Classe MainWindow . . . 79
4.2.3.6 Classe WidgetSamplesAndHistogram . . . 79
4.2.3.7 Classe WidgetDistribToFit . . . 81
4.2.3.8 Classe WidgetChiResults . . . 82
4.2.4 Avalia¸
c˜
ao . . . 83
5
CONCLUS ˜
AO . . . .
87
REFERˆ
ENCIAS . . . .
89
APˆ
ENDICE A -- Tutorial de utiliza¸
c˜
ao da
ferra-menta GOFTester . . . .
93
APˆ
ENDICE B -- Artigo . . . .
99
APˆ
ENDICE C -- C´
odigo-Fonte . . . 109
1 INTRODUC
¸ ˜
AO
A sociedade atual, em contraste com civiliza¸c˜
oes mais antigas,
j´
a chegou a um patamar em que muitas conquistas foram atingidas e
grandes feitos j´
a foram realizados, como por exemplo a inven¸c˜
ao dos
avi˜
oes, que hoje carregam centenas de pessoas. Por´em, junto a essa
evolu¸c˜
ao, desafios maiores e mais complexos v˜
ao surgindo, como no
caso dos avi˜
oes, no qual um grande desafio era coloc´
a-los no ar com
algum piloto que j´
a possu´ısse alguma experiˆencia de voo sem nunca ter
pilotado antes. Quando algu´em se depara com problemas desse tipo
e tenta contorn´a-los, diversos fatores podem dificult´
a-los e torn´a-los
invi´
aveis ou at´e mesmo imposs´ıveis de serem tratados diretamente.
Para auxiliar nesta tarefa, um dos caminhos ´e o uso do paradigma
de Modelagem e Simula¸c˜
ao de sistemas, ou Modeling and Simulation
(M&S). A simula¸c˜
ao de sistemas, como definido por Shannon (1998),
´e uma t´ecnica usada para projetar um modelo de um sistema real e
fazer experimentos com este modelo, permitindo ent˜ao uma melhor
compreens˜
ao do comportamento do sistema e a possibilidade de avaliar
suas poss´ıveis estrat´egias de operabilidade. M&S pode ser usado em,
por exemplo, modelos para:
• Um sistema de pilotagem de avi˜ao para que se possa fazer
ava-lia¸c˜
oes e otimiza¸c˜
oes do mesmo, ou treinar futuros pilotos;
• Simular a quantidade de clientes por hora nos caixas de um
su-permercado, de forma a se saber em quais hor´
arios ´e necess´ario
ter mais operadores de caixas dispon´ıveis;
• Um sistema de previs˜ao de tempo.
Diversas vari´
aveis aleat´
orias podem estar envolvidas no sistema
real em quest˜ao, cada uma apresentando uma natureza n˜
ao
deter-min´ıstica distinta da outra. Para represent´a-las de forma fiel e confi´avel,
pode-se obter uma amostragem de dados que caracterize esse
compor-tamento. O pr´
oximo passo ´e utilizar modelos estat´ısticos que
repre-sentem bem essas vari´
aveis aleat´
orias. A escolha desse modelo pode
ser realizada com o aux´ılio da estimativa por m´axima verossimilhan¸ca,
que ´e um m´etodo para se estimar os parˆ
ametros de algum modelo
es-tat´ıstico, como por exemplo estimar a m´edia e o desvio padr˜
ao de uma
distribui¸c˜
ao Normal.
Entretanto, apesar da obten¸c˜
ao dos parˆ
ametros de uma
distri-bui¸c˜
ao de probabilidade (DP) n˜
ao ser um procedimento complexo em
alguns casos, ainda ´e preciso medir o qu˜
ao bem um conjunto de dados
segue uma determinada distribui¸c˜
ao, isto ´e, se adere ou n˜
ao a aquela
DP. Atualmente j´
a existem m´etodos que realizam essa avalia¸c˜
ao, que
s˜ao conhecidos como testes de aderˆencia.
Existem diversos tipos de testes de aderˆencia na literatura, sendo
que os testes Anderson-Darling, Qui-Quadrado e Kolmogorov-Smirnov
est˜ao entre os mais conhecidos. Um dos focos deste trabalho ´e dar
continuidade a biblioteca libfit (FORMIGHIERI, 2007), que tem como
principal objetivo a realiza¸c˜
ao de testes de aderˆencia. A biblioteca,
entretanto, fornece somente testes Qui-Quadrado para distribui¸c˜
oes
cont´ınuas. Por este motivo, um dos objetivos ´e aprimorar a biblioteca
com a inclus˜
ao do Qui-Quadrado para distribui¸c˜
oes discretas.
Como apontado por Freitas Filho (2008), uma das maneiras de
avaliar o resultado de um teste de aderˆencia ´e atrav´es da forma visual
fazendo compara¸c˜
ao de gr´
aficos. Ao comparar a distˆancia entre um
histograma gerado atrav´es da amostra de dados e o gr´
afico da
distri-bui¸c˜
ao te´orica, isto ´e, o gr´
afico da distribui¸c˜
ao aderida, quanto menor
a distˆancia melhor ´e a aderˆencia entre as duas. Baseado na avalia¸c˜
ao
visual e te´orica (estat´ıstica), o outro foco deste trabalho ´e no projeto e
implementa¸c˜
ao de uma ferramenta para realizar testes de aderˆencia
uti-lizando a biblioteca libfit, de forma que possua uma interface amig´
avel
no qual o usu´
ario possa, principalmente, avaliar os resultados dos testes
atrav´es de resultados estat´ısticos e com a visualiza¸c˜
ao de gr´
aficos.
1.1 JUSTIFICATIVA
Os testes de aderˆencia s˜ao procedimentos estat´ısticos que j´
a
fo-ram bastante estudados na literatura. Al´em de existir uma infinidade
de estudos realizados, tamb´em existem muitas ferramentas
desenvolvi-das que proveem a realiza¸c˜
ao desses testes. Algumas dessas ferramentas
s˜ao acess´ıveis aos usu´
arios comuns, como os estudantes, enquanto que
outras j´
a n˜
ao s˜ao t˜ao acess´ıveis. Al´em do fato delas muitas vezes terem
custos elevados, geralmente s˜ao de prop´
osito mais geral, como no caso
de alguns softwares para se realizar modelagem e simula¸c˜
ao de sistemas.
Se um usu´
ario deseja realizar somente testes de aderˆencia, ele
acaba se encontrando em uma situa¸c˜
ao no qual ´e preciso obter softwares
mais robustos que possuem testes estat´ısticos acoplados ao seu sistema.
A op¸c˜
ao de se obter uma ferramenta gratuita que realiza os testes, no
qual o usu´
ario pode comparar resultados atrav´es de dados estat´ısticos
ou de forma visual com gr´
aficos, mostra-se uma boa solu¸c˜
ao para esse
problema.
Essa ferramenta, cujo nome atribu´ıdo ´e GOFTester, foi projetada
e desenvolvida de forma a usar a biblioteca libfit para realizar os testes
de aderˆencia. A biblioteca, gra¸cas a sua modularidade, pode ser
aco-plada ao sistema de forma que se possa reaproveitar todas suas fun¸c˜
oes
implementadas, sem a necessidade de reimplementar fun¸c˜
oes de testes
de aderˆencia. Assim, pode-se notar que essa portabilidade permite que
qualquer desenvolvedor reutilize o c´
odigo implementado na libfit em
al-gum programa que ele esteja desenvolvendo, sem a necessidade de que
o programa fique dependente de outras ferramentas.
1.2 OBJETIVOS
Nesta se¸c˜
ao s˜ao apresentados os objetivos gerais e espec´ıficos
deste trabalho.
1.2.1 Objetivo Geral
O objetivo deste trabalho ´e aprimorar a biblioteca libfit e
imple-mentar em uma ferramenta para testes de aderˆencia.
1.2.2 Objetivos Espec´ıficos
1. Identificar quais distribui¸c˜
oes n˜
ao est˜ao presentes na libfit para
realizar o teste Qui-Quadrado, e definir quais ser˜ao
implementa-das.
2. Adicionar `a libfit as distribui¸c˜
oes selecionadas para serem
imple-mentadas.
3. Projetar e implementar uma ferramenta que fa¸ca uso da libfit
para realizar testes de aderˆencia.
4. Avaliar esta ferramenta.
1.3 METODOLOGIA
Para atingir os objetivos deste trabalho, as seguintes etapas s˜ao
realizadas:
Etapa 1: Elabora¸c˜
ao da fundamenta¸c˜
ao te´orica
Com o objetivo de garantir uma s´olida compreens˜
ao da
pro-blem´
atica, de modo que se possa dar inicio a modelagem da solu¸c˜
ao,
primeiro ´e feito um estudo da fundamenta¸c˜
ao te´orica que abrange a
tem´
atica deste trabalho. Assuntos como distribui¸c˜
oes de
probabilida-des, estimativa por m´axima verossimilhan¸ca e testes de aderˆencia s˜
ao
abordados.
Etapa 2: Revis˜ao do estado da arte
´
E feita uma avalia¸c˜
ao de algumas ferramentas j´
a existentes que
aplicam testes de aderˆencia. Deste modo ´e poss´ıvel realizar uma
com-para¸c˜
ao entre as funcionalidades existentes em cada uma delas, e ent˜ao
coletar poss´ıveis requisitos para a modelagem proposta neste trabalho.
Etapa 3: Aprimoramento da biblioteca libfit
Consiste nas atividades:
1. Compreens˜
ao das caracter´ısticas da libfit, por exemplo sua
arqui-tetura (em termos de uma biblioteca em C++), classes e fluxo de
execu¸c˜
ao.
2. Modelagem do aprimoramento da libfit. Com base nas
carac-ter´ısticas da biblioteca, ´e abordada a maneira pelo qual a solu¸c˜
ao,
isto ´e, a inclus˜
ao de novas funcionalidades ser´a realizada.
3. Implementa¸c˜
ao das novas funcionalidades. Trata de aspectos
re-levantes com respeito a implementa¸c˜
ao.
Etapa 4: Projeto da ferramenta GOFTester
Modelagem da ferramenta de testes de aderˆencia, onde s˜ao
rea-lizados procedimentos de engenharia de software, como an´
alise de
re-quisitos, casos de uso e diagrama de classes de projeto.
Etapa 5: Implementa¸c˜
ao da ferramenta GOFTester
Detalhes da implementa¸c˜
ao da ferramenta s˜ao apresentados, como
algumas classes e trechos de c´
odigos mais relevantes.
Etapa 6: Avalia¸c˜
ao da ferramenta
Avalia¸c˜
ao daquilo que se conseguiu obter como resultado deste
trabalho. Compara¸c˜oes entre a ferramenta GOFTester e as
apresenta-das no estado da arte.
1.4 ESTRUTURA DO TRABALHO
Este trabalho est´a dividido em 5 cap´ıtulos, onde s˜ao abordadas
as etapas descritas na se¸c˜
ao 1.3.
No cap´ıtulo 2 ´e feito um estudo da fundamenta¸c˜
ao te´orica, onde
s˜ao apresentados os diferentes tipos de distribui¸c˜
oes de probabilidades
e os relacionamentos entre elas. Em seguida, exp˜
oe-se quest˜oes sobre
a estima¸c˜
ao de parˆ
ametros atrav´es de MLE. Por fim s˜ao apresentados
alguns testes de aderˆencia, com destaque para o Qui-Quadrado.
No cap´ıtulo 3 ´e realizada uma an´
alise do estado da arte,
pesqui-sando e apresentando outros programas que realizam testes de aderˆencia.
No cap´ıtulo 4 ´e abordada a proposta deste trabalho. ´
E feito todo
um processo de modelagem das solu¸c˜
oes e desenvolvimento tanto das
melhorias da libfit quanto da ferramenta GOFTester.
Por fim, no cap´ıtulo 5 trata das considera¸c˜
oes finais, como
con-clus˜
ao, objetivos atingidos e trabalhos futuros.
2 FUNDAMENTAC
¸ ˜
AO TE ´
ORICA
Neste cap´ıtulo s˜ao apresentados os principais temas envolvidos
neste trabalho. Primeiramente, s˜ao expostas as distribui¸c˜
oes de
proba-bilidade implementadas e as que j´
a se encontravam presentes na libfit.
Em seguida, antes de abordar os testes de aderˆencia, ´e feita uma breve
explica¸c˜
ao sobre a obten¸c˜
ao dos parˆ
ametros das distribui¸c˜
oes atrav´es
de estimadores de M´axima Verossimilhan¸ca. Finalmente, s˜ao
aborda-dos os testes de hip´
oteses, sendo os testes de aderˆencia apresentados de
forma mais detalhada com ˆenfase no Qui-Quadrado.
2.1 DISTRIBUIC
¸ ˜
OES DE PROBABILIDADE
Existem in´
umeras classes de distribui¸c˜
oes de probabilidades, cada
uma apresentando uma caracter´ıstica que se mostra ´
util para uma
dife-rente aplica¸c˜
ao. Certas distribui¸c˜
oes possuem propriedades que tˆem se
mostrado bastante ´
uteis em simula¸c˜
oes de sistemas, sendo assim mais
relevantes para este trabalho.
A seguir s˜ao exploradas de forma breve as distribui¸c˜
oes que j´
a
est˜ao presentes na libfit, os quais s˜ao usadas para verificar se uma
amos-tra de dados segue alguma delas. Al´em destas, que s˜ao todas cont´ınuas,
tamb´em s˜ao apresentadas algumas distribui¸c˜
oes discretas
implementa-das neste trabalho. Para ambas cont´ınuas e discretas ser˜ao exibiimplementa-das as
fun¸c˜oes de distribui¸c˜
oes acumuladas (FDA), que s˜ao utilizadas para
re-alizar os testes de aderˆencia e estima¸c˜
ao de parˆ
ametros das distribui¸c˜
oes
(FORMIGHIERI, 2007;
TEN ´ORIO, 2005). Para as distribui¸c˜oes cont´ınuas
ser˜ao tamb´em expostas as fun¸c˜
oes densidades de probabilidade f (x),
ou FDP, e para as discretas as fun¸c˜
oes massa de probabilidade p(x), ou
FMP. Na se¸c˜
ao 2.1.3 discute-se brevemente os relacionamentos entre
as distribui¸c˜
oes e, posteriormente, na se¸c˜
ao 2.2 s˜ao discutidas algumas
formas de se estimar os parˆ
ametros de cada DP.
Como apresentado por Freitas Filho (2008), Banks et al. (2005)
e Law (2015), as distribui¸c˜
oes de probabilidade possuem diversas
pro-priedades e aplica¸c˜
oes, como ´e apresentado nas se¸c˜
oes seguintes.
2.1.1 Distribui¸
c˜
oes Discretas
Distribui¸c˜
oes de probabilidade discretas s˜ao aquelas cujas vari´
aveis
podem ter um n´
umero finito de valores. Tais distribui¸c˜
oes normalmente
representam fenˆ
omenos como o n´
umero de ocorrˆencias de algum evento,
por exemplo o lan¸camento de dados, ou a quantidade de eventos que
ocorrem em um intervalo de tempo. Existem diversas distribui¸c˜oes
discretas, com diferentes aplica¸c˜
oes, como as distribui¸c˜
oes Binomial,
Geom´etrica, Bernoulli, etc. Neste trabalho ser˜
ao abordadas as
distri-bui¸c˜
oes Uniforme Discreta e a Poisson, sendo ambas bastante usadas
em M&S, principalmente a Poisson, utilizada por exemplo na Teoria
de Filas (FREITAS FILHO, 2008).
2.1.1.1 Uniforme Discreta
A Uniforme Discreta ´e uma DP que ´e bastante utilizada quando
os valores aleat´
orios s˜ao inteiros que tˆem a mesma probabilidade de
acontecer, como por exemplo a probabilidade de se obter um n´
umero
es-pec´ıfico no lan¸camento de um dado. ´
E determinada pelos dois parˆ
ametros
a e b, que definem o valor m´ınimo e m´aximo do intervalo,
respectiva-mente, sendo a o parˆ
ametro de localiza¸c˜
ao e b − a o de escala.
p(x) =
(
1 b−a+1se x ∈ {a, a + 1, ..., b}
0
caso contr´ario
F (x) =
0
se x < 1
bxc−a+1 b−i+1se a ≤ x ≤ b
1
se b < x
Figura 1: Fun¸c˜
ao massa da distribui¸c˜
ao Uniforme Discreta
0 2 4 6 8 10 12 0 0.05 0.1 0.15 0.2 0.25 0.3 a=1 b=11Fonte: Elaborada pelo autor.
2.1.1.2 Poisson
De grande importˆancia em M&S, a distribui¸c˜
ao de Poisson ´e
muito utilizada para representar a quantidade de eventos que ocorrem
em um intervalo de tempo. ´
E uma DP simples que possui o parˆ
ametro
λ.
p(x) =
e−λλx x!se x ∈ {0, 1, ...}
e
−λbxcP
i=0 λi i!se 0 ≤ x
F (x) =
0
se x < 0
e
−λbxcP
i=0 λi i!se 0 ≤ x
Figura 2: Fun¸c˜
ao massa da distribui¸c˜
ao Poisson
0 5 10 15 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 λ=0.5 λ=1 λ=6Fonte: Elaborada pelo autor.
2.1.2 Distribui¸
c˜
oes Cont´ınuas
2.1.2.1 Uniforme
Essa ´e a DP mais simples, mas que ´e bastante usada em M&S
na gera¸c˜
ao de eventos aleat´orios, gra¸cas a sua distribui¸c˜
ao uniforme de
valores. ´
E tamb´em utilizada em situa¸c˜
oes quando n˜
ao se tem muita
in-forma¸c˜
ao de alguma vari´
avel aleat´
oria de algum sistema que est´a sendo
simulado, com exce¸c˜
ao dos valores m´ınimo e m´aximo. Os parˆ
ametros
que a definem s˜ao dois: o a, que ´e o parˆ
ametro de localiza¸c˜
ao, assim
como o menor valor do intervalo definido pela distribui¸c˜
ao; e o b, que
´e o parˆ
ametro de escala e o maior valor do intervalo.
f (x) =
(
1 b−ase a ≤ x ≤ b
0
caso contr´ario
F (x) =
0
se x < a
x−a b−ase a ≤ x ≤ b
1
if b < x
Figura 3: Fun¸c˜
oes densidades da distribui¸c˜
ao Uniforme
-2 -1 0 1 2 3 0 0.2 0.4 0.6 0.8 1 a=0 b=1 a=-1 b=2Fonte: Elaborada pelo autor.
2.1.2.2 Exponencial
Distribui¸c˜
ao que geralmente ´e usada para representar o tempo
entre dois eventos que apresentem uma forte aleatoriedade. ´
E
determi-nada pelo parˆ
ametro de escala β.
f (x) =
(
1 βe
−x/βse x ≥ 0
0
caso contr´ario
F (x) =
(
1 − e
−x/βse x ≥ 0
0
caso contr´ario
Figura 4: Fun¸c˜
oes densidades da distribui¸c˜
ao Exponencial
0 1 2 3 4 5 0 0.5 1 1.5 2 λ=1.5 λ=0.5
2.1.2.3 Gamma
A distribui¸c˜
ao Gamma pode ser considerada uma generaliza¸c˜
ao
da distribui¸c˜
ao Exponencial. Ela geralmente ´e utilizada como um
so-mat´
orio de distribui¸c˜
oes exponenciais independentes que representam
um fenˆ
omeno aleat´
orio observado em etapas. ´
E bastante semelhante
a distribui¸c˜
ao Erlang, com a diferen¸ca de que a quantidade de
dis-tribui¸c˜
oes exponenciais da Erlang, no caso da Gamma, pode ser um
n´
umero n˜
ao inteiro (FREITAS FILHO, 2008). Esse n´
umero ´e o parˆ
ametro
de forma, α, enquanto que β ´e o parˆ
ametro de escala, que ´e a m´edia
das distribui¸c˜
oes exponenciais. Ambos valores s˜ao os parˆ
ametros da
distribui¸c˜
ao Gamma.
f (x) =
(
β−αxα−1e−x/β Γ(α)se x > 0
0
caso contr´ario
F (x) =
(
Γp(α, x/β)
se x > 0
0
caso contr´ario
Sendo que a fun¸c˜
ao Γp, chamada de fun¸c˜
ao Gamma Incompleta,
´e obtida da seguinte forma:
Γp
=
1
Γ(a)
Z
x0
e
−tt
α−1dt
(a > 0)
E a fun¸c˜
ao Γ(a), que ´e a fun¸c˜
ao Gamma, ´e definida como:
Γ(a) =
Z
∞0
Figura 5: Fun¸c˜
oes densidades da distribui¸c˜
ao Gamma
0 1 2 3 4 5 6 7 0 0.2 0.4 0.6 0.8 1 α=1 β=1 α=2 β=1 α=3 β=1Fonte: Elaborada pelo autor.
2.1.2.4 Weibull
A Weibull ´e uma distribui¸c˜
ao frequentemente usada por
enge-nheiros para representar uma vari´
avel aleat´
oria de algum sistema ou
equipamento. Normalmente essas vari´
aveis representam algum
compo-nente cr´ıtico de um sistema que represente o tempo para ocorrer alguma
falha no mesmo. Essa distribui¸c˜
ao ´e composta por dois parˆ
ametros, o
α e o β, sendo que o α tem forte influˆencia no formato do corpo da
dis-tribui¸c˜
ao, fazendo com que por exemplo a fun¸c˜
ao densidade da Weibull
tenha o formato de curva semelhante ao da distribui¸c˜
ao Normal, e o β
´e o parˆ
ametro de escala.
f (x) =
(
αβ
−αx
α−1e
−(x/β)αse x > 0
0
caso contr´ario
F (x) =
(
1 − e
−(xβ) αse x > 0
0
caso contr´ario
Figura 6: Fun¸c˜
oes densidades da distribui¸c˜
ao Weibull
0 0.5 1 1.5 2 2.5 3 3.5 4 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 α=0.5 β=1 α=1 β=1 α=2 β=1Fonte: Elaborada pelo autor.
2.1.2.5 Normal ou Gaussiana
Conhecida como a curva com forma de sino, a distribui¸c˜
ao
Nor-mal ´e possivelmente a mais importante entre todas as distribui¸c˜
oes
apresentadas neste trabalho. Um dos principais fatores de sua
im-portˆancia se da gra¸cas ao Teorema Central do Limite, o qual determina
que a soma ou m´edia de v´
arios n´
umeros aleat´
orios tende a formar uma
distribui¸c˜
ao Normal. Essa particularidade faz com essa distribui¸c˜
ao
seja bastante utilizada em M&S (FREITAS FILHO 2008, p. 176). Os
parˆ
ametros s˜ao o µ e o σ, que s˜ao a m´edia e o desvio padr˜
ao, ou os
parˆ
ametros de localiza¸c˜
ao e escala, respectivamente.
f (x) =
√
1
2πσ
2e
−(x−µ)2 /(2σ2
)
para todo n´
umero real x
F (x) = φ(z) =
√
1
2π
Z
z 0e
−x2 /2dx
Sendo z =
x−µσ.
Figura 7: Fun¸c˜
oes densidades da distribui¸c˜
ao Normal
-5 -4 -3 -2 -1 0 1 2 3 4 0 0.2 0.4 0.6 0.8 1 1.2 1.4 μ=0 σ=0.3 μ=0 σ=1 μ=-2 σ=0.5Fonte: Elaborada pelo autor.
2.1.2.6 Lognormal
Como apontado por Law (2015), a distribui¸c˜
ao Lognormal, ao ter
seus valores aplicados a logaritmos naturais, tem o perfil de uma
distri-bui¸c˜
ao Normal. Esse fenˆ
omeno ´e normalmente explorado em vari´
aveis
aleat´
orias que representam tempo para completar alguma tarefa, falhas
de sistemas, entre in´
umeras outras aplica¸c˜
oes. Normalmente ´e usada
quando se tem pouca informa¸c˜
ao com respeito as amostras. Para
rea-lizar os testes de aderˆencia ou obter os parˆ
ametros da distribui¸c˜
ao, ao
inv´es de se utilizar a fun¸c˜
ao de distribui¸c˜
ao acumulada, basta aplicar
o logaritmo natural nos seus valores e ent˜ao tratar a Lognormal como
uma Normal.
f (x) =
(
1 x√2πσ2exp
−(ln x−µ)2 2σ2se x > 0
0
caso contr´ario
F (x) = φ
ln x − µ
σ
Figura 8: Fun¸c˜
oes densidades da distribui¸c˜
ao Lognomal
0 0.5 1 1.5 2 2.5 3 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 μ=0 σ=1 μ=0 σ=0.25Fonte: Elaborada pelo autor.
2.1.2.7 Beta
Por ser bastante simples, ´e uma distribui¸c˜
ao muitas vezes usada
quando n˜
ao se tem dados o suficiente para utilizar uma distribui¸c˜
ao
mais robusta. Entretanto, existem algumas aplica¸c˜
oes em que a Beta
se mostra ´
util, como para representar a propor¸c˜
ao de defeitos em algum
lote de produtos. A distribui¸c˜
ao Beta ´e definida pelos parˆ
ametros de
forma α1
e α2.
f (x) =
(
xα1−1(1−x)α2−1 B(α1,α2)se 0 < x < 1
0
caso contr´ario
F (x) =
1
B(α1, α2)
Z
x 0t
α1−1(1 − t)
α2−1dt
B(z, w) = B(w, z) =
Γ(z)Γ(w)
Γ(z + w)
=
Z
1 0t
z−1(1 − t)
w−1dt
Figura 9: Fun¸c˜
oes densidades da distribui¸c˜
ao Beta
0 0.2 0.4 0.6 0.8 1 0 0.5 1 1.5 2 2.5 3 3.5 4 α1=1.5 α2=5 α1=5 α2=5 α1=2 α2=0.8 α1=0.5 α2=0.5Fonte: Elaborada pelo autor.
2.1.2.8 Triangular
A distribui¸c˜
ao Triangular, devido a sua simplicidade, tamb´em ´e
mais utilizada em situa¸c˜
oes quando n˜
ao se tem muita informa¸c˜
ao. ´
E
definida pelos parˆ
ametros a, b e c, sendo a um parˆ
ametro de localiza¸c˜
ao,
b − a de escala, e c, ou moda, um parˆametro de forma.
f (x) =
2(x−a) (b−a)(c−a)se a ≤ x ≤ c
2(b−x) (b−a)(b−c)se c < x ≤ b
0
caso contr´ario
F (x) =
0
se x < a
(x−a)2 (b−a)(c−a)se a ≤ x ≤ c
1 −
(b−a)(b−c)(b−x)2se c < x ≤ b
1
se b < x
Figura 10: Fun¸c˜
oes densidades da distribui¸c˜
ao Triangular
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 0 0.5 1 1.5 2 a=-1 c=0 b=1 a=-0.5 c=0 b=1 a=-1 c=-1 b=0Fonte: Elaborada pelo autor.
2.1.3 Relacionamento entre as Distribui¸
c˜
oes de Probabilidade
A existˆencia de diversos tipos de distribui¸c˜
oes de probabilidade
aparenta indicar que elas s˜ao completamente diferentes entre elas. Por´em,
existem muitos casos em que uma determinada distribui¸c˜
ao ´e de fato
apenas um caso especial de alguma outra, ou uma pode ser
transfor-mada em outra a partir de uma fun¸c˜
ao de transforma¸c˜
ao. Existem pelo
menos trˆes tipos de relacionamentos entre distribui¸c˜
oes (KOKOSKA;
NE-VISON, 2012):• A distribui¸c˜ao ´e um caso especial de outra;
• A distribui¸c˜ao pode ser transformada em outra;
• A distribui¸c˜ao ´e uma aproxima¸c˜ao de outra. Isto significa que o
limite de algum parˆ
ametro da distribui¸c˜
ao, tendendo a algum
va-lor espec´ıfico, aproxima ela a alguma outra distribui¸c˜
ao (LEEMIS;
MCQUESTON, 2008).Na Figura 11, o diagrama exibe os relacionamentos entre as
dis-tribui¸c˜
oes apresentadas neste trabalho. As flechas com linhas
traceja-das representam os relacionamentos em que a distribui¸c˜
ao ´e uma
apro-xima¸c˜
ao, enquanto que as de linha cont´ınua representam os outros dois
casos.
Figura 11: Relacionamento entre distribui¸c˜
oes de probabilidade
Gamma α, β Uniforme a, b Weibull α, β Qui-Quadrado v Exponencial λ Normal padrão μ=0, σ=1 Lognormal μ, σ Poisson μ Normal μ, σ Uniforme padrão Beta α, β Erlang β, n Triangular a=-1, b=1 ex ln x σ = μ2 μ → ∞ μ = αβ σ = αβ α → ∞ 2 2 X X + X α = β → ∞ α = β → 1 α = n β = 1/n n=1 X + ... + X β = v/2 α=2 α=1 β = 1/λ v=2 λ=1/2 X1/α α=1 -(1/λ) ln X X - X a=0 b=1 a+(b-a)X X-μ σ μ+σX X + ... + X1 1 2 n 2 2 1 n 1 2 1Fonte: Adaptado de Kokoska e Nevison (2012).
2.2 ESTIMAC
¸ ˜
AO DE PAR ˆ
AMETROS DE DISTRIBUIC
¸ ˜
OES DE
PRO-BABILIDADE
Um dos principais prop´
ositos deste trabalho ´e a aplica¸c˜
ao dos
testes de aderˆencia para verificar se os dados obtidos pelo usu´
ario
se-guem alguma distribui¸c˜
ao te´orica de probabilidades. Por´em, apenas
com os dados brutos n˜
ao ´e poss´ıvel fazer qualquer conclus˜ao em rela¸c˜ao
a aderˆencia deles. Por essa raz˜
ao, a primeira etapa antes de realizar
os testes ´e organizar os dados de modo que eles fa¸cam mais sentido
e apresentem alguma forma, para que ent˜
ao se possa proceder com a
estimativa dos parˆ
ametros. Para realizar a primeira tarefa, pode-se
organizar os dados em tabelas de frequˆencias e histogramas, enquanto
que para a obten¸c˜
ao dos parˆ
ametros existem os estimadores de M´axima
Verossimilhan¸ca.
em classes de frequˆencia. Para se gerar essas classes, uma possibilidade
´e criar uma tabela de frequˆencia que filtre todos os dados da amostra
em suas respectivas classes. Contudo, n˜
ao existe uma regra ´
unica para
definir a quantidade de classes. Uma das formas, como sugerido por
Scott (1979), ´e usar (1 + log
10n) classes, sendo n o total de amostras.
Outras sugest˜oes s˜ao
√
n ou
√
32n classes (BIRTA; ARBEZ, 2007). Por´em,
como indicado por Law (2015), a obten¸c˜
ao do n´
umero de classes ´e uma
tarefa subjetiva, sendo ent˜ao indicado que se tente diversos valores at´e
obter um histograma com varia¸c˜
oes mais suaves. Obtido um
histo-grama que melhor represente os dados amostrais, a pr´
oxima etapa ´e
estimar os parˆ
ametros das distribui¸c˜
oes.
Tabela 1: Estimadores dos Parˆ
ametros de Distribui¸c˜
oes de
Probabili-dade Discretas e Cont´ınuas.
Distribui¸
c˜
ao
Parˆ
ametro(s)
Estimador
Uniforme Discreta
i, j
i = min
1≤k≤n
Xk
,
j = max
1≤k≤nXk
Poisson
λ
λ = ¯
X(n)
Uniforme
a, b
a = min
1≤i≤n
Xi,
j = max
1≤i≤nXi
Exponencial
β
β = ¯
X(n)
Gamma
α, β
α =
XS¯22,
β =
S2 ¯ XWeibull
α, β
α: obtido utilizando o m´etodo
de Newton
β =
n P i=1 Xiα n
1/αNormal
µ, σ
µ = ¯
X(n)
σ =
n−1 nS
2(n)
12Lognormal
µ, σ
ver se¸c˜
ao 2.1.2.6
Beta
α, β
α = ¯
X
hh
¯ X(1− ¯X) S2i
− 1
i
β = ( ¯
X − 1)
hh
X(1− ¯¯ S2X)i
− 1
i
Triangular
a, b
a = min
1≤i≤n
Xi,
b = max
1≤i≤nXi
Fonte: Law (2015)
Like-lihood Estimation
(MLE), ´e uma t´ecnica usada para obter, isto ´e,
esti-mar os parˆ
ametros de algum modelo estat´ıstico. Como mencionado
por Law (2015), esse procedimento usufrui de algumas ferramentas
para a estima¸c˜
ao dos parˆ
ametros de algumas distribui¸c˜
oes de
proba-bilidade, como a fun¸c˜
ao de log-verossimilhan¸ca ou atrav´es de
diferen-cia¸c˜
ao. Por´em, essas duas t´ecnicas n˜
ao s˜ao aplic´aveis para todas as
distribui¸c˜
oes, sendo que em alguns casos ´e preciso recorrer a m´etodos
num´ericos. Na literatura j´
a existem f´
ormulas e m´etodos para se obter
os parˆ
ametros de todas as distribui¸c˜
oes usadas neste trabalho, como
apresentado na Tabela 1.
Finalmente, feita a estima¸c˜
ao dos parˆ
ametros, o pr´
oximo passo
´e a realiza¸c˜
ao dos testes de aderˆencia para verificar se a amostra segue
alguma distribui¸c˜
ao de probabilidades.
2.3 TESTES DE HIP ´
OTESES
A estima¸c˜
ao dos parˆ
ametros ´e uma etapa crucial quando se tem
como objetivo verificar se uma amostra segue alguma distribui¸c˜
ao.
Por´em, ´e bastante improv´
avel que a amostra siga perfeitamente a
dis-tribui¸c˜
ao te´orica com os parˆ
ametro estimados. O fato de que, entre as
in´
umeras distribui¸c˜
oes te´oricas, a amostra ir´
a melhor aderir
possivel-mente sopossivel-mente uma delas, ´e um indicativo de que, mesmo obtendo os
parˆ
ametros atrav´es de MLE, existe uma probabilidade de que a amostra
siga uma outra DP ao inv´es da distribui¸c˜
ao verificada.
Para se medir o qu˜ao bem uma amostra segue um determinado
modelo ou distribui¸c˜
ao, uma alternativa s˜ao os testes de aderˆencia, que
s˜ao uma classe de testes de hip´
oteses. De modo geral, o objetivo de
um teste de hip´oteses ´e verificar se alguma afirma¸c˜
ao em rela¸c˜
ao a um
conjunto de dados ´e verdadeira. Essa afirma¸c˜
ao ´e chamada de hip´
otese
nula, denotada por H0, enquanto que a hip´
otese que rejeita, isto ´e, que
contraria H0, ´e denotada por H1. Ao declarar uma afirma¸c˜
ao, seja ela
H0
ou H1, a ideia ´e criar um modelo de decis˜
ao sobre um conjunto de
dados para concluir se essa afirma¸c˜
ao ´e realmente verdadeira. Se for
conclu´ıdo que a afirma¸c˜
ao estava errada, o que se diz ´e que foi um erro
dizer que ela era verdadeira.
Ao se concluir que H0
ou H1
s˜ao verdadeiras, pode-se cair em
uma situa¸c˜
ao no qual essa conclus˜ao estava errada. Por exemplo, a
hip´
otese nula pode ser de fato verdadeira, mas foi conclu´ıdo
erronea-mente que ela ´e falsa. De acordo com Kelton, Sadowski e Sadowski
(1998), esse tipo de erro ´e conhecido como erro do tipo I, e est´a
as-sociado com o n´ıvel de significˆancia α. O n´ıvel de significˆancia ´e a
probabilidade de se rejeitar H0
quando esta na verdade ´e verdadeira,
sendo assim um falso positivo. Um outro tipo erro ´e o erro do tipo
II, ou β, que ocorre quando H0
´e falsa mas n˜
ao ´e rejeitada, ou seja,
quando houve um falso negativo. Ambos os casos s˜ao definidos pelas
equa¸c˜
oes a seguir:
P (H1|H0
V ) = P (erro tipo I) = α
P (H0|H1
V ) = P (erro tipo II) = β
Existem v´
arios tipos de testes aplic´aveis em diversas situa¸c˜
oes.
Trˆes desses testes s˜ao apresentados neste trabalho, sendo eles o
Qui-Quadrado, Kolmogorov-Smirnov e Anderson-Darling, que s˜ao testes de
aderˆencia.
2.3.1 Testes de Aderˆ
encia
Os testes de aderˆencia s˜ao testes de hip´
oteses em que se deseja
verificar se um conjunto de dados segue (adere) alguma distribui¸c˜
ao
de probabilidade (LAW, 2015). Por se tratar de um tipo de teste de
hip´
oteses, visa-se verificar se a hip´
otese nula H0
´e verdadeira. Nesse
caso, a hip´
otese nula ´e a seguinte:
H0: a amostra ´e composta por vari´
aveis aleat´
orias com fun¸c˜
ao
dis-tribui¸c˜
ao acumulada F .
Neste trabalho s˜ao apresentados os testes Qui-Quadrado,
Kolmogorov-Smirnov a Anderson-Darling. Entretanto, devido a algumas quest˜oes
que dificultam a implementa¸c˜
ao dos dois ´
ultimos, como explicado nas
se¸c˜
oes abaixo, somente o Qui-Quadrado ´e implementado. Os outros
dois testes poder˜
ao ser implementados em trabalhos futuros.
2.3.1.1 Teste Qui-Quadrado
O teste Qui-Quadrado tem como primeiro passo a separa¸c˜
ao das
amostras em k classes (ou intervalos), no qual para cada classe j existe
uma probabilidade te´orica pj
associada, isto ´e, um valor que representa
a propor¸c˜
ao de dados naquele intervalo referente a distribui¸c˜
ao que se
est´a verificando a aderˆencia.
Por conseguinte, para se obter a estat´ıstica do teste Qui-Quadrado
χ
2, calcula-se a equa¸c˜
ao (FREITAS FILHO, 2008):
χ
2=
kX
j=1(f oj
− fej)
2f ej
Onde f oj
´e a frequˆencia observada na classe j, e f ej
´e a frequˆencia
esperada f ej
= npj, sendo n o total de amostras.
Quanto maior χ
2, pode-se se dizer que menos a amostra adere a
distribui¸c˜
ao em quest˜ao. Portanto, se χ
2= 0, ent˜ao a amostra segue
perfeitamente a distribui¸c˜
ao de probabilidade.
Entretanto, como geralmente uma amostra n˜
ao segue uma
dis-tribui¸c˜
ao com χ
2= 0, o que se verifica ´e se a amostra segue
aproxima-damente a distribui¸c˜
ao com v = k − 1 − p graus de liberdade, sendo p a
quantidade de parˆ
ametros da distribui¸c˜
ao te´orica com adi¸c˜
ao de mais
uma unidade.
Uma das formas de realizar essa verifica¸c˜
ao ´e atrav´es da obten¸c˜
ao
do valor p, que em termos gerais indica a probabilidade em se obter
com a distribui¸c˜
ao te´orica um mesmo valor obtido com a amostra, sendo
que quanto menor o p, menor ´e essa probabilidade. Assim, define-se
um n´ıvel de significˆ
ancia α, que ´e um indicador da probabilidade de
se rejeitar H0
sendo ela verdadeira, ou seja, em se cometer um erro do
tipo I, e verifica-se se valor p
≤ α. Se verdadeira, ent˜ao a hip´otese nula
´e rejeitada.
O Qui-Quadrado ´e o ´
unico teste de aderˆencia implementado na
libfit. Mais detalhes sobre o teste e sua implementa¸c˜ao s˜ao apresentados
em Formighieri (2007).
2.3.1.2 Kolmogorov-Smirnov
O teste Kolmogorov-Smirnov (K-S), ao contr´ario do Qui-Quadrado,
n˜
ao precisa que as amostras sejam separadas em classes, evitando ent˜ao
perda de informa¸c˜
ao. O que ´e feito ´e uma compara¸c˜
ao entre uma fun¸c˜
ao
de distribui¸c˜
ao emp´ırica Fn(x) e F (x) (LAW, 2015). Ainda em
com-para¸c˜
ao com o Qui-Quadrado, de acordo com Bratley, Fox e Schrage
(1987), o K-S tende a ser mais preciso, dado que o seu resultado ´e exato
para qualquer tamanho n da amostra, enquanto que o Qui-Quadrado
´e baseado em uma aproxima¸c˜
ao que ser´a satisfat´
oria somente quando
se tem um n grande.
O teste ´e realizado atrav´es do c´
alculo da estat´ıstica Dn, que ´e
basicamente a maior distˆancia vertical entre Fn(x) e F (x). A estat´ıstica
Dn
para uma amostra formada pelos valores ordenados X1, X2, ...Xn
pode ser calculada da seguinte forma:
Dn
= max{D
+ n, D
−n}
Sendo que,
D
+ n= max
1≤i≤ni
n
− F (Xi)
,
D
− n= max
1≤i≤nF (Xi) −
i − 1
n
Para verificar se a hip´
otese nula ´e verdadeira, isso pode ser feito
usando uma tabela gen´erica (isto ´e, que aplic´avel para qualquer
dis-tribui¸c˜
ao cont´ınua) de valores cr´ıticos do K-S para um dado n´ıvel de
significˆancia α e n amostras. Se Dn
´e maior que o valor cr´ıtico obtido
na tabela, ent˜ao H0
´e rejeitada.
Por´em, embora o K-S possui algumas vantagens em rela¸c˜
ao ao
Qui-Quadrado, como j´
a mencionado, ele apresenta tamb´em algumas
desvantagens. Na pr´
atica o K-S ´e aplic´avel somente para distribui¸c˜
oes
cont´ınuas e, al´em disso, o teste usando a tabela ´e somente consistente
quando os parˆ
ametros das distribui¸c˜
oes s˜ao todos conhecidos, ou seja,
n˜
ao foram estimados. Existem algumas adapta¸c˜
oes do K-S para
al-gumas distribui¸c˜
oes cujo parˆ
ametros foram estimados, como pode ser
visto em Law (2015). A tabela gen´erica pode ser utilizada para todas
distribui¸c˜
oes com parˆ
ametros estimados ou n˜
ao, mas o teste perder´
a
um pouco de sua confiabilidade.
2.3.1.3 Anderson-Darling
Como j´
a mencionado, o prop´
osito geral do K-S ´e obter a maior
diferen¸ca entre a distribui¸c˜
ao acumulada emp´ırica e a te´orica. Por´em,
ele tem a desvantagem de n˜
ao considerar os casos quando as
maio-res diferen¸cas ficam na cauda da distribui¸c˜ao, j´
a que o K-S fornece o
mesmo peso para a diferen¸ca |F
n(x) − F (x)| para qualquer x. Um
ou-tro m´etodo, desenvolvido por Anderson e Darling (1954), prop˜
oe um
teste semelhante ao K-S, mas que ´e baseado no quadrado da diferen¸ca
das distribui¸c˜
oes acumuladas emp´ıricas e te´oricas. Esse m´etodo,
cha-mado de teste Anderson-Darling (A-D), consegue detectar os casos das
distribui¸c˜
oes que possuem maiores diferen¸cas na cauda, e possui uma
capacidade maior que o K-S na verifica¸c˜
ao da aderˆencia (LAW, 2015).
A estat´ıstica A
2n
do A-D pode ser obtida da seguinte forma:
A
2n=
−
(
nX
i=1(2i − 1)[ln F (Xi) + ln(1 − F (Xn+1−i
))]
)
/n
!
− n
Entretanto, assim como para o K-S, quando os parˆ
ametros das
distribui¸c˜
oes foram estimados, uma adapta¸c˜
ao da estat´ıstica A
2n
e da
tabela de valores cr´ıticos precisa ser utilizada.
Embora o A-D possua essa desvantagem, Cheng e Currie (2009)
prop˜
oe um m´etodo para obter os valores cr´ıticos do A-D das
distri-bui¸c˜
oes que n˜
ao possuem tabelas atrav´es do processo de bootstrap.
3 ESTADO DA ARTE
Aderˆencia de dados s˜ao procedimentos estat´ısticos que podem ser
encontrados em diversas ferramentas. Entre as mais conhecidas, todas
tˆem os testes de aderˆencia como funcionalidades adicionais dentro de
um escopo de prop´
osito um pouco mais geral, como por exemplo o
Arena, que tem enfoque em M&S, ou o @Risk, que ´e uma add-in do
Microsoft Excel voltado para an´
alise de riscos.
Neste cap´ıtulo s˜ao apresentados alguns destes programas, sendo
avaliadas quest˜oes como gratuidade, se ´e um add-in, tipos de testes de
aderˆencia, etc. Todas as avalia¸c˜
oes focam somente em quest˜oes
relacio-nadas a execu¸c˜
ao dos testes de aderˆencia, portanto caracter´ısticas que
n˜
ao tem rela¸c˜
ao aos testes n˜
ao s˜ao considerados, como por exemplo
alguns dados relacionados a an´
alise de risco.
3.1 ARENA INPUT ANALYZER
O Arena Input Analyzer ´e um componente que acompanha o
software de simula¸c˜
ao de eventos discretos Arena. O Arena, lan¸cado
em 1982
1, ´e um software bastante conhecido e utilizado na ´
area de
simula¸c˜
ao. Apesar de ser um programa pago, existe uma vers˜
ao para
estudantes com poucas limita¸c˜
oes em rela¸c˜
ao a vers˜ao paga.
No Arena Input Analyzer, o usu´
ario pode tanto gerar as amostras
com base em alguma distribui¸c˜
ao, como tamb´em obtˆe-las a partir de
algum arquivo. Ap´
os a obten¸c˜
ao das amostras, o usu´
ario pode escolher
uma distribui¸c˜
ao espec´ıfica para aderir, ou escolher a op¸c˜
ao ”Fit All”,
que aplica os testes para todas as distribui¸c˜
oes dispon´ıveis e seleciona
a que obtiver o melhor resultado.
Existem dois tipos de testes utilizados: o Qui-Quadrado e o
Kolmogorov-Smirnov. Ambos s˜ao sempre aplicados nos testes de aderˆencia.
Embora simples de usar, o Input Analyzer carece de algumas
funcionalidades, como a exibi¸c˜
ao dos resultados de todas distribui¸c˜
oes
aderidas, sendo elas ordenadas pelo melhor resultado, e informa¸c˜
oes
sobre os eixos do gr´
afico.
Figura 12: Screenshot do Arena Input Analyzer
Fonte: Arena Input Analyzer, resultados do teste de aderˆencia.
3.2 ORACLE CRYSTAL BALL
O Crystal Ball ´e um add-in do programa Microsoft Excel lan¸cado
em 1987, cujo prop´osito principal ´e sua aplica¸c˜
ao em an´
alise de riscos,
mas que oferece tamb´em testes de aderˆencia de dados. N˜
ao existe
vers˜ao gratuita, somente uma vers˜ao de teste ou paga.
Por ser um add-in do Excel, os dados podem tanto ser obtidos a
partir da interface do Excel, como tamb´em podem ser obtidos a partir
da leitura de um arquivo. Quanto aos testes de aderˆencia, o usu´
ario
pode escolher qualquer uma entre todas as distribui¸c˜
oes para serem
aderidas, assim como para os tipos de testes. Existem trˆes testes: o
Qui-Quadrado, o Kolmogorov-Smirnov e o Anderson-Darling, sendo
que somente um poder´
a ser aplicado.
Os resultados s˜ao exibidos atrav´es da compara¸c˜
ao gr´
afica entre o
histograma e as curvas das fun¸c˜
oes de probabilidade das distribui¸c˜
oes,
assim como atrav´es de dados estat´ısticos. As distribui¸c˜
oes s˜ao
ordena-das pelo melhor resultado, de modo que o usu´
ario pode ir escolhendo
entre uma delas para ser plotada no gr´
afico comparativo.
O Crystal Ball oferece uma interface de usu´
ario bastante simples
de usar e amig´
avel. Por´em, uma melhoria poderia ser a possibilidade de
aplicar e exibir os resultados de mais de um tipo de teste de aderˆencia.
Outra seria poder visualizar mais de uma curva ao mesmo tempo no
gr´
afico comparativo.
Figura 13: Screenshot do Oracle Crystal Ball
Fonte: Oracle Crystal Ball, resultados do teste de aderˆencia.
3.3 @RISK
Assim como o Crystal Ball, o @Risk ´e um add-in do Microsoft
Excel para an´
alise de riscos, e sua primeira vers˜ao foi lan¸cada em 1987.
N˜
ao existe uma vers˜ao gratuita, somente vers˜ao de teste ou paga.
A obten¸c˜
ao das amostras ´e feita a partir da planilha do Excel,
enquanto que para realizar os testes de aderˆencia, a ferramenta oferece
bastante liberdade ao usu´
ario. ´
E poss´ıvel n˜
ao somente escolher as
dis-tribui¸c˜
oes e os tipos de testes, mas tamb´em o crit´erio de defini¸c˜
ao dos
intervalos da tabela de frequˆencia do Qui-Quadrado, e a possibilidade
de usar bootstrap. Os testes de aderˆencia s˜ao os mesmos do Crystal
Ball, sendo que todos s˜ao automaticamente aplicados.
Assim como no Crystal Ball, os resultados mostram as
distri-bui¸c˜
oes ordenadas de acordo com a melhor aderˆencia, por´em no @Risk
o usu´
ario pode visualizar os resultados de qualquer tipo de teste
(Qui-Quadrado, Anderson-Darling, etc). Al´em disto, o usu´
ario tem a
liber-dade de escolher quais distribui¸c˜
oes ser˜
ao plotadas no gr´
afico
compa-rativo.
Um outro diferencial ´e a possibilidade de aplicar bootstrap nos
testes K-S e A-D, o qual, como mencionado anteriormente, pode ser
utilizado para os casos em que os parˆ
ametros das distribui¸c˜
oes foram
estimados.
Figura 14: Screenshot do @Risk
4 PROPOSTA
Neste cap´ıtulo ser˜
ao apresentados os problemas e as modelagens
das solu¸c˜
oes para tanto o aprimoramento da libfit quanto para a
im-plementa¸c˜
ao da ferramenta de testes de aderˆencia.
4.1 APERFEIC
¸ OAMENTO DA BIBLIOTECA LIBFIT
A biblioteca libfit, como j´
a citado anteriormente, ´e uma
ferra-menta que congrega in´
umeras fun¸c˜
oes estat´ısticas, cujo objetivo
prin-cipal ´e poder aplicar testes de aderˆencia de dados. Entre os variados
testes existentes na literatura, o teste Qui-Quadrado foi o escolhido e
implementado na primeira vers˜
ao da biblioteca. Tal teste ´e
possivel-mente o mais conhecido e implementado em softwares, talvez por ser
o mais antigo e mais simples de implementar. Entretanto, na libfit
o Qui-Quadrado ´e aplic´avel somente em distribui¸c˜
oes cont´ınuas. Por
esta raz˜
ao este trabalho prop˜
oe a inclus˜
ao das distribui¸c˜
oes discretas
Uniforme Discreta e Poisson.
Nesta se¸c˜
ao ser˜
ao apresentadas algumas caracter´ısticas da libfit,
tais como suas classes e como elas comunicam entre elas para aplicar
os testes de aderˆencia, de forma que em seguida seja poss´ıvel realizar a
modelagem da solu¸c˜
ao do problema aqui proposto.
4.1.1 Caracter´ısticas da biblioteca
Por se tratar de uma biblioteca, isto ´e, um conjunto de fun¸c˜
oes
aplic´aveis em outros programas, ´e desej´
avel que ela possua uma
inter-face simples e concisa, de forma que garanta uma intercomunica¸c˜
ao
efi-ciente e segura entre a aplica¸c˜
ao e a biblioteca. Nessa interface, alguns
detalhes internos n˜
ao precisam (muitas vezes n˜
ao devem) ser acess´ıveis
pela aplica¸c˜
ao, induzindo a uma abstra¸c˜
ao daquilo que ´e irrelevante
para o programa.
Figura 15: Diagrama de atividades para teste de aderˆencia vers˜ao
ori-ginal libfit
Inicio teste aderência
Escolher distribuição para testar aderência de
dados
parâmetros da distribuição já definidos?
Obter parâmetros através de estimativa
por máxima verossimilhança
Gerar distribuição com parâmetros obtidos
Gerar tabela de frequência
Aplicar teste Chi-Quadrado Obter resultados do teste: valor-p e estatística Chi-Quadrado não sim