Você está na página 1de 100

Minicurso de Estatstica Bsica: Minicurso de Estatstica Bsica: Introduo ao software R

Ministrantes:
Bruno Fontana da Silva Jean Diniz Matias Amrico Bortoluzzi

Nome: _______________

http://www.ufsm.br/pet-ee Programa de Educao Tutorial - Engenharia Eltrica Universidade Federal de Santa Maria Santa Maria, Abril de 2009

Sumrio
1 Prefcio 1.1 O Projeto R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Programa de Educao Tutorial - Engenharia Eltrica (UFSM) . . . . . . 2 Introduo 2.1 Apresentando o R . . . . . . . . . . . . . . . . . 2.2 Interface do R . . . . . . . . . . . . . . . . . . . 2.3 Sintaxe do R . . . . . . . . . . . . . . . . . . . . 2.4 Tinn-R Editor . . . . . . . . . . . . . . . . . . . 2.5 Tipos de Dados . . . . . . . . . . . . . . . . . . 2.6 Comandos Bsicos . . . . . . . . . . . . . . . . . 2.6.1 Utilizando Ajuda . . . . . . . . . . . . . . 2.6.2 Atribuio de Valores . . . . . . . . . . . 2.6.3 Comandos Auxiliares . . . . . . . . . . . . 2.6.4 Operaes matemticas simples . . . . . . 2.6.5 Funes matemticas simples . . . . . . . 2.6.6 Nmeros complexos . . . . . . . . . . . . 2.7 Vetores e Matrizes . . . . . . . . . . . . . . . . . 2.7.1 Denio . . . . . . . . . . . . . . . . . . 2.7.2 Declarao de vetores . . . . . . . . . . . 2.7.3 Arrays e Matrizes - Denio e Declarao 2.7.4 Operaes e funes com Matrizes . . . . 2.8 Entrada de Arquivos Externos . . . . . . . . . . . 2.9 Arquivos provenientes da internet . . . . . . . . . 5 5 6 7 7 7 8 8 9 10 11 11 12 13 13 14 15 15 15 16 17 19 21 22 22 22 24 25 27 27 29 30 32 33

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

3 Grcos 3.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Comandos Bsicos . . . . . . . . . . . . . . . . . . 3.1.2 Criando Novas Janelas Grcas e Salvando Grcos 3.1.3 Outras Funcionalidades . . . . . . . . . . . . . . . 3.2 Grcos de Anlise Descritiva . . . . . . . . . . . . . . . . 3.2.1 Histograma . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Barplot . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Boxplot . . . . . . . . . . . . . . . . . . . . . . . . 3.2.4 Grco de Ramo e Folhas . . . . . . . . . . . . . . 3.2.5 Grco de Pizza . . . . . . . . . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

4 Estatstica Descritiva 34 4.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.2 Medidas de Posio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2

4.3

4.4

4.2.1 Mdia Aritmtica X . . . . . 4.2.2 Mediana Md . . . . . . . . 4.2.3 Moda Mo . . . . . . . . . 4.2.4 Quartis (Q) . . . . . . . . . 4.2.5 Percentis (P) . . . . . . . . . 4.2.6 Decis (D) . . . . . . . . . . Medidas de Disperso . . . . . . . . 4.3.1 Introduo . . . . . . . . . . 4.3.2 Amplitude Total (A) . . . . . 4.3.3 Varincia ( 2 ) . . . . . . . . 4.3.4 Desvio-padro () . . . . . . 4.3.5 Coeciente de Variao (CV) Exemplo Aplicado . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

34 35 36 37 38 39 40 40 40 41 42 43 43

5 Probabilidade 46 5.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.2 Probabilidade - Denio . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.3 Axiomas da Probabilidade . . . . . . . . . . . . . . . . . . . . . . . . . 49 6 Variveis Aleatrias 6.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Variveis Aleatrias Discretas . . . . . . . . . . . . . . . 6.2.1 Introduo . . . . . . . . . . . . . . . . . . . . . 6.2.2 Distribuio Binomial - X b(n,p) . . . . . . . . 6.2.3 Distribuio De Poisson - X P() . . . . . . . . 6.3 Variveis Aleatrias Contnuas . . . . . . . . . . . . . . . 6.3.1 Introduo . . . . . . . . . . . . . . . . . . . . . 6.3.2 Distribuio Normal ou Gaussiana - X N(, 2 ) 6.3.3 Distribuio de Weibull - X W(,) . . . . . . 6.3.4 Distribuies no R . . . . . . . . . . . . . . . . . 50 50 50 50 50 53 55 55 55 58 60 61 61 61 62 62 62 64 67 68 68 68 72 74 77 77 78 81

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

7 Inferncia Estatstica 7.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.1 Hipteses Unilaterais e Bilaterais . . . . . . . . . . 7.2 Testes de Hiptese - Uma amostra . . . . . . . . . . . . . 7.2.1 Introduo . . . . . . . . . . . . . . . . . . . . . . 7.2.2 Teste para a Mdia . . . . . . . . . . . . . . . . . 7.2.3 Teste para a Varincia de uma populao normal . . 7.2.4 Teste para uma Proporo Binomial . . . . . . . . . 7.3 Testes de Hiptese - Duas amostras . . . . . . . . . . . . . 7.3.1 Introduo . . . . . . . . . . . . . . . . . . . . . . 7.3.2 Teste para a mdia . . . . . . . . . . . . . . . . . . 7.3.3 Teste para as varincias de duas populaes normais 7.3.4 Teste para duas propores . . . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

8 Regresso e Correlao Linear Simples 8.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Determinando a Equao Linear (Regresso) . . . . . . . . . . . . . . . 8.3 Coeciente de Correlao (r) . . . . . . . . . . . . . . . . . . . . . . . 3

8.4 8.5

Coeciente de Determinao (r2 ) . . . . . . . . . . . . . . . . . . . . . 82 Exemplo Aplicado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 86 86 86 87 87 89 95

9 Programao em Linguagem R 9.1 Introduo . . . . . . . . . . . . . . . 9.2 Interao com o Usurio . . . . . . . . 9.3 Estruturas de Controle da Linguagem R 9.3.1 Instrues Condicionais . . . . 9.3.2 Instrues Iterativas . . . . . . 10 Referncias Bibliogrcas

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

Estatstica Bsica: Introduo ao R

Captulo 1. Prefcio

1
Prefcio
1.1 O Projeto R
R uma linguagem e ambiente para computao estatstica e grcos. Faz parte da losoa do Projeto GNU e est disponvel como Software Livre sob os termos da Licena Pblica Geral do GNU da Fundao do Software Livre (Free Software Foundations GNU General Public License) na forma de cdigo fonte. Ele compila e roda sobre uma larga variedade de plataformas UNIX e sistemas similares (incluindo FreeBSB e Linux), Windows e MacOS. R uma srie integrada de instalaes de softwares para manipulao de dados, clculo e exibio grca. Dentre outras coisas, possui: uma manipulao de dados ecaz e facilidade de armazenamento; uma srie de operadores para clculos com arranjos, especialmente matrizes; uma extensa, coerente e integrada coleo de ferramentas intermedirias para anlise de dados; instalaes grcas para anlises de dados e exibio tanto direta no computador quanto para cpia permanente (impresses); uma bem desenvolvida, simples e ecaz linguagem de programao (chamada S) a qual inclui condies, loops, funes recursivas denidas pelo usurio e instalaes de entradas e saidas (de fato, a maioria das funes providas no sistema so propriamente escritas na linguagem S). R mais um veculo para novos mtodos em desenvolvimento de anlise de dados. Tem se desenvolvido rapidamente e tem sido estendido por uma extensa coleo de pacotes. Entretanto, muitos programas escritos em R so essencialmente passageiros, escritos para uma pequena parte de anlise de dados. Vrias pessoas utilizam o R como um sistema estatstico. Porm, o fato que o R proporciona um ambiente interior com vrias tcnicas estatsticas, clssicas e modernas, que foram implementadas dentro do software. Algumas esto compiladas dentro da base do ambiente R, mas vrias so disponibilizadas como pacotes. H em torno de 25 pacotes disponveis com R (chamados pacotes/packages padres/standards e recomendados/recommended) e muitos outros disnponveis atravs da famlia CRAN em sites da Internet (via http://CRAN.R-project.org), dentre outros. Voc pode buscar estes pacotes e sua documentao de acordo com a necessidade e avano na utilizao do R.

Estatstica Bsica: Introduo ao R

Captulo 1. Prefcio

1.2

Programa de Educao Tutorial - Engenharia Eltrica (UFSM)

Esta apostila foi elaborada pelo grupo PET Engenharia Eltrica (PET-EE) da Universidade Federal de Santa Maria (UFSM) com o objetivo de fornecer um guia de introduo ao software R e sua aplicao bsica na rea de estatstica. Esta documentao de distribuio livre para qualquer pessoa que obter acesso a mesma, podendo ser editada, modicada e redistribuda da forma que o usurio bem entender. O Programa de Educao Tutorial (PET) foi criado para apoiar atividades acadmicas que integram ensino, pesquisa e extenso. Formado por grupos tutoriais de aprendizagem, o PET propicia aos alunos participantes, sob a orientao de um tutor, a realizao de atividades extracurriculares que complementem a formao acadmica do estudante e atendam s necessidades do prprio curso de graduao. O estudante e o professor tutor recebem apoio nanceiro de acordo com a Poltica Nacional de Iniciao Cientca. O Programa de Educao Tutorial em Engenharia Eltrica (PET-EE) da UFSM um grupo que consiste de doze alunos bolsistas, seis no-bolsistas e vrios voluntrios de diversos semestres do curso, orientados por um professor tutor. O programa busca propiciar aos alunos condies para a realizao de atividades extra-curriculares, que favoream a sua formao acadmica tanto para a integrao no mercado de trabalho como para o desenvolvimento de estudos em programas de ps-graduao. So caractersticas bsicas do PET a formao acadmica ampla, a interdisciplinaridade, a atuao coletiva, a interao contnua entre os petianos e os corpos docente e discente de graduao e ps-graduao, alm do planejamento e execuo de um programa diversicado de atividades como: leituras e seminrios, grupos de estudo, organizao de conferncias e palestras, elaborao e desenvolvimento de projetos de pesquisa, estudo de, pelo menos, um idioma estrangeiro, entre outros. Essas caractersticas tornam o PET um programa abrangente, pois os petianos se envolvem em atividades de ensino, pesquisa e extenso durante toda a sua permanncia no grupo.

1.2. Programa de Educao Tutorial - Engenharia Eltrica (UFSM)

Estatstica Bsica: Introduo ao R

Captulo 2. Introduo

2
Introduo
2.1 Apresentando o R
O R foi criado originalmente por Ross Ihaka e por Robert Gentleman na universidade de Auckland, Nova Zelndia, e foi desenvolvido por um esforo colaborativo de pessoas em vrios locais do mundo. O nome R provm em parte das iniciais dos criadores e tambm de um jogo gurado com a linguagem S (da Bell Laboratories, antiga AT&T). O R ao mesmo tempo uma linguagem de programao e um ambiente para computao estatstica e grca. Trata-se de uma linguagem de programao especializada em computao com dados. Algumas das suas principais caractersticas so o seu carter gratuito e a sua disponibilidade para uma gama bastante variada de sistemas operacionais. Neste documento iremos concentrar a nossa ateno na verso Windows, mas basicamente tudo o que aqui descrito tambm se aplica s outras verses, dadas as muito reduzidas diferenas entre as verses para as diversas plataformas. Apesar do seu carter gratuito o R uma ferramenta bastante poderosa com boas capacidades ao nvel da programao. O R tambm altamente expansvel com o uso dos pacotes, que so bibliotecas para funes especcas ou reas de estudo especcas. Um conjunto de pacotes includo com a instalao do software, mas muitos outros esto disponveis na rede de distribuio do R (em ingls CRAN).

2.2

Interface do R

Ao iniciar o R abrir automaticamente o Console que a janela onde os comandos so digitados. Internamente ao Console, se encontra o prompt, conforme gura abaixo, que um sinal indicador de que o programa est pronto para receber comando.

Estatstica Bsica: Introduo ao R

Captulo 2. Introduo

Figura 2.1: Interface do R - Console e Prompt.

2.3

Sintaxe do R

Tecnicamente o R uma linguagem de expresses com regras e sintaxe muito simples. Faz distino entre maisculas e minsculas, de modo que os caracteres A e a so entendidos como sendo smbolos diferentes, referindo-se, portanto, a variveis diferentes. Os comandos ou ordens elementares consistem em expresses ou atribuies. Se uma ordem ou comando uma expresso, o seu valor calculado e visualizado sendo perdido em seguida. Uma atribuio, ao contrrio, calcula a expresso e atribui o resultado que no mostrado automaticamente, apenas salvo no endereo de alguma varivel que est sendo usada no R. Os comandos so separados por ponto e vrgula (;) ou so inseridos em nova linha. Podem agrupar-se dentro de chaves ({...}) vrios comandos elementares numa expresso mais complexa. Se ao terminar uma linha, o comando no est sintaticamente completo o R mostra o smbolo + que o comando de continuao do comando inicial.

2.4

Tinn-R Editor

O Tinn-R um editor de texto muito utilizado para a escrita do cdigo R. Com a seguinte denio This is not notepad, ou seja, isto no um bloco de notas, vericase que este editor surge como alternativa ao popular notepad. O Tinn-R possui todos os menus presentes no notepad e, alm disso, agrega vrios outros recursos extras. O Tinn-R possui a seguinte interface:

2.3. Sintaxe do R

Estatstica Bsica: Introduo ao R

Captulo 2. Introduo

Figura 2.2: Interface do Tinn-R Editor.

A grande vantagem de apresentarmos um editor de texto haver a possibilidade de correo e execuo automtica do cdigo, facilitando o trabalho do programador junto ao R. Depois de editado um cdigo no Tinn-R, basta execut-lo na interface do Tinn-R e o programa executar automaticamente os comandos previstos na console do R. Como alternativa ao Tinn-R na correo de cdigos podemos utilizar o bloco de notas que pode ser aberto diretamente no R. Basta utilizar o comando:

> edit() Em seguida, deve-se guardar os dados introduzidos no bloco de notas em algum diretrio, podendo, quando necessrio, ser importado para o Console do R (como veremos a seguir). J para editar uma srie de dados dentro do R, sem digit-la novamente, basta atuar com o comando:

> variavel = edit(variavel)

#carregue a varivel para a edio

Ou atravs do editor de dados, pelo comando:

> variavel = de(variavel)

2.4. Tinn-R Editor

Estatstica Bsica: Introduo ao R

Captulo 2. Introduo

#Exemplo: entre com o vetor {48, 49, 51, 50, 49} e, #em seguida, acrescente os valores 60 e 63. > x<-c(48, 49, 51, 50, 49) # entrada do dados > x # apresentao dos dados [1] 48 49 51 50 49 > x=edit(x) # comando de edio dos dados > x # reapresentao dos dados [1] 48 49 51 50 49 60 63

2.5

Tipos de Dados

Basicamente temos quatro tipos de dados no R: nmericos, caracteres, lgicos e nmeros complexos. Cada objeto possui dois atributos: tipo (mode) e o tamanho (length). Essas informaes so bastante importantes durante a manipulao de dados. Por exemplo, vetores devem possuir obrigatoriamente todos os elementos do mesmo tipo (exceto nmericos e complexos, que podem ser agrupados). Veja abaixo alguns exemplos de tipos de dados no R:

> #Numrico > valor <- 605 > valor [1] 605 > > #Caracteres > string <- "Ol, mundo!" > string [1] "Ol, mundo!" > > #Lgicos > 2 < 6 [1] TRUE > > #Nmeros complexos > nc <- 2 + 3i > nc [1] 2+3i

2.5. Tipos de Dados

10

Estatstica Bsica: Introduo ao R

Captulo 2. Introduo

> mode(valor) [1] "numeric" > length(valor) [1] 1 > mode(string) [1] "character" > length(string) [1] 1 > mode(2<4) [1] "logical" > length(2<4) [1] 1 > mode(nc) [1] "complex" > length(nc) [1] 1 > mode(sin) [1] "function"

2.6
2.6.1

Comandos Bsicos
Utilizando Ajuda

Durante a utilizao do software possvel consultar a sintaxe de algum comando ou obter mais informaes sobre determinada funo. Para isso o R conta com o comando help. A sintaxe do comando a seguinte:

> help(comando) #Exemplo: > help(sqrt)

#sintaxe

Ao executar o exemplo acima, uma interface do menu de ajuda ser executada mostrando o tpico da funo sqrt, que funo matemtica para a raiz quadrada. Para realizar uma busca em arquivos de ajuda sobre um tpico desejado, podemos utilizar os seguintes comandos:

2.6. Comandos Bsicos

11

Estatstica Bsica: Introduo ao R

Captulo 2. Introduo

> help.search("expresso") > ??expresso

#sintaxe #sintaxe

#Exemplos: > help.search("negative binomial") > ??weibull Os exemplos acima retornaro janelas de informao indicando os tpicos de ajuda que possuem a expresso procurada. Observe nos exemplos anteriores o smbolo sustenido ( ). No console do R, ele anula todos os comandos da linha escritos aps a sua insero. Esse artifcio amplamente utilizado para realizar comentrios dentro de um cdigo de programao. Utilizaremos sustenidos nesta apostila para realizar comentrios dentro dos cdigos e exemplos abordados.

2.6.2

Atribuio de Valores

Como todo tipo de programao (inclusive funcional), comum que tenhamos que atribuir valores para algumas variveis antes de utiliz-las (esse processo tambm conhecido como inicializao de variveis). No R podemos fazer uma atribuio de valores de vrias formas, conforme os exemplos abaixo:

> > > >

x <- 10 0.56 -> x x = -8 assign("x", 2i)

#x #x #x #x

a a a a

varivel varivel varivel varivel

que que que que

recebe recebe recebe recebe

o o o o

valor 10; valor 0.56; valor -8; imaginrio 2i;

Na maior parte do tempo utilizaremos os smbolos > e = para atribuio de valores. Para mostrar o valor armazenado em uma varivel, basta digitar a varivel na Console e apertar Enter. Qualquer valor digitado sem atribuio pode ser mostrado na tela. O ltimo valor inserido (em uma atribuio ou no) sempre armazenado em uma varivel especial, denominada .Last.value. Esta varivel pode ser utilizada para realizar operaes, mas preciso tomar cuidado, pois seu valor est sendo constantemente modicado.

2.6. Comandos Bsicos

12

Estatstica Bsica: Introduo ao R

Captulo 2. Introduo

#Exemplo: > x = 5 > x [1] 5 > .Last.value [1] 5 > y = 10 > 89 [1] 89 > .Last.value [1] 89

2.6.3

Comandos Auxiliares

Abaixo veremos uma tabela com os principais comandos que ajudam a manipular os objetos e a workspace que esto sendo utilizados durante a execuo do programa. Funo ls() ou objects() ls.str() str(x) ls.str(ab) rm(x) rm(x, y) rm(list = ls()) class(x) q() Descrio lista curta de variveis denidas lista detalhada de variveis denidas ver informaes detalhadas de x ver informaes detalhadas sobre todas as variveis com ab em seu nome deletar varivel x deletar as variveis x e y deletar todas as variveis (limpar a workspace) ver que tipo de objeto x sair do R com a opo de salvar a workspace em um arquivo (Name.RData) e o histrico de comandos em outro arquivo (Name.RHistory) no teclado, pressione ctrl+L para limpar a tela da console

ctrl + L

2.6.4

Operaes matemticas simples

Expresses aritmticas podem ser construdas atravs dos operadores usuais e das regras de precedncia:

2.6. Comandos Bsicos

13

Estatstica Bsica: Introduo ao R 1 2 2 3 3

Captulo 2. Introduo Potenciao Diviso direita Multiplicao Adio Subtrao

/ * + -

#Exemplo: > x=3; y=5; z=10 > h = 4*sqrt(3*x) + 15/(y-z) - x^2 > h [1] 0 Alm disso, o R tambm possui os operadores relacionais e operadores lgicos: Smbolo < <= > >= == != & | ! TRUE ou 1 FALSE ou 0 Descrio Menor Menor ou igual Maior Maior ou igual Igual (comparao) Diferente AND OR NOT Valor booleano verdadeiro (1) Valor booleano falso (0)

#Exemplo: > x = 3 > 2*(1>(3&(4<=x)*!0)) [1] 2 > x = 5 > 2*(1>(3&(4<=x)*!0)) [1] 0

2.6.5

Funes matemticas simples

O R possui vrias funes matemticas j implementadas. Abaixo segue uma tabela listando as principais funes com sua respectiva descrio e posteriormente alguns exemplos. Para mais informaes, consulte o help do R.

2.6. Comandos Bsicos

14

Estatstica Bsica: Introduo ao R Funo abs(x) log(x, b) log(x) log10(x) exp(x) sin(x) cos(x) tan(x) round(x, digits = n) ceiling(x) f loor(x) length(x) sum(x) prod(x) max(x) min(x) range(x)

Captulo 2. Introduo Descrio valor absoluto de x logaritmo de x com base b logaritmo natural de x logaritmo de x com base 10 exponencial elevado a x seno de x cosseno de x tangente de x arredonda x com n decimais arredondamento de x para o maior valor arredondamento de x para o menor valor nmero de elementos do vetor x soma dos elementos do vetor x produto dos elementos do vetor x seleciona o maior elemento do vetor x seleciona o menor elemento do vetor x retorna o menor e o maior elemento do vetor x

#Exemplo: > x = 30; y = 60 > (sin(x))^2 + (cos(x))^2 [1] 1 > round(tan(2*y),digits =3) [1] 0.713 > floor(tan(2*y)) [1] 0 > ceiling(tan(2*y)) [1] 1

2.6.6

Nmeros complexos

Para utilizar nmeros complexos possumos a varivel especial i, que representa a unidade imaginria 1. Porm, o R precisa saber que estamos trabalhando com nmeros complexos. Caso contrrio ele pode acabar retornando, em algumas ocasies, o valor NaN (Not a Number ), que indica uma indenio matemtica. Portanto, mesmo que a parte imaginria seja nula, e necessrio evidenci-la para que o R retorne valores complexos.

2.6. Comandos Bsicos

15

Estatstica Bsica: Introduo ao R

Captulo 2. Introduo

#Exemplo: > sqrt(-17) [1] NaN Warning message: In sqrt(-17) : NaNs produzidos > sqrt(-17+0i) [1] 0+4.123106i

2.7
2.7.1

Vetores e Matrizes
Denio

Vetores so conjuntos de dados unidimensionais. Sua principal utilidade poder armazenar diversos dados em forma de lista e aplicar funes e operaes sobre todos os dados pertencentes a determinado vetor com apenas poucos comandos. Trabalharemos apenas com vetores numricos.

2.7.2

Declarao de vetores

Podemos tratar as atribuies de valores vistas anteriormente como vetores unidimensionais e unitrios, ou seja, que s contm um elemento. Para declarar mais de um elemento dentro de um vetor, utilizaremos a seguinte sintaxe:

#sintaxe: x = c(a1 , a2 , a3 , . . . , an1 , an ) #Exemplos: > vec <- c(1, 4, 10.5, 54.48, 9, 10) > vec [1] 1.00 4.00 10.50 54.48 9.00 10.00 > vec2 <- (1:10) > vec2 [1] 1 2 3 4 5 6 7 8 9 10 > vec3 <- c((1:3),(3:1)) > vec3 [1] 1 2 3 3 2 1 > vec4 <- c(0, vec3, 0) > vec4 [1] 0 1 2 3 3 2 1 0 Essa sintaxe tambm serve para vetores de caracteres. Porm, devemos considerar que caracateres devem ser declarados entre aspas.

2.7. Vetores e Matrizes

16

Estatstica Bsica: Introduo ao R Outra forma de declarar vetores a seguinte:

Captulo 2. Introduo

#vetor de "a" at "z" seq(from= a, to= z) #vetor de "a" at "z" com passo "n" seq(from= a, to= z, by= n ) #vetor de "a" at "z" com "n" elementos seq(from= a, to= z, length.out= n) #Exemplos: > seq(from=1, to=5) [1] 1 2 3 4 5 > seq(from=1, to=5, by=0.5) [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 > seq(from=0, to=10, length.out= 4) [1] 0.000000 3.333333 6.666667 10.000000

2.7.3

Arrays e Matrizes - Denio e Declarao

Podemos denir arrays como um conjunto de elementos de dados, geralmente do mesmo tamanho e tipo de dados. Elementos individuais so acessados por sua posio no array. A posio dada por um ndice, tambm chamado de subscrio. O ndice geralmente utiliza uma sequncia de nmeros naturais. Arrays podem ser de qualquer tipo, porm neste captulo abordaremos apenas arrays numricos, devido a sua grande importncia para declarao de matrizes. Existem arrays unidimensionais e multidimensionais. Arrays numricos unidimensionais nada mais so do que vetores, como j vimos. J arrays nmericos multidimensionais podem ser usados para representao de matrizes. Vejamos abaixo a sintaxe para declarao de um array:

#sintaxe: x <- array( dados , dim= vetor_dimenso ) #Exemplo: > x <- array(c(1:10), dim = c(2,5)) > x [,1] [,2] [,3] [,4] [,5] [1,] 1 3 5 7 9 [2,] 2 4 6 8 10 Como pode ser visto, o preenchimento de uma array multidimensional (leia-se matriz a partir de agora) realizado dispondo os elementos de entrada ordenadamente coluna por coluna. Existe uma outra funo para declarao de matrizes que permite alterar a ordem de disposio dos elementos: 2.7. Vetores e Matrizes 17

Estatstica Bsica: Introduo ao R

Captulo 2. Introduo

#sintaxe: x <- matrix(data = dados, nrow = m, ncol = n, byrow = Q) onde "m" o nmero de linhas, "n" o nmero de colunas e se Q = 1 #ativa disposio por linhas se Q = 0 #mantm disposio por colunas #Exemplo: > A <- matrix(c(1:10),2,5,1) > A [,1] [,2] [,3] [,4] [,5] [1,] 1 2 3 4 5 [2,] 6 7 8 9 10 Para selecionar um elemento de uma matriz utilizamos a indexao por colchetes na varivel que representa a matriz com os ndices separados por vrgula:

#Exemplos: > A[2,4] [1] 9 > A[2,4] - x[1,5] [1] 0 > A[2,] [1] 6 7 8 9 10 > A[,2:4] [,1] [,2] [,3] [1,] 2 3 4 [2,] 7 8 9 > A[,] [,1] [,2] [,3] [,4] [,5] [1,] 1 2 3 4 5 [2,] 6 7 8 9 10

2.7.4

Operaes e funes com Matrizes

Vamos denir duas matrizes (A e B) e um vetor v. Abaixo segue uma tabela com as principais operaes e funes realizadas entre matrizes. Posteriormente, alguns exemplos.

2.7. Vetores e Matrizes

18

Estatstica Bsica: Introduo ao R Funo AB A% %B B = aperm(A) B = t(A) B = solve(A) x = solve(A, b) det(A) diag(v) diag(A) diag(n) eigen(A) eigen(A)$values eigen(A)$vectors

Captulo 2. Introduo Descrio produto elemento a elemento de A e B produto matricial de A por B matriz transposta: B = At matriz transposta: B = At matriz inversa: B = A1 resolve o sistema linear Ax = b retorna o determinante de A retorna uma matriz diagonal onde o vetor v a diagonal retorna um vetor que a diagonal da matriz A sendo n um inteiro, retorna uma matriz identidade de ordem n retorna os autovalores e autovetores de A retorna os autovalores de A retorna os autovetores de A

#Exemplos: > B = t(A) > B [,1] [,2] [1,] 1 6 [2,] 2 7 [3,] 3 8 [4,] 4 9 [5,] 5 10 > b= array(c(0,1,5),dim=c(3,1)); > C= matrix(c(c(1,1,0),c(0,1,4),c(0:2)),3,3,1); > y = solve(C,b) > y [,1] [1,] -9 [2,] 9 [3,] -2 > Cinv = solve(C) > Cinv%*%b [,1] [1,] -9 [2,] 9 [3,] -2

2.7. Vetores e Matrizes

19

Estatstica Bsica: Introduo ao R

Captulo 2. Introduo

2.8

Entrada de Arquivos Externos

Se os dados estiverem salvos em arquivos, sob forma de planilhas, tabelas, etc., devese fazer com que o R leia estes arquivos, transformando-os em um objeto. Para que o R reconhea o conjunto de dados do arquivo necessrio que as colunas sejam separadas. Caso isso no ocorra o R no conseguir separar as colunas e emitir uma mensagem de erro. Um modo fcil de resolver este problema salvar a planilha de dados com o formato (.csv) que utiliza virgula (,) como elemento separador das colunas. Porm, antes de iniciar a entrada de dados no R deve-se alterar a pasta de trabalho padro em que o arquivo de dados .csv ser salvo. Para isso basta ir em Arquivo/Mudar dir... e alterar o diretrio em que ser salvo o arquivo. Ao abrir a pgina de alterao do diretrio, escolha o diretrio em que ser salvo o arquivo. Depois de salvar o arquivo no diretrio especicado, carregue o arquivo no console do R. Utilizaremos, nesta apostila, a pasta de trabalho como sendo C:\Rdados. Outra maneira de alterar o diretrio utilizar o seguinte comando, especicando, como argumento, o diretrio requerido: > setwd(C:\\Rdados) #diretrio C:\Rdados

Conferindo o diretrio atualizado atravs do comando: > getwd() De posse da pasta de trabalho e do arquivo no formato .csv na pasta Rdados, procederemos com o seguinte comando: > dir() Com este comando o R ir vericar se h algum arquivo na pasta de trabalho. Como previamente havamos salvo um arquivo .csv, sabemos que o R ir encontrar este arquivo no diretrio especicado anteriormente. Em seguida, devemos dar o comando para que o R carregue o arquivo .csv no console de trabalho. Para isso digite o seguinte comando: > carregar <- read.table("arquivo.csv",header=T,sep=",",dec=".") Onde: carregar: o objeto no qual os dados lidos sero reconhecidos pelo R; < : sinal que atribui os dados lidos ao objeto carregar ; read.table: funo que l o arquivo do tipo .csv. O parmetro header nos permite indicar se o arquivo de dados (data.frame) tem ou no o nome nas colunas (ttulo) na primeira linha de dados. O parmetro sep permite 2.8. Entrada de Arquivos Externos 20

Estatstica Bsica: Introduo ao R

Captulo 2. Introduo

indicar o tipo de separador dos dados presentes no arquivo. Finalmente o parmetro dec permite indicar o caractere usado como separador de casas decimais dos nmeros reais. Observao: existem outras sintaxes para carregar dados no console do R (verique isso utilizando o comando help(read.table)), porm os argumentos permanecem idnticos aos apresentados anteriormente. Caso o arquivo tenha ttulo, podemos vericar o nome destes ttulos atravs do comando: > names() #no argumento vai sempre o nome do objeto desejado

Podemos ver a dimenso do arquivo carregado por meio do seguinte comando: > dim() Isto porque o R, agora, considera o arquivo carregado como uma matriz. Desta forma, podemos localizar linhas, colunas e elementos desta matriz. Para isso, utilize os comandos abaixo: > carregar[1,1] > carregar[1:5,] #localiza o elemento a(1,1) da matriz #localiza as primeiras cinco linhas da matriz

Vamos agora desenvolver um exemplo com um arquivo .txt: > dir() #verifica a presena de arquivos no diretrio de trabalho [1] "arquivoteste.txt" #localiza arquivo .txt > carregar <- read.table(arquivoteste.txt,header=T,dec=.) > #carrega o arquivo no objeto "carregar" > carregar #ilustra o arquivo mpg engine horse weight accel year origin cylinder 1 18 307 130 3504 12.0 70 1 8 2 15 350 165 3693 11.5 70 1 8 3 18 318 150 3436 11.0 70 1 8 4 16 304 150 3433 12.0 70 1 8 5 17 302 140 3449 10.5 70 1 8 6 15 429 198 4341 10.0 70 1 8 7 14 454 220 4354 9.0 70 1 8 8 14 440 215 4312 8.5 70 1 8 Podemos ainda carregar um arquivo de qualquer diretrio sem precisar informar este diretrio no comando. Para isso, basta utilizar a sintaxe abaixo: > carregar <- read.table("C:/Rdados/arquivoteste.txt", + header = TRUE, dec=".")

2.8. Entrada de Arquivos Externos

21

Estatstica Bsica: Introduo ao R

Captulo 2. Introduo

2.9

Arquivos provenientes da internet

O R permite acessar um banco de dados disponvel na web. Esta tarefa importante, pois facilita o acesso aos dados provenientes da internet, uma vez que os dados no necessitam ser copiados para algum diretrio e, posteriormente, carregados para o R. > read.table("endereo") #Sintaxe

#Exemplo: > read.table("http://www.leg.ufpr.br/~paulojus/dados/gam01.txt") Caso voc queira fazer um download de dados provenientes da internet, sem utilizar seu navegador, utilize no R a funo download.le(). > > > > + #> download.file(endereo,ficheiro de destino) #sintaxe

# Exemplo download.file(http://www.leg.ufpr.br/~paulojus/dados/gam01.txt, C:\\R teste\\dados.txt)

Observe que o primeiro argumento indica o URL, e o segundo o nome do diretrio do computador onde os dados sero guardados. Note que para indicar um caminho do cheiro se deve separar o nome das pastas por dois caracteres \\.

2.9. Arquivos provenientes da internet

22

Estatstica Bsica: Introduo ao R

Captulo 3. Grcos

3
Grcos
3.1 Introduo
As capacidades grcas so uma componente muito importante e extremamente verstil do ambiente R. O R consegue plotar desde grcos bidimensionais simples at gracos tridimensionais mais complexos por meio de comandos simples. D-se muita nfase no R aos grcos estatsticos, tais como histogramas, curvas de distribuies, grco de barras dentre outros.

3.1.1

Comandos Bsicos

O comando bsico para a criao grca o plot(). A funo plot(dados) gera um grco simples, atribuindo pontos em coordenadas cartesianas. Conra o exemplo abaixo: #Exemplo: > a <- 1:20 > b <- a^2 > plot(a,b) Para tornar o grco acima contnuo, deve-se acrescentar o argumento type=l na funo plot().

> plot(a,b, type="l") Alm deste argumento, existem inmeros outros argumentos para a congurao do grco que podem ser acessados com o comando help(plot) Atravs dos comandos lines() e points() possvel adicionar, aps dado um comando de plot(), linhas e pontos, respectivamente, a um grco j existente. Veja o exemplo abaixo: #Exemplo: > a <- 1:20 > b <- a^2 > plot(a,b) > lines(rev(a),b) > points(a, 400-b)

#adio de linhas #adio de pontos

23

Estatstica Bsica: Introduo ao R

Captulo 3. Grcos

O R permite que sejam feitas mudanas na representao dos indicadores grcos (pontos) atravs do parmetro pch= nos comandos plot() e points(). Veja o exemplo abaixo:

#Exemplo: > a <- 1:20; b <- a^2 > plot(a,b,pch=2) > points(a,400-b, pch=5) > points(a,200-b, pch=10) > windows() > plot(0:20,0:20,pch=0:20) Ainda, possvel realizar mudanas nas caracteristicas das linhas. Para isso, basta utilizar os comandos lwd= e lty= que modicam, respectivamente, a largura e o estilo da linha. Veja o exemplo seguinte:

#Exemplo: > a <- 1:20; b <- a^2 > plot(a,b,type="l") > lines(a,2*b,lwd=4) > lines(a,0.5*b,lty=2) > lines(a,3*b,lty=3) > lines(a,4*b,lty=2,lwd=4) Para alterar a dimenso dos intervalos, pode-se primeiro plotar um grco em branco, ajustando os limites da abscissa e da ordenada e depois gerar o grco desejado. Observe no exemplo como proceder:

#Exemplo: > plot(c(-pi,pi),c(-1,1), type="n") #gerando um grfico em branco > x<-seq(-pi,pi,0.1) > a <- sin(x) > b <- sin(x-2/3*pi) > c <- sin(x+2/3*pi) > lines(x,a,col=2,lwd=1) > lines(x,b,col=3,lwd=2) > lines(x,c,col=4,lwd=3) Pode-se ainda acrescentar o nome dos eixos atravs dos parmetros xlab= e ylab= no comando plot(). O ttulo do texto pode ser adicionado com o parmetro main= no comando plot() ou atravs do comando title("ttulo","subttulo"). A legenda do grco pode ser acrescida atravs do comando text() que possui como argumentos as coordenadas do ponto em que se quer colocar a legenda e o texto desejado. Observe o exemplo: 3.1. Introduo 24

Estatstica Bsica: Introduo ao R

Captulo 3. Grcos

#Exemplo: > plot(c(-pi,pi),c(-1,3),xlab="Perodo", ylab="Fases", type="n") > title("Representao das tenses trifsicas","Fases ABC") > lines(x,a,col=2,lwd=1) > lines(x,b,col=3,lwd=2) > lines(x,c,col=4,lwd=3) > text(0,2,"Observe a defasagem de 120 entre as fases") Outra utilidade do comando text() acrescentar textos s coordenadas cartesianas x e y. Observe a sintaxe seguida do exemplo:

#Sintaxe: text(x,y,"etiquetas") #Exemplo: > a <- seq(from=0, to=20, by=2); b <- a^2 > plot(a,b,type="n") #plota um grfico vazio > text(a,b,"R") #aplica a etiqueta no stio dos pontos

3.1.2

Criando Novas Janelas Grcas e Salvando Grcos

Ao executarmos sucessivos comandos plot() os grcos gerados so sobrepostos na mesma janela grca chamada de device ACTIVE. Para evitar este problema, podemos proceder de duas formas, conforme a convenincia: Os grcos podem ser salvos imediatamente ao serem gerados. Existem vrios formatos em que o R pode salvar imagens grcas. Alguns deles so: JPEG, BMP, PDF, TIFF, PNG. Faremos abaixo um exemplo utilizando o formato JPEG, mas tenha em mente que a sintaxe para qualquer formato segue idntica.

#Exemplo jpeg(file=figure.jpeg) #figure o nome do arquivo imagem plot(rnorm(10)) #grfico que estou salvando dev.off() #fecha a janela grfica automaticamente Por vezes necessrio gerar vrias janelas grcas (devices). Para isso basta utilizar o comando windows() ou X11 entre os sucessivos plot(). Conra o exemplo abaixo:

#Exemplo: plot(rnorm(10)) windows() plot(rnorm(20))

#plotando o primeiro grfico #criao de uma nova janela grfica #plotando o segundo grfico

3.1. Introduo

25

Estatstica Bsica: Introduo ao R

Captulo 3. Grcos

Observe que o segundo grco vai surgir numa outra janela, o que permite ao utilizador ver os grcos simultaneamente. Observe, tambm, que posteriores grcos que venham a ser plotados sero sobrepostos ao grco do ltimo device aberto (leia na parte superior da janela Device(ACTIVE))

3.1.3

Outras Funcionalidades

Uma funcionalidade bastante til do R consiste na utilizao de identicadores grcos quando se deseja identicar um ponto ou um conjunto de pontos em um grco. Para tanto, existem dois identicadores que podem ser utilizados: locator(): permite que o utilizador selecione regies do grco utilizando o boto esquerdo do mouse at que se tenha um nmero n de pontos selecionados ou at pressionar o boto direito do mouse. Cada clique que dado com o boto esquerdo do mouse o R retorna na console as coordenadas do clique. Veja a sintaxe e o exemplo:

#Sintaxe: locator(n) #localiza n pontos #Exemplo: > x=1:20 > y=sqrt(x) > plot(x,y) > > text(locator(1),"mas ba tch") > #onde for dado o clique ser escrita a mensagem > > #ou de outra forma: > plot(x,y) > locator(2) > #localiza dois pontos e d suas coordenadas na console > > x [1] 12.557587 3.424694 y [1] 2.427596 3.819199

identify(): comando semelhante ao locator(), porm apresenta a capacidade de identicar pontos particulares de um grco e no apenas sua posio. Vejamos um exemplo: representar as coordenadas de oito diferentes cidades, nomelas e identic-las gracamente.

3.1. Introduo

26

Estatstica Bsica: Introduo ao R

Captulo 3. Grcos

#Exemplo: > x <- c(2,3,4,5,6,7,8,9) #Representao das coordenadas "x" das cidades > y <- c(15,26,45,8,74,11,61,32) #Coordenadas y das cidades > #Descrevendo o nome das cidades: > nomes <- paste("cidade", LETTERS[1:8], sep= " ") > cidades <- data.frame(x,y,row.names=nomes) #Juntando os dados > cidades #visualizando o objeto cidades x y cidade A 2 15 cidade B 3 26 cidade C 4 45 cidade D 5 8 cidade E 6 74 cidade F 7 11 cidade G 8 61 cidade H 9 32 > #Visualizando graficamente os pontos que representam as cidades: > plot(cidades) > #representa-se as coordenadas grficas dos pontos, o vetor que > #ser descrito e o nmero de pontos a serem identificados: > identify(x,y,nomes,n=4) [1] 2 3 6 7

Depois de adicionado o comando identify e denidos seus parmetros, deve-se clicar nos pontos que se deseja identicar. O R permite acrescentar grcos mltiplos basta atravs dos comandos par(mfrow=c(x,y)) e par(mfcol=c(x,y)) que apresentam comportamentos idnticos. No vetor c(x,y), x dene o nmero de divises horizontais (linhas) e y o nmero de divises verticais (colunas). Os parmetros dos grcos podem ser encontrados no help atravs do comando ?par. Proceda com o exemplo abaixo:

#Exemplo: > par(mfrow=c(1,2)) > x<-1:10 > y<- c(2,5,9,6,7,8,4,1,3,10) > x;y [1] 1 2 3 4 5 6 7 8 9 10 [1] 2 5 9 6 7 8 4 1 3 10 > plot(x,y) > plot (x,y, xlab="Eixo X", ylab="Eixo Y", + main="Personalizando um grfico", xlim=c(0,10), ylim=c(0,10), + col="red", pch=22, bg="blue", tcl=0.4, las=1, cex=1.5, bty="l")

3.1. Introduo

27

Estatstica Bsica: Introduo ao R

Captulo 3. Grcos

Figura 3.1: Grco dos dados de coordenadas de cidades identicadas

3.2

Grcos de Anlise Descritiva

Apresentaremos agora trs grcos fundamentais na anlise descritiva dos dados: histograma, grco de barras e grco de caixas. So reconhecidos no R pelos nomes hist, barplot e boxplot.

3.2.1

Histograma

Um histograma divide uma srie de dados em diferentes classes igualmente espaadas e mostra a frequncia de valores em cada classe. Em um grco, o histograma mostra diferentes barras, com bases iguais e amplitudes relativas s frequncias dos dados em cada classe. O eixo das ordenadas, portanto, mostra a frequncia relativa de cada classe e o eixo das abcissas os valores e intervalos das classes. Abaixo apresentada a sintaxe do comando e um exemplo ilustrativo:

3.2. Grcos de Anlise Descritiva

28

Estatstica Bsica: Introduo ao R

Captulo 3. Grcos

Figura 3.2: Mltiplos grcos usando mfrow()

#Sintaxe: > hist(dados,nclass=k,)

#k o nmero de classes do histograma

#Exemplo: > rest <- c(96,96,102,102,102,104,104,108, + 126,126,128,128,140,156,160,160,164,170, + 115,121,118,142,145,145,149,112,152,144, + 122,121,133,134,109,108,107,148,162,96) > par(mfrow=c(1,2)) > hist(rest,nclass=12) > hist(rest,nclass=6)

Do exemplo anterior, teremos os seguintes histogramas, respectivamente:

3.2. Grcos de Anlise Descritiva

29

Estatstica Bsica: Introduo ao R

Captulo 3. Grcos

Figura 3.3: Histograma das resistncias com 12 classes

3.2.2

Barplot

A funo barplot() produz grco de barras, onde cada barra representa a medida de cada elemento de um vetor, ou seja, as barras so proporcionais com a dimenso do elemento. A sintaxe geral da funo est abaixo:

#Sintaxe: > barplot(x, col=" ", legend.text=" ", xlab=" ",ylab=" ") x - o vetor ou arquivo de dados; col= - dene-se a cor de exibio do grco de barras; legend.text= - legenda do grco (o que representa a altura dos grcos); xlab= e ylab= - nome das grandezas expressas nos eixos x e y, respectivamente. Faremos um exemplo simples utilizando um vetor qualquer e aps utilizaremos o dataset euro que descreve as taxas de converso entre as diversas moedas e o euro nos pases da unio europia. Observe os grcos e veja os argumentos utilizados na descrio da funo barplot().

#Exemplos: > x <- c(1,2,3,4,5,6,7) > barplot(x) > barplot(euro,xlab="Euro conversions",col="red", + legend.text="Valor da taxa")

3.2. Grcos de Anlise Descritiva

30

Estatstica Bsica: Introduo ao R

Captulo 3. Grcos

Figura 3.4: Grco de Barras de x

Figura 3.5: Grco de barras do dataset euro

3.2.3

Boxplot

O boxplot um grco que possibilita representar a distribuio de um conjunto de dados com base em alguns de seus parmetros descritivos (mediana e os quartis). Ele permite avaliar a simetria dos dados e a sua disperso. especialmente recomendado para a comparao de dois ou mais conjuntos de dados correspondentes s categorias de uma varivel qualitativa.

3.2. Grcos de Anlise Descritiva

31

Estatstica Bsica: Introduo ao R Veja o grco abaixo:

Captulo 3. Grcos

Figura 3.6: Interpretao do grco de caixas (boxplot)

3.2. Grcos de Anlise Descritiva

32

Estatstica Bsica: Introduo ao R

Captulo 3. Grcos

Com base neste grco, podemos identicar em um boxplot os seguintes parmetros: A linha central marca a mediana do conjunto de dados; A parte inferior da caixa delimitada pelo primeiro quartil (Q1 ) e a parte superior pelo terceiro quartil (Q3 ); Podemos, com isso, vericar tambm o intervalo interquartil dado pela diferena entre o primeiro e o terceiro quartil (IQR = Q3 Q1 ); As hastes inferiores e superiores se estendem, respectivamente, do quartil inferior at o menor valor no inferior a Q1 1.5 IQR e do quartil superior at o maior valor no superior a Q3 + 1.5 IQR; Os valores inferiores a Q1 1.5 IQR e superiores a Q3 + 1.5 IQR so representados individualmente no grco sendo estes valores caracterizados como outliers, ou seja, que esto fora do intervalo Q1 1.5 IQR < valor < Q3 + 1.5 IQR; As quantidades Q1 1.5 IQR e Q3 + 1.5 IQR delimitam as cercas inferior e superior, respectivamente, e constituem limites para alm dos quais, como visto, os dados passam a ser considerados outliers. O comando utilizado no R o boxplot(). Este comando possui vrios argumentos. Utilize o comando help(boxplot) para maiores informaes.

#Exemplo: > x = c(5,5,5,13,7,11,11,9,8,9) > y = c(11,8,4,5,9,5,10,5,4,10) > boxplot(x,y) #para plotar no mesmo grfico (comparao) > boxplot(x); boxplot(y) #para plotar em grficos diferentes

Apresentamos no exemplo seguinte um conjunto de dados (dataset) presente no banco de dados do R criado por contribuintes do mundo inteiro [veja em help(datasets)]. O dataset utilizado no exemplo chamado InsectSprays e apresenta a contagem de insetos em unidades experimentais agrcolas tratados com diferentes inseticidas. #Exemplo: > boxplot(count~spray,data=InsectSprays,xlab="Tipo de Spray", + ylab="Contagem de Insetos",main="InsectSprays data", + col="yellow")

3.2.4

Grco de Ramo e Folhas

O grco de ramo e folhas uma representao grca dos nmeros que permite organizar os dados de forma a chamar a ateno para algumas caractersticas do conjunto de dados. So elas: forma da distribuio (simetria/assimetria), disperso dos dados e 3.2. Grcos de Anlise Descritiva 33

Estatstica Bsica: Introduo ao R

Captulo 3. Grcos

Figura 3.7: Boxplot comparativo dos vetores x e y

existncia de outliers. O grco de ramo e folhas possui muita semelhana com o histograma, porm possui a vantagem de exibir o formato da distribuio sem que haja perda de informao. A desvantagem do ramo-e-folhas est no fato de ser um grco que deve ser utilizado com conjuntos dados de pequena dimenso. Um grco de ramo e folhas construdo dispondo os dados em duas colunas: uma para os nmeros inteiros (ramos) situada esquerda, e outra direita composta pelos nmeros situados depois do ponto decimal dos dados (folhas). As colunas subsequentes segunda coluna representam as diversas aparies de um mesmo ramo na srie de dados em ordem crescente. As linhas apresentam os nmeros dispostos em ordem crescente. Para a construo de um grco ramo e folhas no R basta utilizar o comando stem(). Veja o exemplo abaixo:

3.2. Grcos de Anlise Descritiva

34

Estatstica Bsica: Introduo ao R

Captulo 3. Grcos

Figura 3.8: Boxplot do dataset InsectSprays

#Exemplo: > rf<-c(5.50,5.61,4.88,5.07,5.26,5.55,5.36,5.29,5.58,5.65,5.57,5.53,5.62,5.29,5.4 > stem(rf) The decimal point is 1 digit(s) to the left of the | 48 | 8 49 | 50 | 7 51 | 0 52 | 6799 53 | 04469 54 | 2467 55 | 03578 56 | 12358 57 | 59 58 | 5

3.2. Grcos de Anlise Descritiva

35

Estatstica Bsica: Introduo ao R

Captulo 3. Grcos

Observe que no exemplo acima as folhas contm o ltimo dgito decimal e os ramos se apresentam em sequencia. Se os nmeros tiverem muitos algarismos signicativos sero arredondados para a casa decimal que mais se aproximar do ramo.

3.2.5

Grco de Pizza

Grcos de pizza exibem dados como proporo de um todo o que permite fazer comparaes entre grupos. Este tipo de grco no apresenta nenhum eixo. Quando um dado solto em um grco de pizza, o grco calcula a porcentagem de cada valor em relao a toda pizza. Veja a sintaxe e o exemplo abaixo:

#Sintaxe: pie(dados,opes) #Exemplo: > a<-c(0.12, 0.3, 0.26, 0.16, 0.04, 0.12) > names(a)<-c("a","b","c","d","e","f") > pie(a,col = c("red","blue","green","gray", "brown", "black"))

3.2. Grcos de Anlise Descritiva

36

Estatstica Bsica: Introduo ao R

Captulo 3. Grcos

Figura 3.9: Grco de Pizza

3.2. Grcos de Anlise Descritiva

37

Estatstica Bsica: Introduo ao R

Captulo 4. Estatstica Descritiva

4
Estatstica Descritiva
4.1 Introduo
Apresentaremos neste captulo alguns comandos bsicos do R na manipulao da estatstica descritiva. A estatstica descritiva ocupa-se da organizao, apresentao e sintetizao dos dados. Desenvolveremos abaixo os componentes da estatstica descritiva, bem como seus comandos. Ao nal desta seo abordaremos um exemplo ilustrativo, demonstrando alguns dos comandos mencionados.

4.2

Medidas de Posio

So as estatsticas que representam uma srie de dados orientando-nos quanto posio da distribuio em relao ao eixo horizontal (eixo "x") do grco da curva de freqncia. As medidas de posio mais importantes so as medidas de tendncia central, no qual se verica uma tendncia dos dados observados a se agruparem em torno dos valores centrais. Passaremos, ento, a apresentar as medidas de tendncia central mais utilizadas:

4.2.1

Mdia Aritmtica X

A mdia aritmtica igual ao quociente entre a soma dos valores do conjunto e o nmero total dos valores. X= Xi i=1 n
n

(4.1)

onde Xi so os dados amostrais e n o nmero de valores amostrais. O comando para calcularmos a mdia aritmtica segue abaixo, juntamente com um exemplo: #sintaxe: > mean(dados) #Exemplo: > x <- c(10, 14, 13, 15, 16, 18, 12) > mean(x) [1] 14

38

Estatstica Bsica: Introduo ao R

Captulo 4. Estatstica Descritiva

4.2.2

Mediana Md

A mediana de um conjunto de valores, dispostos segundo uma ordem (crescente ou decrescente) o valor situado de tal forma no conjunto que o separa em dois subconjuntos de mesmo nmero de elementos. Existe um mtodo prtico para o clculo da mediana. Vamos a ele: Se a srie dada tiver nmero mpar de termos - O valor mediano ser o termo de ordem dado pela frmula: n+1 2 Exemplo: Calcule a mediana da srie {1, 3, 0, 0, 2, 4, 1, 2, 5} Md = 1. Ordenar a srie: {0, 0, 1, 1, 2, 2, 3, 4, 5}; 2. n = 9 elementos. 3. Pela frmula (n + 1) / 2 dado por (9+1) / 2 = 5; 4. Logo, o quinto elemento da srie ordenada ser a mediana. Este elemento o nmero 2. Se a srie dada tiver nmero par de termos - O valor mediano ser o termo de ordem dado pela frmula: [( n ) + ( n + 1)] 2 (4.3) Md = 2 2 onde ( n ) e ( n + 1) so termos de ordem e devem ser substitudos pelo seu valor 2 2 correspondente. Exemplo: Calcule a mediana da srie {1, 3, 0, 0, 2, 4, 1, 3, 5, 6}. 1. Ordenar a srie {0, 0, 1, 1, 2, 3, 3, 4, 5, 6}; 2. n = 10 elementos. 3. Pela frmula [(10/2) + (10/2 + 1)]/2 resultar na realidade (5o termo + 6o termo)/2. Estes termos so 2 e 3, respectivamente. 4. Logo a mediana ser (2+3)/ 2, ou seja, Md = 2,5. Algumas observaes: Quando o nmero de elementos da srie estatstica for mpar, haver coincidncia da mediana com um dos elementos da srie. Quando o nmero de elementos da srie estatstica for par, nunca haver coincidncia da mediana com um dos elementos da srie. A mediana ser sempre a mdia aritmtica dos dois elementos centrais da srie. (4.2)

4.2. Medidas de Posio

39

Estatstica Bsica: Introduo ao R O comando para o clculo da mediana o seguinte: #sintaxe: > median(dados)

Captulo 4. Estatstica Descritiva

#Exemplo: Tomando os exemplos acima para simples conferncia, obteremos: > k <- c(1,3,0,0,2,4,1,2,5) > median(k) [1] 2 > g <- c(1,3,0,0,2,4,1,3,5,6) > median(g) [1] 2.5

4.2.3

Moda Mo

o valor que ocorre com maior frequncia em uma srie de valores. A moda facilmente reconhecida, basta, de acordo com denio, procurar o valor que mais se repete. Observao: h sries em que no existe valor modal, isto , srie nas quais nenhum valor aparea mais vezes que os outros. Nestes casos dizemos que a srie amodal. Porm, em outros casos, pode haver dois ou mais valores de concentrao. Dizemos, ento, que a srie tem dois valores (bimodal) ou mais. Existem duas formas que podemos utilizar para encontrarmos a moda de uma srie de dados. So elas: table(): este comando ordena em ordem crescente os dados e indica o nmero de vezes em que o elemento se repete na srie de dados apresentada. utilizado para encontrar a moda em pequenas amostras. subset(): em oposio ao item anterior esta funo utilizada quando o tamanho da amostra grande. O comando para a obteno da moda dado abaixo:

#sintaxe: > subset(table(), table() == max(table())) Este comando retorna a moda bem como o nmero de ocorrncias do elemento em questo. Tomemos como exemplo a srie {7, 8, 9, 10, 10, 10, 11, 12}:

4.2. Medidas de Posio

40

Estatstica Bsica: Introduo ao R

Captulo 4. Estatstica Descritiva

#Exemplo: > y <- c(7,8,9,10,10,10,11,12) > table(y) y 7 8 9 10 11 12 1 1 1 3 1 1 > subset(table(y),table(y)==max(table(y))) 10 3 Observe que ambos os comandos indicam qual o valor da srie de dados que mais se repete. No exemplo, este valor o dado 10, com trs ocorrncias.

4.2.4

Quartis (Q)

Denominamos quartis os valores de uma srie que a dividem em quatro partes iguais. Precisamos, portanto, de trs quartis (Q1 , Q2 e Q3 ) para dividir a srie em quatro partes iguais. Veja a gura abaixo: Observao: o quartil Q2 sempre ser igual mediana da srie.

Figura 4.1: Quartis de uma srie de dados Exemplo: Calcule os quartis da srie: {5, 2, 6, 9, 10, 13, 15} 1. Inicialmente se deve ordenar em ordem crescente os valores. Isto resulta: {2, 5, 6, 9, 10, 13, 15}. 2. O valor que divide a srie acima em duas partes iguais o elemento 9, logo a mediana e o quartil 2 (Q2 ) 9. 3. Temos agora {2, 5, 6, 9} e {9, 10, 13, 15} como sendo os dois grupos contendo 50% das informaes sobre os dados da srie. Para o clculo do primeiro e do terceiro quartis, basta calcular as medianas dos dois grupos resultantes. 4. Logo em {2, 5, 6, 9} a mediana 5.5, ou seja, o quartil Q1 5.5 e em {9, 10, 13, 15} a mediana 11.5, ou seja, o quartil Q3 11.5. Podemos encontrar os quartis atravs do comando: #sintaxe: > summary(dados)

4.2. Medidas de Posio

41

Estatstica Bsica: Introduo ao R

Captulo 4. Estatstica Descritiva

Este comando calcula e apresenta o resultado de outros comandos. Desta forma, a funo summary capaz de resumir vrios tipos de objetos em uma nica funo. Dentre esses objetos encontram-se o primeiro e o terceiro quartil, sendo que o segundo quartil dado indiretamente atravs da mediana. Calculando o exemplo acima apresentado atravs do R: #Exemplo: > z <- c(5,2,6,9,10,13,15) > summary(z) Min. 1st Qu. Median Mean 3rd Qu. 2.000 5.500 9.000 8.571 11.500

Max. 15.000

Observe que o comando summary calcula outras medidas alm dos quartis.

4.2.5

Percentis (P)

So as medidas que dividem a amostra em 100 partes iguais. Veja a ilustrao:

Figura 4.2: Percentis de uma srie de dados

Por padro o R calcula os quantis (partes em que a srie de dados dividida) q0 , q25 , q50 , q75 , q100 , os quais so obtidos atravs do comando: #sintaxe: > quantile(dados) Por exemplo, para o vetor 48, 49, 51, 50, 49 podemos calcular os quantis citados da seguinte forma: #Exemplo: > q <- c(48,49,51,50,49) > quantile(q) 0% 25% 50% 75% 100% 48 49 49 50 51 A especicao dos percentis pode ser feita pelo comando:

4.2. Medidas de Posio

42

Estatstica Bsica: Introduo ao R

Captulo 4. Estatstica Descritiva

#sintaxe: > quantile(dados, c(valores dos percentis)) Para o exemplo anterior: #Exemplo: > percentis = seq(.01,.99,.01) > quantile(q, percentis) 1% 2% 3% 4% 5% 6% 7% 8% 48.04 48.08 48.12 48.16 48.20 48.24 48.28 48.32 9% 10% 11% 12% 13% 14% 15% 16% 48.36 48.40 48.44 48.48 48.52 48.56 48.60 48.64 ... 97% 98% 99% 50.88 50.92 50.96

4.2.6

Decis (D)

A denio dos decis obedece ao mesmo princpio dos quartis e, portanto, dividem a srie de dados em dez partes iguais. Observe:

Figura 4.3: Decis de uma srie de dados

Indicamos os decis por D1 ,D2 ,...,D9 . Deste modo, precisamos de nove decis para dividir uma srie em dez partes iguais. De especial interesse o quinto decil que divide o conjunto em duas partes iguais. Assim sendo, o quinto decil igual ao segundo quartil e, tambm, igual a mediana da srie de dados. O comando para calcularmos os decis , tambm, o quantile(). Isso porque basta indicarmos quais os percentuais queremos que este comando calcule. Assim, para os decis: #sintaxe: > quantile(dados, seq(0.10, 0.9, 0.1)) No exemplo que desenvolvemos para os percentis, temos:

4.2. Medidas de Posio

43

Estatstica Bsica: Introduo ao R

Captulo 4. Estatstica Descritiva

#Exemplo: > d <- c(48,49,51,50,49) > quantile(d,seq(0.10,0.9,0.1)) 10% 20% 30% 40% 50% 60% 70% 80% 90% 48.4 48.8 49.0 49.0 49.0 49.4 49.8 50.2 50.6 Observao: como regra geral podemos utilizar o comando quantile() para os quartis, decis e para os percentis. Basta, para isso, utilizar um vetor no segundo argumento do comando com os valores percentuais desejados.

4.3
4.3.1

Medidas de Disperso
Introduo

Alm das medidas de posio que estudamos, h outras que, consideradas individualmente, no so medidas de posio, mas apresentam a caracterstica de avaliar a disperso dos dados em torno dos valores centrais. A motivao para o estudo das medidas de disperso est ilustrada no seguinte exemplo: Considere as sries de dados a seguir: a) 20, 20, 20, 20, 20 b) 15, 10, 20, 25, 30 Observamos que para ambas as sries a mdia igual a 20. Nota-se, entretanto, que os valores da srie na letra a se concentram totalmente na mdia, enquanto os valores da srie b se dispersam em torno do mesmo valor. Ou seja, a srie a no apresenta disperso e os valores da srie b esto dispersos em torno mdia 20. As medidas de disperso so a amplitude total, a varincia, o desvio-padro e o coeciente de variao. Vejamos a seguir descrio e exemplos para cada medida de disperso.

4.3.2

Amplitude Total (A)

a diferena entre o maior e menor dos valores da srie. Ou seja: A = Xmax Xmin (4.4)

A utilizao da amplitude total como medida de disperso muito limitada, pois uma medida que depende apenas dos valores extremos, no sendo afetada pela variabilidade interna dos valores da srie. Em uma srie de dados podemos encontrar os valores mximos e mnimos atravs dos seguintes comandos: #Sintaxe: > max(dados) > min(dados)

4.3. Medidas de Disperso

44

Estatstica Bsica: Introduo ao R

Captulo 4. Estatstica Descritiva

Outra forma de obter o maior e menor valor da srie de dados utilizar o comando: #Sintaxe: > range(dados) J para o clculo da amplitude total da srie deve-se fazer a diferena entre os valores apontados por um dos comandos anteriores da seguinte forma: #Sintaxe: > max(dados) - min(dados) Nesse mesmo contexto, podemos encontrar a quantidade total de elementos que a srie de dados possui. Basta utilizar a sintaxe a seguir: #Sintaxe: > length(dados) #Exemplo: Dada a srie de dados {20,23,23,28,33,37,37,37,40,44}: > a <- c(20,23,23,28,33,37,37,37,40,44) > max(a) [1] 44 > min(a) [1] 20 > range(a) [1] 20 44 > Amplitude = max(a)-min(a) > Amplitude [1] 24 > length(a) #nmero de elementos da srie de dados [1] 10

4.3.3

Varincia ( 2 )

A varincia a medida de disperso mais empregada geralmente, pois leva em considerao a totalidade dos valores da varivel em estudo. Baseia-se nos desvios em torno da mdia aritmtica, sendo um indicador de variabilidade. Considerando nosso propsito de medir o grau de variabilidade dos valores em torno da mdia, nada mais interessante do que estudarmos o comportamento dos desvios de cada valor individual da srie em relao mdia. Desta forma, o desvio individual dado por: di = (xi x), onde xi representa cada um dos i-simos valores da amostra e x a mdia da amostra. Entretanto, por uma das propriedades da mdia tem-se que n (xi x) = 0. Temos i=1 ento que solucionar o seguinte problema: queremos calcular a mdia dos desvios, porm sua soma pode ser nula. Como soluo a esse problema a varincia considera o quadrado de cada desvio 4.3. Medidas de Disperso 45

Estatstica Bsica: Introduo ao R

Captulo 4. Estatstica Descritiva

(xi x)2 , evitando com isso que o somatrio seja nulo. Assim, a varincia dada por: 2 =
n i=1 (xi

x)2 Fi n1

(4.5)

onde Fi o nmero de ocorrncias de xi . O comando para o clculo da varincia o seguinte: #Sintaxe: > var(dados) #Exemplo: Para o vetor {10,11,9,10,10,9,11} obtenha a varincia. > v <-c(10,11,9,10,10,9,11) > var(v) [1] 0.6666667

4.3.4

Desvio-padro ()

Seguindo a mesma linha de raciocnio usado para o clculo da varincia, necessitamos, agora, aproximar a medida de disperso da varivel original. Para isso, calculamos o desvio padro, que a raiz quadrada da varincia. Assim: =
n i=1 (xi

x)2 Fi n1

(4.6)

Podemos representar o desvio padro por uma distribuio normal, conforme grco abaixo:

Figura 4.4: Grco da distribuio normal em funo do desvio-padro

68,26% das ocorrncias se concentraro na rea do grco demarcada por um desvio padro direita e um desvio padro esquerda da linha mdia; 95,44% das ocorrncias esto a dois desvios padro, para a direita e a esquerda da mdia e, nalmente; 99,72% das ocorrncias ocorrem a trs desvios padro ao redor da mdia aritmtica. 4.3. Medidas de Disperso 46

Estatstica Bsica: Introduo ao R

Captulo 4. Estatstica Descritiva

Esta particularidade torna as distribuies normais previsveis, ou seja, se pudermos levantar seu desvio padro poderemos fazer previses sobre os eventos representados dentro das probabilidades denidas. O comando para o clculo do desvio padro segue abaixo: #Sintaxe: > sd(dados) #Exemplo: Para o exemplo anterior, do clculo da varincia. > v <-c(10,11,9,10,10,9,11) > sd(v) [1] 0.8164966 > sqrt(var(v)) [1] 0.8164966

4.3.5

Coeciente de Variao (CV)

Trata-se de uma medida relativa de disperso, til para a comparao em termos relativos do grau de concentrao em torno da mdia de sries distintas. dado por: 100% (4.7) x A importncia de se estudar o coeciente de variao se d, pois o desvio-padro relativo mdia. E como duas distribuies podem ter mdias diferentes, o desvio destas distribuies no comparvel. Logo, o coeciente de variao muito utilizado para comparao entre amostras. O R calcula o coeciente de variao conforme mostrado abaixo: CV = #Sintaxe: > 100*sd(dados)/mean(dados)

#dado em porcentagem

#Exemplo: Para o exemplo anterior, do clculo do desvio-padro. > v <-c(10,11,9,10,10,9,11) > CV = 100*sd(v)/mean(v) > CV [1] 8.164966 #em torno de 8%

4.4

Exemplo Aplicado

O seguinte exerccio foi adaptado a partir de [5]. Exemplo: Um artigo no Journal of Structural Engineering (Vol. 115, 1989) descreve um experimento para testar a resistncia resultante em tubos circulares com calotas soldadas nas extremidades. Os primeiros resultados (em kN) so: 96; 96; 102; 102; 102; 104; 104; 108; 126; 126; 128; 128; 140; 156; 160; 160; 164 e 170. Pede-se: 4.4. Exemplo Aplicado 47

Estatstica Bsica: Introduo ao R

Captulo 4. Estatstica Descritiva

a) Calcule a mdia da amostra e d uma interpretao prtica para ela. b) Calcule os percentis 9%, 25, 5% e 69, 67%. c) Calcule o segundo quartil ou mediana. d) Calcule a amplitude da amostra. e) Calcule a varincia e o desvio padro da amostra. f) Qual a fonte de maior variabilidade deste experimento. Para resolvermos este problema no R basta carregarmos o vetor com as medidas de resistncia das calotas soldadas. Veja abaixo: > rest <- c(96,96,102,102,102,104,104,108, + 126,126,128,128,140,156,160,160,164,170) > rest [1] 96 96 102 102 102 104 104 108 126 126 [11] 128 128 140 156 160 160 164 170 a) Para calcular a mdia basta fazer: > mean(rest) [1] 126.2222 Com este valor podemos concluir que a resistncia da solda das calotas circulares se concentra, na maioria dos testes, em torno do valor mdio. Isto , se pegarmos aleatoriamente uma calota soldada de se esperar que a resistncia da solda se concentre em torno (e prximo) da mdia. b) Obtemos pelo seguinte comando: > quantile(rest,c(.09,0.255,.6967)) 9% 25.5% 69.67% 99.1800 102.6700 138.1268 c) Como sabemos, o segundo quartil coincide com a mediana da amostra e calculamos da seguinte forma: > summary(rest) Min. 1st Qu. 96.0 102.5 > #ou > median(rest) [1] 126

Median 126.0

Mean 3rd Qu. 126.2 152.0

Max. 170.0

d) A amplitude pode ser obtida de duas formas diferentes. Vamos a elas:

4.4. Exemplo Aplicado

48

Estatstica Bsica: Introduo ao R

Captulo 4. Estatstica Descritiva

> range(rest) [1] 96 170 > A = 170-96 > #ou > A = max(rest)- min(rest) > A [1] 74 e) Obteremos com os comandos apresentados abaixo: > var(rest) [1] 683.2418 > sd(rest) [1] 26.13889 > sqrt(var(rest)) [1] 26.13889 f) Como a estatstica se preocupa com a variabilidade dos dados amostrais, devemos apontar suas causas. Neste exemplo, podemos apontar como possveis causas de variabilidade os erros de medio da resistncia da solda, soldagem feita por soldadores diferentes (caso no seja automatizado), etc. Enm, devemos reduzir a variabilidade para termos garantias de qualidade e, num cenrio ideal, elimin-la.

4.4. Exemplo Aplicado

49

Estatstica Bsica: Introduo ao R

Captulo 5. Probabilidade

5
Probabilidade
5.1 Introduo
Um experimento pode apresentar diferentes resultados quando conduzido mais de uma vez. Desta forma, mesmo tomando-se todo o cuidado para sua realizao, existem variveis como variaes na temperatura, quantidade de impurezas na composio qumica de determinado material, alteraes nos medidores, dentre outras, que no podem ser controladas, mas inuenciam nas concluses a respeito de tal experimento. Estas variveis podem provocar variaes muito pequenas nos resultados e serem desprezadas, ou sua inuncia pode ser relativamente grande e as concluses no serem bvias. Por este motivo, as distribuies de probabilidade buscam modelar e analisar os resultados experimentais em que as variveis no controladas possam provocar alteraes signicativas nos resultados. Alguns conceitos importantes devem estar consolidados para que seja compreendido o estudo da probabilidade. A seguir so apresentados tais conceitos: Experimento Aleatrio: experimento que pode apresentar diferentes resultados mesmo quando conduzido sob as mesmas condies. Espao amostral: conjunto de todos os possveis resultados de um experimento. Eventos: subconjunto do espao amostral de um experimento aleatrio.

5.2

Probabilidade - Denio

A probabilidade um nmero atribudo a cada membro de uma coleo de eventos a partir de um experimento aleatrio. Ela normalmente quanticada de maneira a representar o grau de crena que determinado evento possa ocorrer. Por exemplo, podese armar que a probabilidade de chover no m de semana de 40%. Quando se quantica determinado acontecimento, atribui-se um valor entre 0 e 1 ou em porcentagem. Quando a probabilidade igual a zero, o evento no ocorrer. J quando a probabilidade igual a um, ele ocorrer com certeza. Pode-se denir a probabilidade de um experimento da seguinte forma: Se um espao amostral consistir em N resultados possveis que sejam igualmente provveis, as possibilidades de ocorrncia de cada resultado de 1/N. Exemplo 1: Em um lote de 100 diodos, 30% satisfazem os requerimentos mnimos de potncia de um consumidor especco. Se um diodo for selecionado ao acaso (cada diodo tem a mesma chance de ser selecionado) qual ser a probabilidade de que as exigncias do consumidor sejam satisfeitas?

50

Estatstica Bsica: Introduo ao R

Captulo 5. Probabilidade

Soluo: Denotando E como evento em que o diodo selecionado satisfaa s exigncias do consumidor, temos que E o subconjunto de 30 diodos que est contido no espao amostral de 100 diodos do lote (N=100). A probabilidade de cada diodo ser selecionado determinada da seguinte maneira: P (N ) = 1 = 0, 01 100

Onde N so os possveis resultados e P(N) a probabilidade individual de seleo de cada diodo. Como E tem 30 possveis resultados e cada resultado tem probabilidade de 0,01, ento a probabilidade de ocorrncia do evento E, ou a probabilidade de que sejam satisfeitas as exigncias do consumidor, ser: P (E) = 30 0.01 = 0, 3 = 30% No R a probabilidade calculada da seguinte forma: #Sintaxe: # Exemplo 1: Lote de Diodos > n = 100 # nmero de possveis resultados > p = 1/n # probabilidade de ocorrncia de um resultado > p [1] 0.01 > E = 30*p # probabilidade do evento E > E [1] 0.3 Exemplo 2: Uma inspeo visual de um produtor local de pastilhas provenientes de um processo de fabricao de semicondutores resultou na seguinte tabela: Nmero de contaminantes 0 1 2 3 4 5 ou mais Proporo Partculas 0,4 0,2 0,15 0,10 0,05 0,10 de

Se desse processo uma pastilha for selecionada ao acaso e o local for inspecionado, pergunta-se: a) Qual ser a probabilidade de que ele no contenha partculas contaminantes? b) Qual ser a probabilidade de uma pastilha conter trs ou mais partculas do stio inspecionado? c) Qual a probabilidade de uma partcula conter 0 ou mais de trs partculas no stio inspecionado? Soluo: a) A probabilidade requerida depende somente do nmero de partculas contaminantes. Pode-se considerar que o espao amostral apresentado na tabela represente as 5.2. Probabilidade - Denio 51

Estatstica Bsica: Introduo ao R

Captulo 5. Probabilidade

seis categorias que resumem o nmero de partculas contaminantes em uma pastilha. Assim, o evento em que no h nenhuma partcula no local inspecionado denotado pelo evento Ea : P (Ea ) = P (0) = 0, 4 (5.1)

#Sintaxe: # Exemplo 2.a): > p_0 = 0.4 # probabilidade de 0 "partculas" por pastilha > p_a = p_0 # probabilidade do item a igual a probabilidade 0 > p_a # mostrar probabilidade do item a [1] 0.4 b) Fazendo Eb denotar o evento em que a pastilha contm trs ou mais partculas no stio inspecionado, vericamos que Eb ser a soma das trs ltimas categorias (3, 4, 5 ou mais): P (Eb ) = P (3, 4, 5, > 5) = 0, 1 + 0, 05 + 0, 1 = 0, 25

#Sintaxe: # Exemplo 2.b): > p_3 = 0.1 # probabilidade de 3 partculas por pastilha > p_4 = 0.05 # probabilidade de 4 partculas por pastilha > p_5 = 0.1 # probabilidade de 5 ou mais partculas por pastilha > p_c = p_3 + p_4 + p_5 # probabilidade do item b > # a soma das trs probabilidades > p_c # mostrar probabilidade do item b [1] 0.25 c) Fazendo Ec denotar o evento em que a pastilha contm 0 ou mais que trs partculas no stio inspecionado, Ec ser a soma dos resultados (0, 4, 5 ou mais): P (Ec ) = P (0, 4, 5) = 0, 4 + 0, 05 + 0, 1 = 0, 55

#Sintaxe: # Exemplo 2.c: > p_0 = 0.4 # probabilidade de 0 partculas por pastilha > p_4 = 0.05 # probabilidade de 4 partculas por pastilha > p_5 = 0.1 # probabilidade de 5 ou mais partculas por pastilha > p_c = p_0 + p_4 + p_5 # probabilidade do item c > # a soma das trs probabilidades > p_c # mostrar probabilidade do item c [1] 0.55

5.2. Probabilidade - Denio

52

Estatstica Bsica: Introduo ao R

Captulo 5. Probabilidade

5.3

Axiomas da Probabilidade

Os axiomas da probabilidade so regras que garantem que as probabilidades de um determinado evento sejam coerentes com o nosso entendimento intuitivo. Eles possibilitam que as probabilidades de alguns eventos sejam calculadas a partir do conhecimento das probabilidades de outros eventos. Assim: Considerando S o espao amostral e E como qualquer evento do experimento aleatrio, tem-se: 1) P(S) = 1 2) 0=P(E)=1 3) Para dois eventos E1 e E2 com E1 E2 = , P(E1 E2 ) = P(E1 ) + P(E2 )

5.3. Axiomas da Probabilidade

53

Estatstica Bsica: Introduo ao R

Captulo 6. Variveis Aleatrias

6
Variveis Aleatrias
6.1 Introduo
A utilizao dos recursos da estatstica descritiva requer que o espao amostral nonumrico de um determinado experimento aleatrio seja transformado em um espao amostral numrico. Em outras palavras, necessrio representar o resultado de um experimento aleatrio atravs de um nmero. Tal transformao feita por uma funo que confere um nmero real a cada resultado do experimento aleatrio. A esta funo d-se o nome de varivel aleatria. Em geral, as variveis aleatrias so representadas pela letra maiscula X, e elas podem ser de dois tipos: discretas ou contnuas.

6.2
6.2.1

Variveis Aleatrias Discretas


Introduo

Em alguns experimentos, como por exemplo, o nmero de bits transmitidos que so recebidos com erro, tem-se uma medida limitada a nmeros inteiros. Ou ainda, quando se deseja registrar que 0, 0042 de 1000 bits foram recebidos com erro, tem-se uma medida fracionria mais ainda assim limitada na linha dos nmeros reais. A varivel que representa uma medida com uma faixa nita de valores ou innita contvel denominada varivel aleatria discreta ou VAD. Como exemplo de variveis aleatrias discretas, tem-se a quantidade de partes defeituosas em n testadas, nmero de bits transmitidos com erro, ou seja, tudo que estiver relacionado com a contagem de determinados elementos.

6.2.2

Distribuio Binomial - X b(n,p)

Um experimento binomial diz respeito a um experimento aleatrio que consiste em repetidas tentativas que apresentam apenas dois resultados possveis (tentativas de Bernoulli) e possui as seguintes caractersticas: As tentativas so independentes, ou seja, o resultado de uma no altera o resultado da outra; Cada repetio do experimento admite apenas dois resultados: sucesso ou fracasso; A probabilidade de sucesso (p), em cada tentativa, constante. A varivel aleatria X denota o nmero de tentativas que resultaram em sucesso e possui uma distribuio binomial com parmetros p e n = 1,2,3,. . . 54

Estatstica Bsica: Introduo ao R A funo de probabilidade de X : P (X = x) = f (x) = onde n x = n! x!(n x)! n x

Captulo 6. Variveis Aleatrias

px (1 p)nx , x = 0, 1, 2, . . . , n.

(6.1)

(6.2)

n - nmero de tentativas; p - probabilidade de sucesso; x - nmero de sucessos; A esperana (mdia) e a varincia so dadas por: = E(X) = np 2 = V (x) = np(1 p) (6.3) (6.4)

A distribuio binomial obtida atravs da expanso binomial, frmula que pode ser aplicada em vrios exemplos:
k=0

(a + b) =
n

n k

ak bnk

(6.5)

Considerando a = p e b = 1-p, observa-se que a soma das probabilidades para uma varivel aleatria discreta igual a um. O nome binomial devido ao fato de o resultado apresentar duas possibilidades. A distribuio binomial uma particularidade da distribuio multinomial. Exemplo 1: Uma amostra de ar tem 10% de chance de conter certa molcula rara. Considere que as amostras sejam independentes com relao presena da molcula rara. Encontre a probabilidade de que nas prximas 18 amostras, exatamente 2 contenham a molcula rara. Soluo: x o nmero de amostras de ar que contenham a molcula rara nas prximas 18 amostras analisadas. p = 10% = 0, 1; n = 18; x = 2; #Exemplo 1: > p <- 0.1 #probabilidade > n <- 18 #nmero de amostras > x <- 2 #nmero de sucessos em 18 amostras > dbinom(x, n, p) [1] 0.2835121 O resultado representa que a probabilidade de que exatamente 2 molculas raras sejam encontradas nas prximas 18 amostras analisadas. Exemplo 2: A probabilidade de uma pea artesanal ser feita com perfeio por um arteso de 50%. Considerando que o arteso produz, de maneira independente, 6 peas por dia, pede-se: a) Obter a distribuio de probabilidades, ou seja, as probabilidades associadas aos 6.2. Variveis Aleatrias Discretas 55

Estatstica Bsica: Introduo ao R

Captulo 6. Variveis Aleatrias

possveis valores da varivel aleatrias discreta x, em que x = nmero de peas perfeitas produzidas pelo arteso num nico dia. Observao: x = {0,1,2,3,4,5,6}, n = 6, p = 0.5. b) Plotar o grco com os valores da probabilidade calculada. #Exemplo 2: > x <- 0:6 > n <- 6 > p <- 0.5 > bino <- dbinom(x, n, p) > bino [1] 0.015625 0.09375 0.234375 0.312500 0.234375 0.093750 0.015625 > plot(x,bino,type="h",xlab="N de peas com perfeio", + ylab="Probabilidade",main="Distribuio binomial")

Figura 6.1: Grco do Exemplo 2.b: Distribuio binomial de probabilidades

6.2. Variveis Aleatrias Discretas

56

Estatstica Bsica: Introduo ao R

Captulo 6. Variveis Aleatrias

6.2.3

Distribuio De Poisson - X P()

A distribuio de Poisson permite evidenciar a probabilidade de experimentos em que o nmero de amostras pode aumentar no tempo e a probabilidade de sucesso diminuir, mantendo a esperana E(X) constante. Um experimento no qual dado um intervalo de nmeros reais, sejam realizadas contagens atravs do intervalo. Se este intervalo puder ser dividido subintervalos com comprimentos to pequenos tais que: A probabilidade de mais de uma contagem em um subintervalo seja zero; A probabilidade de uma contagem em um subintervalo seja a mesma para todos os subintervalos e proporcional ao comprimento do intervalo; A contagem de cada subintervalo seja independente dos outros subintervalos; Tal experimento chamado processo de Poisson. Assim a varivel aleatria X, que denota o nmero de contagens no intervalo, possui uma distribuio de Poisson com parmetro e representada atravs da funo: e x , x = 0, 1, 2, . . . , n. (6.6) x! A mdia e a varincia de uma distribuio de Poisson so representadas por: f (x) = = E(X) = = pn 2 = V (x) = (6.7) (6.8)

Exemplos da utilizao da distribuio de Poisson so quaisquer experimentos que incluem intervalo de tempo, superfcie ou volume: partculas de contaminao na fabricao de semi-condutores, interrupes de energia, entre outras. Abaixo, observa-se o grco da distribuio de Poisson.

6.2. Variveis Aleatrias Discretas

57

Estatstica Bsica: Introduo ao R

Captulo 6. Variveis Aleatrias

Figura 6.2: Distribuio de Poisson para diferentes parmetros

A distribuio binomial pode ser aproximada por uma Poisson, com = n.p quando o tamanho da amostra grande (n ) e a probabilidade pequena (p 0). Em outras palavras, quando n > 30 e p < 0, 05. Exemplo 3: Em um o delgado de cobre, o nmero de falhas no o segue a distribuio de Poisson, com uma mdia de 2,3 falhas por milmetro. a) Determine a probabilidade de existir exatamente 2 falhas em um milmetro de o. b) Sabendo que o nmero mximo de erros no teste de qualidade de 10 erros/mm, verique as probabilidades de que ocorram de 0 a 10 falhas no o. Plote o grco da distribuio. Soluo: a) X representa o nmero de falhas em 1 milmetro de o: E(X) = = = 2, 3 f alhas/mm. #Exemplo 3a: > x<-2 > lambda<-2.3 > #distribuio de Poisson com parmetros x e lambda: > dpois(x,lambda) [1] 0.2651846

6.2. Variveis Aleatrias Discretas

58

Estatstica Bsica: Introduo ao R b) Fazendo x variar de 0 a 10 erros/mm, temos:

Captulo 6. Variveis Aleatrias

#Exemplo 3b: > x <- 0:10 > poisson <- dpois(x, lambda) > plot(x,poisson, xlab= "N de erros por milmetro", + ylab="Probabilidade de Poisson",main="Distribuio de Poisson") > lines(x,poisson)

Figura 6.3: Grco do Exemplo 3.b: Distribuio Poisson de probabilidades

6.3
6.3.1

Variveis Aleatrias Contnuas


Introduo

A corrente eltrica em um o condutor ou o comprimento de uma pea so exemplos de experimentos aleatrios que apresentam a medida de interesse como um nmero real. Desta forma se pode ter uma preciso arbitrria da medida. A varivel aleatria que representa uma medida, com um intervalo nito ou innito de nmeros reais para sua faixa denomina-se varivel aleatria contnua ou VAC. Como exemplos de variveis aleatrias contnuas tm-se: a corrente eltrica, comprimento, presso, temperatura, tempo, tenso, peso.

6.3.2

Distribuio Normal ou Gaussiana - X N(, 2 )

um dos mais importantes modelos de probabilidade para VACs. Aplicado em inmeros fenmenos e muito utilizado no desenvolvimento terico e na rea da inferncia estatstica. 6.3. Variveis Aleatrias Contnuas 59

Estatstica Bsica: Introduo ao R

Captulo 6. Variveis Aleatrias

A distribuio gaussiana serve como aproximao para o clculo de outras distribuies quando o nmero de observaes aumenta. O teorema central do limite explica esta propriedade, ele diz que: Toda a soma de variveis aleatrias independentes de mdia nita e varincia limitada aproximadamente Normal, desde que o nmero de termos da soma seja sucientemente grande [5]. Assim ca determinado que quando as rplicas de um experimento aleatrio se aproximarem de um resultado mdio, o experimento tender a ter uma distribuio normal na medida em que o nmero de rplicas se torne grande. As variveis aleatrias com diferentes mdias e varincias podem ser modeladas pelas funes densidade de probabilidade normal. E(X) = determina o centro do grco em forma de sino, e V (X) = 2 determina a largura da distribuio, como pode-se observar:

Figura 6.4: Distribuio Normal com diferentes parmetros

6.3. Variveis Aleatrias Contnuas

60

Estatstica Bsica: Introduo ao R

Captulo 6. Variveis Aleatrias

A representao da funo densidade de probabilidade dada por:


(x)2 1 f (x) = e 22 2

(6.9)

Em que: <x< >0 E(X) = V (X) = 2 (6.10) (6.11) (6.12) (6.13)

Exemplo 4: Um pesquisador coletou os dados da estatura de jovens em idade de alistamento militar. Sabe-se que a estatura de uma populao segue a distribuio normal, com mdia 170 cm e varincia 36 cm2 (desvio padro de 6 cm2 ). a) Qual a probabilidade de se encontrar um jovem com mais de 1,79 m de altura? b) Qual a altura em que a probabilidade de encontrarmos valores menores que ela seja de 80%? c) Represente gracamente a curva da distribuio normal para este problema e identique as respostas dos itens a e b. Soluo: #Exemplo 4: > #Item a) > 1-pnorm(179,170,6) #pnorm(x,mdia,desvio padro) [1] 0.0668072 > #Item b) > qnorm(0.8, 170,6) [1] 175.0497 > #Item c) > curve(dnorm(x,170,6),170-3*6,170+3*6,xlab="Alturas (cm)", + ylab="Probabilidade de se encontrar a altura x", + main="Distribuio Normal") > lines(c(179,179),c(0,0.022),col="red") > lines(c(175.0497,175.0497),c(0,0.0465),col="blue")

6.3. Variveis Aleatrias Contnuas

61

Estatstica Bsica: Introduo ao R

Captulo 6. Variveis Aleatrias

Figura 6.5: Distribuio normal do Exemplo 4.c

6.3.3

Distribuio de Weibull - X W(,)

A distribuio Weibull, geralmente usada para modelar o tempo at uma falha de sistemas fsicos (diversos tipos). Os parmetros da distribuio fornecem grande exibilidade para modelar sistemas em que o nmero de falhas aumenta com o tempo, diminui com o tempo, ou permanece constante com o tempo. Sua funo densidade de probabilidade representada por: x 1 ( x ) e onde a mdia e a varincia de X so, respectivamente: f (x) = = 1 + 2 = 2 1 + 2 1 1
2

(6.14)

(6.15) (6.16)

2 1 +

Exemplo 5: O tempo de falha (em horas) de um mancal em um eixo mecnico satisfatoriamente modelado como uma varivel aleatria de Weibull com = 1 e 2 = 5000. a) Determine a probabilidade de um mancal durar no mnimo 6000 h. b) Vericar a probabilidade de um mancal ter problemas nas primeiras 6000 h. Plotar 6.3. Variveis Aleatrias Contnuas 62

Estatstica Bsica: Introduo ao R o resultado. Soluo:

Captulo 6. Variveis Aleatrias

#Exemplo 5: > 1-pweibull(6000,0.5,5000) [1] 0.3343907 > x <- 0:6000 > curve(dweibull(x,0.5,5000),0,7000) #dweibull(x, beta,delta)

Figura 6.6: Grco do Exemplo 5: Distribuio Weibull

6.3. Variveis Aleatrias Contnuas

63

Estatstica Bsica: Introduo ao R

Captulo 6. Variveis Aleatrias

6.3.4

Distribuies no R

Abaixo possvel conferir algumas distribuies disponveis no R.

Figura 6.7: Funes de Distribuies disponveis no R

6.3. Variveis Aleatrias Contnuas

64

Estatstica Bsica: Introduo ao R

Captulo 7. Inferncia Estatstica

7
Inferncia Estatstica
7.1 Introduo
Muitos problemas, especialmente na rea de engenharia, requerem que decidamos entre aceitar ou rejeitar uma hiptese acerca de algum parmetro. A armao chamada de hiptese e o procedimento de tomada de deciso sobre a hiptese chamado de teste de hipteses. Denio: Uma hiptese estatstica uma armao sobre os parmetros de uma ou mais populaes. importante destacar que hipteses so sempre armaes sobre a populao ou distribuio sob estudo, no armaes sobre a amostra. Em um teste de hiptese trabalhamos sempre com duas armaes: a hiptese nula (H0 ) e a hiptese alternativa (H1 ). O valor do parmetro especicado na hiptese nula geralmente determinado por uma de trs formas: Ele resultado de experincia passada, conhecimento do processo ou de testes e experimentos prvios. determinado a partir de alguma teoria ou do modelo relativo ao processo sob estudo. resultado de consideraes externas, tais como projeto ou especicaes de engenharia ou obrigaes contratuais. Trataremos aqui a hiptese nula de forma que ela seja sempre estabelecida especicando um valor exato do parmetro (igualdade). J a hiptese alternativa permitir ao parmetro assumir vrios valores, dependendo do tipo de hiptese em estudo.

7.1.1

Hipteses Unilaterais e Bilaterais


H0 : = 0 H1 : = 0

Um teste de qualquer hiptese, tal como

chamado de teste bilateral, porque importante detectar diferenas em relao ao valor da mdia 0 usado na hiptese, que esteja em ambos os lados de 0 . Em tal caso, a regio critica dividida em duas partes com (geralmente) igual probabilidade colocada em cada extremidade da distribuio da estatstica do teste.

65

Estatstica Bsica: Introduo ao R

Captulo 7. Inferncia Estatstica

Figura 7.1: Grco de um teste bilateral para a mdia de distribuio normal

Muitos problemas de teste de hiptese envolvem, naturalmente, uma hiptese alternativa unilateral, tal como: H0 : = 0 H1 : < 0 ou H0 : = 0 H1 : > 0 Se a hiptese alternativa for H1 : > 0 , a regio crtica deve estar na extremidade superior da distribuio da estatistica de teste, enquanto se a hiptese alternativa for H1 : < 0 , a regio critica deve estar na extremidade inferior da distribuio. Esses testes so chamados unilaterais.

7.2
7.2.1

Testes de Hiptese - Uma amostra


Introduo

Esta seo trata de inferncias acerca dos parmetros mdia, varincia e proporo de uma populao simples.

7.2.2

Teste para a Mdia

Podemos realizar o teste de hiptese para a mdia de uma populao normal em duas situaes: Varincia conhecida Neste caso utiliza-se a seguinte estatistica de teste: Z0 = e o seguinte intervalo de conana: x z x + z 2 2 n n 7.2. Testes de Hiptese - Uma amostra (7.2) X 0
n

(7.1)

66

Estatstica Bsica: Introduo ao R Varincia desconhecida

Captulo 7. Inferncia Estatstica

Neste caso utiliza-se a seguinte estatistica de teste: T0 = e o seguinte intervalo de conana: s s x t ,n1 x + t ,n1 2 2 n n (7.4) X 0
S n

(7.3)

Nesta apostila trabalharemos apenas com o teste t (para varincia desconhecida) em ambos os casos. Isso se justica pelo fato de que o teste z uma particularidade do teste t para um nmero razovel de amostras (n > 30) e a utilizao de t em casos de varincia conhecida no um problema, pelo contrrio, cobre o teste para os casos de erro do tipo I. A funo de teste de hiptese para uma mdia chamada t.test(). Posteriormente veremos que a mesma funo servir para comparao entre duas mdias. Veja abaixo a sintaxe da funo:

#sintaxe: t.test(x, alternative = hipotese, mu = media, conf.level = ) onde: hipotese - pode assumir os seguintes valores: greater (teste unilateral de H0 maior que a mdia) less (teste unilateral de H0 menor que a mdia) two.sided (teste bilateral de H0 igual mdia) media - valor da mdia a ser testada - conana do teste (1 (signif icancia) ) Para entender como utilizar a funo, faremos um exemplo retirado de Montgomery [5]. Exemplo: Um artigo peridico Materials Engineering (1989, Vol. II, No. 4, pp. 275-281) descreve os resultados de teste de tenso quanto adeso em 22 corpos de prova de liga U-700. A carga no ponto de falha do corpo de prova dada a seguir (em MPa): 19,8 15,4 11,4 19,5 10,1 18,5 14,1 8,8 14,9 7,9 17,6 13,6 7,5 12,7 16,7 11,9 15,4 11,9 15,8 11,4 15,4 11,4

7.2. Testes de Hiptese - Uma amostra

67

Estatstica Bsica: Introduo ao R

Captulo 7. Inferncia Estatstica

O objetivo vericar se os dados sugerem que a carga mdia na falha excede 10 MPa. Considerar que a carga na falha tem uma distribuio normal e utilizar = 0.05. Primeiramente, devemos associar os dados da tabela a um vetor. Feito isso, devemos realizar um teste unilateral a m de vericar se a mdia na falha maior que a 10 MPa. A seguir podemos vericar a resoluo utilizando a funo t.test() no R:

#Exemplo: > x<-c(19.8, 18.5, 17.6, 16.7, 15.8, 15.4, 14.1, 13.6, + 11.9, 11.4, 11.4, 8.8, 7.5, 15.4, 15.4, 19.5, + 14.9, 12.7, 11.9, 11.4, 10.1, 7.9) > x [1] 19.8 18.5 17.6 16.7 15.8 15.4 14.1 13.6 11.9 11.4 11.4 [12] 8.8 7.5 15.4 15.4 19.5 14.9 12.7 11.9 11.4 10.1 7.9 > t.test(x,alternative="greater",mu=10,conf.level=0.95) One Sample t-test data: x t = 4.9017, df = 21, p-value = 3.781e-05 alternative hypothesis: true mean is greater than 10 95 percent confidence interval: 12.40996 Inf sample estimates: mean of x 13.71364 A funo retorna a hiptese alternativa, o intervalo de conana, a mdia amostral, o valor de t calculado (valor crtico), os graus de liberdade da distribuio e o p-value. P-value a probabilidade de obter um resultado pelo menos muito prximo do que o valor que foi testado, assumindo que a hiptese nula verdadeira. O fato de o Pvalue ser baseado nessa premissa crucial para sua correta interpretao. Um P-valor prximo de 0 indica que a hiptese nula falsa. Quando prximo de 1, indica que no h evidncias sucientes para rejeitar a hiptese nula. Para interpretar os testes de hiptese no R, temos que comparar o P-value com a signicncia testada: p-value > Aceita H0 p-value < Rejeita H0 Em nosso caso, percebemos que p-value muito menor que . Logo, atravs das evidncias amostrais, rejeita-se a hiptese nula (H0 : = 10 MPa), evidenciando que a carga mdia maior que 10 MPa (H1 : > 10 MPa).

7.2.3

Teste para a Varincia de uma populao normal

Algumas vezes so necessrios testes de hiptese e intervalos de conana para a varincia de uma populao. O teste que estudaremos vlido quando a populao for modelada por uma distribuio normal. 7.2. Testes de Hiptese - Uma amostra 68

Estatstica Bsica: Introduo ao R

Captulo 7. Inferncia Estatstica

A estatstica de teste dada pela seguinte frmula:


2 X0 =

(n 1)S 2 2 0

(7.5)

com os seguintes intervalos de conana: Intervalo superior 2 Intervalo inferior (n 1)s2 2 1,n1 (7.6)

(n 1)s2 2 2 ,n1

(7.7)

Devemos entender que a estatstica desse teste segue uma distribuio qui-quadrado com n-1 graus de liberdade, abreviada por n1 . O R no possui nenhuma funo pronta para calcular esse teste para a varincia. Portanto, utilizaremos a estatstica de teste e o conceito de P-valor para criar uma funo simples deste caso. Para tanto, utilizaremos um exemplo de [5]. Exemplo: Uma mquina automtica de enchimento usada para encher garrafas com detergente lquido. Uma amostra aleatoria de 20 garrafas resulta em uma varincia da amostra do volume de enchimento de s2 = 0, 0153 (ona uda)2 . Se a varincia do volume exceder 0, 01 (ona uda)2 , existir uma proporo inaceitvel de garrafas cujo enchimento no foi completo e cujo enchimento foi em demasia. H evidncias nos dados da amostra sugerindo que o fabricante tenha um problema com garrafas cheias com falta e excesso de detergente? Use = 0, 05 e considere que o volume de enchimento tenha uma distribuio normal. Para resolver este problema, devemos calcular a estatstica de teste e vericar o pvalor dessa estatstica. Caso o P-valor seja menor que o alfa desejado, devemos rejeitar a hiptese nula, aceitando H1 : 2 > 0, 01. Vejamos como resolver isso no R:

#Exemplo: > nam = 20 #n = tamanho da amostra > varS = 0.0153 #varS = varincia amostral > sig0 = 0.01 #sig0 = valor de varincia testada > alfa = 0.05 #alfa = significncia do teste > #estatstica de teste > quicalc = (nam-1)*varS/sig0 > quicalc [1] 29.07 > #pvalor do teste > pvalor=pchisq(q=quicalc,df=nam-1, lower.tail = F) > pvalor [1] 0.064892 Podemos observar no exemplo resolvido que se utilizou a funo de probabilidade da distribuio qui-quadrado para obter o p-value. O argumento lower.tail=F indica 7.2. Testes de Hiptese - Uma amostra 69

Estatstica Bsica: Introduo ao R

Captulo 7. Inferncia Estatstica

2 que queremos um teste do tipo H1 : 2 > 0 . A anlise aqui a mesma: como pvalue > , no existem evidncias amostrais para rejeitar a hiptese nula. Portanto, no h evodncias sucientes para concluirmos que o volume do enchimento exceda 0, 01 (ona uda)2 . Vamos generalizar este exerccio criando uma funo simples para teste de uma varincia. Veja abaixo a funo e o resultado para o mesmo exemplo anterior:

onevartest <- function(varS, nam, sig0, alfa, tail) { #nam = tamanho da amostra #varS = varincia amostral #sig0 = valor de varincia testada #alfa = significncia do teste quicalc = (nam-1)*varS/sig0; #estatstica de teste #Testes unilaterais apenas if(tail==0) #intervalo superior { #pvalor do teste pvalor=pchisq(q=quicalc,df=nam-1, lower.tail = F) Intervalo=((nam-1)*varS)/(qchisq(p=alfa,df=nam-1, lower.tail=F)) print("P-Valor e Valor crtico do intervalo superior") } else #intervalo inferior { #pvalor do teste pvalor=pchisq(q=quicalc,df=nam-1, lower.tail = T); Intervalo=((nam-1)*varS)/(qchisq(p=alfa,df=nam-1, lower.tail=T)) print("P-Valor e Valor crtico do intervalo inferior") }

return(list(c("Pvalor =", pvalor),c("Intervalo = ", Intervalo))) } #Exemplo: > onevartest(0.0153,20,0.01,0.05,0) [1] "P-Valor e Valor crtico do intervalo superior" [[1]] [1] "Pvalor =" "0.0648920049393868" [[2]] [1] "Intervalo = "

"0.00964386145047913"

7.2. Testes de Hiptese - Uma amostra

70

Estatstica Bsica: Introduo ao R

Captulo 7. Inferncia Estatstica

7.2.4

Teste para uma Proporo Binomial

Testes de proporo esto relacionados com variveis aleatrias que possuem parmetros de distribuies binomiais. Frequentemente necessrio testar hipteses e construir intervalos de conana para propores de uma populao. A metodologia para os testes de propores a mesma utilizada anteriormente. O testes de hiptese para uma proporo binomial tem a seguinte estatstica de teste: Z0 = e o seguinte intervalo de conana: p z 2 p(1 p) p p + z 2 n p(1 p) n (7.9) X np0 np0 (1 p0 ) (7.8)

A funo do teste de hiptese para uma proporo chamada prop.test(). Veja abaixo a sintaxe da funo:

#sintaxe: prop.test(x, p = prop, alternative = hipotese, conf.level = ) onde: x - uma matriz contendo o nmero de sucessos e falhas, respectivamente. hipotese - pode assumir os seguintes valores: greater (teste unilateral de H0 maior que a proporo p) less (teste unilateral de H0 menor que a proporo p) two.sided (teste bilateral de H0 igual proporo p) prop - valor da proporo a ser testada - conana do teste (1 (signif icancia) ) Exemplo: Queremos provar, atravs de dados amostrais, que a frao defeituosa num processo de fabricao de semicondutores no excede 6% do total produzido. Para tanto, retirou-se uma amostra aleatria de 200 semicondutores e se encontrou 4 defeituosos. Para resolver esse problema, vamos gerar uma matriz (de uma linha e duas colunas) que contenha o total de sucessos (4) e falhas (196), respectivamente. Como estamos observando as falhas do processo, nosso sucesso sero os semicondutores defeituosos. Aps, escolhemos o tipo de teste (neste caso, unilateral; H1 : p < 0.06) e o grau de conana do teste. A soluo do exemplo est a seguir:

7.2. Testes de Hiptese - Uma amostra

71

Estatstica Bsica: Introduo ao R

Captulo 7. Inferncia Estatstica

#Exemplo: > x = matrix(c(4,196),1,2) > x [,1] [,2] [1,] 4 196 > prop.test(x,p=0.06,alternative="less",conf.level=0.97) 1-sample proportions test with continuity correction data: x, null probability 0.06 X-squared = 4.9867, df = 1, p-value = 0.01277 alternative hypothesis: true p is less than 0.06 97 percent confidence interval: 0.00000000 0.05203808 sample estimates: p 0.02 A interpretao do teste dada pela mesma forma forma explicada em 7.2.2, com o P-value. Como temos um P-value menor que nossa signicncia (3%), rejeitamos a hiptese nula, evidenciando que a proporo de peas defeituosas do processo menor que 6%.

7.3
7.3.1

Testes de Hiptese - Duas amostras


Introduo

Esta seo trata de inferncias acerca dos parmetros mdia, varincia e proporo de duas populaes independentes.

7.3.2

Teste para a mdia

Podemos realizar testes para a diferena entre duas mdias em dois casos: com varincias conhecidas ou varincias desconhecidas. Ainda para varincias desconhecidas, podemos armar que elas so iguais ou diferentes. Veja nas guras abaixo (retiradas de [5]) a denio para cada situao e tambm as denies dos intervalos de conana:

7.3. Testes de Hiptese - Duas amostras

72

Estatstica Bsica: Introduo ao R

Captulo 7. Inferncia Estatstica

Figura 7.2: Teste para a diferena de duas mdias com varincias conhecidas

Figura 7.3: Intervalo de conana para a diferena de duas mdias com varincias conhecidas

7.3. Testes de Hiptese - Duas amostras

73

Estatstica Bsica: Introduo ao R

Captulo 7. Inferncia Estatstica

Figura 7.4: Teste para a diferena de duas mdias com varincias desconhecidas

Figura 7.5: Intervalo de conana para a diferena de duas mdias com varincias desconhecidas, porm iguais

Conforme explicado na Seo 7.2.2, trabalharemos apenas com o teste t (para varincia desconhecida) em ambos os casos. A sintaxe para realizar um teste para duas amostras (no caso da comparao de duas mdias) bastante semelhante ao teste para uma amostra. A nica diferena um segundo vetor numrico de dados que ser comparado com o primeiro. Veja abaixo:

7.3. Testes de Hiptese - Duas amostras

74

Estatstica Bsica: Introduo ao R

Captulo 7. Inferncia Estatstica

Figura 7.6: Intervalo de conana para a diferena de duas mdias com varincias desconhecidas e diferentes

#sintaxe: t.test(x, y, alternative = hipotese, mu = dif medias, conf.level = ) onde: hipotese - pode assumir os seguintes valores: greater (teste unilateral de H0 : x > y ) less (teste unilateral de H0 : x < y ) two.sided (teste bilateral de H0 : x = y ) difmedias - testar (H1 ) se x y maior, menor ou diferente do valor difmedias - conana do teste (1 (signif icancia) ) Vamos estudar o teste a partir de um exemplo retirado de [5]. Exemplo: Dois catalisadores esto sendo analisados para determinar como eles afetam o rendimento mdio de um processo qumico. Especicamente, o catalisador 1 est correntemente em uso, mas o catalisador 2 aceitvel. Uma vez que o catalisador 2 mais barato, ele deve ser adotado, desde que ele no mude o rendimento do processo. Um teste feito em uma planta piloto, resultando nos dados mostrados na tabela abaixo. H alguma diferena entre os rendimentos mdios? Use = 0.05 e considere varincias iguais.

7.3. Testes de Hiptese - Duas amostras

75

Estatstica Bsica: Introduo ao R Nmero da Observao 1 2 3 4 5 6 7 8 Catalisador 1 91,50 94,18 92,18 95,39 91,79 89,07 94,72 89,21

Captulo 7. Inferncia Estatstica Catalisador 2 89,19 90,95 90,46 93,21 97,19 97,04 91,07 92,75

O objetivo vericar se h diferena entre as mdias de rendimento do catalisador 1 e do catalisador 2. Primeiramente, devemos associar os dados da tabela a dois vetores (x e y, respectivamente). Feito isso, devemos realizar um teste bilateral a m de vericar se x y . A seguir podemos vericar a resoluo utilizando a funo t.test() no R:

#Exemplo: > x <- c(91.50, 94.18, 92.18, 95.39, + 91.79,89.07,94.72,89.21) > y <- c(89.19,90.95,90.46,93.21, + 97.19,97.04,91.07,92.75) > x [1] 91.50 94.18 92.18 95.39 91.79 89.07 94.72 [8] 89.21 > y [1] 89.19 90.95 90.46 93.21 97.19 97.04 91.07 [8] 92.75 > t.test(x,y,alternative="two.sided",mu=0) Welch Two Sample t-test data: x and y t = -0.3536, df = 13.353, p-value = 0.7292 alternative hypothesis: true difference in means isnt equal to 0 95 percent confidence interval: -3.387118 2.432118 sample estimates: mean of x mean of y 92.2550 92.7325 Conforme o resultado do teste, percebemos que p-value maior que . Portanto, no h evidncias amostrais sucientes para rejeitar a hiptese nula H0 : x = y . Conclumos ento que no h diferena entre os rendimentos dos catalisadores.

7.3.3

Teste para as varincias de duas populaes normais

Esta seo apresentar um teste para as varincias de duas populaes normais. A estatstica deste teste dada pela razo F (conhecida como teste F): 7.3. Testes de Hiptese - Duas amostras 76

Estatstica Bsica: Introduo ao R

Captulo 7. Inferncia Estatstica

F0 = e possui o seguinte intervalo de coana:

2 S1 2 S2

(7.10)

s2 2 s2 1 1 f1/2,n2 1,n1 1 1 2 f/2,n2 1,n1 1 2 s2 2 s2 2

(7.11)

Para realizar este teste, contaremos com a funo var.test(), cuja sintaxe est descrita abaixo: #sintaxe: var.test(x, y, ratio = onde: x,y - so vetores nmericos das populaes estudadas s2 x - a razo a ser testada (default: 1) s2 y hipotese - pode assumir os seguintes valores: greater (teste unilateral de H0 : less (teste unilateral de H0 :
s2 x s2 y s2 x s2 y s2 x , alternative s2 y

= hipotese, conf.level = )

> ratio)

< ratio)
s2 x s2 y

two.sided (teste bilateral de H0 :

= ratio)

- conana do teste (1 (signif icancia) ) Resolveremos um exemplo de [5] para aplicar esta funo. Exemplo: Uma companhia fabrica propulsores para uso em motores de turbinas de avio. Uma das operaes envolve esmerilhar o acabamento de uma superfcie particular para um componente de liga de titnio. Dois processos diferentes para esmerilhar podem ser usados, podendo produzir peas com iguais rugosidades mdias na supercie. Uma amostra aleatria de n1 = 11 peas, proveniente do primeiro processo, resulta em um desvio-padro de s1 = 5, 1 micropolegadas. Uma amostra aleatria de n2 = 16 peas, proveniente do segundo processo, resulta em um desvio-padro de s2 = 4, 7 micropole2 gadas. Verique se a razo entre as duas varincias 1 diferente de 1 com um nvel 2 2 de conana de 90%. Considere que os dois processos sejam diferentes e a rugosidade na superfcie seja normalmente distribuda. Podemos encontrar a soluo para esse problema facilmente. Basta criarmos dois vetores com distribuies normais aleatrias, especicando o tamanho da amostra e o desvio-padro de cada populao. Aps isso, basta aplicarmos a funo var.test(). Veja a soluo a seguir:

7.3. Testes de Hiptese - Duas amostras

77

Estatstica Bsica: Introduo ao R

Captulo 7. Inferncia Estatstica

#Exemplo: > x <- rnorm(11, sd=5.1) > y <- rnorm(16, sd=4.7) > x [1] -1.0894190 2.6676766 4.5793885 1.2510806 7.3023286 [6] -3.6150530 -3.1051404 -6.7414156 0.1396896 1.3428483 [11] -1.5461805 > y [1] -3.1878255 5.7939292 -3.4140953 -5.9682770 5.8940996 [6] 0.1104748 -0.5214162 0.5847299 1.8692529 3.7037109 [11] -5.5122767 -1.4200343 4.6508673 -3.3598818 0.3133970 [16] 4.3929997 > var.test(x,y,ratio=1,alternative="t",conf.level=0.9) F test to compare two variances data: x and y F = 1.032, num df = 10, denom df = 15, p-value = 0.9264 alternative hypothesis: true ratio of variances is not equal to 1 90 percent confidence interval: 0.4056976 2.9360014 sample estimates: ratio of variances 1.031980 Como possvel observar, o p-value maior que nossa signicncia . Logo, no h evidncias amostrais sucientes para rejeitarmos H0 e armar que as varincias so diferentes, o que nos leva a aceitar a hiptese de que a razo entre as varincias 1.

7.3.4

Teste para duas propores

Esta seo abordar testes para duas propores. comum quando se comparam resultados binomiais de duas populaes (casos clssicos como pesquisas de opinio entre homens e mulheres, estudos epidemiolgicos, falhas apresentadas em dois processos de fabricao para um mesmo produto, etc.). Abaixo dada a denio para a estatistica desse teste: Z= P1 P2 (p1 p2 )
p1 (1p1 ) n1

p2 (1p2 ) n2

(7.12)

que tem o seguinte intervalo de conana: p1 p2 z/2 p1 (1 p1 ) p2 (1 p2 ) p1 (1 p1 ) p2 (1 p2 ) + p1 p2 p1 p2 +z/2 + n1 n2 n1 n2 (7.13) Semelhante a Seo 7.3.2, usaremos o prop.test(). Mas desta vez, ao invs de utilizar uma matriz, usaremos dois vetores: um vetor linha de dois elementos para os 78

7.3. Testes de Hiptese - Duas amostras

Estatstica Bsica: Introduo ao R

Captulo 7. Inferncia Estatstica

sucessos das populaes 1 e 2 e outro vetor de mesma dimenso cujos elementos sero justamente as populaes 1 e 2. Veja abaixo a sintaxe: #sintaxe: prop.test(X = c(x1 , x2 ), Y = c(n1 , n2 ), alternative = hipotese, conf.level = ) onde: X - vetor com os sucessos x1 (da populao 1) e x2 (da populao 2) Y - vetor com os tamanhos n1 (da populao 1) e n2 (da populao 2) hipotese - pode assumir os seguintes valores: greater (teste unilateral de H0 : p1 > p2 ) less (teste unilateral de H0 : p1 < p2 ) two.sided (teste bilateral de H0 : p1 = p2 ) - conana do teste (1 (signif icancia) ) Para entender o uso da funo aplicada a duas amostras, resolveremos um exemplo retirado de [5]. Exemplo: O experimento, em 1954, da vacina Salk contra a poliomielite focou a sua ecincia de compate paralisia. Notou-se que, sem um grupo de controle de crianas, no haveria uma base para avaliar a eccia da vacina Salk. Ento a vacina foi administrada a um grupo e um placebo (visualmente idntico vacina, porm sem efeito algum) foi administrado a um segundo grupo. Por razes ticas e por se suspeitar de que o conhecimento da administrao da vacina afetaria os diagnsticos subsequentes, o experimento foi conduzido de uma maneira tal que a identidade das crianas no fosse revelada. Ou seja, nem os indivduos e nem os administradores sabiam quem havia recebido a vacina e quem havia recebido o placebo. Os dados reais para esse experimento so apresentados a seguir: Grupo do Placebo n = 201299 Casos observados de plio: 110 Grupo da Vacina n = 200745 Casos observados de plio: 33

(a) Use o procedimento de teste de hiptese para determinar se a proporo de crianas nos dois grupos que contraiu paralisia estatisticamente diferente. Use = 0.05. (b) Repita o item (a) com = 0.01. Para resolver este problema no R, primeiramente devemos criar os vetores X (sucessos x1 e x2 ; no caso, casos de plio) e Y (tamanho das populaes). Aps isso, simplesmente aplicamos o teste conforme a sintaxe. Veja a resoluo abaixo:

7.3. Testes de Hiptese - Duas amostras

79

Estatstica Bsica: Introduo ao R

Captulo 7. Inferncia Estatstica

#Exemplo: > X = c(110,33) > Y = c(201299, 200745) > X [1] 110 33 > Y [1] 201299 200745 > #Item (a) > prop.test(X,Y,alternative="t") 2-sample test for equality of proportions with continuity correction data: X out of Y X-squared = 40.1968, df = 1, p-value = 2.296e-10 alternative hypothesis: two.sided 95 percent confidence interval: 0.0002606084 0.0005035179 sample estimates: prop 1 prop 2 0.0005464508 0.0001643877 > #Item (b) > prop.test(X,Y,alternative="t",conf.level=0.99) 2-sample test for equality of proportions with continuity correction data: X out of Y X-squared = 40.1968, df = 1, p-value = 2.296e-10 alternative hypothesis: two.sided 99 percent confidence interval: 0.0002240077 0.0005401186 sample estimates: prop 1 prop 2 0.0005464508 0.0001643877 Como possivel observar nos dois itens, o p-value muito menor que . Portanto, existem evidncias amostrais armando que devemos rejeitar a hiptese nula, o que nos leva a crer que a hiptese alternativa (propores diferentes) verdadeira.

7.3. Testes de Hiptese - Duas amostras

80

Estatstica Bsica: Introduo ao R Captulo 8. Regresso e Correlao Linear Simples

8
Regresso e Correlao Linear Simples
8.1 Introduo

A regresso e a correlao so tcnicas utilizadas para estimar uma relao que possa existir na populao, enquanto as tcnicas anteriormente estudadas (medidas de tendncia central e de disperso) servem para estimar um nico parmetro populacional. A anlise de correlao e regresso compreende a anlise de dados amostrais para saber como duas variveis esto relacionadas uma com a outra numa populao. A correlao mede a fora ou o grau de relacionamento entre duas variveis. J a regresso d a equao que descreve o relacionamento em termos matemticos, pressupondo alguma relao de causa e efeito entre as variveis. Por exemplo: a idade e a altura de cada indivduo. A regresso linear simples constitui uma tentativa de estabelecer uma equao matemtica linear (reta) com apenas uma varivel dependente que descreva o relacionamento entre duas variveis. A equao linear (reta de regresso) apresenta como principais caractersticas: O coeciente angular da reta dado pela tangente da reta e se denomina a; A cota da reta em determinado ponto o coeciente linear denominado b que o valor de y quando x for igual a zero. Possui a seguinte frmula: y = ax + b + onde: x a varivel explicativa, independente ou preditora; y a varivel explicada, dependente ou resposta; chamado de erro que corresponde ao desvio entre o valor real e o aproximado (pela reta) de y. Isso porque sempre teremos observaes amostrais que no so pontos da reta. Observao: nem todas as situaes so bem aproximadas por uma equao linear. Quando os dados no podem ser aproximados por um modelo linear, as alternativas so procurar um modelo no-linear conveniente, ou transformar os dados para a forma linear. Nesta apostila trataremos apenas da correlao linear. Para podermos vericar se a correlao linear devemos fazer uma anlise grca 81 (8.1)

Estatstica Bsica: Introduo ao R Captulo 8. Regresso e Correlao Linear Simples do fenmeno em estudo. Para isso, devemos traar um esboo do grco de disperso. Este grco construdo por um conjunto de pontos formados pelos pares (x, y) correlacionados entre si.

8.2

Determinando a Equao Linear (Regresso)

Devemos estabelecer um critrio para a obteno da equao de primeiro grau (obteno dos coecientes a e b). Utilizaremos o mtodo dos mnimos quadrados de modo que possamos encontrar os valores de a e b da reta de regresso que minimizem a soma dos quadrados dos desvios individuais. Os desvios individuais correspondem diferena entre a medida real (do fenmeno estudado) e a medida aproximada pela reta de regresso. O somatrio dos quadrados dos desvios mostrado abaixo:
n n

d2 = i
i=1 i=1

(yi yc )2

(8.2)

onde: yi o valor observado de y; yc o valor calculado de y na funo linear. Vale enfatizar que o mtodo de ajuste dos mnimos quadrados prefervel porque obtm as melhores estimaes. Por meio deste mtodo, podemos deduzir a reta que melhor explica a relao entre a varivel independente e a varivel dependente. Os coecientes da reta so calculados pelas frmulas abaixo: a= n
n i=1

n b=

xi yi n xi n yi i=1 i=1 n x2 ( n xi )2 i=1 i i=1


n i=1

(8.3)

yi a n xi i=1 (8.4) n A equao linear pode ser obtida no R por meio da funo lm() que serve para calcular a regresso linear simples. Podemos obter a regresso linear simples por meio do seguinte comando: #Sintaxe > lm(y~x,data)

#lm = "linear model" #l-se "y~x" como sendo y depende de x

Onde o argumento data recebe o conjunto de dados como uma estrutura chamada data.frame a serem analisados no formato (x,y). Podemos eliminar este argumento desde que seja dada entrada, no R, dos vetores x e y antes de utilizarmos a funo lm(). Tomaremos como exemplo, para todo este captulo, os vetores x e y carregados abaixo:

8.2. Determinando a Equao Linear (Regresso)

82

Estatstica Bsica: Introduo ao R Captulo 8. Regresso e Correlao Linear Simples

#Exemplo: > x <- c(201,225,305,380,560,600,685,735) > y <- c(17,20,21,23,25,24,27,27) > dados = data.frame(x,y) #criando um data.frame > is.data.frame(dados) #verifica se dados um data.frame [1] TRUE > regresso=lm(y~x,data=dados) #ou apenas "regresso=lm(y~x)" > regresso Call: lm(formula = y ~ x, data = dados) Coefficients: (Intercept) 15.65995

x 0.01591

#reta de regresso

Para vericarmos os resultados da funo lm(), inclusive os coecientes da regresso linear, devemos utilizar o comando: #Sintaxe: > summary(regresso) Assim como a maioria das funes do R, armazenamos os resultados retornados pela funo lm() em um objeto. O valor retornado por lm() uma lista. Siga os comandos: #Exemplo: > is.list(regresso) [1] TRUE > names(regresso) [1] "coefficients" [5] "fitted.values" [9] "xlevels"

#verifica se "regresso" uma lista

"residuals" "assign" "call"

"effects" "qr" "terms"

"rank" "df.residual" "model"

Neste ltimo comando teremos todos os importantes resultados do modelo ajustado. Os comandos mais importantes listados so os seguintes: regresso$tted.values ou predict(): calcula os valores preditos da varivel resposta para cada elemento da amostra (faz uma previso); regresso$residuals: calcula o erro ou os resduos (valor observado - valor predito) para cada ponto da amostra; regresso$coecients: obtm uma estimativa dos coecientes da regresso. Podemos traar, como j sabemos, o grco de disperso atravs do comando plot(x,y). No mesmo grco possvel traarmos a reta da regresso que melhor ajusta 8.2. Determinando a Equao Linear (Regresso) 83

Estatstica Bsica: Introduo ao R Captulo 8. Regresso e Correlao Linear Simples os dados, usando o seguinte comando: > abline(regresso) A funo abline() carrega consigo um vetor com dois valores (o intercepto e a inclinao da reta) e adiciona uma reta ao grco com estes valores. Para o exemplo do incio deste captulo, temos: #Exemplo: > z = plot(x,y) > grid(z) #aplicando grid ao grfico > abline(regresso) O resultado do exemplo anterior apresentado no grco abaixo:

Figura 8.1: Grco de disperso com a reta de regresso.

Outros componentes do ajuste so teis para propsito de diagnstico. Por exemplo, pode-se examinar o grco de valores ajustados contra resduos: #Exemplo: > plot(regresso$fitted.values,regresso$residuals)

8.2. Determinando a Equao Linear (Regresso)

84

Estatstica Bsica: Introduo ao R Captulo 8. Regresso e Correlao Linear Simples Este comando pode nos mostrar os desvios dos dados em relao ao modelo linear (estimado). Alm disso, podemos fazer um histograma dos resduos para vericar a presena de dados discrepantes (outliers). O comando est abaixo: #Exemplo: > hist(regresso$residuals) Podemos identicar diferentes classes que so atribudas a diferentes objetos do R. Este mecanismo facilita a automao de diversas tarefas no R. Por exemplo, podemos descobrir qual a classe atribuda a um objeto que armazena resultados da funo lm() digitando: #Exemplo: > class(regresso) [1] "lm" O fato que "regresso" um objeto da classe lm implica que os grcos diagnsticos podem ser visto simplesmente digitando: #Exemplo: > plot(regresso) [1] "lm" Este comando do R produz automaticamente uma srie de grcos para o ajuste de um modelo linear. Pressionando sucessivos ENTERs obteremos uma sequncia de grcos relacionados ao ajuste do modelo linear.

8.3

Coeciente de Correlao (r)

Atravs do grco de disperso pode-se indicar se a correlao linear positiva, negativa ou a inexistncia de correlao. Alm disso, podemos identicar, por meio do coeciente de correlao (r), o tipo de correlao, conforme tabela abaixo: |r| 0 0 a 0,3 0,3 a 0,7 0,7 a 0,99 1 Tipo Nula Fraca Regular Forte Perfeita

O coeciente de correlao mede o grau de associao entre as variveis dependente e independente (x e y). Seu valor varia de -1 (correlao negativa) a 1 (correlao positiva). Existem as seguintes interpretaes para o coeciente de correlao: Correlao nula: y no cresce, indicando que a correlao no linear (constante); 8.3. Coeciente de Correlao (r) 85

Estatstica Bsica: Introduo ao R Captulo 8. Regresso e Correlao Linear Simples Correlao fraca: indica que y cresce mais lentamente que x; Correlao forte: indica que y cresce mais rapidamente que x; Correlao perfeita: indica que y cresce na mesma velocidade que x. Por exemplo, para r = +0, 953, temos uma correlao positiva forte, ou seja, a varivel dependente y cresce quase na mesma proporo que a varivel independente x. Podemos encontrar o coeciente de correlao utilizando o comando cor(x,y): #Exemplo: > cor(x,y) [1] 0.9529494

8.4

Coeciente de Determinao (r2)

Explica o grau de ajuste do modelo, ou o percentual de variao de y que explicada pela variabilidade de x. Seu valor varia de 0 a 1. Por exemplo se for r2 = 0, 908 entendemos que, aproximadamente, 91% da variao da vriavel dependente explicada pela varivel independente. Os outros 9% possuem causas aleatrias desconhecidas (independentes de x). A frmula para a obteno do coeciente de determinao dada abaixo: r2 = (n n xy n x n y)2 i=1 i=1 i=1 n x2 ( n x)2 ][n n y 2 ( i=1 i=1 i=1
n i=1

[n

y)2 ]

(8.5)

Observao: se tomarmos a raiz quadrada da equao acima obteremos o coeciente de correlao (seo anterior). De acordo com a observao anterior, podemos encontrar o coeciente de determinao, no R, apenas elevando ao quadrado o coeciente de determinao: #Exemplo: > cor(x,y)^2 [1] 0.9081126

8.5

Exemplo Aplicado

O exerccio a seguir foi adaptado de [5]. Para uma amostra de oito operadores de mquina, foram coletados o nmero de horas de treinamento (x) e o tempo necessrio para completar o trabalho (y). Os dados coletados encontram-se na tabela abaixo: x y 5,2 13 5,1 15 4,9 18 4,6 20 4,7 19 4,8 17 4,6 21 4,9 16

8.4. Coeciente de Determinao (r2 )

86

Estatstica Bsica: Introduo ao R Captulo 8. Regresso e Correlao Linear Simples Pede-se: a) Faa o grco de disperso para esses dados. b) Determine o modelo de regresso linear simples entre as variveis x e y. c) Em seguida, trace, no grco anterior, a reta de regresso. d) Calcule e intereprete os coecientes de correlao (r) e determinao (r2 ). Soluo Inicialmente devemos entrar com os vetores x e y, da seguinte froma: > y > x > y [1] > x [1] <- c(5.2,5.1,4.9,4.6,4.7,4.8,4.6,4.9) <- c(13,15,18,20,19,17,21,16) #apresentao do vetor y 5.2 5.1 4.9 4.6 4.7 4.8 4.6 4.9 #apresentao do vetor x 13 15 18 20 19 17 21 16

a) Atravs do comando apresentado abaixo, obteremos o grco da disperso. > plot(x,y)

8.5. Exemplo Aplicado

87

Estatstica Bsica: Introduo ao R Captulo 8. Regresso e Correlao Linear Simples

Figura 8.2: Disperso dos dados

b) Um dado importante a ser observado no grco acima que uma reta pode ser utilizada para aproximarmos o modelo apresentado. O modo como encontramos a equao no R o seguinte: > mod_reg = lm(y~x) > mod_reg #resultados do modelo de regresso Call: lm(formula = y ~ x) Coefficients: (Intercept) x 6.2261 -0.0792 > abline(mod_reg)

8.5. Exemplo Aplicado

88

Estatstica Bsica: Introduo ao R Captulo 8. Regresso e Correlao Linear Simples c)Atravs dos resultados fornecidos pelo R, conclumos que a equao da reta que melhor aproxima os pontos y = 0, 0792x + 6, 2261. Alm disso, foi traada a reta de regresso juntamente com o grco de disperso atravs do comando abline(mod reg).

Figura 8.3: Reta de regresso

8.5. Exemplo Aplicado

89

Estatstica Bsica: Introduo ao R Captulo 8. Regresso e Correlao Linear Simples d) Obteremos o coeciente de correlao linear por meio do comando: > cor(x,y) [1] -0.9592155 Podemos interpretar o sinal negativo como sendo causado pelo decrescimento do valor de y ao longo de x. Por outro lado, se tomarmos o mdulo de r teremos uma correlao forte, o que indica que o tempo necessrio para completar o trabalho decresce quase que na mesma proporo com que aumenta o nmero de horas do treinamento. Em outras palavras, y decresce quase na mesma velocidade com que x cresce. Podemos, ainda, calcular e interpretar o coeciente de determinao: > cor(y,x)^2 [1] 0.9200944 Deste resultado, inferimos que aproximadamente 92% da diminuio do tempo de execuo do trabalho est relacionada com o aumento do nmero de horas do treinamento. Em outras palavras, 92% das variaes em y so explicadas por variaes em x. Os outros 8% possuem outras causas.

8.5. Exemplo Aplicado

90

Estatstica Bsica: Introduo ao R

Captulo 9. Programao em Linguagem R

9
Programao em Linguagem R
9.1 Introduo
O R possui uma ferramenta de programao que permite a codicao de pequenos programas. Um programa nada mais do que a codicao de um algoritmo (ou simplesmente a resoluo de um problema) numa linguagem de programao, neste caso a linguagem R. A linguagem R composta por um conjunto de instrues que so escritas atravs de um conjunto de cdigos (smbolos e palavras). Este conjunto de cdigos possui regras de estruturao lgica e sinttica prpria. Anotemos, ainda, que devemos gerar um arquivo de programao que conter o cdigo fonte em qualquer editor de texto. Utilize preferencialmente o Tinn-R ou o bloco de notas. Aps o trmino do cdigo fonte copie o cdigo no Console do R e veja os resultados da programao.

9.2

Interao com o Usurio

O R possui diversas funes que tm como objetivo ler dados introduzidos pelo utilizador no teclado, para gerir uma interao com o utilizador. A funo print(), por exemplo, pode ser usada para escrever o contedo de qualquer objeto. Porm, para objetos muito grandes mais conveniente utilizar a funo str(). A funo cat() tambm pode ser usada para escrever objetos ou constantes. Funciona com um nmero qualquer de argumentos, sendo que sua funo transformar os seus argumentos em strings e depois escrev-los no Console. Veja o exemplo abaixo: #Exemplo: > ano=2009 > cat("Estamos no ano ",ano,"\n\tComo passa rpido!\n") Estamos no ano 2009 Como passa rpido! Observe que o R interpreta os caracteres entre aspas como sendo uma mensagem introduzida pelo programador. J os caracteres \t e \n representam, respectivamente, os comandos de tabulao e de nova linha. O comando para leitura de dados oriundos do usurio o scan(). Neste comando o R far a leitura de uma quantidade nita (at que sejam dados dois ENTERs seguidos) de elementos introduzidos pelo usurio. Caso queiramos especicar o nmero de elementos que o R far a leitura basta acrescentar como argumento o nmero de elementos que queremos acrescentar. Veja o exemplo abaixo:

91

Estatstica Bsica: Introduo ao R

Captulo 9. Programao em Linguagem R

#Sintaxe: > scan(n=nmero de elementos) #Exemplo: > x<-scan(n=2) 1: 1 2: 2 Read 2 items

Por m, o comando scan() pode ser utilizado para a leitura de strings e valores numricos. Observe o exemplo abaixo: #Exemplo: > scan(what=character()) 1: Curso Software R 4: Edio 2 6: Read 5 items [1] "Curso" "Software" "R"

"Edio"

"2"

Cada elemento introduzido considerado um objeto. A funo scan() tem ainda outros argumentos que podem ser facilmente acessados no help do R (help(scan)).

9.3

Estruturas de Controle da Linguagem R

A linguagem R, como qualquer linguagem de programao, possui vrias instrues destinadas a alterar o curso sequencial normal da execuo dos programas. Estudaremos a seguir cada uma dessas estruturas:

9.3.1

Instrues Condicionais

As instrues condicionais permitem ao programador explicitar diferentes alternativas a serem executadas dependendo de alguma condio a ser testada em dado ponto do cdigo. Podemos explicitar um exemplo em um bloco de instrues na linguagem R. Um bloco de instrues, em linguagem R, indicado fornecendo essas instrues em linhas separadas e seguidas, delimitadas por chaves. Vamos ao exemplo:

9.3. Estruturas de Controle da Linguagem R

92

Estatstica Bsica: Introduo ao R

Captulo 9. Programao em Linguagem R

#Exemplo: > x<-2 #x positivo > z<-1 > if (x > 0) { + cat(x positivo!\n) #comando para escrever texto + y <- z / x + }else { + cat(x no positivo!\n) + y <- z} x positivo! A instruo if possui uma clusula opcional, o else. Podemos usar em substituio a este else outro if. Podemos, ainda, usar vrias instrues if aninhadas, como no exemplo seguinte: #Exemplo: > idade=60 > if (idade < 18) { + cat("Idade menor que 18\n") + } else if (idade < 35) { + cat("Idade menor que 35\n") + } else if (idade < 60) { + cat("Idade menor que 65\n") + } else { + cat("Idade maior ou igual a 60. BEM-VINDO TERCEIRA IDADE!\n")} Idade maior ou igual a 60. BEM-VINDO TERCEIRA IDADE! Embora s exista uma instruo em cada bloco, todas as instrues esto entre chaves como se tratassem de conjuntos de instrues. Caso no houvssemos colocado chaves originaramos um erro de sintaxe. Uma boa regra para evitar problemas, sempre usar as chaves para delimitar as duas partes de uma instruo if. Temos, ainda, como instruo condicional a instruo switch() que usada para escolher uma entre vrias alternativas. Para facilitar, vejamos um exemplo em que o argumento um texto: #Exemplo: > semforo <- "verde" #situao do semforo entre aspas (string) > switch(semforo, verde = "continua", amarelo = "acelera", + vermelho = "pra") #escolha entre as mltiplas opes [1] "continua"

Por este exemplo, podemos ver que a instruo switch tem a seguinte sintaxe genrica:

9.3. Estruturas de Controle da Linguagem R

93

Estatstica Bsica: Introduo ao R

Captulo 9. Programao em Linguagem R

#Sintaxe > switch(valor,lista de componentes) O resultado que obteremos da instruo nada mais do que usar o contedo do primeiro argumento (valor) para indicar uma das componentes da lista. O contedo destas componentes da mesma famlia do primeiro argumento. Se o primeiro argumento for um nmero ento o resultado a componente da lista com esse nmero. J se o primeiro argumento for um nome, ento ser extrada a componente com esse nome.

9.3.2

Instrues Iterativas

O R tem vrias instrues iterativas (ciclos) que nos permitem repetir blocos de instrues. Para o controle destes ciclos o R possui as instrues repeat, for e while. A instruo while tem a seguinte estrutura genrica: #Sintaxe > while (condio) {bloco de instrues}

Interpretamos a instruo while da seguinte forma: enquanto a condio for verdadeira, repetir o bloco de instrues do ciclo. Vejamos um pequeno exemplo: #Exemplo: #x recebe um nmero aleatrio de uma distribuio normal > x <- rnorm(1) > while (x < 1) { #enquanto x for menor que 1, faa: #escreve que x vale um nmero aleatrio menor que 1 + cat("x=", x, "\t") + x <- rnorm(1) + if(x>=1){ #condio para nova linha + cat(\n)} + } #o smbolo mais (+) espera o fechamento de chaves x= 0.1663923 x= -0.7760292 x= -1.220098 x= -1.467930 x= 0.3146124 x= -1.424002 > x [1] 1.972545 #primeiro nmero aleatrio gerado que maior que 1

Observe que as instrues do bloco dentro do ciclo while podem nunca ser executadas, uma vez que a condio seja falsa na primeira vez que o R chega ao ciclo. No exemplo acima se o primeiro nmero sorteado pela funo rnorm() for superior ou igual a 1, as instrues do ciclo no sero executadas. A instruo repeat permite que o R execute um bloco de instrues uma ou mais vezes. Sua forma genrica :

9.3. Estruturas de Controle da Linguagem R

94

Estatstica Bsica: Introduo ao R

Captulo 9. Programao em Linguagem R

#Sintaxe > repeat {bloco de instrues}

9.3. Estruturas de Controle da Linguagem R

95

Estatstica Bsica: Introduo ao R

Captulo 9. Programao em Linguagem R

Repare que como no existe nenhuma condio lgica para governar a execuo do bloco de instrues (como vimos no caso while). Logo, o R socorre-se em outras instrues que permitam parar a execuo do processo iterativo. A instruo que controla o processo iterativo repeat a instruo break. Sua funo fazer o R terminar a execuo de um bloco de instrues. Entretanto, para evitar ciclos innitos (loops), conveniente garantir que a instruo break seja passvel de ocorrer dentro do bloco de instrues. Vejamos um exemplo em que o R l frases introduzidas pelo utilizador at que este introduza uma frase vazia: #Exemplo: > texto <- c() #varivel texto recebe um vetor vazio > repeat { #repita at que tenhamos uma frase vazia + cat(Introduza uma frase (frase vazia termina): ) + fr <- readLines(n=1) #objeto fr recebe leitura da linha 1 + if (fr == ){ #condio de parada (frase vazia) + cat("Frase vazia inserida!") + cat("\nFIM\n") + break} + else texto <- c(texto,fr) #cria um vetor com as frases inseridas + cat("Frases inseridas:\n",texto,"\n")} Introduza uma frase (frase vazia termina): Curso Software R Frases inseridas: Curso Software R Introduza uma frase (frase vazia termina): Frase vazia inserida! FIM > #prompt espera novo comando (fim do repeat)

Conforme vemos, este ciclo ir terminar somente quando a varivel "fr", que contm a frase que o utilizador acabou de introduzir, for vazia. Se isso no ocorrer, a instruo break no executada e o ciclo continua se repetindo. Alm da instruo break, temos a instruo next que pode ser usada para controlar o que feito num ciclo. A instruo next avana para a prxima iterao. O exemplo abaixo ilustra o uso desta instruo:

9.3. Estruturas de Controle da Linguagem R

96

Estatstica Bsica: Introduo ao R

Captulo 9. Programao em Linguagem R

#Exemplo: > ans=0 #eliminando buffer de memria > repeat { #comando repeat + cat(Introduza um nmero (zero termina): \n) + nro <- scan(n=1) #leitura do nmero introduzido + if (nro<0||nro>0) { + ans<-c(ans,nro) #criao do vetor com o histrico de nmeros + next} #reinicia uma nova iterao + if (nro==0) { + cat(Os nmeros introduzidos foram:\n,ans,"\n")#impresso do vetor + print(FIM); cat(\n) + break}} #pra a execuo do repeat Introduza um nmero (zero termina): 1: 1 Read 1 item Introduza um nmero (zero termina): 1: -2000 Read 1 item Introduza um nmero (zero termina): 1: 0 Read 1 item Os nmeros introduzidos so: 0 1 -2000 [1] "FIM"

No exemplo acima, pretende-se ler um conjunto de nmeros positivos que so colecionados num vetor chamado ans. O utilizador dever introduzir o nmero zero para terminar o ciclo. Caso seja introduzido um nmero diferente de zero, o cdigo far com que o R solicite um novo nmero (instruo next), reiniciando o ciclo repeat. Desta forma, o R ao encontrar a instruo next produz um efeito capaz de causar um salto no cdigo para o incio do ciclo que est sendo executado, sem executar as instrues subsequentes ao next. Finalmente, trataremos da instruo for que permite controlar o nmero de vezes que um ciclo executado. Consegue-se isso atravs de uma varivel de controle que vai tomar uma srie de valores pr-denidos em cada iterao do ciclo. A sua sintaxe genrica : #Sintaxe for(<varivel de controle> in <conjunto>) {bloco de instrues}

9.3. Estruturas de Controle da Linguagem R

97

Estatstica Bsica: Introduo ao R Veja o exemplo abaixo:

Captulo 9. Programao em Linguagem R

#Exemplo: #x recebe 10 nmeros aleatrios de uma distribuio normal > x <- rnorm(10) > soma <- 0 #soma=0 para evitar resduos de memria > for (v in x) { #v ser igual a cada um dos elementos do vetor x + if (v > 0) { #caso em que os nmeros so positivos + y <- v} #y uma varivel auxiliar + else { #caso em que os nmeros no so positivos + y <- 0} #para no alterar o resultado de "soma" + soma <- soma + y} #clculo da soma dos nmeros positivos > x #apresentao do vetor aleatrio [1] -2.3868397 0.3501884 -0.6210985 0.4928832 0.9672247 [7] 1.7185209 -0.6988870 -0.7885660 0.8171145 1.2330365 > soma #resultado da soma dos nmeros positivos [1] 5.578968 #conferindo o resultado com a varivel soma > 0.3501884+0.4928832+0.9672247+1.7185209+0.8171145+1.2330365 [1] 5.578968

O ciclo acima se inicia com a obteno de um vetor com dez nmeros aleatrios. Em seguida, calculada a soma exclusiva dos nmeros positivos do vetor aleatrio. Atravs do ciclo for, a varivel de controle (chamada de v) vai assumir, em cada iterao, um dos dez valores atribudos a x. Isto , na primeira iterao v assumir o valor de x1 , que no exemplo -2.3868397. Da mesma forma, na segunda iterao v assumir o valor de x2 e assim sucessivamente at que se esgotem os valores de x. Note que em vez da utilizao deste ciclo para a soma dos nmeros positivos de x, poderamos ter calculado o valor da soma atravs do comando: #Sintaxe > soma = sum(x[x>0])

#para simples comparao

O que tornaria o clculo mais simples e eciente em termos de tempo, principalmente em se tratando de vetores maiores. Por exemplo, se tomarmos o exemplo abaixo:

9.3. Estruturas de Controle da Linguagem R

98

Estatstica Bsica: Introduo ao R

Captulo 9. Programao em Linguagem R

#Exemplo: > x <- rnorm(1e+05) #x recebe um vetor com 10^5 nmeros #verifique a hora do computador em que dado <ENTER> ao comando > t <- Sys.time() > soma <- 0 > for (v in x) { + if (v > 0) { + y <- v} + else {y <- 0} + soma <- soma + y} #calculando o tempo decorrido para efetuar as iteraes > Sys.time() - t Time difference of 0.5 secs > t <- Sys.time() #verificando novamente o horrio do <ENTER> > soma <- sum(x[x > 0]) #calculando a soma atravs da funo #calculando o tempo decorrido para calcular a soma > Sys.time() - t Time difference of 0.04699993 secs

Por meio deste exemplo vemos que sempre que possvel devemos evitar a execuo de ciclos, pois, para um grande conjunto de dados, os resultados demoraro mais a aparecer do que na utilizao de um comando especco. Entretanto, o tempo de execuo varia de acordo com o desempenho (velocidade de processamento) de cada computador.

9.3. Estruturas de Controle da Linguagem R

99

10
Referncias Bibliogrcas
1. VENABLES, W.N.; SMITH, D.M; R Development Core Team. An Introduction to R. Version 2.8.1 (2008-12-22). 2. KUHNERT, P.; VENABLES, B. An Introduction to R: Software for Statistical Modelling & Computing. CSIRO Mathematical and Information Sciences: Cleveland, Australia, 2005. 3. HIEBELER, D. MATLAB c \ R References. Dept. of Mathematics and Statistics, University of Maine. March 3, 2009. http://www.math.umaine.edu/faculty/hiebeler 4. PETERNELLI, L.A.; MELLO, M.P. de. Conhecendo o R: Uma viso Estatstica. Editora UFV: Universidade Federal de Viosa, 2007. 5. MONTGOMERY, Douglas C.; RUNGER, George C. Estatstica Aplicada e Probabilidade para Engenheiros. 2 ed. Rio de Janeiro: LTC, 2003. 6. http://www.r-project.org/

100