Ada layanan web di mana saya dapat meminta informasi tentang item acak. Untuk setiap permintaan, setiap item memiliki peluang yang sama untuk dikembalikan.
Saya dapat terus meminta barang dan mencatat jumlah duplikat dan unik. Bagaimana saya bisa menggunakan data ini untuk memperkirakan jumlah item?
Jawaban:
Ini pada dasarnya adalah varian dari masalah pengumpul kupon.
Jika ada item total dan Anda telah mengambil ukuran sampel s dengan penggantian maka kemungkinan telah diidentifikasi u item unik adalah P r ( U = u | n , s ) = S 2 ( s , u ) n !n s u
di manaS2(s,u)memberikannomor Stirling dari jenis kedua
Sekarang semua yang Anda butuhkan adalah distribusi sebelumnya untuk , berlaku teorema Bayes, dan mendapatkan distribusi posterior untuk N .Pr ( N= n ) N
sumber
Saya sudah memberikan saran berdasarkan angka Stirling dari jenis kedua dan metode Bayesian.
Bagi mereka yang menemukan angka Stirling terlalu besar atau metode Bayesian terlalu sulit, metode yang lebih kasar mungkin untuk digunakan
dan menghitung kembali menggunakan metode numerik.
sumber
You can use the capture-recapture method, also implemented as the Rcapture R package.
Here is an example, coded in R. Let's assume that the web service has N=1000 items. We will make n=300 requests. Generate a random sample where, numbering the elements from 1 to k, where k is how many different items we saw.
The result of the simulation is
thus among the 300 requests there were 4 items seen 3 times, 27 items seen twice, and 234 items seen only once.
Now estimate N from this sample:
The result:
Thus only the Mh Chao model converged, it estimatedN^ =1262.7.
EDIT: To check the reliability of the above method I ran the above code on 10000 generated samples. The Mh Chao model converged every time. Here is the summary:
sumber