Análise Exploratória de
Dados - 2006
R - LIG-06
Objetivos da aula
Apresentar um método para a determinação
aproximada de quantis para dados nãoagrupados e usar a função quantile do R;
 definir o esquema dos cinco números e
apresentar e construir um boxplot (gráficocaixa) de um conjunto de dados.

Determinação dos quantis usando o R




A função apropriada do R para obter os
quantis de um vetor numérico x é a função
quantile.
Se x é o vetor contendo os dados, e
desejamos determinar os três quartis,
pedimos quantile(x,c(0.25,0.5,0.75))
Se desejamos o quinto e o nonagésimoquinto 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: Emissão de Dióxido de
Carbono
Os dados no arquivo dados13bm.txt
fornecem emissões de dióxido de carbono
"per capita", para uma amostra de 72
países. Os dados são do ano de 1995.
 Fonte: Stabilizing The Atmosphere:
Population, Consumption and Greenhouse
Gases.

Exemplo 1: Emissão de Dióxido de
Carbono (cont.)

Determine os três quartis, os decis, a
média e o desvio-padrão das emissões
registradas para os 72 países em 1995.
Exemplo 1: Emissão de Dióxido 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 emissões
Observe que a distribuição de
freqüências de dados sobre emissão
apresenta forte assimetria positiva
Observe também que há uma
classe sem representantes nessa
distribuição
Histograma das emissões: 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 não-agrupados: cálculo
aproximado dos quantis

Passo 1: Ordene a amostra de modo a ter as
estatísticas 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
Por exemplo, se n=20
i  0.5
pi 
, i  1,..., n
n
i
pi
1
0.025
2
0.075
3
0.125
4
0.175
5
0.225
6
0.275
7
0.325
8
0.375
9
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
Dados não-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 aproximação 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 números
É uma lista de informações da distribuição
que inclui cinco medidas, a saber, x(1), Q1,
Q2, Q3 e x(n).
 Estes cinco valores são importantes para
se ter uma boa idéia da assimetria dos
dados.

Esquema dos cinco números

Para uma distribuição simétrica ou
aproximadamente simétrica, deveríamos
ter: (a) Q2- x(1)  x(n)-Q2;
(b) Q2-Q1  Q3-Q2;
(c) Q1- x(1)  x(n)-Q3;
(d) distâncias entre mediana e Q1,
mediana e Q3 menores do que distâncias
entre os extremos e Q1, Q3.
Histograma alisado
de uma distribuição
simétrica unimodal
Comandos summary() e fivenum()
O R possui uma função que retorna as
informações do esquema dos cinco
números: fivenum(x), se x é o vetor que
contém os dados.
 Exemplo:
 fivenum(dados$emissao)
 [1] 0.000 0.065 0.415 1.495 8.440

mínimo
Q1
Q2
Q3
máximo
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 numérico, produz as informações do
esquema dos cinco números e a média.
Desenho Esquemático (Box Plots)
A informação contida no esquema dos
cinco números pode ser traduzida
graficamente num diagrama, conhecido
como box plot (também chamado de
gráfico-caixa).
 A figura a seguir, ilustra o boxplot.

Boxplot
O retângulo no boxplot é traçado de tal
maneira que suas bases têm alturas
correspondentes aos primeiro e terceiro
quartis da distribuição.
 O retângulo é cortado por um segmento
paralelo às bases, na altura
correspondente ao segundo quartil.
 Assim, o retângulo do boxplot correponde
aos 50% valores centrais da distribuição.

Cosntruindo o boxplot
Depois de desenhado o retângulo, traça-se
um segmento paralelo ao eixo, partindo
do ponto médio da base superior do
retângulo até o maior valor observado que
NÃO supera o valor de Q3+(1,5)DEQ.
 O mesmo é feito a partir do ponto médio
da base inferior do retângulo, até o menor
valor que NÃO é menor do que Q1-(1,5)DEQ.

Fechando o boxplot
As observações que estiverem acima de
Q3+(1,5)DEQ ou abaixo de Q1-(1,5)DEQ
são chamadas pontos exteriores e
representadas por asteriscos.
 Essa observações destoantes das demais
podem ser o que chamamos de outliers ou
valores atípicos.

Observações


Não necessariamente
haverá a presença de
pontos exteriores num
boxplot.
Quando for este o
caso, o esquema terá
a seguinte aparência:
A função boxplot no R

Experimente pedir ao R para construir um
boxplot dos dados sobre emissões de
dióxido de carbono:
boxplot(dados$emissao)
Alguns argumentos da função boxplot
Observação: é possível construir vários
boxplots na mesma função.
 boxwex: controla a largura dos retângulos
no boxplot. O default é 0.8.
 outline: valor lógico. Se T, os pontos
exteriores são assinalados (default). Se F,
os pontos exteriores não são assinalados

Exemplo 2
 Vamos
trabalhar com os dados sobre
salários para diferentes
profissões/formações do conjunto
dados6bm.txt.



dados<-read.table(“http://www.im.ufrj.br/~flavia/aed06/dados6bm.txt”,header=T)
Há quatro profissões 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 – nível médio
2 – mecânico
3 – administrador
4 – Eng. Elétrico
Cores
col - cor de preenchimento dos retângulos
Boxplots horizontais

horizontal - valor
lógico, se T o boxplot
fica na posição
horizontal. Se F
(default) fica na
posição vertical.
Outros argumentos
ylim: controla a escala de valores
 main: título
 sub: sub-título
 names: vetor com os rótulos dos
conjuntos de dados, quando são pedidos
mais de um boxplot.
 pch: específica 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 União disponível para
investimentos nas prefeituras em 2004.
 Nesta reportagem, foram publicados os
dados sobre 25 capitais, os partidos dos
prefeitos destas capitais, o número de
habitantes e o total em reais disponível.

Exemplo 3 (cont.)
Estes dados foram armazenados no
arquivo dadosaula6.txt com o número de
habitantes em milhares e o investimento
em milhares de reais.
 Os nomes atribuídos às variáveis 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 também um boxplot do número de habitantes.
Olhando para a razão investimento sobre número de
habitantes você diria que foi justa esta distribuição?
O título da reportagem no jornal foi Aos amigos, mais da
metade.
Você concorda com este título? Por que?
Ordenando os dados por partido:
indice<-order(dados$partido)
# indice é um vetor que receberá as posições da base de dados
# ordenadas por partido
dadosord<-dados[indice,]
# dadosord receberá toda a informação de dados, só que agora
# suas linhas estão ordenadas por partido
Depois de ordenar os dados por partido em dadosord,
é possível ver que de 1 a 17 tem-se outros partidos e
de 18 a 25 tem-se o PT.
CÁLCULO DOS PERCENTUAIS INVESTIDOS EM CAPITAIS DO PT E
DE OUTROS PARTIDOS EM RELAÇÃO AO TOTAL DE INVESTIMENTOS:
resumo<-matrix(0,2) #variável que vai receber o total
# de investimentos, na posição 1: outros partidos
# na posição 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)#variável que vai receber o percentual
# de investimentos, na posição 1: outros partidos
# na posição 2: PT
parcial<-resumo/total
Resultado
parcial
[1] 0.4077745 0.5922255
Download

R - LIG-06 Análise Exploratória de Dados