You are on page 1of 48

Anlise

Exploratria de
Dados - 2006
R - LIG-06

Objetivos da aula
Apresentar um mtodo para a determinao
aproximada de quantis para dados noagrupados e usar a funo quantile do R;
definir o esquema dos cinco nmeros e
apresentar e construir um boxplot (grficocaixa) de um conjunto de dados.

Determinao dos quantis


usando o R

A funo apropriada do R para obter os quantis


de um vetor numrico x a funo quantile.
Se x o vetor contendo os dados, e desejamos
determinar os trs quartis, pedimos
quantile(x,c(0.25,0.5,0.75))
Se desejamos o quinto e o nonagsimo-quinto
percentis, pedimos quantile(x,c(0.05,0.95))
Em geral, q(p) quantile(x,p), que retorna o
quantil de ordem p dos dados em x.

Exemplo 1: Emisso de
Dixido de Carbono

Os dados no arquivo dados13bm.txt


fornecem emisses de dixido de carbono
"per capita", para uma amostra de 72
pases. Os dados so do ano de 1995.
Fonte: Stabilizing The Atmosphere:
Population, Consumption and Greenhouse
Gases.

Exemplo 1: Emisso de
Dixido de Carbono (cont.)

Determine os trs quartis, os decis, a


mdia e o desvio-padro das emisses
registradas para os 72 pases em 1995.

Exemplo 1: Emisso de
Dixido de Carbono (cont.)

dados<read.table(http://www.im.ufrj.br/~flavia/aed06/dados13bm.txt",header=T)

names(dados)
"pais"
"emissao"
quantile(dados$emissao,c(0.25,0.5,0.75))
25%
50%
75%
0.0675 0.4150 1.4725

quantile(dados$emissao,c(.1,.2,.3,.4,.5,.6,.7,.8,.9))

10% 20% 30% 40% 50% 60% 70% 80% 90%


0.02 0.05 0.14 0.28 0.42 0.87 1.26 1.99 3.02

Histograma das emisses


Observe que a distribuio de
freqncias de dados sobre emisso
apresenta forte assimetria positiva

Observe tambm que h uma


classe sem representantes nessa
distribuio

Histograma das emisses:


sugerindo 10 intervalos:
(0,0.33,0.67,1,1.33,1.67,2,3,4,6,10
)

Observe que nessa figura tem-se


Q2-Q1<Q3-Q2
Q2-x(1)<<x(n)-Q2
Q1-x(1)<<x(n)-Q3

Dados no-agrupados: clculo


aproximado dos quantis

Passo 1: Ordene a amostra de modo a ter as


estatsticas de ordem:

x(1) x( 2 ) ... x( n )
Considere os pontos da forma:
i 0.5
( x(i ) , pi ), com pi
, i 1,..., n
n

pi

0.025

0.075

0.125

0.175

0.225

0.275

0.325

0.375

0.425

10

0.475

11

0.525

12

0.575

13

0.625

14

0.675

15

0.725

16

0.775

17

0.825

18

0.875

19

0.925

20

0.975

Por exemplo, se n=20


i 0.5
pi
, i 1,..., n
n

Dados no-agrupados
(cont.)
Passo 2: Determine i tal que:

pi p pi 1

Passo 3: Obtenha a reta que passa pelos pontos:

( x(i ) , pi ) e ( x(i 1) , pi 1 )
Passo 4: Calcule a abscissa do ponto pertencente reta
obtida no passo 2, cuja ordenada p.
q ( p ) x(i )

x(i 1) x(i )
pi 1 pi

( p pi )

Exemplo

Considere novamente obter uma aproximao do terceiro quartil.


Observe que

54 0.5
55 0.5
0,743
0.75
0,757 tal que i 54.
72
72
Logo, consideramos os pontos (1,45 , 53,5/72) e
(1,54 , 54,5/72).

x(55)

x(54)

A reta obtida, e encontramos q(0,75) como 1,495

(1,54 1,45)
q (0,75) 1,45
(0,75 53,5 / 72) 1,495
54,5 / 72 53,5 / 72

Esquema dos cinco


nmeros

uma lista de informaes da distribuio


que inclui cinco medidas, a saber, x(1), Q1,
Q2, Q3 e x(n).

Estes cinco valores so importantes para


se ter uma boa idia da assimetria dos
dados.

Esquema dos cinco


nmeros

Para uma distribuio simtrica ou


aproximadamente simtrica, deveramos
ter: (a) Q2- x(1) x(n)-Q2;
(b) Q2-Q1 Q3-Q2;
(c) Q1- x(1) x(n)-Q3;
(d) distncias entre mediana e Q1,
mediana e Q3 menores do que distncias
entre os extremos e Q1, Q3.

Histograma alisado
de uma distribuio
simtrica unimodal

Comandos summary() e fivenum()


O R possui uma funo que retorna as
informaes do esquema dos cinco
nmeros: fivenum(x), se x o vetor que
contm os dados.
Exemplo:
fivenum(dados$emissao)
[1] 0.000 0.065 0.415 1.495 8.440

mnimo

Q1

Q2

Q3

mximo

Comandos summary() e fivenum()

summary(dados$emissao)

Min.

1st Qu. Median Mean 3rd Qu. Max.


0.0000 0.0675 0.4150 1.1740 1.4730 8.4400

O comando summary(x), quando x um


vetor numrico, produz as informaes do
esquema dos cinco nmeros e a mdia.

Desenho Esquemtico (Box Plots)


A informao contida no esquema dos
cinco nmeros pode ser traduzida
graficamente num diagrama, conhecido
como box plot (tambm chamado de
grfico-caixa).
A figura a seguir, ilustra o boxplot.

Boxplot
O retngulo no boxplot traado de tal
maneira que suas bases tm alturas
correspondentes aos primeiro e terceiro
quartis da distribuio.
O retngulo cortado por um segmento
paralelo s bases, na altura
correspondente ao segundo quartil.
Assim, o retngulo do boxplot correponde
aos 50% valores centrais da distribuio.

Cosntruindo o boxplot
Depois de desenhado o retngulo, traa-se
um segmento paralelo ao eixo, partindo do
ponto mdio da base superior do retngulo
at o maior valor observado que NO
supera o valor de Q3+(1,5)DEQ.
O mesmo feito a partir do ponto mdio
da base inferior do retngulo, at o menor
valor que NO menor do que Q1-(1,5)DEQ.

Fechando o boxplot
As observaes que estiverem acima de
Q3+(1,5)DEQ ou abaixo de Q1-(1,5)DEQ
so chamadas pontos exteriores e
representadas por asteriscos.
Essa observaes destoantes das demais
podem ser o que chamamos de outliers ou
valores atpicos.

Observaes

No necessariamente
haver a presena de
pontos exteriores num
boxplot.
Quando for este o
caso, o esquema ter
a seguinte aparncia:

A funo boxplot no R

Experimente pedir ao R para construir um


boxplot dos dados sobre emisses de
dixido de carbono:
boxplot(dados$emissao)

Alguns argumentos da
funo boxplot

Observao: possvel construir vrios


boxplots na mesma funo.
boxwex: controla a largura dos retngulos
no boxplot. O default 0.8.
outline: valor lgico. Se T, os pontos
exteriores so assinalados (default). Se F,
os pontos exteriores no so assinalados

Exemplo 2
Vamos

trabalhar com os dados sobre


salrios para diferentes
profisses/formaes do conjunto
dados6bm.txt.

dados<-read.table(http://www.im.ufrj.br/~flavia/aed06/dados6bm.txt,header=T)

H quatro profisses diferentes, a saber,


nivelmedio, mecanico, administrador, engeletrico.

boxplot(dados[,2],dados[,3],dados[,4],dados[,5], names=c(nivel
medio,mecanico,administrador,eng.eletrico))

1 nvel mdio
2 mecnico
3 administrador
4 Eng. Eltrico

Cores
col - cor de preenchimento dos retngulos

Boxplots horizontais

horizontal - valor
lgico, se T o boxplot
fica na posio
horizontal. Se F
(default) fica na
posio vertical.

Outros argumentos
ylim: controla a escala de valores
main: ttulo
sub: sub-ttulo
names: vetor com os rtulos dos
conjuntos de dados, quando so pedidos
mais de um boxplot.
pch: especfica o caracter a ser usado nos
pontos exteriores. Ex.: pch=*.

Exemplo 3:
No domingo, dia 4 de abril de 2004, o
jornal O Globo publicou uma reportagem
sobre o dinheiro da Unio disponvel para
investimentos nas prefeituras em 2004.
Nesta reportagem, foram publicados os
dados sobre 25 capitais, os partidos dos
prefeitos destas capitais, o nmero de
habitantes e o total em reais disponvel.

Exemplo 3 (cont.)
Estes dados foram armazenados no
arquivo dadosaula6.txt com o nmero de
habitantes em milhares e o investimento
em milhares de reais.
Os nomes atribudos s variveis foram:
cidade, partido, hab1000 e invest1000.

Exemplo 3 (cont.)

dados<read.table(http://www.im.ufrj.br/~flavia/aed06/dadosaula6.txt",header=T)

Construa o boxplot dos investimentos.

Construa tambm um boxplot do nmero de habitantes.

Olhando para a razo investimento sobre nmero de


habitantes voc diria que foi justa esta distribuio?

O ttulo da reportagem no jornal foi Aos amigos, mais da


metade.
Voc concorda com este ttulo? Por que?

Ordenando os dados por partido:


indice<-order(dados$partido)
# indice um vetor que receber as posies da base de dados
# ordenadas por partido

dadosord<-dados[indice,]
# dadosord receber toda a informao de dados, s que agora
# suas linhas esto ordenadas por partido

Depois de ordenar os dados por partido em dadosord,


possvel ver que de 1 a 17 tem-se outros partidos e
de 18 a 25 tem-se o PT.

CLCULO DOS PERCENTUAIS INVESTIDOS EM CAPITAIS DO PT E


DE OUTROS PARTIDOS EM RELAO AO TOTAL DE INVESTIMENTOS:

resumo<-matrix(0,2) #varivel que vai receber o total


# de investimentos, na posio 1: outros partidos
# na posio 2: PT
resumo[1]<-sum(dadosord$invest1000[1:17])
resumo[2]<-sum(dadosord$invest1000[18:25])
total<-resumo[1]+resumo[2]
parcial<-matrix(0,2)#varivel que vai receber o percentual
# de investimentos, na posio 1: outros partidos
# na posio 2: PT
parcial<-resumo/total

Resultado
parcial
[1] 0.4077745 0.5922255

You might also like