¿Hay alguna manera de usar algún paquete Python establecido (por ejemplo, SciPy) para definir mi propia función de densidad de probabilidad (sin datos previos, solo ), para que luego pueda hacer cálculos con ella (como obtener la varianza de la variable aleatoria continua) Por supuesto, podría tomar, por ejemplo, SymPy o Sage, crear una función simbólica y hacer las operaciones, pero me pregunto si en lugar de hacer todo este trabajo yo mismo puedo hacer uso de un paquete ya implementado.
python
statistics
probability
astrojuanlu
fuente
fuente
Respuestas:
Debe subclasificar la clase rv_continuous en scipy.stats
ahora my_cv es una variable aleatoria continua con el PDF y rango dados [0,1]
Tenga en cuenta que en este ejemplo
my_pdf
ymy_cv
son nombres arbitrarios (que podrían haber sido cualquier cosa), pero no_pdf
es arbitrario; y son métodos en uno de los cuales deben sobrescribirse para que la subclase funcione._cdf
st.rv_continuous
fuente
3*x**2
, aquí), o la variable aleatoria resultante produce resultados incorrectos (puede verificarmy_cv.median()
, por ejemplo). Arreglé el código.x
[0, 1]. puedes aclarar?my_cv.rvs()
(que puede tomar unsize
argumento, para obtener múltiples muestras de una vez). Esto es lo que supongo de la documentación ( docs.scipy.org/doc/scipy/reference/generated/… ).Deberías consultar sympy.stats. Proporciona una interfaz para manejar variables aleatorias. El siguiente ejemplo proporciona una variable aleatoria
X
definida en el intervalo unitario con densidad2x
Si está interesado, esta abstracción puede manejar algunas manipulaciones bastante complejas.
fuente