In [1]:
%matplotlib inline
from scipy import stats
from matplotlib import pyplot as pl
import numpy as np

Typová rozdělení

Diskrétní

Binomické

výsledky opakovaných pokusů s náhodným jevem, který má 2 možné výsledky

\begin{equation} \pi_n(r)= \frac{n!}{p! (n-p)!} p^r (1-p)^{n-r} \end{equation}

střední hodnota : $np$
disperze : $np(1-p)$
asymetrie : $\frac{1-2p}{\sqrt{np(1-p)}}$
excess : $\frac{1-6p(1-p)}{np(1-p)}$

In [14]:
n=20
ix=np.r_[:n+1]
probs=[0.2,0.4,0.7,0.9]
cols=list('mrgb')
for p in probs:
    pl.bar(ix-0.5,stats.binom(n,p).pmf(ix),fc=cols.pop(),alpha=0.3,label="p=%.1f"%p)
pl.xlim(-1,n+1)
pl.ylim(0,0.5)
pl.grid()
pl.legend(loc=2)
pl.title("binomicke rozdeleni")
Out[14]:
<matplotlib.text.Text at 0x7ff0d82e1a90>

Poissonovo

\begin{equation} \pi_n(r)= \frac{1}{r!} \mu^r \mathrm{e}^{-\mu} \label{eq:pois} \end{equation}

střední hodnota : $\mu$
disperze : $\mu$
asymetrie : $1/\sqrt{\mu}$
excess : $1/\mu$

limitně pro $\mu \to \infty$ se blíží $N(\mu,\sqrt{\mu})$

In [22]:
n=20
ix=np.r_[:n+1]
probs=[1.,3.,6.,12.]
cols=list('mrgb')
for p in probs:
    fc=cols.pop()
    pl.bar(ix-0.5,stats.poisson(p).pmf(ix),fc=fc,alpha=0.2)
    pl.plot(ix,stats.poisson(p).pmf(ix),fc,label="p=%.1f"%p)
pl.xlim(-1,n+1)
#pl.ylim(0,0.5)
pl.grid()
pl.legend(loc=1)
pl.title("Poissonovo rozdeleni")
Out[22]:
<matplotlib.text.Text at 0x7ff0d6e98990>

Spojité

rovnoměrné rozdělení

$$ f(x)=1/(b-a)\ \ldots\ x \in < a,b >$$

střední hodnota : $(a+b)/2$
disperze : $(a-b)^2/12$
asymetrie : 0
excess : $-1.2$

exponenciální rozdělení

$$ f(x)=\exp(\frac{-x}{\mu})/\mu $$

střední hodnota : $\mu$
disperze : $\mu^2$
asymetrie : 2
excess : 6

charakter. funkce $1/(1-\i\mu t)$

Breit-Wigner (Cauchy, Lorentz)

$$ f(x)=\frac{g}{\pi} \frac{1}{g^2+(x-\mu)^2} $$

střední hodnota : nedef. ($\infty$ - $\infty$), lze ji zavést na základě symetrie podle $\mu$
disperze : $\infty$ (parametr $g$ definuje pološířku - HWHM)

charakter. funkce $\exp^{-|t|}$

generování: $\tan \pi(r-1/2)$ pro r s rovnom. rozdělením v (0,1)

In [31]:
x=np.r_[-1:3.5:0.02]
cen=1.2
pl.plot(x,1/np.pi/(1+(x-cen)**2),label="g=1.0")
pl.plot([cen-1,cen+1],[1/np.pi/2.]*2,'b--')
pl.plot(x,0.5/np.pi/(0.25+(x-cen)**2),label="g=0.5")
pl.plot([cen-.5,cen+.5],[1/np.pi]*2,'g--')
pl.grid()
pl.title("Lorentzian")
pl.legend()
Out[31]:
<matplotlib.legend.Legend at 0x7ff0d653d350>

beta rozdělení (pro interval 0<x<1)

$$ f(x)=\frac{\Gamma(m+n)}{\Gamma(m)\Gamma(n)} x^{m-1} (1-x)^{n-1} $$

střední hodnota : $m/(m+n)$
disperze : $\frac{mn}{(m+n)^2 (m+n+1)}$
asymetrie : $\frac{2(n-m)\sqrt{m+n+1}}{\sqrt{mn} (m+n+2)}$
excess : $\frac{3(m+n+1)[2(m+n)^2+mn(m+n-6)]}{mn (m+n+2)(m+n+3)}-3$

In [34]:
x=np.r_[0:1.01:0.02]
m,n=2,5
for n in [2,5,10]:
    pl.plot(x,stats.beta(m,n).pdf(x),label="n=%i"%n)
pl.grid()
pl.title("Beta (m=%i)"%m)
pl.legend()
Out[34]:
<matplotlib.legend.Legend at 0x7ff0d6568490>

gama rozdělení (pro interval x>0)

$$ f(x)=\frac{\mu^\nu}{\Gamma(\nu)} x^{\nu-1} \exp(-x/\mu) $$

střední hodnota : $\nu/\mu$
disperze : $\nu/\mu^2$
asymetrie : $2/\sqrt{\nu}$
excess : $6/\nu$

generování (pro $\mu=1$): vezmeme n+1 NP $r_i$ s rovnom. rozdělením v (0,1) a spočteme $x=- \ln \prod^{n+1}{r_i}$

In [48]:
x=np.r_[0:10.01:0.05]
mu,nu=1.,.5
for nu in [1,2,5]:
    pl.plot(x,stats.gamma(nu,scale=1/mu).pdf(x),label="nu=%.1f"%nu)
pl.grid()
pl.title("Gamma (mu=%.1f)"%mu)
pl.legend()
Out[48]:
<matplotlib.legend.Legend at 0x7ff0d5867f90>

$\chi^2$ rozdělení (Pearson)

rozdělení součtu čtverců $n$ NP s normálním rozdělením N(0,1)

$$ f_n(x) = \frac{x^{n/2-1} \exp{(-x/2)}}{2\Gamma(n/2)} $$

střední hodnota : $n$
disperze : $2n$
asymetrie : $\sqrt{8/n}$
excess : $12/n$

charakter. funkce $(1-2 \i t)^{-n/2}$

limitně pro $n \to \infty$ se blíží $N(n,2n)$

In [50]:
x=np.r_[0:30:0.2]
mu,nu=1.,.5
for n in [2,5,15]:
    pl.plot(x,stats.chi2(n).pdf(x),label="n=%i"%n)
pl.grid()
pl.title("Chi square")
pl.legend()
Out[50]:
<matplotlib.legend.Legend at 0x7ff0d577b650>

Studentovo t-rozdělení (Gosset 1908)

rozdělení podílu nezávislých NP s normálním a $\chi^2_n$ rozdělením

$$ f_n(x) = \frac{\Gamma((n+1)/2)}{\sqrt{n\pi}\Gamma(n/2)} \left(1+\frac{t^2}{n}\right)^{-(n+1)/2}$$

střední hodnota : 0
disperze : $n/(n-2)$
asymetrie : 0
excess : $6/(n-4)$ pro n>4

generování: dvě NP $r_1, r_2$ s rovnom. rozdělením v (0,1) , pokud $r_1<0.5$, $t=1/(4r_1-1)$, $v=r_2/t^2$, jinak $t=4r_1-3$,$v=r_2$. Hodnotu $x=t$ akceptujeme, pokud $v<1-|t|/2$ nebo $v<(1+t^2/n)^{-(n+1)/2}$

Fisher-Snedecorovo rozdělení

má podíl dvou náhodných proměnných s rozděleními $\chi^2(n)/n$ a $\chi^2(m)/m$

$$ f_{(n,m)}(x) = \left(\frac{m}{n}\right)^{m/2} \frac{\Gamma((m+n)/2)}{\Gamma(m/2) \Gamma(n/2)}\quad x^{(n-2)/2} \left(1-\frac{m}{n} x\right)^{-(m+n)/2} $$

střední hodnota : $m/(m-2)$
disperze : $\frac{2n^2(m+n-2)}{m(n-2)^2(n-4)}$

pro m=1 se redukuje na t-rozdělení

$1/2 \log F$ má pro velká $m,n$ přibližně rozdělení $N([1/f_2- 1/f_1]/2,\ [1/f_2+1/f_1]/2)$, kde $f_1=m-1, f_2=n-1$

In [62]:
x=np.r_[0.01:5:0.05]
n,m=10,10
pl.plot(x,stats.f(m,n).pdf(x),label="[10,10]")
pl.plot(x,stats.f(m,n).pdf(1/x),label="[10,10] 1/x")
pl.plot(x,stats.f(3,m).pdf(x*3/10),label="[3,10] 3x/10")
pl.grid()
pl.title("Fisher-Snedecor")
pl.legend()
q1,q2=stats.f(m,n).ppf([0.025,0.975])
pl.axvline(q1,ls="--")
pl.axvline(q2,ls="--")
Out[62]:
<matplotlib.lines.Line2D at 0x7ff0d4ecd1d0>