Présenter des résultats bayésiens

Analyse bayésienne des données en Python

Michal Oleszak

Machine Learning Engineer

La façon honnête

  • Présentez l'a priori et l'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 bayésienne des données en Python

La façon honnête

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

Analyse bayésienne des données en Python

La façon honnête

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

Analyse bayésienne des données en Python

La façon honnête

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

Analyse bayésienne des données en Python

La façon honnête

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

Analyse bayésienne des données en Python

Estimations ponctuelles bayésiennes

  • Aucun nombre unique ne peut transmettre toute l'information d'une distribution

  • Parfois, il faut tout de même une estimation ponctuelle d'un paramètre

Une courbe de densité en cloche.

Analyse bayésienne des données en Python

Estimations ponctuelles bayésiennes

  • Aucun nombre unique ne peut transmettre toute l'information d'une distribution

  • Parfois, il faut tout de même une estimation ponctuelle d'un paramètre

posterior_mean = np.mean(posterior_draws)


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

Analyse bayésienne des données en Python

Estimations ponctuelles bayésiennes

  • Aucun nombre unique ne peut transmettre toute l'information d'une distribution

  • Parfois, il faut tout de même 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 à la médiane.

Analyse bayésienne des données en Python

Estimations ponctuelles bayésiennes

  • Aucun nombre unique ne peut transmettre toute l'information d'une distribution

  • Parfois, il faut tout de même 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 au 75e centile.

Analyse bayésienne des données en Python

Intervalles de crédibilité

  • Un intervalle tel que la probabilité que le paramètre s'y trouve est de x %
  • Plus l'intervalle de crédibilité est large, plus l'incertitude de l'estimation est grande
  • Le paramètre est aléatoire ; il peut donc tomber dans l'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 pointillées délimitant la région entre elles.

Analyse bayésienne des données en Python

Densité a posteriori la plus élevée (HPD)

Un GIF d'une courbe de densité en cloche ; une ligne horizontale descend dans le graphique, augmentant la masse de probabilité entre les points où elle coupe la courbe.

import arviz as az

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

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

Analyse bayésienne des données en Python

Preparing Video For Download...