スチューデント t分布 (Student’s t distribution, t分布) は、統計学や機械学習の分野で非常に登場する確率分布です。
よくガウス分布の平均の共役事前分布などの文脈で登場する確率分布ですが、式の難解さから、少し遠ざけている人もいるのではないでしょうか。
今回は、統計学の分野で頻出のスチューデントt分布について深掘って解説をしていきます。
- スチューデントt分布について解説
- スチューデントt分布を可視化
- スチューデントt分布の基本的な統計量
スチューデントt分布の定義
スチューデントt分布の定義をまず最初に示します。この定義は、一般的な多次元のスチューデントのt分布の定義式になります。
\begin{equation}
\begin{split}
St(\bm{x} | \bm{\mu}, \nu, \Sigma) =
\frac{1}{\sqrt{\pi^{D} \nu^D | \Sigma|}} \frac{\Gamma (\frac{\nu + D}{2})}{\Gamma(\frac{\nu}{D})}
\biggr [
1 + \frac{1}{\nu}(\bm{x} - \bm{\mu})^T\Sigma^{-1}(\bm{x} - \bm{\mu})
\biggl ]^{- \frac{\nu + D}{2}}
\end{split}
\end{equation}ここで、パラメータは $\bm{\mu} \in \mathbb{R}^{D}$、$\nu \in \mathbb{R}^{+}$、$\sigma \in \mathbb{R}^{D \times D}$の正定値対称行列です。
1次元のスチューデントt分布の定義
(1)式は、D次元の一般的なものでした。統計学や機械学習においては、1次元のスチューデントt分布も頻繁に登場するので、その定義をここに示します。
\begin{equation}
\begin{split}
St(x | \mu, \lambda, \nu) =
\frac{\sqrt{\lambda}}
{\sqrt{\pi \nu}} \frac{\Gamma (\frac{\nu + 1}{2})}{\Gamma(\frac{\nu}{2})}
\biggr \{
1 + \frac{\lambda}{\nu}(x - \mu)^2
\biggl \}
^{- \frac{\nu + 1}{2}}
\end{split}
\end{equation}スチューデントのt分布のパラメータは、$\mu, \lambda, \nu$です。
スチューデントt分布の可視化
多次元のスチューデントt分布の可視化はなかなか大変なので、1次元のt分布を可視化します。
可視化にはPythonとscipyを用います。
import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(10,3), dpi=100)
x = np.linspace(-3, 3, 100)
params = [0.1, 0.5, 1, 5, 10, 100]
# n: 自由度
for index, n in enumerate(params):
data = stats.t.pdf(x, n)
ax.plot(x, data, label=f"n={n}")
ax.legend()コード中のnは自由度です。可視化するとこのようになります。

正規分布と非常に形が似ていることがわかります。スチューデントのt分布の場合は、自由度パラメータ$n$が大きくなるほど、山の尖り具合が大きくなっています。
スチューデントt分布の基本的な統計量
確率分布を勉強する際は、基本的な統計量である期待値や分散などを抑えるようにしましょう。
まずこれらの2つの統計量を下記に示します。
期待値
\begin{equation}
\mathbb{E}[\bm{x}] = \bm{\mu}
\end{equation}共分散
\begin{equation}
\mathbb{C}[\bm{x}] = \frac{\nu}{\nu-2} \Sigma
\end{equation}