pm.Normal () в Python PyMC3 - PullRequest
       7

pm.Normal () в Python PyMC3

0 голосов
/ 08 июня 2018

Я работал над простой байесовской линейной регрессией, используя PyMC3 в python.При определении функции правдоподобия я столкнулся с этим синтаксисом.

likelihood = pm.Normal('Y', mu=intercept + x_coeff * df['x'],sd=sigma, observed=df['y'])

В параметрах для pm.Normal (), что делает "visible ="?Пожалуйста, объясните с примерами, если это возможно.

1 Ответ

0 голосов
/ 20 ноября 2018

Предположим, у вас есть переменная x для возраста и y для богатства, и вы хотите создать модель, которая позволит вам оценивать богатство кого-либо на основе его возраста.У вас есть ряд данных, перечисляющих возраст и богатство людей, и вы хотите использовать эти данные для изучения модели, которая хранится в словаре df отображение x (возраст) и y (богатство) для массивов, хранящих этиdata.

Вы предполагаете, что сила является линейной функцией возраста, но с нормальной распределенной ошибкой вокруг этой линейной функции.Таким образом, существует линейная функция intercept + x_coeff * x, которая предоставляет среднее значение нормального распределения для значения y.

Однако простого объявления модели недостаточно.Вы также должны предоставить данные.Здесь df['x'] используется для вычисления среднего значения, а df['y'] используется в качестве целевого значения y для использования в соответствии с вашей моделью.Другими словами, observed - это способ предоставления наблюдаемых данных для создаваемой переменной (likelihood, что не является хорошим именем; оно должно быть y).

...