Звітування про баєсівські результати

Баєсівський аналіз даних у Python

Michal Oleszak

Machine Learning Engineer

Чесний підхід

  • Повідомляйте апріорний розподіл і апростеріорний для кожного параметра
posterior_draws
array([8.02800413, 8.97359548, 7.57437476, ..., 5.85264609, 7.92875104,
       7.41463758])
  • Побудуйте графіки апріорного та апростеріорного розподілів
sns.kdeplot(prior_draws, shade=True, label="prior")
sns.kdeplot(posterior_draws, shade=True, label="posterior")
Баєсівський аналіз даних у Python

Чесний підхід

Два накладені графіки щільності, обидва дзвоноподібні. Апріорний з центром у 0, низький і широкий; апростеріорний з центром близько 7, значно вищий і вужчий.

Баєсівський аналіз даних у Python

Чесний підхід

Два накладені графіки щільності, обидва дзвоноподібні. Апріорний з центром у 0, низький і широкий; апростеріорний з центром близько 7, значно вищий і вужчий.

Баєсівський аналіз даних у Python

Чесний підхід

Два накладені графіки щільності, обидва дзвоноподібні. Апріорний з центром у 0, низький і широкий; апростеріорний з центром близько 7, значно вищий і вужчий.

Баєсівський аналіз даних у Python

Чесний підхід

Два накладені графіки щільності, обидва дзвоноподібні. Апріорний з центром у 0, низький і широкий; апростеріорний з центром близько 7, значно вищий і вужчий.

Баєсівський аналіз даних у Python

Баєсівські точкові оцінки

  • Жодне число не передає всю інформацію, що міститься в розподілі

  • Проте інколи потрібна точкова оцінка параметра

Дзвоноподібний графік щільності.

Баєсівський аналіз даних у Python

Баєсівські точкові оцінки

  • Жодне число не передає всю інформацію, що міститься в розподілі

  • Проте інколи потрібна точкова оцінка параметра

posterior_mean = np.mean(posterior_draws)


Дзвоноподібний графік щільності з вертикальною лінією, що позначає середнє.

Баєсівський аналіз даних у Python

Баєсівські точкові оцінки

  • Жодне число не передає всю інформацію, що міститься в розподілі

  • Проте інколи потрібна точкова оцінка параметра

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

Дзвоноподібний графік щільності з вертикальною лінією, що позначає медіану.

Баєсівський аналіз даних у Python

Баєсівські точкові оцінки

  • Жодне число не передає всю інформацію, що міститься в розподілі

  • Проте інколи потрібна точкова оцінка параметра

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

Дзвоноподібний графік щільності з вертикальною лінією, що позначає 75-й перцентиль.

Баєсівський аналіз даних у Python

Credible-інтервали

  • Інтервал, у який параметр потрапляє з імовірністю x%
  • Чим ширший довірчий за Баєсом (credible) інтервал, тим більше невизначеності в оцінці параметра
  • Параметр випадковий, тож він може потрапити в інтервал з певною імовірністю
  • У частотному підході (довірчий інтервал) інтервал випадковий, а параметр фіксований

Дзвоноподібний графік щільності з двома пунктирними вертикальними лініями, що позначають ділянку між ними.

Баєсівський аналіз даних у Python

Найвища апростеріорна щільність (HPD)

GIF із дзвоноподібним графіком щільності: горизонтальна лінія опускається вниз, і площа ймовірнісної маси між точками перетину зростає.

import arviz as az

hpd = az.hdi(posterior_draws, 
             hdi_prob=0.9)
print(hpd)
[-4.86840193  4.96075498]
Баєсівський аналіз даних у Python

Давайте потренуємось звітувати про баєсівські результати!

Баєсівський аналіз даних у Python

Preparing Video For Download...