Jeśli chcę mieć 95% szansy, że mniej niż 1% obiektów jest wadliwych, ile próbek potrzebuję?

9

Muszę się upewnić, że moja mapa witryny XML ma mniej niż 1%śmieci (zepsute linki). Lista adresów URL znajduje się w setkach tysięcy i nawet jeśli byłoby możliwe przetestowanie ich wszystkich 1 na 1, wolałbym tego nie robić z wielu powodów:

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...

Myślę więc, że wybranie losowego podzbioru byłoby wystarczające, problem polega na tym, że nie znam prawdopodobieństw.

Czy mogę skorzystać z prostej funkcji?

Jeśli to pomoże, możemy przypuszczać, że mamy a priori informacje o prawdopodobieństwie zerwania łącza w różnych seriach. Powiedzmy, że w różnych seriach istnieje dla każdego linku, który ma zostać uszkodzony.0,75%

gurghet
źródło
Ile masz adresów URL? (Wnioskowanie na temat skończonej populacji różni się nieco od zwykłego przypadku wnioskowania na temat nieskończonej populacji.)
Kodiolog
?? skończona liczba oczywiście
gurghet
To oczywiste, ale która skończona liczba?
Kodiolog,
na sto tysięcy, każdy dzień jest nieco inny
gurghet
Co się dzieje z mapą witryny, która ją zmienia? Czy każdego dnia masz zupełnie inną mapę witryny, czy też niektóre adresy URL są dodawane i usuwane? Jeśli to drugie, czy możesz śledzić, które zostały dodane lub usunięte, aby wystarczyło tylko sprawdzić nowe?
Kodiolog,

Odpowiedzi:

4

To zależy od rozpowszechnienia twojego wcześniejszego przekonania na temat współczynnika zerwania, ale: około 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

Chodzi o to, aby modelować pęknięcia linków jako próbę Bernoulliego i modelować swoje przekonania na temat wskaźnika zerwania jako rozkładu beta. Dystrybucja beta jest sprzężona z dystrybucją Bernoulli , a sposób aktualizacji dystrybucji beta podczas uruchamiania wersji próbnej jest dość prosty:

  • jeśli to awaria, dodajesz jeden do pierwszego parametru, α
  • jeśli to się powiedzie, dodajesz jeden do drugiego parametru, β

Więc jeśli zaczniemy od Beta(0,0)dystrybucji i zobacz awarie przez około 75% czasu, ile to zajmie prób, zanim 95% masy dystrybucji spadnie poniżej 0,01? Około 3600.

Andy Jones
źródło
Jeden z tych przypadków, w których analiza bayesowska ma większy sens, ponieważ przeor nie jest tylko zgadywanką lub nawet gorszym zamiarem manipulacji. Ale być może mógłbyś wykonać przemiataniep parametr powiedz od 0,5 do 0,9% i wykreśl odpowiednie wymagane n
David Ernst,
1

Dla n próbki z p=0,0075 prawdopodobieństwo niepowodzenia, wariancja dla liczby awarii jest np(1-p). Więc używając centralnego twierdzenia o granicy, zZ standardowy normalny,

P.(awarie<.01n)P.(Z<n(.01-p)np(1-p))P.(Z<n.02898)
Teraz chcemy, aby powyższe było równe 95%, co odpowiada Z=1.645. Rozwiązywanie dlan.02898=1.645, Dostaję n=3222.
jackkamm
źródło