Si quiero tener un 95% de posibilidades de que menos del 1% de los objetos estén defectuosos, ¿cuántas muestras necesito?

9

Necesito asegurarme de que mi mapa del sitio XML tenga menos del basura (enlaces rotos). La lista de URL está en los cientos de miles, e incluso si pudiera ser factible probarlos todos 1 por 1, preferiría no hacerlo, por muchas razones: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...

Entonces, creo que tomar un subconjunto aleatorio sería suficiente, el problema es que no sé las probabilidades.

¿Hay una función simple que pueda usar?

Si ayuda, podemos suponer que tenemos una información a priori sobre la probabilidad de que un enlace se rompa entre ejecuciones. Digamos que en las ejecuciones hay un para que se rompa cualquier enlace dado.0,75%

gurghet
fuente
¿Cuántas URL tienes? (La inferencia sobre una población finita es algo diferente del caso habitual de inferencia sobre una población infinita.)
Kodiólogo
?? un número finito obviamente
gurghet
Eso es evidente, pero ¿qué número finito?
Kodiólogo
en los cientos de miles, cada día es un poco diferente
gurghet
¿Qué le sucede a su mapa del sitio que lo está cambiando? ¿Tiene un mapa del sitio completamente diferente cada día, o se agregan y eliminan algunas URL? Si es esto último, ¿puede realizar un seguimiento de los que se agregaron o eliminaron, de modo que solo necesite verificar los nuevos?
Kodiólogo

Respuestas:

4

Por lo tanto, depende de la distribución de su creencia anterior sobre la tasa de rotura, pero: alrededor de 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

La idea aquí es modelar roturas de enlaces como un ensayo de Bernoulli, y modelar sus creencias sobre la tasa de rotura como la distribución beta. La distribución beta se conjuga con la distribución de Bernoulli , y la forma de actualizar una distribución beta cuando ejecuta una prueba es bastante simple:

  • si es un error, agrega uno al primer parámetro, α
  • si es un éxito, agrega uno al segundo parámetro, β

Beta(0 0,0 0)

Andy Jones
fuente
pagnorte
1

nortepag=0.0075nortepag(1-pag)Z

PAG(fallas<.01norte)PAG(Z<norte(.01-pag)nortepag(1-pag))PAG(Z<norte.02898)
Z=1.645norte.02898=1.645norte=3222
jackkamm
fuente