En esta respuesta, estoy respondiendo específicamente a las preguntas planteadas en los comentarios / respuesta de @eclipse; empiezan siendo más concretas, y se vuelven más heurísticas a medida que avanzan.
Sigo manteniendo mi post original como solución al problema.
1. Notación para el modelo Binomial Negativo de @eclipse.
Antes de abordar las diferencias en el modelo, intentaré proponer una notación coherente para el modelo Binomial Negativo propuesto por @eclipse, de modo que los dos enfoques sean fácilmente comparables.
Como en mi post original dejar $X_i \in \{0,1\}$ denota el estado verdadero de cada elemento, y que $Y_i \in \{0,1\}$ denotan el estado observado: de modo que si $X_i = Y_i = 1$ entonces es un verdadero positivo, $X_i = 0, \, Y_i =1$ entonces es un falso positivo, y si no, es un negativo.
El modelo propuesto está condicionado exactamente $(N-n)$ de que los resultados se observen como negativos, equivalentemente $\sum_{i=1}^N Y_i = n$ . En lugar de contar cuántos de ellos son verdaderos positivos (como en mi solución), el modelo cuenta el número de falsos positivos (cuando $X_i=0, \ Y_i = 1$ ), y propone:
\begin{align*} P \left( \sum_{i=1}^N ( Y_i - X_i ) = k \, \bigg| \, \sum_{i=1}^N Y_i = n \right) & = P \left( n - \sum_{i=1}^N X_i = k \, \bigg| \, \sum_{i=1}^N Y_i = n \right) \\ & = \text{NBin}\left( N - n, q \right) \end{align*} donde $q$ es la tasa de falsos positivos.
2. Ambas respuestas tienen la misma media.
Utilizando el modelo binomial negativo descrito anteriormente, condicionado a exactamente $N-n$ resultados no negativos, se da que el número esperado de falsos positivos es:
\begin{align*} E \left[ n - \sum_{i=1}^N X_i \, \bigg| \, \sum_{i=1}^N Y_i = n \right] & = (N-n) \frac{q}{1-q}, \end{align*} donde utilicé el hecho de que la media de un $\text{NBin}(r,q)$ distribución es $r q/(1-q)$ .
Calculando la misma expectativa utilizando mi modelo, para el número de falsos positivos condicionado a que el número de no negativos sea $(N-n)$ que tenemos:
\begin{align*} E \left[n - \sum_{i=1}^N X_i \, \bigg| \, \sum_{i=1}^N Y_i = n \right] & = n - E \left[\sum_{i=1}^N X_i \, \bigg| \, \sum_{i=1}^N Y_i = n \right] \\ & = n - n \frac{\hat p}{\hat p + (1 - \hat p q)} \\ & = n \left( 1 - \frac{\frac{n}{N} - q }{ \frac{n}{N}(1-q) } \right) \\ & = N \frac{(1 - \frac{n}{N}) q}{1-q} \\ & = (N-n) \frac{q}{1-q} \end{align*}
Así que las distribuciones tienen la misma media. Nota: Esta es la forma correcta de hacer este cálculo, una edición anterior sugería el cálculo $N -- n \hat p$ que devuelve el mismo valor; sin embargo, esto no reconoce que al condicionar exactamente a $n$ verdaderos/falsos positivos, tenemos que sustituir $\hat p$ con la expresión más complicada $\hat p/(\hat p + (1-\hat p)q)$ .
El cálculo anterior se cumple cuando $\hat p \neq 0$ (véase la definición de $\hat p$ en mi post original). Sin embargo, en este caso es fácil ver que:
$$E \left[n - \sum_{i=1}^N X_i \, \bigg| \, \sum_{i=1}^N Y_i = n \right] = n$$
de modo que las dos fórmulas no concuerdan.
Aunque se trata de un caso aislado, plantea un buen contraejemplo al modelo binomial negativo propuesto: supongamos que la tasa de verdaderos positivos es realmente $0$ para que sólo haya falsos positivos. En este caso, como en el modelo anterior, se requeriría que condicionado a que haya $n$ verdaderos/falsos positivos, entonces $n$ son falsos positivos: el modelo binomial negativo propuesto no tiene esta propiedad.
3. Idoneidad de una distribución binomial negativa
En primer lugar, una rápida descripción de las distribuciones Binomial y Binomial Negativa. La derivación estándar de una distribución Binomial a partir de las distribuciones Bernoulli, es decir "Fix $N \geq 0$ y muestra $N$ distribuciones Bernoulli independientes, y contar el número de `éxitos', es decir, el número de distribuciones Bernoulli que devuelven $1$ ".
Una distribución binomial negativa tiene una descripción similar, pero en lugar de fijar el número total de distribuciones Bernoulli que muestrearemos ( $N$ en lo anterior), en su lugar fijamos el número total de `fracasos' (es decir, distribuciones Bernoulli que devuelven $0$ . Así que decimos: "Arreglar $r \geq 0$ y muestrear las distribuciones Bernoulli hasta exactamente $r$ devolver el valor $0$ ; luego cuenta el número total de éxitos vistos hasta ese momento".
La distinción importante que quiero hacer entre las dos es que para una distribución binomial negativa, no hay un número fijo de distribuciones Bernoulli. Esto es relevante, porque en el problema descrito, sabemos (usando mi notación original) que tenemos $X_1,\ldots, X_N$ (con $N = 1000$ ) que pueden estar o no en la estructura de datos. Es decir, tenemos un número fijo, y como tal una distribución binomial negativa no es una elección apropiada de distribución.
Una forma alternativa de ver que el Binomio Negativo no es apropiado para esto es el hecho de que no tiene soporte acotado: en particular para cualquier número entero $k \geq 0$ la probabilidad de que la distribución sea igual a $k$ es mayor que $0$ . Sin embargo, por la descripción del problema sabemos que debe haber como máximo $N-n$ `éxitos'.
4 La tasa de falsos positivos $q$
En la solución que utiliza distribuciones binomiales negativas, utilizamos $q$ para la probabilidad de "éxito", y $(1-q)$ para la probabilidad de fallo. La interpretación dada de que un fallo es un resultado negativo verdadero ( $X_i = Y_i = 0$ en mi notación), sin embargo el éxito se describe como la probabilidad de falso positivo ( $X_i = 0, \, Y_i = 1$ ). Esto no describe completamente el problema ya que no deja la posibilidad de verdaderos positivos $(X_i = Y_i = 1$ ): en forma de palabra tenemos:
$$P(\text{true positive}) + P(\text{false positive}) + P(\text{negative}) = 1,$$ sin embargo a partir de las probabilidades utilizadas en la formulación Binomial Negativa del problema tenemos:
$$P(\text{false positive}) + P(\text{negative}) = p + (1-p) = 1,$$
es decir $P(\text{true positive}) = 0$ .
La definición que utilizo de la tasa de falsos positivos es, de nuevo, una probabilidad condicional: "Condicionada a que el punto de datos no sea un verdadero positivo, la probabilidad de que sea un falso positivo es $q$ "es decir
$$P(Y_i = 1 \,|\,X_i = 0) = q$$
4. Resolver el problema sin conocer la tasa de verdaderos positivos
Como ya comenté en mi solución original a este problema: el método difiere según se conozca o no la tasa de verdaderos positivos. Si no es así, lo mejor que podemos hacer es inferirla a partir de los datos observados.
En la solución Binomial Negativa, aprecio que el enfoque es intentar evitar esto trabajando en su lugar sólo con falsos positivos. La cuestión aquí, y sólo puedo describirlo de forma heurística, es: si sólo podemos utilizar información sobre la tasa de falsos positivos para encontrar el número de verdaderos positivos, entonces también podríamos deducir de ahí cuál es la tasa de verdaderos positivos, en cuyo caso podríamos resolver el problema utilizando la tasa de verdaderos positivos.
Soy consciente de que esto no está tan claro: pero a lo que quiero llegar es que la tasa de falsos positivos por sí sola no es información suficiente para obtener información sobre el número de verdaderos positivos...
... La excepción es si se adopta el enfoque de mi respuesta original de utilizar la tasa de falsos positivos y el número de positivos (verdaderos y falsos) observados para obtener una aproximación de la tasa de verdaderos positivos.
5. Ejemplo numérico
Como añadido final, he montado la siguiente simulación del modelo tal y como yo lo entiendo (en código R).
# Include parallel package.
library(parallel)
Fije los parámetros para el modelo; N = 1000, y q = 0,3 son los indicados en la pregunta.
N <- 1000
q <- 0.3
Elijo p = sqrt(1/2) como valor para el que sería plausible esperar ver 800 resultados no negativos. Obsérvese que, basándonos en q = 0,3 y N = 1000, podemos calcular phat ~ 0,7143, mientras que sqrt(1/2) ~ 0,7071, por lo que, en concreto, p y phat no coinciden, pero son similares.
p <- sqrt(1/2)
En este bloque de código ejecuto muchas (50 x 10.000 = 500.000) simulaciones del modelo que describes. A continuación, sólo conservo aquellas en las que el número de verdaderos / falsos positivos es igual a 800.
batchSize <- 10000
library(parallel)
nCores <- detectCores() - 1
parCluster <- makeCluster(nCores)
clusterExport(parCluster, c("N", "p", "q", "batchSize"))
batches800 <- parSapply(parCluster, 1:50, function(batch){
batchRuns <- sapply(1:batchSize, function(i){
X <- rbinom(n=N, 1, p)
Z <- runif(n=N)
Y <- pmin(1, X + (Z <= q) )
SX <- sum(X)
SY <- sum(Y)
phat <- (SY/N - q)/(1-q)
return(c(SX,SY))
})
batchRuns <- t(batchRuns)
batch800 <- batchRuns[ batchRuns[,2] == 800, ]
return(batch800)
})
Se trata de la colección de todas las muestras individuales para las que hubo exactamente 800 resultados no negativos; la primera columna del marco de datos es la suma de los valores X, que es el número de verdaderos positivos. La segunda columna es la suma de los valores Y, el total de valores no negativos, que hemos condicionado para que sea igual a 800.
samples800 <- do.call(rbind, batches800)
La pregunta que habías formulado se refería a la distribución de los resultados positivos. En mi respuesta afirmo que se trata de una distribución binomial con media p/( p + (1-p)*q) ). Ahora realizamos una prueba Chi^2 para ver si la distribución de la suma de X (la primera columna de muestras800) se distribuye según Bin(800, p/(p + (1-p)q)).
# Get the expected and observed frequency of each possible value.
chi_expected <- nrow(samples800)*dbinom(0:800, size = 800, prob = p/(p + (1-p)*q))
chi_observed <- sapply(0:800, function(k){ length(which(samples800[,1] == k))})
# Find positions where the expected frequency is less than 5; as with standard Chi^2 tests we will group these together.
which_chi_expected_less_5 <- which(chi_expected < 5)
# Define the cluster of results with frequency less than 5 for both expected and observed results.
chi_expected_less5 <- sum( chi_expected[which_chi_expected_less_5 ] )
chi_observed_less5 <- sum( chi_observed[which_chi_expected_less_5 ] )
# Remove entries from expected/observed with expected frequency less than 5, and replace with the grouped class.
chi_expected <- c( chi_expected[-which_chi_expected_less_5], chi_expected_less5 )
chi_observed <- c( chi_observed[-which_chi_expected_less_5], chi_observed_less5 )
# Calculate the Chi^2 statistic.
chi_square <- sum(( chi_observed - chi_expected)^2 / chi_expected)
# Calculate the rejection region for the hypothesis test, based on length(chi_expected) - 1 degrees of freedom, at a significance of alpha =0.05
chi_square_reject <- qchisq(0.95, length(chi_expected)-1)
En mi ejecución particular obtengo chi_square = 49,79, mientras que chi_square_reject = 73,31, por lo que no rechazamos la hipótesis nula a una significación de alfa = 0,05.