Análise Exploratória de Dados R – LIG/10
Objetivos Análise de duas variáveis qualitativas: obter a tabela de contingência entre duas variáveis qualitativas; calcular tabelas derivadas da tabela de freqüências absolutas (distribuição conjunta, distribuições marginais-linha e coluna); calcular (definir) medida de associação entre duas variáveis qualitativas.
Exemplo: pesquisa de mercado Dados de telemarketing da AT&T (companhia de telefonia americana) Fonte: James W. Watson (1986) (Splus). Esta base de dados contém informação sobre 1000 domicílios (linhas). As 10 variáveis (colunas) incluem informações demográficas e informação específica sobre os serviços de telefonia no domicílio.
Exemplo (continuação) Nome, descrição e código das variáveis: 1) cia – fator indicando se o domicílio usa os serviços de longa distância da companhia AT&T (ATT) ou de outras companhias (OCC). 2) renda – fator ordenado indicando o nível de renda do domicílio. Os níveis são: <7.5, 7.5|-15, 15|-25, 25|-35, 35|-45, 45|-75, >=75.
Nome, descrição e código das variáveis (cont.): 3) mudancas – fator ordenado indicando o número de vezes que o dono do domicílio mudou-se nos 10 anos precedentes. Os níveis são: 0, 1, 2, 3, 4, 5, 7 e 10. 4) idade – fator ordenado indicando a faixa etária do entrevistado. Os níveis são: 18-24, 25-34, 35-44, 45-54, 55-64, 65+.
Nome, descrição e código das variáveis (cont.): 5) instrucao – fator ordenado indicando o nível de escolaridade do entrevistado. Os níveis são: < HS (ensino fundamental), HS (ensino médio), Voc, Coll, BA e > BA (Pós-graduação). 6) emprego – fator indicando o tipo de emprego do entrevistado. Os níveis são: F, P, R, S, H, U e D. 7) uso – vetor numérico fornecendo o uso médio mensal de telefone do domicílio.
Nome, descrição e código das variáveis (cont.): 8) nonpub – fator indicando se o domicílio possui um número de telefone não listado. 9) plano – fator indicando se o domicílio participou de um plano especial da AT&T, antes da atual política de serviços de telefonia. 10) cartao – fator indicando se o domicílio possuiu um serviço de cartão da AT&T, antes da atual política de serviços de telefonia.
Nome, descrição e código das variáveis (cont.): Os níveis das variáveis nonpub, plano e cartao são Y(Sim), N(Não) e NA(Não disponível). Os dados estão disponíveis no arquivo telemark.txt. dados<-read.table(“m:\\aed\\telemark.txt”,header=T)
Atividade 1 Obter a tabela de dupla entrada das variáveis cia e plano. Vimos que para obter os totais marginais das respostas por variável, podemos usar o comando table: > table(dados$cia) ATT OCC 504 496 >table(dados$plano) N Y 919 62
Tabela de contingência Para obter a tabela de dupla entrada, também usamos o comando table: table(dados$cia,dados$plano) N Y ATT 454 48 OCC 465 14 Obs.: Dados não disponíveis não são levados em consideração.
Freqüências relativas Para dispor as freqüências relativas em relação ao total, basta pedir round(table(dados$cia,dados$plano)/sum(table(dados$cia,dados$plano)),digits=3) N Y ATT 0.463 0.049 OCC 0.474 0.014
Perfis-linha Para obter a distribuição relativa ao total de cada linha, podemos definir uma matriz x com uma coluna e uma linha a mais que a tabela obtida, para representar a linha e a coluna de totais. Neste exemplo, podemos definir x<-matrix(0,3,3) #x recebe uma matriz nula 3 por 3.
Perfis-linha (cont.) x[1:2,1:2]<-table(dados$cia,dados$plano) for (i in 1:2) {x[i,3]<-sum(x[i,])} for (i in 1:2) {x[3,i]<-sum(x[,i])} x[3,3]<-sum(x[1:2,1:2]) N Y total ATT 454 48 502 OCC 465 14 479 total 919 62 981
Perfis-linha Para obter os perfis-linha, basta pedir pl<-x e for (i in 1:3) {for (j in 1:3) { pl[i,j]<-pl[i,j]/pl[i,3]}} round(pl,digits=2) N Y total ATT 0.90 0.10 1 OCC 0.97 0.03 1 Total 0.94 0.06 1
Comentário Observe que independentemente da companhia, 94% não tinham o plano especial da AT&T e 6% tinham. Quando olhamos por companhia temos 90% e 10% para a AT&T e 97% e 3% para outras companhias. N Y total ATT 0.90 0.10 1 OCC 0.97 0.03 1 Total 0.94 0.06 1
Atividade 2 Obtenha os perfis-coluna para estas variáveis. pc<-x e for (i in 1:3) {for (j in 1:3) { pc[j,i]<-pc[j,i]/pc[3,i]}} round(pc,digits=2)
Perfis-coluna N Y total ATT 0.494 0.774 0.512 OCC 0.506 0.226 0.488 Percebe-se que o perfil-coluna de totais (51%-ATT e 49%-OCC) para as companhias é parecido com o perfil de quem não possuiu o tal plano (49%-ATT e 51%-OCC). Mas, o perfil de totais é bem diferente do perfil de quem possuiu o plano (77%-ATT e 23%-OTT). Volta para exercício.
COMENTÁRIO Desta última observação, podemos perceber que pode haver uma associação entre estas variáveis (cia e plano): o fato de ter possuído o plano da AT&T parece favorecer o domicílio a usar o serviço de longa distância da companhia AT&T(77%) e, caso contrário, não há prevalência da AT&T(49%).
Problema Como quantificar a associação entre duas variáveis qualitativas? Antes de responder esta pergunta, obtenha a tabela de contingência para cia e idade. Depois, obtenha os perfis-linha e coluna da tabela obtida.
Companhia versus idade 18-24 25-34 35-44 45-54 55-64 65+ ATT 38 129 98 75 67 82 OCC 23 85 105 77 86 102 x<-matrix(0,3,7) x[1:2,1:6]<-table(dados$cia,dados$idade) for (i in 1:2) {x[i,7]<-sum(x[i,])} for (i in 1:7) {x[3,i]<-sum(x[,i])}
Companhia versus idade > x 18-24 25-34 35-44 45-54 55-64 65+ total ATT 38 129 98 75 67 82 489 OCC 23 85 105 77 86 102 478 total 61 214 203 152 153 184 967
Perfis-linha Distribuição das idades por companhia: pl<-x for (i in 1:7) {for (j in 1:3) {pl[j,i]<-pl[j,i]/pl[j,7]}} 18-24 25-34 35-44 45-54 55-64 65+ total ATT 0.078 0.264 0.20 0.153 0.137 0.168 1 OCC 0.048 0.178 0.22 0.161 0.180 0.213 1 total 0.063 0.221 0.21 0.157 0.158 0.190 1 Obs.: Podemos perceber que, entre os clientes da AT&T, 54% estão entre os mais jovens, e entre os de outras companhias (OCC), 55% estão entre os mais velhos. Isto indica alguma associação entre estas variáveis.
Perfis-coluna Distribuição marginal das companhias (ATT e OCC) por faixa de idade: pc<-x for (i in 1:3) {for (j in 1:7) {pc[i,j]<-pc[i,j]/pc[3,j]}} 18-24 25-34 35-44 45-54 55-64 65+ total ATT 0.623 0.603 0.483 0.493 0.438 0.446 0.506 OCC 0.377 0.397 0.517 0.507 0.562 0.554 0.494 total 1.000 1.000 1.000 1.000 1.000 1.000 1.000
Medida de associação Se as duas variáveis em estudo são independentes, espera-se que a distribuição marginal de uma delas (sem discriminar por valores da outra) seja igual às distribuições condicionadas por valores da outra. A partir desta idéia, podemos construir uma medida de associação entre duas variáveis qualitativas, conhecida como Qui-quadrado.
Exemplo: Suponha a seguinte tabela de contingência sexo Curso 1 Estatística Curso 2 Engenharia total Homens 40 (40%) 200 (67%) 240 (60%) Mulheres 60 100 (33%) 160 (100%) 300 400
Curso versus sexo Se sexo e matrículas nos cursos de Engenharia e Estatística fossem independentes, esperaria-se ter os seguintes perfis-coluna: sexo Curso 1 Estatística Curso 2 Engenharia total Homens 60% Mulheres 40% 100%
Valores esperados sob independência Como são 100 alunos em Estatística e 300 alunos em Engenharia, (240 do sexo masculino e 160 do sexo feminino) esperaria-se, em caso de independência, ter a seguinte tabela de contingência: sexo Curso 1 Estatística Curso 2 Engenharia total Homens 60 180 240 Mulheres 40 120 160 100 300 400
Tabela com as freqüências observadas: sexo Curso 1 Estatística Curso 2 Engenharia total Homens 40 200 240 Mulheres 60 100 160 300 400 Tabela com as freqüências esperadas no caso de não associação: sexo Curso 1 Estatística Curso 2 Engenharia total Homens 60 180 240 Mulheres 40 120 160 100 300 400
Qui-quadrado O qui-quadrado é uma medida baseada na comparação entre os valores observados, que aqui denotaremos por oij e os valores esperados que denotaremos por eij. Para cada célula da tabela de contingência calculamos:
Tabela com as freqüências observadas: 160 100 60 Mulheres 240 200 40 Homens total Curso 2 Engenharia Curso 1 Estatística sexo 400 300 Tabela com as freqüências esperadas no caso de não associação: 160 120 40 Mulheres 240 180 60 Homens total Curso 2 Engenharia Curso 1 Estatística sexo 400 300 100
Qui-quadrado O qui-quadrado é, então, onde l representa o número de categorias de resposta da primeira variável e c, representa o número de categorias de resposta da segunda variável.
Cálculo do qui-quadrado do exemplo dos estudantes de Estatística e Engenharia
Cálculo do Qui-quadrado usando o R Há no R, uma função específica que calcula o qui-quadrado de uma tabela de contingência. Interpretação: se a hipótese de não-associação entre as variáveis for verdadeira, o valor do qui-quadrado deve estar próximo de zero. Quanto maior for o valor do qui-quadrado, mais forte é a associação entre as variáveis.
Cálculo do qui-quadrado usando o R Suponha que x seja a matriz contendo os dados da tabela dos estudantes: x<-matrix(0,2,2) x[1,1]<-40 x[1,2]<-200 x[2,1]<-60 x[2,2]<-100
Cálculo do Qui-quadrado usando o R Qui<-chisq.test(x,correct=F) Pearson's Chi-squared test data: x X-squared = 22.2222 (qui-quadrado), df = 1, (graus de liberdade) p-value = 2.428e-06 (P-valor) Notação científica: 0,000002428 Pode ser usado como uma medida de avaliação da magnitude do qui-quadrado: - p-value<=0,05, indica que o qui-quadrado é grande, ou seja, indica uma possível associação entre as variáveis; -p-value>0,05, indica não associação ou associação fraca entre as variáveis.
Comentários do exemplo De acordo com o slide anterior, verifica-se que o Qui-quadrado obtido é alto, o que indica a presença de associação entre curso e sexo. Mais ainda, pela análise das tabelas verificamos que essa associação ocorre de tal modo que no curso de Estatística a maioria (60%) dos estudantes tende a ser do sexo feminino e na Engenharia, a maioria (67%) tende a ser do sexo masculino.
Medidas derivadas do qui-quadrado Pearson definiu uma medida de associação baseada no qui-quadrado e chamada de coeficiente de contingência, dado por: onde n é o tamanho da amostra.
Medidas derivadas do qui-quadrado Interpreta-se o coeficiente de contingência de maneira análoga ao coeficiente de correlação. Porém, o coeficiente de contingência não varia entre 0 e 1. O valor máximo de C depende de l (número de categorias de resposta da primeira variável) e c (número de categorias de resposta da segunda variável).
Medidas derivadas do qui-quadrado Outro coeficiente é dado por que pode atingir o máximo igual a 1, quando l=c.
Coeficientes para os dados do exemplo curso versus sexo qui<-22.22222 CP<-sqrt(qui/(qui+sum(x))) CP [1] 0.2294157 TC<-sqrt((qui/sum(x))/(1*1)) TC [1] 0.2357022
Atividade 3: Calcule o qui-quadrado, e os coeficientes C e T, das seguintes tabelas de contingência: 1) cia e plano; 2) cia e idade; 3) cia e cartao; 4) cia e nonpub; 5) cia e renda; 6) cia e instrucao; 7) cia e emprego.
3.1) cia versus plano N Y ATT 454 48 OCC 465 14 x<-table(dados$cia,dados$plano) N Y ATT 454 48 OCC 465 14 chisq.test(table(dados$cia,dados$plano),correct=F) Pearson's Chi-squared test data: table(dados$cia, dados$plano) X-squared = 18.2476, df = 1, p-value = 1.940e-05 qui<-18.2476 CP<-sqrt(qui/(qui+sum(x))) TC<-sqrt((qui/sum(x))/(1*1)) CP [1] 0.1351345 TC [1] 0.1363856
Companhia versus plano Como o valor de Qui-quadrado foi 18,2476, com um P-valor de 0,0000194 (bem menor do que 0,05), isso indica presença de associação entre as variáveis Companhia e Plano Vimos que entre os que já participaram do plano, a maioria (77%) usa os serviços de longa distância da AT&T. Entre os que não participaram do plano, a distribuição fica mais equilibrada, com 49% para AT&T e 51% para outras companhias. Ver tabela.
3.2) cia versus idade x<-table(dados$cia,dados$idade) 18-24 25-34 35-44 45-54 55-64 65+ ATT 38 129 98 75 67 82 OCC 23 85 105 77 86 102 chisq.test(table(dados$cia,dados$idade),correct=F) Pearson's Chi-squared test data: table(dados$cia, dados$idade) X-squared = 17.4135, df = 5, p-value = 0.003779 > qui<-17.4135 > CP<-sqrt(qui/(qui+sum(x))) > TC<-sqrt((qui/sum(x))/(1*5)) > CP [1] 0.1330008 > TC [1] 0.06001293
3.3) cia versus cartao x<-table(dados$cia,dados$cartao) N Y ATT 329 175 OCC 373 106 chisq.test(table(dados$cia,dados$cartao),correct=F) Pearson's Chi-squared test with Yates' continuity correction data: table(dados$cia, dados$cartao) X-squared = 19.0774, df = 1, p-value = 1.255e-05 > qui<-19.0774 > CP<-sqrt(qui/(qui+sum(x))) > TC<-sqrt((qui/sum(x))/(1*1)) > CP [1] 0.1379777 > TC [1] 0.1393102
3.4) cia versus nonpub x<-table(dados$cia,dados$nonpub) chisq.test(table(dados$cia,dados$nonpub),correct=F) Pearson's Chi-squared test data: table(dados$cia, dados$nonpub) X-squared = 15.1792, df = 1, p-value = 9.777e-05 > qui<-15.1792 > x N Y ATT 384 119 OCC 424 69 > CP<-sqrt(qui/(qui+sum(x))) > TC<-sqrt((qui/sum(x))/(1*1)) > CP [1] 0.1225210 > TC [1] 0.1234510
3.5 Companhia versus renda chisq.test(table(dados$cia,dados$renda),correct=F) Pearson's Chi-squared test data: table(dados$cia, dados$renda) Qui-quadrado = 11,1541, df = 6, P-valor = 0,08373 > 0,05 Logo, não parece haver associação entre companhia e renda.
3.6 Companhia e Instrução chisq.test(table(dados$cia,dados$instrucao),correct=F) Pearson's Chi-squared test data: table(dados$cia, dados$instrucao) Qui-quadrado = 28,623, df = 5, p-valor = 0,00002749
3.7 Companhia e emprego chisq.test(table(dados$cia,dados$emprego),correct=F) Pearson's Chi-squared test data: table(dados$cia, dados$emprego) Qui-quadrado = 13,4602, df = 6, p-valor = 0,03628