# 【5分で分かる】t検定の概要とPythonやRでのやり方紹介！

> 当サイト【スタビジ】の本記事では、推計統計学の基本であるt検定についてまとめていきます。統計的検定にはいくつかの種類がありますが、中でも一番定番で様々な場面に登場するのがこちらのt検定なんです。ぜひマスターしておきましょうね！

- URL: https://toukei-lab.com/t-test
- 公開: 2022.11.29 / 更新: 2024.12.10
- サイト: スタビジ（https://toukei-lab.com）

:::talk{who="umatan"}
本記事では、推計統計学の基本であるt検定についてまとめていきます。統計的検定にはいくつかの種類がありますが、中でも一番定番で様々な場面に登場するのがこちらのt検定なんです。ぜひマスターしておきましょうね！
:::

こんにちは！

データサイエンティストのウマたん（[@statistics1012](https://twitter.com/statistics1012?lang=ja)）です。

ある事象の仮説を数理的に確かめるために行われる[統計的検定](/%e6%a4%9c%e5%ae%9a)。

[統計学](/statistics-freshman)の基本であり、<mark>様々なところで用いられている現場でも有用な手法です。</mark>

そんな統計的検定にはいくつか種類がありますが、この記事ではその中でも最も基本的な検定である**t検定**について見ていきたいと思います。

以下の動画でもt検定を分かりやすく解説しています！

::youtube{#nU7QIbu-gWw}

統計的検定については以下の記事をご覧ください！

<https://toukei-lab.com/%e6%a4%9c%e5%ae%9a>

また以下の動画でもt検定を含めた統計的検定を解説しています！

::youtube{#x8H1vVhGVZA}

:::talk{who="umatan"}
t検定をマスターして実際に使ってみよう！
:::

理論を見ていき、最終的にはPython・Rで実装を行っていきます。

<https://toukei-lab.com/interval-estimation>

## t検定とは

![](/wp-content/uploads/2019/04/52ceff2ccf51b6465679ab4c976fc8b0_s.jpg)

t検定とは、どのような手法なのでしょうか？t検定とは<mark>「平均」の検定</mark>とよく言われます。

:::point
**・得られたサンプルデータが想定の値よりズレているのか**\
**・AとBのサンプル群の母平均に差はあるのか**
:::

などといったことがt検定を行うことで分かります。ちなみに<mark>F検定は「**分散の検定**」、カイ二乗検定は「**分布の検定**」</mark>と思っていただけると分かりやすいと思います。

正直、t検定自体の実装は非常に簡単なのでイメージさえ持っていれば数式を覚える必要はありません。

t検定は平均に差が生じているか確かめるもの。しかし、何を持って差があるか判断すればよいでしょう？

この時、**母集団**と**標本**という考え方についておさえておきましょう！

統計学では、手元のデータから真のデータの構造を推定することが重要です。

![t検定](/wp-content/uploads/2019/10/a36100f208e980f593014993c9409e31.png)

この時、母集団は真のデータを指していて、標本とは手元のデータを指しています。

そして母平均といえば母集団の真の平均、標本平均といえば標本の平均になります。

t検定では、<mark>標本平均から母平均を推定し、真の母平均とずれているかいないかを検定</mark>します。

では、単純に標本平均を算出して想定される母平均との差を求めればよいのでしょうか？

ここで重要なのが**分散の観点**と**サンプル数の観点。**

母平均が100で標本平均が120だったとしても、標本のデータが100、100、・・・10000、・・・、100だったしたら信頼性はありますか？あきらかに異常値が混ざっていることによって標本平均が上振れてしまっていますよね。

よって、分散が小さい方が信頼性は高くなるはずです。

また、手元のサンプルが10しかない状態と10000サンプルある状態ではどちらの方が信頼性が高いでしょう？

当たり前ですが10000サンプルですよね。このようにt検定においては分散の観点とサンプル数の観点が重要になってくるのです。

![t検定](/wp-content/uploads/2019/10/8a2d5c7869360e7500422cf04b70431d.png)

平均だけ算出して「差が出ました！！」と公言している資料などがありますが、t検定の考え方を知っていると、それ本当にサンプル数足りている？異常値混ざってない？と疑問が湧きます。

統計的検定では、このように表面的な事象に惑わされない本質的な検証が行えるのです。

:::point
**・分散が小さい方が信頼性が高い**\
**・サンプル数が大きい方が信頼性が高い**
:::

これらのイメージ・考え方をしっかり持っておくことで数式の理解も深まります。

ちなみにt検定はパラメトリック検定というデータの分布があらかじめ分かっている仮定のもとでの検定になります。

t検定の場合は正規分布を背後に仮定していますので正規分布と言えないデータ群には適応できない点に注意が必要です。

:::talk{who="umatan"}
実データは正規分布に従っていないデータも非常に多いので注意が必要だ！
:::

そんなt検定ですが、実はいくつかの種類があります。大きく分けて以下の3つ！

:::point
**・1標本の場合のt検定**\
**・2標本の場合のt検定（[標本分散](/variance)が等しい）**\
**・2標本の場合のt検定（[標本分散](/variance)が等しくない）**
:::

![t検定](/wp-content/uploads/2022/11/3bd5ec2e63eae2c7c18da15c961f6965.jpg)

データの構造や検証した仮説によってt検定の中でも若干変わってくるんですね。

それぞれについて詳しく見ていくことにしましょう！

## 1標本の場合のt検定

こちらのパターンは[品質管理の分野](/category/data-science/quality-engineering)でよく用いられることが多いです。

得られた**サンプルデータの母平均が想定している値に等しいかどうかを検定**する場合に用います。サンプルデータが1つなので1標本というわけですね。

以下のような例を考えてみましょう！

:::ref
この会社が製造しているバニラアイスの内容量は200mlに設定しているはずです。\
ある日、社長が「200mlになっていない気がする」と生産管理の担当者に伝えました。そこで、生産管理の担当者であるAさんとBさんは本当に200mlになっているかどうかを確かめることにしました。そして、製造した製品の中から無作為に１０個ほど選んで内容量を測ったところ次のようになりました。

$$
205,198,197,208,204,202,207,199,207,203 (ml)
$$

このデータから平均値を計算すると$\bar{x}=203$でした。さて、設定は200mlからずれているのでしょうか。
:::

まさに**品質管理・生産管理**の場面。

今回の場合、この時、母集団が母平均$\mu$母分散$\sigma^2$の正規分布に従っているとすると母集団は$N(\mu,\sigma^2)$に従っていると書くことができます。

不偏分散は$\frac{{\sum}(x_i-\bar{x})^2}{(n-1)}$と求めます。

そして、問題は$\mu$が200であるのかどうなのかということです。

ここで$\mu=200$であるとしましょう。標本平均$\bar{x}=203$と不偏分散から、tを以下のように求めます。

$$
t= \frac{\bar{x}-μ}{\sqrt{\frac{σ^2}{n}}}
$$

この式はまさに先ほどの「**平均との差**」と「**分散**」と「**サンプル数**」が関係していますね！

平均との差が大きく分散が小さくサンプル数が大きい方がuの値は大きくなるはずです。

:::talk{who="umatan"}
一見難しそうに見える式にも意味があるんだねー！
:::

このtは自由度がn-1のt分布に従うことがわかっています。

自由度は分布の形を決めるもので、同じt分布でも自由度が大きければ大きいほど裾の狭い分布になっていきます。

さて、このtを計算してみると2.4となりました。

この2.4は自由度9のt分布に従います。

自由度9のt分布において2.4はどのくらいの確率で起きうるものなのでしょうか？

それを調べるにはt分布の表が必要です。今回は200mlより大きいかどうかという片側だけ検定すれば良いので片側t検定を用いましょう！

それを見てみると、有意差5％で自由度9の時の点は1.833であることが分かりました。\
1.833より2.4は大きいので5％有意であるということが分かりました。

$\mu=200$と考えて、計算してみたところ、その結果計算するとたった5%も起こらないようなことになったということです。

ということは、もともと想定していた$\mu=200$つまり帰無仮説は間違っていたんじゃないの？というのが統計的検定の論理なんです。この5%というのは有意水準と呼ばれます。

![t検定](/wp-content/uploads/2022/11/7d796b07e37641dc01a636921b6372d9.jpg)

今回は1.833を上回ったので有意であると判定されましたが、これが下回った場合は有意でないと言えるのでしょうか？

実は、ここが非常に難しいところで、このような場合<mark>「有意であるとは言えない」</mark>という結論しか導くことができません。

有意差については以下の記事で詳しくまとめていますのでそちらもあわせてご覧ください！

<https://toukei-lab.com/significant-difference>

## 2標本の場合のt検定（分散が等しい）

先ほどの例では1標本のサンプルと想定される固定値を比較してt検定を行っていましたが、**2標本**のサンプルの母平均を比較する場合もあります。

その場合はどのようになるか見ていきましょう！

:::talk{who="umatan"}
基本的には1標本の場合と変わらないよ！
:::

サンプルサイズ$n,m$の二つの標本、$x_1,….,x_m$と$y_1,….,y_n$が正規分布$N(μ_1,σ_1^2)$と$N(μ_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}}}
$$

:::talk{who="umatan"}
正直ここら辺まで知っておく必要はないよー！
:::

ここでもやはり式は平均の差と分散とサンプル数で表されていますね！

## 回帰モデルにおける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検定によって導き出しているのです。

:::talk{who="robotan"}
何気なく使ってたけどそれは知らなかった！
:::

:::talk{who="umatan"}
回帰モデルでも統計的検定の考え方が応用されているなんて感動だよね！
:::

回帰分析については以下の記事で詳しくまとめています。

<https://toukei-lab.com/%E5%9B%9E%E5%B8%B0%E5%88%86%E6%9E%90>

## t検定をPythonで実装してみよう！

![stories pc](/wp-content/uploads/2021/01/All-the-data-bro-e1613475965440-1024x789.png)

それなりに数式が多く初見の方にとっては難しく感じられたかもしれませんが、実はRやPythonなどのデータ分析言語を使えば一発で算出できちゃうんです！

:::talk{who="umatan"}
t検定の簡単さに驚くなかれ！
:::

まずは1標本のt検定をおこなっていきます。先程の例を元に実装してみましょう！

まず必要なライブラリをインポートしてきます

```python
import pandas as pd
import numpy as np
import scipy as sp
from scipy import stats
```

Numpyを使って配列型に数値を格納していきます！

```python
data = np.array([205, 198, 197, 208, 204, 202, 207, 199, 207, 203])
```

続いて、それらの配列型からサンプル数や不偏分散、標本平均を求めていきます。

```python
n = len(data)
var = np.var(data, ddof=1) #不偏分散
mean = np.mean(data) #標本平均
```

これらの値を元にtの値を求めていきます。

tの値は以下のように求めればよいのでした。

$$
t= \frac{\bar{x}-μ}{\sqrt{\frac{σ^2}{n}}}
$$

ここにあてはめていくと以下のようになります。

```python
(mean - 200)/(np.sqrt(var/n))
```

計算すると、2.4053511772118195となります。

これを自由度9（10-1）の[t分布の有意水準5％の点](https://www.itl.nist.gov/div898/handbook/eda/section3/eda3672.htm)と比較してみると・・・

2.405 > 1.833となり5％有意となりました！

ちなみにScipyを使って以下のように記述すれば簡単に同様の結果を得ることができます。

```python
sp.stats.ttest_1samp(data, popmean=200)
```

簡単ですね！

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

![Coding](/wp-content/uploads/2017/11/Coding-amico-e1617441754417-1024x921.png)

続いてRで実装してみましょう！

```r title="t_tesst.R"
x<-c(-1,2,3,-4,5,-4,7,9,2,-3)
y<-c(-2,4,6,-2,6,-6,4,8,5,5)

mean(x)
mean(y)

t.test(x,y,var.equal = T)
```

適当に10個のサンプルデータを入れて、それぞれの母平均の検定をt検定で行ってみました。

先程は1標本のt検定でしたが、こちらは2標本の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％有意にはなりませんでした。サンプル数が少なすぎましたね。

<mark>実際に簡単にt検定が行えることが分かっていただけたと思います。</mark>

## t検定　まとめ

本記事では、<mark>t検定</mark>について見てきました。

t検定は様々な場面で使うことのできる有用な検定手法です。

カイ二乗検定とあわせて実務場面で活躍することが多いです。

<https://toukei-lab.com/chisq-test>

検定は統計学の基本のキでありながら奥が深くしっかり理解しておく必要があります。

検定まわりのお話は以下の書籍がオススメです。是非目を通してみてください！

**■入門　統計解析法**

::product[入門 統計解析法]{url="https://af.moshimo.com/af/c/click?a_id=860485&p_id=170&pc_id=185&pl_id=4062&s_v=b5Rz2P0601xu&url=http%3A%2F%2Fwww.amazon.co.jp%2Fexec%2Fobidos%2FASIN%2F4817102667%2Fref%3Dnosim" image="https://images-fe.ssl-images-amazon.com/images/I/41uG1I4bMmL._SL160_.jpg" amazon="https://af.moshimo.com/af/c/click?a_id=860485&p_id=170&pc_id=185&pl_id=4062&s_v=b5Rz2P0601xu&url=http%3A%2F%2Fwww.amazon.co.jp%2Fgp%2Fsearch%3Fkeywords%3D%25E5%2585%25A5%25E9%2596%2580%25E7%25B5%25B1%25E8%25A8%2588%25E8%25A7%25A3%25E6%259E%2590%25E6%25B3%2595%26__mk_ja_JP%3D%25E3%2582%25AB%25E3%2582%25BF%25E3%2582%25AB%25E3%2583%258A" rakuten="https://af.moshimo.com/af/c/click?a_id=858168&p_id=54&pc_id=54&pl_id=616&s_v=b5Rz2P0601xu&url=http%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E5%2585%25A5%25E9%2596%2580%25E7%25B5%25B1%25E8%25A8%2588%25E8%25A7%25A3%25E6%259E%2590%25E6%25B3%2595%2F-%2Ff.1-p.1-s.1-sf.0-st.A-v.2%3Fx%3D0" detail="永田 靖 日科技連出版社 1992-04-01"}

統計学の基本を理解するのにうってつけの本です。基本的に高校レベルの数学ができれば問題なく理解できるレベル。大学生１～２年生の時に非常にお世話になりました。

**■統計学入門（基礎統計学）**

::product[統計学入門 (基礎統計学Ⅰ)]{url="https://af.moshimo.com/af/c/click?a_id=860485&p_id=170&pc_id=185&pl_id=4062&s_v=b5Rz2P0601xu&url=http%3A%2F%2Fwww.amazon.co.jp%2Fexec%2Fobidos%2FASIN%2F4130420658%2Fref%3Dnosim" image="https://images-fe.ssl-images-amazon.com/images/I/512H1E9ARDL._SL160_.jpg" amazon="https://af.moshimo.com/af/c/click?a_id=860485&p_id=170&pc_id=185&pl_id=4062&s_v=b5Rz2P0601xu&url=http%3A%2F%2Fwww.amazon.co.jp%2Fgp%2Fsearch%3Fkeywords%3D%25E7%25B5%25B1%25E8%25A8%2588%25E5%25AD%25A6%25E5%2585%25A5%25E9%2596%2580%25EF%25BC%2588%25E5%259F%25BA%25E7%25A4%258E%25E7%25B5%25B1%25E8%25A8%2588%25E5%25AD%25A6%25EF%25BC%2589%26__mk_ja_JP%3D%25E3%2582%25AB%25E3%2582%25BF%25E3%2582%25AB%25E3%2583%258A" rakuten="https://af.moshimo.com/af/c/click?a_id=858168&p_id=54&pc_id=54&pl_id=616&s_v=b5Rz2P0601xu&url=http%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E7%25B5%25B1%25E8%25A8%2588%25E5%25AD%25A6%25E5%2585%25A5%25E9%2596%2580%25EF%25BC%2588%25E5%259F%25BA%25E7%25A4%258E%25E7%25B5%25B1%25E8%25A8%2588%25E5%25AD%25A6%25EF%25BC%2589%2F-%2Ff.1-p.1-s.1-sf.0-st.A-v.2%3Fx%3D0" detail="東京大学教養学部統計学教室 東京大学出版会 1991-07-09"}

東大出版から出ている名著です。

赤本と呼ばれ慣れ親しまれています。レベル的には中級者～上級者で、1冊持っておくと、なにかと便利な1冊です。

t検定を理解して実装してみて統計学の門をたたきましょう！

t検定以外にもいくつかの統計的検定があります。統計的検定については以下の記事で詳しくまとめていますので是非ご覧ください。

<https://toukei-lab.com/%e6%a4%9c%e5%ae%9a>

また統計学や少し発展した機械学習、そしてデータサイエンスやPythonの勉強について興味のある方は是非以下の記事をチェックしてみてください！

<https://toukei-lab.com/statistics-freshman>

<https://toukei-lab.com/machine-learning-study>

<https://toukei-lab.com/data-scientist>

<https://toukei-lab.com/python-learn>

またこれらの知識を総合的に学べる「**[スタビジアカデミー（スタアカ）](https://toukei-lab.com/achademy/)**」というスクールを当メディアで運営しておりますので興味のある方は是非チェックしてみてください！

:::box
**AIデータサイエンス特化スクール「スタアカ」**

![スタアカ（スタビジアカデミー）のトップページ](/wp-content/uploads/2026/10/achademy-top.jpg)
:::

<table class="table">
<tbody>
<tr>
<th>【価格】</th>
<td>ライトプラン：1,280円/月（全コースが受講し放題）<br>
プレミアムプラン：129,800円（通常149,800円・買い切り）</td>
</tr>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中5点" data-value="5"></span></td>
</tr>
<tr>
<th>【サポート体制】</th>
<td><span class="stars" role="img" aria-label="5点中4点" data-value="4"></span></td>
</tr>
<tr>
<th>【受講形式】</th>
<td>オンライン形式</td>
</tr>
<tr>
<th>【学習範囲】</th>
<td>統計学・機械学習・ディープラーニングを網羅的に学ぶ<br>
生成AI（LLM・RAG・プロンプトエンジニアリング）を学ぶ<br>
SQLとPythonを組み合わせて実データを使った様々なワークを行う<br>
実践的なビジネスフレームワークを学ぶ<br>
マーケティングの実行プラン策定</td>
</tr>
</tbody>
</table>

データサイエンティストとしての自分の経験をふまえてエッセンスを詰め込んだのがこちらのスタビジアカデミー、略して「[スタアカ](https://toukei-lab.com/achademy/)」！！

当メディアが運営するスクールです。

月額1,280円のライトプランで、統計学から機械学習・生成AIまで全コースが受講し放題です！

<mark>プレミアムプランでは、24時間以内の質問対応と現役データサイエンティストとの1on1（30分×4回）を実施します！</mark>

カリキュラム自体は、他のスクールと比較して圧倒的に良い自信があるのでぜひ受講してみてください！

他のスクールのカリキュラムはPythonでの機械学習実装だけに焦点が当たっているものが多く、実務に即した内容になっていないものが多いです。

<mark>そんな課題感に対して、実務で使うことの多いSQLや機械学習のビジネス導入プロセスの理解などもあわせて学べるボリューム満点のコース</mark>になっています！

Pythonが初めての人でも学べるようなカリキュラムにしておりますので是非チェックしてみてください！

ウォルマートのデータを使って商品の予測分析をしたり、実務で使うことの多いGoogleプロダクトのBigQueryを使って投球分析をしたり、データサイエンティストに必要なビジネス・マーケティングの基礎を学んでマーケティングプランを作ってもらったりする盛りだくさんの内容になってます！

:::box
**・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析**\
**・世界最大手小売企業のウォルマートの実データを用いた需要予測**\
**・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定**\
**・生成AIのAPIを使ってチャットボットやAIエージェントを作る**
:::

::button[スタアカの受講はこちら]{href="https://toukei-lab.com/achademy/" note="＼今すぐ試す／"}