t分布とF分布の期待値と分散

t分布

$${\cal{N}(0,1)}$$に従う確率変数$${z}$$と、自由度$${p}$$の$${\chi}$$二乗分布に従う確率変数$${y}$$の比、$${x=\displaystyle{\frac{z}{\sqrt{\frac{y}{p}}}}}$$は$${t}$$分布に従い、確率密度関数は、
$${f(x)=\displaystyle{\frac{1}{B(\frac{p}{2},\frac{1}{2})\sqrt{p} }\Big(1+\frac{x^2}{p}\Big)^{-\frac{p+1}{2}} }}$$
で与えられる。
$${p=1}$$の時、$${f(x)=\displaystyle{\frac{1}{B(\frac{1}{2},\frac{1}{2})}\frac{1}{1+x^2}=\frac{1}{\pi}\frac{1}{1+x^2} }}$$より、コーシー分布になる。
$${p\to\infty}$$の時、これは標準正規分布に近づく。
期待値が存在するのは、$${p\geq 2}$$の時で、被積分関数が奇関数であるからゼロである。
$${E[x]=\displaystyle{\frac{1}{B(\frac{p}{2},\frac{1}{2})\sqrt{p} }\int ^\infty_{-\infty}x(1+\frac{x^2}{p})^{-\frac{p+1}{2}} dx=0 }}$$
分散が存在するのは、$${p\geq 3}$$の時で、
$${E[x^2]=\displaystyle{\frac{1}{B(\frac{p}{2},\frac{1}{2})\sqrt{p} }\int ^\infty_{-\infty}x^2(1+\frac{x^2}{p})^{-\frac{p+1}{2}} dx }}$$
$${\displaystyle{=\frac{2}{B(\frac{p}{2},\frac{1}{2})\sqrt{p} }\int ^\infty_0x^2(1+\frac{x^2}{p})^{-\frac{p+1}{2}} }}$$

$${\displaystyle{\frac{1}{t}=1+\frac{x^2}{p}}}$$と置くと、
$${\displaystyle{-\frac{dt}{t^2}=2xdx,\ x=p^{\frac{1}{2}}t^{-\frac{1}{2}}(1-t)^{\frac{1}{2}} , \ dx=-\frac{1}{2}p^{\frac{1}{2}}t^{-\frac{3}{2}}(1-t)^{-\frac{1}{2}},\ \lim_{x\to\infty}t=0}}$$、$${x=0}$$で$${t=1}$$より、
$${\displaystyle{E[x^2]=\frac{1}{B(\frac{p}{2},\frac{1}{2})\sqrt{p} }\cdot p^{\frac{3}{2}} \int^1_0(1-t)^{\frac{1}{2}}t^{\frac{p}{2}-2}dt =\frac{p}{B(\frac{p}{2},\frac{1}{2})} B(\frac{p}{2}-1,\frac{3}{2})}}$$
ここで、
$${\displaystyle{B(\alpha,\beta)=\frac{\Gamma(\alpha)\Gamma(\beta)}{\Gamma(\alpha+\beta)}}}$$と、$${\Gamma(\alpha+1)=\alpha\Gamma(\alpha)}$$を使って、

$${\displaystyle{E[x^2]=\frac{p\cdot \Gamma(\frac{p}{2}-1)\Gamma(\frac{3}{2})}{\Gamma(\frac{p}{2}+1)} \cdot \frac{\Gamma(\frac{p}{2}+1)}{\Gamma(\frac{p}{2})\Gamma(\frac{1}{2})}=\frac{p\cdot \Gamma(\frac{p}{2}-1)\Gamma(\frac{1}{2})\cdot\frac{1}{2}} {(\frac{p}{2}-1)\Gamma(\frac{p}{2}-1)\Gamma(\frac{1}{2})}}}$$
$${\displaystyle{=\frac{p}{p-2}}}$$
よって、分散は$${V[x]=\frac{p}{p-2}, p\geq 3}$$となる。
t分布に従う乱数は、pythonでnumpy.randomのstandard_tを用いて実装できる。

df=1
st = np.random.standard_t(df, size=randnum)
plt.hist(st[(-5<st) & (st<5)], 'auto',label=f'p={df}',alpha=0.6)
df=5
st = np.random.standard_t(df, size=randnum)
plt.hist(st[(-5<st) & (st<5)], 'auto',label=f'p={df}',alpha=0.6)
df=100
st = np.random.standard_t(df, size=randnum)
plt.hist(st[(-5<st) & (st<5)], 'auto',label=f'p={df}',alpha=0.6)
plt.title('Standard t distribution')
plt.ylabel('Probability')
plt.xlabel('Data')
plt.legend();

F分布

自由度がそれぞれ$${p,\ p'}$$の$${\chi}$$二乗分布に従う確率変数$${y,\ y'}$$の比$${\displaystyle{x=\frac{y}{p}\cdot\frac{p'}{y'}}}$$はF分布に従い、$${F(p,p')}$$と表す。
この確率密度関数は
$${f(x)=\displaystyle{\frac{1}{B(\frac{p}{2},\frac{p'}{2})}\Big(\frac{p}{p'}\Big)^{\frac{p}{2}}x^{\frac{p}{2}-1}\Big(1+\frac{p}{p'}x\Big)^{-\frac{p+p'}{2}}}}$$
で与えられる。
この期待値は$${p'\geq3}$$の時に存在し、
$${E[x]=\displaystyle{\frac{p'}{p'-2}}}$$
分散は、$${p'\geq5}$$の時に存在し、
$${V[x]=\displaystyle{\frac{2p'^2(p+p'-2)}{p(p'-2)^2(p'-4)}}}$$
となる。
F分布に従う乱数は、pythonでnumpy.randomのfで以下のように実装される。

dfnum = 1
dfden = 48
f = rand.f(dfnum, dfden, randnum)
plt.hist(f[f<8], 'auto',label=f'p={dfnum}',alpha=0.6)
dfnum = 3 
f= rand.f(dfnum, dfden, randnum)
plt.hist(f[f<8], 'auto',label=f'p={dfnum}',alpha=0.6)
plt.title(f"F distribution with p'={dfden}")
plt.ylabel('Probability')
plt.xlabel('Data')
plt.legend();

この記事が気に入ったらサポートをしてみませんか?