Raportowanie wyników bayesowskich

Bayesowska analiza danych w Pythonie

Michal Oleszak

Machine Learning Engineer

Uczciwe podejście

  • Raportuj prior i posterior każdego parametru
posterior_draws
array([8.02800413, 8.97359548, 7.57437476, ..., 5.85264609, 7.92875104,
       7.41463758])
  • Wykreślaj rozkłady prioru i posterioru
sns.kdeplot(prior_draws, shade=True, label="prior")
sns.kdeplot(posterior_draws, shade=True, label="posterior")
Bayesowska analiza danych w Pythonie

Uczciwe podejście

Dwa wykresy gęstości nałożone na siebie. Oba mają kształt dzwonu. Prior wycentrowany przy 0, niski i szeroki; posterior wycentrowany około 7, znacznie wyższy i węższy.

Bayesowska analiza danych w Pythonie

Uczciwe podejście

Dwa wykresy gęstości nałożone na siebie. Oba mają kształt dzwonu. Prior wycentrowany przy 0, niski i szeroki; posterior wycentrowany około 7, znacznie wyższy i węższy.

Bayesowska analiza danych w Pythonie

Uczciwe podejście

Dwa wykresy gęstości nałożone na siebie. Oba mają kształt dzwonu. Prior wycentrowany przy 0, niski i szeroki; posterior wycentrowany około 7, znacznie wyższy i węższy.

Bayesowska analiza danych w Pythonie

Uczciwe podejście

Dwa wykresy gęstości nałożone na siebie. Oba mają kształt dzwonu. Prior wycentrowany przy 0, niski i szeroki; posterior wycentrowany około 7, znacznie wyższy i węższy.

Bayesowska analiza danych w Pythonie

Bayesowskie estymaty punktowe

  • Żadna pojedyncza liczba nie oddaje w pełni informacji zawartej w rozkładzie

  • Czasem jednak potrzebna jest punktowa estymata parametru

Wykres gęstości w kształcie dzwonu.

Bayesowska analiza danych w Pythonie

Bayesowskie estymaty punktowe

  • Żadna pojedyncza liczba nie oddaje w pełni informacji zawartej w rozkładzie

  • Czasem jednak potrzebna jest punktowa estymata parametru

posterior_mean = np.mean(posterior_draws)


Wykres gęstości w kształcie dzwonu z pionową linią oznaczającą średnią.

Bayesowska analiza danych w Pythonie

Bayesowskie estymaty punktowe

  • Żadna pojedyncza liczba nie oddaje w pełni informacji zawartej w rozkładzie

  • Czasem jednak potrzebna jest punktowa estymata parametru

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

Wykres gęstości w kształcie dzwonu z pionową linią oznaczającą medianę.

Bayesowska analiza danych w Pythonie

Bayesowskie estymaty punktowe

  • Żadna pojedyncza liczba nie oddaje w pełni informacji zawartej w rozkładzie

  • Czasem jednak potrzebna jest punktowa estymata parametru

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

Wykres gęstości w kształcie dzwonu z pionową linią oznaczającą 75. percentyl.

Bayesowska analiza danych w Pythonie

Przedziały wiarygodności

  • Przedział wiarygodności: prawdopodobieństwo, że parametr w nim leży, wynosi x%
  • Im szerszy przedział wiarygodności, tym większa niepewność estymaты parametru
  • Parametr jest losowy, więc może znaleźć się w przedziale z pewnym prawdopodobieństwem
  • W podejściu częstościowym przedział (ufności) jest losowy, a parametr jest stały

Wykres gęstości w kształcie dzwonu z dwiema przerywanymi pionowymi liniami wyznaczającymi obszar między nimi.

Bayesowska analiza danych w Pythonie

Najwyższa gęstość posterioru (HPD)

GIF przedstawiający wykres gęstości w kształcie dzwonu z poziomą linią opadającą w dół, zwiększającą obszar masy prawdopodobieństwa między punktami przecięcia linii z wykresem.

import arviz as az

hpd = az.hdi(posterior_draws, 
             hdi_prob=0.9)
print(hpd)
[-4.86840193  4.96075498]
Bayesowska analiza danych w Pythonie

Czas na raportowanie wyników bayesowskich!

Bayesowska analiza danych w Pythonie

Preparing Video For Download...