Оценивая в задаче купонного взыскателя

14

В одном из вариантов проблемы сборщика купонов вы не знаете количество купонов и должны определить это на основе данных. Я буду называть это проблемой печенья с предсказанием:

Принимая во внимание неизвестное количество отдельных сообщений cookie состояния удачи , оцените , отбирая по одному печенье cookie и посчитав, сколько раз каждое состояние появляется. Также определите количество выборок, необходимое для получения желаемого доверительного интервала на этой оценке.NN

В основном мне нужен алгоритм, который выбирает достаточно данных, чтобы достичь заданного доверительного интервала, скажем, с . Для простоты можно предположить, что все состояния появляются с одинаковой вероятностью / частотой, но это не относится к более общей проблеме, и решение этой проблемы также приветствуется.95 %N±595%

Это похоже на проблему с немецким танком , но в этом случае печенье с предсказанием не маркируется последовательно и, следовательно, не имеет порядка.

goweon
источник
1
Мы знаем, что сообщения одинаково часты?
Glen_b
отредактированный вопрос: Да
goweon
2
Можете ли вы записать функцию правдоподобия?
Дзен
2
Люди, изучающие дикую природу, ловят, маркируют и выпускают животных. Позже они определяют размер популяции на основе частоты, с которой они возвращают уже помеченных животных. Похоже, ваша проблема математически эквивалентна их.
Эмиль Фридман

Ответы:

6

Для случая равной вероятности / частоты этот подход может работать для вас.

Пусть будет общим размером выборки, N будет количеством различных наблюдаемых предметов, N 1 будет количеством предметов, увиденных ровно один раз, N 2 будет количеством предметов, увиденных ровно дважды, A = N 1 ( 1 - N 1КNN1N2и Q =N1Aзнак равноN1(1-N1К)+2N2,Q^знак равноN1К,

Тогда приблизительный 95% доверительный интервал от общей численности населения определяется какN

N^Lовесерзнак равно11-Q^+1,96AК

N^Uпперзнак равно11-Q^-1,96AК

При реализации вам может потребоваться изменить их в зависимости от ваших данных.

Метод из-за добра и тьюринга. Ссылка с доверительным интервалом - Esty, Warren W. (1983), "Нормальный закон предела для непараметрической оценки покрытия случайной выборки" , Ann. Statist. , Том 11, номер 3, 905-912.

Для более общей проблемы Bunge выпустила бесплатное программное обеспечение, которое дает несколько оценок. Поиск по его имени и слову CatchAll .

soakley
источник
1
Я позволил себе добавить ссылку на Esty. Пожалуйста, дважды проверьте, что вы имели в виду
Glen_b
Возможно ли @soakley получить границы (возможно, менее точные границы), если вы знаете только (размер выборки) и N (количество увиденных уникальных предметов)? то есть у нас нет информации о N 1 и N 2 . KNN1N2
Basj
Я не знаю способ сделать это только с и N . KN.
Soakley
2

Я не знаю, может ли это помочь, но это проблема взятия разных шаров во время n испытаний в урне с m шарами, помеченными по-разному с заменой. Согласно этой странице (на французском), если X n, если случайная величина, подсчитывающая количество различных шаров, функция вероятности определяется как: P ( X n = k ) = ( mknmXnP(Xn=k)=(mk)i=0k(1)ki(ki)(im)n

Тогда вы можете использовать оценку максимального правдоподобия.

Здесь дается еще одна формула с доказательством для решения проблемы занятости .

sylvain
источник
2

Likelihood function and probability

In an answer to a question about the reverse birthday problem a solution for a likelihood function has been given by Cody Maughan.

The likelihood function for the number of fortune cooky types m when we draw k different fortune cookies in n draws (where every fortune cookie type has equal probability of appearing in a draw) can be expressed as:

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).

Трудность состоит в том, чтобы инвертировать это и получить значения интервала для данного наблюдаемого значения К, Это может быть сделано в вычислительном отношении, но, возможно, может быть какая-то более прямая функция.

В изображении я также добавил доверительные интервалы Клоппера Пирсона, основанные на прямом вычислении совокупного распределения на основе всех вероятностей п(К|м,N)(Я сделал это в R, где мне нужно было использовать Strlng2функцию из пакета CryptRndTest , которая является асимптотическим приближением логарифма числа Стирлинга второго рода). Вы можете видеть, что границы достаточно хорошо совпадают, поэтому нормальное приближение в этом случае хорошо работает.

# 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))
Секст Эмпирик
источник
Для случая неравных вероятностей. Вы можете аппроксимировать количество файлов cookie определенного типа в качестве независимых распределенных биномиальных / пуассоновских переменных и описать, заполнены они или нет, как переменные Бернулли. Затем сложите дисперсию и средства для этих переменных. Я предполагаю, что это также, как Бен вывел / приблизил ожидаемое значение и дисперсию. ----- Проблема в том, как вы описываете эти разные вероятности. Вы не можете сделать это явно, так как вы не знаете количество файлов cookie.
Секст Эмпирик