Note1 ‐ Estatisticas do CEP baseadas no DNE - AddressForAll/DCRPec GitHub Wiki
Perfil 1.1 - Quantidade esperada por comprimento do CEP
Um dígito decimal oferece 10 valores, pois ele pode assumir os valores 0, 1, 2, ... 9. Dois dígitos oferecem 10^2=100 valores... e assim por diante. Conforme analisamos a quantidade de CEPs existentes, ou quantidade de CEPs sob um prefixo de certo comprimento, teremos esse tipo de expectativa.
Como o CEP é fundamentado em contadores seriais, e passados mais de 30 anos esses contadores já foram usados,temos a expectativa natural de observar valores próximos desse máximo teórico. Por ser hierárquico, todavia, essa expectativa nem sempre é satisfeita. Aqui os resultados que descrevem esse "perfil de quantidades":
with t1 AS (
select digits, substring(c.cep,1,digits) as prefix, count(*) n_cep, count(distinct cep5) as n_cep5
from cep_tipologia c, generate_series(1,8) t(digits) group by 1,2 order by 1,2
), t2 AS (
SELECT digits, count(distinct prefix) as n_prefixes,
PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY n_cep) AS median,
round(avg(n_cep)) as avg,
min(n_cep), max(n_cep), sum(1) as n_cep5
FROM t1 group by 1 order by 1
) SELECT digits,
n_prefixes::text ||' ('||round(100.0*n_prefixes/(10^digits))||'%)' as n_prefixes,
median, avg, min, max, n_cep5
FROM t2;
| digits | n_prefixes | median | avg | min | max | n_cep5 |
|---|---|---|---|---|---|---|
| 1 | 10 (100%) | 147142 | 160514 | 71978 | 353742 | 10 |
| 2 | 98 (98%) | 13404 | 16379 | 1875 | 98126 | 98 |
| 3 | 878 (88%) | 1232 | 1828 | 1 | 18518 | 878 |
| 4 | 6970 (70%) | 79 | 230 | 1 | 4521 | 6970 |
| 5 | 28628 (29%) | 21 | 56 | 1 | 837 | 28628 |
| 6 | 116364 (12%) | 10 | 14 | 1 | 100 | - |
| 7 | 685570 (7%) | 1 | 2 | 1 | 10 | - |
| 8 | 1605136 (2%) | 1 | 1 | 1 | 1 | - |
Em todas as linhas podemos supor cep_tot=1605136 e cep5_tot=28628. Na tabela, o percentual de n_prefixes é relativo a 10^digits, ou seja, o aproveitamento máximo esperado com aquela quantidade de dígitos. Até digits=5 temos n_prefixes=n_cep5, conforme esperado. Com 4 e 5 dígitos a mediana é quase 1/3 da média, refletindo a herança histórica do CEP5.
O problema da hierarquia, associando logradouros ou regiões a intervalos numéricos (denominados "faixas de CEP"), é o baixo aproveitamento, acentuado a partir do 5 dígito. Nem todas as faixas conseguem fazer pleno uso da sua capacidade, gerando capacidade ociosa.
Perfil 1.2 - Tipos e sua distribuição
WITH tot AS (
SELECT count(*) AS t
FROM cep_tipologia cep_tipologia_1
)
SELECT cep_tipologia.tipo_cep,
count(*) AS n,
round(100.0 * count(*)::numeric / tot.t::numeric, 1)::text || '%'::text AS percent
FROM cep_tipologia,
tot
GROUP BY cep_tipologia.tipo_cep, tot.t
ORDER BY cep_tipologia.tipo_cep;
Distribuição percentual conforme o total de 1605136 CEPs.
| tipo_cep | n | percent |
|---|---|---|
| CAIXA_POSTAL | 2055 | 0.1% |
| GRANDE_USUARIO | 21761 | 1.4% |
| LOCALIDADE | 9726 | 0.6% |
| LOGRADOURO-ABRANGENCIA_NUMERICA | 91199 | 5.7% |
| LOGRADOURO-SECCIONADO_EXPLICITO | 117174 | 7.3% |
| LOGRADOURO-SIMPLES | 1349724 | 84.1% |
| UNIDADE_OPERACIONAL | 13497 | 0.8% |
Somando os 3 tipos de "CEP por LOGRADOURO", concluímos que 97,1% da base DNE é dedicada a essa categoria.
Perfil 1.3 - Municípios contemplados por CEP de logradouro
Estatística de "sem CEP de logradouro", supondo um mínimo de 20 CEPs por município.
SELECT avg(n_ceps), min(n_ceps) , count(*) nn
FROM (
SELECT municipio, count(*) n_ceps
FROM (select distinct municipio, cep from cep_unificado) t
GROUP BY 1 ORDER BY 1
) t2
WHERE n_ceps<20; -- nn=3775
Contagem exata, pela tipologia.
select count(distinct municipio) from (
select u.municipio, t.tipo_cep, count(*)
from cep_tipologia t inner join cep_unificado u on u.cep=t.cep
where tipo_cep like 'LOGRADOURO%' group by 1,2 order by 1,2
) tt; -- 1496
select count(distinct municipio) from cep_unificado; -- 5297
select 5297-1496; -- 3801
Ou seja, a contagem bate com a estatística, não há indício de equivoco na contagem. Podemos hoje afirmar que são ~3800 municípios sem "CEP por logradouro". 97% dos dados do DNE são dedicados a apenas 28% dos municípios. Em termos de cobertura territorial a cobertura do CEP é baixa. Ela é boa para a cobetura populacional, pois a população se concentra em ~20% dos municípios.