Análise de dados públicos: como um analista de big data trabalha
Análise de dados públicos começa com uma pergunta e termina num número em que dá para confiar. No meio, há um caminho longo. Cada parte pode dar errado sem avisar. Aqui está ele, passo a passo, com o código.
Como analisar dados públicos: do pedido à entrega
O pedido vira uma pergunta que dá para medir
"Quero saber se meu bairro ficou mais perigoso" vira: qual bairro, qual período, qual crime, comparado com o quê. Sem isso, não existe resposta certa. Só opinião com gráfico.
Achar as bases e os anos certos
O analista lista quem tem o dado, de que ano a que ano e com que detalhe. Pode ser cidade, bairro, rua ou hora. Também anota o que falta. Às vezes a base existe, mas não no detalhe que a pergunta pede.
⚠ Um mesmo estado pode mudar o jeito de publicar no meio da série. O ano da mudança precisa ser tratado à parte.
Baixar tudo e guardar o original
O arquivo bruto fica guardado do jeito que veio, com a data do download. É ele que permite refazer a conta e provar de onde saiu cada número.
Carregar num banco de dados
Planilha não aguenta. O dado vai para um banco como o PostgreSQL, numa tabela por fonte. Data entra como data, número como número. É aqui que aparecem as primeiras linhas quebradas.
CREATE TABLE ocorrencias_bruto ( data_fato text, -- vem como dd/mm/aaaa: entra como texto municipio text, bairro text, tipo_crime text ); \copy ocorrencias_bruto FROM 'ocorrencias_2025.csv' WITH (FORMAT csv, HEADER true, ENCODING 'LATIN1') -- linhas com data quebrada SELECT data_fato, count(*) FROM ocorrencias_bruto WHERE data_fato !~ '^\d{2}/\d{2}/\d{4}$' GROUP BY 1;Normalizar
Cada coisa passa a ter um nome só. Crime com o mesmo sentido ganha o mesmo rótulo. Município ganha o código do IBGE. Acento quebrado é consertado. Espaço sobrando sai.
CREATE EXTENSION IF NOT EXISTS unaccent; SELECT DISTINCT upper(trim(unaccent(bairro))) AS bairro_padrao FROM ocorrencias_bruto; -- tira acento, espaço e põe tudo em maiúscula. -- "JD" = "JARDIM" ainda pede uma tabela de apelidos feita à mão.
Conferir se está completo
A soma bate com o total que o órgão publicou? Tem linha repetida? Algum mês sumiu? Algum ano tem metade dos registros dos outros? Se um desses falha, nada do que vem depois vale.
SELECT date_trunc('month', to_date(data_fato, 'DD/MM/YYYY')) AS mes, count(*) FROM ocorrencias_bruto WHERE data_fato ~ '^\d{2}/\d{2}/\d{4}$' GROUP BY 1 ORDER BY 1; -- mês com contagem muito baixa = arquivo incompleto⚠ Agora repita isso para cada estado. Cada um publica do seu jeito, com colunas e datas diferentes.
Achar as inconsistências
O caso clássico é o bairro. A cidade tem uma lista oficial de bairros. A base costuma trazer bem mais nomes, porque cada registro foi escrito por uma pessoa. "JD AMERICA", "Jardim América" e "J. América" são um bairro só. Tem nome que não existe, bairro de outra cidade e campo em branco.
SELECT bairro, count(*) FROM ocorrencias -- tabela já com o código do IBGE WHERE municipio_ibge = 3543402 -- Ribeirão Preto (SP) GROUP BY 1 ORDER BY 2 DESC; -- compare o total de nomes com a lista oficial
⚠ Se dois nomes do mesmo bairro ficam separados, o bairro some do ranking. Se dois bairros diferentes viram um, ele aparece como o pior da cidade.
Cruzar com o IBGE
Contagem sozinha engana: lugar grande sempre tem mais ocorrência. Com a população do IBGE, a conta vira taxa por 100 mil habitantes. Com a malha do IBGE, vira mapa. Com o código do município, dá para juntar crime com saúde, trânsito e renda.
SELECT o.municipio_ibge, count(*) * 100000.0 / p.populacao AS taxa_100k FROM ocorrencias o JOIN ibge_populacao p USING (municipio_ibge) GROUP BY o.municipio_ibge, p.populacao;Analisar de verdade
Tendência de vários anos, e não só o último. Mês contra o mesmo mês do ano anterior, por causa da época do ano. Comparação só entre lugares com a mesma regra de registro. E a pergunta que quase ninguém faz: essa mudança é real ou é acaso?
Entregar e explicar
Gráfico, texto claro e as ressalvas escritas. Cada número com a fonte e a data da base. Quem recebe tem que conseguir explicar o resultado para outra pessoa.
Erros comuns em análise de dados públicos
- Comparar contagem, e não taxa. A capital sempre "ganha" de uma cidade pequena.
- Ler ano incompleto como queda. O ano mais novo costuma vir pela metade e ser revisado depois.
- Comparar estados com regras diferentes. Cada secretaria chama e conta o crime do seu jeito.
- Somar categorias que se cruzam. A mesma ocorrência entra duas vezes no total.
- Juntar códigos de tamanho diferente. O IBGE usa 7 dígitos; o DATASUS, 6. As bases não se encontram, e ninguém avisa.
Os passos se ligam. Um erro na normalização contamina a análise inteira. Ninguém vê, e o gráfico sai bonito. Na prática, isso custa caro:
- O corretor anuncia como tranquilo um bairro que só parecia calmo porque o nome estava escrito de outro jeito.
- A seguradora cobra mais da capital porque comparou contagem, e não taxa.
- O jornalista corrige a matéria depois, porque leu o ano incompleto como queda.
Dá para fazer sozinho. Mas veja o tamanho
Cada etapa acima é uma habilidade. Achar a base pede conhecer os órgãos. Carregar pede banco de dados. Normalizar pede paciência e regra escrita. Conferir pede saber o total oficial. Analisar pede estatística. E tudo isso se repete a cada base nova que sai.
Para uma cidade e um ano, vale a pena aprender. Para o Brasil inteiro, com vários temas e anos, vira trabalho de tempo integral. A gente já faz isso todo dia.
Precisa de um analista para a sua pergunta? Conte o que precisa no formulário abaixo.
Quer um analista fazendo esse caminho por você?
Consultoria de análise de dados públicos: a gente faz esse caminho por você
Você manda a pergunta. Um analista do Crime Brasil leva ela até a resposta, usando uma base que já passou pelas etapas principais acima: carga, limpeza e cruzamento com o IBGE.
A base pronta
+50 fontes oficiais do Brasil inteiro, já carregadas, limpas e cruzadas com o IBGE. Crime, saúde, trânsito, justiça, prisões, ambiente, clima e população.
Um analista dedicado
A mesma pessoa acompanha o seu pedido do começo ao fim, responde as suas dúvidas e explica como chegou ao número.
O formato que você usa
Relatório em PDF, página HTML, planilha ou o dado direto no seu sistema.
Base nova, mesma régua
Quando sai base nova, a análise pode ser refeita com o mesmo método, e a série continua comparável.
Achar, baixar, carregar, limpar e cruzar já está feito. O analista começa pela análise, e você recebe a resposta com fonte e data em cada número.
Quer ver a parte automática? Conheça o nosso motor de IA. Quer o dado direto no seu sistema? Veja a assinatura de dados. Quer tentar sozinho primeiro? Comece pelo guia de dados públicos.
O que você ganha, por tipo de trabalho
Chegue na reunião com o número oficial do endereço do cliente, e não com opinião.
Mostre o histórico real do bairro antes de comprar, lançar ou anunciar.
Avalie uma lista de endereços com a mesma régua e o mesmo período.
Comece pela análise. A série longa já vem limpa.
Publique o número da pauta com fonte, data e comparação justa.
Veja onde o problema cresce, bairro a bairro e mês a mês.
Conte a sua pergunta ao analista
Diga o tema, o lugar e o período. O analista responde até um dia útil com o caminho e o que a base tem.
Sem senha e sem cobrança agora. O escopo e o valor vão por escrito antes de qualquer pagamento.
Perguntas frequentes
Como analisar dados do DATASUS?
Baixe os arquivos .dbc por estado e por ano no site do DATASUS. Abra com um leitor próprio, como o read.dbc no R ou o PySUS no Python. Carregue num banco e converta o código de município de 6 para 7 dígitos antes de cruzar com o IBGE.
O que é normalizar dados?
É dar um nome só para cada coisa. "JD AMERICA" e "Jardim América" viram o mesmo bairro. Crimes com o mesmo sentido ganham o mesmo rótulo. Sem isso, a mesma coisa é contada como duas.
Como cruzar dados com o código do IBGE?
Ponha em cada base o código de 7 dígitos do município. Aí as bases se juntam por esse código, e não pelo nome da cidade, que muda de grafia. Com ele você liga crime, saúde, trânsito e população no mesmo lugar.
O que faz um analista de big data?
Ele transforma base grande e bagunçada em resposta confiável. Isso vai de achar e baixar o dado até limpar, conferir, cruzar, analisar e explicar o resultado. A maior parte do tempo vai na limpeza, e não no gráfico.
Por que PostgreSQL e não Excel?
A planilha comum para perto de um milhão de linhas, e muita base oficial passa disso num ano só. O banco aguenta centenas de milhões de linhas, guarda o histórico e deixa refazer a conta quando sai base nova.
Dá para aprender a fazer isso sozinho?
Dá. SQL, um pouco de estatística e muita paciência com dado sujo. O difícil não é a ferramenta. É conhecer as armadilhas de cada fonte, e isso só vem de já ter errado nelas.
Quanto tempo leva uma análise dessas?
Depende de quantas bases entram. Feita do zero, uma análise com duas ou três fontes e alguns anos de série costuma levar semanas. Com a base já pronta, como a nossa, a parte pesada já está feita.




















