1 votos

Distribución de probabilidad binominal con tamaño de entrada variable

Me gustaría crear una fórmula para un problema de distribución. Supongamos que tengo una estructura de datos que me dice si un elemento se ha insertado o no en ella. Esta estructura de datos tiene una probabilidad de falso positivo de 0,3. Si hacemos 1000 pruebas con cada 1000 elementos que no han sido insertados en la estructura de datos obtenemos un distribución binominal con una media de 300. Por ejemplo, para cada una de las 1000 pruebas comprobamos para 1000 elementos cuántos de ellos están presentes en la estructura de datos. Como en realidad no hay ninguno, sólo obtenemos la distribución de falsos positivos, que en este caso es igual a la distribución binominal para n=1000 y p=0,3.

Ahora para mi problema digamos que tengo 1 prueba con 1000 elementos. Pero ahora no sabemos cuántos de los elementos están contenidos en la estructura de datos. Así que el resultado podría ser "800 elementos están contenidos en la estructura de datos". Ahora sabemos que lo más probable es que algunos de estos elementos sean falsos positivos, ya que seguimos teniendo una tasa de falsos positivos de 0,3.

Me gustaría trazar una distribución de probabilidad para los posibles resultados del ejemplo anterior. Por ejemplo

probability that 800 are false positives, 
and 0 elements are actually present: 0.00002
...
probability that 200 are false positives, 
and 600 elements are actually present: 0.1012
...
probability that 100 are false positives, 
and 700 elements are actually present: 0.0043    
...
probability that 0 are false positives, 
and 800 elements are actually present: 0.000043

¿Qué función describe esta distribución?

1voto

wxs Puntos 1546

Por lo tanto, creo que hay que considerar dos casos: el primero, en el que se conoce la probabilidad de que un elemento esté en la estructura de datos, y el segundo, en el que se desconoce.

Primero algo de notación, lete $X_i \in \{0,1\}$ denota el caso de que el punto $i$ está en la estructura, y que $Y_i \in \{0,1\}$ denotan el resultado observado de si $i$ está en la estructura.

Basándome en su comentario anterior, supondré que no se producen falsos negativos: de modo que si $X_i = 1$ entonces $Y_i = 1$ pero además si $X_i = 0$ existe una tasa de falsos positivos $q$ ( $=0.3$ en su ejemplo) que $Y_i = 1$ . Sea $N$ denotan el número total de puntos ( $=1000$ ).

Asumiré que cada $X_i$ es independiente, y como es $\{0,1\}$ sigue una distribución Binomial, con probabilidad $p \in [0,1]$ :

$$P(X_i = 1) = p, \qquad i = 1,\ldots, N.$$

Si además introducimos variables independientes $Z_i \sim \text{Unif}[0,1]$ podemos escribir

$$ Y_i = \begin{cases} 1 & \text{if $X_i = 1$, or $Z_i < q$,}\\ 0 & \text{else.} \end{cases} $$

De nuevo, la variable $Y_i$ debe tener distribución Bernoulli (ya que tiene soporte $\{0,1\}$ ), y cálculos sencillos utilizando las probabilidades de condición muestran:

\begin{align*} P(Y_i = 1) & = p + (1-p)q \\ P(X_i = 1 \, | \, Y_i = 1) & = \frac{p}{p + (1-p)q} \end{align*}

En particular, observamos que la distribución de condiciones $(X_i = \cdot \, | \, Y_i = 1)$ tiene una distribución Bernoulli:

$$(X_i = \cdot \, | \, Y_i = 1) \sim \text{Ber}\left( \frac{p}{p + (1-p)q} \right) $$

Dado que las sumas de las distribuciones Bernoulli están Binomialmente distribuidas, tenemos:

\begin{align*} \sum_{i = 1}^n (X_i = \cdot \, | \, Y_i = 1) & \sim \text{Bin}\left(n, \frac{p}{p + (1-p)q} \right). \end{align*} Sin embargo, también tenemos: \begin{align*} \left( \sum_{i=1}^N X_i = \cdot \, \Bigg| \sum_{i=1}^N Y_i = n \right) & \sim \sum_{i = 1}^n (X_i = \cdot \, | \, Y_i = 1) \\ & \sim \text{Bin}\left(n, \frac{p}{p + (1-p)q} \right). \end{align*}

Por lo tanto, si $\sum_{i=1}^N Y_i = n$ ( $=800$ en su ejemplo), entonces

\begin{align*}P \left( \sum_{i=1}^N X_i = m \, \Bigg| \sum_{i=1}^N Y_i = n \right) &= \binom{n}{m} \left(\frac{p}{p + (1-p)q}\right)^m \left( \frac{(1-p)q}{p +(1-p)q}\right)^{n-m} \\ & = \binom{n}{m} \frac{p^m(1-p)^{n-m} q^{n-m} }{\big(p + (1-p)q\big)^n} \\ \end{align*}

Según tengo entendido, esta es la solución que busca, suponiendo que conoce la tasa de verdaderos positivos $p$ .

Sin embargo, supongamos que esto no se sabe. En este caso, podemos encontrar una estimación para $p$ . Para ver esto, observamos que puesto que $Y_i \sim \text{Ber}\big( p + (1-p)q \big)$ (ya que es la probabilidad de que $Y_i = 1$ ), entonces

$$ \sum_{i=1}^N Y_i \sim \text{Bin}\big( N, p + (1-p)q \big)$$

En general, si observamos un $\text{Bin}(N, \theta)$ para tomar el valor $n$ y no sabemos $\theta$ la estimación (de máxima verosimilitud) de $\theta$ es $\hat \theta = n/N$ .

Así que en nuestro ejemplo:

$$\hat \theta = \frac{n}{N} = \hat p + \big( 1 - \hat p\big) q$$

Reorganización para $\hat p$ nuestra estimación de $p$ tenemos

$$\hat p = \frac{ \frac{n}{N} - q}{1 - q}$$

Tenga en cuenta que si $ \frac{n}{N} < q$ es decir, si el número observado de aciertos es inferior a la tasa de falsos positivos, entonces $\hat p < 0$ . Por tanto, aproximaríamos en su lugar que $\hat p = 0$ (aunque en la práctica es poco probable que se dé este caso especial), por lo que estableceríamos:

$$\hat p =\max \left ( 0, \frac{ \frac{n}{N} - q}{1 - q} \right)$$

Esto se puede sustituir ahora en la fórmula de la primera parte, para obtener una aproximación a la probabilidad de interés:

\begin{align*} P \left( \sum_{i=1}^N X_i = m \, \Bigg| \sum_{i=1}^N Y_i = n \right) & \approx \binom{n}{m} \frac{\hat p^m(1-\hat p)^{n-m} q^{n-m} }{\big(\hat p + (1-\hat p)q\big)^n} \\ & = \begin{cases} {\bf 1}(m=0), \quad \text{if $\frac{n}{N} <q$,}\\ \binom{n}{m} \left(\frac{N}{n}\right)^n \left(\frac{1}{1-q}\right)^n \left( \frac{n}{N} - q \right)^m \left(1 - \frac{n}{N}\right)^{n-m}q^{n-m}, \quad \text{else.} \end{cases} \end{align*} donde el primer caso es la situación que $\hat p = 0$ en cuyo caso aproximamos $\sum_{i=1}^N = 0$ . Utilizamos $\approx$ para indicar que se trata de la estimación mediante el estimador de máxima verosimilitud $\hat p$ .

1voto

wxs Puntos 1546

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.

0voto

eclipse Puntos 108

Quiero dar las gracias a owen88 por su impresionante respuesta y quiero esbozar un enfoque alternativo que parece obtener resultados diferentes. Principalmente me gustaría entender por qué la respuesta de owen88 es mejor que lo que se me ocurrió.

Utilizaré las mismas variables que utilizó owen88. Básicamente he remodelado el problema como un distribución binomial negativa donde $200$ es el número de fallos ( $N-n = 1000-800$ en la respuesta de owen88). $q=0.3$ es el porcentaje de aciertos y el número de aciertos es a $i = 0, ..., 800$ .

Editar : Sólo me he fijado en los resultados falsos positivos y negativos, ya que no sé nada de las posibilidades de verdaderos positivos. Sé que debe haber exactamente $N-n$ resultados negativos que declaro como el número de fallos en la distribución binominal negativa. Ahora sólo quiero saber cuántos aciertos (falsos positivos) debería haber normalmente para el número de fallos que he especificado. Así que no me fijo en los resultados positivos verdaderos, sino sólo en el número deseado de fallos. $N-n$ y en cuántos falsos positivos debe haber habido para este número de fallos.

$Pr(X=i)=\binom{N-n + i - 1}{i} q^{i}(1-q)^{N-n}$

Tanto la respuesta de owen88 como la mía crean una distribución normalizada con la misma media, pero desgraciadamente los valores reales son diferentes y me gustaría entender dónde está la diferencia de los dos enfoques (y cuál es el correcto).

He añadido las fórmulas en wolframalpha para jugar un poco.

owen88 wolframalpha%5En%20%20(n%2FN%20-%20q)%5Em%20%20(1-n%2FN)%5E(n-m)%20*%20q%5E(n-m),%20%20%20m%3D750,n%3D825,%20N%3D1000,%20q%3D0.3 "owen88")

mina wolframalpha%20%20(1-q)%5Er%20%20q%5Ek,%20q%3D0.3,%20r%3D176,%20k%3D75)

Sería estupendo si alguien pudiera darme una idea de cuál es el enfoque correcto y por qué.

0voto

eclipse Puntos 108

Después de los muy buenos puntos que @owen88 hizo en sus dos respuestas tengo una nueva respuesta que creo que es correcta. El principal problema que tengo con la solución de owen88 es que $p$ sigue una distribución binomial. Seguramente depende de cómo se interprete el problema, pero creo que hay que suponer que el número de verdaderos positivos $m$ es fijo pero desconocido. Por ello, en mi opinión, sería erróneo afirmar que $m$ sigue una distribución binomial.

Por lo tanto, el problema puede resolverse de la siguiente manera:

Sea $m$ ser fijo pero desconocido. Deje que $f=n-m$ el número de falsos positivos, $k=N-n$ el número de negativos y $q$ la probabilidad de un falso positivo. Entonces, la probabilidad de obtener exactamente $f$ Los falsos positivos pueden determinarse con la distribución binomial:

$\binom{f+k}{f}q^f(1-q)^k$

Ahora repetimos este proceso para $m \in [0, n]$ y así obtener $n+1$ probabilidades. Sea $Z$ sea la constante de normalización entonces la distribución puede definirse como:

$P(m = x)= Z\binom{n-x+k}{k}q^{k}(1-q)^{n-x}$

Si no hay grandes objeciones por vuestra parte creo que esta era la solución que estaba buscando. Muchas gracias a owen88 por sus increíbles respuestas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X