Détection de point de commutation avec programmation probabiliste (pymc)

9

Je lis actuellement le livre " Programmation probabiliste et méthodes bayésiennes pour les pirates ". J'ai lu quelques chapitres et je pensais au premier chapitre où le premier exemple avec pymc consiste à détecter un point de sorcière dans les messages texte. Dans cet exemple, la variable aléatoire pour indiquer le moment où le point de commutation se produit est indiquée par τ . Après l'étape MCMC, la distribution postérieure de τ est donnée:entrez la description de l'image ici

Premièrement, ce que l'on peut apprendre de ce graphique, c'est qu'il y a une probabilité de près de 50% que le point de commutation se produise au jour 45. Mais que se passe-t-il s'il n'y a pas de point de commutation? Au lieu de supposer qu'il y a un point de commutation puis d'essayer de le trouver, je veux détecter s'il y a effectivement un point de commutation.

L'auteur répond à la question "un point de commutation est-il arrivé" par "S'il n'y avait pas eu de changement, ou si le changement avait été progressif dans le temps, la distribution postérieure de τ aurait été plus étalée". Mais comment pouvez-vous répondre à cette question avec une probabilité, par exemple, il y a 90% de chances qu'un point de commutation se produise, et il y a 50% de chances qu'il se produise au jour 45.

Le modèle doit-il être changé? Ou peut-on y répondre avec le modèle actuel?

Olivier_s_j
la source
Mentionnant l'auteur du livre @ Cam.Davidson.Pilon, qui pourrait avoir une meilleure réponse que la mienne ci-dessous.
Sean Easter

Réponses:

6

SeanEaster a de bons conseils. Le facteur Bayes peut être difficile à calculer, mais il existe de bons articles de blog spécifiquement pour le facteur Bayes dans PyMC2.

Une question étroitement liée est la qualité de l'ajustement d'un modèle. Une méthode juste pour cela est simplement l'inspection - les postérieurs peuvent nous fournir des preuves de qualité d'ajustement. Comme cité:

"S'il n'y avait pas eu de changement, ou si le changement avait été progressif dans le temps, la distribution postérieure de aurait été plus étalée"τ

C'est vrai. Le postérieur atteint un pic assez proche du temps 45. Comme vous le dites> 50% de la masse est à 45, alors qu'en l'absence de point de commutation la masse devrait (théoriquement) être plus proche de 1/80 = 1,125% au temps 45.

Ce que vous visez à faire, c'est de reconstruire fidèlement l'ensemble de données observées, compte tenu de votre modèle. Dans le chapitre 2 , ce sont des simulations de génération de fausses données. Si vos données observées semblent très différentes de vos données artificielles, il est probable que votre modèle ne soit pas adapté.

Je m'excuse pour la réponse non rigoureuse, mais c'est vraiment une difficulté majeure que je n'ai pas surmontée efficacement.

Cam.Davidson.Pilon
la source
λλλ
1
λ1p+λ2(1p)p=1/(1+exp(βt))β
Sur la question de l'ajustement du modèle, j'ajouterais que les valeurs prédictives postérieures de p sont une façon d'évaluer l'ajustement. Voir cet article .
Sean Easter
2

Il s'agit davantage d'une question de comparaison de modèles: l'intérêt est de savoir si un modèle sans point de commutation explique mieux les données qu'un modèle avec point de commutation. Une approche pour répondre à cette question consiste à calculer le facteur Bayes des modèles avec et sans point de commutation. En bref, le facteur Bayes est le rapport des probabilités des données sous les deux modèles:

K=Pr(D|M1)Pr(D|M2)=Pr(θ1|M1)Pr(D|θ1,M1)dθ1Pr(θ2|M2)Pr(D|θ2,M2)dθ2

Si est le modèle utilisant un point de commutation et est le modèle sans, alors une valeur élevée pour peut être interprétée comme favorisant fortement le modèle de point de commutation. (L'article wikipedia lié ci-dessus donne des indications sur les valeurs de K qui sont dignes de mention.)M1M2K

Notez également que dans un contexte MCMC, les intégrales ci-dessus seraient remplacées par des sommes de valeurs de paramètres provenant des chaînes MCMC. Un traitement plus approfondi des facteurs Bayes, avec des exemples, est disponible ici .

À la question du calcul de la probabilité d'un point de commutation, cela revient à résoudre pour . Si vous supposez des valeurs égales a priori sur les deux modèles, les cotes postérieures des modèles sont équivalentes au facteur Bayes. (Voir la diapositive 5 ici .) Ensuite, il s'agit simplement de résoudre pour utilisant le facteur de Bayes et l'exigence que pour n Événements modèles (exclusifs) à l'étude.P ( M 1 | D ) n i = 1 P ( M i | D ) = 1P(M1|D)P(M1|D)i=1nP(Mi|D)=1

Sean Easter
la source