Jak wyznaczyć prawdopodobieństwo otrzymania zadanych wartości zmiennej losowej?

w przypadku ciągłej zmiennej losowej

Każda ciągła zmienna losowe \(X\) zdefiniowana jest przez funkcję zwaną gęstością prawdopodobieństwa \(\rho_X(x)\), spełniającą warunek normalizacji $$\int_{-\infty}^{\infty} \rho_X(x) dx = 1$$ z którą powiązana jest dystrybuanta $$F_X(x) = \int_{-\infty}^{x} \rho_X(s) ds$$

Prawdopodobieństwo, że ciągła zmienna losowa \(X\) przyjmie określoną wartość \(x \in \mathbb{R}\), wynosi zawsze 0. Możemy natomiast obliczyć prawdopodobieństwo, że wartość zmiennej \(X\) znajdzie się w określonym przedziale: $$P(X \le x) = \int_{-\infty}^{x} \rho_X(s) ds = F_X(x)$$ $$P(X \gt x) = 1 - P(X \lt x) = 1 - F_X(x)$$ $$P(a \lt X \le b) = \int_{a}^{b} \rho_X(s) ds = F_X(b) - F_X(a)$$

Moduł scipy.stats udostępnia gęstości prawdopodobieństwa i dystrybuanty dla wielu popularnych rozkładów. Wywołanie ma postać:

import scipy.stats

# gęstość prawdopodobieństwa w punkcie x
rho_x = scipy.stats.SymbolRozkładu(ParametryRozkładu).pdf(x)

# dystrybuanta w punkcie x
F_x = scipy.stats.SymbolRozkładu(ParametryRozkładu).cdf(x)

Różne warianty wywołania są analogiczne do tych przedstawionych w rozdziale o generowaniu zmiennych. Przykład użycia:

import scipy.stats

# prawdopodobieństwo, że zmienna o rozkładzie „chi kwadrat”
# o 15 stopniach swobody przyjmie wartość mniejszą lub równą 12.4
p_nie_wiecej_niz_12_4 = scipy.stats.chi2(15).cdf(12.4)

# prawdopodobieństwo, że zmienna o rozkładzie t-Studenta
# o 5 stopniach swobody przyjmie wartość większą niż 3.1
p_wiecej_niz_3_1 = 1 - scipy.stats.t(5).cdf(3.1)

# prawdopodobieństwo, że zmienna o rozkładzie normalnym
# o wartości oczekiwanej 200 i odchyleniu standardowym 15
# przyjmie wartości pomiędzy 150 a 180
rozklad = scipy.stats(200, 15)
p_pomiedzy = rozklad.cdf(180) - rozklad.cdf(150)
autor: Piotr Różański, ostatnia modyfikacja: 10.04.2016