Carrega o arquivo referente ao banco de dados de armas apreendidas em 2016 no Mato Grosso.
Primeiro, apenas para fins exploratórios, uma tabela de referência crzada entre calibres e tipos de armas.
# Carrega função
# source("http://pcwww.liv.ac.uk/~william/R/crosstab.r")
# Calcula tabela de referência cruzada
trc <- crosstab(A_fogo, row.vars = "Cal.Arma", col.vars = "TipoArma", type = "f")
trc
## TipoArma ESPINGARDA FUZIL PISTOLA REVOLVER SUBMETRALHADORA Sum
## Cal.Arma
## CAL 12 28 0 0 0 0 28
## CAL 16 17 0 0 0 0 17
## CAL 20 38 0 0 1 0 39
## CAL 22 86 0 10 96 0 192
## CAL 24 3 0 0 0 0 3
## CAL 28 10 0 0 0 0 10
## CAL 32 82 0 1 126 0 209
## CAL 357 0 0 0 9 0 9
## CAL 36 41 0 0 2 0 43
## CAL 38 64 0 75 454 0 593
## CAL 40 2 0 28 0 0 30
## CAL 44 7 0 0 4 0 11
## CAL 45 0 0 1 1 0 2
## CAL 55MM 2 0 0 0 0 2
## CAL 6.35MM 0 0 17 0 0 17
## CAL 762 0 2 0 0 0 2
## CAL 765MM 0 0 15 0 0 15
## CAL 9MM 0 0 18 0 1 19
## N.E 28 0 3 30 0 61
## Sum 408 2 168 723 1 1302
# Análise exploratória da tabela
# http://www.sthda.com/english/wiki/correspondence-analysis-in-r-the-ultimate-guide-for-the-analysis-the-visualization-and-the-interpretation-r-software-and-data-mining
# Exclui as linhas 16 e 20 (total), e colunas 2 e 5.
library("gplots")
# 1. converte objeto em tabela
dt <- as.table(as.matrix(trc))
# 2. Gráfico
balloonplot(t(trc$crosstab[c(-16,-20),c(1,3,4)]), main ="Calibres vs. tipos de armnas", xlab ="", ylab="",
label = FALSE, show.margins = FALSE)
# Calcula tabela de referência cruzada
trc2 <- crosstab(A_fogo, row.vars = "MunicipioFato", col.vars = "TipoArma", type = "f")
trc2
## TipoArma ESPINGARDA FUZIL PISTOLA REVOLVER SUBMETRALHADORA Sum
## MunicipioFato
## ACORIZAL 0 0 0 2 0 2
## AGUA BOA 5 0 2 5 0 12
## ALTA FLORESTA 6 0 2 9 0 17
## ALTO ARAGUAIA 3 0 0 5 0 8
## ALTO BOA VISTA 1 0 0 1 0 2
## ALTO GARCAS 2 0 0 2 0 4
## ALTO PARAGUAI 0 0 0 2 0 2
## ALTO TAQUARI 1 0 0 0 0 1
## APIACAS 2 0 0 0 0 2
## ARAGUAIANA 2 0 0 1 0 3
## ARENAPOLIS 1 0 0 2 0 3
## ARIPUANA 8 0 0 5 0 13
## BARAO DE MELGACO 0 0 0 1 0 1
## BARRA DO BUGRES 2 0 0 2 0 4
## BARRA DO GARCAS 9 0 3 20 0 32
## BRASNORTE 2 0 0 2 0 4
## CACERES 19 0 3 20 0 42
## CAMPINAPOLIS 2 0 0 0 0 2
## CAMPO NOVO DO PARECIS 1 0 1 1 0 3
## CAMPO VERDE 2 0 1 10 0 13
## CAMPOS DE JULIO 3 0 1 1 0 5
## CANABRAVA DO NORTE 2 0 0 1 0 3
## CANARANA 0 0 1 2 0 3
## CARLINDA 2 0 0 2 0 4
## CHAPADA DOS GUIMARAES 2 0 1 4 0 7
## CLAUDIA 1 0 0 1 0 2
## COLIDER 4 0 0 7 0 11
## COLNIZA 66 0 0 13 0 79
## COMODORO 3 0 0 5 0 8
## CONFRESA 3 0 1 2 0 6
## COTRIGUACU 1 0 0 3 0 4
## CUIABA 32 1 69 240 1 343
## DENISE 1 0 0 2 0 3
## DIAMANTINO 2 0 1 5 0 8
## FELIZ NATAL 2 0 0 2 0 4
## GAUCHA DO NORTE 2 0 0 0 0 2
## GENERAL CARNEIRO 1 0 0 1 0 2
## GLORIA D'OESTE 2 0 0 0 0 2
## GUARANTA DO NORTE 8 0 3 8 0 19
## GUIRATINGA 3 0 0 2 0 5
## INDIAVAI 1 0 0 0 0 1
## IPIRANGA DO NORTE 1 0 0 0 0 1
## ITANHANGA 2 0 4 0 0 6
## ITAUBA 1 0 0 1 0 2
## ITIQUIRA 2 0 0 1 0 3
## JACIARA 4 0 1 7 0 12
## JANGADA 0 0 0 1 0 1
## JAURU 0 0 0 1 0 1
## JUARA 15 0 5 5 0 25
## JUINA 5 0 1 6 0 12
## JURUENA 9 0 3 7 0 19
## JUSCIMEIRA 3 0 0 1 0 4
## LAMBARI D'OESTE 0 0 1 0 0 1
## LAMBARI DOESTE 2 0 0 1 0 3
## LUCAS DO RIO VERDE 6 0 2 13 0 21
## MARCELANDIA 0 0 0 2 0 2
## MATUPA 2 0 3 1 0 6
## MIRASSOL D"OESTE 1 0 0 2 0 3
## NOBRES 1 0 0 1 0 2
## NORTELANDIA 0 0 0 2 0 2
## NOSSA SENHORA DO LIVRAMENTO 4 0 0 2 0 6
## NOVA BANDEIRANTE 2 0 1 2 0 5
## NOVA BANDEIRANTES 2 0 0 0 0 2
## NOVA CANAA DO NORTE 2 0 0 1 0 3
## NOVA LACERDA 0 0 1 0 0 1
## NOVA MARINGA 1 0 0 1 0 2
## NOVA MONTEVERDE 0 0 0 3 0 3
## NOVA MUTUM 10 0 1 15 0 26
## NOVA NAZARE 0 0 1 0 0 1
## NOVA OLIMPIA 0 0 0 4 0 4
## NOVA UBIRATA 1 0 0 0 0 1
## NOVA XAVANTINA 0 0 1 2 0 3
## NOVO MUNDO 5 0 0 4 0 9
## NOVO SANTO ANTONIO 3 0 1 2 0 6
## PARANAITA 1 0 0 1 0 2
## PARANATINGA 1 0 0 0 0 1
## PEDRA PRETA 6 0 1 2 0 9
## PEIXOTO DE AZEVEDO 4 0 1 15 0 20
## POCONE 2 0 1 6 0 9
## PONTAL DO ARAGUAIA 1 0 0 1 0 2
## PONTES E LACERDA 8 0 4 13 0 25
## PORTO ALEGRE DO NORTE 0 0 1 0 0 1
## PORTO DOS GAUCHOS 9 0 0 3 0 12
## PORTO ESPERIDIAO 5 1 1 3 0 10
## POXOREU 1 0 0 0 0 1
## PRIMAVERA DO LESTE 4 0 2 14 0 20
## QUERENCIA 0 0 0 4 0 4
## RESERVA DO CABACAL 0 0 0 2 0 2
## RIBEIRAO CASCALHEIRA 3 0 0 0 0 3
## RIO BRANCO 2 0 0 0 0 2
## RONDONOPOLIS 11 0 17 86 0 114
## ROSARIO OESTE 0 0 0 3 0 3
## SALTO DO CEU 0 0 0 1 0 1
## SANTA CARMEM 4 0 0 0 0 4
## SANTA CRUZ DO XINGU 0 0 0 1 0 1
## SANTA RITA DO TRIVELATO 0 0 1 1 0 2
## SANTA TEREZINHA 0 0 0 1 0 1
## SANTO AFONSO 1 0 0 1 0 2
## SANTO ANTONIO DE LEVERGER 0 0 0 1 0 1
## SANTO ANTONIO DO LESTE 0 0 0 1 0 1
## SANTO ANTONIO DO LEVERGER 0 0 0 2 0 2
## SAO FELIX DO ARAGUAIA 3 0 0 1 0 4
## SAO JOSE DO POVO 0 0 0 1 0 1
## SAO JOSE DO RIO CLARO 2 0 0 5 0 7
## SAO JOSE DO XINGU 2 0 0 2 0 4
## SAO JOSE DOS QUATRO MARCOS 0 0 3 0 0 3
## SAO PEDRO DA CIPA 0 0 0 1 0 1
## SAPEZAL 5 0 0 3 0 8
## SINOP 15 0 6 17 0 38
## SORRISO 4 0 3 9 0 16
## TABAPORA 4 0 2 1 0 7
## TANGARA DA SERRA 2 0 0 7 0 9
## TESOURO 1 0 0 0 0 1
## TORIXOREU 1 0 0 0 0 1
## UNIAO DO SUL 1 0 0 0 0 1
## VARZEA GRANDE 7 0 10 29 0 46
## VILA BELA DA SANTISSIMA TRINDADE 2 0 0 4 0 6
## VILA RICA 3 0 0 2 0 5
## Sum 408 2 168 723 1 1302
# Esta tabela foi muito grande para uma saÃda gráfica
# Utiliza biblioteca CA disponÃvel em https://www.jstatsoft.org/article/view/v020i03
library(ca)
afc <- ca(trc$crosstab[c(-16,-20),c(1,3,4)])
plot(ca(trc$crosstab[c(-16,-20),c(1,3,4)]), mass = TRUE, contrib = "absolute", map = "rowgreen", arrows = c(FALSE, TRUE))
COmo estava com muito texto optei por fazer um gráfico com os labels e um sem eles.
library(ca)
trc2 <- crosstab(A_fogo, row.vars = "MunicipioFato", col.vars = "TipoArma", type = "f")
afc2 <- ca(trc2$crosstab)
# Com labels
plot(afc2)
# Sem labels
plot(afc2, mass = TRUE, contrib = "absolute", map = "rowgreen", arrows = c(FALSE, TRUE), label= FALSE)