Frequência cruzada no R

Analisar as variáveis da sua base é tarefa fundamental para qualquer analista de dados, cientista de dados, estatístico, etc. No R, é possível fazer isso usando o pacote Hmisc. Outra forma fácil de se fazer isso, com uma saída levemente diferente da explicada anteriormente, é utilizar a função table(). Vamos fazer algumas análises utilizando os dados de mtcars, base que já vem dentro do R. Primeiro, vamos verificar quantos carros temos para cada quantidade de cilindros:

table(mtcars$cyl)

Simples, certo? Não tem nenhum segredo. Para obter a frequência de uma variável, você pode simplesmente aplicar a função nela. Agora, e se você quiser saber uma frequência cruzada? Por exemplo, quantos carros de 4 cilindros são automáticos e quantos são manuais? Bom, a resposta, creio eu que seja intuitiva para todos. Basta incluir mais uma variável na função:

table(mtcars$cyl, mtcars$am)

Como você pode ver, dos 11 carros com 4 cilindros, temos 8 manuais e 3 automáticos.

Ok, e se eu quiser saber quantos carros com 4 cilindros e manuais possuem motor V-shaped? Posso incluir mais uma variável na função? Com certeza!

table(mtcars$cyl, mtcars$am, mtcars$vs)

Um exemplo mais elaborado, que eu adaptei do R-Bloggers (site fenomenal!), pode ser visto abaixo. Nele, primeiro construímos um conjunto de dados de 100 pacientes num determinado teste médico:

dados_medicos = data.frame(paciente = 1:100,
Idade = rnorm(100, mean = 60, sd = 6),
Tratamento = gl(2, 50,labels = c("Tratamento", "Controle")),
Centro = sample(paste("Centro", LETTERS[1:5]), 100, replace = TRUE))

Em seguida, vamos verificar quantos pacientes estão em cada centro médico:

table(dados_medicos$Centro)

Captura de Tela 2018-08-18 às 16.15.43

Como você pode ver, temos 23 pacientes no Centro A, 17 no B, 15 no C, 19 no D e 26 no E. Se quiséssemos ver quantos pacientes no grupo Tratamento ou Controle temos em cada centro, bastaria incluir esta variável na função table():

table(dados_medicos$Centro, dados_medicos$Tratamento)

Captura de Tela 2018-08-18 às 16.15.37

Podemos ver, por exemplo, que no Centro A temos 9 pacientes no grupo Tratamento e 14 no grupo de Controle.

Outra coisa que pode ser feita, é verificar quantos missing temos para alguma das variáveis. Vamos, propositalmente, imputar alguns missing para a variável Tratamento:

is.na(dados_medicos$Tratamento) = c(10,15,20,35)

Agora, vamos verificar a frequência de missing no campo Tratamento:

table(is.na(dados_medicos$Tratamento))

Captura de Tela 2018-08-18 às 16.15.28

Note que nossa lógica está pergundando quantos Tratamento “is na”, ou seja, quantos são NA (=missing). Na resposta temos 96 FALSE, ou seja, 96 não são missing, e outros 4 TRUE, ou seja, são missing. Mas e se eu quiser verificar quantos missing temos em cada centro? Aí você deve combinar o código anterior com a frequência dos centros:

table(is.na(dados_medicos$Tratamento), dados_medicos$Centro)

Captura de Tela 2018-08-18 às 16.15.22

Temos então 2 missing no Centro A, 1 no centro D e 1 no centro E.

Por fim, e se eu quiser saber a frequência de pacientes idosos nós temos?

Neste caso, utilizamos table com a variável que queremos analisar e a condição desejada. Se considerarmos que idoso é acima de 60 anos, queremos idade e maior que 60:

table(dados_medicos$Idade > 60)

Captura de Tela 2018-08-18 às 16.15.16

Novamente, a resposta veio com TRUE e FALSE. Como a nossa lógica pedia maiores que 60, entendemos que 48 possuem menos de 60 e 52 possuem mais.

Lembre-se ainda, que se fossem variáveis contínuas, você poderia fazer um gráfico legal, vendo a relação de cilindros com câmbio automático/manual, utilizando cores diferentes para cada tipo de motor no gráfico. Porém, como são variáveis que representam categorias, o gráfico não vai ficar legal. Se você estiver querendo fazer gráficos desse tipo, dê uma passada no post Gráfico no R, colorindo pontos por categoria.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s