Я беру урок машинного обучения, и нам дают наше первое статистическое упражнение - программирование.
Итак, упражнение выглядит следующим образом:
Вспомните историю из лекции «Два продавца в Amazon имеют одинаковую цену.Один имеет 90 положительных и 10 отрицательных отзывов.Другой 2 положительный и 0 отрицательный.У кого покупать? »Запишите последующие вероятности надежности (как в лекции).Вычислить p (x> y | D1, D2), используя численное интегрирование.Вы можете генерировать бета-версии распределенных сэмплов с помощью функции scipy.stats.beta.rvs (a, b, size) .
. Из лекции известно следующее:
применил две бета-биномиальные модели: p (x | D1) = бета (x | 91, 11) и p (y | D2) = бета (y | 3, 1)
вычислитьвероятность того, что продавец 1 более надежен, чем продавец 2:
p(x > y | D1, D2 ) = ∫∫ [x > y] Beta (x| 91, 11) Beta (y| 3, 1) dx dy
Так что мои попытки в Python таковы:
In [1]: import numpy as np
from scipy import integrate, stats
In [2]: f = lambda x, y: stats.beta.rvs(91, 11, x) * stats.beta.rvs(3, 1, y)
In [3]: stats.probplot(result, x > y)
И я получаю сообщение об ошибке:
... The maximum number of subdivisions (50) has been achieved....
но в конечном итоге есть ответ на расчет, который составляет ок.1.7.(Нам говорят, что ответ составляет приблизительно 0,7)
Мой вопрос: Как рассчитать часть [x> y], что означает: вероятность того, что продавец 1 (x)надежнее продавца 2 (у)?