Jika saya ingin memiliki 95% kemungkinan bahwa kurang dari 1% objek rusak, berapa banyak sampel yang saya butuhkan?

9

Saya perlu memastikan bahwa sitemap XML saya memiliki kurang dari sampah (tautan rusak). Daftar URL ada dalam ratusan ribu, dan bahkan jika mungkin untuk menguji semuanya 1 per 1 saya lebih suka tidak, karena berbagai alasan: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...

Jadi saya pikir mengambil subset acak akan cukup, masalahnya adalah saya tidak tahu probabilitas.

Apakah ada fungsi sederhana yang bisa saya gunakan?

Jika ini membantu, kita dapat mengira memiliki informasi a priori tentang kemungkinan tautan untuk dipecah di seluruh proses. Katakanlah di lintas berjalan ada untuk setiap tautan yang akan diputus.0.75%

gurghet
sumber
Berapa banyak URL yang Anda miliki? (Kesimpulan tentang populasi terbatas agak berbeda dari kasus kesimpulan biasa tentang populasi tak terbatas.)
Kodiologist
?? angka yang terbatas jelas
gurghet
Tidak perlu dikatakan lagi, tetapi angka berhingga mana?
Kodiologist
dalam ratusan ribu, setiap hari sedikit berbeda
gurghet
Apa yang terjadi pada peta situs Anda yang mengubahnya? Apakah Anda memiliki peta situs yang sangat berbeda setiap hari, atau apakah beberapa URL ditambahkan dan dihapus? Jika yang terakhir, dapatkah Anda melacak yang telah ditambahkan atau dihapus, sehingga Anda hanya perlu memeriksa yang baru?
Kodiologist

Jawaban:

4

Jadi itu tergantung pada distribusi kepercayaan Anda sebelumnya tentang tingkat kerusakan, tetapi: sekitar 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

Idenya di sini adalah untuk memodelkan kerusakan tautan sebagai uji coba Bernoulli, dan memodelkan keyakinan Anda tentang tingkat kerusakan sebagai distribusi beta. Distribusi beta dikonjugasikan ke distribusi Bernoulli , dan cara memperbarui distribusi beta saat Anda menjalankan percobaan cukup sederhana:

  • α
  • β

Beta(0,0)

Andy Jones
sumber
pn
1

np=0.0075np(1p)Z

P(failures<.01n)P(Z<n(.01p)np(1p))P(Z<n.02898)
Z=1.645n.02898=1.645n=3222
jackkamm
sumber