1 votos

Cómo muestrear a partir de una distribución binomial "sesgada" (idealmente en python/numpy)

Necesito muestrear una variable a partir de una distribución que es como una distribución binomial excepto que con un "sesgo", no estoy seguro de cómo se puede llamar: $p(X=k)$ es proporcional a $k.B(n,p)(k)$ donde $B(n,p)$ es la distribución binomial.

¿Alguna idea sobre cómo hacerlo?

Estoy trabajando en python así que si hay alguna manera "directa" en numpy u otros paquetes que sería extra útil ...

5voto

AdamSane Puntos 1825

Dado que la esperanza de una binomial es sencillo :

$$\sum_{k=0}^n\binom{n}{k}kp^k(1-p)^{n-k}=np$$

tenemos que $P(X=k)$ puede escribirse de forma cerrada:

$$\binom{n}{k} \frac{k}{np} p^{k}(1-p)^{n-k}\,,$$

$$=\binom{n-1}{k-1}p^{k-1}(1-p)^{n-1-(k-1)}\,.$$

Esto es sólo un binomio desplazado.

Muestreo de una binomial $(n-1,p)$ y desplazarlo 1 hacia arriba parece resolver el problema.


He aquí un ejemplo, a modo de comprobación del álgebra:

n=10;p=.4
dbinom(0:(n-1),n-1,p)/dbinom(1:n,n,p)
 [1] 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.25 2.50

Sí, aumenta linealmente (de hecho, es $\frac{k}{np}$ como debe ser).

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