スチューデントt分布をわかりやすく解説 — 定義・自由度・t検定・ロバスト統計まで

手元に10個しかデータがありません。この少ないデータから「母集団の平均はだいたいこれくらい」と言いたい。標準的な教科書は「平均 $\pm 1.96 \times$ 標準誤差で95%信頼区間」と教えますが、この $1.96$ という数字は、実は母分散 $\sigma^2$ を本当に知っているときにしか使えません。

ところが現実には、$\sigma^2$ は分からないことがほとんどです。私たちは手元のデータから標準偏差 $s$ を推定して代用します。すると「推定した $s$ がたまたま小さく出てしまった」ぶんだけ、区間が本来より狭くなってしまう。この推定の不確かさを正しく織り込むために生まれたのが、スチューデントのt分布 (Student’s t distribution) です。

t分布を理解すると、次のような場面が腑に落ちます。

  • 小標本での平均の検定・推定 — t検定や信頼区間は、まさにt分布が主役です。実験データやA/Bテストでサンプル数が少ないときに必須になります。
  • 裾の重い現象のモデリング — 金融のリターン分布や外れ値を含むデータは、正規分布では裾を捉えきれません。t分布はロバスト統計や頑健な回帰の土台になります。

本記事では、t分布を「なぜ必要か」という動機から出発し、定義・自由度・正規分布への収束・平均と分散・t検定と信頼区間での役割・多変量t分布・ロバスト統計への応用、そしてPython実装まで、図を交えて丁寧に解説します。

本記事の内容

  • t分布がなぜ必要か($\sigma$ 未知という問題)
  • 正規分布とカイ二乗分布からの構成と定義
  • 自由度・裾の重さ・正規分布への収束
  • t検定・信頼区間・多変量t分布・ロバスト統計への応用
  • Pythonによる可視化と数値実験

前提知識

この記事を読む前に、以下の記事を読んでおくと理解が深まります。

なぜt分布が必要なのか — σ未知という問題

正規分布に従う母集団から $n$ 個の標本 $x_1, \dots, x_n$ を取り出したとします。私たちが知りたいのは母平均 $\mu$ です。素朴に考えれば、標本平均

$$ \bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i $$

が $\mu$ の良い推定値になります。さらに、$\bar{x}$ を標準化した量

$$ Z = \frac{\bar{x} – \mu}{\sigma / \sqrt{n}} $$

は、母分散 $\sigma^2$ が既知であれば正確に標準正規分布 $N(0,1)$ に従うことが知られています。だから「平均 $\pm 1.96 \times \sigma/\sqrt{n}$」という有名な式が成り立つわけです。

問題は、現実には $\sigma$ を知らないことです。仕方なく、標本から計算した不偏標準偏差

$$ s = \sqrt{\frac{1}{n-1}\sum_{i=1}^{n}(x_i – \bar{x})^2} $$

で $\sigma$ を置き換えます。すると検定統計量は

$$ t = \frac{\bar{x} – \mu}{s / \sqrt{n}} $$

になります。ここで決定的に重要なのは、分母の $s$ も確率変数だということです。$Z$ では分母 $\sigma$ が定数でしたが、$t$ では分母が「たまたま小さく出たり大きく出たり」とゆらぎます。この分母のゆらぎが、$t$ の分布を正規分布から少しだけ広げ、裾を重くします。

直感的には、こう言えます。「$s$ がたまたま小さく出たとき、$t$ の絶対値は本来より大きくなる。標準正規だと思って $1.96$ を使うと、その分だけ外れ値的な $t$ を見逃してしまう」。t分布はこの過小評価を正しく補正する分布なのです。

https://disassemble-channel.com/wp-content/uploads/2026/06/figs01-40.png

上の図は、自由度 $\nu$ を変えたt分布と標準正規分布を重ねたものです。中央付近の山は正規分布より少し低く、その分だけ裾(両端)が持ち上がっているのが分かります。自由度 $\nu$ が小さい(=標本が少ない)ほどこの効果は顕著で、$\nu=1$ では裾が極端に重くなっています。逆に $\nu=30$ ではほとんど正規分布と区別がつきません。

このように、t分布は「分散を推定で代用したせいで生じる不確かさ」を吸収する分布です。では、この分布が数学的にどう構成されるのかを次に見ていきましょう。

t分布の定義 — 正規 ÷ カイ二乗の平方根

t分布の定義を理解する鍵は、「標準正規変数」を「正規化されたカイ二乗変数の平方根」で割るという構成にあります。これが先ほどの「分母にゆらぎがある」状況を、そのまま数式にしたものです。

互いに独立な確率変数 $Z$ と $V$ が

$$ Z \sim N(0, 1), \qquad V \sim \chi^2_{\nu} $$

に従うとき、

$$ \begin{equation} T = \frac{Z}{\sqrt{V / \nu}} \end{equation} $$

が従う分布を、自由度 $\nu$ のスチューデントt分布と呼びます。$Z$ が分子、$V$ が分母の「ゆらぎの源」です。$\sigma$ 未知の平均の検定で、分子が $(\bar{x}-\mu)/(\sigma/\sqrt{n})$、分母が $s/\sigma$(これがカイ二乗から来る)に対応します。

この構成から確率密度関数を導くと、次の形になります。

$$ \begin{equation} f(t) = \frac{\Gamma\!\left(\frac{\nu+1}{2}\right)}{\sqrt{\nu\pi}\,\Gamma\!\left(\frac{\nu}{2}\right)} \left(1 + \frac{t^2}{\nu}\right)^{-\frac{\nu+1}{2}} \end{equation} $$

ここで $\Gamma(\cdot)$ はガンマ関数です。この式の心臓部は $\left(1 + t^2/\nu\right)^{-(\nu+1)/2}$ の部分にあります。正規分布が $e^{-t^2/2}$ という指数関数で急速に減衰するのに対し、t分布はべき乗(多項式)的にしか減衰しません。$|t|$ が大きいところで $f(t) \sim |t|^{-(\nu+1)}$ となり、これが「裾が重い」ことの数学的な正体です。

密度関数の導出

(2)式が(1)式の構成から本当に出てくることを確認しておきましょう。ゴールは、$T = Z/\sqrt{V/\nu}$ の密度を求めることです。

まず $Z$ と $V$ は独立なので、同時密度は積で書けます。標準正規とカイ二乗の密度から

$$ f_{Z,V}(z, v) = \frac{1}{\sqrt{2\pi}}e^{-z^2/2} \cdot \frac{1}{2^{\nu/2}\Gamma(\nu/2)} v^{\nu/2 – 1} e^{-v/2} $$

です。ここで変数変換 $t = z/\sqrt{v/\nu}$、$w = v$ を考えます。$z = t\sqrt{w/\nu}$ なので、ヤコビアンは

$$ \left|\frac{\partial z}{\partial t}\right| = \sqrt{\frac{w}{\nu}} $$

となります($w$ は $v$ そのものなので変換に寄与しません)。これを代入すると、$(t, w)$ の同時密度は

$$ f_{T,W}(t, w) = \frac{1}{\sqrt{2\pi}}e^{-t^2 w/(2\nu)} \cdot \frac{1}{2^{\nu/2}\Gamma(\nu/2)} w^{\nu/2 – 1} e^{-w/2} \cdot \sqrt{\frac{w}{\nu}} $$

になります。$t$ の周辺密度を得るには $w$ で積分します。$w$ に関する項をまとめると

$$ f_T(t) = \frac{1}{\sqrt{2\pi\nu}\,2^{\nu/2}\Gamma(\nu/2)} \int_0^\infty w^{(\nu+1)/2 – 1} \exp\!\left[-\frac{w}{2}\left(1 + \frac{t^2}{\nu}\right)\right] dw $$

となります。この積分はガンマ積分の形 $\int_0^\infty w^{a-1}e^{-bw}dw = \Gamma(a)/b^a$ そのものです。$a = (\nu+1)/2$、$b = \frac{1}{2}(1 + t^2/\nu)$ を代入すると

$$ \int_0^\infty w^{(\nu+1)/2 – 1}\exp\!\left[-bw\right]dw = \frac{\Gamma\!\left(\frac{\nu+1}{2}\right)}{\left[\frac{1}{2}\left(1 + t^2/\nu\right)\right]^{(\nu+1)/2}} $$

これを代入して $2^{(\nu+1)/2}$ などの定数を整理すると、$2$ のべきがきれいに打ち消し合い、最終的に

$$ f_T(t) = \frac{\Gamma\!\left(\frac{\nu+1}{2}\right)}{\sqrt{\nu\pi}\,\Gamma\!\left(\frac{\nu}{2}\right)} \left(1 + \frac{t^2}{\nu}\right)^{-\frac{\nu+1}{2}} $$

が得られます。これは(2)式と一致します。「正規 ÷ カイ二乗の平方根」という単純なアイデアから、あの複雑そうな密度が自然に出てくるのです。

https://disassemble-channel.com/wp-content/uploads/2026/06/figs04-40.png

上の図は、この構成をモンテカルロで確認したものです。左が分子の標準正規 $Z$、中央が分母の元となる $\chi^2_4$、右がその商 $T = Z/\sqrt{V/4}$ のヒストグラムです。右パネルでヒストグラム(青の塗り)が理論曲線 $t_4$ にぴったり重なっており、$T$ が確かに自由度4のt分布に従うことが確認できます。中央のカイ二乗が「分母のゆらぎ」を生み出し、それが商の裾を持ち上げているわけです。

この構成を頭に入れると、次の「自由度」というパラメータの意味も見えやすくなります。自由度を変えると、分母のゆらぎの大きさが変わるのです。

自由度と裾の重さ

自由度 $\nu$ は、t分布の唯一の形状パラメータです。検定の文脈では「分散を推定するのに使える情報量」を表し、$n$ 個の標本から1標本検定をするなら $\nu = n – 1$ になります(平均を1つ推定したぶん自由度が1つ減る)。

$\nu$ が小さいほど、分母の $\sqrt{V/\nu}$ のゆらぎが大きくなります。$V \sim \chi^2_{\nu}$ は $\nu$ が小さいほど相対的なばらつきが大きいので、$V/\nu$ が $1$ から大きく外れることがしばしば起こります。$V/\nu$ がたまたま小さく出れば、$T = Z/\sqrt{V/\nu}$ は大きく跳ね上がる。これが裾の重さの源です。

「裾が重い」とは具体的に何を意味するのでしょうか。正規分布では $|x| > 3$ の確率は約 $0.27\%$ しかありませんが、t分布($\nu=3$)では同じ領域の確率がもっと大きくなります。つまり、t分布のもとでは極端な値(外れ値)が正規分布より高い頻度で出るということです。

https://disassemble-channel.com/wp-content/uploads/2026/06/figs02-40.png

上の図は、t分布($\nu=3$)と標準正規分布を、線形スケール(左)と対数スケール(右)で比較したものです。線形スケールの左図では中央付近はよく似て見えますが、右側の橙色で示した「裾の領域」では、t分布の方が密度が高く保たれています。対数スケールの右図を見ると差は歴然です。$x=5$ あたりで、t分布の密度は正規分布より数桁も大きいことが分かります。外れ値の起こりやすさが桁違いなのです。

この「裾の重さ」こそ、t分布を実用的に価値あるものにしています。一方で、$\nu$ を大きくしていくと分母のゆらぎは小さくなり、t分布は正規分布に近づいていきます。その収束の様子を次に確かめましょう。

正規分布への収束

自由度 $\nu$ を大きくしていくと、$V/\nu \to 1$(大数の法則)となり、分母のゆらぎが消えます。すると $T \to Z$、つまりt分布は標準正規分布に収束します。数式でも確認できます。密度の核 $\left(1 + t^2/\nu\right)^{-(\nu+1)/2}$ について、$\nu \to \infty$ の極限を取ります。

$\log$ を取ってから極限を考えるのが楽です。指数部分を取り出すと

$$ \log\left(1 + \frac{t^2}{\nu}\right)^{-\frac{\nu+1}{2}} = -\frac{\nu+1}{2}\log\!\left(1 + \frac{t^2}{\nu}\right) $$

ここで $\nu$ が大きいとき $\log(1 + t^2/\nu) \approx t^2/\nu – \frac{1}{2}(t^2/\nu)^2 + \cdots$ とテイラー展開できます。主要項だけ残すと

$$ -\frac{\nu+1}{2}\cdot \frac{t^2}{\nu} = -\frac{t^2}{2}\cdot\frac{\nu+1}{\nu} \xrightarrow{\nu\to\infty} -\frac{t^2}{2} $$

となります。$\nu \to \infty$ で $(\nu+1)/\nu \to 1$ を使いました。したがって核は $e^{-t^2/2}$ に収束します。前係数のガンマ関数の比もスターリングの公式で $1/\sqrt{2\pi}$ に収束することが示せます。結局

$$ f(t) \xrightarrow{\nu\to\infty} \frac{1}{\sqrt{2\pi}}e^{-t^2/2} $$

となり、標準正規分布の密度に一致します。

https://disassemble-channel.com/wp-content/uploads/2026/06/figs03-40.png

上の図は、$\nu = 1, 2, 5, 10, 30, 100$ のt分布と正規分布(黒破線)を重ねたものです。$\nu$ が増えるにつれて曲線が正規分布へ吸い寄せられていく様子がはっきり見えます。右上の拡大図は右裾を拡大したもので、$\nu=30$ や $\nu=100$ ではほぼ正規分布と一致する一方、$\nu=1,2$ では裾がまだ大きく持ち上がっています。実務では $\nu \gtrsim 30$ ならt分布と正規分布の違いはほぼ無視できる、というよく聞く目安はここから来ています。

収束の様子が分かったので、次はt分布の基本的な統計量である平均と分散を整理しましょう。これらには自由度に絡んだ面白い条件が現れます。

平均と分散

確率分布を学ぶときは、平均と分散を必ず押さえます。t分布の場合、これらは自由度 $\nu$ の値によって存在したりしなかったりします。これは裾が重いことの直接の帰結です。

平均は、$\nu > 1$ のとき

$$ \begin{equation} \mathbb{E}[T] = 0 \qquad (\nu > 1) \end{equation} $$

です。t分布は $t=0$ について左右対称なので、平均は $0$ になるのが自然です。ただし $\nu = 1$(コーシー分布)のときは、裾が重すぎて平均を定義する積分が発散し、平均が存在しません

分散は、$\nu > 2$ のとき

$$ \begin{equation} \mathbb{V}[T] = \frac{\nu}{\nu – 2} \qquad (\nu > 2) \end{equation} $$

です。注目すべきは、分散が常に $1$ より大きいことです。$\nu/(\nu-2) > 1$ なので、t分布は標準正規分布(分散 $1$)よりばらつきが大きい。これも裾の重さの表れです。そして $\nu \to \infty$ で $\nu/(\nu-2) \to 1$ となり、正規分布の分散に一致します。一方、$1 < \nu \le 2$ では分散が無限大に発散し、定義できません。

なぜ低い自由度で統計量が存在しなくなるのか。これは裾の減衰が遅すぎるからです。平均の積分 $\int t f(t)\,dt$ は被積分関数が $\sim t \cdot |t|^{-(\nu+1)} = |t|^{-\nu}$ のように振る舞い、$\nu \le 1$ では発散します。分散の積分は $\sim t^2 \cdot |t|^{-(\nu+1)} = |t|^{1-\nu}$ で、$\nu \le 2$ で発散します。「重い裾は高次のモーメントを壊す」という、裾の重い分布に共通する性質がここに現れています。

多変量に一般化すると、$D$ 次元の多変量t分布では平均ベクトルと共分散行列が次のようになります。

期待値($\nu > 1$)

$$ \begin{equation} \mathbb{E}[\bm{x}] = \bm{\mu} \end{equation} $$

共分散($\nu > 2$)

$$ \begin{equation} \mathbb{C}[\bm{x}] = \frac{\nu}{\nu-2}\,\Sigma \end{equation} $$

ここで注意したいのは、$\Sigma$ は共分散行列そのものではなくスケール行列だという点です。実際の共分散は $\frac{\nu}{\nu-2}\Sigma$ になります。$\nu \to \infty$ で共分散が $\Sigma$ に一致し、多変量正規分布の構造を回復します。

平均と分散の振る舞いが分かったところで、t分布が実際の統計手法でどう使われるかを見ていきましょう。まずは名前の由来でもあるt検定です。

t検定での役割

t分布が統計学に登場する最も有名な舞台がt検定です。t検定は「母平均がある値(例えば $\mu_0$)に等しいか」を、$\sigma$ が未知の状況で検定する手法です。

1標本t検定では、帰無仮説 $H_0: \mu = \mu_0$ のもとで、検定統計量

$$ t = \frac{\bar{x} – \mu_0}{s / \sqrt{n}} $$

を計算します。$H_0$ が正しければ、この $t$ は自由度 $\nu = n-1$ のt分布に従うことが、先ほどの「正規 ÷ カイ二乗の平方根」の構成から保証されます。分子 $\bar{x}-\mu_0$ が標準正規方向、分母 $s$ がカイ二乗方向の役割を果たすのです。

検定の手順はこうです。観測された $t$ が、t分布のもとで「めったに起こらない極端な値」かどうかを見ます。有意水準 $\alpha$(例えば $0.05$)を決め、t分布の両端 $\alpha/2$ ずつを棄却域とします。観測 $t$ がこの棄却域に落ちれば、「$H_0$ のもとでこんな値はまず出ない」と判断し、$H_0$ を棄却します。

https://disassemble-channel.com/wp-content/uploads/2026/06/figs05-40.png

上の図は、自由度 $\nu=9$($n=10$ に対応)・有意水準5%・両側検定の棄却域を示しています。両端の赤い領域が棄却域で、合わせて全体の5%を占めます。境界の臨界値は $\pm t_{0.025, 9} = \pm 2.262$ です。もし正規分布で考えていたら境界は $\pm 1.96$ でしたが、t分布では境界がより外側に来ることに注目してください。これは「$\sigma$ を推定で代用した不確かさを考慮して、より慎重に(保守的に)棄却する」ことを意味します。サンプルが少ないほどこの臨界値は大きくなり、安易に有意と判定しないよう守ってくれます。

t検定で使う臨界値は、信頼区間でもそのまま使われます。検定と区間推定は表裏一体だからです。次にこの関係を見ましょう。

信頼区間での使用

t分布は、母平均の信頼区間を作るときにも中心的な役割を果たします。$\sigma$ が既知なら $\bar{x} \pm z_{\alpha/2}\,\sigma/\sqrt{n}$ で済みますが、$\sigma$ 未知の現実では $s$ で代用し、係数も $z$ から $t$ に置き換える必要があります。

母平均 $\mu$ の $100(1-\alpha)\%$ 信頼区間は

$$ \begin{equation} \bar{x} \pm t_{\alpha/2,\, n-1}\,\frac{s}{\sqrt{n}} \end{equation} $$

で与えられます。導出は、$t = (\bar{x}-\mu)/(s/\sqrt{n})$ が自由度 $n-1$ のt分布に従うことから、$P(-t_{\alpha/2} \le t \le t_{\alpha/2}) = 1-\alpha$ を $\mu$ について解くだけです。$\mu$ について整理すると上式が出ます。

ポイントは、臨界値が $z_{\alpha/2}$ ではなく $t_{\alpha/2, n-1}$ になることです。t分布の臨界値は常に正規分布のそれより大きいので、信頼区間は少し広くなります。これは「分散を推定したぶん、私たちは平均についてより不確かだ」という事実を正直に反映した、広めの(保守的な)区間です。

https://disassemble-channel.com/wp-content/uploads/2026/06/figs06-39.png

上の図は、95%信頼区間に使う臨界値 $t_{0.025, \nu}$ を自由度 $\nu$ の関数としてプロットし、正規分布の係数 $z_{0.025} = 1.96$(赤破線)と比べたものです。$\nu = 1$ では $t$ 臨界値は $12.7$ と桁違いに大きく、サンプルが極端に少ないときの不確かさを劇的に反映しています。$\nu$ が増えると $t$ 臨界値は急速に $1.96$ へ近づき、$\nu \approx 30$ でほぼ一致します。小標本ほど信頼区間を広めに取らねばならないという直感が、この曲線にそのまま表れています。

ここで自然な疑問が湧きます。「正規分布の $1.96$ を使ってしまったら、実際どれくらいマズいのか?」。これを数値実験で確かめてみましょう。

小標本での重要性 — 数値実験

t分布の威力を体感するために、シミュレーションをしてみます。真の平均が $0$、分散が $1$ の正規母集団から $n$ 個の標本を取り、95%信頼区間を「t分布の臨界値」と「正規分布の臨界値」の両方で作ります。これを2万回繰り返し、それぞれの区間が真の平均 $0$ を含む割合(被覆確率)を測ります。正しい95%区間なら、被覆確率は $0.95$ になるはずです。

https://disassemble-channel.com/wp-content/uploads/2026/06/figs07-39.png

上の図がその結果です。t区間(青)は、$n=3$ という極端な小標本でも被覆確率がほぼ $0.95$(黒点線)に乗っています。一方、正規(z)区間(赤破線)は小標本で被覆確率が $0.95$ を大きく下回り、$n=3$ では約 $0.89$ しかありません。これは「95%信頼区間のつもりが実際は89%しか当たっていない」、つまり過信した狭すぎる区間になっていることを意味します。$n$ が増えると両者は一致しますが、小標本では明確にt区間が必要なのです。

この実験は、t分布が単なる理論的な美しさのためではなく、少ないデータで正しい結論を出すための実用的な道具であることを示しています。次に、t分布を多次元に拡張した多変量t分布を見ていきましょう。

多変量t分布

これまでは1次元のt分布を見てきましたが、実データはしばしば多次元です。複数の指標を同時にモデル化したい、しかも外れ値に強くしたい。そんなときに使うのが多変量t分布です。

$D$ 次元の多変量t分布は、多変量正規分布を「正規化されたカイ二乗の平方根」で割ることで構成されます。$\bm{z} \sim N(\bm{0}, \Sigma)$ と $V \sim \chi^2_{\nu}$ が独立なとき

$$ \bm{x} = \bm{\mu} + \frac{\bm{z}}{\sqrt{V/\nu}} $$

が従う分布です。密度関数は次の形になります。

$$ \begin{equation} \mathrm{St}(\bm{x} \mid \bm{\mu}, \Sigma, \nu) = \frac{\Gamma\!\left(\frac{\nu+D}{2}\right)}{\Gamma\!\left(\frac{\nu}{2}\right)(\nu\pi)^{D/2}|\Sigma|^{1/2}} \left[1 + \frac{1}{\nu}(\bm{x}-\bm{\mu})^\top \Sigma^{-1}(\bm{x}-\bm{\mu})\right]^{-\frac{\nu+D}{2}} \end{equation} $$

ここでパラメータは、位置を表す $\bm{\mu} \in \mathbb{R}^D$、スケール行列 $\Sigma \in \mathbb{R}^{D\times D}$(正定値対称)、自由度 $\nu \in \mathbb{R}^+$ です。$1$次元の場合の $\lambda$ を使った表現 $\mathrm{St}(x \mid \mu, \lambda, \nu)$ は、$\Sigma^{-1} = \lambda$(精度)とおいたものに対応します。$\nu \to \infty$ で、この密度は多変量正規分布 $N(\bm{\mu}, \Sigma)$ に収束します。

多変量正規分布の等高線が「楕円」であるのと同様に、多変量t分布の等高線も楕円ですが、裾がはるかに重い点が決定的に違います。

https://disassemble-channel.com/wp-content/uploads/2026/06/figs08-37.png

上の図は、同じスケール行列 $\Sigma$ を持つ多変量正規分布(左)と多変量t分布 $\nu=3$(右)から生成した2次元サンプルの散布図です。中央の濃い部分は似ていますが、t分布(右)の方が中心から大きく離れた点が明らかに多いことが分かります。これらの遠方の点が外れ値に相当します。多変量t分布は、正規分布では「ありえない」とされる外れ値を自然に許容するのです。

このように外れ値を織り込めることが、t分布をロバスト統計の主役にしています。最後にその応用を見ましょう。

ロバスト統計への応用

実データには、測定ミスや異常な事象による外れ値がつきものです。正規分布を仮定した最尤推定は、外れ値に極端に弱いという弱点があります。なぜなら正規分布の対数尤度は $-\frac{1}{2\sigma^2}(x-\mu)^2$ という二乗の項を含み、外れ値($|x-\mu|$ が大きい点)の影響が二乗で効いてしまうからです。たった1つの外れ値が、推定した平均や分散を大きく狂わせます。

ここでt分布の出番です。t分布を観測ノイズのモデルに使うと、対数尤度は二乗ではなく $-\frac{\nu+1}{2}\log(1 + d^2/\nu)$($d$ は標準化距離)という対数の項になります。$d$ が大きくなっても対数なので緩やかにしか増えず、外れ値の影響が自動的に抑えられます。これがロバスト推定の原理です。

具体的には、t分布の最尤推定は「重み付き平均」の形で書けます。各データ点 $x_i$ に重み

$$ w_i = \frac{\nu + 1}{\nu + d_i^2}, \qquad d_i^2 = \frac{(x_i – \mu)^2}{\sigma^2} $$

を与え、$\mu = \sum_i w_i x_i / \sum_i w_i$ で平均を更新します。$d_i$ が大きい点(外れ値)ほど重み $w_i$ が小さくなり、推定への寄与が自動で下がります。この更新を繰り返す反復重み付き最小二乗(IRLS)でロバストな推定値が得られます。

https://disassemble-channel.com/wp-content/uploads/2026/06/figs09-35.png

上の図は、$N(0,1)$ から生成したきれいなデータに4つの外れ値(橙の点線)を混ぜたものに、正規分布の最尤推定(赤)とt分布によるロバスト推定(青)を当てはめた結果です。正規最尤は外れ値に引っ張られ、$\sigma \approx 2.46$ と過大に膨らんでデータの本体を全く捉えられていません。一方、t分布のロバスト推定は $\mu \approx 0.02$、$\sigma \approx 1.00$ と、外れ値を無視して本来の分布をきれいに復元しています。t分布が外れ値に「引きずられにくい」性質が一目で分かります。

こうした性質は、ロバスト回帰、ロバストなクラスタリング(t分布混合モデル)、金融のリスク管理など幅広い分野で活用されています。データが本当にt分布に従っているかは、Q-Qプロットで診断できます。次の実装節で確かめましょう。

Pythonでの実装

ここまでの内容をPythonで確認します。SciPyの scipy.stats.t を使えば、t分布の密度・累積分布・分位点・乱数生成がすべて扱えます。まずは自由度を変えた形状の可視化です。

import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt

x = np.linspace(-5, 5, 600)
fig, ax = plt.subplots(figsize=(10, 5))

# n: 自由度(nu)
for nu in [1, 2, 5, 30]:
    ax.plot(x, stats.t.pdf(x, nu), lw=2, label=f"t分布 nu={nu}")
ax.plot(x, stats.norm.pdf(x), "--", lw=2, color="red", label="標準正規分布")

ax.set_xlabel("x")
ax.set_ylabel("確率密度 f(x)")
ax.legend()
ax.grid(True, alpha=0.3)
plt.show()

このグラフから、自由度 $\nu$ が小さいほど山が低く裾が重いこと、$\nu=30$ ではほぼ正規分布に重なることが読み取れます。t分布が正規分布を「裾方向に膨らませた」分布だという直感が視覚的に確認できます。

次に、「正規 ÷ カイ二乗の平方根」という構成を、乱数で直接検証します。定義通りに乱数を作り、それが理論密度に一致するかを見ます。

import numpy as np
import scipy.stats as stats

rng = np.random.default_rng(1)
nu = 4
n = 200000

Z = rng.standard_normal(n)          # 分子: 標準正規
V = rng.chisquare(nu, n)            # 分母の元: カイ二乗
T = Z / np.sqrt(V / nu)             # 商はt分布に従うはず

# 標本モーメントと理論値を比較
print(f"標本分散  : {T.var():.3f}")
print(f"理論分散  : {nu/(nu-2):.3f}")  # nu/(nu-2)

# コルモゴロフ-スミルノフ検定で t_nu に従うか確認
ks = stats.kstest(T, "t", args=(nu,))
print(f"KS統計量  : {ks.statistic:.4f}, p値: {ks.pvalue:.3f}")

このコードを実行すると、標本分散が理論値 $\nu/(\nu-2) = 4/2 = 2.000$ にほぼ一致し、KS検定のp値も大きく(棄却されず)、$T$ が確かに自由度4のt分布に従うことが数値的に確認できます。定義の構成が正しいことが、シミュレーションで裏付けられました。

続いて、t検定を実際に行ってみます。SciPyの ttest_1samp を使えば一発ですが、定義式から手計算した結果と一致することも確認します。

import numpy as np
import scipy.stats as stats

rng = np.random.default_rng(0)
# 真の平均が 0.5 のデータ(H0: mu=0 を検定)
data = rng.normal(loc=0.5, scale=1.0, size=12)
mu0 = 0.0

n = len(data)
xbar = data.mean()
s = data.std(ddof=1)
t_stat = (xbar - mu0) / (s / np.sqrt(n))   # 検定統計量
df = n - 1
p_value = 2 * (1 - stats.t.cdf(abs(t_stat), df))  # 両側p値

print(f"t統計量(手計算): {t_stat:.4f}, p値: {p_value:.4f}")

# SciPy の関数と照合
res = stats.ttest_1samp(data, mu0)
print(f"t統計量(SciPy) : {res.statistic:.4f}, p値: {res.pvalue:.4f}")

# 95%信頼区間(t臨界値を使う)
tcrit = stats.t.ppf(0.975, df)
ci = (xbar - tcrit * s / np.sqrt(n), xbar + tcrit * s / np.sqrt(n))
print(f"95%信頼区間: [{ci[0]:.3f}, {ci[1]:.3f}]")

このコードでは、手計算したt統計量・p値がSciPyの ttest_1samp の結果と完全に一致します。t検定が「定義式の通りに統計量を作り、t分布で確率を測る」だけのものだと実感できます。信頼区間も $t$ 臨界値 $t_{0.025, 11}$ を使って構成されており、区間が真の平均 $0.5$ を含むことが多いはずです。

最後に、データの裾の重さを診断するQ-Qプロットを描きます。Q-Qプロットは、標本の分位点と理論分布の分位点を散布図にしたもので、点が直線に乗れば「その分布に従う」と判断できます。

import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt

rng = np.random.default_rng(5)
sample = stats.t.rvs(4, size=2000, random_state=rng)  # 真の分布は t_4

fig, axes = plt.subplots(1, 2, figsize=(12, 5))

# 正規分布を仮定したQ-Qプロット
stats.probplot(sample, dist="norm", plot=axes[0])
axes[0].set_title("正規Q-Qプロット(両端が外れる)")

# t_4 を仮定したQ-Qプロット
osm, osr = stats.probplot(sample, dist=stats.t, sparams=(4,), fit=False)
axes[1].scatter(osm, osr, s=8, alpha=0.4, color="green")
lim = [min(osm.min(), osr.min()), max(osm.max(), osr.max())]
axes[1].plot(lim, lim, color="red", lw=2)
axes[1].set_title("t_4 Q-Qプロット(直線に乗る)")
axes[1].set_xlabel("理論分位点")
axes[1].set_ylabel("標本分位点")

plt.tight_layout()
plt.show()

このグラフから、データが正規分布だと仮定すると(左)、両端の点が直線から大きく外れることが分かります。これは「裾が理論より重い」という典型的なサインです。一方、正しい分布 $t_4$ を仮定すると(右)、点がきれいに直線に乗ります。Q-Qプロットは、データの裾の重さを視覚的に診断する強力なツールです。

https://disassemble-channel.com/wp-content/uploads/2026/06/figs10-35.png

上の図は実際に生成したQ-Qプロットです。左の正規Q-Qでは両端(裾)が直線から系統的に外れており、データが正規分布より裾が重いことを示しています。右の $t_4$ Q-Qでは点が対角線にぴたりと乗り、正しいモデルを当てれば直線になることが確認できます。実データを扱うときは、まずこの図で「正規分布で十分か、それともt分布が必要か」を見極めるとよいでしょう。

まとめ

本記事では、スチューデントのt分布を直感から応用まで一通り解説しました。

  • なぜ必要か — 母分散 $\sigma$ が未知のとき、標本標準偏差 $s$ で代用する不確かさを正しく織り込むために生まれた分布。
  • 構成と定義 — 標準正規 $Z$ を正規化されたカイ二乗の平方根で割った $T = Z/\sqrt{V/\nu}$ が従う分布。密度は $\left(1+t^2/\nu\right)^{-(\nu+1)/2}$ に比例し、べき乗的に減衰する。
  • 自由度と裾の重さ — $\nu$ が小さいほど裾が重く、外れ値が出やすい。$\nu\to\infty$ で正規分布に収束する。
  • 平均と分散 — 平均は $\nu>1$ で $0$、分散は $\nu>2$ で $\nu/(\nu-2)$。低い自由度では存在しないことがある。
  • 応用 — t検定・信頼区間(小標本で必須)、多変量t分布、外れ値に強いロバスト統計。

t分布は「正規分布の隣にいて、現実の不確かさと外れ値を引き受けてくれる分布」です。この理解は、ベイズ統計(ガウス平均の共役事前分布から周辺化するとt分布が現れる)、ロバスト回帰、混合モデルなど、より進んだトピックへの足がかりになります。

次のステップとして、以下の記事も参考にしてください。