「2つのデータのばらつきは同じ? それとも違う?」。t検定をやろうとして、こんな疑問に当たったことはありませんか。
t検定の前に「2群の分散が等しいか」を確認するのがF検定です。でも分散比を手計算するのは面倒ですよね。
そんなときに使うのがスプレッドシートのF.TEST関数です。この記事ではF.TEST関数の基本構文からp値の読み方まで解説します。T.TESTとの連携フローやFTEST(互換関数)との違いも紹介しますよ。
スプレッドシートのF.TEST関数とは?
F.TEST関数(読み方: エフテスト関数)は、2つのデータ群の分散(ばらつき)が等しいかを検定する関数です。統計学では「F検定(エフけんてい)」と呼ばれます。名前の由来は統計学者フィッシャー(Fisher)です。
具体的には、2群の分散の比が「偶然の誤差」で説明できるかを検定します。戻り値はp値(ピーち)です。p値が小さいほど「分散に有意な差がある=等分散ではない」と判断できます。
F.TEST関数にできることをまとめると、次のとおりです。
- 2つのデータ群の分散が等しいかを判定する
- T.TEST関数のtype引数(等分散 or 不等分散)を決める根拠を得る
- 品質管理で製造ラインごとのばらつきに差があるかを検証する
- データ範囲を渡すだけで、分散比の計算からp値算出まで自動で行える
「t検定の前にF検定で等分散かチェックする」というのが典型的な使い方です。
NOTE
F.TEST関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作は同じです。
F.TEST関数の基本構文と引数
基本構文
=F.TEST(範囲1, 範囲2)
引数は2つだけです。T.TEST関数のように検定の種類を指定する必要はありません。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 範囲1 | 必須 | 1つ目のデータ範囲(例: A2:A11) |
| 範囲2 | 必須 | 2つ目のデータ範囲(例: B2:B11) |
範囲1と範囲2に比較したい2群のデータを指定します。データ数が異なっていても問題ありません。
F.TEST関数が内部で行っている計算
F.TEST関数は、渡されたデータから次の計算を自動で行います。
- 範囲1と範囲2それぞれの分散(VAR関数)を計算する
- 分散の比(F値)を求める: F値 = VAR(範囲1) / VAR(範囲2)
- F値と自由度からF分布の両側確率(p値)を返す
自分でVAR関数やF.DIST.RT関数を組み合わせる必要がないので、数式がシンプルになります。
TIP
F.TEST関数は「両側検定」のp値を返します。つまり「分散1が大きい場合」も「分散2が大きい場合」も含めた確率です。片側のp値が必要な場合は、F.TESTの結果を2で割ってください。
F.TEST関数の基本的な使い方
拠点Aと拠点Bの月間売上データで、ばらつきに差があるかを調べる例で手順を確認しましょう。
| A列(拠点A・万円) | B列(拠点B・万円) | |
|---|---|---|
| 2行目 | 120 | 95 |
| 3行目 | 138 | 108 |
| 4行目 | 108 | 103 |
| 5行目 | 132 | 100 |
| 6行目 | 142 | 105 |
| 7行目 | 110 | 99 |
拠点Aは108~142万円に散らばり、拠点Bは95~108万円にまとまっています。この「ばらつきの差」が統計的に意味のある差かを検定します。
手順1: 空いているセル(例: D2)をクリックします。
手順2: 次の数式を入力します。
=F.TEST(A2:A7,B2:B7)
- A2:A7: 拠点Aの売上データ(範囲1)
- B2:B7: 拠点Bの売上データ(範囲2)
手順3: Enterキーを押すとp値が表示されます。
この例では約 0.026 が返ります。0.05より小さいので「2つの拠点の分散に有意な差がある(等分散ではない)」と判断できます。
p値の判断基準
| p値の範囲 | 判断 | 意味 |
|---|---|---|
| p < 0.01 | 高度に有意 | 99%の信頼水準で分散に差がある |
| p < 0.05 | 有意 | 95%の信頼水準で分散に差がある |
| p >= 0.05 | 有意差なし | 分散が等しいとみなせる |
p値が0.05以上なら「等分散」、0.05未満なら「不等分散」と判断するのが一般的です。
F検定の結果からT.TESTのtype引数を決める方法
F.TEST関数の最も実務的な使い方は、T.TEST関数の前段として等分散かどうかを判定することです。
T.TEST関数には第4引数のtypeがあります。type=2は「等分散を仮定したt検定」、type=3は「不等分散を仮定したt検定(ウェルチ)」です。F.TESTの結果でどちらを使うか決められます。
判断フロー
F.TESTのp値 >= 0.05 → 等分散とみなす → T.TESTのtype=2
F.TESTのp値 < 0.05 → 不等分散 → T.TESTのtype=3
数式で自動判定する
IF関数を使えば、F.TESTの結果に応じてT.TESTのtypeを自動で切り替えられます。
=T.TEST(A2:A7, B2:B7, 2, IF(F.TEST(A2:A7,B2:B7)>=0.05, 2, 3))
この数式は次のように動作します。
F.TEST(A2:A7,B2:B7)でp値を求める- p値が0.05以上なら type=2(等分散)、0.05未満なら type=3(不等分散)を選ぶ
- 選ばれたtypeでT.TEST関数を実行する
これで「F検定 → t検定」の一連の流れを1つのセルで完結できます。
TIP
実務では type=3(ウェルチのt検定)をデフォルトで使う流派もあります。ウェルチ検定は等分散でも不等分散でも正しく機能するためです。ただし「等分散を確認してからt検定した」と報告書に書くなら、F.TESTでの事前チェックが必要ですよ。
セルを分けてステップごとに確認する方法
1つの数式にまとめるとわかりにくい場合は、セルを分けて段階的に確認しましょう。
| セル | 数式 | 意味 |
|---|---|---|
| D2 | =F.TEST(A2:A7,B2:B7) | F検定のp値 |
| D3 | =IF(D2>=0.05,"等分散","不等分散") | 等分散の判定 |
| D4 | =IF(D2>=0.05,2,3) | T.TESTに渡すtype |
| D5 | =T.TEST(A2:A7,B2:B7,2,D4) | t検定のp値 |
| D6 | =IF(D5<0.05,"有意差あり","有意差なし") | 最終判定 |
このように分けておくと、F検定からt検定までの流れが一目でわかります。レポートや報告書にも使いやすいですよ。
F.TEST関数の実務活用パターン
品質管理での製造ラインの比較
製造ライン1とライン2で作られた製品の重量データを比較する例です。「ばらつきが同じか」を確認することで、どちらのラインが安定しているかを判定します。
=F.TEST(C2:C21,D2:D21)
p値が0.05未満なら、2つのラインのばらつきに統計的な差があります。ばらつきが大きいラインは設備調整が必要かもしれません。STDEV関数で標準偏差も確認すると、どちらが大きいかがわかりますよ。
A/Bテスト前の等分散チェック
2つのグループの反応データにt検定を行う前に、等分散かどうかを確認する例です。
| A列(グループA) | B列(グループB) | |
|---|---|---|
| 2行目 | 3.2 | 4.1 |
| 3行目 | 2.8 | 3.5 |
| 4行目 | 3.5 | 15.0 |
| 5行目 | 3.0 | 3.8 |
| 6行目 | 2.9 | 4.2 |
=F.TEST(A2:A6,B2:B6)
グループBに外れ値(15.0)があるため、分散が大きくなります。F.TESTのp値が0.05未満なら不等分散です。この場合はT.TEST関数でtype=3(ウェルチ検定)を選びましょう。
FTEST関数(互換関数)との違い
Googleスプレッドシートには「FTEST」と「F.TEST」の2つの関数があります。
| 比較項目 | F.TEST | FTEST |
|---|---|---|
| 構文 | =F.TEST(範囲1,範囲2) | =FTEST(範囲1,範囲2) |
| 引数 | 同じ | 同じ |
| 戻り値 | 同じ(両側p値) | 同じ(両側p値) |
| 推奨度 | 推奨(新関数) | 互換用(旧関数) |
結論として、機能はまったく同じです。FTESTはExcel 2007以前の旧名称です。Googleスプレッドシートではどちらも使えますが、F.TEST(ドット付き)が推奨です。
新しく数式を書くときはF.TESTを使ってください。
F.TEST関数でよくあるエラーと対処法
F.TEST関数で発生しやすいエラーをまとめました。
| エラー | 原因 | 対処法 |
|---|---|---|
| #N/A | 範囲内に数値データが2つ未満 | データが2個以上あるか確認する |
| #N/A | 範囲が空、またはすべて文字列 | 数値データを含む範囲を指定する |
| #DIV/0! | いずれかの範囲の分散が0(全データが同じ値) | 同じ値ばかりのデータでは検定できない |
結果がおかしいと感じたら
エラーは出ないのに期待と違う結果になるケースもあります。
- データに空白行がないか確認: 空白セルは無視されますが、範囲がずれる原因になります
- 外れ値の影響: 極端な値が1つあると分散が大きくなり、p値が小さくなります。外れ値を除外して再検定するのも有効です
- サンプル数が少なすぎないか: データが3件未満だと検定の信頼性が低くなります。最低5件以上は欲しいところです
- 文字列や空白が混在していないか: 数値以外のセルは自動で無視されますが、意図しないデータ欠落の原因になります
TIP
F.TESTのp値が0.05ギリギリ(0.04~0.06あたり)の場合は、判断に迷うことがあります。その場合はtype=3(ウェルチ検定)を使うのが安全です。ウェルチ検定は等分散でも不等分散でも正しく機能しますよ。
F分布関連の関数ファミリー
F.TEST関数に関連するF分布の関数をまとめます。用途に応じて使い分けてください。
| 関数 | 用途 | 特徴 |
|---|---|---|
| F.TEST | 2群の等分散検定(p値) | データ範囲を渡すだけでF検定が完了 |
| F.DIST | F分布の累積確率/密度を返す | F値から確率を手動計算するとき |
| F.DIST.RT | F分布の右側確率を返す | p値を手動で求めるとき |
| F.INV | 確率からF値を逆算(左側) | 臨界値の算出に便利 |
| F.INV.RT | 確率からF値を逆算(右側) | 有意水準から臨界値を直接算出 |
| FDIST | F.DIST.RTの旧関数名 | 互換用 |
| FINV | F.INV.RTの旧関数名 | 互換用 |
F.TESTは「データ範囲を渡すだけでp値まで一発で出せる」便利な関数です。F値を手計算してからF.DIST.RT関数でp値を求める方法もありますが、F.TESTのほうがずっと手軽ですよ。
まとめ
F.TEST関数のポイントをおさらいしましょう。
- F.TEST関数は「2群の分散(ばらつき)が等しいか」を検定する関数
- 書き方:
=F.TEST(範囲1, 範囲2) - p値が0.05未満なら「不等分散」、0.05以上なら「等分散」と判断する
- T.TEST関数の前段として使い、type=2(等分散)か type=3(不等分散)かを決められる
- FTEST(互換関数)と機能は同じ。新規作成ではF.TESTを推奨
まずは手元のデータで =F.TEST(範囲1, 範囲2) を試してみてください。t検定と組み合わせれば、データ分析の説得力がグッと上がりますよ。
