Dados duplicados, incorretos e fraudulentos na Medicina Inteligente
Por Ricardo Costa Val do Rosario e ChatGPT 5.0 Plus
Como e Porque Detectar, Mitigar e Governar Riscos de Qualidade e Integridade de Dados Clínicos?
# Relevância
- Decisões clínicas e regulatórias dependem de dados íntegros;
- vieses ou fraudes podem causar dano direto ao paciente e manchar
linhas de pesquisa por anos.
# Modelos de IA amplificam erros:
- Duplicatas “pesam” mais um padrão inexistente;
- Outliers não-validados “ensinam” comportamentos clínicos falsos;
- Fraudes contaminam o dataset e a literatura.
# Conformidade Legal
1. ISO 13485/14971,
2. RDCs/ANVISA
3. Boas práticas de pesquisa exigem trilha de auditoria e validação de dados.
Tipos de problemas, gravidade e como refletir sobre eles
1. Duplicados (record linkage imperfeito, múltiplas fontes, reenvio de laudos
- distorcem estatísticas,
- “super-representam” desfechos.
- Detecção direta com duplicated()
- Remoção com drop_duplicates() quando não há justificativa clínica para repetição
do caso reduz viés do modelo.
2, Estratégias para lidar com dados incorretos, como erros de digitação, falhas de medição e
inconsistências de unidades.
- validar faixas fisiológicas, consistência temporal (ex.: alta antes da admissão = erro)
- Verificação de unidades (mmHg vs kPa).
3. Outliers e Candidatos a outliers via IQR:
- limites em Q1 - 1.5*IQR e Q3 + 1.5*IQR para marcar observações atípicas.
- Não é para “cortar tudo”; decisão depende do contexto clínico.
4. Quando remover:
- se forem erros claros de medição/entrada e não for possível imputar
corretamente;
- se forem extremos válidos (p.ex., CK altíssima em rabdomiólise),
não remover.
5. Fraude como outlier:
IQR é útil para sinalizar atividades incomuns (p.ex., transações/medições
“fora de curva”)
para auditoria, não como veredito de fraude.
Exemplos de Casos
# 1. Estudo de vacina e autismo (revogado). Problema:
- manipulação e seleção indevida de amostras,
- conflitos não-declarados;
- influência duradoura na hesitação vacinal.
- Lição técnica:
auditoria de protocolo, pré-registro, reprodutibilidade e checagens
independentes de dados brutos.
# 2. Cirurgias experimentais com resultados fabricados. Problema:
- desfechos e prontuários contestados, inconsistências temporais e clínicas.
- Lição técnica:
- validações cruzadas (EHR, registro cirúrgico, mortalidade),
- trilha de auditoria e comitês de ética atuantes.
# 3. Ensaios anestésicos com padrões estatísticos implausíveis. Problema:
- dezenas de RCTs com distribuições “perfeitas”
- variâncias estreitas pouco realistas.
- Lição técnica:
- forense estatística (p-val hacking, variância homogênea demais, dígitos finais),
- política clara de disclosure + retratações rápidas.
Pipeline mínimo de saneamento + detecção em JSON
# 1) Esquema de dados clínicos (tipos, units, ranges, obrigatoriedade)
"schema"
```
{
"patient_id": {"type": "string", "required": true},
"admission_timestamp": {"type": "datetime", "required": true, "tz": "America/Sao_Paulo"},
"discharge_timestamp": {"type": "datetime", "required": false},
"age_years": {"type": "number", "min": 0, "max": 120, "required": true},
"hr_bpm": {"type": "number", "min": 20, "max": 260, "required": false, "unit": "bpm"},
"sbp_mmHg": {"type": "number", "min": 40, "max": 300, "required": false, "unit": "mmHg"},
"ck_uL": {"type": "number", "min": 0, "max": 100000, "required": false, "unit": "U/L"}
}
}
```
# 2) Regras de duplicidade (níveis e chaves compostas)
(base conceitual:
duplicated()/drop_duplicates() do Pandas para reduzir viés e melhorar desempenho do modelo)
```
{
"duplicate_rules": {
"level": "strict",
"keys": ["patient_id", "admission_timestamp", "discharge_timestamp"],
"action_if_duplicate": "drop",
"exceptions": {
"allow_same_patient_multi_admission": true,
"window_minutes": 10,
"note": "Permite reenvio técnico do mesmo evento em curto intervalo"
}
}
}
```
# 3) IQR Outliers (sinalização, não exclusão cega)
(método de IQR e limites inferior/superior; decisão clínica contextual — “quando remover”)
```
{
"outlier_detection": {
"method": "IQR",
"columns": ["hr_bpm", "sbp_mmHg", "ck_uL"],
"iqr_factor": 1.5,
"tag_only": true,
"flag_field": "is_outlier_iqr",
"route": "manual_review",
"notes": "Outlier clínico pode ser evento real (ex.: choque, rabdomiólise); revisar antes de excluir."
}
}
```