Estimation de n dans le problème du collecteur de coupons

14

Dans une variante du problème du collecteur de coupons , vous ne connaissez pas le nombre de coupons et devez le déterminer en fonction des données. J'appellerai cela le problème du cookie de fortune:

Étant donné un nombre inconnu de messages distincts sur les cookies de fortune , estimez en échantillonnant les cookies un par un et en comptant le nombre d'apparitions de chaque fortune. Déterminez également le nombre d'échantillons nécessaires pour obtenir un intervalle de confiance souhaité sur cette estimation.nn

Fondamentalement, j'ai besoin d'un algorithme qui échantillonne juste assez de données pour atteindre un intervalle de confiance donné, disons avec une confiance de . Pour simplifier, nous pouvons supposer que toutes les fortunes apparaissent avec une probabilité / fréquence égale, mais ce n'est pas vrai pour un problème plus général, et une solution à cela est également la bienvenue.n±595%

Cela semble similaire au problème des chars allemands , mais dans ce cas, les cookies de fortune ne sont pas étiquetés séquentiellement et n'ont donc pas de commande.

goweon
la source
1
Savons-nous que les messages sont tout aussi fréquents?
Glen_b -Reinstate Monica
question modifiée: Oui
goweon
2
Pouvez-vous noter la fonction de vraisemblance?
Zen
2
Les gens qui font des études sur la faune capturent, étiquettent et relâchent les animaux. Ils infèrent plus tard la taille de la population en fonction de la fréquence à laquelle ils recapturent des animaux déjà marqués. Il semble que votre problème soit mathématiquement équivalent au leur.
Emil Friedman

Réponses:

6

Dans le cas d'une probabilité / fréquence égale, cette approche peut vous convenir.

Soit la taille totale de l'échantillon, N le nombre d'éléments différents observés, N 1 le nombre d'éléments vus exactement une fois, N 2 le nombre d'éléments vus exactement deux fois, A = N 1 ( 1 - N 1KNN1N2et Q =N1UNE=N1(1-N1K)+2N2,Q^=N1K.

Ensuite, un intervalle de confiance d'environ 95% sur la taille totale de la population est donné parn

n^Lower=11Q^+1.96AK

n^Upper=11Q^1.96AK

Lors de la mise en œuvre, vous devrez peut-être les ajuster en fonction de vos données.

La méthode est due à Good et Turing. Une référence avec l'intervalle de confiance est Esty, Warren W. (1983), "Une loi limite normale pour un estimateur non paramétrique de la couverture d'un échantillon aléatoire" , Ann. Statist. , Volume 11, numéro 3, 905-912.

Pour le problème plus général, Bunge a produit un logiciel libre qui produit plusieurs estimations. Cherchez avec son nom et le mot CatchAll .

Soakley
la source
1
J'ai pris la liberté d'ajouter la référence Esty. Veuillez vérifier que c'est bien ce que vous vouliez dire
Glen_b -Reinstate Monica
Est-il possible @soakley d'obtenir des limites (probablement des limites moins précises) si vous ne connaissez que (taille de l'échantillon) et N (nombre d' éléments uniques vus)? c'est-à-dire que nous n'avons pas d'informations sur N 1 et N 2 . KNN1N2
Basj
Je ne sais pas d'une façon de le faire avec juste et N . KN.
soakley
2

Je ne sais pas si cela peut aider mais c'est le problème de prendre balles différentes lors de n essais dans une urne avec m balles étiquetées différemment avec remplacement. D'après cette page si X n si la variable aléatoire comptant le nombre de boules différentes la fonction de probabilité est donnée par: P ( X n = k ) = ( mknmXnP(Xn=k)=(mk)i=0k(1)ki(ki)(im)n

Ensuite, vous pouvez utiliser un estimateur du maximum de vraisemblance.

Une autre formule avec preuve est donnée ici pour résoudre le problème d'occupation .

sylvain
la source
2

Fonction de vraisemblance et probabilité

En réponse à une question sur le problème d'anniversaire inversé, une solution pour une fonction de vraisemblance a été donnée par Cody Maughan.

La fonction de vraisemblance pour le nombre de types de cookies de fortune m lorsque nous tirons k différents cookies de fortune dans n tirages (où chaque type de cookie de fortune a une probabilité égale d'apparaître dans un tirage) peut être exprimée comme suit:

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

For a derivation of the probability on the right hand side see the the occupancy problem. This has been described before on this website by Ben. The expression is similar to the one in the answer by Sylvain.

Maximum likelihood estimate

We can compute first order and second order approximations of the maximum of the likelihood function at

m1(n2)nk

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

Likelihood interval

(note, this is not the same as a confidence interval see: The basic logic of constructing a confidence interval)

This remains an open problem for me. I am not sure yet how to deal with the expression mnm!(mk)! (of course one can compute all values and select the boundaries based on that, but it would be more nice to have some explicit exact formula or estimate). I can not seem to relate it to any other distribution which would greatly help to evaluate it. But I feel like a nice (simple) expression could be possible from this likelihood interval approach.

Confidence interval

For the confidence interval we can use a normal approximation. In Ben's answer the following mean and variance are given:

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

Say for a given sample 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
la source
For the case of unequal probabilities. You can approximate the number of cookies of a particular type as independent Binomial/Poisson distributed variables and describe whether they are filled or not as Bernouilli variables. Then add together the variance and means for those variables. I guess that this is also how Ben derived/approximated the expectation value and variance. ----- A problem is how you describe these different probabilities. You can not do this explicitly since you do not know the number of cookies.
Sextus Empiricus