Capítulo 6 — Coleta e análise de dados
Mapa da aula
Aula 06 publicada. Mapa, exemplo, EX033.
flowchart TD
N0["6.1 O conjunto de dados montado"]
N1["6.2 Taxas e a razão de taxas"]
N2["Laboratório — Razão de taxas com bootstrap"]
N3["6.3 Ler o intervalo"]
N4["6.4 Estratificar pela propriedade"]
N5["6.5 A descrição da colisão com mudanças"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX033"]
Desenho lógico
flowchart LR
N0["6.1 O conjunto de dados montado"]
N1["6.2 Taxas e a razão de taxas"]
N2["Laboratório — Razão de taxas com bootstrap"]
N3["6.3 Ler o intervalo"]
N4["6.4 Estratificar pela propriedade"]
N5["6.5 A descrição da colisão com mudanças"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX033"]
[6.1 O conjunto de dados montado]
|
v
[6.2 Taxas e a razão de taxas]
|
v
[Laboratório — Razão de taxas com bootstrap]
|
v
[6.3 Ler o intervalo]
|
v
[6.4 Estratificar pela propriedade]
|
v
[6.5 A descrição da colisão com mudanças]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX033]
Objetivos de aprendizagem
Você vai (1) calcular taxas de incidentes por certificado-ano; (2) expressar a incerteza de uma razão de taxas com bootstrap; (3) comparar as estimativas gerais e estratificadas.
6.1 O conjunto de dados montado
A extração completa cobre dois anos. Os certificados manuais contribuem com 540 certificados-ano e 23 incidentes de expiração ligados; os certificados ACME, com 900 certificados-ano e 7 incidentes. Restam quarenta e uma linhas com modo de renovação desconhecido e dois incidentes; Felipe as relata à parte e roda uma conferência que mostra que atribuí-las todas a qualquer um dos grupos não muda nenhuma conclusão. Cada número remonta a uma consulta e a uma entrada do log de codificação. Antes de rodar qualquer comparação, ele relê a proposta para confirmar que a análise corresponde ao que registrou, incluindo a semente e o número de reamostragens.
6.2 Taxas e a razão de taxas
Uma taxa divide os eventos pela exposição. A renovação manual apresenta 4,26 incidentes por 100 certificados-ano, e a ACME, 0,78, o que dá uma razão de taxas de 5,48: os certificados manuais falharam cerca de cinco vezes e meia mais por unidade de exposição. Uma razão sozinha esconde a incerteza, e sete incidentes ACME é um número pequeno. O bootstrap estima a incerteza reamostrando os certificados-ano com reposição milhares de vezes e recalculando a razão, e depois lendo os 95 por cento centrais dos valores resultantes. Ele faz poucas suposições, o que se adapta a dados de eventos esparsos.
Laboratório — Razão de taxas com bootstrap
"""Expiry incidents per 100 certificate-years with a bootstrap interval for the rate ratio (synthetic)."""
import random
MANUAL = [1] * 23 + [0] * 517 # 540 manual certificate-years, 23 incidents
ACME = [1] * 7 + [0] * 893 # 900 ACME certificate-years, 7 incidents
def rate(x): return 100 * sum(x) / len(x)
def main():
rr = rate(MANUAL) / rate(ACME)
rng = random.Random(7); boots = []
for _ in range(5000):
m = [rng.choice(MANUAL) for _ in MANUAL]; a = [rng.choice(ACME) for _ in ACME]
if sum(a): boots.append(rate(m) / rate(a))
boots.sort()
lo, hi = boots[int(0.025 * len(boots))], boots[int(0.975 * len(boots))]
print(f"manual {rate(MANUAL):.2f} per 100 cert-years, acme {rate(ACME):.2f}")
print(f"rate ratio {rr:.2f}, bootstrap 95% interval {lo:.2f}-{hi:.2f} (seed 7, 5000 resamples)")
if __name__ == "__main__":
main()
Execute com python3 lab_rate.py. Saída verificada:
manual 4.26 per 100 cert-years, acme 0.78
rate ratio 5.48, bootstrap 95% interval 2.50-17.50 (seed 7, 5000 resamples)
6.3 Ler o intervalo
O intervalo por bootstrap vai de 2,50 a 17,50, com semente 7 e 5.000 reamostragens. O limite inferior bem acima de 1 significa que os dados são difíceis de conciliar com taxas iguais, mas o intervalo é largo e assimétrico, porque um punhado de incidentes ACME domina o denominador da razão. Felipe relata o intervalo no resumo ao lado da estimativa pontual, escrevendo "cerca de 2,5 a 17,5 vezes maior" em vez de "5,48 vezes maior", porque o número único sugeriria mais precisão do que sete eventos conseguem dar. Assim, o leitor pode julgar por si mesmo quanto peso o achado merece.
6.4 Estratificar pela propriedade
Entre os certificados com dono conhecido, a renovação manual apresenta 9 incidentes em 335 certificados-ano, 2,69 por 100, e a ACME, 2 em 711, 0,28 por 100, uma razão perto de 9,6. Entre os certificados sem dono, a manual apresenta 14 em 205, 6,83 por 100, e a ACME, 5 em 189, 2,65 por 100, uma razão perto de 2,6. Daí decorrem duas lições. A automação está associada a taxas menores nos dois estratos, então a propriedade não elimina o efeito. E os certificados sem dono falham mais, qualquer que seja o modo: um certificado ACME órfão falha mais ou menos tanto quanto um manual com dono. A propriedade, portanto, importa por si só, e Felipe a assinala como uma segunda alavanca para o capítulo de discussão.
6.5 A descrição da colisão com mudanças
Cinco dos sete incidentes ACME vieram depois de uma mudança de infraestrutura nos sete dias anteriores, o que confirma a impressão do piloto. Felipe relata isso de forma descritiva, como a proposta exigia, e acrescenta uma observação concreta dos logs: em quatro desses cinco casos, o cliente ACME registrou erros de renovação por mais de uma semana antes da expiração, mas os logs não eram encaminhados ao monitoramento. Esse achado leva diretamente à ação: alertar sobre falhas de renovação, que o SP 800-57 Part 1 trataria como parte da transição planejada de chaves, fecha uma lacuna que a automação, sozinha, deixa aberta.
Exemplo resolvido
Felipe relata 4,26 contra 0,78 incidentes por 100 certificados-ano, uma razão de taxas de 5,48 com intervalo por bootstrap de 2,50 a 17,50, uma taxa ACME menor nos dois estratos de propriedade e erros de renovação não monitorados antes da maioria dos incidentes ACME.
Caso sintético. A exposição, os incidentes e os estratos são dados didáticos inventados.
Erros e limites
Intervalos por bootstrap a partir de pouquíssimos eventos são instáveis; com sete eventos, relate-os como aproximados. A estratificação controla apenas a propriedade.
Exercícios
-
EX033 — Taxas. Informe as taxas dos dois modos de renovação por 100 certificados-ano. Rubrica: 3 = manual 4,26, ACME 0,78;; 2 = uma;; 1 = contagens;; 0 = nenhuma.
-
EX034 — Intervalo por bootstrap. Dê a razão de taxas e seu intervalo, com a semente. Rubrica: 3 = 5,48, 2,50–17,50, semente 7, 5000 reamostragens;; 2 = razão e intervalo;; 1 = só a razão;; 0 = nenhuma.
-
EX035 — Intervalo largo. Por que o intervalo é largo e assimétrico? Rubrica: 3 = apenas sete incidentes ACME dominam o denominador da razão;; 2 = amostra pequena;; 1 = código ruim;; 0 = nenhuma.
-
EX036 — Razões por estrato. Dê a razão de taxas dentro de cada estrato de propriedade. Rubrica: 3 = cerca de 9,6 com dono conhecido, cerca de 2,6 sem dono;; 2 = uma;; 1 = só as taxas;; 0 = nenhuma.
-
EX037 — Comparação com órfãos. Como um certificado ACME órfão se compara a um manual com dono? Rubrica: 3 = taxa mais ou menos igual (2,65 vs 2,69 por 100);; 2 = semelhante;; 1 = muito menor;; 0 = nenhuma.
-
EX038 — Achado nos logs. O que os logs mostraram antes dos incidentes ACME, e que correção decorre disso? Rubrica: 3 = erros de renovação registrados por mais de uma semana em 4 de 5, sem monitoramento; alertar sobre falhas de renovação;; 2 = só o achado;; 1 = só a correção;; 0 = nenhuma.
Síntese
Taxas, intervalos e estratos, juntos, mostram uma associação robusta entre a automação e menos expirações, e revelam a propriedade e o monitoramento como alavancas independentes.
Continue estudando — aula 06 (capítulo 06 de 08)
← Capítulo 05 · Índice das aulas · Capítulo 07 →
Continue para a próxima aula já escrita.