O dataset utilizado nesse documento refere-se aos incidentes envolvendo qualquer tipo de arma de fogo no território estadunidense no período de 2013 - 2018. É importante ressaltar que esses dados não necessariamente somente se referem a incidentes fatais.
Nesta análise, o objetivo é investigar o padrão de violência armada nos Estados Unidos a partir de um conjunto de dados públicos, buscando entender como os casos se distribuem no tempo e no espaço e qual a gravidade típica em termos de vítimas fatais e feridas. Esse tipo de investigação é relevante para a formulação de políticas públicas e para o debate sobre controle de armas, pois oferece evidências empíricas sobre a intensidade e a dinâmica da violência armada em diferentes contextos e períodos.
Para abordar esse problema, foi utilizado um dataset do Kaggle que compila registros do Gun Violence Archive, cobrindo incidentes de violência armada entre 2013 e 2018. A metodologia é exploratória (EDA), combinando limpeza e transformação dos dados, criação de novas variáveis e visualizações (gráficos e tabelas) para revelar padrões que não são imediatamente aparentes nos dados brutos.
A abordagem técnica foca em transformar o conjunto de dados original em uma versão mais enxuta e analiticamente útil, com variáveis derivadas como ano, mês e total de vítimas (mortos + feridos). Com isso, torna-se possível investigar questões sazonais (por ano e mês), padrões de intensidade e diferenças entre localidades, sem alterar o conteúdo informativo original do dataset.
Do ponto de vista aplicado, esta análise interessa a formuladores de políticas públicas de segurança, pesquisadores em violência urbana e organizações da sociedade civil envolvidas em prevenção à violência armada. Ao transformar registros incidentais em evidências estruturadas sobre sazonalidade, tipos de armas e concentração geográfica, o estudo oferece subsídios concretos para priorizar recursos, desenhar campanhas de prevenção e orientar debates sobre regulação de armas de fogo nos Estados Unidos.
Nesta seção, será listado explicitamente todos os pacotes necessários para que a análise possa ser reproduzida por qualquer leitor, carregando-os de forma antecipada.
O tidyverse é utilizado como motor principal de manipulação dos dados, leitura do CSV, criação de novas variáveis e visualização por meio do ggplot2.
O lubridate é empregado para tratar datas de forma eficiente, permitindo extrair ano e mês da data de ocorrência, algo essencial para as análises sazonais.
O kableExtra é usado para apresentar os dados brutos e tabelas-resumo de forma limpa e legível no relatório final, melhorando a comunicação dos resultados.
O pacote scales auxilia na formatação de eixos, rótulos numéricos e legendas em gráficos, enquanto gridExtra permite combinar múltiplos gráficos em um único layout quando necessário.
Os dados foram obtidos através do repositório Kaggle Gun
Violence Data, que compila registros do Gun Violence
Archive em formato tabular.
Essa fonte reúne incidentes reportados entre 2013 e 2018, permitindo
análises estatísticas e exploratórias sobre violência armada ao longo do
tempo.
O dataset original contém mais de 230.000 registros de incidentes,
incluindo variáveis como data, estado, cidade, número de mortos, número
de feridos e coordenadas geográficas.
Algumas colunas, como participant_age e
participant_gender, apresentam formatação complexa (texto
não estruturado e informações concatenadas), o que exige tratamento
específico e motiva, nesta análise, o foco em variáveis estruturadas de
impacto (vítimas) e localização.
Nesta etapa, o arquivo CSV é importado e são realizadas
transformações para tornar o conjunto de dados mais adequado à análise
exploratória.
Primeiro, é convertida a coluna de data para o formato apropriado; em
seguida, foram criadas variáveis auxiliares de ano e mês e uma métrica
total de vítimas, além de selecionar apenas as colunas necessárias e
garantir a presença da informação de estado.
df_raw <- read_csv("gun-violence-data_01-2013_03-2018.csv")
df_clean <- df_raw %>%
mutate(date = ymd(date)) %>%
mutate(year = year(date),
month = month(date, label = TRUE)) %>%
mutate(total_victims = n_killed + n_injured) %>%
select(date, year, month, state, city_or_county, n_killed, n_injured, total_victims, gun_type, latitude, longitude) %>%
filter(!is.na(state))
df_weapons <- df_clean %>%
select(gun_type) %>%
drop_na(gun_type) %>%
separate_rows(gun_type, sep = "\\|\\|") %>%
mutate(gun_type_clean = str_remove(gun_type, "^[0-9]+::")) %>%
mutate(gun_type_clean = str_to_title(gun_type_clean))Essas etapas seguem um processo lógico: corrigir tipos, extrair componentes temporais relevantes, criar uma métrica de severidade por incidente e, por fim, reduzir o dataset às variáveis de interesse, removendo linhas sem estado para evitar problemas nas análises espaciais.
Abaixo, apresento uma amostra das primeiras 10 linhas do conjunto de dados limpo para que o leitor visualize como o dataset final está estruturado, sem imprimir mais de 200 linhas no relatório.
head(df_clean %>% select(-gun_type), 10) %>%
kable(caption = "Dados Tratados (Amostra)") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"))| date | year | month | state | city_or_county | n_killed | n_injured | total_victims | latitude | longitude |
|---|---|---|---|---|---|---|---|---|---|
| 2013-01-01 | 2013 | Jan | Pennsylvania | Mckeesport | 0 | 4 | 4 | 40.3467 | -79.8559 |
| 2013-01-01 | 2013 | Jan | California | Hawthorne | 1 | 3 | 4 | 33.9090 | -118.3330 |
| 2013-01-01 | 2013 | Jan | Ohio | Lorain | 1 | 3 | 4 | 41.4455 | -82.1377 |
| 2013-01-05 | 2013 | Jan | Colorado | Aurora | 4 | 0 | 4 | 39.6518 | -104.8020 |
| 2013-01-07 | 2013 | Jan | North Carolina | Greensboro | 2 | 2 | 4 | 36.1140 | -79.9569 |
| 2013-01-07 | 2013 | Jan | Oklahoma | Tulsa | 4 | 0 | 4 | 36.2405 | -95.9768 |
| 2013-01-19 | 2013 | Jan | New Mexico | Albuquerque | 5 | 0 | 5 | 34.9791 | -106.7160 |
| 2013-01-21 | 2013 | Jan | Louisiana | New Orleans | 0 | 5 | 5 | 29.9435 | -90.0836 |
| 2013-01-21 | 2013 | Jan | California | Brentwood | 0 | 4 | 4 | 37.9656 | -121.7180 |
| 2013-01-23 | 2013 | Jan | Maryland | Baltimore | 1 | 6 | 7 | 39.2899 | -76.6412 |
Abaixo, um resumo estatístico das variáveis numéricas principais, que fornece uma visão geral da gravidade dos incidentes em termos de mortos, feridos e total de vítimas por evento.
# Resumo estatístico focado nas vítimas
summary_stats <- df_clean %>%
summarise(
Total_Incidentes = n(),
Media_Mortos = mean(n_killed),
Max_Mortos_Evento = max(n_killed),
Media_Feridos = mean(n_injured),
Total_Vitimas_Reg = sum(total_victims)
)
summary_stats %>%
kable(caption = "Estatísticas Descritivas Consolidadas", digits = 2) %>%
kable_styling(bootstrap_options = c("striped", "bordered"), full_width = F)| Total_Incidentes | Media_Mortos | Max_Mortos_Evento | Media_Feridos | Total_Vitimas_Reg |
|---|---|---|---|---|
| 239677 | 0.25 | 50 | 0.49 | 178870 |
Em seguida, é descrito de forma consolidada as principais variáveis utilizadas na análise:
variaveis_desc <- tibble::tribble(
~Variavel, ~Descricao,
"date", "Data exata de ocorrência do incidente",
"year", "Ano de ocorrência, utilizado para analisar tendências ao longo do tempo",
"month", "Mês de ocorrência (abreviado), utilizado para investigar sazonalidade",
"state", "Estado norte-americano onde o incidente ocorreu",
"city_or_county", "Cidade ou condado associado ao incidente",
"n_killed", "Número de pessoas mortas em cada incidente",
"n_injured", "Número de pessoas feridas em cada incidente",
"total_victims", "Soma de mortos e feridos, usada como medida de severidade do evento"
)
variaveis_desc %>%
kable(caption = "Descrição das Variáveis-Chave Utilizadas na Análise") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"))| Variavel | Descricao |
|---|---|
| date | Data exata de ocorrência do incidente |
| year | Ano de ocorrência, utilizado para analisar tendências ao longo do tempo |
| month | Mês de ocorrência (abreviado), utilizado para investigar sazonalidade |
| state | Estado norte-americano onde o incidente ocorreu |
| city_or_county | Cidade ou condado associado ao incidente |
| n_killed | Número de pessoas mortas em cada incidente |
| n_injured | Número de pessoas feridas em cada incidente |
| total_victims | Soma de mortos e feridos, usada como medida de severidade do evento |
Essas variáveis constituem o núcleo da análise, permitindo quantificar a severidade de cada incidente, estudar padrões temporais (ano e mês) e mapear a distribuição geográfica dos eventos por estado e cidade.
É investigado se a violência está aumentando ou diminuindo ao longo
dos anos registrados.
Os dados são agregados por mês/ano para visualizar a tendência.
# grouping dados por mês para observar possíveis tendências
trend_data <- df_clean %>%
group_by(floor_date = floor_date(date, "month")) %>%
summarise(total_incidents = n(),
total_killed = sum(n_killed))
# evolução temporal
ggplot(trend_data, aes(x = floor_date)) +
geom_line(aes(y = total_incidents, color = "Total de Incidentes"), size = 1) +
geom_line(aes(y = total_killed, color = "Total de Mortes"), size = 1) +
labs(title = "Evolução da Violência Armada (2013-2018)",
subtitle = "Comparação entre volume de casos e letalidade ao longo do tempo",
x = "Data",
y = "Quantidade Absoluta",
color = "Métrica") +
theme_minimal() +
scale_color_manual(values = c("Total de Incidentes" = "steelblue", "Total de Mortes" = "darkred"),
labels = c("Total de Incidentes", "Total de Mortes")) +
theme(legend.position = "bottom")Este gráfico revela como o volume de incidentes e de mortes evolui ao longo do período coberto, destacando aumentos e eventuais estabilizações na violência armada. Para gestores de segurança e formuladores de políticas, essa curva temporal indica períodos em que a pressão sobre o sistema de saúde, justiça criminal e policiamento tende a ser maior, permitindo planejar ações preventivas e alocação de recursos de maneira mais estratégica.
Análise da distribuição dos incidentes e vítimas por estado.
Quais estados concentram maior quantidade de violência armada
# Identificando os Top 10 estados por número de mortes
state_violence <- df_clean %>%
group_by(state) %>%
summarise(total_killed = sum(n_killed),
total_injured = sum(n_injured)) %>%
arrange(desc(total_killed)) %>%
head(10)
# Transformando dados para formato longo (tidy) para plotagem agrupada
state_violence_long <- state_violence %>%
pivot_longer(cols = c(total_killed, total_injured),
names_to = "type",
values_to = "count")
# Gráfico de barras comparativo
ggplot(state_violence_long, aes(x = reorder(state, count), y = count, fill = type)) +
geom_col(position = "dodge") +
coord_flip() +
labs(title = "Top 10 Estados com Maior Violência Armada",
subtitle = "Ranking baseado no número total de mortes",
x = "Estado",
y = "Total de Pessoas",
fill = "Tipo de Vítima") +
scale_fill_manual(values = c("total_injured" = "#E69F00", "total_killed" = "#D55E00"),
labels = c("Feridos", "Mortos")) +
theme_light()Os estados mais populosos, como Califórnia, Texas e Flórida, concentram um grande número absoluto de mortes e feridos por armas de fogo, reforçando que a violência armada não é homogênea no território norte-americano. Esse tipo de ranking ajuda a identificar onde intervenções mais intensivas podem gerar maior impacto, seja em termos de fiscalização, programas comunitários ou políticas específicas de controle de armas.
Nem todo incidente resulta em morte, mas alguns são catastróficos. O gráfico abaixo busca correlações entre número de feridos e mortos para identificar eventos de “Mass Shooting”
# Filtrando para remover zeros irrelevantes e focar em incidentes com vítimas
heatmap_data <- df_clean %>%
filter(total_victims > 0)
ggplot(heatmap_data, aes(x = n_injured, y = n_killed)) +
geom_bin2d(bins = 30) +
scale_fill_viridis_c(option = "magma", trans = "log", name = "Frequência\n(Escala Log)") +
geom_smooth(method = "lm", color = "cyan", size = 0.5, se = FALSE) +
labs(title = "Mapa de Calor: Severidade dos Incidentes",
subtitle = "Cores mais quentes indicam onde a maioria dos crimes se concentra",
x = "Número de Feridos",
y = "Número de Mortos") +
theme_dark() +
annotate("text", x = 25, y = 40, label = "Eventos Raros\n(Mass Shootings)", color = "white", size = 3)A forte concentração de incidentes com poucos mortos e feridos indica que a maior parte da violência armada está associada a eventos de menor escala, ainda que frequentes. Os pontos mais distantes da massa principal representam eventos raros, mas extremamente letais, que sustentam o debate sobre tiroteios em massa e o papel de determinadas armas em episódios de alta mortalidade.
# Contagem das armas limpas
top_weapons <- df_weapons %>%
count(gun_type_clean, sort = TRUE) %>%
# Remover "Unknown" se quiser focar apenas em armas identificadas
filter(gun_type_clean != "Unknown") %>%
head(3)
# Gráfico de Barras
ggplot(top_weapons, aes(x = reorder(gun_type_clean, n), y = n)) +
geom_col(fill = "#2c3e50", alpha = 0.8) +
geom_text(aes(label = comma(n)), hjust = -0.1) + # Adiciona o valor na barra
coord_flip() +
labs(title = "As 3 Armas Mais Identificadas em Crimes",
subtitle = "Excluindo armas não identificadas",
x = "Tipo de Arma",
y = "Frequência de Aparição") +
theme_classic() +
expand_limits(y = max(top_weapons$n) * 1.1) # Dá espaço para o textoO gráfico confirma a prevalência massiva de Handguns (Pistolas/Revólveres). Elas são fáceis de ocultar e transportar, superando largamente armas longas como rifles ou espingardas (shotguns) na criminalidade diária.
Nesta seção, é refinada a análise para focar exclusivamente nos eventos de alta severidade. Definimos “Mass Shooting” como incidentes com 4 ou mais vítimas (mortos ou feridos). O objetivo é entender se o perfil do armamento muda quando analisamos apenas esses eventos catastróficos.
# 1. Filtrar apenas Mass Shootings (>= 4 vítimas)
mass_shootings_df <- df_clean %>%
filter(total_victims >= 4)
# 2. Processamento de String (Limpeza da coluna gun_type apenas para esses casos)
ms_weapons <- mass_shootings_df %>%
select(gun_type) %>%
drop_na(gun_type) %>%
# Separa linhas múltiplas
separate_rows(gun_type, sep = "\\|\\|") %>%
# Remove códigos numéricos "0::", "1::"
mutate(gun_type_clean = str_remove(gun_type, "^[0-9]+::")) %>%
# Padronização de texto
mutate(gun_type_clean = str_to_title(gun_type_clean))
# 3. Contagem e Ranking (Top 3)
top_ms_weapons <- ms_weapons %>%
count(gun_type_clean, sort = TRUE) %>%
filter(gun_type_clean != "Unknown") %>% # Remove desconhecidos
head(3)
# 4. Visualização
ggplot(top_ms_weapons, aes(x = reorder(gun_type_clean, n), y = n)) +
geom_col(fill = "#8B0000", alpha = 0.9) + # Vermelho escuro para indicar gravidade
geom_text(aes(label = n), hjust = -0.1, fontface = "bold") +
coord_flip() +
labs(title = "Top 3 Armas em Mass Shootings",
subtitle = "Considerando incidentes com 4+ vítimas (Mortos + Feridos)",
x = "Tipo de Arma",
y = "Frequência em Massacres") +
theme_classic() +
expand_limits(y = max(top_ms_weapons$n) * 1.15)Entre os incidentes classificados como mass shootings (4 ou mais vítimas), observa-se a presença marcante de rifles e armas com maior capacidade de fogo, reforçando a associação entre esse tipo de armamento e eventos altamente letais. Para o desenho de políticas, esse resultado sugere que restrições específicas a certas categorias de armas podem ter efeito direto na redução da magnitude dos tiroteios em massa, mesmo que não eliminem a violência armada cotidiana.
Para finalizar a análise exploratória, foi investigado o extremo oposto: incidentes onde houve vítimas feridas, mas nenhuma morte. Entender qual armamento está associado a casos de menor letalidade (sobrevivência das vítimas) pode indicar características do armamento (menor calibre) ou do tipo de crime.
# 1. Filtrar incidentes com feridos, mas SEM mortes
non_fatal_df <- df_clean %>%
filter(n_killed == 0 & n_injured > 0)
# 2. Processamento de String para Armas
nf_weapons <- non_fatal_df %>%
select(gun_type) %>%
drop_na(gun_type) %>%
separate_rows(gun_type, sep = "\\|\\|") %>%
mutate(gun_type_clean = str_remove(gun_type, "^[0-9]+::")) %>%
mutate(gun_type_clean = str_to_title(gun_type_clean))
# 3. Contagem e Ranking (Top 3)
top_nf_weapons <- nf_weapons %>%
count(gun_type_clean, sort = TRUE) %>%
filter(gun_type_clean != "Unknown") %>%
head(3)
# 4. Visualização
ggplot(top_nf_weapons, aes(x = reorder(gun_type_clean, n), y = n)) +
geom_col(fill = "#27AE60", alpha = 0.8) + # Verde para indicar "Sobrevivência/Não letal"
geom_text(aes(label = comma(n)), hjust = -0.1) +
coord_flip() +
labs(title = "Top 3 Armas em Incidentes Sem Mortes",
subtitle = "Casos com apenas feridos (n_killed = 0)",
x = "Tipo de Arma",
y = "Frequência") +
theme_classic() +
expand_limits(y = max(top_nf_weapons$n) * 1.15)Análise: Novamente, a Handgun (Pistola) domina o cenário. Isso reforça a tese de que a pistola é a arma onipresente na violência americana, seja em assassinatos ou em ferimentos. No entanto, é interessante observar se armas de menor potencial ofensivo ou armas de defesa pessoal aparecem aqui com mais frequência relativa do que nos dados de massacres. O fato de pistolas liderarem tanto em mortes quanto em ferimentos sugere que a letalidade depende muito da intenção do atirador e da circunstância, e não apenas do calibre da arma.
incident_weapon <- df_clean %>%
select(date, state, city_or_county, n_killed, gun_type) %>%
drop_na(gun_type) %>%
separate_rows(gun_type, sep = "\\|\\|") %>%
mutate(gun_type_clean = str_remove(gun_type, "^[0-9]+::"),
gun_type_clean = str_to_title(gun_type_clean)) %>%
filter(gun_type_clean != "Unknown" & gun_type_clean != "0:Unknown")
weapon_lethality <- incident_weapon %>%
group_by(gun_type_clean) %>%
summarise(
mean_killed = mean(n_killed, na.rm = TRUE),
n_incidents = n()
) %>%
filter(n_incidents >= 30) %>%
arrange(desc(mean_killed))
weapon_lethality %>%
mutate(mean_killed = round(mean_killed, 2)) %>%
kable(caption = "Letalidade Média por Tipo de Arma (Mortes por Incidente)") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed")) %>%
row_spec(0, bold = TRUE, background = "#23272b") %>%
row_spec(1, bold = TRUE, color = "white", background = "#D55E00")| gun_type_clean | mean_killed | n_incidents |
|---|---|---|
| 223 Rem [Ar-15] | 0.23 | 1613 |
| 30-30 Win | 0.20 | 110 |
| 7.62 [Ak-47] | 0.17 | 939 |
| 44 Mag | 0.17 | 197 |
| 308 Win | 0.16 | 92 |
| Shotgun | 0.15 | 4263 |
| 10mm | 0.14 | 50 |
| 45 Auto | 0.14 | 2360 |
| Handgun | 0.13 | 25038 |
| 30-06 Spr | 0.13 | 84 |
| 9mm | 0.13 | 6448 |
| Rifle | 0.13 | 5268 |
| 40 Sw | 0.13 | 2745 |
| 357 Mag | 0.13 | 822 |
| 12 Gauge | 0.12 | 1112 |
| 22 Lr | 0.12 | 3346 |
| 20 Gauge | 0.11 | 205 |
| 410 Gauge | 0.10 | 97 |
| 38 Spl | 0.10 | 1809 |
| Other | 0.08 | 1060 |
| 32 Auto | 0.08 | 488 |
| 25 Auto | 0.08 | 610 |
| 380 Auto | 0.07 | 2392 |
| 16 Gauge | 0.03 | 32 |
A tabela de letalidade média por tipo de arma mostra que nem todos os armamentos envolvidos em incidentes de violência armada produzem o mesmo impacto em termos de mortes por ocorrência. Alguns tipos, como rifles semiautomáticos de maior potência (por exemplo, modelos semelhantes ao AR-15), aparecem com média de mortos por incidente mais elevada do que armas de menor calibre ou uso mais cotidiano, como muitas pistolas. Isso indica que, quando esses rifles entram em cena, os episódios tendem a ser mais letais, mesmo que ocorram com menor frequência.
Por outro lado, armas amplamente presentes na violência diária, como handguns (pistolas e revólveres), podem ter uma letalidade média menor por incidente, mas aparecem em um número muito maior de casos. Isso significa que elas sustentam o “volume” da violência armada cotidiana, enquanto armas de maior poder de fogo concentram mortes em eventos mais raros, porém extremamente graves, como tiroteios em massa. Do ponto de vista de políticas públicas, esse resultado reforça a necessidade de estratégias combinadas: restringir o acesso a armamentos de alta letalidade para reduzir o impacto dos eventos extremos e, ao mesmo tempo, manter ações contínuas de controle, fiscalização e prevenção voltadas às pistolas, que estruturam a maior parte dos incidentes.
# somando todos os anos
seasonal_data <- df_clean %>%
group_by(month) %>%
summarise(total_incidents = n())
# Gráfico de Sazonalidade
ggplot(seasonal_data, aes(x = month, y = total_incidents)) +
geom_col(fill = "#34d1bf", alpha = 0.8) +
labs(title = "Sazonalidade Mensal de Incidentes",
subtitle = "Média de Casos Agregados (2013-2018)",
x = "Mês",
y = "Total de Incidentes (Todos os Anos)") +
theme_dark() +
scale_y_continuous(labels = comma) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))A sazonalidade mensal evidencia um aumento de incidentes nos meses de clima mais quente, sobretudo no verão, quando há maior interação social em espaços públicos. Para governos locais e organizações de prevenção à violência, esses picos sazonais indicam janelas de oportunidade para concentrar campanhas educativas, programas de mediação de conflitos e operações de fiscalização em períodos de risco elevado
Este projeto buscou compreender a dinâmica da violência armada nos Estados Unidos entre 2013 e 2018, analisando como os incidentes se distribuem no tempo e no espaço e qual é o papel de diferentes tipos de armas na gravidade dos eventos. A motivação central foi transformar um grande volume de registros incidentais em evidências quantitativas que pudessem informar políticas públicas, ações de prevenção e o debate sobre controle de armas.
Para isso, utilizou-se um conjunto de dados do Kaggle baseado no Gun Violence Archive, contendo centenas de milhares de incidentes com informações sobre local, data, mortos, feridos e tipo de armamento. A análise adotou uma abordagem exploratória, envolvendo limpeza e transformação dos dados, criação de variáveis derivadas (como total de vítimas e marcadores temporais) e construção de gráficos e tabelas voltados a evidenciar padrões de intensidade, sazonalidade e severidade dos eventos.
Handguns (pistolas e revólveres) aparecem de forma sistemática como as armas mais comuns em incidentes de violência armada, tanto em casos letais quanto em incidentes com apenas feridos, o que as caracteriza como o “pilar” da violência cotidiana.
Rifles de maior capacidade de fogo, como o AR-15 e armas de perfil semelhante, estão desproporcionalmente presentes em episódios de mass shooting, concentrando elevado número de mortes em um número relativamente pequeno de incidentes, o que reforça sua associação com eventos de altíssima letalidade.
A análise temporal mostra que a violência armada apresenta tendência de concentração em determinados períodos, com destaque para os meses de verão, quando o volume de incidentes aumenta de forma significativa.
A distribuição por estados indica que unidades federativas grandes e populosas concentram parcela expressiva dos casos, sugerindo que o problema é geograficamente desigual e exige estratégias adaptadas a contextos locais específicos.
Para formuladores de políticas públicas, os resultados indicam a necessidade de estratégias diferenciadas: de um lado, medidas específicas para reduzir o acesso e o uso de rifles de alta capacidade em situações de risco elevado de tiroteios em massa; de outro, políticas contínuas e abrangentes voltadas ao controle e fiscalização de pistolas, que estruturam a maior parte da violência armada cotidiana. Para organizações da sociedade civil e pesquisadores, os padrões de sazonalidade e concentração geográfica ajudam a direcionar campanhas educativas, projetos comunitários e estudos adicionais para períodos e regiões de maior vulnerabilidade.
Esta análise apresenta limitações importantes: está restrita ao período de 2013 a 2018, foca em variáveis estruturadas e não explora em profundidade campos textuais sobre perfil das vítimas e contexto dos incidentes, além de não incorporar diretamente informações socioeconômicas ou legislativas por estado. Trabalhos futuros poderiam integrar modelos preditivos, análises geoespaciais mais refinadas e dados sobre leis estaduais de armas, desigualdades sociais e indicadores econômicos, permitindo avaliar com maior precisão o efeito de políticas específicas e das condições locais na evolução da violência armada.