スプレッドシートのT.TEST関数の使い方|t検定でデータの差を判定

スポンサーリンク

「2つのデータに差があるか、数字で判定したい」。A/Bテストや施策前後の比較で、こんな場面はありませんか。

平均値を見比べるだけでは根拠が弱いですよね。たまたま差が出ただけかもしれません。上司やクライアントに「偶然じゃないの?」と聞かれたら困ります。

そんなときに使うのがスプレッドシートのT.TEST関数です。この記事では引数の選び方からp値の読み方、実務での活用パターンまでわかりやすく解説します。

スプレッドシートのT.TEST関数とは?

T.TEST関数(読み方: ティーテスト関数)は、2つのデータ群に統計的な有意差があるかを判定する関数です。名前の由来は統計学の「t検定(ティーけんてい)」です。

具体的には、2群の平均値の差が「偶然の誤差」で説明できるかを検定します。戻り値はp値(ピーち)と呼ばれる確率です。p値が小さいほど「偶然ではない=有意な差がある」と判断できます。

T.TEST関数にできることをまとめると、次のとおりです。

  • 2つのグループのデータに統計的な差があるか判定する
  • A/Bテストの結果を数値で評価する
  • 施策の前後で効果があったかを検証する
  • 部門間・地域間のスコア差を客観的に比較する

「この差って偶然?それとも本物?」に答えてくれる関数、というイメージです。

NOTE

T.TEST関数はGoogleスプレッドシートの全バージョンで使えます。Excel(2010以降)でも同じ書き方で動作します。

T.TEST関数の基本構文と引数

基本構文

=T.TEST(範囲1, 範囲2, tails, type)

4つの引数はすべて必須です。順番に見ていきましょう。

引数必須/任意説明
範囲1必須1つ目のデータ範囲(例: A2:A11)
範囲2必須2つ目のデータ範囲(例: B2:B11)
tails必須1=片側検定、2=両側検定
type必須1=対応あり、2=等分散、3=不等分散

範囲1と範囲2に比較したいデータを指定します。tails と type は数値で指定します。この2つの引数の選び方を次のセクションで詳しく説明しますね。

第3引数 tails(片側検定 or 両側検定)の選び方

tails は検定の「方向」を決める引数です。

  • tails=2(両側検定): 「AとBに差があるか?」を調べる。方向は問わない
  • tails=1(片側検定): 「AはBより大きいか?」など方向が決まっている場合

迷ったら tails=2(両側検定)を選んでください。片側検定は「必ずAの方が大きい」と事前に確信があるときだけ使います。実務では両側検定が標準です。

第4引数 type(対応あり・等分散・不等分散)の選び方

type は「2つのデータの関係性」を指定する引数です。

type名称使う場面
1対応あり(paired)同じ対象の前後比較。例: 同じ社員の研修前後テスト
2等分散(homoscedastic)2群が独立で、分散が等しいとき
3不等分散(heteroscedastic)2群が独立で、分散が等しいか不明なとき

実務では type=3(不等分散)を推奨します。これはウェルチのt検定と呼ばれる方法です。等分散でも不等分散でも正しく機能します。type=2は分散が等しいと証明できる場合のみ使いますが、実務でそのケースはまれです。

type=1は「同じ人・同じ店舗」の前後比較にだけ使います。対象が異なる2グループならtype=3を選びましょう。

【早見表】tails × type の引数選択マトリクス

どの引数を選べばよいか迷ったら、この表を参考にしてください。

やりたいことtailstype数式例
2グループに差があるか知りたい23=T.TEST(A:A,B:B,2,3)
施策前後の効果を検証したい21=T.TEST(A:A,B:B,2,1)
Aの方がBより高いと証明したい13=T.TEST(A:A,B:B,1,3)
前後で「上がった」と証明したい11=T.TEST(A:A,B:B,1,1)

多くの場面では tails=2, type=3 の組み合わせで問題ありません。まずはこの設定で試してみてください。

T.TEST関数の使い方(基本の入力手順)

2つのクラスのテストスコアを比較する例で手順を確認しましょう。

 A列(クラスA)B列(クラスB)
2行目7865
3行目8570
4行目9082
5行目7268
6行目8875

クラスAの平均は82.6、クラスBの平均は72.0です。この差が統計的に意味のある差かを検定します。

手順1: 空いているセル(例: D2)をクリックします。

手順2: 次の数式を入力します。

=T.TEST(A2:A6,B2:B6,2,3)
  • A2:A6: クラスAのスコア(範囲1)
  • B2:B6: クラスBのスコア(範囲2)
  • 2: 両側検定(差の方向は問わない)
  • 3: 不等分散(ウェルチのt検定)

手順3: Enterキーを押すとp値が表示されます。

この例では約 0.036 が返ります。0.05より小さいので「2つのクラスに有意な差がある」と判断できます。p値の詳しい読み方は後のセクションで解説しますね。

実務で使えるT.TEST活用パターン3選

A/Bテストで広告クリック率に差があるか調べる

Web広告のA/Bテストで使うパターンです。広告Aと広告Bの日別クリック率を比較します。

 A列(広告Aの日別CTR%)B列(広告Bの日別CTR%)
2行目3.24.1
3行目2.83.5
4行目3.54.0
5行目3.03.8
6行目2.94.2
7行目3.33.6
8行目3.13.9

広告Aと広告Bは別々のユーザーに表示しています。対象が異なる独立した2群なので、type=3を使います。

=T.TEST(A2:A8,B2:B8,2,3)

p値が0.05未満なら「2つの広告のクリック率に有意な差がある」と統計的に言えます。平均値を見れば広告Bが高いとわかるので、マーケティングの意思決定に客観的な根拠を持たせられますよ。

キャンペーン前後の売上を対応ありt検定で比較する

同じ10店舗のキャンペーン前後の月間売上を比較する例です。

 A列(施策前・万円)B列(施策後・万円)
2行目120135
3行目95110
4行目140138
5行目110125
6行目105118

同じ店舗の前後データなので type=1(対応あり)を使います。対応ありt検定は個体差を除外できるため、検出力が高くなります。

=T.TEST(A2:A6,B2:B6,2,1)

TIP

type=1(対応あり)では範囲1と範囲2のデータ数を同じにしてください。1行目と1行目が同じ対象のペアになります。データ数が異なると#N/Aエラーになります。

部門間テストスコアを独立2群で比較する

営業部と企画部の社内テストスコアを比較する例です。人数が異なる2グループの比較です。

A列(営業部)B列(企画部)
7280
8578
6892
9085
7588
82
78

営業部は7名、企画部は5名です。人数が違っても問題ありません。type=3(不等分散)なら異なるサイズのデータを比較できます。

=T.TEST(A2:A8,B2:B6,2,3)

人数が異なるケースでも使えるのがT.TEST関数の便利なところです。ただしtype=1(対応あり)はデータ数が揃っている必要があるので注意してくださいね。

p値の読み方と判断ステップ

T.TEST関数が返すp値の読み方を整理します。p値とは「2つのグループに本当は差がないのに、たまたまこれだけの差が出る確率」です。

p値の判断基準

p値の範囲判断意味
p < 0.01高度に有意99%の信頼水準で差がある
p < 0.05有意95%の信頼水準で差がある
p >= 0.05有意差なし差があるとは言えない

ステップ1: T.TEST関数でp値を取得する

=T.TEST(A2:A11,B2:B11,2,3)

ステップ2: p値が0.05未満かを確認する

IF関数と組み合わせると、自動で判定メッセージを出せます。

=IF(T.TEST(A2:A11,B2:B11,2,3)<0.05,"有意差あり","有意差なし")

ステップ3: 結果を解釈する

p値が0.05未満なら「差は偶然ではない」と判断します。ただし重要な注意点があります。

  • p値は「差の大きさ」ではありません。p値が小さくても差がごくわずかな場合があります
  • 「有意差なし」は「差がない」ではなく「差があるとは言えない」です
  • サンプル数が多いと小さな差でも有意になります。実務的に意味のある差かは別途判断が必要です

p値だけで判断せず、AVERAGE関数で平均値の差も確認しましょう。STDEV関数でばらつきも見ると、より正確な判断ができますよ。

TTEST関数(互換関数)との違い

Googleスプレッドシートには「TTEST」と「T.TEST」の2つの関数があります。

比較項目T.TESTTTEST
構文=T.TEST(範囲1,範囲2,tails,type)=TTEST(範囲1,範囲2,tails,type)
引数同じ同じ
戻り値同じ(p値)同じ(p値)
推奨度推奨(新関数)互換用(旧関数)

結論として、機能はまったく同じです。TTEST関数はExcel 2007以前の旧名称です。Googleスプレッドシートではどちらも使えますが、T.TEST(ドット付き)が推奨です。

TTEST関数を使う場面があるとすれば、古いExcelファイル(.xls形式)を受け取った場合です。その場合はファイル内の既存数式に合わせてTTESTを使えばよいでしょう。

新しく数式を書くときはT.TESTを使ってください。

よくあるエラーと対処法

T.TEST関数で発生しやすいエラーをまとめました。

エラー原因対処法
#N/Atype=1で範囲1と範囲2のデータ数が異なるデータ数を揃える。揃えられないならtype=3に変更
#VALUE!範囲に文字列や空白セルが混在している数値以外のセルを除外するか修正する
#VALUE!tails や type に無効な値を指定したtails は1か2、type は1〜3の整数を指定
#NUM!tails が1でも2でもない数値tails を1か2に修正する

結果がおかしいと感じたら

エラーは出ないのに期待と違う結果になるケースもあります。

  1. データに空白行がないか確認: 空白セルは無視されますが、範囲がずれる原因になります
  2. type の選択を見直す: 前後比較なのにtype=3を使っていませんか。同じ対象の前後データならtype=1です
  3. tails の選択を見直す: 片側(tails=1)と両側(tails=2)ではp値が約2倍異なります。不自然に小さい場合はtails=1になっていないか確認してください
  4. サンプル数が少なすぎないか: データが3件未満だと検定の信頼性が低くなります

TIP

T.TEST関数の結果をさらに分析したい場合は、T.DIST関数T.INV関数も活用できます。t統計量からp値を手動計算したり、臨界値を求めたりできますよ。

まとめ

T.TEST関数のポイントをおさらいしましょう。

  • T.TEST関数は「2群のデータに統計的な差があるか」を判定する関数
  • 書き方: =T.TEST(範囲1, 範囲2, tails, type)
  • 迷ったら tails=2, type=3 が標準の設定
  • type=1は同じ対象の前後比較、type=3は独立した2グループの比較
  • p値が0.05未満なら「有意差あり」と判断する
  • p値は「差の大きさ」ではなく「偶然である確率」

まずは身近なデータで =T.TEST(範囲1, 範囲2, 2, 3) を試してみてください。「なんとなく違う気がする」を数値で裏付けられると、データ分析の説得力がグッと上がりますよ。


この記事で紹介した関数・関連記事

タイトルとURLをコピーしました