「F検定で有意水準5%の臨界値っていくつだっけ?」。検定のたびにF分布表を探し回っていませんか?
自由度の組み合わせが変わるたびに表を引くのは手間がかかりますよね。もっと手軽に臨界値を求められたら、検定作業がぐっと楽になります。
そんなときに使うのがF.INV関数です。この記事ではGoogleスプレッドシートでのF.INV関数の使い方を、基本構文から実務活用まで解説します。F.DISTとの逆関数関係やFINV(旧関数)との違いもあわせて紹介しますよ。
スプレッドシートのF.INV関数とは
F.INV関数(読み方: エフ・インバース関数)は、F分布の逆関数です。確率を指定すると、その確率に対応するF値を返してくれます。「F」は統計学者フィッシャー(Fisher)に由来し、「INV」は「Inverse(逆)」の略です。
たとえば「自由度(3, 20)のF分布で、左側95%に対応するF値はいくつか」を1つの数式で求められます。
F.INV関数にできることをまとめると、次のとおりです。
- 確率(左側累積確率)からF値を逆算する
- F検定の臨界値を求める
- 分散分析(ANOVA)の棄却値を算出する
- F分布表を引く手間をなくす
NOTE
F.INV関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作は同じです。
基本構文と3つの引数
=F.INV(確率, 自由度1, 自由度2)
カッコの中に3つの引数を指定します。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 確率(probability) | 必須 | F分布の左側累積確率。0より大きく1より小さい値 |
| 自由度1(degrees_freedom1) | 必須 | 分子の自由度。1以上の正の整数 |
| 自由度2(degrees_freedom2) | 必須 | 分母の自由度。1以上の正の整数 |
TIP
自由度(じゆうど)とは、データから自由に値を決められる個数のことです。F検定では「サンプルサイズ – 1」、分散分析では分子が「グループ数 – 1」、分母が「全データ数 – グループ数」です。小数を渡した場合は整数部分だけが使われますよ。
FINV(旧関数名)との違いに注意
GoogleスプレッドシートにはFINVという関数もあります。ただし、FINVは右側確率を引数に取る点がF.INVと大きく異なります。
=F.INV(0.95, 3, 20) → 約3.10(左側95%のF値)
=FINV(0.05, 3, 20) → 約3.10(右側5%のF値)
=F.INV.RT(0.05, 3, 20) → 約3.10(FINVと同じ結果)
F.INVは左側累積確率、FINVとF.INV.RTは右側確率を指定します。名前が似ていますが動作が異なるので、混同しないように気をつけてくださいね。
新しく数式を書くときはF.INVまたはF.INV.RTを使いましょう。
F.INV関数の基本的な使い方
まずはシンプルな例で動きを確認してみましょう。自由度(3, 20)のF分布を使います。
左側95%に対応するF値を求める
=F.INV(0.95, 3, 20)
結果は約3.10です。「自由度(3, 20)のF分布で、左側95%に位置するF値は3.10」という意味です。逆にいえば、F値が3.10を超える確率は約5%ですね。
確率を変えた場合の比較
確率を変えるとF値がどう変わるか見てみましょう。
| 確率(左側) | F.INV(確率, 3, 20) | 意味 |
|---|---|---|
| 0.50 | 0.8663 | F分布の中央値 |
| 0.90 | 2.3801 | 左側90%点(右側10%) |
| 0.95 | 3.0984 | 左側95%点(右側5%) |
| 0.975 | 3.8587 | 左側97.5%点(右側2.5%) |
| 0.99 | 4.9382 | 左側99%点(右側1%) |
確率が大きくなるほどF値も大きくなります。有意水準が厳しいほど臨界値が高くなる、ということですね。
F.DIST関数との逆関数関係を確認する
F.INV関数はF.DIST関数の逆関数です。次の式で元に戻ることを確認できます。
=F.DIST(F.INV(0.95, 3, 20), 3, 20, TRUE)
結果は0.95になります。F.INVで確率→F値に変換し、F.DISTでF値→確率に戻しているわけです。
逆方向も同様です。
=F.INV(F.DIST(3.10, 3, 20, TRUE), 3, 20)
結果は約3.10に戻ります。この関係を覚えておくと、2つの関数の使い分けに迷わなくなりますよ。
F.INV関数の実務活用例
F.INV関数の基本がわかったところで、実際の業務で使えるパターンを3つ紹介します。
F検定の臨界値を求める——2グループのばらつきに差があるか判定する
「拠点Aと拠点Bの売上のばらつきに差があるか」を判定するF検定では、計算したF値と臨界値を比較します。臨界値の算出にF.INV関数が使えます。
拠点A(10件)と拠点B(12件)のデータがある場合、自由度1 = 9、自由度2 = 11です。有意水準5%の臨界値を求めてみましょう。
=F.INV(0.95, 9, 11)
結果は約2.90です。計算したF値がこの臨界値を超えていれば、「ばらつきに有意な差がある」と判断します。
TIP
F検定の臨界値はF.INV.RTを使っても求められます。
=F.INV.RT(0.05, 9, 11)で同じ結果(約2.90)が得られます。有意水準をそのまま渡せるので、F.INV.RTのほうが直感的かもしれませんね。
一元配置分散分析(ANOVA)の臨界値——3グループ以上の平均差を判定する
拠点A・B・Cの月間売上(各5件ずつ、合計15件)を分析する場合を考えます。自由度1 = グループ数 – 1 = 2、自由度2 = 全データ数 – グループ数 = 12 です。
有意水準5%の臨界値を求めます。
=F.INV(0.95, 2, 12)
結果は約3.89です。計算したF値(たとえば3.0)がこの臨界値を下回っていれば、「3拠点の平均に有意な差があるとはいえない」と判断します。
F値が臨界値を超えた場合は、「少なくとも1組のグループ間に有意な差がある」ということです。どのグループ間に差があるかは、追加の多重比較検定で調べてくださいね。
回帰分析のF値判定——モデル全体が意味を持つか確認する
説明変数3つ・サンプル数30の重回帰分析でF値が5.2だったとします。自由度1 = 3、自由度2 = 26 です。
=F.INV(0.95, 3, 26)
結果は約2.98です。F値5.2はこの臨界値を大きく超えているので、「回帰モデルは統計的に有意」と判断できますね。
NOTE
臨界値との比較だけでなく、F.DIST.RT関数でp値も確認するとより丁寧です。
=F.DIST.RT(5.2, 3, 26)の結果が0.05未満であれば有意です。
F分布関数ファミリーの使い分け
Googleスプレッドシートには、F分布に関連する関数がいくつかあります。それぞれの役割を整理しておきましょう。
| 関数 | 方向 | 用途 |
|---|---|---|
| F.DIST | F値 → 確率(左側) | 累積確率や確率密度を求める |
| F.DIST.RT | F値 → 確率(右側) | p値の算出に直結 |
| F.INV | 確率 → F値(左側) | 臨界値の算出(この記事の関数) |
| F.INV.RT | 確率 → F値(右側) | 有意水準から直接臨界値を求める |
| F.TEST | データ範囲 → p値 | 分散比を自分で計算しなくてよい |
使い分けのポイントは「やりたいこと」で決まります。
- p値を求めたい → F.DIST.RTにF値を渡す
- 臨界値を求めたい → F.INVまたはF.INV.RTに確率を渡す
- データから直接F検定したい → F.TESTにデータ範囲を渡す
類似する逆関数との比較
F.INV以外にも、分布の逆関数はいくつかあります。使う場面が異なるので整理しておきましょう。
| 関数 | 対応する分布 | 主な用途 |
|---|---|---|
| F.INV | F分布 | 分散の比較・分散分析の臨界値 |
| T.INV | t分布 | 少数サンプルの平均差検定・信頼区間 |
| CHISQ.INV | カイ二乗分布 | カテゴリデータの偏り検定の臨界値 |
| NORM.INV | 正規分布 | 連続データの確率計算の逆算 |
使い分けの基準はシンプルです。
- 分散(ばらつき)を比べたい → F.INV
- 少数サンプルの平均差を検定したい → T.INV
- カテゴリデータの偏りを調べたい → CHISQ.INV
- 連続データの位置から値を逆算したい → NORM.INV
F.INV関数でよくあるエラーと対処法
F.INV関数でつまずきやすいポイントをまとめました。
確率に0以下または1以上を指定して#NUM!エラー
確率は0より大きく1より小さい値でなければなりません。0や1、負の値を指定すると#NUM!エラーになります。
=F.INV(0, 3, 20) → #NUM! エラー
=F.INV(1, 3, 20) → #NUM! エラー
=F.INV(-0.05, 3, 20) → #NUM! エラー
よくあるのは有意水準(0.05)をそのまま渡してしまうケースです。F.INVは左側確率を指定するので、有意水準5%なら 1 - 0.05 = 0.95 を渡す必要があります。
自由度に1未満を指定して#NUM!エラー
自由度1・自由度2はどちらも1以上の正の整数でなければなりません。0を指定すると#NUM!エラーになります。
=F.INV(0.95, 0, 20) → #NUM! エラー
=F.INV(0.95, 3, 0) → #NUM! エラー
引数に文字列を渡して#VALUE!エラー
数値であるべき引数にテキストが入ると#VALUE!エラーになります。セル参照を使うときは、参照先が数値であることを確認しましょう。
=F.INV("abc", 3, 20) → #VALUE! エラー
F.INVとF.INV.RTを混同してしまう
F.INVは左側確率を、F.INV.RTは右側確率を引数に取ります。有意水準5%の臨界値を求めるとき、どちらに何を渡すかを間違えると結果が大きく変わります。
=F.INV(0.95, 3, 20) → 約3.10(正しい: 有意水準5%の臨界値)
=F.INV(0.05, 3, 20) → 約0.16(間違い: これは左側5%点)
=F.INV.RT(0.05, 3, 20) → 約3.10(正しい: こちらでもOK)
迷ったら「有意水準をそのまま渡せるF.INV.RT」を使うのが安全ですよ。
まとめ
F.INV関数は、F分布の確率からF値(臨界値)を逆算する関数です。
- 3つの引数は「確率(左側累積確率)」「自由度1(分子)」「自由度2(分母)」
- F検定の臨界値や分散分析の棄却値を、F分布表なしで求められる
- F.DISTの逆関数で、確率 ⇔ F値の相互変換ができる
- FINV(旧関数)やF.INV.RTは右側確率を指定する点に注意
- 確率に0や1を渡すと
#NUM!エラー。有意水準をそのまま渡さないように注意 - 関連関数として、p値を求めるにはF.DIST.RT、データから直接検定するにはF.TESTが便利
F検定や分散分析の臨界値をサッと求めたいとき、F.INV関数は心強い味方になります。ぜひ活用してみてくださいね。
