Memperkirakan n dalam masalah pengumpul kupon

14

Dalam variasi pada masalah pengumpul kupon , Anda tidak tahu jumlah kupon dan harus menentukan ini berdasarkan data. Saya akan menyebut ini sebagai masalah kue keberuntungan:

Mengingat jumlah yang tidak diketahui yang berbeda pesan kue keberuntungan n , estimasi n dengan sampling cookies satu per satu dan menghitung berapa kali masing-masing muncul keberuntungan. Tentukan juga jumlah sampel yang diperlukan untuk mendapatkan interval kepercayaan yang diinginkan pada perkiraan ini.

Pada dasarnya saya membutuhkan algoritma yang sampel data hanya cukup untuk mencapai interval kepercayaan tertentu, katakanlah n±5 dengan kepercayaan 95% . Untuk kesederhanaan, kita dapat mengasumsikan bahwa semua kekayaan muncul dengan probabilitas / frekuensi yang sama, tetapi ini tidak benar untuk masalah yang lebih umum, dan solusi untuk itu juga diterima.

Ini tampaknya mirip dengan masalah tank Jerman , tetapi dalam hal ini, kue keberuntungan tidak diberi label secara berurutan, dan karenanya tidak memiliki urutan.

goweon
sumber
1
Apakah kita tahu bahwa pesannya sama seringnya?
Glen_b -Reinstate Monica
pertanyaan yang diedit: Ya
goweon
2
Bisakah Anda menuliskan fungsi kemungkinan?
Zen
2
Orang yang melakukan studi satwa liar menangkap, menandai, dan melepaskan binatang. Mereka kemudian menyimpulkan ukuran populasi berdasarkan frekuensi penangkapan kembali hewan yang sudah ditandai. Sepertinya masalah Anda secara matematis setara dengan masalah mereka.
Emil Friedman

Jawaban:

6

Untuk kasus probabilitas / frekuensi yang sama, pendekatan ini mungkin cocok untuk Anda.

Misalkan adalah total ukuran sampel, N menjadi jumlah item yang berbeda yang diamati, N 1 menjadi jumlah item yang terlihat tepat satu kali, N 2 menjadi jumlah item yang terlihat tepat dua kali, A = N 1 ( 1 - N 1KNN1N2dan Q =N1A=N1(1N1K)+2N2,Q^=N1K.

Kemudian perkiraan interval kepercayaan 95% pada ukuran total populasi diberikan olehn

n^L.Haiwer=11-Q^+1.96SEBUAHK

n^Uhalhaler=11-Q^-1.96SEBUAHK

Saat menerapkan, Anda mungkin perlu menyesuaikan ini tergantung pada data Anda.

Metode ini karena Good and Turing. Referensi dengan interval kepercayaan adalah Esty, Warren W. (1983), "Hukum Batas Normal untuk Estimator Nonparametrik dari Cakupan Sampel Acak" , Ann. Statist. , Volume 11, Nomor 3, 905-912.

Untuk masalah yang lebih umum, Bunge telah menghasilkan perangkat lunak gratis yang menghasilkan beberapa perkiraan. Cari dengan namanya dan kata CatchAll .

soakley
sumber
1
Saya mengambil kebebasan untuk menambahkan referensi Esty. Harap periksa ulang itu yang Anda maksud
Glen_b -Reinstate Monica
Apakah mungkin @soakley mendapatkan batasan (mungkin batas yang kurang tepat) jika Anda hanya tahu (ukuran sampel), dan N (jumlah item unik yang terlihat)? yaitu kami tidak memiliki informasi tentang N 1 dan N 2 . KNN1N2
Basj
Saya tidak tahu cara untuk melakukannya hanya dengan dan N . KN.
soakley
2

Saya tidak tahu apakah itu bisa membantu tetapi itu adalah masalah mengambil bola yang berbeda selama percobaan n di guci dengan bola m berlabel berbeda dengan penggantian. Menurut halaman ini (dalam bahasa Perancis) jika X n jika variabel acak menghitung jumlah bola yang berbeda fungsi probabilitas diberikan oleh: P ( X n = k ) = ( mknmXnP(Xn=k)=(mk)i=0k(1)ki(ki)(im)n

Kemudian Anda bisa menggunakan penduga kemungkinan maksimum.

Formula lain dengan bukti diberikan di sini untuk menyelesaikan masalah hunian .

sylvain
sumber
2

Fungsi kemungkinan dan probabilitas

Dalam jawaban atas pertanyaan tentang masalah ulang tahun terbalik, solusi untuk fungsi kemungkinan telah diberikan oleh Cody Maughan.

mkn

L(m|k,n)=mnm!(mk)!P(k|m,n)=mnm!(mk)!S(n,k)Stirling number of the 2nd kind=mnm!(mk)!1k!i=0k(1)i(ki)(ki)n=(mk)i=0k(1)i(ki)(kim)n

Untuk derivasi probabilitas di sisi kanan lihat masalah hunian. Ini telah dijelaskan sebelumnya di situs web ini oleh Ben. Ungkapannya mirip dengan yang di jawab oleh Sylvain.

Estimasi kemungkinan maksimum

Kita dapat menghitung perkiraan urutan pertama dan urutan kedua dari maksimum fungsi likelihood di

m1(n2)nk

m2(n2)+(n2)24(nk)(n3)2(nk)

Interval kemungkinan

(catatan, ini tidak sama dengan interval kepercayaan lihat: Logika dasar membangun interval kepercayaan )

mnm!(mk)!

Interval kepercayaan diri

Untuk interval kepercayaan kita dapat menggunakan perkiraan normal. Dalam jawaban Ben, mean dan varians berikut diberikan:

E[K]=m(1(11m)n)
V[K]=m((m1)(12m)n+(11m)nm(11m)2n)

n=200 and observed unique cookies k the 95% boundaries E[K]±1.96V[K] look like:

confidence interval boundaries

In the image above the curves for the interval have been drawn by expressing the lines as a function of the population size m and sample size n (so the x-axis is the dependent variable in drawing these curves).

The difficulty is to inverse this and obtain the interval values for a given observed value k. It can be done computationally, but possibly there might be some more direct function.

In the image I have also added Clopper Pearson confidence intervals based on a direct computation of the cumulative distribution based on all the probabilities P(k|m,n) (I did this in R where I needed to use the Strlng2 function from the CryptRndTest package which is an asymptotic approximation of the logarithm of the Stirling number of the second kind). You can see that the boundaries coincide reasonably well, so the normal approximation is performing well in this case.

# function to compute Probability
library("CryptRndTest")
P5 <- function(m,n,k) {
  exp(-n*log(m)+lfactorial(m)-lfactorial(m-k)+Strlng2(n,k))
}
P5 <- Vectorize(P5)

# function for expected value 
m4 <- function(m,n) {
  m*(1-(1-1/m)^n)
}

# function for variance
v4 <- function(m,n) {
  m*((m-1)*(1-2/m)^n+(1-1/m)^n-m*(1-1/m)^(2*n))
}


# compute 95% boundaries based on Pearson Clopper intervals
# first a distribution is computed
# then the 2.5% and 97.5% boundaries of the cumulative values are located
simDist <- function(m,n,p=0.05) {
  k <- 1:min(n,m)
  dist <- P5(m,n,k)
  dist[is.na(dist)] <- 0
  dist[dist == Inf] <- 0
  c(max(which(cumsum(dist)<p/2))+1,
       min(which(cumsum(dist)>1-p/2))-1)
}


# some values for the example
n <- 200
m <- 1:5000
k <- 1:n

# compute the Pearon Clopper intervals
res <- sapply(m, FUN = function(x) {simDist(x,n)})


# plot the maximum likelihood estimate
plot(m4(m,n),m,
     log="", ylab="estimated population size m", xlab = "observed uniques k",
     xlim =c(1,200),ylim =c(1,5000),
     pch=21,col=1,bg=1,cex=0.7, type = "l", yaxt = "n")
axis(2, at = c(0,2500,5000))

# add lines for confidence intervals based on normal approximation
lines(m4(m,n)+1.96*sqrt(v4(m,n)),m, lty=2)
lines(m4(m,n)-1.96*sqrt(v4(m,n)),m, lty=2)
# add lines for conficence intervals based on Clopper Pearson
lines(res[1,],m,col=3,lty=2)
lines(res[2,],m,col=3,lty=2)

# add legend
legend(0,5100,
       c("MLE","95% interval\n(Normal Approximation)\n","95% interval\n(Clopper-Pearson)\n")
       , lty=c(1,2,2), col=c(1,1,3),cex=0.7,
       box.col = rgb(0,0,0,0))
Sextus Empiricus
sumber
Untuk kasus probabilitas yang tidak setara . Anda dapat memperkirakan jumlah cookie dari jenis tertentu sebagai variabel terdistribusi Binomial / Poisson independen dan menggambarkan apakah cookie itu diisi atau tidak sebagai variabel Bernouilli. Kemudian tambahkan varians dan sarana untuk variabel-variabel tersebut. Saya kira ini juga bagaimana Ben mendapatkan / memperkirakan nilai dan variasinya. ----- Masalahnya adalah bagaimana Anda menggambarkan berbagai probabilitas ini. Anda tidak dapat melakukan ini secara eksplisit karena Anda tidak tahu jumlah cookie.
Sextus Empiricus