Existe uma maneira de usar algum pacote Python estabelecido (por exemplo, SciPy) para definir minha própria função de densidade de probabilidade (sem dados anteriores, apenas ), para que eu possa fazer cálculos com ele (como obter a variância da variável aleatória contínua)? É claro que eu poderia, digamos, SymPy ou Sage, criar uma função simbólica e executar as operações, mas estou pensando se, em vez de fazer todo esse trabalho, posso usar um pacote já implementado.
python
statistics
probability
astrojuanlu
fonte
fonte
Respostas:
Você tem que subclasse o rv_continuous classe em scipy.stats
agora my_cv é uma variável aleatória contínua com o PDF fornecido e o intervalo [0,1]
Note-se que, neste exemplo,
my_pdf
emy_cv
são nomes arbitrários (que poderia ter sido qualquer coisa), mas_pdf
é não arbitrária; e_cdf
são métodos emst.rv_continuous
um dos quais deve ser substituído para que a subclasse funcione.fonte
3*x**2
, aqui) ou a variável aleatória resultante produz resultados incorretos (você pode verificarmy_cv.median()
, por exemplo). Eu consertei o código.x
[0, 1]. você pode esclarecer?my_cv.rvs()
(o que pode levar umsize
argumento, para obter várias amostras de uma só vez). Acho que é isso da documentação ( docs.scipy.org/doc/scipy/reference/generated/… ).Você deve verificar o sympy.stats. Ele fornece uma interface para lidar com variáveis aleatórias. O exemplo a seguir fornece uma variável aleatória
X
definida no intervalo da unidade com densidade2x
Se você estiver interessado, essa abstração pode lidar com algumas manipulações bastante complexas.
fonte