#---- população
library(readxl)
library(tidyverse)
populacao_p_cidade <- read.delim("populacão_p_cidade.csv", sep = ";", skip = 1)
# populacao_p_cidade |>
# select( "Cód.", "Populacao")
# rename(populacao_p_cidade, code_muni = Cód.)
#cidades
read_excel("cidades atualizadas.xlsx") |>
janitor::clean_names()|> filter(uf == 35) |>
select(nome_municipio, codigo_municipio_completo) |>
group_by(nome_municipio) |>
rename(id_municipio = codigo_municipio_completo) |>
as.data.frame()-> cidades_filtradas
##ocorrencias
ocorrencias <- read.csv("ocorrencias_registradas.csv")
ocorrencias$id_municipio <- as.character(ocorrencias$id_municipio)
cidades_filtradas$id_municipio <- as.character(cidades_filtradas$id_municipio)
tabela_combinada <- cidades_filtradas %>%
left_join(ocorrencias, by = "id_municipio")
ocorrencias[is.na(ocorrencias)] <- 0
ocorrencias[] <- lapply(ocorrencias, as.numeric)
# ocorrencias |> mutate()
# ocorrencias |> transmute()
ocorrencias$total <- rowSums(ocorrencias[,5:27])
# ocorrencias |> group_by(ano, id_municipio,total)
soma_por_ano_cidade <- aggregate(ocorrencias[,28], by = list(ocorrencias$ano), sum) |>
filter(Group.1 > 2007) |>
as.data.frame() |>
rename(oc_ano= x, ano = Group.1)
#------- ocorrencias por ano
#Criando o gráfico de linhas com números acima das linhas
# pontos maximos e mínimos
valor_max <- max(soma_por_ano_cidade$oc_ano)
valor_min <- min(soma_por_ano_cidade$oc_ano)
soma_por_ano_cidade |>
ggplot(aes(x = ano, y = oc_ano)) +
geom_line(color = "black") +
geom_point(color = "blue") +
geom_text(data = soma_por_ano_cidade[soma_por_ano_cidade$oc_ano %in% c(valor_max, valor_min), ], aes(label = oc_ano), vjust = -0.5)+
labs(x = "Ano", y = "Ocorrências atendidas",
title = "Número de ocorrências atendidas pela polícia em São Paulo")Ocorrências Estado de São Paulo
Análise das ocorrências do Estado de São Paulo
Introdução
Este trabalho propõe uma análise abrangente das ocorrências policiais no Estado de São Paulo ao longo do período de 2002-2021 , com o objetivo de identificar tendências tendencias de modo superficial. Para tanto, serão utilizados dados oficiais fornecidos pela secretaria de segurança do Estado de São Paulo, como também métodos estatísticos e análises qualitativas.
Pacoctes usados
tidyverse
gt
geobr
readxl
gganimate
Crimes cometidos no Estado de São Paulo
O primeiro gráfico apresenta o numero de ocorrências de crimes em São Paulo, fica evidente que a partir de 2017 depois de atingir o pico, o número de ocorrências começou a diminuir, levando a seu menor patamar em 2021.
10 municípios com mias ocorrências
esta etapa do estudo damos enfâse as cidades com as dez maiores ocorrências de crimes, fica evidente que as cidades mais populosas são em sua maioria as que mais ocorrem crimes.
#TABELA CIDADES COM MAIS CRIMES EM 2021
library(gt)Warning: package 'gt' was built under R version 4.3.3
ocorrencias$id_municipio <- as.character(ocorrencias$id_municipio)
cidades_filtradas$id_municipio <- as.character(cidades_filtradas$id_municipio)
tabela_combinada <- cidades_filtradas %>%
left_join(ocorrencias, by = "id_municipio") |> filter(ano == 2021)
soma_cidade <- aggregate(tabela_combinada[,29], by = list(tabela_combinada$nome_municipio), sum) |>
rename(cidade = Group.1, oc_cidade = x) |>arrange(desc(oc_cidade))
head(soma_cidade, 10)-> cidades_mais_ocorrências
cidades_mais_ocorrências %>%
gt() %>%
tab_header(
title = md("**Municípios com mais ocorrências**"),
subtitle = md("no estado de São Paulo em 2021")
) %>%
tab_source_note(md("Fonte: Secretaria de Segurança Pública de São Paulo")) %>%
cols_label(cidade = "Municípios", oc_cidade = "Ocorrências")| Municípios com mais ocorrências | |
| no estado de São Paulo em 2021 | |
| Municípios | Ocorrências |
|---|---|
| São Paulo | 341172 |
| Campinas | 23106 |
| Guarulhos | 21434 |
| Santo André | 17963 |
| São Bernardo do Campo | 14702 |
| Osasco | 14359 |
| Ribeirão Preto | 10635 |
| Diadema | 10158 |
| Sorocaba | 8056 |
| Praia Grande | 7958 |
| Fonte: Secretaria de Segurança Pública de São Paulo | |
Os 10 crimes mais cometidos
library(tidyverse)
select( tabela_combinada, homicidio_doloso:furto_de_veiculo) -> total_crimes2021
nova <- colSums(total_crimes2021, na.rm = TRUE)
head(nova, 10) -> nova
tabela_crimes <- data.frame(
coluna = names(nova),
crime = nova
) |> arrange(desc(nova))
#### CORRIGIR GRAMÁTICA
# Formatar o nome das colunas
tabela_crimes$coluna <- str_replace_all(tabela_crimes$coluna, "_", " ")
tabela_crimes$coluna <- str_to_title(tabela_crimes$coluna)
# Carregar pacotes necessários
library(gt)
# Criar a tabela gt com os dados de tabela_crimes
gt(tabela_crimes) %>%
tab_header(
title = "Crimes mais cometidos no estado"
) %>%
cols_label(
coluna = "Crimes",
crime = "Número de Crimes"
) %>%
cols_align(
columns = everything(),
align = "left"
) |> tab_source_note(md("Fonte: Secretaria de Segurança Pública de São Paulo"))| Crimes mais cometidos no estado | |
| Crimes | Número de Crimes |
|---|---|
| Lesao Corporal Dolosa | 75036 |
| Lesao Corporal Culposa Por Acidente De Transito | 38202 |
| Homicidio Culposo Por Acidente De Transito | 2156 |
| Tentativa De Homicidio | 2150 |
| Numero De Vitimas Em Homicidio Doloso | 1936 |
| Homicidio Doloso | 1848 |
| Homicidio Culposo Outros | 97 |
| Lesao Corporal Seguida De Morte | 51 |
| Numero De Vitimas Em Homicidio Doloso Por Acidente De Transito | 5 |
| Homicidio Doloso Por Acidente De Transito | 4 |
| Fonte: Secretaria de Segurança Pública de São Paulo | |
Evolução dos furtos
library(tidyverse)
#| warning: false
oco <- readr::read_csv("oco2.csv")
oco_furtos <- oco |>
group_by(
ano
) |>
summarise(
furto = sum(furto_outros, na.rm = T),
furto_carro = sum(furto_de_veiculo, na.rm = T)
)
oco_furtos |>
mutate(
furto2 = furto/1000
) |>
ggplot() +
geom_point(
aes(x=ano, y= furto2),color="darkblue", show.legend = F, size = 1.4
)+
geom_line(
aes( y = furto2, x = ano),color = "darkblue", linewidth = 0.9
)+
theme_bw() +
labs(y= " Furtos ", title = "Evolução dos Furtos no Estado de São paulo")Podemos notar o impacto da pandemia nos pequenos furtos no estado do São Paulo na variação de 2020/2021 houve queda de -22,36% caindo de 500 mil para 300 mil.
O Estado de São Paulo é responsável pelos números absolutos!
#| warning: false
#5 maiores estados com furtos
oco |>
group_by(id_municipio
) |>
summarise(
furto = sum(furto_outros, na.rm = T),
furto_carro = sum(furto_de_veiculo, na.rm = T)
) |>
arrange(desc(furto)) |>
slice(1:5) # A tibble: 5 × 3
id_municipio furto furto_carro
<dbl> <dbl> <dbl>
1 3550308 3479769 885654
2 3509502 324248 85900
3 3543402 212222 38812
4 3518800 191656 55489
5 3552205 148797 33029
# agrupando por ano
#| warning: false
oco |>
filter(
id_municipio %in% c(3550308, 3509502, 3543402, 3518800, 3552205)
) |>
group_by(
ano, id_municipio, regiao_ssp
) |>
summarise(
furto = sum(furto_outros, na.rm = T),
furto_carro = sum(furto_de_veiculo, na.rm = T)
) |>
ggplot(
aes( x = ano, y = furto , group = regiao_ssp, color = factor(regiao_ssp))
)+
geom_line(
aes( x=ano, y= furto), linewidth = 0.9
) +
theme_bw( )+
labs(
title = "Furtos Absolutos",
color = "Municípios"
) `summarise()` has grouped output by 'ano', 'id_municipio'. You can override
using the `.groups` argument.
A capital do Estado é responsáavel pelo números absolutos!
Mas com relação aos furtos por mil habitantes?
Furtos por mil habitantes dos 5 municípios com maiores taxas
library(gganimate)
dado3 <- abjData::pnud_min
dado3 <- dado3 |>
select(
muni_id:muni_nm
)
pop_sp <- readr::read_csv("pop_sp.csv")
oco_ano <- oco |>
group_by(
ano, id_municipio
) |>
summarise(
furto = sum(furto_outros)
)
oco_ano_pop <- pop_sp |>
mutate(
id_municipio = as.double(id_municipio)
) |>
inner_join( oco_ano, by = c("id_municipio"="id_municipio","ano"))
# conseguindo os 5 municipios com maisores taxa de furto média
oco_ano_pop |>
mutate(
tx_f = (furto/populacao)*1000
) |>
arrange(
desc(tx_f)
) |>
group_by(
id_municipio
) |>
summarise(
tx_f_m = sum(tx_f, na.rm = T)/12
) |>
arrange(
desc( tx_f_m)
) |>
slice(1:5)# A tibble: 5 × 2
id_municipio tx_f_m
<dbl> <dbl>
1 3520426 98.7
2 3502507 47.0
3 3531100 44.8
4 3522109 40.6
5 3505500 40.3
# gráfico com os municipios com as maiores tx médi de furto
# por mil habitantes
#| warning: false
oco_ano_pop |>
filter(
id_municipio %in% c(3520426, 3502507, 3531100, 3522109, 3505500)
) |>
mutate(
id_municipio = as.character(id_municipio)
) |>
inner_join(
dado3, by = c("id_municipio"="muni_id")
) |>
mutate(
tx_f = (furto/populacao)*1000
) |>
group_by(
ano, id_municipio
) |>
ggplot(
aes( x = ano, y = tx_f, group = muni_nm, color = factor(muni_nm))
)+
geom_line(
aes( x=ano, y= tx_f), linewidth = 0.9
)+
labs(
title = "Os 5 Municípios Com as maiores furtos por mil habitantes",
y = "Taxa de furtos Por Mil",
color = "Municípios"
)+
theme_bw()+
transition_reveal(ano) Podemos notar que nenhum dos municípios que apareceram nos absolutos aparecem aqui A ilha comprida seguem em disparado, com uma taxa de furto média de 98.71, ou seja a cada 1000 habitantes 99 são furtadas! Nem a pandemia conseguiu fazer diminuir o número de furtos
Regressão linear
library(tidyverse)
pnud <- abjData::pnud_min
pnud_sp <- pnud |>
filter(
uf_sigla == "SP"
)
oco_f_idhm <- oco_ano_pop |>
mutate(
ano = as.character(ano),
id_municipio = as.character(id_municipio)
) |>
inner_join(
pnud_sp, by = c("id_municipio"="muni_id", "ano")
)
oco_f_idhm <- oco_f_idhm |>
mutate(
tx_f = (furto/populacao)*1000,
idhm2 = idhm*100,
gini2 = gini*100,
idhm_e2 = idhm_e*100,
idhm_l2 = idhm_l*100,
idhm_r2 = idhm_r*100
)
#| warning: false
oco_f_idhm |>
ggplot()+
geom_point(
aes(y= tx_f , x = gini), color = "darkblue"
)+
geom_smooth(
aes( y= tx_f , x = gini ), color = "orange",
se = F, method = "lm"
) +
labs( title = "correlação taxa de furtos por mil e índice gini, municípios de SP 2010",
y = "Taxa de Furtos Por Mil")+
theme_bw()#| warning: false
modelo99 <- lm(tx_f ~ idhm_e2 + idhm_r2 + gini2 + idhm_l2 + idhm2, oco_f_idhm)
summary(modelo99)
Call:
lm(formula = tx_f ~ idhm_e2 + idhm_r2 + gini2 + idhm_l2 + idhm2,
data = oco_f_idhm)
Residuals:
Min 1Q Median 3Q Max
-10.428 -3.071 -0.672 2.339 60.982
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -27.6483 7.6248 -3.626 0.000311 ***
idhm_e2 -3.5865 1.3814 -2.596 0.009643 **
idhm_r2 -3.1149 1.2990 -2.398 0.016777 *
gini2 0.2106 0.0407 5.175 3.06e-07 ***
idhm_l2 -2.6925 1.1175 -2.409 0.016266 *
idhm2 9.7139 3.7695 2.577 0.010192 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 4.997 on 634 degrees of freedom
Multiple R-squared: 0.1331, Adjusted R-squared: 0.1263
F-statistic: 19.47 on 5 and 634 DF, p-value: < 2.2e-16
achamos uma correlação positiva entre gini e a taxa de furtos 0.2106 ou seja, uma unidade adcional do gini*100 aumeta a taxa em 0,21 Achamos também uma correlação negativa entre indice educacional -3,5856
Agora vamos analisar a evolução dos homicídios no Estado
# dentre os ano de 2010 a 2015, varias variáveis estavam contenado apenas NA-----
# apos consertar isso, plotamos o dado
oco|>
group_by(
ano) |>
summarise(
homi_total = sum(numero_de_vitimas_em_homicidio_doloso, na.rm=TRUE)+
sum(numero_de_vitimas_em_homicidio_doloso_por_acidente_de_transito, na.rm = TRUE)+
sum( numero_de_vitimas_em_latrocinio, na.rm = TRUE)+
sum(lesao_corporal_seguida_de_morte, na.rm = TRUE)
) |>
ggplot() +
geom_point(
aes(x=ano, y=homi_total, size = 0.6),color="red", show.legend = F
)+geom_line(
aes( x=ano, y=homi_total),color = "red", linewidth = 1.5
)+theme_bw() +
labs(y= " homicídios ", title = "Evolução dos homicídios no Estado de São paulo")+
transition_reveal(ano) Podemos observar que o número de homicídios caiu muiro no estado de sp a variação de 2002/2021 DE -88,66% de homicídios em 20 anos.Podemos observar também o efeito que a pandemia teve!
Tabela
library(gt)
library(tidyverse)
oco_t_homi <- oco |>
mutate(
homi_t = numero_de_vitimas_em_homicidio_doloso+numero_de_vitimas_em_homicidio_doloso_por_acidente_de_transito+
numero_de_vitimas_em_latrocinio+lesao_corporal_seguida_de_morte
)
oco_t_homi |>
group_by(
regiao_ssp
) |>
summarise(
h_t = sum(homi_t, na.rm = T)
) |> arrange(
desc(h_t)
) |>
rename(
Municípios = regiao_ssp,
Homicídios = h_t
) |>
slice(1:10)|>
gt() |>
tab_header(
title = md("**Os 10 municípios com mais homicídios**"),
subtitle = md("acumulado desde do ano de 2002")
) |>
tab_source_note(md("Fonte:[Secretaria De Segurança Pública Do Estado De São Paulo](https://www.ssp.sp.gov.br/estatistica)")) |>
opt_table_font(
font = list(
google_font(name = "Abel")
)
) |>
tab_options(heading.subtitle.font.size = 18,
heading.background.color = "#FFD6BA",
table.border.top.color = "#B15044",
table.border.bottom.color = "#B15044",
source_notes.font.size = 11
)| Os 10 municípios com mais homicídios | |
| acumulado desde do ano de 2002 | |
| Municípios | Homicídios |
|---|---|
| Capital | 27831 |
| Grande São Paulo (exclui a Capital) | 22576 |
| Campinas | 6145 |
| São José dos Campos | 5566 |
| Piracicaba | 4740 |
| Santos | 4535 |
| Sorocaba | 4330 |
| Ribeirão Preto | 4202 |
| Bauru | 1895 |
| São José do Rio Preto | 1347 |
| Fonte:Secretaria De Segurança Pública Do Estado De São Paulo | |
Mapa homicídios por 1000 habitantes
#mapa_sp2 <- oco5 |>
# ggplot()+
#geom_sf(aes(fill = tx_h), color = "white",
# size = .1, show.legend = F) +
#theme_void() +
#scale_fill_gradient2(low = "green",
# mid = "#F0E68C",
# high = "red",
# midpoint = median(oco5$tx_h))+
#labs(title = " Taxa de homicídio por cem mil habitantes em São Paulo no ano de 2021")
#b<- oco5 |>
# filter(
# tx_h != 0
#)
# fazenndo com manual de cores
#oco6 <- oco5 |>
# mutate(
# concentracao = case_when(
# tx_h < 0.037 ~ "baixa",
# tx_h >= 0.038 & tx_h <= 0.093643 ~ "média",
# tx_h >= 0.094 ~ "alta",
#) )
#mapa_sp1 <- oco6 |>
# ggplot()+
# geom_sf(
# aes(fill= concentracao),
# show.legend = TRUE,
#color = "white",
#lwd =0.001
#)+ scale_fill_manual(values = c("#8B0000", "#62BEBD","#D9B730" ))+
#labs(title = "Taxa de homicídio por cem mil habitantes em São Paulo no ano de 2021")+
#theme_void()
mapa_sp2mapa_sp1Nesse mapa foi utilizada uma metodologia diferente para conseguir vizualizar melhor as diferenças