【Excel】TTEST関数の使い方|t検定でp値を計算する方法(旧: T.TEST)

スポンサーリンク

「キャンペーン施策の効果はあった?」「ABテストでBの方が本当に勝った?」と聞かれたとき、Excelで一気にp値まで出してくれるのが TTEST関数 です。

ただ、TTEST関数には引数が4つもあります。特に type(1〜3)tails(1か2) の使い分けで迷う方が多いのが実情です。さらに新関数 T.TEST との違いも気になるところですよね。

この記事では、TTEST関数の構文から、対応あり・対応なし・等分散・不等分散の使い分け、施策効果検証とABテストの実例、新関数との違いまでをまとめて整理します。

ExcelのTTEST関数とは?

ExcelのTTEST関数(読み方:ティーテスト)は、スチューデントのt検定に基づくp値(確率)を返す関数です。関数名は「TTest(t検定)」の略で、統計学者ウィリアム・ゴセットが「Student」という筆名で発表したt分布に由来します。

ざっくり言うと、2つのデータセットを渡すと「この2グループの平均は同じ」という仮説(帰無仮説)が成り立つ確率を返してくれる関数です。p値が小さいほど「平均は同じ」とは考えにくくなります。慣例的に p値 < 0.05 で「統計的に有意な差」 と判定します。

TTEST関数は、Excel 2007以前から提供されている 旧式の関数です。Excel 2010以降では「互換性関数」のグループに分類されています。後継として T.TEST関数(ドット入り)が用意されていますが、TTEST関数も後方互換性のために引き続き使えます。

NOTE

「互換性関数」は古いブックでも問題なく動くように維持されている関数群です。新規作成のワークブックでは新関数(T.TEST)が推奨されますが、既存のテンプレートやマクロでTTESTを見かけても、結果は新関数とまったく同じです。

TTEST関数の書き方(構文と引数)

TTEST関数の構文は次のとおりです。

=TTEST(array1, array2, tails, type)

引数は4つで、すべて必須です。

引数必須説明
array1必須1つ目のデータセット(比較対象A)
array2必須2つ目のデータセット(比較対象B)
tails必須1=片側検定、2=両側検定
type必須1=対応あり、2=対応なし等分散、3=対応なし不等分散

戻り値は0以上1以下のp値です。「2グループの平均が同じ」という前提のもとで、観測されたデータ差が偶然起きる確率を表します。

type引数(1〜3)の使い分け早見表

TTEST関数を使う上で最も迷うのが type 引数です。下の表で全体像をつかんでおきましょう。

typeデータの組み合わせ等分散の仮定代表的なシーン
1対応あり(同じ対象の前後)不問同一顧客の施策前後比較、同一社員の研修前後
2対応なし(別グループ)等分散A群・B群の分散がほぼ同じABテスト
3対応なし(別グループ)不等分散一般的なABテスト(最も推奨)

TIP

迷ったら type=3(Welchのt検定) を選んでおけば失敗が少ないです。等分散かどうかわからなくても頑健に動作するため、現代の統計分析では type=3 が広く推奨されています。

type=1:対応のあるt検定(同じ対象の前後比較)

同じ対象(人・店舗・商品など)について、施策の前と後を比較するときに使います。array1とarray2は 必ず同じデータ数 で、ペアになっている必要があります。

例: 同じ10人の顧客の、メルマガ送付前と後の購買額を比較する。

type=2:対応のないt検定(等分散を仮定)

異なる2グループのデータで、ばらつき(分散)がほぼ等しいと仮定できる場合に使います。データ数は array1 と array2 で異なっても構いません。

等分散かどうかは、F.TEST関数で事前に確認できます。F.TEST のp値が0.05以上なら「等分散と仮定してよさそう」と判断できます。

type=3:対応のないt検定(不等分散を仮定)

異なる2グループのデータで、分散が等しいとは仮定しない場合に使います。これは Welchのt検定 と呼ばれ、現代の統計実務で最も広く使われている方法です。

データ数や分散が大きく異なるグループを比較するときも、安定して使えます。

実務例1:施策の前後効果を検証する(対応あり・type=1)

メルマガキャンペーンの効果を、同じ10人の顧客の施策前後の購買額(円)で検証してみます。

顧客施策前施策後
A5,0005,800
B4,2004,500
C6,8007,200
D3,1003,300
E5,5006,100
F4,9005,200
G7,2007,600
H3,8004,100
I5,1005,400
J6,2006,800

施策前のデータが B2:B11、施策後が C2:C11 に入っているとします。両側検定(差があるかを知りたい)で対応ありを指定します。

=TTEST(B2:B11, C2:C11, 2, 1)

このサンプルでは、p値はおよそ 0.0001 と非常に小さい値が返ります。0.05 より十分小さいので「メルマガ施策で購買額が 統計的に有意に増えた」と結論づけられます。

WARNING

type=1 は array1 と array2 のデータ数が一致していないと #N/A エラーになります。途中で1人離脱した場合などは、その顧客のペアごと除外してから範囲指定してください。

実務例2:ABテストで2グループの平均差を検定する(対応なし・type=3)

ランディングページAとBで、それぞれ7日間ずつコンバージョン率(%)を計測したとします。AグループとBグループは別々のユーザーなので「対応なし」です。分散が等しいかわからないので type=3(Welch)を選びます。

A群(%)B群(%)
12.12.8
22.33.1
31.92.6
42.52.9
52.23.2
62.02.7
72.43.0

A群が B2:B8、B群が C2:C8 に入っているとして、両側・対応なし不等分散で計算します。

=TTEST(B2:B8, C2:C8, 2, 3)

このサンプルでは、p値はおよそ 0.001 となり、0.05 を大きく下回ります。よって「B群のコンバージョン率は 統計的に有意に高い」と結論づけられます。

NOTE

等分散かどうかが事前に判定できる場合は、=F.TEST(B2:B8, C2:C8) でF検定のp値を確認できます。F.TESTのp値が0.05以上なら type=2(等分散)、未満なら type=3(不等分散)が安全な選択です。判定に自信がなければ type=3 を選びましょう。

tails(片側 vs 両側)の選び方

tails 引数は、検定の「向き」を指定します。

tails意味使うべきケース
1片側検定(one-tailed)効果の方向に事前根拠がある場合(施策で必ず改善するはず、など)
2両側検定(two-tailed)単に「差があるかどうか」を知りたい場合

実務での判断基準

  • 「施策で 改善する ことを示したい」 → 片側(tails=1)
  • 「施策で 何らかの変化があるか を知りたい」 → 両側(tails=2)

統計学の教科書的には 両側検定が推奨 されます。片側検定は「効果が必ず一方向にしか起きない」という強い根拠が事前に必要だからです。実務でも、迷ったら tails=2 を選んでおくと無難です。

なお、対称な分布の場合、両側のp値 = 片側のp値 × 2 という関係が成り立ちます。

T.TEST関数(新関数)との違い・使い分け

Excel 2010以降では、後継の T.TEST関数(ドット入り)が用意されています。

項目TTESTT.TEST
導入時期Excel 2007以前からExcel 2010以降
構文TTEST(array1, array2, tails, type)T.TEST(array1, array2, tails, type)
計算結果同一同一
関数の分類互換性関数統計関数

使い分けの実務指針

  • 古いExcel環境(2007以前)と共有する → TTEST
  • 自分専用または新しい環境で使う → T.TEST
  • 既存ブックの数式を継承する → そのまま変更不要

引数も計算式も完全に同じです。新規ブックではどちらを使っても結果は変わりません。Microsoft公式は新関数(T.TEST)を推奨していますが、TTEST が将来削除される予定もないので、安心して使えます。

TDIST関数・TINV関数との関係性

TTEST関数は、内部で次の3ステップを一気通貫で処理しています。

  1. t値を計算(平均差 ÷ 標準誤差)
  2. 自由度を計算(type別の式で算出)
  3. p値を求める(t分布の確率)

それぞれのステップを単体で扱えるのが TDIST と TINV です。

関数役割
TTESTt値→自由度→p値を一気通貫で計算
TDIST既知のt値と自由度から p値 を求める(手順3)
TINVp値からt値を逆算する(信頼区間や棄却域の閾値計算)

要するに、自分でt値を電卓で計算した後にp値だけ知りたい場合は TDIST関数 を使います。p値からt値の閾値(棄却域)を求めたい場合は TINV関数 を使う、という使い分けです。

なお、サンプル数が大きくなるとt分布は標準正規分布に近づきます。別解として NORMSDIST関数NORMDIST関数 を使うアプローチもあります。等分散かどうかの判定で標準偏差を比較する場合は STDEVP関数 も合わせて使います。

よくあるエラーと対処法

エラー原因対処法
#N/Atype=1 で array1 と array2 のデータ数が違うペアになるデータだけを範囲指定する
#VALUE!tails や type に数値以外が入っている/範囲が空tails=1または2、type=1〜3の整数を指定
#NUM!tails が 1, 2 以外、type が 1, 2, 3 以外(4は無効)、データ数が少なすぎる引数の値とデータ数(最低2個ずつ)を確認
#DIV/0!全データが同じ値で分散がゼロデータのばらつきを確認

特に多いのが、type=1(対応あり)で誤って異なる長さの範囲を指定してしまうケースです。途中欠損があるときは、欠損行を両方とも除外してから計算しましょう。

まとめ

ExcelのTTEST関数は、t検定のp値を一発で計算できる便利な関数です。要点を整理すると次のとおりです。

  • 構文: =TTEST(array1, array2, tails, type)
  • type=1: 対応あり(同じ対象の前後比較)
  • type=2: 対応なし・等分散
  • type=3: 対応なし・不等分散(迷ったらこれ)
  • tails=2(両側)が基本。方向に強い事前根拠があれば tails=1
  • 新関数 T.TEST と計算結果は完全に同一。新規ブックでは T.TEST を推奨

施策効果検証やABテストの結果報告で「有意差あり」と言うためには、p値 < 0.05 という基準を押さえておきましょう。意思決定がスムーズになります。データの組み合わせと等分散の有無に応じて type を選び、迷ったら type=3 と覚えておくとよいです。

合わせて TDIST関数TINV関数 を使えば、t分布まわりの仮説検定を自在に扱えるようになります。

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