Czy jest jakiś sposób, używając jakiegoś ustalonego pakietu Pythona (np. SciPy) do zdefiniowania mojej własnej funkcji gęstości prawdopodobieństwa (bez żadnych wcześniejszych danych, po prostu ), więc mogę następnie wykonać z nim obliczenia (takie jak uzyskanie wariancja ciągłej zmiennej losowej)? Oczywiście mógłbym wziąć, powiedzmy, SymPy lub Sage, stworzyć funkcję symboliczną i wykonać operacje, ale zastanawiam się, czy zamiast wykonywać całą tę pracę sam, mogę skorzystać z już zaimplementowanego pakietu.
python
statistics
probability
astrojuanlu
źródło
źródło
Odpowiedzi:
Musisz podklasować klasę rv_continuous w scipy.stats
teraz my_cv jest ciągłą zmienną losową o podanym pliku PDF i zakresie [0,1]
Należy zauważyć, że w tym przykładzie
my_pdf
imy_cv
są dowolnymi nazwami (to mogło być cokolwiek), ale_pdf
to nie arbitralne; i_cdf
są to metody,st.rv_continuous
z których jedna musi zostać nadpisana, aby podklasa działała.źródło
3*x**2
tutaj), lub wynikowa zmienna losowa daje nieprawidłowe wyniki (możeszmy_cv.median()
na przykład sprawdzić ). Naprawiłem kod.x
[0, 1]. możesz wyjaśnić?my_cv.rvs()
(co może wymagaćsize
argumentu, aby uzyskać wiele próbek za jednym razem). Tak sądzę z dokumentacji ( docs.scipy.org/doc/scipy/reference/generated/... ).Powinieneś sprawdzić sympy.stats. Zapewnia interfejs do obsługi zmiennych losowych. Poniższy przykład przedstawia losową zmienną
X
zdefiniowaną w interwale jednostkowym o gęstości2x
Jeśli jesteś zainteresowany, ta abstrakcja poradzi sobie z dość złożonymi manipulacjami.
źródło