「キャンペーン施策の効果はあった?」「ABテストでBの方が本当に勝った?」と聞かれたとき、Excelで一気にp値まで出してくれるのが TTEST関数 です。
ただ、TTEST関数には引数が4つもあります。特に type(1〜3) と tails(1か2) の使い分けで迷う方が多いのが実情です。さらに新関数 T.TEST との違いも気になるところですよね。
この記事では、TTEST関数の構文から、対応あり・対応なし・等分散・不等分散の使い分け、施策効果検証とABテストの実例、新関数との違いまでをまとめて整理します。
ExcelのTTEST関数とは?
ExcelのTTEST関数(読み方:ティーテスト)は、スチューデントのt検定に基づくp値(確率)を返す関数です。関数名は「T–Test(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人の顧客の施策前後の購買額(円)で検証してみます。
| 顧客 | 施策前 | 施策後 |
|---|---|---|
| A | 5,000 | 5,800 |
| B | 4,200 | 4,500 |
| C | 6,800 | 7,200 |
| D | 3,100 | 3,300 |
| E | 5,500 | 6,100 |
| F | 4,900 | 5,200 |
| G | 7,200 | 7,600 |
| H | 3,800 | 4,100 |
| I | 5,100 | 5,400 |
| J | 6,200 | 6,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群(%) |
|---|---|---|
| 1 | 2.1 | 2.8 |
| 2 | 2.3 | 3.1 |
| 3 | 1.9 | 2.6 |
| 4 | 2.5 | 2.9 |
| 5 | 2.2 | 3.2 |
| 6 | 2.0 | 2.7 |
| 7 | 2.4 | 3.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関数(ドット入り)が用意されています。
| 項目 | TTEST | T.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ステップを一気通貫で処理しています。
- t値を計算(平均差 ÷ 標準誤差)
- 自由度を計算(type別の式で算出)
- p値を求める(t分布の確率)
それぞれのステップを単体で扱えるのが TDIST と TINV です。
要するに、自分でt値を電卓で計算した後にp値だけ知りたい場合は TDIST関数 を使います。p値からt値の閾値(棄却域)を求めたい場合は TINV関数 を使う、という使い分けです。
なお、サンプル数が大きくなるとt分布は標準正規分布に近づきます。別解として NORMSDIST関数 や NORMDIST関数 を使うアプローチもあります。等分散かどうかの判定で標準偏差を比較する場合は STDEVP関数 も合わせて使います。
よくあるエラーと対処法
| エラー | 原因 | 対処法 |
|---|---|---|
#N/A | type=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 と覚えておくとよいです。
