Le numéro de juillet 2021 de l’AJHP contenait un article décrivant le développement et l’évaluation d’un modèle prédictif des ruptures d’approvisionnement en médicaments.
Le contexte de réalisation de l’étude est un peu mal décrit, mais je crois comprendre que les auteurs sont des pharmaciens d’un centre universitaire américain situé en Caroline du Nord et qu’ils ont réalisé cette étude à partir de données disponibles publiquement et des données internes de leur institution.
Ils ont construit un jeu de données à partir des ruptures d’approvisionnement observées dans leur centre en 2016 et 2017 et ont catégorisé chaque médicament à l’aide d’une issue dichotomique soit la présence d’une rupture durant la période d’observation ou son absence. Ensuite, ils ont associé à chaque médicament des variables potentiellement prédictives d’une rupture identifiées à partir d’une revue de littérature. Ces données ont été extraites de diverses sources énumérées dans l’article. Cependant, certaines données n’ont pu être obtenues (par exemple les données relatives aux méthodes de fabrication du médicament) et ont donc été exclues.
Un modèle de régression logistique a été construit. Les variables ont d’abord été testées individuellement pour inclusion dans le modèle multivarié, cependant certaines variables ont été jugées prioritaires par les auteurs et ont été incluses peu importe leur effet dans le modèle univarié. Les autres variables ont été incluses dans le modèle multivarié selon la présence d’une corrélation dans le modèle univarié pour chacune. Le modèle a été testé à l’aide d’une validation croisée à 10 blocs (10-fold cross-validation), et la mesure de performance rapportée était la moyenne de performance sur le jeu de validation de chacun des 10 blocs. Les mesures de performance « classiques » d’un modèle prédictif dichotomique (aire sous la courbe ROC et mesures associées au tableau 2×2) ont été rapportées.
Les variables candidates identifiées à partir de la revue de littérature étaient d’abord ceux liées au manufacturier (équipement désuet, contamination des matières premières, etc.), ou liées aux catastrophes naturelles compromettant la fabrication ou le transport; celles-ci correspondent aux données exclues car non disponibles ou non prévisibles. Les données incluses étaient le nombre de manufacturiers, la disponibilité de formes par voie orale, injectable, ou les deux, la présence de génériques, la classe thérapeutique, le statut de drogue contrôlée selon les normes américaines, et le statut de médicament orphelin. On note que ce que les auteurs entendent par « médicament » est mal défini dans l’article, parlent-ils d’un produit précis (comme on pourrait imaginer en parlant de nombre de manufacturiers) ou d’une molécule (comme on pourrait imaginer en parlant de disponibilité par voie orale ou injectable) ? Ont-ils regroupé différents formats ou teneurs d’une même molécule (comme on aurait tendance à substituer de l’un à l’autre en cas de rupture) ?
1588 médicaments ont été inclus, dont 71 ont été exclus en raison de données manquantes. 1096 (72,2%) n’ont pas eu de ruptures, les autres en ont eu une (on voit ici un débalancement de classes, nous y reviendrons). Les classes thérapeutiques les plus fréquentes étaient « autre » (44,6%), suivi des agents cardiovasculaires (15%) et antimicrobiens (13,6%). Le nombre de manufacturiers moyen par médicament était de 4,9. Les facteurs significatifs associées à la présence de rupture en régression univariée étaient la voie intraveineuse seulement, les classes antimicrobien, analgésique, électrolyte, anesthésique ou cardiovasculaire et la présence uniquement de manufacturiers génériques. En régression multivariée, les facteurs associés aux ruptures étaient la voie intraveineuse seulement ou la présence à la fois de produits oraux et intraveineux, et les classes antimicrobien, analgésique, électrolyte, anesthésique ou cardiovasculaire.
Les auteurs affirment que la performance du modèle était bonne, avec une sensibilité de 0,71, une spécificité de 0,93, valeur prédictive positive de 0,80, et valeur prédictive négative de 0,90. L’aire sous la courbe ROC était 0,93 et l’exactitude 0,97.
L’objectif de cette étude est définitivement intéressant, car il serait très utile de pouvoir prédire à l’avance qu’un médicament sera en rupture de stock. Cependant, malgré les chiffres de performance qui apparaissent à prime abord satisfaisants, je ne crois pas que les auteurs aient réussi à atteindre réellement leur objectif ni à bien démontrer la performance de leur modèle. Gardons d’abord en tête que l’étude n’a porté que sur un jeu de données construit pour l’étude et n’a fait l’objet d’aucune évaluation en pratique réelle, et la littérature ne manque pas d’exemple de modèles prometteurs en théorie qui ont échoué en pratique pour une variété de raisons.
Au niveau méthodologique, on peut se demander pourquoi seulement la régression logistique a été testée. En effet, il s’agit d’un modèle simple et définitivement à inclure dans une liste de modèles à tester, et d’ailleurs offrant une performance surprenante en comparaison à certains modèles beaucoup plus complexes, mais il aurait été relativement facile de tenter plusieurs modèles à prédiction dichotomique et de comparer les résultats (arbres de décision, machine à vecteurs de support). Il est aussi dommage que seule la performance globale du modèle ait été rapportée. En effet, comme les médicaments sans rupture de stock étaient majoritaires dans les données, il est connu que les mesures comme l’aire sous la courbe ROC peuvent apparaître erronément élevées en raison d’une tendance à prédire la classe majoritaire. Une statistique comme l’aire sous la courbe précision-rappel aurait été préférable, ou au minimum des chiffres de performance découpés par classe avec ou sans rupture. Enfin, il est dommage que le code est les données ne soient pas disponibles, il est ainsi impossible d’évaluer de manière indépendante ce que les auteurs affirment, et il s’agit de données et de code que j’imagine relativement simples et faciles à sécuriser afin de les rendre partageables.
De façon plus générale, je trouve que la manière dont le modèle est conçu est problématique. Essentiellement, les auteurs arrivent à un modèle qui prédit si un médicament est à risque d’être en rupture de stock en fonction de ses caractéristiques « de base », sans tenir compte de sa chaîne logistique. Par exemple, une donnée est le nombre de manufacturiers plutôt que l’identité de ces manufacturiers. Donc, à travers le temps dans une utilisation pratique, ce modèle ne pourrait arriver à prédire avec succès une rupture pour un médicament que si des médicaments avec des caractéristiques de base similaires se sont retrouvés aussi en rupture. De plus, avec la stratégie de validation croisée sans égard au temps (il n’est pas mentionné précisément dans l’article quelle stratégie de division en blocs a été utilisée mais comme il s’agit de 10 blocs on peut assumer que c’est une stratégie avec division aléatoire des données sans égard au temps), on peut se retrouver avec des effets de contamination. Si par exemple durant une période, plusieurs médicaments du même manufacturier se sont retrouvés en rupture et que ceux-ci avaient des caractéristiques similaires (on peut imaginer par exemple plusieurs électrolytes intraveineux produits par le même manufacturier en rupture en même temps, ce que l’on a vécu à quelques reprises dans le passé), le modèle peut avoir été contaminé si des données de cette période se sont retrouvées à la fois dans les blocs d’entraînement et de validation, offrant ainsi une bonne performance de prédiction, alors qu’en réalité le modèle n’aurait jamais vu venir cette rupture.
Bref, c’est une étude avec un objectif intéressant, mais l’aspect expérimental comporte tellement de lacunes et de raccourcis méthodologiques que j’ai de la difficulté à croire que le modèle ainsi élaboré offrirait une performance satisfaisante en pratique.