Если я хочу с вероятностью 95%, что менее 1% объектов неисправны, сколько образцов мне нужно?

9

Мне нужно убедиться, что моя карта сайта XML содержит менее мусора (неработающие ссылки). Список URL исчисляется сотнями тысяч, и даже если бы можно было проверить их все 1 на 1, я бы предпочел этого не делать по многим причинам:1%

1 - Saved bandwidth
2 - Faster traffic for real clients
3 - Less noise in visitor statistics (because my test would count as a visit)
5 - I could go on...

Поэтому я думаю, что было бы достаточно выбрать случайное подмножество, проблема в том, что я не знаю вероятностей.

Есть ли простая функция, которую я могу использовать?

Если это поможет, мы можем предположить, что у нас есть априорная информация о вероятности разрыва связи при каждом запуске. Допустим, что при каждом прогоне есть для любой данной ссылки, которая будет сломана.0.75%

gurghet
источник
Сколько URL у вас есть? (Вывод о конечной совокупности несколько отличается от обычного случая вывода о бесконечной совокупности.)
Kodiologist
?? конечное число очевидно
гургет
Это само собой разумеется, но какое конечное число?
Кодиолог
из сотен тысяч каждый день немного отличается
гургет
Что происходит с картой вашего сайта, что меняет ее? У вас есть совершенно другая карта сайта каждый день, или некоторые URL добавляются и удаляются? Если последнее, можете ли вы отслеживать, какие были добавлены или удалены, так что вам нужно только проверить новые?
Кодиолог

Ответы:

4

Так что это зависит от распределения вашего предыдущего мнения о частоте поломок, но: около 3600.

import scipy as sp

p = 0.0075
threshold = .01
confidence = .95

f = lambda n: sp.stats.beta(a=n*p, b=n*(1-p)).cdf(threshold) - confidence
print(sp.optimize.fsolve(f, 1000)[0])

>> 3627.45119614

Идея здесь состоит в том, чтобы смоделировать разрывы ссылок как испытание Бернулли, и смоделировать ваши убеждения о частоте разрывов как бета-распределение. Бета-версия сопряжена с дистрибутивом Бернулли , и способ обновления бета-версии при запуске пробной версии довольно прост:

  • если это сбой, вы добавляете один к первому параметру,α
  • если это успешно, вы добавляете один ко второму параметру,β

Так что, если мы начнем с распределения и увидим сбои в 0,75% времени, сколько попыток потребуется для того, чтобы 95% массы распределения стали ниже 0,01? Около 3600Beta(0,0)

Энди Джонс
источник
Один из тех случаев, когда байесовский анализ имеет больше смысла, поскольку предыдущий - это не просто дикая догадка или худшее намерение манипулировать. Но, возможно, вы могли бы выполнить развертку по параметру скажем, от 0,5 до 0,9% и построить соответствующий требуемыйpn
David Ernst
1

Для выборок с вероятностью неудачи дисперсия числа неудач равна . Таким образом, используя центральную предельную теорему, где - стандартная нормаль, Теперь мы хотим, чтобы выше было равно 95 %, что соответствует . Решая для , я получаю .np=0.0075np(1p)Z

п(неудачи<+0,01N)п(Z<N(+0,01-п)Nп(1-п))п(Z<N0,02898)
Zзнак равно1,645n=3222N0,02898знак равно1,645Nзнак равно3222
jackkamm
источник