「古いExcelファイルをスプレッドシートで開いたら、FINVっていう関数が入っていた。これって何をしている数式なの?」。こんな場面に出くわしたことはありませんか?
FINVの正体がわからないまま放置すると、シートを修正するときに手が出せなくなってしまいます。
FINV関数はF分布の臨界値を求める互換関数です。この記事ではGoogleスプレッドシートでのFINV関数の使い方を、構文から実務活用まで解説します。後継のF.INV.RT関数との関係もあわせて紹介しますよ。
スプレッドシートのFINV関数とは
FINV関数(読み方: エフ・インバース関数)は、F分布の右側確率からF値(臨界値)を逆算する互換関数です。
「INV」は「Inverse(逆)」の略です。Excel 2007以前から使われていた旧式の関数で、Googleスプレッドシートでは互換性を保つためにサポートされています。
たとえば「自由度(3, 20)のF分布で、右側5%に対応するF値はいくつか」を1つの数式で求められます。F検定や分散分析で「臨界値」を算出するときに使いますよ。
FINV関数にできることをまとめると、次のとおりです。
- 有意水準(右側確率)からF値を逆算する
- F検定の臨界値を求める
- 分散分析(ANOVA)の棄却値を算出する
- 古いExcelテンプレートの数式をそのまま使える
NOTE
FINV関数はGoogleスプレッドシートで使えます。ただし、Googleの公式ドキュメントでは後継のF.INV.RT関数の使用を推奨しています。新規に数式を作るなら、F.INV.RTのほうがおすすめです。
基本構文と3つの引数
=FINV(確率, 自由度1, 自由度2)
カッコの中に3つの引数を指定します。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 確率(probability) | 必須 | F分布の右側確率。0より大きく1より小さい値 |
| 自由度1(degrees_freedom1) | 必須 | 分子の自由度。1以上の正の整数 |
| 自由度2(degrees_freedom2) | 必須 | 分母の自由度。1以上の正の整数 |
TIP
自由度(じゆうど)とは、データから自由に値を決められる個数のことです。F検定では「サンプルサイズ – 1」で求めます。分散分析では分子が「グループ数 – 1」、分母が「全データ数 – グループ数」です。小数を渡した場合は整数部分だけが使われますよ。
F.INV.RT関数との関係
FINV関数はF.INV.RT関数とまったく同じ動作をします。
=FINV(0.05, 3, 20) → 約3.10
=F.INV.RT(0.05, 3, 20) → 約3.10(同じ結果)
等価式で表すと、次の関係です。
FINV(p, df1, df2) = F.INV.RT(p, df1, df2)
FINVは旧バージョンとの互換性のために残されている名前です。新しく数式を書くときはF.INV.RTを使いましょう。既存のシートにFINVが入っている場合はそのまま使い続けても問題ありませんよ。
F.INV関数との違い(右側 vs 左側)
F.INV関数は左側累積確率を引数に取ります。一方、FINV関数は右側確率を引数に取ります。同じ臨界値を求める場合でも、渡す確率の値が異なります。
=FINV(0.05, 3, 20) → 約3.10(右側5%のF値)
=F.INV(0.95, 3, 20) → 約3.10(左側95%のF値)
どちらも同じ結果ですが、FINV(= F.INV.RT)は有意水準をそのまま渡せます。「1から引く」計算が不要なので、検定のときはFINVのほうが直感的です。
等価式は次のとおりです。
FINV(p, df1, df2) = F.INV(1 - p, df1, df2)
FINV関数の基本的な使い方
まずはシンプルな例で動きを確認してみましょう。
有意水準5%の臨界値を求める
自由度(3, 20)のF分布で、有意水準5%の臨界値を求めます。
=FINV(0.05, 3, 20)
結果は約3.10です。「自由度(3, 20)のF分布で、右側5%に位置するF値は3.10」という意味です。計算したF値がこの臨界値を超えていれば、有意水準5%で「統計的に有意」と判断します。
有意水準を変えた場合の比較
有意水準を変えるとF値がどう変わるか見てみましょう。
| 有意水準(右側確率) | FINV(確率, 3, 20) | 意味 |
|---|---|---|
| 0.10 | 2.3801 | 有意水準10%の臨界値 |
| 0.05 | 3.0984 | 有意水準5%の臨界値 |
| 0.025 | 3.8587 | 有意水準2.5%の臨界値 |
| 0.01 | 4.9382 | 有意水準1%の臨界値 |
| 0.001 | 8.0978 | 有意水準0.1%の臨界値 |
有意水準が厳しいほど臨界値は高くなります。「偶然ではないと言い切るためのハードルが上がる」ということですね。
FDIST関数との逆関数関係を確認する
FINV関数はFDIST関数の逆関数です。次の式で元に戻ることを確認できます。
=FDIST(FINV(0.05, 3, 20), 3, 20)
結果は0.05になります。FINVで確率からF値を求め、FDISTでF値から確率に戻しているわけです。
逆方向も同様です。
=FINV(FDIST(3.10, 3, 20), 3, 20)
結果は約3.10に戻ります。この関係を覚えておくと、2つの関数の使い分けに迷わなくなりますよ。
FINV関数の実務活用例
FINV関数の基本がわかったところで、実際の業務で使えるパターンを3つ紹介します。
F検定の臨界値を求める――2グループのばらつきに差があるか判定する
「拠点Aと拠点Bの売上のばらつきに差があるか」を判定するF検定では、計算したF値と臨界値を比較します。臨界値の算出にFINV関数が使えます。
拠点A(10件)と拠点B(12件)のデータがある場合、自由度1 = 9、自由度2 = 11です。有意水準5%の臨界値を求めてみましょう。
=FINV(0.05, 9, 11)
結果は約2.90です。計算したF値がこの臨界値を超えていれば、「ばらつきに有意な差がある」と判断します。
TIP
p値で判定したい場合はFDIST関数を使います。
=FDIST(F値, 9, 11)の結果が0.05未満であれば有意です。臨界値との比較とp値での判定、どちらを使っても結論は同じですよ。
一元配置分散分析(ANOVA)の臨界値――3グループ以上の平均差を判定する
拠点A・B・Cの月間売上(各5件ずつ、合計15件)を分析する場合を考えます。自由度1 = グループ数 – 1 = 2、自由度2 = 全データ数 – グループ数 = 12 です。
有意水準5%の臨界値を求めます。
=FINV(0.05, 2, 12)
結果は約3.89です。計算したF値(たとえば3.0)がこの臨界値を下回っていれば、「3拠点の平均に有意な差があるとはいえない」と判断します。
F値が臨界値を超えた場合は、「少なくとも1組のグループ間に有意な差がある」ということです。どのグループ間に差があるかは、追加の多重比較検定で調べてくださいね。
回帰分析のF値判定――モデル全体が意味を持つか確認する
説明変数3つ・サンプル数30の重回帰分析でF値が5.2だったとします。自由度1 = 3、自由度2 = 26 です。
=FINV(0.05, 3, 26)
結果は約2.98です。F値5.2はこの臨界値を大きく超えているので、「回帰モデルは統計的に有意」と判断できますね。
NOTE
臨界値との比較だけでなく、FDIST関数でp値も確認するとより丁寧です。
=FDIST(5.2, 3, 26)の結果が0.05未満であれば有意です。
F分布関数ファミリーの使い分け
Googleスプレッドシートには、F分布に関連する関数がいくつかあります。それぞれの役割を整理しておきましょう。
新旧関数の対応表
FINV関数をはじめ、F分布の互換関数には新しい名前の関数が用意されています。
| 互換関数(旧) | 新関数 | 動作 |
|---|---|---|
| FINV | F.INV.RT | 右側確率 → F値(この記事の関数) |
| FDIST | F.DIST.RT | F値 → 右側確率 |
| ―(互換なし) | F.INV | 左側累積確率 → F値 |
| ―(互換なし) | F.DIST | F値 → 左側累積確率/確率密度 |
互換関数は旧Excelとの互換性のために残されています。新規に数式を作る場合は新関数を使いましょう。
目的別の関数選び
使い分けのポイントは「やりたいこと」で決まります。
- p値を求めたい → FDIST(またはF.DIST.RT)にF値を渡す
- 臨界値を求めたい(有意水準から直接) → FINV(またはF.INV.RT)に有意水準を渡す
- 臨界値を求めたい(左側確率から) → F.INVに
1 - 有意水準を渡す - データから直接F検定したい → F.TESTにデータ範囲を渡す
FINV関数でよくあるエラーと対処法
FINV関数でつまずきやすいポイントをまとめました。
確率に0以下または1以上を指定して#NUM!エラー
確率は0より大きく1より小さい値でなければなりません。0や1、負の値を指定すると#NUM!エラーになります。
=FINV(0, 3, 20) → #NUM! エラー
=FINV(1, 3, 20) → #NUM! エラー
=FINV(-0.05, 3, 20) → #NUM! エラー
FINV関数は右側確率を指定するので、有意水準5%なら 0.05 をそのまま渡せます。F.INV関数のように 1 - 0.05 = 0.95 に変換する必要はありませんよ。
自由度に1未満を指定して#NUM!エラー
自由度1・自由度2はどちらも1以上の正の整数でなければなりません。0を指定すると#NUM!エラーになります。
=FINV(0.05, 0, 20) → #NUM! エラー
=FINV(0.05, 3, 0) → #NUM! エラー
引数に文字列を渡して#VALUE!エラー
数値であるべき引数にテキストが入ると#VALUE!エラーになります。セル参照を使うときは、参照先が数値であることを確認しましょう。
=FINV("abc", 3, 20) → #VALUE! エラー
FINVとF.INVを混同してしまう
FINVは右側確率を、F.INVは左側累積確率を引数に取ります。名前が似ていますが、渡す確率の方向が異なるので注意してください。
=FINV(0.05, 3, 20) → 約3.10(右側5%の臨界値)
=F.INV(0.05, 3, 20) → 約0.16(左側5%点。検定の臨界値ではない)
=F.INV(0.95, 3, 20) → 約3.10(左側95%点。FINVと同じ結果)
FINV = F.INV.RT(右側)であり、F.INV(左側)とは別の関数です。この対応を覚えておけば混乱しませんよ。
まとめ
FINV関数は、F分布の右側確率(有意水準)からF値(臨界値)を逆算する互換関数です。
- 3つの引数は「確率(右側確率)」「自由度1(分子)」「自由度2(分母)」
- F.INV.RT関数とまったく同じ動作。新規の数式ではF.INV.RTを推奨
- F.INV関数との関係は
FINV(p) = F.INV(1-p)(右側 vs 左側) - FDIST関数の逆関数で、確率とF値の相互変換ができる
- F検定・分散分析・回帰分析の臨界値をサッと求められる
- 確率に0や1を渡すと
#NUM!エラー。有意水準を直接渡せるのがこの関数の利点
既存のシートにFINV関数が入っていればそのまま使い続けて問題ありません。新しく数式を書くときはF.INV.RT関数を使ってみてくださいね。
