Se voglio avere il 95% di probabilità che meno dell'1% di oggetti sia difettoso, di quanti campioni ho bisogno?


9

Devo assicurarmi che la mia sitemap XML contenga meno rifiuti (collegamenti interrotti). L'elenco di URL è tra le centinaia di migliaia e, anche se potrebbe essere fattibile testarli tutti 1 per 1, preferirei non farlo, per molte ragioni: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...

Quindi penso che prendere un sottoinsieme casuale sarebbe sufficiente, il problema è che non conosco le probabilità.

C'è una semplice funzione che posso usare?

Se aiuta, possiamo supporre di avere a priori informazioni sulla probabilità che un collegamento si interrompa tra le corse. Diciamo che su tutte le esecuzioni c'è uno per ogni dato link da rompere.0.75%


Quanti URL hai? (L'inferenza su una popolazione finita è in qualche modo diversa dal solito caso di inferenza su una popolazione infinita.)
Kodiologo,

?? un numero finito ovviamente
gurghet,

Ciò è ovvio, ma quale numero finito?
Kodiologo,

in centinaia di migliaia, ogni giorno è un po 'diverso
gurghet,

Cosa sta succedendo alla mappa del tuo sito che lo sta cambiando? Hai una mappa del sito completamente diversa ogni giorno o vengono aggiunti e rimossi alcuni URL? Se quest'ultimo, è possibile tenere traccia di quali sono stati aggiunti o rimossi, in modo che è necessario solo controllare quelli nuovi?
Kodiologo,

Risposte:


4

Quindi dipende dalla distribuzione della tua precedente convinzione sul tasso di rottura, ma: circa 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

L'idea qui è quella di modellare le interruzioni dei collegamenti come prova di Bernoulli e modellare le tue convinzioni sul tasso di rottura come distribuzione beta. La distribuzione beta è coniugata con la distribuzione di Bernoulli e il modo di aggiornare una distribuzione beta quando si esegue una versione di prova è piuttosto semplice:

  • se si tratta di un errore, ne aggiungi uno al primo parametro,α
  • se ha esito positivo, aggiungi uno al secondo parametro,β

Quindi, se iniziamo con una distribuzione e vediamo guasti circa lo 0,75% delle volte, quante prove ci vorranno prima che il 95% della massa della distribuzione sia inferiore a 0,01? 3600 circa.Beta(0,0)


Uno di quei casi in cui l'analisi bayesiana ha più senso poiché il precedente non è solo un'ipotesi selvaggia o, peggio ancora, un'intenzione da manipolare. Ma forse potresti eseguire uno sweep sul parametro dallo 0,5 allo 0,9% e tracciare il corrispondente richiestonpn
David Ernst,

1

Per campioni con possibilità di fallimento, la varianza per il numero di guasti è . Quindi, usando il teorema del limite centrale, con un normale standard, Ora vogliamo che quanto sopra sia uguale a 95 %, che corrisponde a . Risolvendo per , ottengo .p = 0,0075 n p ( 1 - p ) Z P ( guasti < .01 n ) P ( Z < n ( .01 - p )np=0.0075np(1p)ZZ=1.645

P(fallimenti<.01n)P(Z<n(.01-p)np(1-p))P(Z<n0,02,898 mila)
Z=1.645n0,02,898 mila=1.645n=3222
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.