2 pontos por GN⁺ 2023-12-05 | 1 comentários | Compartilhar no WhatsApp
  • 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 statsmodels em 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 Criminologist e, 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.ARIMA e matplotlib do Python
  • Os dados foram montados combinando UCR_1960_2019.csv com valores adicionais de 2020 a 2022
    • A taxa de crimes violentos VRate é calculada como Violent / Population * 100000
    • A taxa de crimes patrimoniais PRate é calculada da mesma forma
  • 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

1 comentários

 
GN⁺ 2023-12-05
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

    • Recentemente no Hacker News alguém descreveu estatística como “uma tentativa de medir o quanto você deveria se surpreender quando estiver errado”. Barras de erro grossas passam a noção de que você deve esperar estar errado, enquanto barras finas mostram que o fato de estar errado pode ser bem desconfortável
      Não é uma descrição de toda a estatística, mas é uma perspectiva útil para pensar em previsões
    • A posição defendida por Bill Phillips [1], e que hoje eu também sigo, é esta: “você deve estar disposto a aceitar qualquer um dos lados da aposta implícita por um intervalo de confiança”
      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...
    • Em previsões, barras de erro só podem significar a incerteza que o modelo tem. Sem barras de erro para os modelos, não dá para dizer nada sobre quão bom o modelo é, e mesmo com elas o modelo de nível superior pode ser inadequado
    • Isso não é um intervalo de confiança. Um intervalo de confiança é uma variável aleatória que, assumindo que o modelo foi especificado corretamente, contém o valor verdadeiro em 95% dos casos
    • Barras de erro, sejam intervalos de confiança ou desvios padrão, têm utilidade limitada porque não informam como a probabilidade se distribui dentro daquele intervalo. O santo graal da previsão é a previsão probabilística da distribuição a posteriori completa, da qual se pode extrair amostras para criar cenários ou realizações do processo aleatório subjacente
  • 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

    • Essa ideia de que “a decisão parece mais arbitrária” é algo que você passa a ver com mais frequência conforme ganha experiência. As pessoas realmente odeiam decisões arbitrárias
      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
    • O fato de usuários deslogados e logados formarem os dois picos é muito comum e é uma das ideias centrais do controle estatístico de processo
      À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%

    • O problema é que estimativas de data para prazos não seguem distribuição normal, então as ferramentas estatísticas comuns que todo mundo usa não funcionam
      É 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
    • Isso é muito verdade. Já escrevi antes sobre essa abordagem, e uma das grandes vantagens é que ela permite aprender com os erros
      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
    • Um prazo implica que o limite superior da barra de erro não pode ultrapassar essa data. Por isso, para cumprir um prazo, é preciso colocar um buffer adequado
  • 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

    • Você pode exigir barras de erro, mas isso nem sempre é possível ou significativo. Dá para “encaixar” uma estimativa de erro aproximadamente normal e i.i.d. em praticamente qualquer método, mas isso não quer dizer que ela necessariamente faça sentido
      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
    • Então isso é realmente ciência? Esse é um conceito de nível introdutório em estatística. A razão, a necessidade e os riscos da ausência disso são extremamente claros
      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
    • Barras de erro são importantes. Mas a maioria interpreta mal o que elas significam. Veja https://errorbars.streamlit.app/
    • Barras de erro, do ponto de vista estatístico, também podem revelar problemas nos dados e no modelo subjacente. Por exemplo, se forem irrealisticamente estreitas ou simétricas, é motivo para desconfiança
  • 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

    • Em linha semelhante, há também esta frase de Lawrence M. Krauss: “A capacidade de quantificar a incerteza e incorporá-la aos modelos é o que torna a ciência não qualitativa, mas quantitativa
      Fonte: https://www.edge.org/response-detail/10459
  • Achei que isso fosse ser sobre clima

    • Eu também, e esperava um tópico sobre barras de erro em modelos meteorológicos. E isso realmente existe
      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...
    • Faz algum tempo que uso meteoblue, e ele informa o nível de confiança da previsão. Neste momento, por exemplo, dá para ver que a previsibilidade de amanhã está em nível médio e a de depois de amanhã está alta
      https://content.meteoblue.com/en/research-education/specific...
    • Eu também pensei isso, mas fico me perguntando, no contexto humano, se fenômenos atmosféricos comuns têm errado tanto assim ultimamente a ponto de barras de erro terem valor prático ou até gerarem mais confusão
  • 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

    • Nem sempre é fácil dizer qual é o ganho. Você pode apresentar a incerteza interna do modelo de um modelo probabilístico e, ainda assim, não dizer nada sobre o erro estimado em comparação com o processo real
      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
    • Faz sentido que algo assim exista. Só que aí minha piada perde a graça: “Sou quase um vidente. Consigo prever as coisas logo depois que elas acontecem”
  • 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...

    • Referência muito interessante. Existe toda uma área chamada modelagem de incerteza
  • 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.