720 likes | 898 Views
Análise Exploratória de Dados. R – LIG/11 – 06 de junho de 2006. Objetivos. representar graficamente as duas variáveis combinadas; definir e calcular uma medida de associação entre as variáveis. Análise bivariada: uma variável qualitativa e uma quantitativa :. Exemplo 1.
E N D
Análise Exploratória de Dados R – LIG/11 – 06 de junho de 2006
Objetivos • representar graficamente as duas variáveis combinadas; • definir e calcular uma medida de associação entre as variáveis. Análise bivariada: uma variável qualitativa e uma quantitativa:
Exemplo 1 • Os dados referem-se ao exemplo 2.1 do livro-texto (Bussab e Morettin, pag. 11) • Arquivo: ciaMB.txt • Conteúdo: informações sobre estado civil, grau de instrução, número de filhos, salário (expresso como fração do salário mínimo), idade (medida em anos e meses) e procedência de 36 empregados da seção de orçamentos da Companhia MB.
Exemplo 1: nomes das variáveis no arquivo • ecivil: variável nominal cujos níveis são solteiro ou casado. • instrucao: variável ordinal cujos níveis são F(Ensino Fundamental), M(Ensino Médio) e S(Ensino Superior). • nfilhos: número de filhos (apenas para os funcionários casados), entre os solteiros a informação está como NA.
Exemplo 1: nomes das variáveis no arquivo • sal: salário expresso como fração do salário mínimo • idadea: idade em anos completos • idadem: meses • rp: região de procedência (interior, capital e outros).
Exemplo 1:salário versus nível de instrução • Suponha que estejamos interessados em analisar o comportamento dos salários dentro de cada nível de instrução, ou seja, investigar o comportamento conjunto das variáveis sal e instrucao. • Para facilitar, vamos primeiro ordenar os dados numa nova base (dadosord) pela variável instrução.
Ordenando por instrução • dados=read.table(“http://www.im.ufrj.br/~flavia/aed06/ciaMB.txt”,header=T) • indice=order(dados$instrucao) • dadosord=dados[indice,] • table(dados$instrucao) F M S 12 18 6 Logo, em dadosord as observações de 1 a 12 são de empregados com Ensino Fundamental, de 13 a 30 com Ensino Médio e de 31 a 36 com Ensino Superior.
ecivil instrucao filhos sal idadea idadem rp 1 solteiro F NA 4.00 26 3 interior 2 casado F 1 4.56 32 10 capital 3 casado F 2 5.25 36 5 capital 5 solteiro F NA 6.26 40 7 outra 6 casado F 0 6.66 28 0 interior 7 solteiro F NA 6.86 41 0 interior 8 solteiro F NA 7.39 43 4 capital 12 solteiro F NA 8.46 27 11 capital 14 casado F 3 8.95 44 2 outra 18 casado F 2 9.80 39 7 outra 23 solteiro F NA 12.00 41 0 outra 27 solteiro F NA 13.85 46 7 outra 4 solteiro M NA 5.73 20 10 outra 9 casado M 1 7.59 34 10 capital 10 solteiro M NA 7.44 23 6 outra 11 casado M 2 8.12 33 6 interior 13 solteiro M NA 8.74 37 5 outra 15 casado M 0 9.13 30 5 interior 16 solteiro M NA 9.35 38 8 outra 17 casado M 1 9.77 31 7 capital 20 solteiro M NA 10.76 37 4 interior 21 casado M 1 11.06 30 9 outra 22 solteiro M NA 11.59 34 2 capital 25 casado M 2 13.23 32 5 interior 26 casado M 2 13.60 35 0 outra 28 casado M 0 14.69 29 8 interior 29 casado M 5 14.71 40 6 interior 30 casado M 2 15.99 35 10 capital 32 casado M 1 16.61 36 4 interior 35 casado M 2 19.40 48 11 capital 19 solteiro S NA 10.53 25 8 interior 24 casado S 0 12.79 26 1 outra 31 solteiro S NA 16.22 31 5 outra 33 casado S 3 17.26 43 7 capital 34 solteiro S NA 18.75 33 7 capital 36 casado S 3 23.30 42 0 interior observações de 1 a 12 em dadosord dadosord observações de 13 a 30 em dadosord observações de 31 a 36 em dadosord
Medidas resumo por nível de instrução Vamos começar descrevendo o comportamento dos salários por nível de instrução, a partir das estatísticas resumo dentro de cada nível. sink(“a:\\relatorio1.txt”) #gera um relatório no disquete “Comportamento de salários para Ensino Fundamental” summary(dadosord$sal[1:12]) “Desvio-padrão:” sd(dados$sal[1:12]) “Comportamento de salários para Ensino Médio” summary(dadosordsal[13:30]) “Desvio-padrão:” sd(dadosord$sal[13:30]) “Comportamento de salários para Ensino Superior” summary(dadosord$sal[31:36]) “Desvio-padrão:” sd(dadosord$sal[31:36]) sink() #fecha o relatório
Lista de comandos • source(“http://www.im.ufrj.br/~flavia/aed06/instrusal.txt”) • O conteúdo será gravado no arquivo relatorio1.txt no disquete no drive A • Se você preferir, edite o arquivo instrusal.txt e na primeira linha altere o endereço e/ou o nome do arquivo que conterá os resultados.
[1] "Comportamento de salários para Ensino Fundamental" Min. 1st Qu. Median Mean 3rd Qu. Max. 4.000 6.008 7.125 7.837 9.163 13.850 desvio-padrão: 2.956464 [1] "Comportamento de salários para Ensino Médio" Min. 1st Qu. Median Mean 3rd Qu. Max. 5.730 8.838 10.910 11.530 14.420 19.400 desvio-padrão: 3.715144 [1] "Comportamento de salários para Ensino Superior" Min. 1st Qu. Median Mean 3rd Qu. Max. 10.53 13.65 16.74 16.47 18.38 23.30 desvio-padrão: 4.502438
Resumindo Resumindo nível fundamental médio superior mínimo 4,00 5,73 10,53 Q1 6,01 8,84 13,65 Q2 7,12 10,91 16,74 Q3 9,16 14,42 18,38 máximo 13,85 19,40 23,30 média 7,84 11,53 16,47 desvio padrão 2,96 3,72 4,50 Percebe-se claramente que as medidas de posição crescem conforme aumenta o nível de instrução.
Gráfico de salário versus nível de instrução Quando se dispõe de um par de variáveis, onde uma é qualitativa e outra é quantitativa, é comum representar o comportamento conjunto delas usando-se boxplots das distribuições das variáveis quantitativas, segundo as respostas da variável qualitativa. No R podemos usar a função já conhecida plot indi- cando primeiro o vetor que contém a variável qualitativa.
plot(dados$instrucao,dados$sal,main="Box-plots de salário segundo o nível de instrução") Gráfico de salário versus nível de instrução (1)
Comportamento dos salários sem discriminar por nível de instrução (todos) summary(dadosord$sal) Min. 1st Qu. Median Mean 3rd Qu. Max. 4.000 7.553 10.160 11.120 14.060 23.300 sd(dados$sal) [1] 4.587458 nível todos fundamental médio superior mínimo 4,00 4,00 5,73 10,53 Q1 7,55 6,01 8,84 13,65 Q2 10,16 7,12 10,91 16,74 Q3 14,06 9,16 14,42 18,38 máximo 23,30 13,85 19,40 23,30 média 11,12 7,84 11,53 16,47 desvio padrão 4,59 2,96 3,72 4,50 Ver tabela 2
boxplot(dados$sal,dadosord$sal[1:12],dadosord$sal[13:30],dadosord$sal[31:36],names=c("Todos","F","M","S"))boxplot(dados$sal,dadosord$sal[1:12],dadosord$sal[13:30],dadosord$sal[31:36],names=c("Todos","F","M","S"))
Comentário • É possível perceber, a partir destes dados e gráficos, uma dependência entre salário e nível de instrução: o salário tende a ser maior conforme é maior a escolaridade do empregado.
Exemplo 2: salário versus região de procedência • Vamos agora analisar o comportamento dos salários dentro de cada região de procedência, ou seja, investigar o comportamento conjunto das variáveis cujos nomes na base de dados são sal e rp. • Para facilitar, vamos primeiro ordenar os dados numa nova base (dadosrp) pela variável rp.
Ordenando por Região de Procedência • indice=order(dados$rp) • dadosrp=dados[indice,] • table(dados$rp) capital interior outra 11 12 13 Logo, em dadosrp as observações de 1 a 11 são de empregados cuja procedência é a capital, de 12 a 23 é o interior e de 24 a 36 são outras regiões.
Medidas resumo por região de procedência sink(“a:\\relatoriorp.txt”) #abre arquivo que conterá os resultados “Comportamento de salários para Capital” summary(dadosrp$sal[1:11]) ‘’Desvio-padrão:’’ sd(dadosrp$sal[1:11]) “Comportamento de salários para Interior” summary(dadosrp$sal[12:23]) ‘’Desvio-padrão:’’ sd(dadosrp$sal[12:23]) “Comportamento de salários para Outras” summary(dadosrp$sal[24:36]) ‘’Desvio-padrão:’’ sd(dadosrp$sal[24:36]) sink() # fecha arquivo
Lista de comandos • source(“http://www.im.ufrj.br/~flavia/aed06/rpsal.txt”) • O conteúdo será gravado no arquivo relatoriorp.txt no disquete no drive A • Se você preferir, edite o arquivo rpsal.txt e na primeira linha altere o endereço e/ou o nome do arquivo que conterá os resultados.
[1] "Comportamento de salários para Capital" Min. 1st Qu. Median Mean 3rd Qu. Max. 4.56 7.49 9.77 11.46 16.63 19.40 desvio-padrão: 5.476653 [1] "Comportamento de salários para Interior" Min. 1st Qu. Median Mean 3rd Qu. Max. 4.000 7.805 10.650 11.550 14.700 23.300 desvio-padrão: 5.296055 [1] "Comportamento de salários para Outras" Min. 1st Qu. Median Mean 3rd Qu. Max. 5.73 8.74 9.80 10.45 12.79 16.22 desvio-padrão: 3.145453
Gráfico de salário versus região de procedência plot(dados$rp,dados$sal,main="Box-plots de salário segundo a região de procedência")
Comportamento dos salários sem discriminar por nível de instrução (todos) boxplot(dados$sal,dadosrp$sal[1:11],dadosrp$sal[12:23], dadosrp$sal[24:36],names=c("Todos",”Capital",”Interior”, ”Outras"))
Comentário • É possível perceber, a partir destes dados e gráficos que não há uma relação bem definida entre salário e região de procedência. • Os salários parecem estar mais relacionados com o nível de instrução do que com a região de procedência.
Problema • Como quantificar a dependência entre estas variáveis? • No caso de duas variáveis quantitativas usa-se a correlação. • No caso de duas variáveis qualitativas usa-se o qui-quadrado. • O que usar no caso de uma variável qualitativa e uma quantitiativa?
Medida de dependência: uma variável qualitativa e uma quantitativa • Vamos usar as variâncias dentro de cada categoria de resposta da variável qualitativa e a variância global, para definir uma medida de associação entre uma variável qualitativa e uma quantitativa.
Medida de dependência: uma variável qualitativa e uma quantitativa (1) • Se a variância dentro de cada categoria de resposta for pequena e menor do que a global, significa que a variável qualitativa melhora a capacidade de previsão da variável quantitativa e, portanto, existe uma relação entre as duas variáveis. Ver tabela 1
Instrução versus salário Região de procedência versus salário Parece haver uma melhora na capacidade de previsão de salário, segundo o nível de instrução. Não parece haver melhora na capacidade de previsão de salário, segundo a região de procedência.
Medida de dependência: uma variável qualitativa e uma quantitativa (2) • Observe que para as variáveis salário e instrução, as variâncias dentro de cada nível são menores do que a variância global: var(dados$sal) # variância global de salários 21.04477 var(dadosord$sal[1:12]) #var. de salários para Ens. Fund. 8.740679 var(dadosord$sal[13:30]) #var. de salários para Ens. Médio 13.80230 var(dadosord$sal[31:36]) #var. de salários para Ens. Sup. 20.27195
Medida de dependência: uma variável qualitativa e uma quantitativa (3) • Para as variáveis sal e rp, vemos que as variâncias dentro de cada região de procedência não são menores do que a global: var(dados$sal) # variância global de salários 21.04477 var(dadosrp$sal[1:11]) #var. de salários para capital 29.99373 var(dadosrp$sal[12:23]) #var. de salários para interior 28.0482 var(dadosrp$sal[24:36]) #var. de salários para outra 9.893877
Medida de dependência: uma variável qualitativa e uma quantitativa (4) • Utiliza-se a média das variâncias, porém ponderada pelo número de observações em cada categoria, ou seja, Essa variância média será comparada à variância global.
Medida de dependência: uma variável qualitativa e uma quantitativa (5) número de categorias de resposta da variável qualitativa número de observações na i-ésima categoria de resposta variância dentro da i-ésima categoria de resposta, i=1,...,k. =n (total de observações. Nos dois exemplos trabalhados k foi igual a 3: instrução (F,M,S) e região de procedência (capital,interior,outra).
Variância dentro de cada grupo Se xij representa o salário do j-ésimo indivíduo da i-ésima categoria de instrução, i=1,2,3 e j=1,...,ni onde ni é o total de indivíduos com escolaridade de nível i, a variância dentro do i-ésimo nível de escolaridade Vari(S) é dada por representa a média de salário para o nível de escolaridade i. onde
Continuação Fórmula para o cálculo de
Variância Global é o número total de observações representa a média global.
Medida de dependência: uma variável qualitativa e uma quantitativa (5) onde Var(S) é a variância global e é a média ponderada das variâncias dentro de cada categoria da variável qualitativa.
Portanto, tal que
Medida de dependência: uma variável qualitativa e uma quantitativa (6) O grau de associação entre as duas variáveis é definido como o ganho relativo na variância, obtido pela introdução da variável qualitativa. A medida é baseada na decomposição de somas de quadrados vista anteriormente.
Medida de dependência: uma variável qualitativa e uma quantitativa (7) Se a média das variâncias for muito parecida com a variância global, o ganho relativo na variância será pequeno. Já se a média das variâncias for bem menor do que a variância global, o ganho relativo na variância será grande.
Medida de dependência: uma variável qualitativa e uma quantitativa (7) Observe que 0R2 1. O símbolo R2 é usual em análise de variância e regressão, tópicos que vão ser abordados nas disciplinas Análise de Regressão e Planejamento de Experimentos. Quanto mais próximo de 1 for o valor de R2, maior será a associação.
Cálculo de R2 Calcule o R2 para o par salário e instrução. s=35*var(dados$sal)/36 #variância global de salários com denominador n s1=11*var(dadosord$sal[1:12])/12 #var. sal. Ens. Fund. s2=17*var(dadosord$sal[13:30])/18 #var. sal. Ens. Médio s3=5*var(dadosord$sal[31:36])/6 #var.sal. Ens. Superior sbarra=(12*s1+18*s2+6*s3)/36 #média pond. variâncias R2=(s-sbarra)/s #cálculo de R2 R2 0.4133 Dizemos que 41,33% da variação total do salário é explicada pela variável instrução.
Tabela para o cálculo de R2 Variação residual Variação total
Cálculo de R2 Calcule o R2 para o par salário e região de procedência. s=35*var(dados$sal)/36 #variância global de salários com denominador n s1=10*var(dadosrp$sal[1:11])/11#capital s2=11*var(dadosrp$sal[12:23])/12#interior s3=12*var(dadosrp$sal[24:36])/13#outra sbarra=(11*s1+12*s2+13*s3)/36 R2=(s-sbarra)/s R2 0.0127 Dizemos que apenas 1,27% da variabilidade dos salários é explicada pela região de procedência.