Capítulo 5 — Estudo principal e validação independente
Mapa da aula
Aula 05 publicada. Mapa, exemplo, EX028.
flowchart TD
N0["5.1 Desenhando o experimento de simulação"]
N1["5.2 O estudo de simulação confirmatório"]
N2["5.3 O estudo de exercício de mesa com operadores"]
N3["5.4 Validando o modelo"]
N4["5.5 Validação independente num segundo contexto"]
N5["5.6 Relatando o estudo principal"]
N6["Síntese do capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX028"]
Desenho lógico
flowchart LR
N0["5.1 Desenhando o experimento de simulação"]
N1["5.2 O estudo de simulação confirmatório"]
N2["5.3 O estudo de exercício de mesa com operadores"]
N3["5.4 Validando o modelo"]
N4["5.5 Validação independente num segundo contexto"]
N5["5.6 Relatando o estudo principal"]
N6["Síntese do capítulo"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX028"]
[5.1 Desenhando o experimento de simulação]
|
v
[5.2 O estudo de simulação confirmatório]
|
v
[5.3 O estudo de exercício de mesa com operadores]
|
v
[5.4 Validando o modelo]
|
v
[5.5 Validação independente num segundo contexto]
|
v
[5.6 Relatando o estudo principal]
|
v
[Síntese do capítulo]
|
v
[Exemplo resolvido] --> [Exercício EX028]
Objetivos de aprendizagem e conexão
Ao fim deste capítulo, o estudante será capaz de:
- Desenhar um experimento de simulação pareado com números aleatórios comuns, um número justificado de sorteios e um limite oráculo.
- Distinguir a incerteza de Monte Carlo da incerteza de parâmetros e da incerteza estrutural, e dizer qual delas um intervalo relatado descreve.
- Interpretar um padrão misto de hipóteses sustentadas e não sustentadas sem resgatar as favoráveis.
- Desenhar e analisar um estudo de exercício de mesa cego com operadores cujo desfecho seja a consequência das escolhas feitas, e não a preferência declarada.
- Validar um modelo usando evidências de validade aparente, histórica, de condições extremas e operacional, e declarar o que cada uma estabelece.
- Executar uma validação independente num segundo contexto selecionado segundo critérios declarados com antecedência e raciocinar sobre a transportabilidade.
O Capítulo 4 verificou o simulador, reproduziu as linhas de base e pilotou os procedimentos. Este capítulo executa o estudo confirmatório exatamente como pré-registrado e então testa se seu resultado se transporta.
5.1 Desenhando o experimento de simulação
5.1.1 Comparações pareadas e números aleatórios comuns
Cada sorteio da simulação amostra um cenário: as durações de restauração de todos os alimentadores e as reservas de todos os serviços. Toda política é avaliada sobre o mesmo sorteio. Esse desenho de números aleatórios comuns remove da comparação a variância compartilhada entre cenários: a quantidade de interesse é a diferença por sorteio entre duas políticas, cuja variância é Var(A) + Var(B) − 2 Cov(A, B). O pareamento ajuda exatamente na medida em que as perdas das duas políticas são positivamente correlacionadas entre os sorteios. Quando duas políticas se compensam — uma protege a água num sorteio em que a outra protege as telecomunicações —, a correlação é fraca e o pareamento ajuda pouco; o EX028 mostra isso acontecendo em Riverbend. Analise as diferenças pareadas mesmo assim, porque elas são o estimando correto, mas não presuma que o pareamento garanta precisão.
5.1.2 Quantos sorteios?
O erro-padrão de Monte Carlo de uma diferença de médias é s_d / √n, em que s_d é o desvio-padrão das diferenças por sorteio. No piloto (Capítulo 4), o desvio-padrão das diferenças DEP − CRITFLAG em Riverbend foi de cerca de 7 horas de serviço ponderadas, então 500 sorteios dão uma semiamplitude de 95% de cerca de 1,96 × 7 / √500 ≈ 0,6. O menor efeito de interesse para H2 é 10% da perda de CRITFLAG; como a perda de CRITFLAG em Riverbend é pequena (cerca de 4), esse limiar é de cerca de 0,4 — menor que a semiamplitude. O pré-registro fixou, portanto, uma regra de decisão de três vias: H2 é sustentada se o intervalo ficar inteiramente abaixo de −10% da perda média de CRITFLAG, rejeitada se ficar inteiramente acima desse limiar (uma redução de pelo menos 10% fica descartada), e inconclusiva nos demais casos, quando o remédio planejado eram 2.000 sorteios adicionais sem o oráculo. Registre o cálculo e a regra; não aumente n depois de ver um resultado "quase significativo" fora da regra que você escreveu.
5.1.3 O que significa um intervalo de Monte Carlo
Um intervalo bootstrap ou normal sobre os sorteios da simulação descreve a incerteza de Monte Carlo — quanto a estimativa se moveria com mais sorteios deste modelo, com estas distribuições de parâmetros. Ele nada diz sobre a incerteza de parâmetros (se as distribuições obtidas estão certas) nem sobre a incerteza estrutural (se a forma do modelo está certa). Com sorteios suficientes, qualquer diferença se torna "estatisticamente significativa" dentro de um modelo. Relate os intervalos de Monte Carlo por completude, mas baseie as alegações nos tamanhos de efeito em relação ao menor efeito de interesse, e trate a incerteza de parâmetros e a estrutural com análises de sensibilidade e validação (§5.4 e Capítulo 6).
5.2 O estudo de simulação confirmatório
5.2.1 O simulador
O simulador baseado em eventos abaixo implementa o desenho pré-registrado. Um serviço fica indisponível enquanto seu alimentador está desenergizado além de sua reserva, ou enquanto um serviço do qual ele depende está indisponível além de sua reserva local; um atraso de reinício de uma hora segue a restauração. As equipes pegam o próximo alimentador na ordem da política assim que ficam livres. Os clientes-hora são calculados por alimentador. ORACLE enumera todas as ordenações para cada sorteio. Salve o código como lab5_mc.py; o Capítulo 6 o importa.
# Lab 5 - paired Monte Carlo comparison of restoration orderings (offline, standard library only)
# Event-based: a service is unavailable while its feeder is down beyond its buffer, or while a
# service it depends on is unavailable beyond its on-site buffer; restart lag applies after restoration.
import itertools, random, statistics
RIVERBEND = {
"customers": {"F1": 9000, "F2": 1200, "F3": 2500, "F4": 6000},
"crews": 1, "dur": (2, 6, 4), # triangular(low, high, mode) hours per feeder
"services": { # name: (feeder, buffer triangular, weight, (depends_on, on-site hours) or None)
"WATER": ("F3", (4, 14, 8), 4.0, None),
"TEL": ("F2", (4, 12, 8), 3.0, None),
"HOSP": ("F2", (8, 48, 24), 5.0, ("WATER", 4.0)),
},
}
PORT_HALVARD = {
"customers": {"H1": 7000, "H2": 3000, "H3": 1500, "H4": 4000, "H5": 800, "H6": 5000},
"crews": 2, "dur": (1.5, 5, 3),
"services": {
"WATER2": ("H4", (10, 30, 20), 4.0, None),
"HOSP2": ("H2", (48, 96, 72), 5.0, ("WATER2", 6.0)),
"TEL2": ("H3", (2, 6, 4), 3.0, None),
"DISPATCH": ("H5", (1, 3, 2), 4.0, None),
},
}
H, LAG = 72.0, 1.0
def draw(region, rng, buffer_scale=1.0):
dur = {f: rng.triangular(*region["dur"]) for f in sorted(region["customers"])}
buf = {s: rng.triangular(*v[1]) * buffer_scale for s, v in sorted(region["services"].items())}
return dur, buf
def restore_times(order, dur, crews):
free, done = [0.0] * crews, {}
for f in order:
i = min(range(crews), key=lambda k: free[k])
free[i] += dur[f]
done[f] = free[i]
return done
def outage(region, done, buf):
"""Return {service: (start, end)} of unavailability, clipped to [0, H]."""
out = {}
def solve(s):
if s in out:
return out[s]
feeder, _, _, dep = region["services"][s]
ivs = []
if buf[s] < done[feeder]:
ivs.append((buf[s], done[feeder] + LAG))
if dep:
d = solve(dep[0])
if d and d[0] + dep[1] < d[1]:
ivs.append((d[0] + dep[1], d[1]))
out[s] = (min(a for a, _ in ivs), max(b for _, b in ivs)) if ivs else None
return out[s]
for s in region["services"]:
solve(s)
return {s: (max(0.0, iv[0]), min(H, iv[1])) for s, iv in out.items() if iv}
def evaluate(region, order, dur, buf):
done = restore_times(order, dur, region["crews"])
loss = sum(region["services"][s][2] * (e - b) for s, (b, e) in outage(region, done, buf).items() if e > b)
cust_h = sum(c * min(H, done[f]) for f, c in region["customers"].items()) / 1000.0
return loss, cust_h
def silo(region):
return sorted(region["customers"], key=lambda f: -region["customers"][f])
def critflag(region, believed_feeder=None):
feeder_of = {s: v[0] for s, v in region["services"].items()}
feeder_of.update(believed_feeder or {}) # the critical-customer list may also be out of date
crit = set(feeder_of.values())
return sorted(region["customers"], key=lambda f: (f not in crit, -region["customers"][f]))
def dep(region, believed_feeder=None):
svc = dict(region["services"])
if believed_feeder: # planner's (possibly wrong) dependency map
for s, f in believed_feeder.items():
svc[s] = (f,) + svc[s][1:]
mean = {s: sum(v[1]) / 3 for s, v in svc.items()}
tti = {}
def t(s):
if s not in tti:
dep_ = svc[s][3]
tti[s] = min(mean[s], t(dep_[0]) + dep_[1]) if dep_ else mean[s]
return tti[s]
key = {f: min([t(s) for s, v in svc.items() if v[0] == f], default=float("inf")) for f in region["customers"]}
return sorted(region["customers"], key=lambda f: (key[f], -region["customers"][f]))
def experiment(region, n=500, seed=7, buffer_scale=1.0, believed_feeder=None, oracle=True):
rng = random.Random(seed)
policies = {"SILO": silo(region), "CRITFLAG": critflag(region, believed_feeder), "DEP": dep(region, believed_feeder)}
res = {k: [] for k in list(policies) + (["ORACLE"] if oracle else [])}
cust = {k: [] for k in policies}
perms = list(itertools.permutations(region["customers"]))
for _ in range(n):
dur, buf = draw(region, rng, buffer_scale)
for k, order in policies.items():
l, c = evaluate(region, order, dur, buf)
res[k].append(l)
cust[k].append(c)
if oracle:
res["ORACLE"].append(min(evaluate(region, list(p), dur, buf)[0] for p in perms))
return policies, res, cust
def boot_ci(x, seed=11, b=1000):
rng = random.Random(seed)
means = sorted(statistics.fmean(rng.choices(x, k=len(x))) for _ in range(b))
return round(means[int(0.025 * b)], 2), round(means[int(0.975 * b)], 2)
if __name__ == "__main__":
for name, region in (("Riverbend", RIVERBEND), ("Port Halvard", PORT_HALVARD)):
policies, res, cust = experiment(region)
print(f"== {name}: orders {policies}")
for k, v in res.items():
extra = f" customer-hours(k) {statistics.fmean(cust[k]):7.1f}" if k in cust else ""
print(f" {k:8} weighted critical loss {statistics.fmean(v):6.2f}{extra}")
d = [a - b for a, b in zip(res["DEP"], res["CRITFLAG"])]
print(" DEP - CRITFLAG loss: mean", round(statistics.fmean(d), 2), "95% CI", boot_ci(d))
r = statistics.fmean(cust["DEP"]) / statistics.fmean(cust["SILO"]) - 1
r2 = statistics.fmean(cust["DEP"]) / statistics.fmean(cust["CRITFLAG"]) - 1
print(" DEP customer-hours vs SILO:", f"{r:+.1%}", "| vs CRITFLAG:", f"{r2:+.1%}")
Saída esperada:
== Riverbend: orders {'SILO': ['F1', 'F4', 'F3', 'F2'], 'CRITFLAG': ['F3', 'F2', 'F1', 'F4'], 'DEP': ['F2', 'F3', 'F1', 'F4']}
SILO weighted critical loss 52.75 customer-hours(k) 133.0
CRITFLAG weighted critical loss 3.97 customer-hours(k) 222.5
DEP weighted critical loss 4.32 customer-hours(k) 227.6
ORACLE weighted critical loss 1.79
DEP - CRITFLAG loss: mean 0.35 95% CI (-0.23, 0.97)
DEP customer-hours vs SILO: +71.2% | vs CRITFLAG: +2.3%
== Port Halvard: orders {'SILO': ['H1', 'H6', 'H4', 'H2', 'H3', 'H5'], 'CRITFLAG': ['H4', 'H2', 'H3', 'H5', 'H1', 'H6'], 'DEP': ['H5', 'H3', 'H4', 'H2', 'H1', 'H6']}
SILO weighted critical loss 53.93 customer-hours(k) 103.2
CRITFLAG weighted critical loss 31.63 customer-hours(k) 148.5
DEP weighted critical loss 9.61 customer-hours(k) 163.2
ORACLE weighted critical loss 9.61
DEP - CRITFLAG loss: mean -22.01 95% CI (-22.4, -21.59)
DEP customer-hours vs SILO: +58.2% | vs CRITFLAG: +9.9%
5.2.2 Lendo os resultados à luz das hipóteses
| Hipótese | Riverbend (principal) | Port Halvard (validação independente) | Veredito |
|---|---|---|---|
| H1: DEP reduz a perda em ≥ 20% vs SILO | 52,75 → 4,32 (−92%) | 53,93 → 9,61 (−82%) | Sustentada nas duas |
| H2: DEP reduz a perda em ≥ 10% vs CRITFLAG | +0,35 (intervalo MC de 95% de −0,23 a 0,97), inteiramente acima do limiar de −0,40: uma redução de 10% fica descartada | −22,01 de 31,63 (−70%) | Não sustentada em Riverbend; sustentada em Port Halvard |
| H3: o ganho cresce com a divergência das ordens | As ordens diferem em 2 posições (F2/F3 trocados), mas sem ganho | As ordens diferem nas 4 posições críticas; ganho grande | Em parte; Riverbend é uma anomalia a explicar (§5.2.3) |
| H4a: clientes-hora ≤ +15% vs SILO | +71,2% | +58,2% | Falha nas duas |
| H4b: clientes-hora ≤ +15% vs CRITFLAG | +2,3% | +9,9% | Sustenta-se nas duas |
| Distância até ORACLE | DEP 4,32 vs ORACLE 1,79 | DEP 9,61 = ORACLE 9,61 | DEP longe do ótimo em Riverbend; ótimo em Port Halvard |
O resumo honesto é misto. A ordenação ciente da criticidade, de qualquer tipo, protege os serviços críticos de forma drástica em comparação com a ordenação pelos clientes, a um custo grande em clientes-hora que a teoria de programação previu (Capítulo 3). Se a temporização agrega valor sobre uma lista de clientes críticos depende da região: nenhum em Riverbend, muito em Port Halvard. Aplica-se a condição de falha pré-registrada "H2 falha numa região e se sustenta na outra": estreitar a alegação para as condições que distinguem as regiões e testar o mecanismo.
5.2.3 Explicando a anomalia de Riverbend sem resgatar a hipótese
Em Riverbend, DEP restaura F2 (telecomunicações e hospital) antes de F3 (água), porque o tempo esperado até o impacto das telecomunicações (8 h) é um pouco anterior ao da água (8,7 h). CRITFLAG restaura F3 primeiro porque ele tem mais clientes. Mas F3 protege dois serviços ponderados — a água diretamente e o hospital por meio de sua dependência da água —, enquanto restaurar F2 primeiro protege as telecomunicações e apenas o caminho de energia do hospital, que tem uma reserva longa. Uma regra do menor tempo até o impacto ignora os pesos e o espalhamento; o Capítulo 3 nomeou isso como a fraqueza conhecida da heurística. A perda muito menor de ORACLE confirma que nenhuma das regras está perto do ótimo em Riverbend.
Essa explicação é post hoc. É legítimo relatá-la como uma hipótese gerada pelo estudo confirmatório, a ser testada em dados novos (o Capítulo 6 a testa em muitas regiões sintéticas); não é legítimo reexecutar o estudo principal com uma regra revisada e relatar isso como confirmatório.
5.3 O estudo de exercício de mesa com operadores
5.3.1 Por que pessoas, e não apenas modelos
Uma regra de restauração que os operadores não seguem não tem consequência. O estudo de exercício de mesa pergunta se, dada a exibição do tempo efetivo até o impacto pilotada no Capítulo 4, operadores experientes escolhem ordenações que o modelo avalia como de menor consequência, e por que sim ou por que não.
5.3.2 Desenho (sintético)
- Participantes. Doze operadores e gestores de emergências (P01–P12) de três concessionárias sintéticas, recrutados por meio dos parceiros com consentimento individual, nenhum do piloto. A participação foi voluntária e sem remuneração além das despesas; os gestores não ficaram sabendo quem participou.
- Cruzamento intrassujeitos. Cada participante ordenou a restauração em dois cenários isomórficos — topologia semelhante à de Port Halvard com alimentadores renomeados e posições embaralhadas —, uma vez com uma exibição convencional (número de clientes e sinalizações de clientes críticos) e uma vez com a exibição do tempo efetivo até o impacto acrescentada. A ordem das exibições e as versões dos cenários foram contrabalançadas.
- Cegamento. Os cenários não continham informações sobre o desfecho; os injects foram verificados no piloto quanto a pistas prematuras. Os analistas que pontuaram as justificativas em texto livre não sabiam qual condição de exibição as produziu.
- Desfecho. A ordenação escolhida, avaliada no simulador sobre os mesmos 500 sorteios do estudo principal — de modo que o desfecho é a consequência estimada pelo modelo da decisão do participante, e não sua preferência declarada. Secundários: tempo de decisão; códigos das justificativas.
- Análise. Comparação pareada de se cada participante escolheu a ordenação DEP sob cada exibição; teste exato de McNemar sobre os pares discordantes; diferenças descritivas de consequência; análise temática das justificativas.
5.3.3 Resultados (sintéticos)
| Exibição convencional → exibição do tempo até o impacto | Participantes |
|---|---|
| Não DEP → DEP | 7 |
| Não DEP → não DEP | 5 |
| DEP → não DEP | 0 |
| DEP → DEP | 0 |
Todos os sete pares discordantes se moveram em direção a DEP. Sob a hipótese nula de que uma troca em qualquer direção é igualmente provável, a probabilidade exata bicaudal de sete ou mais trocas numa direção em sete é 2 × 0,5⁷ = 0,0156. Com doze participantes de três concessionárias, isso é evidência de que a exibição pode mudar as escolhas num exercício de mesa, e não uma estimativa de com que frequência os operadores mudariam a prática. Entre os cinco que não adotaram DEP, quatro mantiveram uma ordem semelhante à de CRITFLAG. Os códigos das justificativas (dois codificadores, divergências resolvidas e registradas) incluíram: expectativa institucional ("o conselho nos mede pelos clientes restaurados"; 4 participantes), desconfiança dos números das reservas ("já vi os registros de combustível dos hospitais — nunca batem com o papel"; 3) e logística de campo ("as equipes já estão perto do alimentador grande"; 3). O último tema identifica uma variável que o modelo omite: o tempo de deslocamento entre os alimentadores, que torna as durações de restauração dependentes da ordem.
5.3.4 O que o exercício de mesa pode e não pode sustentar
Ele sustenta: a exibição é compreensível; ela desloca as escolhas no exercício de mesa em direção a uma consequência modelada menor; os operadores levantam objeções específicas que o modelo precisa tratar. Ele não pode sustentar: a adoção no mundo real; efeitos sob estresse, cansaço e informação incompleta; nem efeitos em concessionárias diferentes das três amostradas. Exercícios de mesa também são performances — os participantes sabem que estão sendo observados —, o que empurra para respostas "de aparência correta".
5.4 Validando o modelo
Seguindo Sargent (2013), a validação é evidência de que um modelo é adequado para o seu propósito pretendido — aqui, classificar as ordenações de restauração pela consequência sobre os serviços críticos —, e não de que ele é "verdadeiro".
| Tipo de validação | Evidência do Cascade Study (sintética) | O que estabelece | O que não estabelece |
|---|---|---|---|
| Validade aparente | Doze participantes do exercício de mesa e dois engenheiros parceiros revisaram a estrutura e as saídas do modelo | A estrutura é reconhecível pelos profissionais; nenhuma omissão gritante, exceto o tempo de deslocamento | Que os parâmetros estão certos |
| Validação histórica | A queda da tempestade de gelo de 2019 em Riverbend (todas as causas, registro sintético): o modelo, com os tempos de restauração registrados dos alimentadores, previu a perda de pressão da água em 9 h e o desvio do hospital em 13 h; os registros mostram 11 h e nenhum desvio (o hospital recebeu água por caminhão em 10 h) | A temporização da falha da água está na faixa certa; o modelo omite a ajuda mútua (água por caminhão), uma reserva humana | A acurácia para cenários induzidos por ciberataques; qualquer generalização a partir de um único evento |
| Testes de condições extremas | Reservas zero, reservas infinitas, um único alimentador, um serviço | O comportamento nos limites é sensato (invariantes do Capítulo 4) | O comportamento no interior |
| Variabilidade dos parâmetros | Escalonamento das reservas e conjuntos de pesos (Capítulo 6) | Quais conclusões dependem de quais parâmetros | A adequação estrutural |
| Validade operacional | Concordância entre a classificação das ordenações pelo modelo e a classificação especializada dos operadores em seis cenários: 5 das 6 primeiras escolhas coincidem | O modelo classifica as ordenações de modo muito parecido com o dos especialistas em casos familiares | Se algum dos dois está certo em casos não familiares |
A validação histórica produziu uma correção importante: o modelo trata as reservas como fixas, mas os operadores reais estendem as reservas — água por caminhão, entregas de combustível, alívio de carga no hospital. Um modelo sem essas reservas humanas é conservador quanto à consequência e pode exagerar o benefício da reordenação, porque ignora alternativas que os operadores usariam de qualquer forma. A tese precisa declarar isso.
5.5 Validação independente num segundo contexto
5.5.1 Seleção segundo critérios declarados com antecedência
Port Halvard foi escolhida antes da simulação, segundo critérios derivados do mecanismo e registrados na emenda ao pré-registro do Capítulo 3: mais alimentadores críticos (quatro), divergência entre a ordem das reservas e a ordem dos clientes entre os alimentadores críticos, duas equipes e reservas hospitalares longas, apoiadas por contratos de combustível. Outro modelador construiu a configuração de Port Halvard a partir da documentação dos parceiros, sem acesso aos resultados de Riverbend. Esses passos reduzem, mas não eliminam, o risco de um contexto de validação que favoreça o método: os próprios critérios foram escolhidos para dar ao mecanismo uma chance de operar. Isso é aceitável para um teste do mecanismo, não para uma estimativa de com que frequência o método ajuda em regiões reais. O Capítulo 6 trata da segunda pergunta com muitas regiões geradas aleatoriamente.
5.5.2 Transportabilidade
Um resultado se transporta de um contexto para outro quando a estrutura causal relevante para ele é compartilhada e as diferenças são medidas. Pearl and Bareinboim (2014) formalizam quando constatações experimentais podem ser transportadas entre populações. Informalmente, para o Cascade Study: o mecanismo (reservas, restauração sequencial, consequência ponderada) é compartilhado; os moderadores que diferem — número de alimentadores críticos, divergência das ordens, número de equipes, duração das reservas — precisam ser medidos em qualquer região-alvo antes que o resultado seja aplicado. Uma concessionária que conhece essas quatro coisas sobre si mesma pode estimar se DEP tende a superar sua lista atual; uma que não as conhece, não pode.
5.6 Relatando o estudo principal
Relate, no mínimo: o pré-registro e todas as emendas, com datas; o registro de desvios; cada hipótese com seu veredito, incluindo as falhas; os tamanhos de efeito em relação aos menores efeitos de interesse; os intervalos de Monte Carlo rotulados como tais; as distâncias até ORACLE; o desenho do exercício de mesa, o consentimento, as desistências e os resultados, com os testes exatos e os temas qualitativos; cada tipo de validação, com o que ele estabelece; e a configuração das duas regiões no nível de detalhe permitido pelos níveis de proteção da informação (Capítulo 7). Siga uma estrutura de relato reconhecida para estudos de simulação quando existir uma no veículo de publicação pretendido e, para o exercício de mesa, siga as expectativas de transparência da pesquisa com seres humanos na sua área.
5.7 Erros comuns e limites
- Analisar as médias de duas políticas separadamente em vez das diferenças pareadas.
- Aumentar o número de sorteios até que uma diferença seja "significativa".
- Apresentar um intervalo de Monte Carlo como incerteza sobre o mundo.
- Reexecutar o estudo confirmatório com uma regra revisada depois de ver os resultados e chamá-lo de confirmatório.
- Escolher um contexto de validação porque o método vai se sair bem nele, sem dizê-lo.
- Medir as preferências declaradas dos operadores em vez das consequências de suas escolhas.
-
Tratar a validade aparente como validação dos parâmetros.
-
Ler a falha de H2 em Riverbend como motivo para revisar DEP e reexecutar o estudo principal sob o mesmo pré-registro.
- Relatar um deslocamento estatisticamente significativo no exercício de mesa como evidência de adoção, quando doze participantes de três concessionárias mostram apenas que uma exibição pode mudar escolhas.
- Tratar um único evento histórico, como a tempestade de gelo de 2019, como validação para cenários induzidos por ciberataques.
- Omitir a distância até ORACLE, que mostra quão longe qualquer regra está da melhor ordenação.
Exercícios — capítulo 5
EX027 — Execute e interprete o estudo principal. Objetivo: reproduzir e interpretar o Laboratório 5. Insumos: o código de §5.2.1. Restrições: off-line; registrar a saída exata. Passos: (1) executar o laboratório; (2) preencher a tabela de hipóteses de §5.2.2 a partir da sua saída; (3) calcular a variação relativa de DEP em relação a CRITFLAG em cada região; (4) escrever um parágrafo de resultados de 150 palavras que um revisor hostil aceitaria. Evidência esperada: saída, tabela, parágrafo. Rubrica: 3 = saída exata, H2 relatada como falha em Riverbend e sustentada em Port Halvard, falha de H4a relatada, sem resgate; 2 = números corretos, parágrafo exagera; 1 = erros; 0 = não executado.
EX028 — Pareado versus não pareado. Objetivo: ver por que os números aleatórios comuns importam. Insumos: Laboratório 5. Restrições: off-line. Passos: (1) para Riverbend, calcular o desvio-padrão das perdas de DEP, das perdas de CRITFLAG e das diferenças por sorteio; (2) calcular um intervalo de 95% não pareado para a diferença de médias usando a aproximação normal; (3) comparar com o intervalo pareado; (4) explicar a diferença em 100 palavras. Evidência esperada: três desvios-padrão, dois intervalos, explicação. Rubrica: 3 = DPs de cerca de 6,36 (DEP), 4,57 (CRITFLAG) e 6,79 (diferenças); intervalo não pareado de cerca de −0,34 a 1,04 contra o pareado de −0,24 a 0,95; explica que o pareamento ajudou apenas modestamente porque as perdas das políticas são fracamente correlacionadas — elas se compensam quanto a qual serviço falha num dado sorteio — e que o DP das diferenças pode exceder o DP de cada política e ainda ficar abaixo de √(Var A + Var B); 2 = números certos, explicação presume que o pareamento sempre reduz a variância; 1 = erro; 0 = nada.
EX029 — Taxonomia da incerteza. Objetivo: classificar a incerteza. Insumos: cinco afirmações: (a) "com 5.000 sorteios o intervalo se estreitaria"; (b) "o combustível do hospital pode ser menor do que o diretor de instalações disse"; (c) "o tempo de deslocamento entre os alimentadores não é modelado"; (d) "os pesos refletem os valores de um único painel"; (e) "as reservas podem não ser triangulares". Restrições: classificar cada uma como incerteza de Monte Carlo, de parâmetros, estrutural ou de valores e nomear o método que a trata. Passos: (1) classificar cada afirmação; (2) justificar a classe numa frase; (3) nomear o método que reduz ou expõe essa incerteza. Evidência esperada: tabela. Rubrica: 3 = (a) Monte Carlo, (b) parâmetros, (c) estrutural, (d) valores, (e) parâmetros ou estrutural com justificativa, com métodos adequados; 2 = um erro; 1 = dois ou mais; 0 = nada.
EX030 — Crítica do desenho do exercício de mesa. Objetivo: fortalecer um desenho com seres humanos. Insumos: §5.3.2. Restrições: propor pelo menos cinco melhorias dentro dos limites éticos e práticos. Passos: (1) identificar as ameaças — características de demanda, amostra pequena, três concessionárias, ausência de pressão de tempo, reconhecimento dos cenários isomórficos; (2) propor uma mudança de desenho para cada uma; (3) declarar quanto custa cada mudança. Evidência esperada: tabela. Rubrica: 3 = cinco ou mais ameaças reais com mudanças viáveis e custos honestos; 2 = três ou quatro; 1 = genéricas; 0 = nada.
EX031 — Matriz de evidências de validação. Objetivo: planejar a validação do seu próprio modelo. Insumos: um modelo da sua pesquisa ou do Cascade Study. Restrições: pelo menos quatro tipos de validação; para cada um, a evidência, o que ela estabelece e o que não estabelece. Passos: (1) escolher pelo menos quatro tipos de validação de §5.4; (2) para cada um, declarar a evidência que você coletaria; (3) declarar o que essa evidência estabelece e o que não estabelece; (4) identificar qual validação seria mais danosa à sua alegação se falhasse. Evidência esperada: matriz e parágrafo. Rubrica: 3 = tipos bem escolhidos, limites honestos, teste mais danoso identificado e planejado cedo; 2 = limites ralos; 1 = apenas validade aparente; 0 = nada.
EX032 — Memorando de transportabilidade. Objetivo: aconselhar uma terceira concessionária. Insumos: uma concessionária sintética com cinco alimentadores, três deles com serviços críticos cuja ordem das reservas coincide com a ordem dos clientes, e uma equipe. Restrições: 300 palavras; usar os moderadores de §5.5.2. Passos: (1) medir os quatro moderadores para essa concessionária; (2) prever o ganho de DEP sobre CRITFLAG; (3) declarar de que dados você precisaria para mudar a sua previsão. Evidência esperada: memorando. Rubrica: 3 = prevê nenhum ganho porque as ordens coincidem, explica os moderadores e observa que os pesos ou o espalhamento ainda poderiam importar; 2 = previsão certa, raciocínio ralo; 1 = prevê um ganho; 0 = nada.
Síntese do capítulo
O estudo principal comparou quatro ordenações sobre sorteios pareados com um limite oráculo. A ordenação ciente da criticidade, de qualquer tipo, protegeu os serviços críticos de forma drástica em comparação com a restauração pelos clientes e custou muito mais clientes-hora do que a margem declarada com antecedência — uma troca para a política pública, e não um ganho gratuito. A informação de temporização nada acrescentou a uma lista de clientes críticos em Riverbend e acrescentou muito em Port Halvard; a explicação post hoc (pesos e espalhamento ignorados por uma regra do menor tempo) é uma hipótese nova, e não um resgate. Um exercício de mesa cego mostrou que uma exibição do tempo até o impacto pode deslocar as escolhas dos operadores em direção a uma consequência modelada menor e trouxe à tona variáveis omitidas, como o tempo de deslocamento das equipes. A validação estabeleceu que o modelo é adequado para classificar ordenações em casos familiares e conservador porque omite as reservas humanas. Os intervalos de Monte Carlo descreveram apenas o ruído da simulação; a incerteza de parâmetros, a estrutural e a de valores ficam para o Capítulo 6.
Continue estudando — capítulo 05 de 08
← Capítulo 04 · Índice de capítulos do curso · Capítulo 06 →
Siga para a próxima lição escrita.