Как получить конкретную вероятность определенного значения в распределении?

Я новичок в PyMC3, я начал три недели назад, чтобы ознакомиться с ним, и в настоящее время я занимаюсь обучением, поэтому у меня есть одно сомнение в моей программе. Извините, если это глупый вопрос.

У меня есть эта модель:

with pm.Model() as clientes:

  name_clients = pm.Bound(pm.Geometric, upper=100)('nombres_clientes', p=0.02685)
  age_clients = pm.TruncatedNormal('edad.clientes', mu=34, sigma=24, lower=0.0, 
                                   upper=101.0)

Как видите, оба дистрибутива ограничены диапазонами (name_clients от 1 до 100 и age_clients от 0 до 101).

Мой вопрос о том, как я могу узнать вероятность (от 0 до 1), например, что name_clients равно 67 ? И какова условная вероятность, если у меня age_clients = 21 и name_clients = 34?

Я просмотрел много тем и обзоров, но у меня нет четкого представления об этом. Если сможете мне помочь, буду очень благодарен :)


person EduardoCabria    schedule 26.02.2020    source источник
comment
(Усеченная) нормаль представляет собой непрерывное распределение, поэтому математически P{age_clients = x} = 0 для всех x. С непрерывными случайными величинами вы должны спрашивать о вероятностях диапазонов, а не точек.   -  person pjs    schedule 27.02.2020
comment
Ты прав ! Спасибо   -  person EduardoCabria    schedule 27.02.2020


Ответы (1)


Вы всегда можете оценить вероятности как ожидание:

Pr[X ∈ A] = E[????_{A}(X)],

куда

????_{A}(x) = (x ∈ A) ? 1 : 0

является индикаторной функцией набора, вероятность которого вы хотите.

Таким образом, вам просто нужно сделать выборку из совместного распределения, отобразить эту функцию-индикатор по цепочке и получить среднее значение. Если вероятность, которую вы ищете, является условной, вставьте условные значения в качестве наблюдаемых значений в модель (насколько я помню, в PYMC3 вы делаете это с помощью аргумента ключевого слова observed).

Другой способ - работать напрямую с log-pdf модели, см. здесь, но для этого требуется внутренняя работа с PPL, с которой вы имеете дело.

person phipsgabler    schedule 26.02.2020
comment
Спасибо большое, вы мне очень помогаете! Может быть, вы знаете какую-нибудь книгу или статью, которая может помочь мне в этом вопросе? Потому что мне нужно больше информации. - person EduardoCabria; 26.02.2020
comment
Я могу только предложить ссылки для базовой теории MCMC. Я лично узнал из этой лекции, но она довольно математическая. Я сам не использую PYMC3. - person phipsgabler; 26.02.2020