Comment les modèles d'apprentissage automatique (GBM, NN, etc.) peuvent-ils être utilisés pour l'analyse de survie?


13

Je sais que les modèles statistiques traditionnels comme la régression des risques proportionnels de Cox et certains modèles de Kaplan-Meier peuvent être utilisés pour prédire jours jusqu'à la prochaine occurrence d'une panne par exemple d'événements , etc. -à- dire l' analyse de survie

Des questions

  1. Comment la version de régression de modèles d'apprentissage automatique tels que GBM, les réseaux de neurones, etc. peut-elle être utilisée pour prédire les jours avant l'occurrence d'un événement?
  2. Je crois que l'utilisation de jours avant l'occurrence comme variable cible et la simplification de l'exécution d'un modèle de régression ne fonctionneront pas? Pourquoi cela ne fonctionnera-t-il pas et comment le réparer?
  3. Peut-on convertir le problème d'analyse de survie en une classification et ensuite obtenir des probabilités de survie? Si alors comment créer la variable cible binaire?
  4. Quels sont les avantages et les inconvénients de l'approche d'apprentissage automatique par rapport à la régression des risques proportionnels de Cox et aux modèles Kaplan-Meier, etc.?

Imaginez des exemples de données d'entrée au format ci-dessous

entrez la description de l'image ici

Remarque:

  • Le capteur envoie un ping aux données à des intervalles de 10 minutes, mais parfois des données peuvent être manquantes en raison d'un problème de réseau, etc., comme représenté par la ligne avec NA.
  • var1, var2, var3 sont les prédicteurs, variables explicatives.
  • failure_flag indique si la machine a échoué ou non.
  • Nous avons des données des 6 derniers mois à chaque intervalle de 10 minutes pour chacun des ID de machine

ÉDITER:

La prévision de sortie attendue doit être dans le format ci-dessous entrez la description de l'image ici

Remarque: Je veux prédire la probabilité de défaillance de chacune des machines pour les 30 prochains jours au niveau quotidien.


1
Je pense que cela aiderait si vous pouviez expliquer pourquoi il s’agit de données temporelles; Quelle est exactement la réponse que vous souhaitez modéliser?
Cliff AB

J'ai édité et ajouté le tableau de prédiction de sortie attendu pour le rendre clair. Dis moi si tu as d'autres questions.
GeorgeOfTheRF du

1
Il existe des moyens de convertir les données de survie en résultats binaires dans certains cas, par exemple, les modèles d'aléa à temps discret: statisticshorizons.com/wp-content/uploads/Allison.SM82.pdf . Certaines méthodes d'apprentissage automatique telles que les forêts aléatoires peuvent modéliser les données de temps avant événement en utilisant, par exemple, la statistique de classement du journal comme critère de fractionnement.
dsaxton

@dsaxton Merci. Pouvez-vous expliquer comment convertir les données de survie ci-dessus en résultats binaires?
GeorgeOfTheRF

Après avoir regardé de plus près, il semble que vous ayez déjà des résultats binaires avec le failure_flag.
dsaxton

Réponses:



2

Jetez un œil à ces références:

https://www.stats.ox.ac.uk/pub/bdr/NNSM.pdf

http://pcwww.liv.ac.uk/~afgt/eleuteri_lyon07.pdf

Notez également que les modèles traditionnels basés sur les risques comme les risques proportionnels de Cox (CPH) ne sont pas conçus pour prédire le temps avant l'événement, mais plutôt pour déduire l'impact des variables (corrélation) contre i) les observations des événements et, par conséquent ii) une courbe de survie . Pourquoi? Regardez le MLE du CPH.

Par conséquent, si vous voulez prédire plus directement quelque chose comme «jours avant l'occurrence», CPH peut ne pas être conseillé; d'autres modèles peuvent mieux servir votre tâche comme indiqué dans les deux références ci-dessus.


1

Comme l'a dit @dsaxton, vous pouvez créer un modèle temporel discret. Vous l'avez configuré pour prédire p (échec à ce jour étant donné survécu jusqu'à la veille). Vos entrées sont le jour en cours (dans la représentation que vous voulez), par exemple un encodage à chaud, un entier, .. Spline ... ainsi que toutes les autres variables indépendantes que vous pourriez souhaiter

Vous créez donc des lignes de données, pour chaque échantillon qui a survécu jusqu'au temps t-1, est-il mort au temps t (0/1).

Alors maintenant, la probabilité de survivre jusqu'au temps T est le produit de p (ne meurs pas au temps t donné n'est pas mort à t-1) pour t = 1 à T. C'est-à-dire que vous faites des prédictions T à partir de votre modèle, puis multiplier ensemble.

Je dirais que la raison pour laquelle ce n'est pas une telle idée de prédire directement le temps de l'échec est à cause de la structure cachée du problème. Par exemple, que saisissez-vous pour les machines qui n'ont pas échoué. La structure sous-jacente est effectivement les événements indépendants: échouer au temps t donné n'a pas échoué jusqu'à t-1. Donc, par exemple, si vous supposez qu'il est constant, votre courbe de survie devient exponentielle (voir modèles de danger)

Notez dans votre cas que vous pouvez modéliser à 10 minutes d'intervalle ou agréger le problème de classification jusqu'au niveau du jour.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.