как получить значения переменных, когда есть на элемент наблюдения - PullRequest
0 голосов
/ 30 сентября 2018

Я новичок в байесовской статистике и pymc3.В моей проблеме есть рабочие и рецензенты.работникам задают ряд вопросов. Ответы работников рассматриваются рецензентами.Таким образом, обзор является наблюдаемой переменной.На основании этих наблюдений мне нужно рассчитать качество ответа, способности работника и предвзятость рецензента.обзоры являются двоичными, правильными (логическое значение 1) и неправильными (логическое значение 0). Я создал следующую модель, используя pymc3, и использовал функцию find_map для вычисления требуемых переменных.

##function
def predict(ob):
    with pm3.Model() as last:
       quality_precision = pm3.Gamma('quality_precision', 2, 1)
       ability = pm3.Normal(name="ability", mu=0, sd=10)
       quality = pm3.Normal(name='quality', mu=ability, sd=1 / np.sqrt(quality_precision))
       reviewer_bias= pm3.Normal(name="reviewer_bias", mu=0, sd=5)
       iscorrect = pm3.Binomial('iscorrect',n=1, p=sigmoid(quality + reviewer_bias), observed=ob)
       start = pm3.find_MAP()
   return start



##function call
   print(predict([0,1,1,1,1]))

Модель enter image description here

Когда я даю наблюдения за конкретным ответом, он рассчитывает качество этого ответа, работоспособность.Это также дает значения для смещения рецензента.Но если наблюдения похожи на [0,1,1,1,1], то это от нескольких рецензентов.Как я могу рассчитать смещение каждого рецензента отдельно?.

Опять же, если у меня есть наблюдения по 2 ответам.как я могу продолжить?как получить качество для этих ответов отдельно?Я могу дать время наблюдения. Но способность будет рассчитываться только для наблюдений этого ответа.Но способность должна была быть рассчитана для всех отзывов, данных этим людям.Помоги мне!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...