こんにちは。今日は、統計学に関する内容です!
最近、統計検定の勉強をしているのですが、その中でいろいろな統計分布の種類があることを知ったは良いものの、違いが直感的によく分からず、実務に活かせる気がしなかったので、実際に絵や式を書いてみながら自分の頭を整理しておきたいと思います。
今回はその中でもt分布について整理してみたいと思います。
なお、各内容の詳細については、他のWebサイトに分かりやすい説明があれば、そちらを引用させていただき、紹介させていただいております。
それでは早速参ります!
Contents
t分布の理論
概要
t分布もカイ二乗分布と同様に、標本分布の1つで、推論統計学でよく利用される分布です。標本分布とは、ある統計量に対する母集団自体の分布ではなく、その標本における確率分布を表ています。
独立な2つの確率変数ZとWがあり、Zが標準正規分布N(0,1)、Wが自由度mのχ二乗分布に従うとき、
統計量 $$ t = \frac{Z}{\sqrt{W/m}}$$ が従う分布を、自由度mのt分布と呼びます。 t分布は、正規分布する母集団の平均と分散が未知で標本サイズが小さい場合に平均を推定する問題に利用される他、 2つの平均値の差の統計的有意性を検討するt検定で利用されます。確率関数(確率密度関数)
$$ f(x) = \frac{\Gamma \left( \frac{m_1 + m_2}{2}\right)} {\sqrt{m\pi} \Gamma \left( \frac{m}{2} \right) \left( 1+ \frac{x^2}{m} \right)^{\frac{m+1}{2}}} \hspace{20px} (-\infty上で紹介した自由度mを用いて、期待値は以下のように表現されます。
$$ E[t]=0 (m>1のときのみ存在)$$分散
こちらもmを用いて以下のように表現されます。
$$ V[t] = m/(m-2) (m>2のときのみ存在)$$Pythonによる実装サンプル
Scipyを使って簡単に実装する
t分布は、Scipyが提供するメソッドで簡単に再現できてしまいます!
文法については以下から確認できます。
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.t.html
以下は、自由度がそれぞれ3、5、10のt分布の形状を再現するコードになります。
from scipy.stats import t
## Parameter: Degree of Freedom
n1 = 3
n2 = 5
n3 = 10
mean, var, skew, kurt = t.stats(n1, moments='mvsk')
#Mean
print("Mean:", mean)
#Var
print("Var:", var)
#Skew
print("Skew:", skew)
#Kurt
print("Kurt:", kurt)
x = np.linspace(t.ppf(0.01, n1), t.ppf(0.99, n1), 100)
plt.plot(x, t.pdf(x, n1),lw=5, alpha=0.6, label='t pdf')
x = np.linspace(t.ppf(0.01, n2), t.ppf(0.99, n2), 100)
plt.plot(x, t.pdf(x, n2),lw=5, alpha=0.6, label='t pdf')
x = np.linspace(t.ppf(0.01, n3), t.ppf(0.99, n3), 100)
plt.plot(x, t.pdf(x, n3),lw=5, alpha=0.6, label='t pdf')
plt.legend()
一から実装する
(確認中)
確率分布についてもっと勉強するなら・・・
確率分布は、統計検定2級の出題範囲となっています。理論的な部分をもっと勉強されたい方は、以下のテキストを読まれると、体系的に学ぶことができます。
私もこちらで勉強しています。統計検定の公式テキストではありますが、比較的に分かりやすく解説されており、何より知識が体系的に整理されているので全体像を掴んで、理論の概要を理解するには良いと思います。
このテキストで分かりづらいと思った部分は、部分毎にネットで詳しく解説された記事を探したり、Udemyなどのオンラインコンテンツを利用していけば十分に理解が深まると思います。
Udemy講座
以上、確率分布について勉強したり実験してみたことをまとめた記事でした。
最後までご覧いただきありがとうございました!