こんにちは!
消費財メーカーでデジタルマーケとかデータサイエンスみたいなことをやっているウマたん(@statistics1012)です。
ある事象の仮説を数理的に確かめるために行われる統計的検定。
統計学の基本であり、様々なところで用いられている現場でも有用な手法です。
そんな統計的検定にはいくつか種類がありますが、この記事ではその中でも最も基本的な検定であるt検定について見ていきたいと思います。
統計的検定については以下の記事をご覧ください!

また検定全般に関して、以下の動画でも分かりやすく解説しています!
理論を見ていき、最終的にはRで実装を行っていきます。
t検定とは

t検定とは、どのような手法なのでしょうか?t検定とは「平均」の検定とよく言われます。
・得られたサンプルデータが想定の値よりズレているのか
・AとBのサンプル群の母平均に差はあるのか
などといったことがt検定を行うことで分かります。ちなみにF検定は「分散の検定」、カイ二乗検定は「分布の検定」と思っていただけると分かりやすいと思います。
正直、t検定自体の実装は非常に簡単なのでイメージさえ持っていれば数式を覚える必要はありません。
t検定は平均に差が生じているか確かめるもの。しかし、何を持って差があるか判断すればよいでしょう?
単純に標本平均を算出して想定される母平均との差を求めればよいのでしょうか?
ここで重要なのが分散の観点とサンプル数の観点。
母平均が100で標本平均が120だったとしても、標本のデータが100、100、・・・10000、・・・、100だったしたら信頼性はありますか?あきらかに異常値が混ざっていることによって標本平均が上振れてしまっていますよね。
よって、分散が小さい方が信頼性は高くなるはずです。
また、手元のサンプルが10しかない状態と10000サンプルある状態ではどちらの方が信頼性が高いでしょう?
当たり前ですが10000サンプルですよね。このようにt検定においては分散の観点とサンプル数の観点が重要になってくるのです。
平均だけ算出して「差が出ました!!」と公言している資料などがありますが、t検定の考え方を知っていると、それ本当にサンプル数足りている?異常値混ざってない?と疑問が湧きます。
統計的検定では、このように表面的な事象に惑わされない本質的な検証が行えるのです。
・分散が小さい方が信頼性が高い
・サンプル数が大きい方が信頼性が高い
これらのイメージ・考え方をしっかり持っておくことで数式の理解も深まります。
ちなみにt検定はパラメトリック検定というデータの分布があらかじめ分かっている仮定のもとでの検定になります。
t検定の場合は正規分布を背後に仮定していますので正規分布と言えないデータ群には適応できない点に注意が必要です。
そんなt検定ですが、実はいくつかの種類があります。大きく分けて以下の3つ!
・1標本の場合のt検定
・2標本の場合のt検定(標本分散が等しい)
・2標本の場合のt検定(標本分散が等しくない)
データの構造や検証した仮説によってt検定の中でも若干変わってくるんですね。
それぞれについて詳しく見ていくことにしましょう!
1標本の場合のt検定
こちらのパターンは品質管理の分野でよく用いられることが多いです。
得られたサンプルデータの母平均が想定している値に等しいかどうかを検定する場合に用います。サンプルデータが1つなので1標本というわけですね。
以下のような例を考えてみましょう!
この会社が製造しているバニラアイスの内容量は200mlに設定しているはずです。
ある日、社長が「200mlになっていない気がする」と生産管理の担当者に伝えました。そこで、生産管理の担当者であるAさんとBさんは本当に200mlになっているかどうかを確かめることにしました。そして、製造した製品の中から無作為に10個ほど選んで内容量を測ったところ次のようになりました。
$$205,198,197,208,204,202,207,199,207,203 (ml)$$
このデータから平均値を計算すると\(\bar{x}=203\)でした。さて、設定は200mlからずれているのでしょうか。
まさに品質管理・生産管理の場面。
今回の場合、簡単のために母分散は\(4^2\)と知っていることにしておきます(実際の場面では母分散は分からないので不偏分散※を用います)。
※普遍分散は\(\frac{{\sum}(x_i-\hat{x}^2)}{(n-1)}\)と求めます。
そうすると母集団は\(N(\mu,4^2)\)に従います。そして、問題は\(\mu\)が200であるのかどうなのかということです。
仮に、\(\mu=200\)であるとしましょう。平均\(\bar{x}=203\)を正規化した\(u\)は\(N(0,1^2)\)に従います。\(u\)は以下のように求めます。
$$ u= \frac{\bar{x}-μ_0}{\frac{σ}{\sqrt{n}}}~N(0,1) $$
この式はまさに先ほどの「平均との差」と「分散」と「サンプル数」が関係していますね!
平均との差が大きく分散が小さくサンプル数が大きい方がuの値は大きくなるはずです。
このとき、正規分布の確率密度関数から分布の端っこの面積が5%になる点はどこかを計算すると-1.960と1.960という値になります。
これはつまり\(N(0,1^2)\)に従うデータが「-1.960よりも小さい」あるいは「1.960よりも大きい」可能性が5%くらいしかあり得ないということを意味します。
さて、いま計算して\(|u|\)を求めると2.372という値になりました。この値は1.960より大きいです。
\(\mu=200\)と考えて、データが\(N(200,4^2)\)に従うと考えて計算してみたところ、その結果計算するとたった5%も起こらないようなことになったということです。
ということは、もともと想定していた\(\mu=200\)つまり帰無仮説は間違っていたんじゃないの?というのが統計的検定の論理なんです。この5%というのは有意水準と呼ばれます。
今回は\(|u|\)が1.960を上回ったので有意であると判定されましたが、これが下回った場合は有意でないと言えるのでしょうか?
実は、ここが非常に難しいところで、このような場合「有意であるとは言えない」という結論しか導くことができません。
有意差については以下の記事で詳しくまとめていますのでそちらも合わせてご覧ください!

2標本の場合のt検定(分散が等しい)
先ほどの例では1標本のサンプルと想定される固定値を比較してt検定を行っていましたが、2標本のサンプルの母平均を比較する場合もあります。
その場合はどのようになるか見ていきましょう!
サンプルサイズ\(n,m\)の二つの標本、\(x_1,….,x_m\)と\(y_1,….,y_n\)が正規分布\(N(μ_1,σ_1^2)\)と\(N(μ_2,σ_2^2)\)に従うと仮定します。このとき、2標本の母平均には差があるのか検定を行います。帰無仮説と対立仮説は以下の通り。
帰無仮説\(H_0:\bar{x} = \bar{y}\)
対立仮説\(H_1:\bar{x} ≠ \bar{y}\)
この時、分散が等しい場合と等しくない場合では計算方法が異なります。母分散が等しいかどうかの検定にはWelch(ウェルチ)の検定を行います。
2標本の母分散が等しいと仮定した場合についてまず見ていきましょう!
\(x\)と\(y\)の普遍分散は等しく以下のように算出することができます。
$$ \hat{σ}^2 = \frac{Σ(x_i-\bar{x})^2+Σ(y_j-\bar{y})^2}{m + n -2}$$
この\(\hat{σ}\)を用いてt値を算出します。
$$t = \frac{\bar{x} – \bar{y}}{\sqrt{\frac{1}{m}+\frac{1}{n}}\hat{σ}} ~t(m + n – 2)$$
例の通り、平均の差と分散とサンプル数という要素が入っていますね!
2標本の場合のt検定(分散が等しくない)
続いて、分散が等しくない場合の例を見ていきましょう!
先ほどは\(\hat{σ}\)を共通の不偏分散として算出することができましたが、今回は異なるので別々に算出することになります。
$$ \hat{σ}_x^2 = \frac{Σ(x_i-\bar{x})^2}{m – 1} $$
$$ \hat{σ}_y^2 = \frac{Σ(y_i-\bar{y})^2}{n – 1} $$
これら固有の普遍分散を基にt値を算出します。
$$t = \frac{\bar{x} – \bar{y}}{\sqrt{\frac{\hat{σ}_x}{m}+\frac{\hat{σ}_y}{n}}}$$
ここでもやはり式は平均の差と分散とサンプル数で表されていますね!
回帰モデルにおけるt検定
実は、最も一般的でよく使われる回帰モデルにおいてもt検定が使われているのです。
よくある以下のような回帰モデル。
$$y_i=\beta_0+\beta_1x_{i1}+\cdots+\beta_px_{ip}+\epsilon_i, \epsilon_i \sim N(0,\sigma^2),(i=1,\cdots,n)$$
この時ある説明変数が目的変数に寄与しているかどうかは、\(\beta\)が0であるかどうかと言い換えることができます。
\(\beta\)が0であるかどうかをt検定によって導き出しているのです。
回帰分析については以下の記事で詳しくまとめています。

t検定をRで実装してみよう!

それなりに数式が多く初見の方にとっては難しく感じられたかもしれませんが、実はRやPythonなどのデータ解析言語を使えば一発で算出できちゃうんです!
ここではRで実装してみましょう!
適当に10個のサンプルデータを入れて、それぞれの母平均の検定をt検定で行ってみました。
Two Sample t-test
data: x and y
t = -0.59024, df = 18, p-value = 0.5624
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-5.471301 3.071301
sample estimates:
mean of x mean of y
1.6 2.8
p-value = 0.5624>0.05なので5%有意にはなりませんでした。サンプル数が少なすぎましたね。
まあ実際に簡単にt検定が行えることが分かっていただけたと思います。
t検定 まとめ
t検定について見てきました。
t検定は様々な場面で使うことのできる有用な検定手法です。
カイ二乗検定と合わせて実務場面で活躍することが多いです。

検定は統計学の基本のキでありながら奥が深くしっかり理解しておく必要があります。
検定まわりのお話は以下の書籍がオススメです。是非目を通してみてください!
■入門 統計解析法
統計学の基本を理解するのにうってつけの本です。基本的に高校レベルの数学ができれば問題なく理解できるレベル。大学生1~2年生の時に非常にお世話になりました。
■統計学入門(基礎統計学)
東大出版から出ている名著です。
赤本と呼ばれ慣れ親しまれています。レベル的には中級者~上級者で、1冊持っておくと、なにかと便利な1冊です。
t検定を理解して実装してみて統計学の門をたたきましょう!
t検定以外にもいくつかの統計的検定があります。統計的検定については以下の記事で詳しくまとめていますので是非ご覧ください。
