Plotando gráficos de caixas com dados sumarizados de média, mediana e quartis com R

Fala galera, dentro da área de estudo da Estatística Descritiva tem um conjunto de valores sumarizados que são utilizados com bastante frequência por analistas dos mais diversos ramos. Cálculos de Média, Mediana, 1º Quartil, 3º Quartil, Mínimo valor, Máximo valor, são alguns dados sumarizados que podem ser facilmente calculados e analisados nos nossos aplicativos.

Quando estamos estudando R, aprendemos a usar o método SUMMARY para olhar estes dados estatísticos na nossa amostragem. Quando este método é disparado contra um dataframe, o R calcula estes sumarizadores nas colunas numéricas e faz algumas outras amostragens em colunas de outros tipos de dados. Vamos focar na coluna numérica e então ver estes valores tanto no resultado do método summary quanto em um gráfico de caixas.

Para este estudo, vamos usar novamente uma base de dados pública da Universidade da Califórnia. Você pode ver mais detalhes desta base de dados no link: http://archive.ics.uci.edu/ml/datasets/Contraceptive+Method+Choice É um dataset que mostra algumas informações sobre a idade da mulher e uso de métodos contraceptivos (e algumas outras variáveis). O objetivo não é entrar em detalhes sobre o resultado do estudo, mas sim, entender estes dados estatísticos e como fazer gráficos com eles em R.

Primeira coisa é colocar a URL para baixar os dados, e então, colocar isso num Dataframe.

Carregar os dado no dataframe

url <- "http://archive.ics.uci.edu/ml/machine-learning-databases/cmc/cmc.data"
data <- read.csv(url, sep=",")

summary(data)

 

Este método summary apresenta o seguinte resultado:

 

Reparem que os dados são sumarizados através dos métodos:

  • Min (Mínimo valor)
  • 1st qu. (1º Quartil)
  • Median (Mediana)
  • Mean (Média)
  • 3rd Qu. (3º Quartil)
  • Max (Máximo valor)

Estes valores são calculados automaticamente com base em cada valor numérico da coluna. Porém, com o nome genérico que o R colocou em cada coluna, não é tão simples saber o que cada coluna representa. Voltando ao site da UCI e lendo os dados relativos à pesquisa, temos as colunas na seguinte ordem:

  • Wife’s age (numerical)
  • Wife’s education (categorical) 1=low, 2, 3, 4=high
  • Husband’s education (categorical) 1=low, 2, 3, 4=high
  • Number of children ever born (numerical)
  • Wife’s religion (binary) 0=Non-Islam, 1=Islam
  • Wife’s now working? (binary) 0=Yes, 1=No
  • Husband’s occupation (categorical) 1, 2, 3, 4
  • Standard-of-living index (categorical) 1=low, 2, 3, 4=high
  • Media exposure (binary) 0=Good, 1=Not good
  • Contraceptive method used (class attribute) 1=No-use, 2=Long-term, 3=Short-term

Vamos colocar estes nomes traduzidos no dataframe e facilitar nossa manipulação. Para isso, veja o código abaixo:

colunas <- c("IdadeEsposa","EducacaoEsposa"
            ,"EducacaoMarido","Filhos"
            ,"ReligiaoEsposa","EsposaTrabalha"
            ,"OcupacaoMarido","PadraoDeVida"
            ,"ExposicaoMidia","MetodoContraceptivo")

colnames(data) <- colunas
summary(data)

 

Analisando novamente o método summary, veja que agora temos cara coluna com um nome apropriado.

Plotando estes dados no gráfico

Para plotar estes dados em um gráfico, é possível usar o Gráfico de Caixa, que representa todos estes valores em uma única representação gráfica visual. Em R o método chamado é o Boxplot, vamos ver isso no código abaixo:

boxplot(IdadeEsposa~MetodoContraceptivo,
        data=data,
        col=unique(data$MetodoContraceptivo)+1,
        ylab="Idade Mulher",
        xlab="Método Contraceptivo",
        main="Boxplot de uso de métodos contraceptivos"
)

 

O resultado desta plotagem é esse gráfico abaixo:

O gráfico foi dividido no eixo X pelos métodos contraceptivos 1 (Não Usa), 2 (Uso de Longo Tempo) e 3 (Uso de Curto Tempo). Todos eles analisando a idade da mulher (no eixo Y) que o consumiu. Porém, quando olhamos o método summary ele fez isso com os dados de todo o dataframe e não separado por tipo de método contracpetivo, igual foi plotado no gráfico.

Para fazer esta separação, vamos criar outros três dataframes cada um baseado em um tipo de método contraceptivo, e então olhar os dados sumarizados destes novos dataframes. Para isso, veja o código abaixo:

data1 <- subset(data, MetodoContraceptivo==1)
data2 <- subset(data, MetodoContraceptivo==2)
data3 <- subset(data, MetodoContraceptivo==3)

summary(data1$IdadeEsposa)
summary(data2$IdadeEsposa)
summary(data3$IdadeEsposa)

 

O resultado destes dataframes só para a coluna IdadeEsposa são os seguintes:

Comparando estes valores do método summary com o apresentado no gráfico de caixas, verão que os dados são os mesmos!

Caso queira saber um pouco mais sobre a Estatística Descritiva, dê uma olhada neste link: https://pt.wikipedia.org/wiki/Estat%C3%ADstica_descritiva

E também se quiser saber mais sobre o Gráfico de Caixa, use este link: https://pt.wikipedia.org/wiki/Diagrama_de_caixa

Compartilhe o post:
RSS
Follow by Email
Facebook
YOUTUBE
YOUTUBE
LinkedIn

Comentários

comments