Previsões precisam de margem de erro
(andrewpwheeler.com)- Quando um indicador volátil como a taxa de criminalidade em nível nacional é apresentado apenas com uma previsão pontual, pequenas diferenças de tendência podem ser superinterpretadas com facilidade, então é preciso olhar também o intervalo de previsão para poder avaliar
- Foi treinado um modelo ARIMA(1,1,2) do
statsmodelsem Python com a taxa de crimes violentos de 1960 a 2015, e feitas previsões para 2016 a 2025; o código e os dados estão públicos no GitHub - O erro-padrão das previsões de 1 ano à frente para 2016~2020 fica abaixo de 20, mas ao prever vários anos em sequência o erro se acumula, fazendo com que o intervalo de previsão de 95% para 2025 se amplie para 260.36~575.07
- Os valores observados reais de 2021 e 2022 divergiram da previsão de tendência de alta de Richard Rosenfeld, mas ainda permanecem compatíveis com o modelo dentro do intervalo de previsão do ARIMA
- Previsões de longo prazo da taxa nacional de criminalidade são difíceis de usar diretamente em respostas de política local, e para alocação real de pessoal e recursos previsões mais concretas — como o aumento nas chamadas de serviço causado pelo crescimento urbano — são mais úteis
É difícil avaliar a tendência da taxa de criminalidade apenas com previsões pontuais
- Richard Rosenfeld tratou de previsões da taxa de criminalidade em nível nacional na
Criminologiste, em um texto publicado no fim de 2023, apresentou previsões para 2021~2025 - Há reclamações de que as estatísticas criminais do FBI saem com 1 ano de atraso, mas essa previsão já tinha caráter de previsão tardia, pois incluía anos que, no momento da publicação, já haviam passado
- Previsões pontuais quase sempre erram, então é preciso apresentar junto os intervalos de previsão ao redor do valor previsto
- Ao olhar a margem de erro, fica claro como interpretações baseadas em pequenas diferenças de tendência podem se desfazer facilmente
Experimento de reprodução da previsão com ARIMA
- A análise usa
pandas,statsmodels.tsa.arima.model.ARIMAematplotlibdo Python - Os dados foram montados combinando
UCR_1960_2019.csvcom valores adicionais de 2020 a 2022- A taxa de crimes violentos
VRateé calculada comoViolent / Population * 100000 - A taxa de crimes patrimoniais
PRateé calculada da mesma forma
- A taxa de crimes violentos
- O código e os dados estão no GitHub
- Para permitir comparação com o artigo de Rosenfeld, foi usada a faixa de 1960~2015 como treino e ajustado um modelo ARIMA(1,1,2)
- Rosenfeld escreveu que ajustou um ARIMA(1,0,2) para a taxa de crimes violentos, mas também disse que diferenciou os dados, o que corresponde a um ARIMA(1,1,2)
- O modelo de Rosenfeld inclui fatores exógenos como inflação, mas aqui eles não foram incluídos
- Não foi feito um grid search separado para encontrar o modelo ótimo
Diagnóstico do modelo e como o erro cresce
- O coeficiente AR(1) do modelo ajustado saiu negativo, o que sugere possível sobrediferenciação
- Pelo critério
violent.test_serial_correlation('ljungbox'), não há autocorrelação residual significativa - Seria possível escolher um modelo melhor com uma abordagem de ARIMA automático, mas neste caso é provável que a maioria dos modelos ARIMA produza previsões e intervalos de erro muito parecidos
- Para 2016~2020, é possível comparar com previsões de 1 ano à frente anexando novos dados progressivamente
- O erro-padrão nesse intervalo é 19.813228, abaixo de 20
- Isso fica dentro da faixa de erro absoluto de 10% que Rosenfeld estimou como critério de utilidade
- Ao prever vários anos à frente, o erro se acumula
- Para prever 2022, primeiro é preciso prever 2021
- Para 2023, é necessário prever em cadeia 2021, 2022 e 2023
- O erro-padrão tende a crescer aproximadamente como
sqrt(steps*se^2), numa estrutura em que as variâncias se somam
Intervalos de previsão e valores observados de 2016~2025
- A média prevista pelo modelo ARIMA para 2016~2025 fica em geral entre 379 e 420, mas o intervalo de previsão se alarga com o tempo
- 2021: média 412.99, intervalo de 95% 374.16~451.82
- 2022: média 420.17, intervalo de 95% 342.16~498.18
- 2023: média 416.91, intervalo de 95% 303.53~530.28
- 2025: média 417.72, intervalo de 95% 260.36~575.07
- As previsões pontuais de Rosenfeld ficam mais perto dos valores reais do que a média do ARIMA em alguns anos
- Para o valor observado de 2020, 398.5, Rosenfeld previu 394.9 e a média do ARIMA foi 379.21
- Para o valor observado de 2021, 387.0, Rosenfeld previu 404.1 e a média do ARIMA foi 412.99
- Para o valor observado de 2022, 380.7, Rosenfeld previu 409.3 e a média do ARIMA foi 420.17
- O MAPE da estimativa pontual do ARIMA tem trechos piores que o de Rosenfeld na amostra de teste, mas os valores observados ficam dentro do intervalo de previsão do ARIMA
- Os valores observados de 2021 e 2022 mostram que a previsão de tendência de alta de Rosenfeld já falhou
- As previsões do ARIMA são essencialmente regressivas à média e tendem a convergir para o termo médio em poucos passos
Previsões de 2023~2025 mais baixas após incorporar os dados mais recentes
- Depois de anexar também os dados de 2021~2022, foram refeitas as previsões para 2023~2025
- As previsões atualizadas ficaram mais baixas do que as previsões anteriores de longo prazo
- 2023: média 371.98, intervalo de 95% 333.14~410.81
- 2024: média 380.09, intervalo de 95% 302.08~458.11
- 2025: média 376.40, intervalo de 95% 263.03~489.78
- Em gráfico, fica mais fácil perceber o tamanho da margem de erro
- Ao incluir fatores exógenos, em previsões de vários anos à frente também é preciso prever esses próprios fatores exógenos, incorporando seus erros ao resultado
Limites de política pública das previsões macro de criminalidade
- Uma previsão da taxa nacional de crimes violentos é difícil de usar diretamente em respostas práticas de política pública
- Não há motivo para uma cidade como Pittsburgh usar diretamente uma previsão nacional da taxa de criminalidade para tomar decisões de política local
- Mesmo que a precisão da previsão melhore para um nível de 5% ou 1%, ainda seria difícil um agente federal agir com algo como “daqui a 2 anos a taxa de crimes violentos vai subir 10, então vamos apoiar mais 1342 policiais”
- Há a crítica de que previsões macro da taxa de criminalidade não têm skin in the game caso estejam erradas
- Em aplicações reais de previsão criminal, uma estimativa como a de que cada nova casa ou apartamento adicionado numa cidade aumenta em cerca de 1 chamada de serviço por ano é mais prática
- Para cidades em crescimento, faz mais sentido planejar a alocação de pessoal no longo prazo dessa forma
Referências mencionadas junto
- Ashby, M. (2023). Forecasting crime trends to support police strategic decision making: compara erros gerais de previsões em nível urbano e mostra que previsões para vários anos à frente tendem a produzir erros muito maiores do que o critério de utilidade de 10% de Rosenfeld
- McDowall, D. (2023). Empirical Properties of Crime Rate Trends: trata com mais cautela a relação entre tendências macro da taxa de criminalidade e teorias criminológicas
- Rosenfeld, R. (2018). Studying crime trends: Normal science and exogenous shocks: trabalho anterior relacionado ao estudo de Rosenfeld sobre tendências macro da taxa de criminalidade
- Yim, H. N., Riddell, J. R., & Wheeler, A. P. (2020). Is the recent increase in national homicide abnormal?: analisa a aplicação de fan charts no monitoramento de tendências nacionais da taxa de homicídios
1 comentários
Comentários do Hacker News
Há duas coisas interessantes aqui. Uma é tratada pelo autor, a outra não. Primeiro, como no fim do texto, previsões normalmente devem levar a decisões, e quando as duas coisas se separam o valor pode ficar pouco claro
Rosenfield parece querer dar peso extra, na forma de previsão, a conclusões estatísticas sobre dados passados, e isso soa duvidoso. Segundo, também não está claro o que as barras de erro deveriam significar. Uma possibilidade é intervalo de confiança[1], outra é desvio padrão. Ou seja, na prática você estaria prevendo a diferença ao quadrado entre sua previsão pontual e o resultado real
[1] Reconheço que a terminologia não é precisa
Não é uma descrição de toda a estatística, mas é uma perspectiva útil para pensar em previsões
Por exemplo, se for um intervalo de confiança de 95%, você deve aceitar igualmente tanto a aposta de 19:1 de que o valor verdadeiro está fora do intervalo quanto a aposta de 1:19 de que ele está dentro. Essa forma de pensar é correta de modo geral e torna discussões sobre incerteza muito mais concretas, virando um critério imediatamente acionável. Quando bem feita, ela leva você a atribuir incerteza que não é nem conservadora demais nem otimista demais
Se a ideia de deixar o leitor escolher qualquer lado da aposta deixa você um pouco desconfortável, isso é um bom sinal. Essa sensação diminui quando você fica bastante confiante de que definiu corretamente as barras de erro e de que a inferência está documentada e pode ser defendida
Resposta adicional à pergunta original: barras de erro de 1 desvio padrão correspondem a um intervalo de confiança de 68%, e 2 desvios padrão a um intervalo de confiança de 95%. Claro, assumindo uma visão frequentista
[1] https://www.nobelprize.org/prizes/physics/1997/phillips/fact...
Isso realmente deveria ser feito. Trabalhei numa organização que conduziu milhares de experimentos online ao longo de vários anos, e ao comparar o efeito de um novo tratamento, ter barras de erro ajudava muito na compreensão
Algumas pessoas achavam que isso atrapalhava o julgamento. Por exemplo, se um novo tratamento gerou uma “melhoria” de 1%, mas o intervalo de confiança vai de -10% a 10%, então aquele experimento não informou como aquela métrica foi afetada. Isso faz a decisão parecer arbitrária, mas esse é exatamente o ponto. Nesse caso a decisão de fato é arbitrária, e o intervalo de confiança mostra isso e leva você a considerar outros trade-offs. Se o intervalo de confiança for de 0,9% a 1,1%, dá para ter muito mais confiança no efeito
O grande problema é que, em alguns casos, é extremamente difícil obter barras de erro significativas. É bom imaginar uma situação em que toda previsão de um modelo de machine learning venha com esse tipo de valor, mas não conheço uma forma razoável de fazer isso para a maioria dos tipos de modelo. O mesmo vale para experimentos online que exigem desenho experimental complexo porque não é possível randomizar de forma a obter grupos suficientemente independentes
De forma semelhante, você deveria olhar regularmente para histogramas, isto é, distribuições estatísticas, de todas as métricas importantes. Certa vez tivemos um problema de desempenho numa grande chamada de serviço web: muitas chamadas terminavam em menos de 50ms, mas chamadas demais batiam no timeout de 500ms. Ao mesmo tempo, vimos dois picos bem distintos no histograma de latência e, investigando mais, descobrimos que os dois picos correspondiam a usuários deslogados e logados. Isso nos permitiu ignorar uma grande faixa de código e encontrar o problema de desempenho no código de personalização implantado recentemente, algo que de outra forma talvez nem tivéssemos suspeitado
Elas se esforçam de forma surpreendente para adicionar justificativas a decisões arbitrárias. Às vezes isso assume a forma de modelos estatísticos que apresentam ruído como se fosse sinal, e com frequência vem de falsos especialistas. Eles não têm metodologia nem ciclos de feedback para saber o que estão fazendo, mas possuem uma aura de expertise socialmente cultivada que pode emprestar legitimidade à decisão. Antigamente eram chamados de xamãs, sacerdotes e astrólogos; hoje são chamados de consultores de gestão e macroeconomistas
Eu prefiro deixar explicitamente claro o que está acontecendo e, literalmente, jogar uma moeda. Só que essa não é uma estratégia muito boa para ganhar um grande monte de pedras brilhantes
Às vezes existe um único processo que gera valores com distribuições em geral semelhantes. Essa é uma situação boa, porque permite usar várias ferramentas estatísticas para planejamento, inferência etc.
Mas muitas vezes, na prática, há dois ou mais processos misturados fingindo ser um só. Dentro de cada processo, os valores costumam vir de distribuições parecidas, mas qualquer análise feita sobre o todo agregado fica confusa. Se você conhece os principais componentes do falso processo único que está observando, sempre sai na frente da concorrência
[1]: https://two-wrongs.com/statistical-process-control-a-practit...
Concordo totalmente com essa ideia. E, para complementar, estimativas de data, ou seja, prazos, também deveriam ter barras de erro. No fim das contas, datas também são previsões
Se uma parte interessada exige uma data, também deveria especificar que tipo de barra de erro quer. Uma data bruta, sem estimativa de incerteza, não significa nada. Da mesma forma, se um engenheiro apresenta uma data para outras partes interessadas, deveria incluir junto algum tipo de estimativa de incerteza. Há uma diferença enorme entre dizer que há 90% de chance de terminar antes de X dias e dizer que há 99,9%
É quase uma distribuição em lei de potência enviesada para um lado. Quase nunca se termina muito antes do prazo e, quando isso acontece, normalmente não é por uma margem grande. Por outro lado, quando atrasa, pode atrasar absurdamente
Construir intervalos de confiança para algo assim é realmente difícil
Uma estimativa de data sem barras de erro não pode ser provada errada. Mas, se você diz “há 50% de chance de terminar até esta data”, então, olhando para as últimas 20 estimativas desse tipo, algo em torno de 10 deveria ter sido concluído no prazo. Caso contrário, a estimativa não está calibrada. Ainda assim, pelo menos dá para saber isso. Sem barras de erro, não daria para saber
Quantificação de incerteza é um aspecto negligenciado da ciência de dados, especialmente em aprendizado de máquina. Quem trabalha na prática nem sempre tem formação em estatística, e no mundo de machine learning costuma prevalecer a atitude de “preveja primeiro, pergunte depois”, então esse tipo de cuidado acaba ficando de lado
Eu sempre exijo barras de erro
Em modelos não lineares gerais, produzir barras de erro que realmente representem uma noção sensata de incerteza — ou, de forma mais ampla, uma distribuição de erro — pode ser teoricamente e computacionalmente bastante pesado, mesmo em casos ideais. Existem bons métodos práticos com respaldo teórico, como Monte Carlo Dropout, mas as barras de erro geradas ali nem sempre correspondem ao erro que você quer. MC DO estima a incerteza causada pelos pesos do modelo, mas não estima, por exemplo, a incerteza causada por dados de treinamento ruins
Sou fortemente a favor de métodos que incluam incerteza de forma natural, mas há muitos tipos de modelo que produzem resultados empiricamente muito úteis sem que esteja claro como gerar ou interpretar, de forma eficiente, estimativas de incerteza úteis
E há ainda outra questão separada, e frequentemente negligenciada, que é a ideia de saídas de modelo calibradas, mas isso já é outra toca do coelho
Mesmo assim, colocam milhões em modelos sem esses pré-requisitos, vendem isso às pessoas como solução, e passam pano com a ideia de que “se as pessoas compram, é porque tem valor”. As pessoas também pagam para vigaristas
Isso me lembrou algo parecido que Walter Lewin disse sobre medições na aula 8.01: “Uma medição sem conhecer a incerteza não tem sentido”
https://youtu.be/6htJHmPq0Os
Dá para dizer que uma previsão é uma medição feita sobre o futuro
Fonte: https://www.edge.org/response-detail/10459
Achei que isso fosse ser sobre clima
O ECMWF roda modelos em ensemble e provavelmente executa 51 modelos em paralelo, talvez variando um pouco as condições iniciais ou alterando os parâmetros do modelo dentro de algum intervalo. Com esses 51 modelos, dá para obter intervalos de confiança bastante razoáveis
Só que esse é um modelo de resolução mais baixa, executado com menos frequência. Imagino que o modelo “HRES” não rode em ensemble, porque sua resolução espacial é o dobro. O motivo, claro, é que o custo é altíssimo
[1]: https://en.wikipedia.org/wiki/Integrated_Forecast_System#Var...
https://content.meteoblue.com/en/research-education/specific...
Um exemplo interessante neste texto é nowcasting. É a técnica de prever o presente ou o passado enquanto se espera a chegada dos dados
Sem margem de erro, isso é ciência e estatística malfeitas
Para que a previsão mostre a incerteza real, você precisa estar numa posição bastante privilegiada, conhecendo o processo gerador dos dados. Quando isso é possível, dá para tentar uma calibração aproximada com muitos dados históricos, mas ainda assim há limites
Toda estimativa, previsão, interpolação e extrapolação deveria vir com intervalos de confiança, intervalos de predição ou intervalos de tolerância que reflitam as suposições que a equipe coloca no problema. Isso varia conforme a área de aplicação
Lembrei deste artigo[1]
“A ilusão da previsibilidade em resultados científicos: até especialistas confundem incerteza inferencial com variabilidade dos resultados”
Tradicionalmente, cientistas têm dado mais peso à comunicação da incerteza inferencial, que é a precisão da estimativa estatística, do que à variabilidade dos resultados, que é a previsibilidade de resultados individuais. Este artigo mostra que isso pode gerar mal-entendidos consideráveis sobre as implicações de resultados científicos. Especificamente, em três experimentos aleatorizados pré-registrados, os participantes viram a mesma descoberta científica em visualizações que mostravam apenas a incerteza inferencial, apenas a variabilidade dos resultados, ou ambas, e então responderam sobre o tamanho e a importância da descoberta. Os resultados, compostos por respostas de profissionais de saúde, cientistas de dados profissionais e professores em tenure track, mostram que a forma comum de visualizar apenas a incerteza inferencial pode levar até especialistas altamente treinados a superestimar bastante o efeito do tratamento. Em contraste, mostrar juntos a incerteza inferencial e a variabilidade dos resultados leva, em média, a uma percepção mais precisa, mantendo inalteradas outras impressões subjetivas sobre os resultados
[1] https://www.microsoft.com/en-us/research/publication/an-illu...
Previsões podem ser úteis mesmo sem barras de erro. Às vezes, um único point prediction basta para decidir uma ação
Mas, em outras situações, conhecer toda a distribuição preditiva ajuda ou é necessário para tomar uma boa decisão. A frase “previsões pontuais estão sempre erradas” é verdadeira para dados contínuos, mas, se você consegue prever que uma ação vai valer 2,01x em vez de 2x, isso ainda pode ser útil.