Gestão de leitos hospitalares com IA
Prever o tempo de permanência de cada paciente e a data provável de alta para planejar a ocupação de leitos com até 5 dias de antecedência.
A regulação de leitos hoje depende de previsão manual, sujeita a erro. Esta PoC mostra, com os dados reais do hospital, que um modelo de aprendizado de máquina antecipa a alta de cada paciente com erro médio de pouco mais de 2 dias, abrindo espaço para reduzir vacância e atender mais pacientes com a mesma estrutura.
O problema
O hospital tem histórico abundante de internações, mas não o converte em decisão operacional em tempo real. Sem prever quando cada leito vai vagar, a equipe planeja no escuro: leitos ficam vagos por mais tempo que o necessário (vacância) e, ao mesmo tempo, faltam leitos em picos de demanda.
A abordagem
Tempo de permanência
Modelo Random Forest que prevê, para cada internação, quantos dias o paciente vai permanecer e, a partir da data de entrada, a data provável de alta.
Acurácia por tolerância · modelo vs. previsão manual
| Tolerância | Modelo IA | Baseline manual |
|---|---|---|
| Dia exato | 39% | 9% |
| ±1 dia | 67% | 44% |
| ±2 dias | 77% | 71% |
| ±3 dias | 83% | 75% |
| ±5 dias | 90% | 82% |
O que mais explica a permanência
Permanência real vs. prevista
Aplicação operacional: altas previstas por dia
Taxa de ocupação
Modelo XGBoost de série temporal para prever a taxa de ocupação dos leitos no dia seguinte, a partir de defasagens, médias móveis, sazonalidade e feriados.
Em desenvolvimento Este track é complementar ao de permanência e ainda está em fase exploratória. Recomendamos apresentá-lo como próximo passo, não como resultado fechado.
Próximos passos sugeridos
- Consolidar uma única série de ocupação diária validada e limpar o notebook.
- Testar modelos de série temporal dedicados (Prophet, SARIMAX) como referência.
- Derivar a ocupação prevista a partir do próprio modelo de permanência (entradas previstas menos altas previstas), unificando os dois tracks.
Retorno sobre investimento
Tradução do ganho preditivo em leitos liberados, pacientes adicionais e impacto financeiro, em dois cenários de capacidade.
| Indicador | Operacional (85%) | Real (93%) |
|---|---|---|
| Retorno estimado por mês com IA | R$ 1,89 mi | R$ 2,58 mi |
| · redução de custo fixo / mês | R$ 0,62 mi | R$ 0,85 mi |
| · aumento de faturamento / mês | R$ 1,27 mi | R$ 1,73 mi |
| Leitos liberados por dia | ~8 | ~10 |
| Pacientes adicionais por ano | ~700 | ~810 |
| Ganho anual de faturamento | n/d | ~R$ 20,8 mi |
Premissas da simulação: hospital com 153 leitos (87 normais + 66 UTI), giro de 4,5 dias por paciente, ~1.020 pacientes/mês, faturamento médio ~R$ 24,6 mi/mês, margem bruta 60%, tributos 20%.
Como funciona
Pipeline reprodutível, do dado bruto ao modelo, com as variáveis e o tratamento aplicados.
Da planilha ao modelo
- Entrada: 213.937 registros brutos de 10 planilhas trimestrais (POCIA, 2022 a 2024).
- Limpeza: remoção de duplicatas e outliers, consolidação de 31.941 internações únicas.
- Variáveis (91): tipo de procedimento, capítulo do CID-10, especialidade, caráter do atendimento, procedência, forma de chegada, faixa etária, sexo, estado civil, mês, dia da semana e número de admissões anteriores.
- Alvo: tempo de permanência em dias (alta menos entrada, + 1).
- Modelo: Random Forest com 1.000 árvores · divisão 80% treino / 20% teste.
Reproduzir
# ambiente (Python 3.11) + dependencias fixadas python3.11 -m venv .venv && source .venv/bin/activate pip install -r requirements.txt # rodar o notebook completo jupyter nbconvert --to notebook --execute notebooks/LoS_TempoPermanencia.ipynb # ou a engine que gera figuras + metrics.json python notebooks/analise_los.py
Correções de compatibilidade aplicadas
O notebook foi escrito em uma versão antiga do pandas e não rodava nas atuais. Ajustes feitos sem alterar a lógica do modelo: cálculo da permanência com .dt.normalize(), preenchimento de estado civil via groupby.transform, leitura de min/max direto da coluna e correção de tipo na simulação de altas.