スプレッドシートのF.DIST関数の使い方|F分布

スポンサーリンク

「2つのグループのばらつきに差があるのか、それとも誤差の範囲なのか」。こんな疑問を感じたことはありませんか?

目視でグラフを比べるだけでは、報告書に「統計的に差がある」とは書けません。きちんと数値で裏付けを取りたいですよね。

そんなときに使うのがF.DIST関数です。この記事ではGoogleスプレッドシートでのF.DIST関数の使い方を、基本構文から実務活用まで解説します。TRUE/FALSEの違いや、F.DIST.RTとの使い分けもあわせて紹介しますよ。

スプレッドシートのF.DIST関数とは

F.DIST関数(読み方: エフ・ディスト関数)は、F分布にもとづいて確率を返す関数です。「F」は統計学者フィッシャー(Fisher)に由来し、「DIST」は「Distribution(分布)」の略です。

F分布はカイ二乗分布と同じく右に裾を引く非対称の形が特徴です。「2つのグループの分散の比」を評価するときに使います。正規分布t分布とは違い、0以上の値しか取りません。

F.DIST関数にできることをまとめると、次のとおりです。

  • ある値がF分布の左側何%に位置するかを求める(累積確率)
  • F分布のグラフ上の密度(高さ)を取得する
  • 2グループのばらつきに統計的な差があるかを判定する(F検定)
  • 3グループ以上の平均に差があるかを調べる(分散分析・ANOVA)

NOTE

F.DIST関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作は同じです。

基本構文と4つの引数

=F.DIST(x, 自由度1, 自由度2, 累積)

カッコの中に4つの引数を指定します。

引数必須/任意説明
x必須F分布で評価する数値(0以上)
自由度1(degrees_freedom1)必須分子の自由度。1以上の正の整数
自由度2(degrees_freedom2)必須分母の自由度。1以上の正の整数
累積(cumulative)必須TRUEで累積分布、FALSEで確率密度

TIP

F分布には自由度が2つあります。分子の自由度(自由度1)は「グループ数 – 1」、分母の自由度(自由度2)は「全データ数 – グループ数」で求めます。F検定では「分子 = サンプル数1 – 1」「分母 = サンプル数2 – 1」です。小数を渡した場合は整数部分だけが使われます。

FDIST(旧関数名)との関係

GoogleスプレッドシートにはFDISTという関数もあります。ただしFDISTは右側累積確率を返す旧関数で、引数は3つ(x, 自由度1, 自由度2)です。TRUE/FALSEの切り替えはできません。

=FDIST(3.49, 3, 20)         ← 旧関数名(右側確率を返す)
=1 - F.DIST(3.49, 3, 20, TRUE)  ← 新関数で同じ結果

新しく数式を書くときはF.DISTを使っておけば安心ですよ。

TRUE/FALSEで何が変わる?累積か密度かを選ぼう

F.DIST関数の4番目の引数「累積」は、TRUEかFALSEで結果がまったく変わります。この違いを押さえておくことが、F.DIST関数を使いこなすポイントです。

TRUE(累積分布関数)——x以下は全体の何%?

TRUEを指定すると累積分布関数(CDF: ある値以下になる確率の合計)の値を返します。実務で使う場面のほとんどがこちらです。

=F.DIST(3.49, 3, 20, TRUE)

この数式は「自由度(3, 20)のF分布で、3.49以下になる確率」を返します。結果は約0.9500(95.0%) です。

つまりF値が3.49以下に収まる確率が約95%ということです。逆にいえば、3.49を超える確率は約5%ですね。この「3.49」は自由度(3, 20)・有意水準5%の臨界値にあたります。

FALSE(確率密度関数)——その値の密度は?

FALSEを指定すると確率密度関数(PDF: F分布グラフ上のy座標の値)を返します。

=F.DIST(3.49, 3, 20, FALSE)

結果は約0.0226です。これは「確率」ではなくグラフの高さなので、直接「何%」と読むことはできません。F分布のグラフを描くときに使います。

2つを比較してみる(サンプルデータつき)

自由度(5, 20)のF分布で、xを変えたときの結果を比べてみましょう。

xTRUE(累積確率)FALSE(確率密度)
0.50.2289(22.9%)0.5990
10.4563(45.6%)0.5868
20.8171(81.7%)0.1948
2.710.9000(90.0%)0.0951
4.100.9700(97.0%)0.0266

TRUEの列はxが大きくなるほど1に近づいていきます。FALSEの列はx=1付近にピークがあり、そこから離れるほど小さくなります。F分布のピークが1付近にあるのは、2つのグループのばらつきが同程度なら分散比が1前後になるためですよ。

実務活用3パターン

F.DIST関数の基本がわかったところで、実際の業務で使えるパターンを3つ紹介します。

等分散性のF検定——2グループのばらつきに差があるか判定する

「拠点Aと拠点Bの売上のばらつきに差があるか」を判定するのがF検定です。t検定の前提確認(等分散かどうか)としてもよく使われます。

たとえば、拠点A(10件)と拠点B(12件)の売上データがあるとします。分散を計算した結果、分散A = 250、分散B = 100 だったとします。

F値は「大きいほうの分散 / 小さいほうの分散」で求めます。

F値 = 250 / 100 = 2.5

自由度1 = 10 – 1 = 9、自由度2 = 12 – 1 = 11 です。

p値(右側確率)を求めるには、F.DIST.RTを使います。

=F.DIST.RT(2.5, 9, 11)

結果は約0.0808です。有意水準5%(0.05)を超えているので、「ばらつきに有意な差があるとはいえない」と判断できます。等分散を仮定したt検定を使ってよいということですね。

TIP

p値を 1 - F.DIST() で求める場合は =1 - F.DIST(2.5, 9, 11, TRUE) と書きます。F.DIST.RTを使うほうがシンプルですよ。

一元配置分散分析(ANOVA)——3グループ以上の平均に差があるか調べる

「3つの拠点の売上平均に差があるか」を調べるのが分散分析(ANOVA)です。F.DIST関数はANOVAのp値を手動で求めるときに活躍します。

拠点A・B・Cの月間売上(各5件ずつ、合計15件)を分析する例です。分散分析表を作成した結果、次の値が得られたとします。

変動要因変動自由度分散
グループ間12002600
グループ内240012200

F値 = グループ間分散 / グループ内分散 = 600 / 200 = 3.0 です。

=F.DIST.RT(3.0, 2, 12)

結果は約0.0876です。有意水準5%を超えているので、「3拠点の平均に有意な差があるとはいえない」となります。

有意水準10%なら有意になるレベルなので、サンプルを増やして再検証するのも一つの方法ですよ。

TIP

手計算が面倒な場合は、Googleスプレッドシートの「データ」メニューから「統計」を使う方法もあります。ただし仕組みを理解するには、F.DIST関数で一度手動計算してみるのがおすすめです。

回帰分析の有意性検定——モデル全体が意味を持つか確認する

回帰分析の結果で「このモデルは統計的に有意か」を判断するときにもF値を使います。

たとえば、説明変数3つ・サンプル数30の重回帰分析でF値が5.2だったとします。

=F.DIST.RT(5.2, 3, 26)

自由度1 = 説明変数の数 = 3、自由度2 = サンプル数 – 説明変数の数 – 1 = 26 です。

結果は約0.0062です。有意水準5%を大きく下回るので、「この回帰モデルは統計的に有意」と判断できますね。

F分布関数ファミリーの使い分け

Googleスプレッドシートには、F分布に関連する関数がいくつかあります。それぞれの役割を整理しておきましょう。

関数用途特徴
F.DIST左側累積確率または確率密度を返す最も基本的。CDF/PDFを切り替え可能
F.DIST.RT右側累積確率を返す1 – F.DIST(x, df1, df2, TRUE) と同じ。p値の算出に直結
F.INV確率からF値を逆算する(左側)F.DISTの逆関数。臨界値の算出に便利
F.INV.RT確率からF値を逆算する(右側)有意水準から臨界値を直接求められる
F.TEST2つのデータ範囲でF検定のp値を返す分散比を自分で計算しなくてよい

使い分けのポイントをまとめます。

  • 検定のp値を求めたい → F.DIST.RT(右側確率)が直接的
  • 臨界値を求めたい → F.INV.RT(例: 有意水準5%・自由度(3, 20)の臨界値 = 3.10)
  • データ範囲から直接F検定したい → F.TEST
  • グラフを描きたい → F.DIST(x, df1, df2, FALSE)

迷ったらF.DIST.RTでp値を求めるのが実務では安全ですよ。

正規分布(NORM.DIST)・t分布(T.DIST)・カイ二乗分布(CHISQ.DIST)との違い

F.DIST関数とNORM.DIST関数T.DIST関数CHISQ.DIST関数はいずれも確率分布の関数ですが、扱うデータの種類が異なります。

比較項目F.DISTNORM.DISTT.DISTCHISQ.DIST
分布の形右に裾を引く非対称左右対称の釣鐘型左右対称(裾が厚い)右に裾を引く非対称
値の範囲0以上のみ全範囲(-∞ ~ +∞)全範囲(-∞ ~ +∞)0以上のみ
主な用途分散の比較・分散分析連続データの確率計算少数サンプルの平均差の検定カテゴリデータの偏り検定
引数x, 自由度1, 自由度2, 累積x, 平均, 標準偏差, 累積x, 自由度, 累積x, 自由度, 累積

使い分けの基準はシンプルです。

  • 分散(ばらつき)を比べたい → F.DIST
  • 連続データの位置を知りたいNORM.DIST
  • 少数サンプルの平均差を検定したいT.DIST
  • カテゴリデータの偏りを調べたいCHISQ.DIST

よくあるエラーと注意点

F.DIST関数でつまずきやすいポイントをまとめました。

xに負の値を指定して#NUM!エラー

F分布は0以上の値しか取りません。xに負の値を渡すと#NUM!エラーになります。

=F.DIST(-1, 3, 20, TRUE)   ← #NUM! エラー

自由度に1未満を指定して#NUM!エラー

自由度1・自由度2はどちらも1以上の正の整数でなければなりません。0を指定すると#NUM!エラーになります。

=F.DIST(2, 0, 20, TRUE)   ← #NUM! エラー

引数に文字列を渡して#VALUE!エラー

数値であるべき引数にテキストが入ると#VALUE!エラーになります。セル参照を使うときは、参照先が数値であることを確認しましょう。

分散比の大小を逆にしてしまう

F検定では「大きい分散 / 小さい分散」が原則です。逆にするとF値が1未満になり、右側確率が大きくなって検定の感度が落ちます。どちらの分散が大きいかを先に確認してから計算してくださいね。

F.DIST.RTとF.DISTの混同

F.DISTのTRUEは「左側」の累積確率を返します。検定のp値は「右側」なので、F.DIST.RTを使うか、1 - F.DIST(x, df1, df2, TRUE) と書く必要があります。p値を求めるつもりでF.DIST(x, df1, df2, TRUE)をそのまま使うと、結果が逆になってしまいますよ。

まとめ

F.DIST関数は、F分布にもとづいて確率を求める関数です。

  • 4番目の引数にTRUEを指定すると「x以下の累積確率」が返る
  • FALSEを指定するとグラフの密度値が返る(実務ではTRUEが主役)
  • 2グループのばらつき比較(F検定)や3グループ以上の平均差検定(分散分析)に使える
  • p値を求めるにはF.DIST.RT(右側確率)が便利
  • xに負の値を渡すと#NUM!エラー。分散比は「大きい / 小さい」の順に注意
  • 関連関数として、逆算にはF.INV、データから直接検定するにはF.TESTが使える

F検定や分散分析は「ばらつきや平均に意味のある差があるか」を判断する基本の手法です。データ分析の裏付けに、ぜひ活用してみてくださいね。

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