The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

BrazilCrime

NPM CRAN_Status_Badge CRAN_Download_Badge CRAN_Download_Badge

Roadmap de desenvolvimento

Sobre o projeto

A principal função do pacote BrazilCrime é disponibilizar de maneira acessível os dados sobre criminalidade e violência do Brasil, através da linguagem R.

Para isso coleta-se as informações divulgadas pelo Sistema Nacional de Informações de Segurança Pública (Sinesp), órgao do Ministério da Justiça e Segurança Pública, esses dados são organizados em um data frame e disponibilizados ao usuário.

Nessa primeira versão, temos disponível dados a partir de janeiro de 2015 até dezembro de 2022, em estratificação por unidade federativa, para as seguintes tipologias criminais: Estupro, Furto de Veículo, Homicídio Doloso, Lesão Corporal Seguida de Morte, Roubo a Insituição Financeira, Roubo de Carga, Roubo de Veículo, Roubo Seguido de Morte (Latrocínio) e Tentativa de Homicídio.

Instalação do Pacote

Versão oficial no CRAN:

install.packages("BrazilCrime")
library(BrazilCrime)

Versão de desenvolvimento:

install.packages("devtools")
devtools::install_github("GiovanniVargette/BrazilCrime")
library(BrazilCrime)

Exemplos de uso das funções

Baixar todos os dados do SINESP entre 2015 e 2022 com granularidade mensal.

dados <- get_sinesp_data() 

Baixar todos os dados do SINESP entre 2015 e 2022 com granularidade anual.

dados <- get_sinesp_data(granularity = 'year') 

Baixar todos os dados do SINESP de 2018 e 2019 sobre homicídio doloso para os estados de São Paulo, Rio de Janeiro e Minas Gerais com granularidade mensal.

dados <- get_sinesp_data(state = c('RJ', 'SP', 'MG'),
                         typology = 'Homicídio doloso',
                         year = c(2018, 2019))

Exemplo 1: Baixar os dados dos estados do Sul do Brasil sobre roubo de veículos para o ano de 2022 com granularidade anual e com os vetores espaciais das UFs.

data_sul <- get_sinesp_data(state = c('PR','SC','RS'),
                            typology = 'Roubo de veículo',
                            year = 2022,
                            geom = T,
                            granularity = 'year')

# criar o mapa
library(ggplot2)
ggplot(data = data_sul) +
  geom_sf(aes(fill = ocorrencias)) + 
  theme_minimal() +
  labs(title = "Mapa de Ocorrências",
       subtitle = "Visualização espacial das ocorrências",
       fill = "Qtd de ocorrências")

Exemplo 2: Taxa mensal de roubo de carga ocorridos em SP de 2015 a 2022

txroub_carg_SP_mensal_ts <- get_sinesp_data(state = 'sp', 
                                            typology = 'roubo de carga',  
                                            granularity = 'month', 
                                            relative_values = TRUE)

names(txroub_carg_SP_mensal_ts)


# Transformar para objeto ts (time series)
txroub_carg_SP_mensal_ts <- ts(txroub_carg_SP_mensal_ts[,8], 
                               start = c(1, 2015),
                               frequency = 12)

# Estimando um modelo ARIMA pelo auto.arima 
(mod_auto <- auto.arima(txroub_carg_SP_mensal_ts, 
                        lambda = 0, # transf. log
                        stepwise = TRUE, 
                        trace = TRUE, 
                        approximation = FALSE, 
                        allowdrift = TRUE, 
                        allowmean = TRUE,
                        test = "kpss",
                        ic = c("bic")))

# Análise visual dos resíduos
par(mfrow=c(2,2))
plot(mod_auto$residuals, main="Resíduos", col=2)
Acf(mod_auto$residuals, main="Resíduos", col=4)
Acf((mod_auto$residuals)^2, main="Resíduos ao quadrado", col=4)
plot(density(mod_auto$residuals,
             kernel = c("gaussian")), 
     main="Resíduos", col=6) 


# Testes formais nos resíduos

# Autocorrelação
Box.test(mod_auto$residuals,
         lag=4, 
         type="Ljung-Box", 
         fitdf=2) 

Box.test(mod_auto$residuals,
         lag=8, 
         type="Ljung-Box", 
         fitdf=2) 

Box.test(mod_auto$residuals,
         lag=12, 
         type="Ljung-Box", 
         fitdf=2)   

# Heterocedasticidade condicional
ArchTest(mod_auto$residuals, lags=4) 
ArchTest(mod_auto$residuals, lags=8)
ArchTest(mod_auto$residuals, lags=12) 

# Normalidade
shapiro.test(mod_auto$residuals)

# Previsões
forecast(mod_auto, h=24, level=95)

autoplot(forecast(mod_auto, h=24, level=95))

Exemplo 3: Roubo de carga a cada 100 mil habitantes por UF em 2022

q <- get_sinesp_data(
  typology = 'roubo de carga',
  granularity = 'year',
  year = 2022,
  relative_values = TRUE,
  geom = TRUE)

ggplot(data = q) +
  geom_sf(aes(fill = ocorrencias_100k_hab), color = 'white') +
  scale_fill_viridis_c(option = "plasma", na.value = "white", name = NULL) +  
  labs(
    title = "Roubos de Carga por 100 mil Habitantes em 2022",
    fill = "Ocorrências por 100k Habitantes"
  ) +
  theme_minimal() +
  theme(
    legend.position = "bottom",            
    legend.direction = "horizontal",         
    legend.title = element_blank(),         
    panel.grid = element_blank(),
    plot.title = element_text(hjust = 0.5)
  )

Citação

Para citar em trabalhos utilize:

citation("BrazilCrime)

#To cite package ‘BrazilCrime’ in publications use:

#  Vargette G, Justus M, Laltuf I (2024). _BrazilCrime: Crime data from Brazil_. R
#  package version 0.0.2, <https://github.com/GiovanniVargette/BrazilCrime>.

#A BibTeX entry for LaTeX users is

#  @Manual{,
#    title = {BrazilCrime: Crime data from Brazil},
#    author = {Giovanni Vargette, Marcelo Justus and Igor Laltuf},
#    year = {2024},
#    note = {R package version 0.0.3},
#    url = {https://github.com/GiovanniVargette/BrazilCrime},
#  }

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.