4 votos

Generar una muestra utilizando el método CDF inverso en python

¿Cómo puedo generar una muestra de 1000 elementos utilizando el método CDF inverso? Debería ser fácil pero soy un completo principiante. Sé lo que es matemáticamente pero no sé cómo implementarlo en Python

2voto

John Dallman Puntos 632

En primer lugar, genere una muestra en el intervalo $[0,1]$ . Utiliza la función random.rand() por ejemplo. En segundo lugar, transforme la muestra con ayuda de la función CDF inversa. Scipy proporciona estas funciones bajo la firma distribution.ppf(quantile, parameter1, parameter2,...) .

Ejemplo de distribución normal con $\mu=3$ y $\sigma=2$ :

import numpy as np
from scipy import stats

q=np.random.rand(1000)
result=stats.norm.ppf(q,loc=3,scale=2)

Si la distribución de la función CDF inversa no está implementada en Scipy tendrás que derivarla tú mismo o encontrarla en la literatura. Sympy puede ser útil con derivaciones más complejas.

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