Si je veux avoir 95% de chances que moins de 1% d'objets soient défectueux, de combien d'échantillons ai-je besoin?


9

Je dois vous assurer que mon sitemap XML a moins de des déchets (liens brisés). La liste d'URL se compte par centaines de milliers, et même s'il était possible de les tester tous 1 par 1, je préfère ne pas, pour de nombreuses raisons: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...

Je pense donc que prendre un sous-ensemble aléatoire serait suffisant, le problème est que je ne connais pas les probabilités.

Existe-t-il une fonction simple que je peux utiliser?

Si cela peut aider, on peut supposer avoir une information a priori sur la probabilité de rupture d'un lien sur plusieurs runs. Supposons qu'entre les exécutions, un lien de soit rompu.0,75%


Combien d'URL avez-vous? (L'inférence sur une population finie est quelque peu différente du cas habituel d'inférence sur une population infinie.)
Kodiologist

?? un nombre fini évidemment
gurghet

Cela va sans dire, mais quel nombre fini?
Kodiologist

par centaines de milliers, chaque jour est un peu différent
gurghet

Qu'arrive-t-il à votre plan de site qui le change? Avez-vous un plan du site complètement différent chaque jour, ou des URL sont-elles ajoutées et supprimées? Dans ce dernier cas, pouvez-vous garder une trace de ceux qui ont été ajoutés ou supprimés, afin que vous n'ayez qu'à en vérifier de nouveaux?
Kodiologist

Réponses:


4

Cela dépend donc de la distribution de votre croyance antérieure sur le taux de casse, mais: environ 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'idée ici est de modéliser les ruptures de liens comme un essai de Bernoulli, et de modéliser vos croyances sur le taux de ruptures comme la distribution bêta. La distribution bêta est conjuguée à la distribution Bernoulli , et la façon de mettre à jour une distribution bêta lorsque vous exécutez un essai est assez simple:

  • si c'est un échec, vous ajoutez un au premier paramètre, α
  • si c'est un succès, vous ajoutez un au deuxième paramètre, β

Bêta(0,0)


pn

1

np=0,0075np(1-p)Z

P(les échecs<.01n)P(Z<n(.01-p)np(1-p))P(Z<n.02898)
Z=1,645n.02898=1,645n=3222
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.