スプレッドシートのF.TEST関数の使い方|F検定で分散を比較

スポンサーリンク

「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. 範囲1と範囲2それぞれの分散(VAR関数)を計算する
  2. 分散の比(F値)を求める: F値 = VAR(範囲1) / VAR(範囲2)
  3. 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行目12095
3行目138108
4行目108103
5行目132100
6行目142105
7行目11099

拠点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))

この数式は次のように動作します。

  1. F.TEST(A2:A7,B2:B7) でp値を求める
  2. p値が0.05以上なら type=2(等分散)、0.05未満なら type=3(不等分散)を選ぶ
  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.24.1
3行目2.83.5
4行目3.515.0
5行目3.03.8
6行目2.94.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.TESTFTEST
構文=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. データに空白行がないか確認: 空白セルは無視されますが、範囲がずれる原因になります
  2. 外れ値の影響: 極端な値が1つあると分散が大きくなり、p値が小さくなります。外れ値を除外して再検定するのも有効です
  3. サンプル数が少なすぎないか: データが3件未満だと検定の信頼性が低くなります。最低5件以上は欲しいところです
  4. 文字列や空白が混在していないか: 数値以外のセルは自動で無視されますが、意図しないデータ欠落の原因になります

TIP

F.TESTのp値が0.05ギリギリ(0.04~0.06あたり)の場合は、判断に迷うことがあります。その場合はtype=3(ウェルチ検定)を使うのが安全です。ウェルチ検定は等分散でも不等分散でも正しく機能しますよ。

F分布関連の関数ファミリー

F.TEST関数に関連するF分布の関数をまとめます。用途に応じて使い分けてください。

関数用途特徴
F.TEST2群の等分散検定(p値)データ範囲を渡すだけでF検定が完了
F.DISTF分布の累積確率/密度を返すF値から確率を手動計算するとき
F.DIST.RTF分布の右側確率を返すp値を手動で求めるとき
F.INV確率からF値を逆算(左側)臨界値の算出に便利
F.INV.RT確率からF値を逆算(右側)有意水準から臨界値を直接算出
FDISTF.DIST.RTの旧関数名互換用
FINVF.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検定と組み合わせれば、データ分析の説得力がグッと上がりますよ。


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

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