Na jurimetria, estudos prospectivos são muito comuns. Esses estudos envolvem a análise de processos judiciais a partir da data de distribuição (data de nascimento), e acompanham os casos até seu desfecho (sentença, acórdão, trânsito em julgado, etc).
Nessas pesquisas, é muito comum que uma parte dos casos analisados ainda esteja ativa no momento da coleta. Como não existe uma data de desfecho, não temos uma forma direta de calcular o tempo até o desfecho. Chamamos esse fenômeno de censura.
A solução mais direta para esse problema seria descartar os casos com informação incompleta. No entanto, isso é uma solução ruim, pois faz com que nossas estimativas subestimem os reais tempos do processo. Isso acontece pois estamos jogando fora a seguinte a informação de que os processos duraram até agora.
É nesses momentos que a modelagem estatística nos salva! A análise de sobrevivência e a análise de confiabilidade são áreas da estatística que lidam com informação censurada. Utilizando técnicas simples e algumas suposições sobre o mecanismo gerador dos dados, é possível levar em conta a informação censurada adequadamente e produzir análises confiáveis, mesmo com informação incompleta.
Por isso, lembre-se: sempre que trabalhar com estudos prospectivos e quiser calcular tempos de processos, considere utilizar modelos de análise de sobrevivência.
Exemplo no R:
library(tidyverse)
library(survival)
# Base de dados do observatório da Insolvência do Rio de Janeiro
# A base completa está disponível apenas para patrocinadores do projeto
da_rj <- obsRJRJ::da_processo_tidy %>%
transmute(
# identifica se houve ou não uma decisão de deferimento
morreu = deferido != "Aguardando decisão" &
!is.na(data_decisao_deferimento),
tempo = case_when(
# se houve uma decisao, o tempo é calculado diretamente
morreu ~ as.numeric(data_decisao_deferimento - data_dist),
# se não, o tempo censurado é calculado
# a partir da data de coleta dos dados
TRUE ~ as.numeric(data_hora - data_dist)
)
)
# mediana jogando fora os casos censurados
da_rj %>%
filter(morreu) %>%
with(median(tempo))
#> [1] 38
# mediana considerando os casos censurados
modelo_surv <- survfit(Surv(tempo, morreu) ~ 1, data = da_rj)
broom::glance(modelo_surv)$median
#> [1] 59.5
Created on 2021-02-09 by the reprex package (v0.3.0)
Se quiser saber mais, essa apresentação das professoras Lane Alencar e Gisela Tunes do IME-USP é bastante instrutiva.