スプレッドシートのNORM.S.DIST関数の使い方|標準正規分布の確率

スポンサーリンク

「zスコアが1.5のとき、上位何%に入るんだろう?」。データ分析で標準化した値を扱うとき、こんな疑問が出てきませんか?

zスコア(標準化された値)を確率に変換するには、標準正規分布表を引くのが昔ながらの方法です。でも毎回表を見るのは面倒ですよね。

そんなときに使えるのが、GoogleスプレッドシートのNORM.S.DIST関数です。この記事では基本構文から実務での活用パターン、似た関数との使い分けまで解説します。

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

NORM.S.DIST関数(読み方: ノーム・エス・ディスト関数)は、標準正規分布にもとづいて確率を返す関数です。「NORM」は「Normal(正規)」、「S」は「Standard(標準)」、「DIST」は「Distribution(分布)」の略です。

標準正規分布とは、平均が0、標準偏差が1の正規分布のことです。あの釣り鐘型のグラフ(ベルカーブ)の中でも、基準となる形ですね。

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

  • zスコアから「その値以下になる確率」を求める(累積確率)
  • 標準正規分布グラフ上の密度(高さ)を取得する
  • 標準化済みデータの相対的な位置を数値化する
  • 統計的な判定(p値の算出など)に活用する

NOTE

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

NORM.S.DIST関数の書き方(構文と引数)

基本構文

=NORM.S.DIST(z, 累積)

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

引数必須/任意説明
z必須確率を求めたいzスコア(標準化された値)
累積(cumulative)必須TRUEで累積分布、FALSEで確率密度

NORM.DIST関数は4つの引数が必要ですが、NORM.S.DIST関数は2つだけです。平均と標準偏差は「0と1」に固定されているので、指定する必要がありません。

TIP

zスコアとは、データを「平均0・標準偏差1」に変換した値のことです。STANDARDIZE関数で計算できますよ。

NORMSDIST(旧関数名)との関係

GoogleスプレッドシートにはNORMSDISTという関数もあります。これはNORM.S.DISTの旧バージョンです。

=NORMSDIST(1.5)              ← 旧関数名(累積確率のみ)
=NORM.S.DIST(1.5, TRUE)      ← 新関数名(推奨)

NORMSDISTは常に累積確率(TRUE相当)を返します。確率密度(FALSE)を指定できません。新しく数式を書くときはNORM.S.DISTを使いましょう。

基本的な使い方

NORM.S.DIST関数の基本を、TRUE(累積確率)とFALSE(確率密度)に分けて見ていきましょう。

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

TRUEを指定すると、累積分布関数(CDF)の値を返します。「指定したz以下になる確率」がわかります。

=NORM.S.DIST(1.5, TRUE)

結果は約0.9332(93.3%) です。zスコアが1.5以下のデータは全体の約93.3%を占めます。つまり上位約6.7%に位置するということですね。

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

FALSEを指定すると、確率密度関数(PDF)の値を返します。正規分布グラフ上のy座標の高さです。

=NORM.S.DIST(1.5, FALSE)

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

代表的なzスコアと確率の対応表

よく使うzスコアの値をまとめておきます。

zスコアTRUE(累積確率)意味
-1.960.0250(2.5%)下位2.5%
-10.1587(15.9%)平均より1σ下
00.5000(50.0%)ちょうど平均
10.8413(84.1%)平均より1σ上
1.960.9750(97.5%)上位2.5%
2.580.9951(99.5%)上位0.5%

z = 0のときちょうど0.5(50%)になるのが、標準正規分布の特徴です。平均を中心に左右対称なので、ちょうど半分になりますよ。

実務での活用パターン

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

テスト成績の相対位置をzスコアから求める

テストの点数をzスコアに変換してから、NORM.S.DIST関数で確率を求めるワークフローです。

たとえば平均点65点・標準偏差12点の試験で82点を取った場合を考えます。

ステップ1: zスコアを計算する

=STANDARDIZE(82, 65, 12)

結果は1.4167です。平均から約1.4σ上に位置しています。

ステップ2: NORM.S.DIST関数で累積確率を求める

=NORM.S.DIST(STANDARDIZE(82, 65, 12), TRUE)

結果は約0.9217(92.2%) です。82点以下が全体の92.2%なので、上位約7.8%に入っていることがわかります。

TIP

この計算は=NORM.DIST(82, 65, 12, TRUE)と同じ結果になります。すでに平均と標準偏差がわかっているなら、NORM.DIST関数を直接使うほうがシンプルです。NORM.S.DIST関数が活きるのは、zスコアが先に手元にある場合ですよ。

品質管理の合否判定ラインを確率で示す

製造業で「規格外品が出る確率」を計算する場面を考えます。部品の長さが平均50mm・標準偏差0.5mmで、規格上限が51mmの場合です。

まずzスコアに変換します。

=STANDARDIZE(51, 50, 0.5)

結果はz = 2です。次にNORM.S.DIST関数で上限を超える確率を求めます。

=1 - NORM.S.DIST(2, TRUE)

結果は約0.0228(2.3%) です。規格上限を超える不良品は約2.3%と見込めます。

両側(上限・下限の両方を超える確率)を求めるなら、次のようにします。

=2 * (1 - NORM.S.DIST(2, TRUE))

結果は約0.0456(4.6%) です。品質管理の報告資料で「規格外率」を示すときに便利ですよ。

統計的検定のp値を求める

データ分析で「この差は偶然ではない」と判断するためのp値を求める場面です。

たとえば検定統計量(z値)が2.1だった場合、両側検定のp値は次のように計算します。

=2 * (1 - NORM.S.DIST(2.1, TRUE))

結果は約0.0357です。一般的な有意水準0.05を下回っているので、「統計的に有意な差がある」と判断できます。

p値(probability value)とは、帰無仮説が正しいと仮定したときに、観測された結果以上に極端な値が得られる確率のことです。値が小さいほど「偶然では起きにくい」ことを意味しますよ。

よくあるエラーと対処法

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

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

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

=NORM.S.DIST("abc", TRUE)   ← #VALUE! エラー

TRUE/FALSEの指定忘れ

2番目の引数は省略できません。目的に合わせてTRUEかFALSEを指定してください。「z以下の確率」が欲しいならTRUE、グラフの高さが欲しいならFALSEです。実務ではTRUEを使う場面がほとんどですよ。

NORM.DIST関数と引数の数を間違える

NORM.S.DIST関数は引数が2つですが、NORM.DIST関数は4つ必要です。間違えて平均や標準偏差を渡そうとすると、引数が多すぎるエラーになります。

=NORM.S.DIST(1.5, 0, 1, TRUE)   ← 引数が多すぎるエラー
=NORM.S.DIST(1.5, TRUE)          ← 正しい書き方

似た関数との違い・使い分け

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

関数引数用途関係性
NORM.S.DISTz, 累積標準正規分布の確率を求める本記事の関数
NORM.DISTx, 平均, 標準偏差, 累積任意の正規分布の確率を求めるNORM.S.DISTの汎用版
NORM.INV確率, 平均, 標準偏差確率から値を逆算するNORM.DISTの逆関数
GAUSSz平均からzまでの面積を求めるNORM.S.DIST(z,TRUE) – 0.5
PHIz標準正規分布の密度を返すNORM.S.DIST(z,FALSE) と同じ

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

  • zスコアが手元にある → NORM.S.DIST(引数2つでシンプル)
  • 生データから直接確率を求めたいNORM.DIST(平均・標準偏差を指定)
  • 確率から値を逆算したいNORM.INV
  • 平均からの片側面積だけ知りたいGAUSS
  • グラフの高さだけ欲しいPHI

NORM.S.DISTとNORM.DISTの関係を数式で表すと、こうなります。

=NORM.S.DIST(1.5, TRUE)          ← 標準正規分布に特化
=NORM.DIST(1.5, 0, 1, TRUE)      ← 平均0・標準偏差1を明示(結果は同じ)

すでにzスコアに変換済みのデータを扱うならNORM.S.DIST関数が便利です。生データから確率を求めるならNORM.DIST関数を使いましょう。

まとめ

NORM.S.DIST関数は、標準正規分布にもとづいてzスコアから確率を求める関数です。

  • 引数は2つだけ。z値とTRUE/FALSEを指定する
  • TRUEで「z以下の確率」、FALSEでグラフの密度値を返す
  • STANDARDIZE関数でzスコアに変換してから使うのが基本のワークフロー
  • テスト成績の分析、品質管理の規格外率、統計的検定のp値算出に活用できる
  • NORM.DIST関数の「平均0・標準偏差1」版。引数が少ないぶんシンプルに書ける
  • GAUSS関数PHI関数との関係も押さえておくと、場面に応じた使い分けができる

「このzスコアは上位何%?」をスプレッドシートでサッと計算できるようになると、統計分析の幅がぐっと広がります。ぜひ実際のデータで試してみてくださいね。

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