スプレッドシートのFINV関数の使い方|F分布逆関数(互換)

スポンサーリンク

「古い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.102.3801有意水準10%の臨界値
0.053.0984有意水準5%の臨界値
0.0253.8587有意水準2.5%の臨界値
0.014.9382有意水準1%の臨界値
0.0018.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分布の互換関数には新しい名前の関数が用意されています。

互換関数(旧)新関数動作
FINVF.INV.RT右側確率 → F値(この記事の関数)
FDISTF.DIST.RTF値 → 右側確率
―(互換なし)F.INV左側累積確率 → F値
―(互換なし)F.DISTF値 → 左側累積確率/確率密度

互換関数は旧Excelとの互換性のために残されています。新規に数式を作る場合は新関数を使いましょう。

目的別の関数選び

使い分けのポイントは「やりたいこと」で決まります。

  • p値を求めたいFDIST(またはF.DIST.RT)にF値を渡す
  • 臨界値を求めたい(有意水準から直接) → FINV(またはF.INV.RT)に有意水準を渡す
  • 臨界値を求めたい(左側確率から)F.INV1 - 有意水準 を渡す
  • データから直接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関数を使ってみてくださいね。

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