A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Análise Exploratória de Dados 2006/1 Aula lig-02 Variáveis Qualitativas.

Apresentações semelhantes


Apresentação em tema: "Análise Exploratória de Dados 2006/1 Aula lig-02 Variáveis Qualitativas."— Transcrição da apresentação:

1 Análise Exploratória de Dados 2006/1 Aula lig-02 Variáveis Qualitativas

2 Exemplo 1: Tipo Sangüíneo Registrou-se o tipo sangüíneo de 40 doadores voluntários de sangue em um dia. Registrou-se o tipo sangüíneo de 40 doadores voluntários de sangue em um dia. Os dados estão no arquivo tiposangue.txt. Os dados estão no arquivo tiposangue.txt. Esta base de dados é univariada. Podemos, portanto, usar o comando scan. Esta base de dados é univariada. Podemos, portanto, usar o comando scan.

3 Exemplo 1: (continuação) dados<-scan(m:\\aed\\tiposangue.txt,what=character) dados<-scan(m:\\aed\\tiposangue.txt,what=character) O argumento what=character, no comando acima, serve para informar que o tipo de informação que será lida são caracteres não- numéricos. O argumento what=character, no comando acima, serve para informar que o tipo de informação que será lida são caracteres não- numéricos. Problema: Descrever estes dados numa tabela de freqüências e representá-los graficamente usando o R. Problema: Descrever estes dados numa tabela de freqüências e representá-los graficamente usando o R.

4 Exemplo 1: (continuação) > dados > dados [1] "O" "O" "A" "B" "A" "O" "A" "A" "A" "O" "B" "O" "B" "O" "O" [1] "O" "O" "A" "B" "A" "O" "A" "A" "A" "O" "B" "O" "B" "O" "O" [16] "A" "O" "O" "A" "A" "A" "A" "AB" "A" "B" "A" "A" "O" "O" "A" [16] "A" "O" "O" "A" "A" "A" "A" "AB" "A" "B" "A" "A" "O" "O" "A" [31] "O" "O" "A" "A" "A" "O" "A" "O" "O" "AB" [31] "O" "O" "A" "A" "A" "O" "A" "O" "O" "AB"

5 Comando sort Você pode ordenar a informação na base dados usando o comando sort que rearruma as informações de maneira ordenada. No caso destes dados ele usa a ordem alfabética como chave. Você pode ordenar a informação na base dados usando o comando sort que rearruma as informações de maneira ordenada. No caso destes dados ele usa a ordem alfabética como chave. Você ainda pode escolher se deseja ordem crescente (default) ou decrescente, acrescentando o argumento decreasing=T. Você ainda pode escolher se deseja ordem crescente (default) ou decrescente, acrescentando o argumento decreasing=T. sort(dados) [1] "A" "A" "A" "A" "A" "A" "A" "A" "A" "A" "A" "A" "A" "A" "A" [16] "A" "A" "A" "AB" "AB" "B" "B" "B" "B" "O" "O" "O" "O" "O" "O" [31] "O" "O" "O" "O" "O" "O" "O" "O" "O" "O" sort(dados) [1] "A" "A" "A" "A" "A" "A" "A" "A" "A" "A" "A" "A" "A" "A" "A" [16] "A" "A" "A" "AB" "AB" "B" "B" "B" "B" "O" "O" "O" "O" "O" "O" [31] "O" "O" "O" "O" "O" "O" "O" "O" "O" "O"

6 Comando table Os conjunto de dados que estamos trabalhando é de tamanho pequeno, e com o auxílio do comando sort poderíamos perfeitamente contar os casos de cada tipo possível de resposta. Os conjunto de dados que estamos trabalhando é de tamanho pequeno, e com o auxílio do comando sort poderíamos perfeitamente contar os casos de cada tipo possível de resposta. Porém, esta solução não é razoável se nosso conjunto de dados for de tamanho médio ou grande. Porém, esta solução não é razoável se nosso conjunto de dados for de tamanho médio ou grande. O comando table resolve este problema para qualquer tamanho de conjunto de dados. O comando table resolve este problema para qualquer tamanho de conjunto de dados.

7 Comando table > table(dados) > table(dados) dados A AB B O dados A AB B O Freqüências relativas: table(dados)/sum(table(dados)) Freqüências absolutas Porcentagens: table(dados)*100/sum(table(dados)) dados A AB B O

8 Gráfico de Setores Veremos agora como construir um gráfico de setores para estes dados. Veremos agora como construir um gráfico de setores para estes dados. O comando pie(table(dados)) produzirá um gráfico de setores caracterizando a distribuição de freqüências das respostas em dados. O comando pie(table(dados)) produzirá um gráfico de setores caracterizando a distribuição de freqüências das respostas em dados.

9 Gráfico de setores (cont.)

10 Detalhes do comando pie Podemos configurar alguns detalhes no gráfico anterior como cores, títulos e legendas. Podemos configurar alguns detalhes no gráfico anterior como cores, títulos e legendas. Vamos usar o help para saber como realizar estas configurações. help(pie). Vamos usar o help para saber como realizar estas configurações. help(pie).

11 Detalhes do comando pie (cont.) pie package:base R Documentation Pie Charts (Gráfico de setores) Descrição: Desenha um gráfico de setores. Uso: pie(x, labels = names(x), edges = 200, radius = 0.8, density = NULL, angle = 45, col = NULL, border = NULL, lty = NULL, main = NULL,...) Argumentos: 1. x: um vetor de quantidades positivas. Os valores em 'x' representam a proporção das áreas dos setores no gráfico. (OBRIGATÓRIO.) 2. labels: um vetor de caracteres fornecendo nomes para os setores. (Não é obrigatório.) 3. edges: um inteiro. A linha do círculo é aproximada por um polígono com este número de lados. 4. radius: o gráfico é desenhado centrado num quadrado cujos lados variam de -1 à 1. Se os rótulos dos setores forem longos pode ser necessário usar um raio menor. (default: radius=0.8).

12 Detalhes do comando pie (cont.) 5. col: um vetor de cores a serem usadas no preenchimento dos setores. Se ausente, será usado um conjunto de cores pastéis. 6. main: Título para o gráfico. A função colors() lista o nome das 657 cores possíveis: (exemplos) "white" "aliceblue" "antiquewhite" "antiquewhite1" "antiquewhite2" "aquamarine" "aquamarine1" "aquamarine2 "azure" "azure4" "beige" "bisque" "black" "blanchedalmond" "blue" "blue1" "blueviolet" "brown" "burlywood" "cadetblue" "chartreuse" "chocolate" "coral" "cornflowerblue" "cornsilk" "cyan" "darkblue" "darkcyan" "darkgoldenrod" "gray" "thistle" "tomato" "turquoise" "violet" "yellowgreen"

13 Alguns exemplos: pie pie(table(dados),col=c("yellow","red","green","blue"), main="Distribuição de freqüências de tipo sangüíneo")

14 Alguns exemplos: pie pie(table(dados),col = gray(seq(0.4,1.0,length=4)), main="Distribuição de freqüências de tipo sangüíneo")

15 Alguns exemplos: pie pie(table(dados),density = 10, angle = * 1:4, main="Distribuição de freqüências de tipo sangüíneo")

16 Alguns comentários: pie O gráfico de setores é uma forma muito ruim de dispor informações! O olho é bom em julgar medidas lineares e ruim em julgar áreas relativas. Um gráfico de barras ou um diagrama de pontos são formas preferíveis de dispor este tipo de dado. Cleveland (1985): Dados que podem ser mostrados por um gráfico de setores sempre podem ser mostrados por um gráfico de barras ou um diagrama de pontos. Isto significa que julgamentos da posição em meio a uma escala comum podem ser feitos em vez de julgamentos menos acurados via ângulos dos setores.

17 Gráfico de barras Comando barplot Comando barplot Produz um gráfico de barras da distribuição de freqüências de alguma variável. Produz um gráfico de barras da distribuição de freqüências de alguma variável. Argumento obrigatório: height - vetor (ou matriz) contendo as freqüências, absolutas ou relativas, dos `valores possíveis. Se height for uma matriz, cada coluna desta matriz será olhada como uma distribuição de freqüências. Argumento obrigatório: height - vetor (ou matriz) contendo as freqüências, absolutas ou relativas, dos `valores possíveis. Se height for uma matriz, cada coluna desta matriz será olhada como uma distribuição de freqüências.

18 Gráfico de barras (exemplo) barplot(table(dados),col=blue,main= Distribuição de freqüências de Tipo Sangüíneo) barplot(table(dados),col=blue,main= Distribuição de freqüências de Tipo Sangüíneo)

19

20 Detalhes do comando barplot Se 'height' é um vetor, o gráfico consiste de uma seqüência de barras retangulares com alturas dadas pelos valores no vetor. Se 'height' é um vetor, o gráfico consiste de uma seqüência de barras retangulares com alturas dadas pelos valores no vetor. Se 'height' é uma matriz e o argumento 'beside=F, então cada barra do gráfico corresponderá a uma coluna da matriz 'height', com os valores na coluna correspondendo às alturas das "sub-barras" que compõem a barra. (default) Se 'height' é uma matriz e o argumento 'beside=F, então cada barra do gráfico corresponderá a uma coluna da matriz 'height', com os valores na coluna correspondendo às alturas das "sub-barras" que compõem a barra. (default) Se height' é uma matriz e 'beside=T', então os valores em cada coluna ficarão justapostos em vez de empilhados. Se height' é uma matriz e 'beside=T', então os valores em cada coluna ficarão justapostos em vez de empilhados.

21 Exemplo 2: Tipo sangüíneo para 4 amostras Suponha que em vez de uma única amostra, observamos a variável tipo sangüíneo em 4 amostras de diferentes regiões, obtendo para os sangues tipo O, A, AB e B, nesta ordem, as seguintes freqüências: amostra 1) 15, 12, 10, 5 amostra 2) 25, 23, 12, 8 amostra 3) 14, 12, 8, 6 amostra 4) 12, 20, 5, 10

22 Exemplo 2 (continuação) Podemos construir a matriz height onde cada coluna representará uma distribuição: x<-matrix(0,4,4) - constrói uma matriz nula 4x4 x[,1]<-c(15,12,10,5) # atribui os valores da coluna 1 de x x[,2]<-c(25,23,12,8) # atribui os valores da coluna 2 de x x[,3]<-c(14,12,8,6) # atribui os valores da coluna 3 de x x[,4]<-c(12,20,5,10) # atribui os valores da coluna 4 de x

23 Exemplo 2 (continuação) barplot(x,beside=F)

24 Exemplo 2 (continuação) Observe que como cada amostra conta com um número diferente de observações, este gráfico ainda precisa ser melhorado se queremos comparar as diferentes amostras. A sugestão aqui é uniformizar a escala, trabalhando com freqüências relativas. x[,1]<-x[,1]/sum(x[,1]) x[,2]<-x[,2]/sum(x[,2]) x[,3]<-x[,3]/sum(x[,3]) x[,4]<-x[,4]/sum(x[,4]) ou for (i in 1:4) {x[,i]<-x[,i]/sum(x[,i]) }

25 Exemplo 2 (continuação) barplot(x,beside=F)

26 Exemplo 2 (continuação) barplot(x,beside=T)

27 Barplot: mais detalhes Argumento main - aqui também é usado para inserir um título: barplot(x,main=Título,sub=sub-título) Argumento main - aqui também é usado para inserir um título: barplot(x,main=Título,sub=sub-título) Argumentos xlab e ylab - rótulos para os eixos do gráfico. barplot(x,main=Título,sub=sub- título,ylab=freq. rel.,xlab=rótulo para o eixo Ox) Argumentos xlab e ylab - rótulos para os eixos do gráfico. barplot(x,main=Título,sub=sub- título,ylab=freq. rel.,xlab=rótulo para o eixo Ox) Argumento names.arg - vetor que cria rótulos para cada uma das amostras. barplot(x,main=Título,sub=sub- título,ylab=freq. rel.,xlab=nome,names.arg=c(amostra 1,amostra 2, amostra 3,amostra 4)) Argumento names.arg - vetor que cria rótulos para cada uma das amostras. barplot(x,main=Título,sub=sub- título,ylab=freq. rel.,xlab=nome,names.arg=c(amostra 1,amostra 2, amostra 3,amostra 4))

28 barplot(x,beside=T,names.arg=c("amostra 1","amostra 2","amostra 3","amostra 4"), main="Distribuição de freqüências de tipo sangüíneo",ylab="freq. relativa", xlab="rótulo para o eixo horizontal")

29 Barplot:legenda Só está faltando uma legenda para saber que cor corresponde a cada tipo sangüíneo. Só está faltando uma legenda para saber que cor corresponde a cada tipo sangüíneo. Argumento: legend.text - vetor contendo a legenda. Argumento: legend.text - vetor contendo a legenda. barplot(x,main=Título,sub=sub-título,ylab=freq. rel., xlab=nome,names.arg=c(amostra 1,amostra 2, amostra 3,amostra 4), legend.text=c(O,A, AB,B ))

30

31 Outros argumentos de barplot width - vetor opcional com a largura das barras; width - vetor opcional com a largura das barras; space - quantidade de espaço à esquerda antes de cada barra. Pode ser fornecido como um único número ou um número por barra. space - quantidade de espaço à esquerda antes de cada barra. Pode ser fornecido como um único número ou um número por barra. Se 'height' é uma matriz e 'beside=T, 'space' pode ser especificado por dois números, onde o primeiro é o espaço entre barras no mesmo grupo, e o segundo é o espaço entre os grupos. Se 'height' é uma matriz e 'beside=T, 'space' pode ser especificado por dois números, onde o primeiro é o espaço entre barras no mesmo grupo, e o segundo é o espaço entre os grupos. Se não é fornecido explicitamente, seu default é 'c(0,1)' se 'height é uma matriz e 'beside=T, e 0.2, caso contrário. Se não é fornecido explicitamente, seu default é 'c(0,1)' se 'height é uma matriz e 'beside=T, e 0.2, caso contrário.

32 Gráfico usando o argumento space=c(1,3)

33 Outros argumentos de barplot horiz: um valor lógico. horiz: um valor lógico. Se horiz=F', as barras são desenhadas verticalmente com a primeira barra à esquerda. Se horiz=F', as barras são desenhadas verticalmente com a primeira barra à esquerda. Se horiz=T', as barras são desenhadas horizontalmente com a primeira barra em baixo. Se horiz=T', as barras são desenhadas horizontalmente com a primeira barra em baixo. Default: horiz=F Default: horiz=F

34 Argumento horiz=T, xlab=freq. relativa, ylab=, sub=

35 Outros argumentos de barplot col - vetor informando as cores das barras. col - vetor informando as cores das barras. border - cor das bordas da barra. border - cor das bordas da barra. Inserindo o argumentos: col=c(blue,violetblue,green,palegreen), border=red e retirando horiz=T e space=c(1,3)

36

37 Modificando a escala de cinza col = gray(seq(0.4,1.0,length=4))

38 Barras tracejadas density = 10, angle = * 1:4

39 Barras tracejadas

40 Outros argumentos... Há uma série de outras possibilidades. Há uma série de outras possibilidades. Sugerimos que elas sejam exploradas por vocês quando estiverem usando o R. Sugerimos que elas sejam exploradas por vocês quando estiverem usando o R.

41 Atividade 1: classes sociais Saiu, publicada no jornal O Globo de 20 de março de 2005, uma matéria de capa cujo título foi: Pesquisa mostra que o Brasil é classe C. Saiu, publicada no jornal O Globo de 20 de março de 2005, uma matéria de capa cujo título foi: Pesquisa mostra que o Brasil é classe C. Mapeamento inédito sobre o poder de compra das classes sociais brasileiras, feito pela Fundação Getúlio Vargas, mostra que 5,8 milhões das famílias estão na classe C e ganham entre R$1157 e R$2039. Mapeamento inédito sobre o poder de compra das classes sociais brasileiras, feito pela Fundação Getúlio Vargas, mostra que 5,8 milhões das famílias estão na classe C e ganham entre R$1157 e R$2039.

42 Classes sociais no Brasil Outras 4,6 milhões são consideradas classe D. Outras 4,6 milhões são consideradas classe D. Duas a cada três famílias nos 83 maiores municípios do país estão nas faixas de renda média e baixa. Duas a cada três famílias nos 83 maiores municípios do país estão nas faixas de renda média e baixa. O topo da pirâmide tem apenas 27mil domicílios. O topo da pirâmide tem apenas 27mil domicílios.

43 Renda familiar média Fonte: O Globo, 20/03/2005 (FGV)

44 Gráfico de Barras das classes sociais Os dados da tabela anterior foram armazenados no arquivo classes.txt com 10 linhas (a primeira com o nome da informação, a saber, classe, brasil, rj, sp e df) e 5 colunas. Os dados da tabela anterior foram armazenados no arquivo classes.txt com 10 linhas (a primeira com o nome da informação, a saber, classe, brasil, rj, sp e df) e 5 colunas. dados<-read.table(m:\\aed\\classes.txt,header=T)

45 barplot(dad,names.arg=c("Brasil","RJ","SP","DF"), legend.text=c("A","A1","A2","B1","B2","C1","C2","D","E")) Construindo a matriz de dados para o gráfico simultâneo das distribuições: dad<-matrix(0,9,4) # dad recebe uma matriz nula 9 por 4 dad[,1]<-dados[,2] # coluna 1 de dad recebe porcentagens do Brasil dad[,2]<-dados[,3] # coluna 2 de dad recebe porcentagens do Rio dad[,3]<-dados[,4] # coluna 3 de dad recebe porcentagens doe Sampa dad[,4]<-dados[,5] # coluna 4 de dad recebe porcentagens do DF

46 Distribuição percentual das famílias por classes sociais segundo a região barplot(dad,names.arg=c("Brasil","RJ","SP","DF"), legend.text=c("A","A1","A2","B1","B2","C1","C2","D","E"), col = gray(seq(0.0,1.0,length=9)))

47 Agrupando classes: A, B, D, D e E Como vocês podem perceber, o gráfico anterior não ficou muito bom, pois há um número de classes razoável. Uma forma de melhorar a visualização da distribuição de classes é reduzir de 9 para 5 classes, juntando as classes A, A1, A2 em A, B1 e B2 em B e C1 e C2 em C e, depois reconstruir o gráfico de barras simultâneo para todas as áreas. Essa tarefa será deixada como um exercício!

48 Não esquecer de incluir títulos, e rótulos para os eixos!

49 Gráfico da distribuição de freqüências das classes sociais, agrupando as classes C e D:

50 Principais comandos da aula scan (para ler dados) scan (para ler dados) what (parâmetro do scan) what (parâmetro do scan) sort (ordenação) sort (ordenação) table (tabulação) table (tabulação) sum (soma) sum (soma) pie (gráfico de setores) pie (gráfico de setores) ver argumentos possíveis para pie ver argumentos possíveis para pie barplot (gráfico de barras) barplot (gráfico de barras) ver argumentos possíveis para barplot ver argumentos possíveis para barplot Argumentos comuns: Argumentos comuns: main - título main - título col - cores para os atributos col - cores para os atributos


Carregar ppt "Análise Exploratória de Dados 2006/1 Aula lig-02 Variáveis Qualitativas."

Apresentações semelhantes


Anúncios Google