Come riportare i risultati bayesiani

Analisi dei dati bayesiana in Python

Michal Oleszak

Machine Learning Engineer

Il modo onesto

  • Riporta prior e posterior di ogni parametro
posterior_draws
array([8.02800413, 8.97359548, 7.57437476, ..., 5.85264609, 7.92875104,
       7.41463758])
  • Traccia le distribuzioni prior e posterior
sns.kdeplot(prior_draws, shade=True, label="prior")
sns.kdeplot(posterior_draws, shade=True, label="posterior")
Analisi dei dati bayesiana in Python

Il modo onesto

Due grafici di densità sovrapposti, entrambi a campana. Il prior è centrato su 0, basso e largo; il posterior è centrato intorno a 7 ed è molto più alto e stretto.

Analisi dei dati bayesiana in Python

Il modo onesto

Due grafici di densità sovrapposti, entrambi a campana. Il prior è centrato su 0, basso e largo; il posterior è centrato intorno a 7 ed è molto più alto e stretto.

Analisi dei dati bayesiana in Python

Il modo onesto

Due grafici di densità sovrapposti, entrambi a campana. Il prior è centrato su 0, basso e largo; il posterior è centrato intorno a 7 ed è molto più alto e stretto.

Analisi dei dati bayesiana in Python

Il modo onesto

Due grafici di densità sovrapposti, entrambi a campana. Il prior è centrato su 0, basso e largo; il posterior è centrato intorno a 7 ed è molto più alto e stretto.

Analisi dei dati bayesiana in Python

Stime puntuali bayesiane

  • Nessun singolo numero può riassumere tutta l'informazione di una distribuzione

  • A volte però serve una stima puntuale di un parametro

Un grafico di densità a campana.

Analisi dei dati bayesiana in Python

Stime puntuali bayesiane

  • Nessun singolo numero può riassumere tutta l'informazione di una distribuzione

  • A volte però serve una stima puntuale di un parametro

posterior_mean = np.mean(posterior_draws)


Un grafico di densità a campana con una linea verticale che indica la media.

Analisi dei dati bayesiana in Python

Stime puntuali bayesiane

  • Nessun singolo numero può riassumere tutta l'informazione di una distribuzione

  • A volte però serve una stima puntuale di un parametro

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

Un grafico di densità a campana con una linea verticale che indica la mediana.

Analisi dei dati bayesiana in Python

Stime puntuali bayesiane

  • Nessun singolo numero può riassumere tutta l'informazione di una distribuzione

  • A volte però serve una stima puntuale di un parametro

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

Un grafico di densità a campana con una linea verticale che indica il 75° percentile.

Analisi dei dati bayesiana in Python

Intervalli credibili

  • Un intervallo tale che la probabilità che il parametro cada al suo interno è x%
  • Più l'intervallo credibile è ampio, maggiore l'incertezza sulla stima
  • Il parametro è casuale, quindi può cadere in un intervallo con una certa probabilità
  • Nel mondo frequentista l'intervallo (di confidenza) è casuale, mentre il parametro è fisso

Un grafico di densità a campana con due linee verticali tratteggiate che delimitano la regione tra di loro.

Analisi dei dati bayesiana in Python

Highest Posterior Density (HPD)

Una GIF di un grafico di densità a campana che mostra una linea orizzontale che scende nell'area del grafico, aumentando la massa di probabilità compresa tra i punti in cui la linea interseca il grafico.

import arviz as az

hpd = az.hdi(posterior_draws, 
             hdi_prob=0.9)
print(hpd)
[-4.86840193  4.96075498]
Analisi dei dati bayesiana in Python

Esercitiamoci a riportare risultati bayesiani!

Analisi dei dati bayesiana in Python

Preparing Video For Download...