Por um mundo maior que o gráfico de pizza

Fazer uma nova visualização de dados é com tentar fazer um novo filme do Jean-Luc Godard ou uma nova intervenção do Andy Warhol. Tente começar pelo desenvolvimento de uma narrativa (contar uma história) com ajuda do R. Conte de maneira diferente daquela que a polícia ou que um funcionário público faria. Gráficos de pizza são proibidos. Tente dizer algo diferente. Por exemplo, bom você acordou tomou seu café, mas você sabe que não é somente isso. Tente saber o que é este ‘não há somente isto’.

Inteligencia Estatística inteligencia estatística é a capacidade que você desenvolve de gerar uma informação a partir da análise de uma base de dados para uma comunicação efetiva.

O Excel e o SPSS também são proibidos. Estes softwares são como estradas pavimentadas. Todos já trilharam esse caminho. É muito difícil inovar em uma ferramenta que já é muito utilizada. Além disso, essas ferramentas são caras demais.

A seguir apresento um passo-a-passo no R com uma visualização de dados.

Passo zero

Carregar a base de dados

Existem bases de dados em diversos formatos. Excel, CSV, TXT, DAT, SAV, JSON, entre outros. cada tipo de base de dados requer um pacote diferente no R.

Neste exemplo, vamos utilizar o pacote RCurl para carregar um arquivo CSV do repositório do DATAUNIRIO no Github.

#install.packages('RCurl')
library(RCurl)
x <- getURL("https://raw.githubusercontent.com/DATAUNIRIO/Base_de_dados/master/Estados.csv")
BaseUF <- read.csv(text=x, header=T, quote="", sep=";",dec = ",")

Passo um

Verificar a base de dados (limpeza e higienização da base de dados)

Higienização da base de dados? O que isso quer dizer? A resposta a essa pergunta é verificar se a base de dados foi corretamente interpretada pelo R. Existem diversos tipos de variáveis e cabe ao pesquisador apurar o uso correto de cada variável. Um exemplo de verificação visual da base de dados pode ser vista no pacote visdat.

library(visdat)
vis_dat(typical_data)

vis_miss(typical_data)

Nesses dois gráficos podemos ver uma base de dados com cinco mil linhas e algumas variáveis. Além disso, podemos ver também o tipo (Caracter, Qualitativa, Quantitativa discreta, logica, quantitativa continua. Também tem a informação NA (Not Applicable), isto é, os dados faltantes (também chamados de missing data)

No segundo gráfico temos uma informação que 8,9% dos dados estão faltando. O tal missing data. O gráfico informa também que esses dados faltantes acontecem em quatro variáveis.

Podemos fazer a verificação também pelo comando str() da variável.

str(BaseUF$PIB)
##  int [1:27] 9629239 29544708 64119836 10419539 167727375 90131724 171235534 107328771 123926301 58819683 ...
str(BaseUF$CodigoReg)
##  Factor w/ 5 levels "MW","N","NE",..: 2 3 2 2 3 3 1 5 1 3 ...
str(BaseUF$IDH)
##  num [1:27] 0.663 0.631 0.674 0.708 0.66 0.682 0.824 0.74 0.735 0.639 ...

No nosso caso, o PIB deve ser uma variável quantitativa contínua. O registro informa que essa variável está classificada como variável inteira (int [1:27]). Isso deve ser corrigido. Para a modificação, é necessário Escrever o comando abaixo:

BaseUF$PIB<-as.numeric(BaseUF$PIB)

Verificando se o problema foi corrigido. Para isso, vamos utilizar o mesmo commando anterior. Parece que funcionou. Está tudo ok agora.

str(BaseUF$PIB)
##  num [1:27] 9.63e+06 2.95e+07 6.41e+07 1.04e+07 1.68e+08 ...

Passo dois

Que tipo de visualização podemos fazer com essas três variáveis (PIB, Estado, e Região)? Poderiamos fazer gráficos com apenas uma variável (univariado), relacionando duas variáveis (bi-variados), ou ainda relacionar as três variáveis ao mesmo tempo.

Entre os gráficos univariados, dependendo do tipo de variável, podemos fazer diversas visualizações como: gráficos de pizza/setores, de barras histogramas, box-plot, etc.

Escolher a visualização e carregar a biblioteca do R

library(treemap)
#treemap(BaseUF, vSize="PIB",index="Sigla",type="index",vColor=)
treemap(BaseUF,index=c("Regiao_Geografica","Estado"),vSize = "PIB",vColor="PIB", type="value",palette="RdYlBu",
    fontsize.labels=c(14,11),                # Tamanho da fonte.
    fontcolor.labels=c("skyblue","orange"),  # Cor da fonte
    fontface.labels=c(2,1),                  # 1,2,3,4 para normal, negrito, italico, negrito-italico. Nesse caso, regiao em "negrito" e Estado "normal"
    bg.labels=c("transparent"),              # Cor de fundo (background) da letra/fonte
    align.labels=list(
        c("center", "center"), 
        c("right", "bottom")
        ),                                   # Where to place labels in the rectangle?
    overlap.labels=0.5,                      # number between 0 and 1 that determines the tolerance of the overlap between labels. 0 means that labels of lower levels are not printed if higher level labels overlap, 1  means that labels are always printed. In-between values, for instance the default value .5, means that lower level labels are printed if other labels do not overlap with more than .5  times their area size.
    inflate.labels=F,                        # If true, labels are bigger when rectangle is bigger.
)

Passo três

Interpretação do Gráfico

Esse gráfico é chamado de Treemap. Ele é uma representação visual de uma árvore de dados, onde cada nó pode ter um ou mais ramos (exceto a raiz, que não tem ramos). Cada nó é exibido como um retângulo de acordo com os valores que você atribui. Os tamanhos e as cores são valorizados em relação a todos os outros nós no gráfico. O comportamento padrão é mover-se para baixo e para direita da árvore.

O tamanho total do gráfico é determinado pelo tamanho do elemento que você inseriu. Nesse caso temos dois niveis, isto é dois ramos: Região e Estados. Além disso, o tamanho da caixa representa o tamanho do PIB. Nesse gráfico podemos ver que a região sudeste tem o maior PIB. No segundo ramo, vemos que São Paulo tem o maior PIB.