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%


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.


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.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.