「正規分布なら知っているけど、対数正規分布って何?」「LOGNORM.DIST関数の引数のmeanとstandard_devって、何の平均と標準偏差?」と戸惑った経験はないでしょうか。
ExcelのLOGNORM.DIST関数は、対数正規分布に従うデータの確率を計算する関数です。株価収益率や製品寿命、年収分布など、実は私たちの身の回りにあふれている「右に裾の長いデータ」を扱うときに重宝します。
この記事では、LOGNORM.DIST関数の構文と4つの引数の意味、cumulative引数の使い分け、そして実務での活用例まで、つまずきやすいポイントを丁寧に押さえながら解説します。
ExcelのLOGNORM.DIST関数とは?
LOGNORM.DIST関数は、対数正規分布(log-normal distribution)に従う確率変数 x に対して、確率密度や累積確率を返す統計関数です。Excel 2010以降で使えます。
対数正規分布をかんたんに説明すると
対数正規分布は、ひと言でいうと「対数を取ると正規分布になる分布」のことです。
たとえば、株価のデータをそのままヒストグラムにすると右側に長い裾を引いた非対称な形になります。ところが「LN(株価)」を計算してヒストグラムにすると、見慣れた左右対称のベル型(正規分布)に近づきます。これが対数正規分布の正体です。
正規分布が「左右対称・マイナス値もOK」なのに対し、対数正規分布は「右に裾が長い・プラス値のみ」という特徴があります。
なぜ対数正規分布が実務で重要なのか
身の回りには、対数正規分布で近似できるデータがたくさんあります。
- 株価や為替の収益率(金融データ)
- 家電や機械の故障時期(信頼性データ)
- 個人の年収・所得分布(経済データ)
- 不動産価格(市場データ)
- 雨量や粒径(自然データ)
これらに共通するのは「複数の要因の掛け算で値が決まる」「マイナスにならない」「ごく一部に大きな値がある」という性質です。こうした右裾の長いデータを正規分布で扱うと現実とズレが生じるため、対数正規分布の出番になります。
LOGNORM.DIST関数の構文と引数
まずは構文と4つの引数を1つずつ見ていきましょう。とくに mean と standard_dev は誤解しやすいので、しっかり押さえてください。
構文の基本形
=LOGNORM.DIST(x, mean, standard_dev, cumulative)
引数は4つすべて必須です。
| 引数 | 必須 | 説明 |
|---|---|---|
| x | 必須 | 確率を求めたい値(x > 0) |
| mean | 必須 | LN(x) の平均(対数を取った値の平均) |
| standard_dev | 必須 | LN(x) の標準偏差(対数を取った値の標準偏差、> 0) |
| cumulative | 必須 | TRUE = 累積分布関数、FALSE = 確率密度関数 |
引数x(確率を求めたい値)
評価したい値を指定します。0より大きい値(x > 0)でなければなりません。
たとえば「株価が100円以下になる確率」を求めるなら、x には 100 を渡します。0や負の値を入れると #NUM! エラーになります。
引数mean(対数の平均)
ここが最大の落とし穴です。mean は元の x の平均ではなく、LN(x) の平均を指定します。
たとえば株価データがあるとき、平均株価ではなく「LN(株価) の平均」を渡す必要があります。Excelでは次のように計算できます。
=AVERAGE(LN(株価データ範囲))
この値を mean に使います。
引数standard_dev(対数の標準偏差)
mean と同じく、こちらもLN(x) の標準偏差を指定します。0より大きい値が必要です。
=STDEV.S(LN(株価データ範囲))
サンプルデータならSTDEV.S(標本標準偏差)、母集団全体ならSTDEV.P(母標準偏差)を使い分けます。
引数cumulative(TRUE / FALSE の使い分け)
- TRUE: 累積分布関数(CDF)を返す。x 以下となる確率
- FALSE: 確率密度関数(PDF)を返す。x における密度(グラフの高さ)
実務では「○○以下の確率を求めたい」というニーズが圧倒的に多いため、TRUE を使う場面が大半です。FALSE は分布のグラフを描きたいときに使います。
LOGNORM.DIST関数の基本的な使い方
実際にExcelで動かしてみましょう。ここでは「LN(x) の平均=4、標準偏差=0.5」の対数正規分布を例に使います。
累積分布関数(cumulative=TRUE)の例
「x が 100 以下になる確率」を求めます。
=LOGNORM.DIST(100, 4, 0.5, TRUE)
結果はおよそ 0.7367 です。つまり、この対数正規分布のもとでは、x が 100 以下になる確率は約73.67%ということになります。
「100 以上になる確率」を求めたいときは、1 から引きます。
=1 - LOGNORM.DIST(100, 4, 0.5, TRUE)
結果はおよそ 0.2633(26.33%)です。
「50 から 200 の間に入る確率」のように範囲を指定したい場合は、累積確率の差を取ります。
=LOGNORM.DIST(200, 4, 0.5, TRUE) - LOGNORM.DIST(50, 4, 0.5, TRUE)
確率密度関数(cumulative=FALSE)の例
x = 100 における確率密度を求めます。
=LOGNORM.DIST(100, 4, 0.5, FALSE)
結果はおよそ 0.0067 です。これは「確率」ではなく「密度」(グラフの高さ)であることに注意してください。確率密度関数の値そのものに業務的な意味があるケースは少なく、主にグラフ化のために使います。
x の値を 1 から 300 まで変化させて FALSE で計算し、折れ線グラフにすると、対数正規分布の特徴的な「右に裾の長い山型」のグラフが描けます。
LOGNORM.DIST関数の実務での活用例
ここからは具体的な業務シナリオで使い方を見ていきます。
株価収益率の確率推定
株価データは対数正規分布で近似されることが多く、ブラック・ショールズモデルなど金融工学の基礎にもなっています。
過去の株価データから LN(株価) の平均が 4.5、標準偏差が 0.3 と推定できたとします。
「来月、株価が 80 円以下になる確率」を求めるなら次のとおりです。
=LOGNORM.DIST(80, 4.5, 0.3, TRUE)
結果はおよそ 0.0786(7.86%)。「下落リスクは1割未満」と判断する材料になります。
実際の業務では、過去の価格データから自分で平均と標準偏差を計算して使います。
mean: =AVERAGE(LN(価格範囲))
standard_dev: =STDEV.S(LN(価格範囲))
製品寿命・故障時期の予測
家電や機械の寿命データは、信頼性工学の分野で対数正規分布があてはめられることがあります(ワイブル分布も併用されます)。
ある製品の寿命データから LN(寿命年数) の平均が 2.0、標準偏差が 0.5 と推定できたとします。
「5年以内に故障する確率」を求めるなら次のとおりです。
=LOGNORM.DIST(5, 2.0, 0.5, TRUE)
結果はおよそ 0.7286(72.86%)。「保証期間を5年に設定した場合、約7割の製品が保証期間内に故障する可能性がある」という判断材料になります。
年収・所得分布の分析
所得分布も対数正規分布(または上位がパレート分布)で近似されることが知られています。
ある集団の LN(年収) の平均が 6.5(≒ 年収665万円相当)、標準偏差が 0.4 と推定できたとします。
「年収800万円以下の社員の割合」は次のとおりです。
=LOGNORM.DIST(800, 6.5, 0.4, TRUE)
結果はおよそ 0.7350(73.50%)。
「年収800万円以上の社員の割合」を求めたいときは1から引きます。
=1 - LOGNORM.DIST(800, 6.5, 0.4, TRUE)
結果はおよそ 0.2650(26.50%)。報酬制度の設計や昇給シミュレーションに活用できます。
NORM.DIST関数との違いと使い分け
ExcelにはLOGNORM.DISTとよく似たNORM.DIST関数(正規分布版)があります。両者の違いを整理しておきましょう。
| 項目 | NORM.DIST | LOGNORM.DIST |
|---|---|---|
| 対象分布 | 正規分布 | 対数正規分布 |
| 引数の意味 | x の平均・標準偏差 | LN(x) の平均・標準偏差 |
| x の範囲 | -∞ ~ +∞ | x > 0 のみ |
| 分布の形 | 左右対称(ベル型) | 右に裾が長い非対称 |
| 適するデータ | 身長・体重・測定誤差 | 株価・年収・寿命 |
使い分けの判断基準
- データが左右対称・マイナス値もあり得る → NORM.DIST
- データが右に裾が長い・プラスのみ → LOGNORM.DIST
- 迷ったらヒストグラムを描いてみる。対称ならNORM.DIST、右裾が長ければLOGNORM.DIST
「複数の要因の掛け算で決まる量」(株価・所得など)は対数正規分布、「複数の要因の足し算で決まる量」(測定誤差など)は正規分布、というのも目安になります。
関連関数との違い
LOGNORM.INV関数との関係
LOGNORM.INV関数は、LOGNORM.DISTの逆関数にあたります。
- LOGNORM.DIST: 値 → 確率(例: 「x=100 のときの累積確率は?」)
- LOGNORM.INV: 確率 → 値(例: 「累積確率95%にあたる x は?」)
たとえば「上位5%の株価ライン(VaR的な閾値)」を求めたいときは LOGNORM.INV を使います。
=LOGNORM.INV(0.95, 4.5, 0.3)
旧LOGNORMDIST関数(ドットなし)との違い
LOGNORMDIST(ドットなし)は Excel 2007以前の旧関数で、互換性のために残されています。LOGNORM.DIST との大きな違いは2つです。
- cumulative 引数がない: 常に累積分布関数(CDF)を返す。確率密度関数を計算したい場合は使えない
- 将来廃止される可能性がある: Microsoftは新規にはLOGNORM.DISTの使用を推奨している
新しく数式を組むなら、LOGNORM.DISTを使いましょう。
よくあるエラーと対処法
#NUM! エラー:引数が範囲外
| 原因 | 対処 |
|---|---|
| x ≤ 0 を指定した | x > 0 になるよう値を確認する |
| standard_dev ≤ 0 を指定した | standard_dev > 0 になるよう値を確認する |
対数正規分布は正の値(x > 0)でしか定義されないため、0や負の値を渡すとエラーになります。
#VALUE! エラー:引数が数値でない
引数のいずれかが文字列や空欄になっているとこのエラーが出ます。セル参照先が数値かどうかを確認してください。
計算結果が想定と違うときの最頻原因
「結果がほぼ1や0に張り付いてしまう」「明らかにおかしい確率が返る」ときは、ほぼ確実に mean / standard_dev に対数を取る前の値を渡してしまっていることが原因です。
たとえば株価データから「平均=300、標準偏差=80」をそのまま渡すと、対数正規分布の引数としては桁が大きすぎて計算が破綻します。
正しくは LN(x) を取ってから平均・標準偏差を計算します。
mean に渡す値: =AVERAGE(LN(データ範囲))
standard_dev に渡す値: =STDEV.S(LN(データ範囲))
この一手間を忘れないことが、LOGNORM.DIST関数を正しく使う最大のコツです。
まとめ
ExcelのLOGNORM.DIST関数は、対数正規分布に従うデータの確率を計算する統計関数です。最後に、この記事のポイントを振り返っておきましょう。
- 構文は
=LOGNORM.DIST(x, mean, standard_dev, cumulative) - mean と standard_dev は「LN(x) の」平均・標準偏差を渡す(最重要)
- cumulative は TRUE(累積分布)が実務で多用される
- 株価収益率・製品寿命・年収分布など右裾の長いデータに適する
- 対称データには NORM.DIST、右裾の長いデータには LOGNORM.DIST と使い分ける
- 確率→値の逆計算は LOGNORM.INV を使う
対数正規分布は最初こそ取っつきにくいですが、一度コツをつかめば「正規分布じゃ表現しきれない、現実のデータ」を扱うための強力な武器になります。手元のデータでぜひ試してみてください。
