2 points par GN⁺ 2023-12-05 | 1 commentaires | Partager sur WhatsApp
  • Présenter un indicateur très volatil comme le taux de criminalité à l’échelle nationale uniquement sous forme de prévision ponctuelle facilite la surinterprétation de faibles écarts de tendance ; il faut examiner aussi les intervalles de prévision pour pouvoir juger correctement
  • Un modèle ARIMA(1,1,2) de Python statsmodels a été entraîné sur le taux de criminalité violente de 1960 à 2015, puis utilisé pour prévoir 2016 à 2025 ; le code et les données sont publiés sur GitHub
  • Pour les prévisions à un an sur 2016~2020, l’erreur standard reste inférieure à 20, mais lorsqu’on enchaîne des prévisions sur plusieurs années, l’erreur s’accumule et l’intervalle de prévision à 95 % pour 2025 s’élargit jusqu’à 260.36~575.07
  • Les valeurs observées réelles de 2021 et 2022 s’écartaient de la prévision de tendance haussière de Richard Rosenfeld, mais elles restent compatibles avec le modèle si l’on considère l’intervalle de prévision de l’ARIMA
  • Les prévisions de long terme du taux de criminalité national sont difficiles à utiliser directement pour l’action publique locale ; pour la répartition concrète des effectifs et des ressources, des prévisions plus spécifiques, comme la hausse des appels de service liée à la croissance urbaine, sont plus utiles

Il est difficile de juger la tendance du taux de criminalité à partir de seules prévisions ponctuelles

  • Richard Rosenfeld a traité des prévisions du taux de criminalité à l’échelle nationale dans Criminologist, et un texte publié fin 2023 présentait des prévisions pour 2021~2025
  • On se plaint que les statistiques criminelles du FBI arrivent avec un an de retard, mais cette prévision avait aussi le caractère d’une prévision tardive, puisqu’elle incluait au moment de sa publication des années déjà écoulées
  • Les prévisions ponctuelles se trompent presque toujours ; il faut donc présenter aussi les intervalles de prévision autour des valeurs prévues
  • La marge d’erreur montre à quel point une interprétation fondée sur de petits écarts de tendance peut facilement vaciller

Expérience de reproduction des prévisions avec ARIMA

  • L’analyse utilise pandas, statsmodels.tsa.arima.model.ARIMA et matplotlib de Python
  • Les données ont été construites en combinant UCR_1960_2019.csv avec des valeurs supplémentaires pour 2020~2022
    • Le taux de criminalité violente VRate est calculé comme Violent / Population * 100000
    • Le taux de criminalité contre les biens PRate est calculé de la même façon
  • Le code et les données sont disponibles sur GitHub
  • Pour rendre la comparaison possible avec l’article de Rosenfeld, la période 1960~2015 a été utilisée comme ensemble d’entraînement, avec un modèle ARIMA(1,1,2) ajusté
    • Rosenfeld écrit avoir ajusté un ARIMA(1,0,2) sur le taux de criminalité violente, mais comme il indique aussi avoir différencié les données, cela correspond en pratique à un ARIMA(1,1,2)
    • Le modèle de Rosenfeld inclut des facteurs exogènes comme l’inflation, mais ils ne sont pas pris en compte ici
    • Aucune grid search séparée n’a été menée pour trouver le modèle optimal

Diagnostic du modèle et mécanisme d’augmentation de l’erreur

  • Le coefficient AR(1) du modèle ajusté est négatif, ce qui laisse penser à une possible sur-différenciation
  • Selon violent.test_serial_correlation('ljungbox'), les résidus ne présentent pas d’autocorrélation significative
  • Une approche auto ARIMA pourrait choisir un meilleur modèle, mais dans ce cas la plupart des modèles ARIMA produiraient probablement des prévisions et des intervalles d’erreur très similaires
  • Pour 2016~2020, on peut comparer des prévisions à un an en ajoutant les nouvelles données au fur et à mesure
    • Sur cette période, l’erreur standard est de 19.813228, donc inférieure à 20
    • Elle entre dans la marge d’erreur absolue de 10 % que Rosenfeld estimait utile comme critère pratique
  • Quand on prévoit plusieurs années à l’avance, l’erreur s’accumule
    • Pour prévoir 2022, il faut d’abord prévoir 2021
    • Pour 2023, il faut prévoir en chaîne 2021, 2022 et 2023
    • L’erreur standard augmente en gros comme sqrt(steps*se^2), selon une structure où les variances s’additionnent

Intervalles de prévision et valeurs observées pour 2016~2025

  • La moyenne des prévisions ARIMA pour 2016~2025 se situe généralement entre 379 et 420, mais l’intervalle de prévision s’élargit avec le temps
    • 2021 : moyenne 412.99, intervalle à 95 % 374.16~451.82
    • 2022 : moyenne 420.17, intervalle à 95 % 342.16~498.18
    • 2023 : moyenne 416.91, intervalle à 95 % 303.53~530.28
    • 2025 : moyenne 417.72, intervalle à 95 % 260.36~575.07
  • Les prévisions ponctuelles de Rosenfeld sont, pour certaines années, plus proches des valeurs réelles que la moyenne ARIMA
    • Pour la valeur observée de 2020 à 398.5, Rosenfeld prévoit 394.9, contre une moyenne ARIMA de 379.21
    • Pour la valeur observée de 2021 à 387.0, Rosenfeld prévoit 404.1, contre une moyenne ARIMA de 412.99
    • Pour la valeur observée de 2022 à 380.7, Rosenfeld prévoit 409.3, contre une moyenne ARIMA de 420.17
  • Le MAPE des estimations ponctuelles de l’ARIMA est moins bon que celui de Rosenfeld sur une partie de l’échantillon held-out, mais les valeurs observées restent dans l’intervalle de prévision de l’ARIMA
  • Les valeurs observées de 2021 et 2022 montrent que la prévision de tendance haussière de Rosenfeld s’est déjà révélée erronée
  • Les prévisions ARIMA ont intrinsèquement un comportement de retour vers la moyenne et tendent à converger vers la composante moyenne en quelques étapes

Prévisions 2023~2025 revues à la baisse après intégration des données récentes

  • Après avoir ajouté les données de 2021~2022, les prévisions pour 2023~2025 ont été recalculées
  • Les prévisions mises à jour sont plus basses que les prévisions de long terme initiales
    • 2023 : moyenne 371.98, intervalle à 95 % 333.14~410.81
    • 2024 : moyenne 380.09, intervalle à 95 % 302.08~458.11
    • 2025 : moyenne 376.40, intervalle à 95 % 263.03~489.78
  • Le graphique permet de saisir plus facilement l’ampleur de la marge d’erreur
  • Si l’on inclut des facteurs exogènes, il faut aussi prévoir ces facteurs eux-mêmes sur plusieurs années, et intégrer également leur propre erreur

Limites des prévisions macro du taux de criminalité pour l’action publique

  • Les prévisions du taux de criminalité violente à l’échelle nationale sont difficiles à utiliser directement pour l’action publique réelle
  • Une ville comme Pittsburgh n’a pas de raison d’utiliser directement une prévision nationale du taux de criminalité pour ses décisions politiques
  • Même si la précision des prévisions s’améliorait à 5 % ou 1 %, il serait difficile pour un responsable fédéral de réagir de façon opérationnelle en se disant : « dans deux ans, le taux de criminalité violente augmentera de 10, donc finançons 1342 policiers supplémentaires »
  • Les prévisions macro du taux de criminalité sont critiquées parce qu’il n’y a pas de véritable skin in the game quand elles se trompent
  • Dans les applications concrètes de prévision criminelle, une estimation selon laquelle l’ajout d’une maison ou d’un appartement dans une ville entraîne environ un appel de service supplémentaire par an est plus utile en pratique
    • Pour les villes en croissance, cette approche convient mieux à la planification de long terme des effectifs

Références citées

1 commentaires

 
GN⁺ 2023-12-05
Commentaires sur Hacker News
  • Il y a ici deux points intéressants. L’un est abordé par l’auteur, l’autre non. Premièrement, comme le dit la fin de l’article, les prévisions devraient généralement mener à une décision ; si l’on sépare les deux, leur valeur peut devenir floue
    Rosenfield semble vouloir donner plus de poids, via la prévision, à des conclusions statistiques sur des données passées, ce qui paraît discutable. Deuxièmement, on ne sait pas clairement non plus ce que les barres d’erreur sont censées signifier. L’une correspond à un intervalle de confiance[1], l’autre à un écart-type. Autrement dit, on prédit en pratique l’écart quadratique entre sa prévision ponctuelle et le résultat réel
    [1] J’admets que le terme n’est pas exact

    • Quelqu’un a récemment décrit les statistiques sur Hacker News comme « une tentative de mesurer à quel point on devrait être surpris quand on a tort ». Des barres d’erreur épaisses donnent l’impression qu’il faut s’attendre à se tromper, alors que des barres d’erreur fines montrent qu’avoir tort peut être assez gênant
      Ce n’est pas une explication exhaustive de toute la statistique, mais c’est une perspective utile pour penser aux prévisions
    • La position défendue par Bill Phillips [1], et que je suis maintenant moi aussi, est la suivante : il faut être prêt à accepter les deux côtés du pari qu’implique un intervalle de confiance
      Par exemple, pour un intervalle de confiance à 95 %, il faut être également prêt à accepter une cote de 19:1 sur le fait que la vraie valeur est en dehors de l’intervalle, et une cote de 1:19 sur le fait qu’elle est à l’intérieur. Cette approche est généralement correcte, et elle rend les discussions sur l’incertitude bien plus concrètes, avec un critère immédiatement exploitable. Si c’est bien fait, on attribue une incertitude ni trop conservatrice ni trop optimiste.
      Si l’idée de laisser le lecteur choisir n’importe quel côté du pari vous met un peu mal à l’aise, c’est plutôt bon signe. Cette sensation s’atténue quand on est assez certain d’avoir correctement calibré les barres d’erreur et que l’inférence est documentée et défendable
      Réponse complémentaire à la question initiale : des barres d’erreur à 1 écart-type correspondent à un intervalle de confiance à 68 %, et 2 écarts-types à un intervalle de confiance à 95 %. Bien sûr, en supposant un point de vue fréquentiste
      [1] https://www.nobelprize.org/prizes/physics/1997/phillips/fact...
    • Dans une prévision, les barres d’erreur ne peuvent signifier que l’incertitude du modèle. Sans barres d’erreur pour les modèles, on ne peut rien dire de leur qualité ; et même avec, le modèle de plus haut niveau peut être inadéquat
    • Ce n’est pas un intervalle de confiance. Un intervalle de confiance est une variable aléatoire qui, dans 95 % des cas, contient la vraie valeur, sous l’hypothèse que le modèle est correctement spécifié
    • Qu’il s’agisse d’intervalles de confiance ou d’écarts-types, les barres d’erreur ont une utilité limitée, car elles n’indiquent pas comment la probabilité se répartit à l’intérieur de cet intervalle. Le Graal de la prévision est la prévision probabiliste de la distribution a posteriori complète, à partir de laquelle on peut tirer des échantillons pour produire des scénarios ou des réalisations du processus aléatoire sous-jacent
  • Il faut vraiment le faire. J’ai travaillé dans une organisation qui a mené des milliers d’expériences en ligne pendant plusieurs années, et disposer de barres d’erreur aidait énormément à mieux comprendre les comparaisons d’effet entre nouveaux traitements
    Certaines personnes estimaient que cela brouillait le jugement. Par exemple, si un nouveau traitement produisait une « amélioration » de 1 %, mais avec un intervalle de confiance allant de -10 % à 10 %, alors l’expérience ne nous apprenait rien sur l’effet réel sur cette métrique. Cela donne l’impression que la décision est plus arbitraire, mais c’est précisément le point. Dans ce cas, la décision est effectivement arbitraire, et l’intervalle de confiance le montre, ce qui pousse à considérer d’autres compromis. Si l’intervalle de confiance va de 0,9 % à 1,1 %, on peut être beaucoup plus sûr de l’effet
    Le gros problème, c’est que dans certains cas il est extrêmement difficile d’obtenir des barres d’erreur pertinentes. Par exemple, il serait formidable de pouvoir attacher une telle valeur à chaque prédiction d’un modèle de machine learning, mais je ne vois pas bien comment y parvenir de façon raisonnable pour la plupart des types de modèles. Il en va de même pour les expériences en ligne qui nécessitent des plans expérimentaux complexes, parce qu’on ne peut pas effectuer de randomisation de manière à obtenir des groupes suffisamment indépendants
    De même, il faut examiner régulièrement des histogrammes, c’est-à-dire des distributions statistiques, pour toutes les métriques importantes. Une fois, nous avions un problème de performance sur un gros appel de service web : beaucoup d’appels se terminaient en moins de 50 ms, mais trop d’appels atteignaient le timeout à 500 ms. Nous avons aussi vu apparaître deux pics nets dans l’histogramme des temps de réponse, et en creusant, nous avons découvert que ces deux pics correspondaient aux utilisateurs déconnectés et connectés. Cela nous a permis d’ignorer une large partie du code et de trouver le problème de performance dans du code de personnalisation récemment déployé, que nous n’aurions sinon probablement pas suspecté

    • Le fait que « la décision paraisse plus arbitraire » est quelque chose qu’on voit de plus en plus avec l’expérience. Les gens détestent vraiment les décisions arbitraires
      Ils font des efforts surprenants pour leur donner une justification. Parfois cela prend la forme d’un modèle statistique qui présente du bruit comme un signal, et cela vient souvent de faux experts. Ils n’ont ni méthodologie ni boucle de rétroaction permettant de savoir ce qu’ils font, mais ils ont une aura d’expertise socialement construite qui permet de prêter une légitimité à la décision. Autrefois, on les appelait chamans, prêtres ou astrologues ; aujourd’hui, on les appelle consultants en management et macroéconomistes
      Pour ma part, je préfère expliciter ce qui se passe et littéralement tirer à pile ou face. Mais ce n’est pas une stratégie très efficace pour accumuler un gros tas de cailloux brillants
    • Le fait que les utilisateurs déconnectés et connectés constituent les deux pics est extrêmement courant, et c’est l’une des idées centrales du contrôle statistique des processus
      Parfois, il existe un processus unique qui génère des valeurs suivant globalement une distribution similaire. C’est une bonne situation, car on peut utiliser divers outils statistiques pour la planification, l’inférence, etc.
      Mais en pratique, il arrive souvent qu’il y ait un mélange de deux processus ou plus, tout en faisant comme s’il n’y en avait qu’un. À l’intérieur de chaque processus, les valeurs suivent en général des distributions similaires, mais l’analyse de l’ensemble agrégé devient confuse. Si l’on connaît les principaux composants du faux processus unique que l’on observe, on garde toujours une longueur d’avance sur ses concurrents
      [1]: https://two-wrongs.com/statistical-process-control-a-practit...
  • Je suis tout à fait d’accord avec cette idée. Et j’ajouterais qu’une estimation de date, c’est-à-dire une échéance, devrait elle aussi avoir des barres d’erreur. Après tout, une date est aussi une prédiction
    Si une partie prenante demande une date, elle devrait aussi préciser quelles barres d’erreur elle veut. Une date brute sans estimation de l’incertitude ne veut rien dire. De même, si un ingénieur donne une date à d’autres parties prenantes, il devrait y joindre une estimation de l’incertitude sous une forme ou une autre. Il y a une énorme différence entre dire qu’il y a 90 % de chances que ce soit terminé avant X jours et dire 99,9 %

    • Le problème, c’est que les estimations de date pour une échéance ne suivent pas une distribution normale, donc les outils statistiques usuels que tout le monde emploie ne fonctionnent pas
      C’est presque une loi de puissance très asymétrique. Une échéance se termine rarement en avance, et quand c’est le cas, ce n’est généralement pas de beaucoup. À l’inverse, quand ça prend du retard, ça peut être absurdement en retard
      Construire un intervalle de confiance pour quelque chose comme ça est vraiment difficile
    • C’est tout à fait vrai. J’ai déjà écrit à ce sujet, et l’un des grands avantages est que cela permet d’apprendre de ses erreurs
      Une estimation de date sans barres d’erreur ne peut pas être prouvée fausse. Mais si vous dites « il y a 50 % de chances que ce soit fini avant cette date », alors en regardant les 20 estimations récentes de ce type, environ 10 auraient dû être terminées à temps. Sinon, l’estimation n’est pas calibrée. Au moins, on peut le savoir. Sans barres d’erreur, on ne le saurait pas
    • Une échéance implique que la borne supérieure des barres d’erreur ne peut pas dépasser cette date. Donc, pour respecter l’échéance, il faut ajouter un buffer approprié
  • La quantification de l’incertitude est un aspect négligé en data science, surtout en machine learning. Les praticiens n’ont pas toujours une formation en statistique, et le machine learning a souvent une attitude du genre « on prédit d’abord, on pose les questions ensuite », donc ce genre de rigueur passe au second plan
    Moi, je demande toujours des barres d’erreur

    • On peut demander des barres d’erreur, mais ce n’est pas toujours possible ni pertinent. On peut bricoler une estimation d’erreur vaguement normale, indépendante et identiquement distribuée dans presque n’importe quelle méthode, mais cela ne veut pas forcément dire qu’elle a du sens
      Dans les modèles non linéaires en général, produire des barres d’erreur, ou plus généralement une distribution d’erreur, qui décrivent réellement une notion sensée d’incertitude peut être assez coûteux en théorie comme en calcul, même dans des cas idéaux. Il existe de bonnes méthodes pratiques avec un fondement théorique, comme Monte Carlo Dropout, mais les barres d’erreur qu’on obtient ne sont pas toujours celles qu’on veut. MC DO estime l’incertitude due aux poids du modèle, mais pas, par exemple, l’incertitude due à de mauvaises données d’entraînement
      Je suis fortement favorable aux méthodes qui intègrent naturellement l’incertitude, mais il existe en pratique beaucoup de types de modèles qui donnent des résultats très utiles sans qu’on sache clairement comment produire ou interpréter efficacement des estimations d’incertitude utiles
      Et il y a aussi une autre question, distincte et souvent négligée, celle des sorties de modèle calibrées, mais c’est encore un autre terrier de lapin
    • Alors est-ce vraiment de la science ? C’est une notion de niveau introduction aux statistiques. Les raisons, la nécessité et les risques de leur absence sont très clairs
      Pourtant, des millions sont investis dans des modèles sans ces prérequis, puis vendus aux gens comme des solutions, avec l’idée que « si les gens achètent, c’est que ça a de la valeur ». Les gens paient aussi des escrocs
    • Les barres d’erreur sont importantes. Mais la plupart des gens interprètent mal ce qu’elles signifient. Voir https://errorbars.streamlit.app/
    • En tant qu’outil statistique, les barres d’erreur peuvent aussi révéler des problèmes dans les données sous-jacentes et dans le modèle. Par exemple, si elles sont irréalistes, trop étroites ou symétriques, cela devrait éveiller des soupçons
  • Cela me rappelle une remarque similaire de Walter Lewin dans son cours 8.01 à propos des mesures : « Une mesure dont on ne connaît pas l’incertitude n’a pas de sens »
    https://youtu.be/6htJHmPq0Os
    On peut dire qu’une prédiction est une mesure faite sur le futur

    • Dans le même esprit, il y a aussi cette citation de Lawrence M. Krauss : « La capacité à quantifier l’incertitude et à l’intégrer dans un modèle est ce qui rend la science quantitative plutôt que qualitative »
      Source : https://www.edge.org/response-detail/10459
  • Je pensais que ça allait parler de météo

    • Moi aussi, et je m’attendais à un fil sur les barres d’erreur des modèles météo. En fait, ça existe
      L’ECMWF fait tourner des modèles d’ensemble, probablement en modifiant légèrement les conditions initiales ou en faisant varier les paramètres du modèle dans une certaine plage, ce qui donne 51 modèles exécutés en parallèle. On peut obtenir à partir de ces 51 modèles des intervalles de confiance plutôt corrects
      En revanche, c’est un modèle à plus faible résolution, exécuté moins souvent. Le modèle « HRES » a une résolution spatiale deux fois plus fine, et j’imagine qu’il n’est pas exécuté en ensemble. La raison est évidemment que cela coûte extrêmement cher
      [1]: https://en.wikipedia.org/wiki/Integrated_Forecast_System#Var...
    • J’utilise meteoblue depuis un moment, et il indique à quel point il est confiant dans ses prévisions. Là, par exemple, je peux voir que la prévisibilité pour demain est moyenne, et élevée pour après-demain
      https://content.meteoblue.com/en/research-education/specific...
    • C’est aussi ce que je pensais, mais je me demande si, dans le contexte humain, les phénomènes atmosphériques ordinaires se trompent aujourd’hui à un point tel que les barres d’erreur aient une vraie valeur pratique, ou qu’elles deviennent au contraire source de confusion
  • Un exemple intéressant dans cet article est le nowcasting. C’est la technique qui consiste à prédire le présent ou le passé pendant qu’on attend l’arrivée des données
    Sans marge d’erreur, c’est de la science et de la statistique bâclées

    • Il n’est pas toujours facile de dire quel est le bénéfice réel. Même si l’on présente l’incertitude interne du modèle d’un modèle probabiliste, cela peut ne rien dire sur l’erreur d’estimation par rapport au processus réel
      Pour qu’une prédiction reflète l’incertitude réelle, il faut être dans une position assez privilégiée où l’on connaît le processus générateur des données. Quand c’est possible, on peut tenter un calibrage grossier avec beaucoup de données historiques, mais cela reste limité
    • Que ce genre de chose existe a du sens. Mais du coup ma blague est moins drôle : « Je suis presque voyant. Je peux prédire les choses juste après qu’elles se sont produites »
  • Toute estimation, prédiction, interpolation ou extrapolation devrait avoir un intervalle de confiance, un intervalle de prédiction ou un intervalle de tolérance qui reflète les hypothèses que l’équipe introduit dans le problème. Le choix dépend du domaine d’application

  • Cela rappelle cet article[1]
    « L’illusion de prédictibilité dans les résultats scientifiques : même les experts confondent l’incertitude inférentielle et la variabilité des résultats »
    Traditionnellement, les scientifiques ont accordé davantage d’importance à la communication de l’incertitude inférentielle, c’est-à-dire la précision d’une estimation statistique, qu’à la variabilité des résultats, c’est-à-dire la prédictibilité d’un résultat individuel. Cet article montre que cela peut engendrer des malentendus importants quant aux implications des résultats scientifiques. Plus précisément, dans trois expériences randomisées préenregistrées, les participants ont vu la même découverte scientifique présentée sous forme de visualisations montrant uniquement l’incertitude inférentielle, uniquement la variabilité des résultats, ou les deux, puis ont répondu sur l’ampleur et l’importance de la découverte. Les résultats, fondés sur les réponses de professionnels de santé, de data scientists expérimentés et de professeurs en tenure track, montrent que l’approche courante consistant à ne visualiser que l’incertitude inférentielle peut conduire même des experts hautement qualifiés à surestimer fortement l’effet d’un traitement. À l’inverse, montrer ensemble l’incertitude inférentielle et la variabilité des résultats conduit à une perception plus juste, sans modifier en moyenne les autres impressions subjectives sur les résultats
    [1] https://www.microsoft.com/en-us/research/publication/an-illu...

    • Référence très intéressante. Il existe tout un domaine appelé modélisation de l’incertitude
  • Une prédiction peut être utile même sans barres d’erreur. Parfois, un seul point estimate suffit pour décider d’une action
    Mais parfois, connaître l’ensemble de la distribution prédictive aide, voire est nécessaire, pour prendre une bonne décision. Dire que « les prédictions ponctuelles sont toujours fausses » est vrai pour des données continues, mais si l’on peut prédire qu’une action va être multipliée par 2,01 et non simplement par 2, cela reste utile.