Présenter des résultats bayésiens

Analyse de données bayésienne en Python

Michal Oleszak

Machine Learning Engineer

La méthode honnête

  • Indiquez la loi a priori et la loi a posteriori de chaque paramètre
posterior_draws
array([8.02800413, 8.97359548, 7.57437476, ..., 5.85264609, 7.92875104,
       7.41463758])
  • Tracez les distributions a priori et a posteriori
sns.kdeplot(prior_draws, shade=True, label="prior")
sns.kdeplot(posterior_draws, shade=True, label="posterior")
Analyse de données bayésienne en Python

La méthode honnête

Deux courbes de densité superposées, en cloche. L'a priori est centré sur 0, court et large ; l'a posteriori est centré autour de 7, bien plus haut et étroit.

Analyse de données bayésienne en Python

La méthode honnête

Deux courbes de densité superposées, en cloche. L'a priori est centré sur 0, court et large ; l'a posteriori est centré autour de 7, bien plus haut et étroit.

Analyse de données bayésienne en Python

La méthode honnête

Deux courbes de densité superposées, en cloche. L'a priori est centré sur 0, court et large ; l'a posteriori est centré autour de 7, bien plus haut et étroit.

Analyse de données bayésienne en Python

La méthode honnête

Deux courbes de densité superposées, en cloche. L'a priori est centré sur 0, court et large ; l'a posteriori est centré autour de 7, bien plus haut et étroit.

Analyse de données bayésienne en Python

Estimations ponctuelles bayésiennes

  • Aucun nombre unique ne résume toute l'information d'une distribution

  • Mais il faut parfois une estimation ponctuelle d'un paramètre

Une courbe de densité en cloche.

Analyse de données bayésienne en Python

Estimations ponctuelles bayésiennes

  • Aucun nombre unique ne résume toute l'information d'une distribution

  • Mais il faut parfois une estimation ponctuelle d'un paramètre

posterior_mean = np.mean(posterior_draws)


Une courbe de densité en cloche avec une ligne verticale marquant la moyenne.

Analyse de données bayésienne en Python

Estimations ponctuelles bayésiennes

  • Aucun nombre unique ne résume toute l'information d'une distribution

  • Mais il faut parfois une estimation ponctuelle d'un paramètre

posterior_mean = np.mean(posterior_draws)
posterior_median = np.median(posterior_draws)

Une courbe de densité en cloche avec une ligne verticale marquant la médiane.

Analyse de données bayésienne en Python

Estimations ponctuelles bayésiennes

  • Aucun nombre unique ne résume toute l'information d'une distribution

  • Mais il faut parfois une estimation ponctuelle d'un paramètre

posterior_mean = np.mean(posterior_draws)
posterior_median = np.median(posterior_draws)
posterior_p75 = np.percentile(posterior_draws, 75)

Une courbe de densité en cloche avec une ligne verticale marquant le 75e percentile.

Analyse de données bayésienne en Python

Intervalles de crédibilité

  • Un intervalle tel que la probabilité que le paramètre y appartienne soit de x %
  • Plus l'intervalle de crédibilité est large, plus l'estimation du paramètre est incertaine
  • Le paramètre est aléatoire ; il peut appartenir à un intervalle avec une certaine probabilité
  • En fréquentiste, l'intervalle (de confiance) est aléatoire et le paramètre est fixe

Une courbe de densité en cloche avec deux lignes verticales en pointillé délimitant une région entre elles.

Analyse de données bayésienne en Python

Densité A Posteriori Maximale (HPD)

Un GIF d'une courbe de densité en cloche : une ligne horizontale descend dans la zone du graphique, augmentant l'aire de masse de probabilité située entre les points où la ligne coupe la courbe.

import arviz as az

hpd = az.hdi(posterior_draws, 
             hdi_prob=0.9)
print(hpd)
[-4.86840193  4.96075498]
Analyse de données bayésienne en Python

Passons à la pratique pour présenter des résultats bayésiens !

Analyse de données bayésienne en Python

Preparing Video For Download...