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%


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)


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.