Introdução

Este relatório apresenta uma análise das estatísticas de criminalidade produzidas pelo Instituto de Segurança Pública (ISP) do estado do Rio de Janeiro para o ano de 2020.

Adquirindo as estatísticas criminais desagregadas por município

df = yearly_stats(by=‘municipality’)

Mantendo as colunas de interesse

df = df %>% filter(ano == 2020) %>% select(-fase, -pessoas_desaparecidas, -encontro_cadaver, -pol_militares_mortos_serv, -pol_civis_mortos_serv, -registro_ocorrencias, -encontro_ossada, -regiao, -ano) %>% mutate(across(everything(), ~ ifelse(is.na(.), median(., na.rm = TRUE), .)))

Estatísticas descritivas

df %>% skim()

Removendo a coluna Nome das cidades e transformando o código das cidades em factor

df1 = df %>% select(!fmun) %>% mutate(fmun_cod = factor(fmun_cod))

Análise de componentes principais

pca_rec <- recipe(~ ., data = df1) %>% update_role(fmun_cod, new_role = “ID”) %>% step_normalize(all_predictors()) %>% step_pca(all_predictors(), num_comp = 2, id = “pca”)

pca_rec

Estimando as estatísticas

pca_estimates <- prep(pca_rec)

Retorno dos dados proocessados usano bake

features_2d <- pca_estimates %>% bake(new_data = NULL)

Imprimino o dataset baked

features_2d %>% slice_head(n = 5)

Examine quanta variação cada CP representa

pca_estimates %>% tidy(id = “pca”, type = “variance”) %>% filter(str_detect(terms, “percent”))

theme_set(theme_light())

Plot how much variance each PC accounts for

pca_estimates %>% tidy(id = “pca”, type = “variance”) %>% filter(terms == “percent variance”) %>% ggplot(mapping = aes(x = component, y = value)) + geom_col(fill = “midnightblue”, alpha = 0.7) + ylab(“% of total variance”) + xlab(“Principal Component”) + ggtitle(“Variance Explained by Each Principal Component”) + scale_y_continuous(labels = scales::percent_format(scale = 1)) + theme_minimal() + theme( plot.title = element_text(hjust = 0.5, size = 14, face = “bold”), axis.title.x = element_text(size = 12), axis.title.y = element_text(size = 12), axis.text.x = element_text(size = 10), axis.text.y = element_text(size = 10) )

Visualize PC scores

features_2d %>% ggplot(mapping = aes(x = PC1, y = PC2)) + geom_point(size = 2, color = “midnightblue”)

Drop target column and normalize data

seeds_features<- recipe(~ ., data = df1) %>% step_rm(fmun_cod) %>% step_normalize(all_predictors()) %>% prep() %>% bake(new_data = NULL)