45
ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e- Folhas

ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Embed Size (px)

Citation preview

Page 1: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

ANÁLISE EXPLORATÓRIA DE DADOS

R – Histograma e Ramo-e-Folhas

Page 2: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Objetivos:

trabalhar com dados quantitativos contínuos;

especificar intervalos de classe; construir histogramas; construir mais de um gráfico na mesma

janela.

Page 3: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Exemplo 1: Tipo sangüíneo, peso (em Kg) e altura (em cm).

A 62 164AB 83 163AB 62 176AB 64 177AB 75 166

. . .

. . .

. . .O 70 182O 72 170AB 94 189AB 75 175AB 80 154B 78 172B 71 171B 76 166B 82 143B 78 169

Forma dos dados na planilhacom 100 linhas e três colunas.

A base de dados que será trabalhada hoje contém a informação de 100 indivíduossobre tipo sangüíneo, peso (kg)e altura (cm).

arquivo: m:\\aed\\dados1.txt

Fonte: dados fictícios.

Page 4: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Exemplo (continuação)

Os dados deste exemplo podem ser obtidos como:dados<-read.table(“m:\\aed\\dados1.txt”)

Observe que aqui, não usamos o argumento header=T, pois osnomes das variáveis não estão no arquivo de dados.

Mas, se preferirmos, podemos definir os nomes das variáveisem dados.

names(dados)<-c(“tsangue”,”peso”,”altura”)

Page 5: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Acesso aos valores

Assim, você pode se referir às colunas desta base tanto usando dados[,n], em que n é o número da coluna desejada, como dados$nomedavariável.

Por exemplo, para ver o conteúdo da coluna 1, podemos tanto usar dados[,1] como dados$tsangue.

Page 6: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

VARIÁVEIS QUANTITATIVAS

Veremos agora como construir a distribuição de freqüências de uma variável quantitativa.

Para isso, usaremos os dados do exemplo referentes ao peso e à altura dos indivíduos.

Page 7: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

VARIÁVEIS QUANTITATIVAS

Se você pedir table(dados[,2]) ou table(dados[,3]) o efeito da saída será quase que reproduzir os valores observados de forma ordenada.

table(dados[,2])57.1 59 61.4 61.9 62.1 62.4 62.8 63.3 63.9 64.2 64.8 66.1 66.3 66.7 67.6 67.8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 68 68.1 68.9 69.4 69.9 70.1 70.2 70.4 70.9 71.2 71.3 71.5 71.7 71.9 72.1 72.2 1 2 1 1 1 2 2 1 3 1 1 2 1 2 1 1 72.6 73.2 73.4 73.7 74.1 74.6 74.9 75.2 75.3 76 76.3 76.5 76.9 77 77.5 77.6 2 2 1 2 1 4 1 1 1 2 1 1 2 1 1 1 77.8 77.9 78.2 78.4 78.5 78.6 79.1 79.5 79.8 80 80.5 80.6 80.7 80.8 80.9 81.1 2 1 1 1 1 1 2 1 1 1 1 1 3 1 1 1 81.2 81.3 81.7 82.2 82.4 82.7 82.8 83.2 84.3 85 86 86.1 86.7 94.4 95.8 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1

Page 8: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

VARIÁVEIS QUANTITATIVAS

Portanto, o comando table não é, em geral, útil para dados contínuos. Ele talvez poderá ser útil se estivermos trabalhando com uma variável discreta cuja quantidade de respostas possíveis é pequena.

Page 9: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

VARIÁVEIS QUANTITATIVAS

Vimos que no caso de dados contínuos, há a necessidade de se definir primeiro intervalos de classe para depois construir a tabela de freqüências e, então, usá-la para construir o histograma.

O R possui uma função que pode gerar esta distribuição de forma automática.

Page 10: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

VARIÁVEIS QUANTITATIVAS

Esta função também tem a flexibilidade de nos permitir fixar os intervalos ou sugerir o número de intervalos.

Esta mesma função também gera o histograma dos dados e seu nome no R é hist.

Page 11: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Uso da função histPara começar peça a função hist apenas com o argumento obrigatório que é um vetor contendo os valores para os quaisqueremos construir o histograma, isto é, peça hist(dados$peso).

Page 12: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Argumentos da função histArgumentos:x (obrigatório): vetor de valores para os quais deseja-seconstruir o histograma.

breaks (opcional): um entre * vetor fornecendo os limites dos intervalos de classe, * número fornecendo o número de intervalos (é apenas uma sugestão).

freq (opcional): lógica; se `freq=T', o histograma é uma representação da distribuição na escala das freqüências absolutas, se `freq=F', é uma representação na escala da densidade de freqüência relativa, que é definida como a razão entre freqüência relativa e a amplitude da classe.

Page 13: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Exemplo: argumentos breaks e freqhist(dados$peso,breaks=c(50,60,70,80,90,100),freq=F)

Page 14: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Exemplo (continuação)Para melhorar o gráfico podemos definir o título e os rótulos para os eixos ox e oy.

hist(dados$peso,breaks=c(50,60,70,80,90,100),freq=F,main=“Histograma dos pesos”,xlab=“kg”,ylab=“dens.freq.rel”,col=“blue”)

Page 15: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Mudando a escala dos eixos

Comandos xlim e ylim. Para visualizar o eixo 0x de 40 até 110kg,

inclua o argumento xlim=c(40,110). Para visualizar o eixo 0y de 0 até 0.06,

quando freq=F, inclua o argumento ylim=c(0,0.06).

Page 16: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Exemplo (continuação)

hist(dados$peso,breaks=c(50,60,70,80,90,100),freq=F,main="Histograma dos pesos",xlab="Kg",ylab="dens.freq.rel",col="gray",xlim=c(40,110),ylim=c(0,0.06))

Page 17: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Exemplo (continuação)

A função hist gera um objeto do R. Assim, podemos criar uma variável que recebe o objeto gerado por hist.

Por exemplo, faça

hist1<-hist(dados$peso,breaks=c(50,60,70,80,90,100),freq=F,main=“...”)

Depois, liste o conteúdo de hist1.

Page 18: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Exemplo (continuação) hist1 com freq=F$breaks (LIMITES DOS INTERVALOS DE CLASSE)[1] 50 60 70 80 90 100

$counts (FREQÜÊNCIAS ABSOLUTAS DOS INTERVALOS DE CLASSE)[1] 2 20 53 23 2

$intensities[1] 0.001999996 0.020000000 0.053000000 0.023000000 0.002000000$density (densidade de freqüência relativa=freq.rel/amp.do intervalo)[1] 0.001999996 0.020000000 0.053000000 0.023000000 0.002000000

$mids (PONTOS MÉDIOS DOS INTERVALOS DE CLASSE)[1] 55 65 75 85 95

$xname (NOME DO EIXO 0x)[1] "dados$peso"$equidist (VARIÁVEL LÓGICA INFORMANDO SE AS AMPLITUDES DOS INTERVALOS DE CLASSE SÃO IGUAIS (TRUE) OU DESIGUAIS (FALSE)).[1] TRUEattr(,"class")[1] "histogram"

Page 19: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Exemplo (continuação)

Repita agora os mesmos passos com

hist2<-hist(dados$peso,breaks=c(50,60,70,80,90,100),freq=T,main=“...”)

Page 20: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Exemplo (continuação)> hist2$breaks[1] 50 60 70 80 90 100$counts[1] 2 20 53 23 2$intensities[1] 0.001999996 0.020000000 0.053000000 0.023000000 0.002000000$density[1] 0.001999996 0.020000000 0.053000000 0.023000000 0.002000000$mids[1] 55 65 75 85 95$xname[1] "dados$peso"$equidist[1] TRUEattr(,"class")[1] "histogram"

Page 21: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

O que mudou?freq=F freq=T

Page 22: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Observações

Se os intervalos de classe tiverem amplitudes desiguais, será obrigatório usar o argumento freq=F.

Caso contrário, o R retornará com uma mensagem de erro.

Warning message: the AREAS in the plot are wrong -- rather use `freq=FALSE'! in: plot.histogram(r, freq = freq, col = col, border = border, angle = angle,

Page 23: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Argumentos xlim e ylim

Estes dois argumentos são muito úteis quando queremos comparar diversos histogramas.

Para uma comparação, é necessário trabalhar com escalas iguais.

Page 24: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Ramo e folhas de peso Para estudarmos outras possibilidades de

intervalos para o histograma de pesos, é interessante aqui pedir uma ramo-e-folhas dos pesos: stem(dados$peso).

The decimal point is 1 digit(s) to the right of the | 5 | 79 6 | 12223344 6 | 56678888899 7 | 00000011111222222233333444 7 | 5555555666777788888889999 8 | 000111111111122223334 8 | 56667 9 | 4 9 | 6

Page 25: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Construindo 9 intervalos de classeA amplitude amostral é aproximadamente 97-56=41

Observe que ficaremos com uma amplitude total igual à 45, 4 a mais da verificada. Podemos então repartir o excesso igualmente para cima e para baixo, começando com 54 e terminando em 99:

hist(dados$peso,breaks=c(54,59,64,69,74,79,84,89,94,99),col=“palegreen”,main=“Histograma dos pesos”,xlab=“kg”,ylab=“dens.freq.rel.”,freq=F)

Para 9 intervalos, podemos calcular 41/9 que é 4.555556, e arredondando para 5 temos as amplitudes das classes.

Page 26: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Numa distribuiçãode freqüências, não devehaver classes intermediárias vazias!

Portanto, essa distribuição deve ser refeita.

Possibilidades: sugerir 8 intervalos ou juntar as duas classes finais, passando a ter classes de amplitudes desiguais.

Page 27: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Construa o histograma usando 8 intervalos de classe.Sugestão: breaks=c(53.5,59.5,65.5,71.5,77.5,83.5,89.5,95.5,101.5)

Page 28: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Continuação

Sugestão: breaks=8

Lembre que 8 éapenas uma sugestão para o número de classes.

Page 29: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Outros argumentos da função hist

right: valor lógico; se ’right=T’, os intervalos serão fechados à direita e abertos à esquerda. Se ’right=F’, os intervalos serão abertos à direita e fechados à esquerda.

density: densidade das linhas que preenchem os retângulos. O default é 'NULL‘, implicando que nenhuma linha é desenhada. Valores não-positivos de ‘density' também inibem o desenho das linhas.

Page 30: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Argumento densityInserindo o argumento density=4, obtemos

Page 31: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Outros argumentos

Sugerimos que os demais argumentos da função histsejam explorados por vocês.

Page 32: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Exemplo 2 (alturas)

Construa agora um histograma das alturas (cm), especificando os limites dos intervalos, considerando 9 intervalos.

Passo 1: Magnitude dos dados para avaliar amplitude.

Sugestão: Ramo-e-folhas. stem(dados$altura)

Page 33: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Ramo-e-folhas das alturas

14 | 1399

15 | 024555666799

16 | 0111222222334444445555666666666778888899999

17 | 0000111111222233345556667777

18 | 001222223349

19 | 4

Amplitude amostral aproximada: 195-140=55 cmAmplitude dos intervalos: 55/9=6.1111...cmArredondamos para 77*9=63 (8 a mais)

Page 34: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Intervalos de classehist(dados[,3],breaks=c(137, 144,151,158,165,172,179, 186,193,200),ylab=“dens. freq. Rel.”,main=“Histograma das alturas”,xlab=“cm”,density=4)

Page 35: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

ATIVIDADE

1) Construa agora o histograma das alturas com 7 intervalos de classe.

2) Calcule a média das alturas nesta amostra e localize-a no histograma obtido no item 2.

Page 36: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Histograma com 7 classes

Amplitude amostral aproximada: 195-140=55 cm

breaks=c(139.5,147.5,155.5,163.5,171.5,179.5,187.5,195.5)

Amplitude dos intervalos: 55/7->7.85cm

Arredondamos para 8.

Page 37: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas
Page 38: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas
Page 39: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Comando par(mfrow=c(l,n))

É possível construir vários histogramas numa única janela de gráfico.

Por exemplo, se quisermos apresentar o histograma das alturas e o histograma dos pesos numa mesma janela, antes de pedir os histogramas, devemos informar que a janela conterá dois gráficos.

Podemos configurar a janela com dois gráficos numa única linha ou dois gráficos numa única coluna.

Page 40: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Comando par(mfrow=c(l,n))

par(mfrow=c(1,2)) # uma linha duas colunas ou par(mfrow=c(2,1)) # duas linhas uma coluna. Depois é só pedir os respectivos histogramas.

Page 41: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

par(mfrow=c(1,2)) hist(dados$peso, main="Histograma dos pesos",xlab="Kg",freq=F,ylab="densidade de freq. rel.",ylim=c(0,0.07),xlim=c(50,110)) hist(dados$altura, main="Histograma das alturas",xlab="cm",freq=F,ylab="densidade de freq. rel.",ylim=c(0,0.06),xlim=c(130,200))

Page 42: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas
Page 43: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

par(mfrow=c(2,1)) hist(dados$peso, main="Histograma dos pesos",xlab="Kg",freq=F,ylab="densidade de freq. rel.",ylim=c(0,0.07),xlim=c(50,110)) hist(dados$altura, main="Histograma das alturas",xlab="cm",freq=F,ylab="densidade de freq. rel.",ylim=c(0,0.06),xlim=c(130,200))

Page 44: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas
Page 45: ANÁLISE EXPLORATÓRIA DE DADOS R – Histograma e Ramo-e-Folhas

Principais comandos da aula read.table (para ler bases

de dados multivariadas) names (para definir

nomes das variáveis que compõem o objeto)

hist (constrói um histograma)

stem (constrói um ramo-e-folhas)

par(mfrow=c(r,s)) (especifica que deverão entrar na janela rs figuras em r linhas e s colunas)

Argumentos importantes da função hist: main=“Título do Gráfico”,sub=“sub-título para o gráfico”, ylim=c(min,max) escala do eixo y, ylab=“rótulo para o eixo”, (xlim e xlab), etc.