「日本人成人男性のうち、身長が 170 cm 以下の人は何パーセントいますか?」
この問いには答えられます。身長の分布を平均 171 cm、標準偏差 5.8 cm の正規分布で近似すれば、答えは約 43.2% です。ところが、よく似た形の別の問いには答えられません。「身長がちょうど 170 cm の人は何パーセントいますか?」— これは 0% です。170.0000… cm と無限桁まで一致する人は、確率 0 でしか存在しません。
同じ「170 cm」という数字を使っているのに、「以下」なら 43.2%、「ちょうど」なら 0%。この落差は、連続分布を扱うときに誰もが一度つまずく場所です。そして落差の理由はひとつしかありません。連続分布では 1 点には確率が乗っておらず、確率は「区間の面積」としてしか存在しない からです。
だとすると、確率を語る主役は確率密度関数 $f(x)$ そのものではなく、$f$ を積み上げた「面積」のほうだと考えるのが自然です。この「左から積み上げた面積」を関数として書いたものが、本記事の主題である 累積分布関数(Cumulative Distribution Function, CDF) $F(x) = P(X \le x)$ です。
CDF は地味な道具に見えますが、確率・統計の実務で最も頻繁に手が伸びる道具です。少なくとも次の場面で、CDF なしには話が始まりません。
- 乱数生成(シミュレーション): どんな分布からでも乱数を作れる 逆変換法 は、「一様乱数を CDF の逆関数に通す」というたった 1 行の操作です。モンテカルロ法、ブートストラップ、粒子フィルタといった手法の足元には必ずこれがあります。
- リスク評価(VaR・信頼性工学): 金融の VaR(バリュー・アット・リスク)は「損失の分布の 99 パーセンタイル」であり、CDF を逆にたどって求めます。部品の寿命を扱う信頼性工学では、CDF の裏返しである 生存関数 $S(t) = 1 – F(t)$ が主役になります。
- 分布の当てはまりの検定: コルモゴロフ・スミルノフ検定(KS 検定)は、データから作った 経験分布関数 と理論 CDF の「最大の縦の隔たり」を統計量にします。CDF の言葉で書かれた検定です。
- 分位点の言語: 中央値、四分位数、パーセンタイル、箱ひげ図、分位点回帰。これらはすべて「CDF を逆に読む」操作として統一的に理解できます。
本記事の内容
- PDF の値そのものには意味がなく、面積 = CDF こそが確率だという視点
- CDF の定義と、なぜ「$\le$」で定義するのかという理由
- CDF が満たす 3 つの性質(単調非減少・右連続・両端の極限)とその証明
- 離散分布の階段状 CDF と、連続分布の滑らかな CDF の対比
- PDF と CDF が微分・積分で結ばれる関係(微積分学の基本定理との接続)
- 分位点関数と、CDF が平坦・不連続なときに必要な一般化逆関数
- 生存関数・ハザード関数、経験分布関数とグリベンコ・カンテリの定理
- 確率積分変換 $F(X) \sim \mathrm{Uniform}(0,1)$ の証明と、逆変換法によるサンプリング
- KS 検定との関係、多変量への拡張(同時分布関数)
前提知識
この記事を読む前に、以下の記事に目を通しておくと理解が深まります。本記事だけで完結するように書いていますが、確率変数・確率密度関数の基本を先に押さえておくとスムーズです。

密度の値には意味がない — 意味があるのは面積
まず、本記事の出発点となる感覚を固めておきましょう。
鉄の棒を思い浮かべてください。「この棒の $x = 3$ cm の地点にある質量は何グラムですか」と聞かれたら、答えは 0 グラムです。1 点は幅を持たないので、質量を持ちようがありません。それでも棒全体には重さがあります。矛盾しているように見えますが、当然です。私たちが測っているのは 線密度(g/cm)であって、質量そのものではないからです。質量が知りたければ、線密度を区間にわたって積分します。
確率密度関数はこれと完全に同じ構造をしています。身長モデル $N(171, 5.8^2)$ で $f(170) = 0.0678$ という数字は、「身長 170 cm の人が 6.78% いる」という意味ではありません。単位は「1/cm」であり、「170 cm 付近では確率が 1 cm あたり 0.0678 の濃さで塗られている」という意味です。確率そのものを取り出すには、幅を与えて積分するしかありません。
$$ P(a \le X \le b) = \int_a^b f(x)\, dx $$
ここで一歩踏み込みます。密度の値そのものには直接の意味がなく、意味があるのは常に面積なのだとしたら、最初から「面積」を関数として持っておいたほうが便利ではないでしょうか。しかも面積を測るには基準点が必要です。基準を $-\infty$(分布の左端)に固定して「そこから $x$ までの面積」を関数にすれば、任意の区間の面積は引き算だけで出せます。
この発想から生まれるのが累積分布関数です。「密度を左から積み上げていったもの」という一言で言えてしまう素朴な関数ですが、素朴だからこそ、離散でも連続でも、1 次元でも多次元でも、同じ形で通用します。

上段が身長の確率密度関数、下段がその累積分布関数です。上段で $x = 165$ cm までを塗った濃い部分の面積 0.150 が、下段では $x = 165$ における曲線の「高さ」0.150 として現れています。同じく $x = 176$ cm までの面積 0.806 が、下段の高さ 0.806 に対応します。上段の「面積」と下段の「高さ」は、同じ情報の見せ方を変えただけだと読み取ってください。面積は目で測るのが難しいのに対し、高さなら定規一本で読めます。これが CDF を持つ最大の実利です。
では、この「積み上げた面積」を数式として正確に定義しましょう。
累積分布関数の定義 — なぜ「≤」なのか
累積分布関数の定義は、驚くほど短く書けます。確率変数 $X$ に対して、
$$ \begin{equation} F(x) = P(X \le x) \end{equation} $$
これだけです。「$X$ が $x$ 以下になる確率」を、$x$ の関数として見ているにすぎません。連続分布であれば、これは密度の左側の面積に一致します。
$$ F(x) = \int_{-\infty}^{x} f(t)\, dt $$
注意したいのは、積分変数に $t$ を使っている点です。$x$ は積分の上端として固定されているので、中で走る変数には別の名前を与える必要があります。ここを混同すると、後で $F$ を微分する場面で必ず詰まります。
さて、定義でひとつ気になるところがあるはずです。なぜ $P(X < x)$ ではなく $P(X \le x)$ と、等号込みの「$\le$」で定義するのでしょうか。
連続分布だけを考えるなら、実はどちらでも構いません。1 点の確率が 0 なので $P(X \le x) = P(X < x)$ が成り立ち、区別する意味がないからです。しかし離散分布では話が変わります。サイコロで $F(3)$ を考えると、「$\le$」なら $P(X \le 3) = 3/6 = 0.5$、「$<$」なら $P(X < 3) = 2/6 \approx 0.333$ と、はっきり違う値になります。
「$\le$」を採用する理由は 2 つあります。
第一に、「積み上げた量」という直感に合う ことです。$x = 3$ の時点で、値 3 に乗っている確率質量はもう「通り過ぎた」と考えるのが自然です。$P(X < 3)$ だと、3 の質量だけが宙ぶらりんになります。
第二に、より本質的な理由として、「$\le$」で定義すると $F$ が右連続になる ことです。右連続な関数は極限操作の扱いが素直で、測度論の枠組みにきれいに乗ります。確率測度と CDF が一対一に対応するという基本定理($F$ が単調非減少・右連続・両端の極限が 0 と 1 を満たせば、それを CDF とする確率測度がただ一つ存在する)は、「$\le$」の約束のうえに成り立っています。
この右連続性は本記事の重要なテーマなので、あとで拡大図つきで丁寧に扱います。まずは「$\le$」がもたらすもう一つの帰結、離散分布の CDF の形を見てみましょう。
離散分布のCDF — 階段関数として立ち上がる
コインを 4 枚投げて、表が出る枚数 $X$ を数えるとします。$X$ は二項分布 $B(4, 0.5)$ に従い、確率は $k = 0, 1, 2, 3, 4$ の順に $0.0625,\ 0.25,\ 0.375,\ 0.25,\ 0.0625$ です。
このとき $F(x) = P(X \le x)$ はどんな形になるでしょうか。$x$ を左から右へ動かしながら考えます。$x < 0$ では該当する値がないので $F = 0$。$x$ が 0 をまたぐ瞬間に $0.0625$ だけ跳ね上がり、$0 \le x < 1$ の間はずっと $0.0625$ のまま平らです。次に $x$ が 1 をまたぐと $0.25$ 増えて $0.3125$。以下同様で、$F$ の値は $0.0625,\ 0.3125,\ 0.6875,\ 0.9375,\ 1.0$ と階段状に上がっていきます。
つまり 離散分布の CDF は階段関数 です。しかもただの階段ではありません。段差の高さが、そのまま確率質量に一致します。
$$ P(X = k) = F(k) – F(k^-) = F(k) – \lim_{x \uparrow k} F(x) $$

左が確率質量関数で、棒の高さがそのまま確率です。右がその CDF で、$k = 2$ での段差 0.3750 が左の $p(2) = 0.3750$ とぴったり一致しているのがわかります。左の棒の高さを左から順に足していくと右の階段の各段の高さになる、という単純な対応です。もうひとつ注目してほしいのは、各段差の上端が黒丸(塗りつぶし)、下端が白丸(中抜き)で描かれていることです。この描き分けが、次に見る右連続性そのものを表しています。
ここで重要な点を押さえておきましょう。PDF と PMF は、離散と連続で「高さ = 確率」「面積 = 確率」と意味が変わってしまう困った関数でした。ところが CDF は違います。離散でも連続でも $F(x) = P(X \le x)$ という定義がそのまま通り、値の意味は常に「$x$ 以下になる確率」です。離散なら階段、連続なら滑らかな曲線、と見た目は違いますが、意味は完全に共通です。
$$ F(x) = \sum_{k \le x} p(k) \quad (\text{離散}), \qquad F(x) = \int_{-\infty}^{x} f(t)\, dt \quad (\text{連続}) $$
離散と連続を統一的に扱えるのは、CDF の大きな長所です。実際、離散と連続が混ざった分布(たとえば「確率 0.3 でちょうど 0、残り 0.7 で指数分布に従う待ち時間」のような混合型)は、PDF でも PMF でも書けませんが、CDF なら素直に書けます。段差と滑らかな上昇が混在した関数になるだけです。
さて、階段でも曲線でもよいなら、CDF はどんな形でもとれるのでしょうか。そうではありません。CDF になれる関数は、3 つの条件で厳しく縛られています。
CDFが満たす3つの性質
CDF は「確率を積み上げた量」なので、その振る舞いは確率の素朴な性質から自動的に決まります。逆に言えば、次の 3 条件を満たす関数は必ずどこかの確率変数の CDF になっています。順に、なぜそうなるのかを確かめましょう。

左が単調非減少($a < b$ なら $F(a) \le F(b)$)、中央が両端の極限($x \to -\infty$ で 0、$x \to +\infty$ で 1)、右が右連続(跳びの点では上側の値をとる)を表しています。左のパネルでは、$x$ を右に動かすと必ず高さが上がるか横ばいになるかのどちらかで、下がる場所がひとつもないことを確かめてください。この 3 つだけが CDF に許された振る舞いのすべてです。
性質1: 単調非減少
$a < b$ を満たす任意の $a, b$ に対して、
$$ F(a) \le F(b) $$
が成り立ちます。証明は集合の包含関係から一瞬です。事象 $\{X \le a\}$ は事象 $\{X \le b\}$ に含まれています($a$ 以下なら当然 $b$ 以下)。確率は集合が大きくなれば増えるか変わらないかなので、
$$ F(a) = P(X \le a) \le P(X \le b) = F(b) $$
直感的にはもっと簡単です。「積み上げた量」なのだから、進めば増えるか横ばい、減ることはありません。ここで「単調増加」ではなく 「単調非減少」 と呼ぶのが大事です。確率が乗っていない区間(たとえばサイコロの $1.2 \le x < 2$ の範囲)では、$F$ は完全に平らになります。平らな部分を持てることが、後で分位点関数を定義するときに厄介な問題を引き起こします。
性質2: 両端の極限は 0 と 1
$$ \lim_{x \to -\infty} F(x) = 0, \qquad \lim_{x \to +\infty} F(x) = 1 $$
左の極限は「どんな値よりも小さい値をとる確率は 0」、右の極限は「どんな値よりも大きくなることはない、つまり必ずどこかの値をとる」と言っているだけです。右端が 1 になるのは、確率の正規化条件(連続なら $\int_{-\infty}^{\infty} f(x)\,dx = 1$、離散なら $\sum_k p(k) = 1$)の CDF 版の表れです。
この性質のおかげで、CDF の値域は $[0, 1]$ に必ず収まります。密度 $f(x)$ が 1 を超えることは普通にあるのに(たとえば標準偏差 0.1 の正規分布のピークは約 3.99 です)、CDF は絶対に 1 を超えません。値の解釈しやすさという点でも、CDF は密度より扱いやすい関数です。
性質3: 右連続
3 つ目が最も技術的で、最も見落とされる性質です。任意の $x$ について、
$$ \lim_{h \downarrow 0} F(x + h) = F(x) $$
つまり右から近づいたときの極限は、その点の値と一致します。一方、左から近づいた極限 $F(x^-)$ は $F(x)$ と一致しないことがあり、そのずれがちょうど $P(X = x)$ になります。
なぜ右だけが連続なのか。答えは定義の「$\le$」に埋まっています。次のセクションで拡大して確認しましょう。
右連続性はどこから来るのか
離散分布の CDF を、跳びの点で思い切り拡大してみます。「$\le$」というたった 1 文字の約束が、グラフのどこに現れるのかを目で見るのが目的です。

右のパネルは、コイン 4 枚の例の $x = 2$ 付近を拡大したものです。$x$ が 2 に届く直前(たとえば $x = 1.999$)では $F(x) = P(X \le 1.999) = P(X \le 1) = 0.3125$ ですが、$x = 2$ に達した瞬間に $F(2) = P(X \le 2) = 0.6875$ へ跳び上がります。黒丸(塗りつぶし)が上側の 0.6875 に、白丸(中抜き)が下側の 0.3125 に置かれている点が肝心です。$x = 2$ における $F$ の値は上側の 0.6875 であり、下側の 0.3125 は「左から近づいたときの極限」であって関数値ではありません。この 2 つの差 0.3750 が、そのまま $P(X = 2)$ になっています。
なぜ上側の値をとるのかを、定義から追ってみましょう。$F(2) = P(X \le 2)$ の右辺には、$X = 2$ という場合が 含まれています。だから $X = 2$ の確率質量 0.375 は $F(2)$ に算入されます。一方、$x$ が 2 より少しでも小さければ $X = 2$ は条件を満たさないので算入されません。
$$ F(2) = \underbrace{P(X \le 1)}_{0.3125} + \underbrace{P(X = 2)}_{0.3750} = 0.6875 $$
では右から近づく場合はどうでしょうか。$x = 2 + h$($h > 0$ は小さい数)で考えると、
$$ F(2 + h) = P(X \le 2 + h) = P(X \le 2) + P(2 < X \le 2 + h) $$
第 2 項は「2 より大きく $2+h$ 以下」の確率です。$h \downarrow 0$ とすればこの区間は空に潰れるので、第 2 項は 0 に収束します。したがって、
$$ \lim_{h \downarrow 0} F(2 + h) = P(X \le 2) = F(2) $$
右からの極限は関数値に一致しました。これが右連続性です。逆に左から近づく場合は、$F(2 – h) = P(X \le 2 – h)$ の右辺から $X = 2$ の質量が最初から抜けているので、$h \downarrow 0$ としても 0.3125 のまま 0.6875 には戻りません。
もし CDF を $P(X < x)$ で定義していたら、状況はちょうど裏返って 左連続 な関数になっていました。つまり「$\le$ で定義する」と「$F$ が右連続になる」は同じ約束の言い換えです。どちらを選んでも数学的には一貫した理論が作れますが、世界標準は「$\le$」=右連続のほうです。統計ソフトの cdf 関数もすべてこの規約で実装されているので、離散分布で cdf(2) を呼ぶと 0.6875 が返ってきます。境界値の扱いでバグを踏みたくないときは、この規約を思い出してください。
ここまでで CDF がどんな関数なのかを押さえました。次は、CDF と PDF が具体的にどう行き来するのかを見ます。
PDFとCDFの関係 — 微積分学の基本定理そのもの
連続分布では、CDF は密度の積分として定義されました。
$$ F(x) = \int_{-\infty}^{x} f(t)\, dt $$
この式の右辺は、上端 $x$ を動かすと値が変わる「積分で作られた関数」です。こういう形の関数を微分すると何が起こるか。それを教えてくれるのが 微積分学の基本定理 です。$f$ が連続なら、
$$ \begin{equation} \frac{dF(x)}{dx} = f(x) \end{equation} $$
つまり CDF を微分すると PDF に戻ります。逆に PDF を積分すると CDF になります。両者は微分・積分で完全に行き来できる、表裏一体の関係にあります。
この関係は、密度の意味を改めて照らし出してくれます。微分の定義に戻ると、
$$ f(x) = \lim_{\Delta x \to 0} \frac{F(x + \Delta x) – F(x)}{\Delta x} = \lim_{\Delta x \to 0} \frac{P(x < X \le x + \Delta x)}{\Delta x} $$
分子は「幅 $\Delta x$ の細い区間に入る確率」、分母はその幅です。だから $f(x)$ は「単位幅あたりの確率」であって、確率そのものではありません。密度が確率でない理由が、CDF の微分という形でくっきり見えます。$\Delta x$ で割る前の $P(x < X \le x+\Delta x) \approx f(x)\Delta x$ が確率で、$f(x)$ は割った後の量なのです。
どちらを基本とみなすべきか、という問いも面白いところです。教科書では PDF を先に定義して CDF を積分で作る流れが多いですが、理論的には CDF のほうが基本 です。理由は 2 つあります。
第一に、CDF はどんな確率変数にも必ず存在します。離散でも連続でも、両者が混ざった分布でも、カントール分布のような病的な例でも、$F(x) = P(X \le x)$ は定義できます。一方、PDF は「$F$ が微分可能である」という追加の仮定がないと存在しません。離散分布に PDF はありません。
第二に、確率測度と CDF が一対一に対応します。「単調非減少・右連続・両端の極限が 0 と 1」という 3 条件を満たす関数を持ってくれば、それを CDF とする確率変数が必ず(本質的に一意に)存在します。分布を指定することと CDF を指定することは同じ、というわけです。
そして CDF の実務上の便利さは、区間確率が引き算一発で出ることです。
$$ P(a < X \le b) = F(b) - F(a) $$
冒頭の身長の例で確かめましょう。$F(170) = 0.4316$、$F(180) = 0.9396$ なので、身長が 170 cm 超 180 cm 以下である確率は $0.9396 – 0.4316 = 0.5081$、約 50.8% です。密度を毎回積分する必要はなく、CDF の値を 2 つ引くだけで済みます。数値積分の誤差に悩まされることもありません。
CDF が「$x$ を入れて確率を返す」関数なら、その逆向き、つまり「確率を入れて $x$ を返す」関数も欲しくなります。それが分位点関数です。
分位点関数と一般化逆関数
「上位 5% に入るには何点必要か」「最悪ケースの 1% を切り捨てた損失額はいくらか」「真ん中に位置する値は何か」。実務で頻繁に問われるのは、確率を与えて値を求める向きの問いです。
これに答えるのが 分位点関数(quantile function) で、記号では $F^{-1}$ または $Q$ と書きます。CDF が $x \mapsto p$ の写像なら、分位点関数は $p \mapsto x$ の逆写像です。
$$ F^{-1}(p) = x \quad \Longleftrightarrow \quad F(x) = p $$

左が標準正規分布の CDF で、$x = 0.6745$ を入れると $p = 0.75$ が返ります。右が分位点関数で、$p = 0.75$ を入れると $x = 0.6745$ が返ります。2 つのグラフは縦軸と横軸を入れ替えただけの関係、つまり直線 $y = x$ で折り返した鏡像です。逆関数のグラフが元の関数を $y = x$ で反転したものになるという一般則が、ここでもそのまま働いていると読み取ってください。左が急な場所(分布が密な場所)では右が平ら、左が平らな場所では右が急になっている点も、逆関数の特徴です。
ところが、この素朴な定義には穴があります。逆関数が存在するには、$F$ が狭義単調増加で連続でなければなりません。実際の CDF はこの条件をしばしば破ります。
問題1: $F$ が平らな区間を持つ場合。 確率が乗っていない領域では $F$ は水平です。たとえばある分布で $F(x) = 0.5$ となる $x$ が区間 $[2, 5]$ 全体に広がっていたら、$F^{-1}(0.5)$ は 2 なのか 5 なのか、あるいはその間なのか決まりません。逆像が 1 点でなく区間になってしまいます。
問題2: $F$ が跳ぶ場合。 離散分布では $F$ の値域に穴があります。コイン 4 枚の例で $F^{-1}(0.5)$ を考えると、$F$ の値は $0.3125$ から $0.6875$ へ跳んでしまうので、$F(x) = 0.5$ をぴったり満たす $x$ はどこにも存在しません。
この 2 つの困難を一挙に解決するのが 一般化逆関数(generalized inverse) です。
$$ \begin{equation} F^{-1}(p) = \inf\{x \in \mathbb{R} : F(x) \ge p\}, \qquad p \in (0, 1) \end{equation} $$
読み方はこうです。「$F(x)$ が $p$ 以上になる $x$ を全部集めて、その中で最も小さいもの(下限)をとる」。$F$ が単調非減少なので、条件を満たす $x$ の集合は必ず右向きの半直線 $[x_0, \infty)$ の形になり、その左端が一意に決まります。
この定義が 2 つの問題をどう解くか確かめましょう。平らな区間の場合、$F(x) = 0.5$ が $[2,5]$ で成り立つなら、$F(x) \ge 0.5$ となる $x$ の集合は $[2, \infty)$ なので、下限は 2 です。平らな区間では左端を選ぶ、という一貫した規則になりました。跳びの場合、コイン 4 枚で $p = 0.5$ なら $F(x) \ge 0.5$ となるのは $x \ge 2$ なので、$F^{-1}(0.5) = 2$ です。$F(2) = 0.6875 \ne 0.5$ ですが、それでも「表が 2 枚」という妥当な答えが返ってきます。跳びでは跳んだ先の値を選ぶ わけです。
一般化逆関数は、$F$ が連続かつ狭義単調増加な場合には通常の逆関数と一致します。だから常にこの定義を使っておけば安全です。実際、scipy の ppf(percent point function)や NumPy の分位点計算は、この一般化逆関数の考え方で実装されています。
なお、一般化逆関数は次の基本的な同値関係を満たします。これは後で確率積分変換や逆変換法を示すときに使う道具です。
$$ F^{-1}(p) \le x \quad \Longleftrightarrow \quad p \le F(x) $$
左向きの含意は $F$ の右連続性から、右向きの含意は下限の定義から従います。右連続性がここで効いてくる、というのは覚えておくと得です。「$\le$ で定義する」という一見どうでもよさそうな約束が、サンプリング理論の土台まで支えているのです。
分位点関数が手に入ったので、統計でおなじみの要約量を CDF の言葉で読み直してみましょう。
中央値・四分位数・パーセンタイル
中央値、四分位数、パーセンタイル。統計の入門で別々に習うこれらの量は、実は全部「分位点関数の特定の入力値」です。
- 中央値(メディアン): $F^{-1}(0.5)$。分布を面積で半分に割る点
- 第1四分位数 $Q_1$: $F^{-1}(0.25)$、第3四分位数 $Q_3$: $F^{-1}(0.75)$
- 第 $k$ パーセンタイル: $F^{-1}(k/100)$
- 四分位範囲 IQR: $Q_3 – Q_1$。箱ひげ図の箱の幅であり、外れ値判定の基準

身長の CDF から 4 つの分位点を読み取った図です。縦軸で確率を決めて水平に進み、曲線に当たった点の $x$ 座標を読むだけで、$Q_1 = 167.09$ cm、中央値 $= 171.00$ cm、$Q_3 = 174.91$ cm、90 パーセンタイル $= 178.43$ cm が得られます。正規分布は左右対称なので中央値が平均 171 cm とぴったり一致し、$Q_1$ と $Q_3$ も中央値から等距離($\pm 3.91$ cm)に並んでいる点に注目してください。IQR は $174.91 – 167.09 = 7.82$ cm で、これは標準偏差 5.8 cm の約 1.349 倍です。この 1.349 倍という係数は正規分布に固有の値で、逆に IQR から標準偏差を頑健に推定する($\hat{\sigma} = \mathrm{IQR}/1.349$)というテクニックの根拠になっています。
平均と中央値の使い分けも、CDF の視点だと見通しがよくなります。平均は密度を重みとした重心なので、遠くの外れ値に強く引っ張られます。一方、中央値は「CDF が 0.5 を横切る場所」でしかないので、外れ値がどれだけ遠くにあっても位置は動きません。年収分布のように右に長い裾を持つデータで「平均年収」より「中央値」が実感に近いと言われるのは、この違いのためです。

金融の VaR も同じ構造です。「99% VaR」とは損失分布の $F^{-1}(0.99)$ のことで、「100 日のうち 99 日はこの額を超えない」という意味の分位点です。CDF を逆にたどるという操作が、そのままリスク指標の定義になっています。
ここまでは CDF を「左から積み上げた量」として見てきました。しかし分野によっては、右側から見たほうが自然な場面があります。
生存関数とハザード関数
部品の寿命を扱うとき、技術者が知りたいのは「壊れた確率」より「まだ動いている確率」です。この視点で CDF を裏返した関数を 生存関数(survival function) または信頼度関数と呼びます。
$$ \begin{equation} S(t) = P(T > t) = 1 – F(t) \end{equation} $$
$T$ は寿命(故障までの時間)です。$S(t)$ は「時刻 $t$ を超えて生き残る確率」で、$F$ が右上がりなら $S$ は右下がり、$S(0) = 1$ から始まって $t \to \infty$ で 0 に落ちていきます。$F + S = 1$ という関係が常に成り立つので、情報としては CDF と完全に等価です。単に見る向きが違うだけです。
生存関数からもう一歩進むと、信頼性工学の主役である ハザード関数(hazard function) が出てきます。
$$ \begin{equation} h(t) = \frac{f(t)}{S(t)} = \lim_{\Delta t \to 0} \frac{P(t < T \le t + \Delta t \mid T > t)}{\Delta t} \end{equation} $$
定義式の右側を読むと意味がわかります。分子は「時刻 $t$ まで生き残った、という条件のもとで、直後の $\Delta t$ の間に壊れる確率」です。つまりハザード関数は 「今まで無事だった個体が、次の瞬間に壊れる率」 を表します。$f(t)$ が「最初から見て時刻 $t$ に壊れる密度」であるのに対し、$h(t)$ は「$t$ まで生き延びた個体だけを母集団に取り直した密度」です。この条件付けの有無が両者の違いです。
$h$ と $S$ は次のように結ばれます。$S'(t) = -f(t)$ に注意して定義式を書き換えると、
$$ h(t) = \frac{f(t)}{S(t)} = -\frac{S'(t)}{S(t)} = -\frac{d}{dt}\log S(t) $$
最後の等号は対数微分の公式です。両辺を 0 から $t$ まで積分し、$S(0) = 1$(つまり $\log S(0) = 0$)を使うと、
$$ \int_0^t h(u)\, du = -\log S(t) $$
両辺の符号を反転して指数をとると、生存関数がハザードから復元できます。
$$ S(t) = \exp\left(-\int_0^t h(u)\, du\right) $$
積分の中身 $H(t) = \int_0^t h(u)du$ を累積ハザードと呼びます。CDF・生存関数・ハザード関数・累積ハザードは、どれか 1 つが決まれば残りも決まる、同じ情報の 4 通りの表現です。

左は指数分布($\lambda = 0.5$)の CDF と生存関数です。$t = 2$ 年の時点で $F(2) = 0.6321$、$S(2) = 0.3679$ となり、足すとちょうど 1 になっています。右はハザード関数を 3 パターン並べたものです。指数分布のハザードは水平な直線、つまり 時刻によらず一定 です。これは「今まで何年動いていたかに関係なく、次の 1 時間に壊れる確率は同じ」という無記憶性の表れで、電子部品の偶発故障期のモデルになります。一方、ワイブル分布の形状パラメータを 2.5 にすると右上がりのハザード(使うほど壊れやすくなる摩耗故障型)、0.7 にすると右下がりのハザード(初期不良を乗り切れば安定する初期故障型)になります。この 3 本を時間軸でつなぐと、信頼性工学で有名な「バスタブ曲線」ができあがります。
ここまでは「真の分布がわかっている」前提で話してきました。しかし現実に手元にあるのはデータだけです。データから CDF を作るとどうなるでしょうか。
経験分布関数とグリベンコ・カンテリの定理
$n$ 個の観測値 $x_1, \dots, x_n$ が手元にあるとき、最も素朴な CDF の推定量は「実際に $x$ 以下だったデータの割合」です。これを 経験分布関数(empirical distribution function, ECDF) と呼びます。
$$ \begin{equation} F_n(x) = \frac{1}{n} \sum_{i=1}^{n} \mathbf{1}(x_i \le x) \end{equation} $$
$\mathbf{1}(\cdot)$ は条件が真なら 1、偽なら 0 を返す指示関数です。定義そのままに読めば「$x$ 以下のデータ点を数えて $n$ で割る」だけで、平滑化パラメータもビン幅も要りません。カーネル密度推定ではバンド幅の選択に悩みますが、ECDF にはそういう選択肢が一切ないので、恣意性が入りません。これが ECDF の大きな強みです。
$F_n$ は各データ点で $1/n$ ずつ跳ぶ階段関数、つまり「$n$ 個の点に等確率 $1/n$ を乗せた離散分布の CDF」です。そして各点 $x$ を固定すると、$\mathbf{1}(x_i \le x)$ は成功確率 $F(x)$ のベルヌーイ試行なので、
$$ E[F_n(x)] = F(x), \qquad V[F_n(x)] = \frac{F(x)\{1 – F(x)\}}{n} $$
不偏推定量であり、分散は $1/n$ で減っていきます。大数の法則から、各点ごとに $F_n(x) \to F(x)$ が成り立ちます。
しかし ECDF については、もっと強いことが言えます。グリベンコ・カンテリの定理 です。
$$ \begin{equation} \sup_{x \in \mathbb{R}} |F_n(x) – F(x)| \xrightarrow{\text{a.s.}} 0 \quad (n \to \infty) \end{equation} $$
$\sup$(上限)がついている点が重要です。「各点ごとに近づく」(各点収束)ではなく、「最も乖離が大きい場所での差すら 0 に潰れる」(一様収束)と主張しています。しかも概収束(almost surely)という強い意味で成り立ちます。この定理は、統計学の基礎をなす結果のひとつです。データを増やせば経験分布は真の分布に、どこか一箇所で裏切られることなく、全体として近づいていく。ブートストラップ法が「経験分布からの再標本抽出で真の分布の性質を近似できる」と主張できる根拠も、この定理にあります。

標準正規分布から $n = 10, 50, 500$ の標本を取り、経験分布関数(橙の階段)と真の CDF(水色の曲線)を重ねました。最大乖離は $n=10$ で 0.2031、$n=50$ で 0.1530、$n=500$ で 0.0449 と、$n$ が増えるにつれて確実に縮んでいます。$n=10$ ではガタガタの粗い階段で真の曲線から大きく外れているのに、$n=500$ ではもはや階段と曲線の区別がつかないほど重なっている点に注目してください。乖離の縮み方は $1/\sqrt{n}$ 程度で、実際 $n$ を 50 倍にすると $\sqrt{50} \approx 7.1$ 倍縮むはずで、0.1530 / 7.1 ≈ 0.0215 —— 実測 0.0449 は同じオーダーに収まっています(有限標本のゆらぎがあるので、1 回の試行では正確な比にはなりません)。
ECDF を実装するのは 2 行で済みます。ソートして、順位を $n$ で割るだけです。
import numpy as np
def ecdf(sample):
"""経験分布関数を (x, F_n(x)) の階段データとして返す"""
xs = np.sort(sample)
ys = np.arange(1, len(xs) + 1) / len(xs) # i 番目の点で i/n まで上がる
return xs, ys
この 2 行が意味を持つのは、ソートした $i$ 番目の値(第 $i$ 順序統計量)以下のデータがちょうど $i$ 個だから、その点での $F_n$ が $i/n$ になる、という単純な事実です。ECDF と順序統計量が同じものを別の角度から見ているだけだとわかります。
さて、ここまでで CDF の基本的な道具が揃いました。ここから先が、CDF が単なる「便利な表現」を超えて 能動的な道具 に変わるパートです。鍵になるのは、CDF を確率変数に適用するという少し奇妙な操作です。
確率積分変換 — F(X) は必ず一様分布になる
確率変数 $X$ に、その $X$ 自身の CDF $F$ を適用してみます。$U = F(X)$ という新しい確率変数を作るわけです。$F$ は $[0,1]$ に値をとる関数なので、$U$ も $[0,1]$ の値をとります。では $U$ はどんな分布に従うのでしょうか。
答えは驚くほどきれいです。$X$ がどんな連続分布に従っていても、
$$ \begin{equation} U = F(X) \sim \mathrm{Uniform}(0, 1) \end{equation} $$
自分自身の CDF を通すと、どんな分布も一様分布に化けます。 正規分布でも指数分布でも、極端に歪んだ分布でも、結果は同じ一様分布です。これを 確率積分変換(probability integral transform, PIT) と呼びます。
証明してみましょう。$F$ が連続かつ狭義単調増加である場合を考えます(一般の場合も一般化逆関数を使えば同様に示せます)。$U$ の CDF、つまり $P(U \le p)$ を $p \in (0,1)$ について計算するのが目標です。
まず $U$ の定義を代入します。
$$ P(U \le p) = P\bigl(F(X) \le p\bigr) $$
ここで $F$ が狭義単調増加なので、不等式の両辺に $F^{-1}$ を作用させても向きは変わりません。$F(X) \le p$ と $X \le F^{-1}(p)$ は同じ事象です。
$$ P\bigl(F(X) \le p\bigr) = P\bigl(X \le F^{-1}(p)\bigr) $$
右辺は「$X$ がある値以下になる確率」の形になりました。これはまさに CDF の定義そのものなので、$F$ を使って書き直せます。
$$ P\bigl(X \le F^{-1}(p)\bigr) = F\bigl(F^{-1}(p)\bigr) $$
最後に、$F$ と $F^{-1}$ は互いに逆関数なので打ち消し合います。
$$ F\bigl(F^{-1}(p)\bigr) = p $$
まとめると $P(U \le p) = p$ が任意の $p \in (0,1)$ で成り立ちました。「CDF が $F(p) = p$ である分布」は $[0,1]$ 上の一様分布ですから、$U \sim \mathrm{Uniform}(0,1)$ が示されました。
なぜこうなるのか、直感でも押さえておきましょう。$F(x)$ は「$x$ より下にどれだけの確率があるか」を測るものさしです。だから $F(X)$ は、「自分は分布の中で下から何割の位置にいるか」を表すパーセンタイル順位 です。ランダムに 1 人選んで身長を測り、それが下から何割かを答えさせれば、その答えは 0 割から 10 割まで均等にばらけます。上位 10% の人が選ばれる確率は 10%、上位 10〜20% の人が選ばれる確率も 10% で、どの帯も等しいからです。「値」ではなく「順位」に翻訳した瞬間に、元の分布の形はきれいに洗い流されます。

身長モデル $N(171, 5.8^2)$ から 10 万個の標本を取り、$U = F(X)$ を計算した結果です。左は元の標本で、理論 PDF に沿った明確な山型をしています。右はその $U$ のヒストグラムで、密度 1 の水平線(一様分布)にぴったり張りついています。山型だったものが完全に平らになった、この落差が確率積分変換の主張そのものです。実測値は平均 0.4986(理論 0.5)、標準偏差 0.2889(理論 $1/\sqrt{12} = 0.2887$)で理論値と一致しました。中央のパネルは変換の仕組みを示しています。CDF の勾配が急な中央付近では、狭い $x$ の幅が広い $u$ の幅に引き伸ばされ、逆に裾の平らな部分では広い $x$ の幅が狭い $u$ の幅に押し縮められます。この伸縮がちょうど密度の濃淡を打ち消すので、出力が均される、という仕掛けです。
なお、この一様性を KS 検定で厳しくチェックすると、統計量は $D = 0.00432$(p 値 0.048)でした。絶対値としては 0.4% 程度のずれに過ぎませんが、$n = 100{,}000$ での 5% 棄却限界が $1.36/\sqrt{n} = 0.0043$ なので、ちょうど境目に乗っています。標本数が大きいと検定はこの程度のゆらぎにも反応する、というのは検定を使うときに知っておきたい感覚です。
確率積分変換は、応用面でも重要です。回帰モデルやコピュラの当てはまり診断では、残差を予測分布の CDF に通した PIT ヒストグラム を描き、一様からのずれを見てモデルの不適合を検出します。時系列予測の校正評価でも同じ手法が使われます。「一様になるのが正しい」という強い基準があるからこそ、ずれが診断情報になるわけです。
そして確率積分変換には、もっと直接的な使い道があります。この式を逆向きに読むと、乱数生成のアルゴリズムが出てくるのです。
逆変換法によるサンプリング
確率積分変換は「$X$ を $F$ に通すと一様になる」と言っています。ならば逆向きに、一様乱数を $F^{-1}$ に通せば、$F$ に従う乱数が作れる のではないでしょうか。実際そうなります。
$U \sim \mathrm{Uniform}(0,1)$ とし、$X = F^{-1}(U)$ と定めます。この $X$ の CDF を計算しましょう。
$$ P(X \le x) = P\bigl(F^{-1}(U) \le x\bigr) $$
ここで前に導いた同値関係 $F^{-1}(p) \le x \Longleftrightarrow p \le F(x)$ を使うと、事象を書き換えられます。
$$ P\bigl(F^{-1}(U) \le x\bigr) = P\bigl(U \le F(x)\bigr) $$
$U$ は一様分布なので、$P(U \le u) = u$ です。$u = F(x)$ を代入すれば、
$$ P\bigl(U \le F(x)\bigr) = F(x) $$
したがって $X = F^{-1}(U)$ の CDF は $F$ そのもの、つまり $X$ は目標の分布に従います。これが 逆変換法(inverse transform sampling) です。この導出は $F$ が連続である必要すらなく、一般化逆関数を使えば離散分布でもそのまま通ります。
指数分布を作ってみる
具体例として、パラメータ $\lambda$ の指数分布を作ります。$F^{-1}$ を手で求めましょう。まず CDF は
$$ F(x) = 1 – e^{-\lambda x} \quad (x \ge 0) $$
です。これを $u = F(x)$ と置いて $x$ について解きます。
$$ u = 1 – e^{-\lambda x} $$
$e^{-\lambda x}$ を左辺に残す形に整理すると、
$$ e^{-\lambda x} = 1 – u $$
両辺の自然対数をとると、指数が外れます。
$$ -\lambda x = \log(1 – u) $$
最後に $-\lambda$ で割って $x$ を求めます。$\lambda > 0$ なので不等号の心配はありません。
$$ x = -\frac{\log(1 – u)}{\lambda} $$
これで $F^{-1}$ が閉じた形で得られました。あとは一様乱数 $U$ を突っ込むだけです。
$$ \begin{equation} X = -\frac{\log(1 – U)}{\lambda} \sim \mathrm{Exponential}(\lambda) \end{equation} $$
さらに小技があります。$U \sim \mathrm{Uniform}(0,1)$ なら $1 – U$ も同じ一様分布に従うので、$1-U$ を $U$ に置き換えて
$$ X = -\frac{\log U}{\lambda} $$
としても同じ分布が得られます。実装ではこちらのほうが計算が 1 回減るので、しばしばこの形が使われます。ただし $U = 0$ で $\log 0$ が発散するので、$[0,1)$ の一様乱数を使うライブラリでは $1-U$ 版のほうが安全です。
import numpy as np
rng = np.random.default_rng(42)
lam = 0.5
u = rng.random(100000) # 一様乱数 U ~ Uniform(0,1)
x = -np.log(1.0 - u) / lam # 逆変換法: X = -ln(1-U)/λ
print(f"標本平均 = {x.mean():.4f} (理論値 1/λ = {1/lam})")
print(f"標本標準偏差 = {x.std():.4f} (理論値 1/λ = {1/lam})")
このコードの出力は 標本平均 = 2.0028 (理論値 1/λ = 2.0)、標本標準偏差 = 2.0005 (理論値 1/λ = 2.0) です。指数分布は平均と標準偏差がともに $1/\lambda$ になるという特徴を持ちますが、生成した標本はその両方を小数第 2 位まで再現しています。対数を 1 回とるだけの操作で、正しい指数分布が本当に出てくると確認できました。

左は逆変換法の仕組みです。縦軸(確率の軸)に一様に点を打ち、CDF 曲線を経由して横軸に落としています。CDF が急な原点付近では落とし先が密集し、平らな右側では疎になる。この「傾きによる密度の付け方」が、指数分布の右下がりの密度をそのまま作り出しています。右は 10 万個生成した結果で、ヒストグラムが理論 PDF(橙の曲線)に重なり、標本平均 2.0028 が理論平均 2.0 の位置とほぼ一致しています。KS 検定でも $D = 0.00299$(p 値 0.331)となり、生成した標本と理論指数分布の差は検出できませんでした。
同じ手順で、他の分布も作れます。$F^{-1}$ が閉じた形で書ける代表例は次のとおりです。
| 分布 | CDF $F(x)$ | 逆変換の式 |
|---|---|---|
| 一様 $\mathrm{U}(a,b)$ | $(x-a)/(b-a)$ | $X = a + (b-a)U$ |
| 指数 $\mathrm{Exp}(\lambda)$ | $1 – e^{-\lambda x}$ | $X = -\log(1-U)/\lambda$ |
| ワイブル $(k, \lambda)$ | $1 – e^{-(x/\lambda)^k}$ | $X = \lambda\{-\log(1-U)\}^{1/k}$ |
| ロジスティック $(\mu, s)$ | $1/\{1+e^{-(x-\mu)/s}\}$ | $X = \mu + s\log\{U/(1-U)\}$ |
| コーシー $(x_0, \gamma)$ | $\frac{1}{\pi}\arctan\frac{x-x_0}{\gamma} + \frac12$ | $X = x_0 + \gamma\tan\{\pi(U-1/2)\}$ |
| パレート $(x_m, \alpha)$ | $1 – (x_m/x)^\alpha$ | $X = x_m (1-U)^{-1/\alpha}$ |
一方、正規分布の CDF(誤差関数)には初等関数による逆関数がありません。だから正規乱数の生成には、逆変換法の代わりにボックス・ミュラー法(2 つの一様乱数を極座標経由で 2 つの正規乱数に変える手法)や Ziggurat 法が使われます。逆変換法は「$F^{-1}$ が計算できるなら最強」ですが、そこが計算できない分布では別の道具に譲る、というのが実情です。とはいえ、数値的に $F^{-1}$ を評価できれば逆変換法は使えるので、scipy の ppf を経由して使う場面は多くあります。
離散分布の逆変換法
離散分布でも、一般化逆関数の定義に従えば同じことができます。値 $k = 0, 1, 2, \dots$ に確率 $p_k$ が乗っているとして、累積確率を $F(k) = p_0 + \dots + p_k$ とします。このとき
$$ X = \min\{k : F(k) \ge U\} $$
とすればよいのです。イメージは「ルーレット」です。$[0,1]$ の区間を長さ $p_0, p_1, p_2, \dots$ の小区間に区切り、一様乱数 $U$ がどの小区間に落ちたかで値を決めます。区間 $k$ の長さが $p_k$ なので、その区間に落ちる確率はちょうど $p_k$ になります。
NumPy なら np.searchsorted(累積確率, U) の 1 行で書けます。目標確率を $[0.1, 0.3, 0.4, 0.2]$ として 20 万回引くと、実測頻度は $[0.0992, 0.3004, 0.4009, 0.1995]$ となり、小数第 3 位まで目標と一致しました。累積確率の配列に対する二分探索なので、値の種類が $K$ 個なら 1 サンプルあたり $O(\log K)$ で済みます。多クラス分類の予測分布からのサンプリング、混合モデルの成分選択、遺伝的アルゴリズムのルーレット選択など、この処理は機械学習の実装のあちこちに現れます。
逆変換法は「CDF を能動的に使う」応用でした。もうひとつ、CDF を検定の道具に使う代表例を見ておきましょう。
KS検定 — 経験CDFと理論CDFの最大乖離を測る
「このデータは正規分布に従っていると言えるか」を判断したいとします。ヒストグラムを描いて目で見るのはビン幅次第で印象が変わるので心もとない。もっと客観的な基準が欲しいところです。
コルモゴロフ・スミルノフ検定(KS 検定) は、経験分布関数 $F_n$ と仮説の CDF $F_0$ の「最大の縦の隔たり」を統計量にします。
$$ \begin{equation} D_n = \sup_{x} |F_n(x) – F_0(x)| \end{equation} $$
ヒストグラムのようなビン幅の選択が不要で、CDF どうしを直接比べるのがこの検定の美点です。しかも $D_n$ の分布には驚くべき性質があります。帰無仮説(データが本当に $F_0$ に従う)のもとで、$\sqrt{n} D_n$ の分布は $F_0$ が何であっても同じ なのです。
これは確率積分変換の直接の帰結です。データを $F_0$ に通してしまえば、帰無仮説のもとでは一様分布からの標本になります。CDF の差の上限は単調変換で不変なので、問題は「一様分布に対する KS 統計量の分布」に還元されます。だから正規分布を検定するときも指数分布を検定するときも、同じ臨界値表が使えます。この分布はコルモゴロフ分布と呼ばれ、$n \to \infty$ で
$$ P(\sqrt{n} D_n \le t) \to 1 – 2\sum_{k=1}^{\infty} (-1)^{k-1} e^{-2k^2 t^2} $$
に収束します。実用的には、有意水準 5% の棄却限界が $1.36/\sqrt{n}$、1% なら $1.63/\sqrt{n}$ と覚えておくと便利です。

平均を 0.45 だけずらした正規分布から $n = 40$ の標本を取り、標準正規分布との KS 検定を行った図です。橙の経験分布関数が水色の理論 CDF より一貫して右にずれており、$x \approx -0.41$ の位置で縦の隔たりが最大 $D = 0.2412$ に達しています。p 値は 0.0156 なので、有意水準 5% でこのデータが標準正規分布に従うという仮説は棄却されます。$n = 40$ での 5% 棄却限界は $1.36/\sqrt{40} = 0.215$ で、実測の $D = 0.2412$ がこれを超えている点も確認できます。たった 40 点でも、平均 0.45 のずれ(標準偏差の半分弱)はきちんと検出できるわけです。
KS 検定には注意点もあります。分布の中央付近のずれには敏感ですが、裾のずれには鈍いことが知られています。裾の当てはまりを重視したいなら、アンダーソン・ダーリング検定(差を裾で重み付けする)のほうが適しています。また、平均や分散をデータから推定してから検定すると、上の臨界値は使えません(推定した分だけ $D_n$ は小さく出るため、リリーフォース検定などの補正が必要です)。
最後に、CDF を 1 次元から多次元へ広げるとどうなるかに触れておきます。
多変量への拡張 — 同時分布関数
確率変数が 2 つ以上あるときも、CDF の考え方はそのまま持ち上がります。$(X, Y)$ に対する 同時分布関数(joint CDF) は
$$ F(x, y) = P(X \le x,\ Y \le y) $$
と定義されます。「両方の条件を同時に満たす確率」です。1 次元のときと同じく、各変数について単調非減少・右連続で、両方が $-\infty$ に行けば 0、両方が $+\infty$ に行けば 1 になります。密度との関係は偏微分になります。
$$ f(x, y) = \frac{\partial^2 F(x, y)}{\partial x\, \partial y} $$
同時分布関数から片方の変数を「無限に飛ばす」と、周辺分布の CDF が取り出せます。
$$ F_X(x) = \lim_{y \to \infty} F(x, y) = P(X \le x) $$
これは周辺化を CDF の言葉で述べたものです。$Y$ の条件を実質的に外してしまえば、残るのは $X$ だけの CDF になる、という当たり前の操作です。
多変量 CDF が単なる形式的な拡張を超えて重要になるのは、コピュラ(copula) の理論に踏み込んだときです。スクラーの定理は、任意の 2 変量分布関数 $F(x,y)$ が
$$ F(x, y) = C\bigl(F_X(x),\ F_Y(y)\bigr) $$
の形に分解できる($C$ は $[0,1]^2$ 上の一様な周辺分布を持つ分布関数、これをコピュラと呼ぶ)と主張します。ここで使われている $F_X(x)$、$F_Y(y)$ こそ、本記事で見た確率積分変換です。各変数を自分の CDF で一様化してしまえば、残るのは「変数どうしの依存構造」だけになる。だから分布のモデリングを「各変数の周辺分布」と「依存構造」に完全に切り離せます。金融のポートフォリオリスク評価や多変量の異常検知でコピュラが使われるのは、この分離があるおかげです。
CDF は 1 次元では「積み上げた面積」という素朴な道具でしたが、多次元に上げると、分布の依存構造を切り出す手術道具にまで育つ。累積という単純な操作の射程は、思ったよりずっと長いのです。
まとめ
本記事では、累積分布関数 $F(x) = P(X \le x)$ を軸に、確率分布を扱う道具立てを一通り見てきました。要点を振り返ります。
- 連続分布では 1 点の確率が 0 なので、密度の値そのものには意味がなく、意味があるのは面積。その面積を左端から積み上げた関数が CDF である
- CDF は 単調非減少・右連続・両端の極限が 0 と 1 の 3 性質で完全に特徴づけられる。この 3 条件を満たす関数は必ずどこかの分布の CDF になる
- 右連続性は「$\le$」で定義したことの直接の帰結。跳びの点では上側の値をとり、段差の高さが $P(X = x)$ に一致する
- CDF は離散(階段関数)でも連続(滑らかな曲線)でも同じ定義で通り、混合型の分布も扱える。PDF より CDF のほうが基本的である
- PDF と CDF は $F’ = f$、$F(x) = \int_{-\infty}^x f$ で行き来する。区間確率は $F(b) – F(a)$ の引き算一発
- 分位点関数は CDF を $y=x$ で折り返したもの。平坦・不連続に対処するため $F^{-1}(p) = \inf\{x : F(x) \ge p\}$ という一般化逆関数を使う。中央値・四分位数・パーセンタイル・VaR はすべてこの関数の値
- 生存関数 $S = 1-F$ とハザード関数 $h = f/S$ は、CDF を右側・条件付きの視点から見たもの。信頼性工学と生存時間解析の言語
- 経験分布関数は最も素朴な CDF の推定量で、グリベンコ・カンテリの定理により真の CDF に一様収束する
- 確率積分変換 $F(X) \sim \mathrm{Uniform}(0,1)$ は「値を順位に翻訳すると分布の形が洗い流される」ことの表明。実測で平均 0.4986、標準偏差 0.2889(理論 0.2887)を確認した
- その逆向きが 逆変換法 $X = F^{-1}(U)$。指数分布なら $X = -\log(1-U)/\lambda$ で、10 万個生成して標本平均 2.0028(理論 2.0)を確認した
- KS 検定の統計量 $D_n = \sup_x|F_n(x) – F_0(x)|$ は経験 CDF と理論 CDF の最大乖離。$\sqrt{n}D_n$ の分布が $F_0$ に依らないのは確率積分変換のおかげ
CDF は「PDF のついで」に習うことが多い関数ですが、実際には分布を扱うときの中心的な道具です。乱数を作るとき、分位点を求めるとき、分布の当てはまりを検定するとき、多変量の依存構造を切り出すとき。どの場面でも、手が伸びるのは密度ではなく CDF のほうです。
次のステップとして、以下の記事も参考にしてください。
- コルモゴロフ・スミルノフ検定をわかりやすく解説 — CDF を使った分布の当てはまり検定を深掘りします
- 順序統計量をわかりやすく解説 — 経験分布関数と表裏一体の概念です
- モンテカルロ法と重要度サンプリング — 逆変換法で作った乱数を実際に使う場面です
- 生存時間解析の基礎をわかりやすく解説 — 生存関数・ハザード関数の応用に進みます
- 大数の法則をわかりやすく解説 — 経験分布が真の分布に近づく理由の土台です