Análise Multivariada - Trabalho 01

Análise Exploratória do dataset USArrests

Vinicius Rogério da Silva

2021-10-22

Versão revisada em 22/10/2021

Introdução

Conceito

Um importante passo do trabalho com dados consiste na Análise Exploratória, também referida como EDA - Exploratory Data Analysis. Através dela, é possível identificar características importantes do dataset, que podem influenciar diretamente na qualidade da análise ou modelagem a ser realizada. Como exemplos dessas características, podemos citar a quantidade de valores faltantes, a amplitude de cada variável, os níveis de variáveis categóricas, a presença de correlação entre variáveis, a dispersão dos valores ou a forma da distribuição dos dados, etc.

Sobre o dataset USArrests

O dataset USArrests, utilizado neste trabalho, contém dados sobre crimes de assalto, assassinato e estupro praticados nos 50 estados dos USA, tendo como referência o ano de 1973. Também é informado o percentual de população urbana para cada um dos estados. Através dos dados apresentados, é possível extrair insights que evidenciem a presença de relações entre as variáveis, identificar possíveis padrões e explicações para criminalidade

Pacotes utilizados

Os pacotes ggplot2, magrittr, gridExtra, corrplot e usmap foram utilizados para auxiliar a análise e a geração de gráficos.

Análise exploratória

Carregando os dados

# O dataset USArrests já é disponibilizado na instalação do R.
dados=USArrests
dados[1:10,]
            Murder Assault UrbanPop Rape
Alabama       13.2     236       58 21.2
Alaska        10.0     263       48 44.5
Arizona        8.1     294       80 31.0
Arkansas       8.8     190       50 19.5
California     9.0     276       91 40.6
Colorado       7.9     204       78 38.7
Connecticut    3.3     110       77 11.1
Delaware       5.9     238       72 15.8
Florida       15.4     335       80 31.9
Georgia       17.4     211       60 25.8

Acima podemos ver a “cara” do dataset, com suas 10 primeiras observações. As variáveis Murder, Assault e Rape representam, respectivamente, as taxas por 100mil habitantes de assassinatos, assaltos e estupros. Já a variável UrbanPop representa o percentual de população urbana no estado.

Resumo estatístico dos dados

summary(dados)
     Murder          Assault         UrbanPop          Rape      
 Min.   : 0.800   Min.   : 45.0   Min.   :32.00   Min.   : 7.30  
 1st Qu.: 4.075   1st Qu.:109.0   1st Qu.:54.50   1st Qu.:15.07  
 Median : 7.250   Median :159.0   Median :66.00   Median :20.10  
 Mean   : 7.788   Mean   :170.8   Mean   :65.54   Mean   :21.23  
 3rd Qu.:11.250   3rd Qu.:249.0   3rd Qu.:77.75   3rd Qu.:26.18  
 Max.   :17.400   Max.   :337.0   Max.   :91.00   Max.   :46.00  

A partir desse resumo já é possível extrair algumas informações. Por exemplo, o crime de assalto é mais comum do que os demais, pois possui taxa média e taxa mediana muito maior do que a dos outros dois tipos de crime. Do mesmo modo, podemos observar que o crime de assassinato é menos comum.

Valores faltantes

table(is.na(dados))

FALSE 
  200 

Como podemos ver, não há valores faltantes ao longo do dataset.

Boxplot das variáveis

Através do boxplot, podemos ter uma maior dimensão de como os dados estão dispersos em cada variável.

plot1 = ggplot(dados,aes(y=dados$Murder)) + 
    geom_boxplot() +
    theme(legend.position="none") +
    ggtitle("Murder (assassinatos)") + 
    theme_classic() +
    coord_flip() + 
    theme(axis.text.y = element_blank())+
    scale_fill_brewer(palette="Dark")

plot2 = ggplot(dados,aes(y=dados$Assault)) + 
    geom_boxplot() +
    theme(legend.position="none") +
    ggtitle("Assault (assaltos)") + 
    theme_classic() +
    coord_flip() + 
    theme(axis.text.y = element_blank())+
    scale_fill_brewer(palette="Dark")

plot3 = ggplot(dados,aes(y=dados$UrbanPop)) + 
    geom_boxplot() +
    theme(legend.position="none") +
    ggtitle("UrbanPop (população urbana)") + 
    theme_classic() +
    coord_flip() + 
    theme(axis.text.y = element_blank())+
    scale_fill_brewer(palette="Dark")

plot4 = ggplot(dados,aes(y=dados$Rape)) + 
    geom_boxplot() +
    theme(legend.position="none") +
    ggtitle("Rape (estupros)") + 
    theme_classic() +
    coord_flip() + 
    theme(axis.text.y = element_blank())+
    scale_fill_brewer(palette="Dark")

grid.arrange(plot1,plot2,plot3,plot4,ncol=2)

É possível perceber que as variáveis estão em escalas diferentes. Fica evidenciada também a diferença na distribuição dos crimes, com presença de assimetrias. A variável Rape também apresenta dois outliers.

Matriz de Correlação

Um importante passo da análise exploratória é a verificação das correlações entre as variáveis. Ela pode ajudar a identificar, por exemplo, a presença de multicolinearidade, que poderia representar problemas para algumas aplicações.

corrplot(cor(dados),method = "color",
                    type="upper",
                    diag=FALSE, 
                    addCoef.col="black",
                    tl.col="black")

As variáveis Murder e Assault são as únicas a apresentar uma correlação positiva alta. Ou seja, locais onde há mais crimes de assalto tendem a ter mais crimes de assassinato. Apesar disso, é importante verificar que esses padrões estão também ligados à região onde os crimes acontecem, análise esta que será feita mais adiante.

A variável Rape possui uma correlação entre moderada e alta com a variável Assault.

Gráfico de dispersão

plot(dados,lower.panel=NULL,main="Dispersão das variáveis")

Através do gráfico de dispersão, também conhecido como scatterplot, é possível visualizar a presença de estruturas que evidenciam as relações entre variáveis. Por exemplo, parece existir uma relação linear positiva entre as variáveis Murder e Assault, e também de Assault com Rape. Isso pode estar relacionado ao fato de que estados que sejam mais violentos tendem a apresentar uma incidência maior de todos os crimes conjuntamente.

Mapas

Também é interessante analisar de que forma as taxas de incidência dos crimes estão distribuidas ao longo de todo o território americano:

dados_plot=dados
dados_plot$state=rownames(dados)

plot1=plot_usmap(data=dados_plot, regions = "state", values = "Murder") +
  scale_fill_continuous(low = "white", high = "black", name = "Murder") +
  ggtitle("Incidência de assassinatos por 100mil habitantes") +
  theme(legend.position = "right")

plot2=plot_usmap(data=dados_plot, regions = "state", values = "Assault") +
  scale_fill_continuous(low = "white", high = "black", name = "Assault") +
  ggtitle("Incidência de assaltos por 100mil habitantes") +
  theme(legend.position = "right")

plot3=plot_usmap(data=dados_plot, regions = "state", values = "UrbanPop") +
  scale_fill_continuous(low = "white", high = "black", name = "UrbanPop") +
  ggtitle("Percentual de população urbana") +
  theme(legend.position = "right")

plot4=plot_usmap(data=dados_plot, regions = "state", values = "Rape") +
  scale_fill_continuous(low = "white", high = "black", name = "Rape") +
  ggtitle("Incidência de estupros por 100mil habitantes") +
  theme(legend.position = "right")

grid.arrange(plot1,plot2,plot3,plot4,ncol=2)

Dentre outras questões, podemos observar a presença de uma alta taxa de incidência de assaltos e assassinatos em alguns estados do Sul, como a Flórida e a Carolina do Norte. Georgia, Mississippi e Louisiana também apresentam altas taxas de assassinatos. No caso dos estupros, vemos claramente uma incidência bem maior no estado de Nevada, acompanhado por Califórnia e Colorado, que também possuem altas taxas. Também é possível visualizar que estados como Califórnia e Nova Iorque mostram um alto percentual da população vivendo em área urbana.

Conclusão

O objetivo deste trabalho foi apresentar uma breve análise exploratória do dataset USArrests. Muitas possibilidades ainda poderiam ser abordadas para extrair outros insights a respeito dos dados, mas já pudemos ter uma breve noção de como os dados se comportam, expressando padrões relacionados à violência. Fica evidenciada a importância desse tipo de levantamento como uma etapa da análise multivariada.