You are on page 1of 18

Introduao a anlise estat c ` a stica de dados utilizando o R

Fbio Mariano Bayer a


bayer@ufsm.br Departamento de Estat stica Universidade Federal de Santa Maria - UFSM

Resumo Este documento no tem o objetivo de ser uma bibliograa de referncia, trata-se, apenas, a e de um roteiro/tutorial para a introduao a anlise estat c ` a stica bsica utilizando o software R. a A busca por referncias mais completas fundamental para o bom aprendizado deste tema. e e

Introduo ca

Este documento tem o unico objetivo de servir como um tutorial para a iniciao ` anlise es ca a a tat stica de dados utilizando o programa R. O R um software livre que pode ser livremente copie ado, modicado e distribu seguindo a Licena Pblica GNU. O site do projeto R encontrado do c u e no endereo eletrnico http://www.r-project.org/, onde so encontrados, alm das verses do R c o a e o para Linux, Windows e Mac, uma grande quantidade de pacotes para os mais diferentes interesses cient cos em termos de anlise estat a stica, estat stica computacional e computao cient ca ca. Alm de ser um ambiente para clculos estat e a sticos e grcos o R tambm uma linguagem de a e e programao. A linguagem R foi criada originalmente por Ross Ihaka e por Robert Gentleman da ca Universidade de Auckland, Nova Zelndia, e desenvolvido por um esforo colaborativo de pessoas a c em vrios locais do mundo. O nome R faz referncia `s iniciais dos nomes de seus criadores e a e a tambm a um jogo gurado com a linguagem de programao S (da Bell Laboratories). R uma e ca e linguagem e ambiente similar ao S que, embora com importantes diferenas, muitos cdigos escritos c o para o S rodam inalterados no R. A implementao comercial de S o S-PLUS. ca e Este texto est fortemente baseado no material do professor Paulo Justiniano Ribeiro Junior, a entitulado Introduo ao Ambiente Estat ca stico R encontrado no endereo eletrnico http:// c o www.leg.ufpr.br/~paulojus/embrapa/Rembrapa/. Tambm so usados dados e informaes do e a co Caderno Didtico - Estat a stica Geral de um grupo de professores do Departamento de Estat stica da UFSM. Alguns outros comandos e linhas foram retirados do livro Conhecendo o R - Uma viso a estat stica dos autores Luiz Alexandre Peternelli e Mrcio Pupin de Mello. Para os interessados a em utilizar o programa R em suas anlises estat a sticas recomendo fortemente a aquisio desta ca ultima bibliograa citada, encontrada na Editora da UFV (http://www.editoraufv.com.br/). Para utilizar o R, seguindo as orientaes deste material, inicie com os seguintes passos: co 1. inicie o R em seu computador; 2. voc ver uma janela de comandos com o s e a mbolo >, que chamado de prompt do R, indicando e que o programa est pronto para receber comandos; a 3. a seguir digite (ou recorte e cole) os comandos mostrados ao longo deste material ou seus prprios comandos. o No restante deste texto vamos seguir as seguintes convenes. co comandos e sa das do R so mostrados em fontes do tipo verbatim como esta; a em especial, os comandos so precedidos pelo s a mbolo >; linhas iniciadas pelo s mbolo # so comentrios e so ignoradas pelo R. a a a

Comandos bsicos a

Alm dos procedimentos estat e sticos e da potencialidade da linguagem de programao R ele pode ca ser tratado tambm como uma calculadora, sendo util para realizao dos mais diversos clculos e e ca a operaes com matrizes. co

2.1

Manipulando objetos

Um objeto pode ser criado com a operao de atribuio, ` qual denotada com o sinal de ca ca a e menor (<) juntamente com o sinal de menos (-), cando o s mbolo de uma echa (<-). Um objeto pode receber qualquer nome que desejar, misturando letras, nmeros ou caracteres especiais. Veja u a seguir. > x <- 3 > y <- 25 > X <- 5 > objeto <- 15 Observamos que o R diferencia letras maisculas e minsculas (case sensitive). Para vericar o u u que est atribu ` determinado objeto basta digitar o nome do objeto e pressionar a tecla enter, a do a por exemplo: > x [1] 3 > X [2] 5

2.2

Operaes aritmticas co e

Se os objetos forem numricos podemos fazer operaes aritmticas. Seguem alguns exemplos: e co e > 1+2 # somando nmeros u [1] 3 > 5*3 # multiplica~o ca [1] 15 > 4+2*6 # multiplica~o primeiro ca [1] 16 > 2^4 # pot^ncia e [1] 16 > 2**4 # pot^ncia e [1] 16 > x+X # soma de objetos numricos e [1] 8 > sqrt(9) # raiz quadrada [1] 3 > sin(60) # seno [1] -0.3048106 > factorial(4) # fatorial [1] 24 Explore os manuais introdutrios do help do R para vericar outras diversas operaes que o R o co e capaz de fazer. Algumas funes importantes e bem usuais so vistos na Tabela 1. co a Tabela 1: Principais operaes aritmticas. co e Comando no R >log(x) >exp(x) >log(x,n) >sqrt(x) >cos(x),sin(x),tan(x) >abs(x) Signicado logaritmo x na base e exponencial de x logaritmo na base n de x raiz quadrada de x funes trigonomtricas de x co e valor absoluto de x

2.3

Arredondamentos e aproximaoes c

Para arredondar um nmero x com n casas decimais utiliza-se o comando round(x,n). Para u truncar valores utiliza-se a funo trunc(x). Vericamos os seguintes exemplos: ca > z <- pi # o objeto z recebe o valor de pi > z # exibindo o valor de z [1] 3.141593 > round(z,2) # arredonda com duas casas decimais [1] 3.14 > round(z,4) # arredonda com quatro casas decimais [1] 3.1416 > trunc(z) [1] 3

2.4

Vetores, matrizes e operaoes matriciais c

Podemos entrar com dados denindo vetores com o comando c() (c corresponde a concatenate). Veja e experimente os seguinte exemplos. > a1 <- c(2, 5, 8) > a1 [1] 2 5 8 > a2 <- c(23, 56, 34, 23, 12, 56) > a2 [1] 23 56 34 23 12 56 Quando os dados tem algum padro, tal como elementos repetidos ou nmeros sequenciais, a u pode-se usar mecanismos do R para facilitar a entrada dos dados como vetores. Examine os seguintes exemplos. > a3 <- 1:10 # sequ^ncia de 1 at 10 e e > a3 [1] 1 2 3 4 5 6 7 8 9 10 > a4 <- (1:10) * 10 > a4 [1] 10 20 30 40 50 60 70 80 90 100 > a5 <- rep(3, 5) # repete o nmero 3 cinco vezes u > a5 [1] 3 3 3 3 3 Para criar matrizes utiliza-se a funo matrix(), na qual recebe um vetor como argumento e ca o transforma em matriz de acordo com as dimenses especicadas. Veja a pratique os seguintes o exemplos: > x <- 1:12 # cria uma sequencia de 1 a 12 e atribui ao objeto x > xmat <- matrix(x, ncol=3) # matriz de 3 colunas com os valores de x > xmat [,1] [,2] [,3] [1,] 1 5 9 [2,] 2 6 10 [3,] 3 7 11 [4,] 4 8 12 > ymat<-matrix(x,ncol=3,byrow=TRUE) # preenche a matriz por linhas > ymat [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 [4,] 10 11 12 A soma e o produto de matrizes podem ser feito da seguinte forma:

> xmat + ymat # soma de matrizes [,1] [,2] [,3] [1,] 2 7 12 [2,] 6 11 16 [3,] 10 15 20 [4,] 14 19 24 > v1 <-c(1,3,5,7) # cria um vetor linha com 4 elementos > v1 %*% ymat # produto de um vetor com uma matriz [,1] [,2] [,3] [1,] 118 134 150 > v2 <- c(2,4,6) # cria um vetor linha com 3 elementos > xmat %*% v2 # produto de uma matriz com um vetor [,1] [1,] 76 [2,] 88 [3,] 100 [4,] 112 > zmat<-matrix(x,ncol=4) # cria uma matriz com 4 colunas > xmat %*% zmat # produto entre duas matrizes [,1] [,2] [,3] [,4] [1,] 38 83 128 173 [2,] 44 98 152 206 [3,] 50 113 176 239 [4,] 56 128 200 272 > xmat * ymat # produto (ponto a ponto) de duas matrizes [,1] [,2] [,3] [1,] 1 10 27 [2,] 8 30 60 [3,] 21 56 99 [4,] 40 88 144

Entrada de dados no R

Pode-se entrar com dados no R de diferentes formas. O formato mais adequado vai depender do tamanho do conjunto de dados e da forma em que esto apresentados e coletados. a A seguir so descritas outras formas de entrada de dados com indicao de quando cada uma a ca das formas deve ser usada. H casos em que a entrada de dados feita diretamente no R; outros a e casos necessitam a importao de dados j dispon ca a veis eletronicamente de um arquivo texto, em outro sistema ou no prprio R. o

3.1

Entrada de dados diretamente no R

Alm da maneira j utilizada para a entrada de dados, indicada quando se tem um pequeno nmero e a u de dados, h a possibilidade de usar a funo scan(). Esta funo l dados diretamente do console, a ca ca e isto , coloca o R em modo prompt onde o usurio deve digitar cada dado seguido da tecla <ENTER>. e a Para encerrar a entrada de dados basta teclar <ENTER> duas vezes consecutivas. Veja o seguinte resultado: > y <- scan() #1: 11 #2: 24 #3: 35 #4: 29 #5: 39 #6: 47 #7: #Read 6 items > y 4

[1] 11 24 35 29 39 47 Este formato mais gil que o anterior e conveniente para digitar vetores longos. Essa funo e a e ca pode tambm ser usada para ler dados de um arquivo ou conexo, aceitando inclusive endereos e a c de URLs (endereos da web). c

3.2

Lendo arquivos de dados de arquivos texto

Para trabalhos com grandes bancos de dados costuma-se ler arquivos externos que contenham esses dados. Em R existe o comando read.table() no qual voc pode importar os dados para o R sem e a necessidade de digit-los novamente. a Para isso, crie um arquivo texto (*.txt), por exemplo, com os seguintes dados: ano 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 matrcula 41 49 58 68 84 120 147 192 225 257 298

Salve esse arquivo com um nome de escolha, por exemplo teste.txt, e salve na pasta base do programa R. > teste<-read.table("teste.txt", head=T) # head=T para rtulos na primeira linha o > teste > attach(teste) # faz cada coluna (varivel) virar um objeto (vetor) a Essa funo permite ler diretamente dados dispon ca veis na web. Por exemplo, podemos adquirir dados da pgina de um curso de R do Professor Paulo Justiniano (http://www.leg.ufpr.br/ a ~paulojus/embrapa/Rembrapa/). Para isso, digite o seguinte comando: > import<-read.table("http://www.leg.ufpr.br/~paulojus/dados/gam01.txt") > import Para importar bancos de dados com dados faltantes o mais indicado a utilizao da funo e ca ca read.delim(). > teste<-read.delim("teste.txt", head=T) # para arquivos com dados faltantes

3.3

Editando uma planilha diretamente no R

Uma outra alternativa para entrada de dados no R editar um data.frame. Isso se assemelha e muito ao processo de edio de uma planilha eletrnica, que pode ser bastante util. Para isso, faa ca o c o seguinte: > dados1<-edit(as.data.frame(NULL)) # com esse comando abrir uma "planilha" para edi~o a ca Ao abrir a planilha digite os valores que desejar e d os nomes de interesse `s colunas. Esses e a valores sero guardados no objeto dados1 (neste nosso exemplo). Logo aps a digitao dos dados a o ca pea para fechar e verique seus dados digitando o nome do objeto no prompt do R, assim: c > dados1 > attach(dados1) # para tornar objeto cada coluna de seus dados Da maneira que est, o objeto dados1 um data.frame. Contudo podemos transform-lo em a e a uma matriz, para que possamos trabalhar com ele e tambm para atribuirmos nomes `s linhas da e a matriz. Para isso faa: c > dados2<-edit(as.matrix(dados1)) 5

Grcos a

A representao grca uma forma de apresentao visual dos dados. Normalmente, contm ca a e ca e menos informaes que as tabelas mas so de fcil leitura. Os tipos de grcos, dependero da co a a a a varivel em estudo. Veremos como produzir aluns grcos em R. a a

4.1

Grcos de linhas a

Para produzirmos um grco de linhas basta termos um vetor de valores. Como exemplo, geramos a um vetor contendo 12 ocorrncias de uma varivel aleatria com distribuio normal com mdia e a o ca e 10 e desvio padro 5 e ento traamos o grco de linhas desses dados. Para isso, faa: a a c a c > > > > > x<-rnorm(12,10,5) # gera amostra aleatria segundo N(10,5) o plot(x) # grfico de pontos a plot(x,type="l") # grfico de linhas a plot(x,type="l",main="Grfico de linhas") # grfico com ttulo a a plot(x,type="l",col="red") # grfico com linhas vermelhas a

Agora, se voc estiver interessado em grcos de sries compostas, ou seja, em plotar duas e a e sries ao mesmo tempo, o procedimento deve ser o seguinte. e > y<-rnorm(12,9,2) # gera outra amostra aleatria, segundo N(9,2) o > plot(x,type="l") # plota a srie x do exemplo anterior e > lines(y,col="red") # plota a nova srie y na cor vermelha juntamente com a x e Um comando importante que pode ser utilizado juntamente com a funo plot o ylim, o ca e qual dene o intervalo no eixo dos ys (vertical) de visualizao do grco traado. Por exemplo, ca a c digite os seguintes comandos e verique os resultados: > plot(x,type="l",ylim=c(10,14)) # plota a srie x no intervalo 10 a 14 no eixo dos y e > plot(x,type="l",ylim=c(5,20)) # plota a srie x no intervalo 5 a 20 no eixo dos y e > plot(x,type="l",ylim=c(10,25)) # plota a srie x no intervalo 10 a 25 no eixo dos y e Para maiores detalhes a respeito de tipos de linhas, pontos e cores verique o help da funo ca plot digitando ?plot no prompt do R.

4.2

Grcos de colunas e barras a

O R tem funes espec co cas para a criao de grcos de barras (ou colunas). Veremos a seguir ca a alguns exemplos. 4.2.1 Colunas simples

Para fazermos o grco de coluna simples precisamos de alguns dados. Para isso, digite o seguinte: a > A<-edit(as.data.frame(NULL)) # digite os dados que est~o mostrados abaixo a > B<-edit(as.matrix(A)) # transforma em matriz e pode nomear as linhas > B CAL CCNE CCR CCS CCSH CE CEFD CT Pesquisa 86 130 391 353 75 117 28 132 Com isso, temos os dados guardados no objeto que chamamos de B. Para fazer um grcos de a colunas simples, com algumas opes e variaes, faa: co co c > > > > barplot(B) # faz um grfico de colunas a barplot(B,horiz=T) # faz um grfico de barras a barplot(B,legend.text=T) # inclui a legenda (que o nome das linhas) e barplot(B,col="blue") # muda a cor das colunas para azul

Para vericar outas opes dessa funo digite ?barplot no prompt do R e verique o help co ca dessa funo. ca

4.2.2

Colunas justapostas e sobrepostas

Para traarmos grcos de colunas justapostas e/ou sobrepostas precisamos de sries compostas. c a e Para isso, modicaremos nossos dados do exemplo anterior (de pesquisa da UFSM) incluindo uma nova linha com o nmero de projetos de extenso em cada centro de ensino da UFSM. Para isso, u a faa: c > C<-edit(as.matrix(B)) # edita a matrix B e salva no objeto C > C CAL CCNE CCR CCS CCSH CE CEFD CT Pesquisa 86 130 391 353 75 117 28 132 Extensao 76 29 101 147 54 33 43 39 Agora temos uma srie composta para gerarmos grcos de colunas justapostas ou sobrepostas. e a Digite os seguintes comandos e verique os resultados: > > > > > > barplot(C) # plota um grfico de colunas sobrepostas a barplot(C,legend.text=T) # mostra a legenda do grfico a barplot(C,beside=T) # plota um grfico de colunas justapostas a barplot(C,beside=T,col=c("blue","red")) # muda as cores das barras barplot(C,horiz=T) # faz o grfico de barras (na horizontal) a barplot(C,beside=T,legend.text=T) # grfico de colunas justapostas com legenda a Legal, no ?! Explore a vontade!! a e

4.3

Grco de setores (pizza) a

Para fazer um grco de setores muito fcil. Basta entrar com um vetor contendo os valores e a e a ento utilizar a funo pie() do R. Assim: a ca > x<-c(384,45,52) # vetor com os dados de interesse > pie(x) # gera o grfico de pizza do vetor x a Contudo, se voc desejar colocar os nomes no grco de pizza ter que atribuir nomes a cada e a a uma das colunas de seu vetor x, assim: > names(x)<-c("Espec","Mestrado","Doutorado") # atribui nomes a cada elemento do vetor > pie(x) # traa o grfico de pizza com os labels c a > pie(x, main="Nmero de diplomados em Ps-gradua~o na UFSM em 2004") # com ttulo u o ca

4.4

Histograma

Para construirmos uma distribuio de frequncia precisamos de observaes de uma varivel. ca e co a Como exemplo, utilizaremos os dados disponibilizados pelo professor Paulo Justiniano j utilizados a nos exemplos anteriores. Faamos: c > import<-read.table("http://www.leg.ufpr.br/~paulojus/dados/gam01.txt") > attach(import) > V3 [1] -15.15487000 -12.69161000 -15.34216000 -16.99144000 -10.41146000 [6] -18.15309000 -10.20691000 -5.32543000 -13.02150000 -12.70494000 [11] -11.69267000 -6.69449300 3.76756200 -1.57959400 -7.51060900 [16] -11.60069000 -5.08129100 -3.63167800 -11.92710000 -6.48947800 [21] -10.33674000 -12.75691000 -1.08104800 -8.95264700 -4.37266100 [26] 17.06705000 13.42196000 19.71142000 15.30159000 19.38852000 [31] 22.13950000 21.37564000 20.71096000 23.20187000 22.15517000 [36] 20.42007000 27.48759000 18.74268000 25.99249000 18.23020000 [41] 14.65729000 16.58651000 12.64491000 11.41713000 9.62114000 [46] 10.20474000 7.57306700 11.11785000 12.37744000 11.73407000 [51] 1.19479300 -5.04786400 1.14763000 0.99461450 3.72877800 [56] -15.67884000 6.17948100 6.85318200 -1.45400900 5.92937000 [61] 0.21524940 -7.72494400 0.26678630 -4.98032000 -2.44279000 [66] 5.07031400 1.60994700 -5.90830200 6.93433000 -2.03633100 7

[71] -2.46485200 -2.68057900 -5.14319500 -4.86014400 -1.88364000 [76] 6.88769300 5.57773800 6.78409000 -2.13893700 1.81017100 [81] -1.24039000 0.09497102 -1.47734600 0.41224460 5.12610200 [86] -4.27318700 3.71324700 -5.09709700 0.09153950 -1.45313900 [91] -1.28799500 -1.90853700 7.87003200 7.83142200 -2.79161800 [96] 6.14282000 7.63685100 9.85701800 4.27053400 -5.11129200 > hist(V3) # plota o histograma da varivel V3 a > hist(V3, main="Histograma", ylab="Frequencia") # mudar os rtulos (ttulos) o Uma opo interessante plotar a densidade estimada (ou emp ca e rica) da varivel. Para isso, a faa: c > plot(density(V3)) # plota a densidade emprica da varivel a

4.5

Ramo-e-Folhas

Usando os mesmos dados do exemplo anterior o digrama de ramo-e-folhas feito da seguinte forma: e > stem(V3) # ramo-e-folhas da varivel V3 a

Estat stica Descritiva

A estat stica descritiva tem o objetivo de descrever e avaliar um certo grupo de dados, seja ele a populaao, seja a amostra. Ao trabalharmos com uma amostra, o uso de estat c sticas descritivas no nos permite tirar quaisquer concluses ou inferncias a respeito da populao. Esta seria a a o e ca parte sob responsabilidade da estat stica inferencial, por meio de estimao pontual, intervalo de ca conana e teste de hiptese. c o Veremos aqui como fcil fazer uma anlise descritiva de dados utilizando o R. Aprenderemos e a a como calcular medidas descritivas que tm como objetivo resumir as informaes contidas em um e co conjunto de dados.

5.1

Notaoes de somatrios e produtrios c o o

Muitas das medidas estat sticas, ou processo de organizao de dados, exigem o clculo de somas ca a ou produtos. De forma bastante simples e direta veremos na Tabela 2 como calcular algumas dessas operaes considerando o seguinte vetor: co > x<-c(7,10,5,8,12)

Tabela 2: Somatrios e produtrios. o o Expresso a 5 xi i=1 5 2 i=1 xi


5 i=1

Comando no R >sum(x) >sum(x^2)


2

Resultado x1 + x2 + x3 + x4 + x5 = 7 + 10 + 5 + 8 + 12 = 42 x2 + x2 + x2 + x2 + x2 = 72 + 102 + 52 + 82 + 122 = 382 1 2 3 4 5 (x1 + x2 + x3 + x4 + x5 )2 = (7 + 10 + 5 + 8 + 12)2 = 1764 x1 x2 x3 x4 x5 = 7 10 5 8 12 = 3360 x2 x2 x2 x2 x2 = 72 102 52 82 122 = 1128960000 4 5 1 2 3 (x1 x2 x3 x4 x5 )2 = (7 10 5 8 12)2 = 1128960000

xi

>sum(x)^2 >prod(x) >prod(x^2) >prod(x)^2

5 i=1 xi 5 2 i=1 xi 2 5 i=1 xi

5.2

Medidas Descritivas

Para trabalharmos com as medidas descritivas utilizaremos o seguinte vetor de valores: > x<-c(9,7,6,8,10,12,5) Para o clculo da mdia, mediana, varincia e desvio padro existem as seguintes funes; a e a a co 8

> mean(x) # calcula a mdia de x e [1] 8.142857 > median(x) # mediana de x [1] 8 > var(x) # vari^ncia amostral de x a [1] 5.809524 > sd(x) # desvio padr~o amostral de x a [1] 2.410295 Outras funes interessantes para a anlise descritiva so as seguintes: co a a > min(x) # valor mnimo de x [1] 5 > max(x) # valor mximo de x a [1] 12 > range(x) [1] 5 12 Algumas medidas interessantes no possuem funo que retornam diretamente o valor de intea ca resse. Contudo, so facilmente calculadas utilizando comandos simples, como segue: a > max(x)-min(x) # amplitude [1] 7 > (sd(x)/mean(x))*100 # coeficiente de varia~o em percentagem ca [1] 29.60012 Existe uma funo mais ampla, a qual retorna algumas das principais medidas descritivas, que ca a seguinte: e > summary(x) Min. 1st Qu. 5.000 6.500 Median 8.000 Mean 3rd Qu. 8.143 9.500 Max. 12.000

Portanto, vimos que a funo summary retorna o valor m ca nimo, o valor mximo, a mediana, a a mdia e o primeiro e terceiro quartil. Se o argumento de entrada da funo for data.frame, com e ca mais de uma varivel, os sumrios so produzidos para cada varivel. a a a a Se tivermos interessados em percentis (ou centis) espec cos, podemos utilizar a funo quantile(), ca indicando, alm do vetor de dados, quais percentis pretendemos calcular. Por exemplo, se quisere mos calcular os percentis 10%, 25%, 90% e 95%, devemos escrever assim: > quantile(x,c(0.1,0.25,0.9,0.95)) 10% 25% 90% 95% 5.6 6.5 10.8 11.4

5.3

Boxplot

At o momento, vimos como gerar sumrios descritivos de variveis aleatrias a partir de ese a a o tat sticas numricas e grcos mostrando distribuies de frequncia, como o histograma e o diae a co e grama de barras. Uma ferramenta grca muito importante para a descrio e principalmente para a ca a comparao das distribuies de diferentes variveis o grco de boxplot. O grco boxplot do ca co a e a a mesmo vetor x dos exemplos anteriores pode ser visualizado na Figura 1. Esse grco gerado no a e R com o seguinte comando: > boxplot(x) E poss vel estabelecer uma srie de parmetros para a funo boxplot(), que permitem a e a ca personalizao do grco, como t ca a tulo, nomes dos eixos e muito mais, seguindo comandos muito semelhantes dos apresentados na Seo 4. Contudo, esse grco produzido de uma unica varivel. ca a e a Talvez a utilizao mais interessante para o boxplot seria para comparar distribuies de diferentes ca co variveis em um mesmo grco. Por exemplo, se tivermos o interesse em comparar a varivel x, a a a trabalhada nos exemplos anteriores, com uma nova varivel y faa: a c

10

11

12

Figura 1: Boxplot. > y<-c(13,8,11,15,14,16,12) # guarda os valores no objeto y > y # vizualiza o objeto y [1] 13 8 11 15 14 16 12 > boxplot(x,y) # traa o boxplot comparativo das duas variveis x e y c a > boxplot(x,y,names=c("Varivel x","Varivel y")) # traa o boxplot com o nome das variveis a a c a O resultado desse grco pode ser visualizado na Figura 2. a

10

12

14

16

Varivel x

Varivel y

Figura 2: Boxplot para comparao de variveis. ca a

10

Tpicos de correlao e regresso linear o ca a

Muitos problemas em engenharia e cincias envolvem a explorao de relaes entre duas ou mais e ca co variveis. A anlise de regresso uma tcnica estat a a a e e stica para modelar e investigar a relao entre ca essas variveis. a

6.1

Apresentao de associaoes: grcos de disperso ca c a a

Uma maneira bastante util para vericar a associao entre duas variveis quantitativas, ou entre ca a dois conjuntos de dados, o grco de disperso que vamos vericar a seguir por meio de exemplos. e a a Um grco de disperso mostra a relao entre duas variveis quantitativas, medidas nos mesa a ca a mos indiv duos. Os valores de uma varivel aparecem no eixo horizontal e os valores da outra a varivel aparecem no eixo vertical. Cada indiv a duo nos dados aparece como um ponto no grco a determinado pelos valores de ambas as variveis para tal indiv a duo. Exemplo Na Figura 3 temos o grco de disperso das variveis X e Y da Tabela 3. Para o exemplo, a a a vemos que parece haver uma associao entre as variveis, porque no conjunto, ` medida que ca a a aumenta o tempo de servio, aumenta o nmero de clientes. Essa relao mostra uma associao c u ca ca positiva entre as variveis X e Y. a Tabela 3: Nmero de anos de servio (X) e o nmero de clientes (Y) de uma companhia de seguros. u c u Agente A B C D E F G H I J Anos de servio (X) c 2 3 4 5 4 6 7 8 8 10 Nmero de clientes (Y) u 48 50 56 52 43 60 62 58 64 72

65

70

q q

Nmero de clientes

60

q q q

55

50

q q

45

6 Anos de servio

10

Figura 3: Grco de disperso para as variveis anos de servio (X) e nmeros de clientes (Y). a a a c u

11

A intensidade de uma relao num grco de disperso determinada pela proximidade com ca a a e que os pontos seguem uma forma clara. Na relao dada na Figura 3 percebemos uma relao, ca ca ou associao, forte. Percebemos uma pequena disperso ao redor da reta invis ca a vel que dene a associao entre as variveis. ca a 6.1.1 Associao positiva e associao negativa ca ca

Entendemos associaes positivas e negativas da seguinte forma: co Duas variveis so associadas positivamente quando valores acima da mdia de uma a a e tendem a acompanhar valores acima da mdia da outra, e valores abaixo da mdia funcionam e e da mesma maneira. Ou seja, de forma sucinta, quando uma cresce a outra tambm cresce. e Duas variveis so associadas negativamente quando valores acima da mdia de uma a a e tendem a acompanhar valores abaixo da mdia da outra, e vice-versa. Ou seja, quando uma e cresce a outra diminui. Os padres dessas associaes negativas e positivas podem ser vericadas na Figura 4. o co

(a) Associaao negativa c

(b) Associao positiva ca

Figura 4: Padro das associaes entre duas variveis. a co a

6.2

Medida da associao linear: correlao ca ca

Um grco de disperso mostra, e forma visual, a direo e a intensidade da relao entre duas a a ca ca variveis quantitativas. As relaes lineares so especialmente importantes porque uma reta um a co a e padro simples que bastante comum. Dizemos que uma relao linear forte se os pontos caem a e ca e prximos da reta, e fraca, se eles esto bastante espalhados em torno da reta. Contudo, nossos o a olhos no so bons ju de intensidade de uma relao linear, principalmente quando so mudadas a a zes ca a as escalas dos grcos. Para solucionar isso, e seguindo nossa estratgia de determinar medidas a e numricas para suplementar grcos, que introduzimos a medida de correlao. e a e ca A correlao mede a direo e a intensidade da relao linear entre duas variveis quantitativas. ca ca ca a Costuma-se representar a correlao pela letra r. ca Suponha que tenhamos dados sobre variveis X e Y para n indiv a duos. Os valores para o primeiro indiv duo so x1 e y1 , os valores para o segundo indiv a duo so x2 e y2 , e assim por diante. a As mdias e os desvios-padro das duas variveis so, respectivamente, X e Sx para os valores de e a a a e Sy para Y . Dessa forma, a correlao r entre x e y X eY ca e r= 1 n1
n

i=1

xi X Sx

yi Y Sy

Na prtica, voc usar um software estat a e a stico para calcular essa medida para seus dados de entrada. O mais importante saber interpret-la. Contudo, tambm necessrio calcul-la uma e a e e a a ou duas vezes, com poucas observaes, para entender o que os softwares fazem. co 12

6.2.1

Fatos sobre a correlao ca

A frmula da correlao nos ajuda a ver que r positiva quando h uma associao positiva entre o ca e a ca as variveis. A altura e o peso, por exemplo, tm associao positiva. Pessoas que tm altura a e ca e acima da mdia tendem tambm a ter peso acima da mdia e pessoas que tm altura abaixo da e e e e mdia tendem tambm a ter peso abaixo da mdia. Em ambos os casos os produtos na frmula e e e o do r so positivos, resultando em uma medida r positiva. Por outro lado, percebemos que r a e negativa quando a associao entre X e Y negativa. A seguir apresenta-se os principais fatos que ca e voc precisa saber a respeito da correlao: e ca No faz diferena alguma qual varivel voc chama de X e qual voc chama de Y , ao calcular a c a e e r. A correlao requer que ambas as variveis sejam quantitativas. ca a As unidades de medida das variveis no inuenciam no resultado da medida r. Medir altura a a em polegadas, cent metro ou metro indiferente. e r positivo indica associao positiva entre as variveis e r negativo indica associao negativa. ca a ca A correlao r sempre um nmero entre 1 e 1. Os valores de r prximos de 0 indicam ca e u o uma relao linear fraca. A intensidade da relao linear cresce, ` medida que r se afasta de ca ca a 0 em direo ` 1 ou ` 1. Os valores extremos r = 1 e r = 1 ocorrem apenas no caso de ca a a relao linear perfeita, quando os pontos caem exatamente sobre uma reta. ca Os grcos de disperso da Figura 5 ilustram o comportamento dos valores de r de acordo com a a diferentes associaes entre as variveis. co a

13

(a) Correlao positiva fraca ca

(b) Correlao negativa fraca ca

(c) Correlao positiva moderada forte ca

(d) Correlao negativa moderada forte ca

(e) Correlao positiva forte ca

(f) Correlao negativa forte ca

Figura 5: Exemplos de diferentes correlaes entre variveis. co a

14

6.3

Estudo da associao de variveis no R ca a

Para vericarmos associaes lineares de variveis no R, consideramos os dados da Tabela 3. Para co a entrar com esses dados no R faa: c > anos<-c(2,3,4,5,4,6,7,8,8,10) > clientes<-c(48,50,56,52,43,60,62,58,64,72) Para traar o digrama de disperso, assim como apresenta-se na Figura 3, faa: c a c > plot(anos,clientes,xlab="Anos de servio",ylab="Nmero de clientes") c u A medida de correlao linear das duas variveis ns conseguimos determinar com o seguinte ca a o comando: > cor(anos,clientes) > [1] 0.8767952 Tambm podemos obter a matriz de correlao a partir de uma matriz com diversas variveis. e ca a Dada uma matriz M basta fazer cor(M)que teremos a correlao entre todas as variveis. Como ca a exemplo, consideremos uma matriz em que a primeira coluna a varivel anos, na outra coluna e a temos a varivel clientes e a terceira coluna da matriz o produto dessas duas variveis. Dessa a e a forma, ca assim: > M<-cbind(anos,clientes,(anos*clientes)) # cria a matriz > M # verifica a matriz anos clientes [1,] 2 48 96 [2,] 3 50 150 [3,] 4 56 224 [4,] 5 52 260 [5,] 4 43 172 [6,] 6 60 360 [7,] 7 62 434 [8,] 8 58 464 [9,] 8 64 512 [10,] 10 72 720 > cor(M) # retorna a matriz de correla~o ca anos clientes anos 1.0000000 0.8767952 0.9860993 clientes 0.8767952 1.0000000 0.9290242 0.9860993 0.9290242 1.0000000

6.4

Regresso linear simples a

Aps vericar se h correlao linear entre duas variveis interessante determinar a equao da o a ca a e ca linha que melhor modela os dados. Essa linha chamada de linha de regresso e sua equao e a ca pode ser usada para prever os valores de Y para um dado valor de X. Utilizando o mtodo dos e m nimos quadrados ordinrios essa linha ser traada de forma a minimizar a soma dos quadrados a a c dos res duos. Em aula j foi estudado como ajustar a reta de regresso pelo mtodo dos m a a e nimos quadrados. Veremos agora como faz-la utilizando o software R. e Utilizando os mesmos dados do exemplo anterior, tentemos ajustar uma regresso linear sima ples1 na qual a varivel independente anos de servio e a varivel dependente o nmero de a e c a e u clientes. Para isso, utilize a funo lm, da seguinte maneira: ca > ajuste1<-lm(clientes ~ anos) # ajusta um modelo linear (linear model) > ajuste1 # para ver o modelo ajustado
1 Regresso linear simples quando se tem apenas uma varivel explicativa no modelo. Uma generalizaao a a e a c e regresso linear mltipla, na qual podem ser utilizadas mais de uma varivel independente para explicar uma outra a u a varivel de interesse. a

15

Call: lm(formula = clientes ~ anos) Coefficients: (Intercept) 39.675

anos 2.952

> summary(ajuste1) # apresenta mais detalhes do modelo ajustado Call: lm(formula = clientes ~ anos) Residuals: Min 1Q Median -8.482 -1.648 1.566

3Q 2.566

Max 4.518

Coefficients: Estimate Std. Error t value (Intercept) 39.6747 3.5421 11.201 anos 2.9518 0.5724 5.157 --Signif. codes: 0 ?***? 0.001 ?**? 0.01

Pr(>|t|) 3.62e-06 *** 0.000867 *** ?*? 0.05 ?.? 0.1 ? ? 1

Residual standard error: 4.363 on 8 degrees of freedom Multiple R-squared: 0.7688, Adjusted R-squared: 0.7399 F-statistic: 26.6 on 1 and 8 DF, p-value: 0.0008665 Percebe-se que o modelo ajustado possui uma coeciente de determinao R2 igual a 0,7688. ca Isso indica que o modelo capaz de explicar 76,88% da variabilidade da varivel dependente. e a Os valores estimados dos parmetros do modelo so 39,6747, para o intercepto, e 2,9518, para o a a parmetro referente ` varivel anos de servio. Com isso, o modelo pode ser escrito da seguinte a a a c forma: clientes = 39,6747 + 2,9518 anos. Com esse modelo podemos, por exemplo, prever qual seria a quantidade esperada de clientes aps o nove anos de servio. Para isso, basta fazer anos = 9, assim: c clientes = 39,6747 + 2,9518 9 = 66.3409. Ou seja, aps nove anos de trabalho espera-se que se tenha, em mdia, 66,34 clientes. o e O modelo ajustado, guardado no objeto que nomeamos de ajuste1, nos retorna diversas informaes que podem ser vericadas com a funo ls(), assim: co ca > ls(ajuste1) # mostra todos os objetos criados no ajuste a guardados em ajuste1 [1] "assign" "call" "coefficients" "df.residual" [5] "effects" "fitted.values" "model" "qr" [9] "rank" "residuals" "terms" "xlevels" Pode-se acessar cada um desses dados. Por exemplo, se desejar vericar os res duos do modelo faa c > ajuste1$residuals > 1 2 3 4 5 6 7 2.4216867 1.4698795 4.5180723 -2.4337349 -8.4819277 2.6144578 1.6626506 8 9 10 -5.2891566 0.7108434 2.8072289 Como visto em aula, sempre desejvel que os res e a duos sejam aleatrios, com mdia zero o e e varincia contante. Para vericar isso gracamente trace o grco dos res a a duos, da seguinte maneira: > plot(ajuste1$residuals) # plota os resduos do modelo 16

Para vericarmos o bom ajuste do modelo aos dados podemos traar a linha de regresso c a juntamente com os dados observados. > plot(anos,clientes) # diagrama de dispers~o a > lines(anos,ajuste1$fitted.values) # linha de regress~o juntamente com os dados a

Exerc cios no R 1. Os dados da tabela abaixo apresentam a renda bruta mensal (X) (em quantidade de salrios a m nimos) e o percentual dessa renda gasto com sade (Y) em um conjunto de fam u lias. Fam lia A B C D E F G H I Renda mensal (X) 6 8 9 10 14 15 20 24 25 Percentagem gasta com sade (Y) u 7,2 7,4 7,0 6,5 6,6 6,7 6,0 5,6 6,0

Considerando esses dados: (a) Faa o grco de disperso. Interprete o grco. c a a a (b) Calcule a medida de correlao r e interprete-a. ca (c) Ajuste um modelo de regresso linear simples em que a percentagem gasta com sade a a u e varivel dependente e a renda familiar a varivel explicativa (independente). Analise a e a a qualidade de ajuste e os res duos desse modelo. (d) Faa a previso de quanto seria o percentual mdio de gasto com sade para um fam c a e u lia com renda familiar de 18 salrios m a nimos. 2. Os dados a seguir correspondem ` tamanhos (em cm) de ossos de cinco animais de uma a espcie ameaada de extino. e c ca Fmur e Umero Considerando esses dados: (a) Faa o grco de disperso. c a a (b) Calcule a mdia e o desvio padro de cada varivel (ossos). e a a (c) Calcule a medida de correlao r e interprete-a. Verique se essa interpretao corresca ca ponde com a anlise do grco da (a). a a (d) Ajuste um modelo de regresso linear simples em que Fmur a varivel dependente a e e a e Umero a varivel explicativa (independente). Analise a qualidade de ajuste e os e a res duos desse modelo modelo. (e) Faa a previso de quanto seria o tamanho mdio do Fmur para um Umero de 55 cm. c a e e 38 41 56 63 59 70 64 72 74 84

6.5

EXTRA - Modelo de regresso linear m ltipla a u

Pode-se ajustar, de forma anloga, modelos de regresso linear mltipla. Nesses modelos, ao a a u contrrio do modelos linear simples, considera-se mais de uma varivel explicativa. a a Para vericarmos como fazer isso no R consideremos ainda o exemplo do Nmero de Clientes u e Anos de Trabalho dos agentes de uma companhia de seguros. Se tivssemos o acesso a e uma outra varivel que pudesse ajudar a explicar a quantidade de clientes poder a amos inclu la no modelo. Consideremos, por exemplo, que temos uma varivel com a informao dos a ca anos de estudo de cada agente da companhia de seguros. Essa varivel tem as seguintes a observaes: co 17

estudo<-c(15,13,21,13,8,15,13,8,15,17) # anos de estudo Podemos traar um diagrama de disperso entre essa varivel e a varivel dependente (clic a a a entes) e tambm vericarmos a matriz de correlao das trs variveis envolvidas. e ca e a > plot(clientes, estudo) # diagrama de dispers~o a > > mat<-cbind(anos,clientes,estudo) > cor(mat) # matriz de correla~o ca anos clientes estudo anos 1.00000000 0.8767952 -0.01802611 clientes 0.87679521 1.0000000 0.41162086 estudo -0.01802611 0.4116209 1.00000000 Agora, podemos ajustar o modelo, vericar sua adequacidade, vericar seus res duos e traar c o modelo ajustado utilizando os seguintes comandos: > ajuste2<-lm(clientes~anos+estudo) # ajusta um modelo linear (linear model) > > summary(ajuste2) # informa~es do modelo ajustado co Call: lm(formula = clientes ~ anos + estudo) Residuals: Min 1Q Median -2.9730 -1.3662 -0.1017

3Q 1.4538

Max 2.3827

Coefficients: Estimate Std. Error t value (Intercept) 26.5242 3.0919 8.579 anos 2.9778 0.2802 10.627 estudo 0.9422 0.1834 5.137 --Signif. codes: 0 ?***? 0.001 ?**? 0.01

Pr(>|t|) 5.82e-05 *** 1.43e-05 *** 0.00134 ** ?*? 0.05 ?.? 0.1 ? ? 1

Residual standard error: 2.136 on 7 degrees of freedom Multiple R-squared: 0.9515, Adjusted R-squared: 0.9377 F-statistic: 68.7 on 2 and 7 DF, p-value: 2.508e-05 > plot(ajuste2$residuals) # plota os resduos do modelo > > plot(clientes) # diagrama de dispers~o a > lines(ajuste2$fitted.values) # linha de regress~o juntamente com os dados a

18

You might also like