記録帳

クラウド、データ分析、ウイスキーなど。

確率変数の変数変換を超わかりやすく説明する

まえがき

皆さんは、統計で出てくる確率変数の変数変換をご存じでしょうか。
式を覚えては見たものの、ちょっと応用されると全く分からなくなる、でおなじみの変数変換です。
 Y=X^2ならいいんです。ただ、それも範囲を一捻りされると暗記した式では解けなくなります。
私は3年くらい、ずっと悔しい思いをしていましたが、ついに完全理解しました。
なので、その感動を共有すべく、キーボードを手に取った次第です。

変数変換ってどういう問題?

例えばこういう問題です。
(現代数理統計学の基礎 第2章演習問題 問12を一部改変)

Xの確率密度関数 f(x)=1, 0 < x < 1で与えられている。
 Y=X^2なる変数変換したときのYの確率密度関数を求めよ。

ある確率変数Xとその確率密度関数が与えられていて、それを Y=g(X)なる関数で変換したときのYの確率密度関数を求めます。
何すればよいか、よくわからないですよね。そんなときのために、公式が用意されています。

変数変換を解く公式

現代数理統計学の基礎 p.24では、以下の公式が記載されています。

確率変数Xの確率密度関数 f_{X}(x)とし、 Y=g( X )とする。
g(x)が単調増加もしくは単調減少な関数とし、 g^{-1}(y)微分可能であるとする。この時、Yの確率密度関数は次で与えられる。
 f_{Y}(y) = f_{X}(g^{-1}(y)) | \dfrac {d}{dy}g^{-1}(y)|

まずこの式を見ていきます。

まず、 g^{-1}(y)という式が2つ出てきます。
これは、 y=g(x)逆関数です。もっと簡単に言うと、 y=g(x)をxについて解いた式です。
例えば Y=3X+2であれば、 x= \dfrac {y-2}{3}、つまりは g^{-1}(y) = \dfrac {y-2}{3}です。
元の式を見ると、 g^{-1}(y) f_X(x)に代入したものと、 g^{-1}(y)をyで微分して絶対値を取ったものを掛け合わせています。

先ほどの例、 Y=3X+2で計算してみると、
 f_{Y}(y) =  f_X(\dfrac {y-2}{3})|\dfrac {d}{dy} \dfrac {y-2}{3}|
となります。あとは、元々の f_X(x)の式を使って計算していけば答えが出ます。
問題は、なぜこのような公式になるのか?ですよね。

公式の導出

現代数理統計学の基礎 p.23に導出が書いてあるので、こちらを補足しながら見ていきます。
全体的な方針としては、以下の2STEPです。
1. 分布関数 F_{Y}(y)を式で表す(この時の範囲に注意)
2.  F_{Y}(y)微分して f_Y(y)を示す

1.分布関数 F_{Y}(y)を式で表す

分布関数の定義と Y=g(X)から、以下のように書けます。
 F_{Y}(y) = P(Y \leq y)=P(g(X) \leq y) = P(X \in \{ x | g(x) \leq y \} )
3番目と4番目は同じことを言っていますが、表記を変えただけです。
4番目の式は、確率変数Xが{ }の中のxである確率という意味です。

さて、このままではxの範囲がyの式のままです。
これをxの範囲に変換します。先ほどの式の{ }の部分だけを見ていくと
 \{x|g(x) \leq y \} = \{x| x \leq g^{-1}(y) \}
と書けます。ここがミソです。
上記の式で、xの範囲がxについて示せました。この範囲の確率Pを積分すれば分布関数 F_Y(y)になるので、
 F_Y(y) = \int_{-\infty}^{g^{-1}(y)} f_X(x)dx
と表せます。

…私はこの式の変形が何回見てもしっくりきませんでした。
特に g^{-1}(y)こいつ。こいつがいると意味が分からなくなります。
なので、具体的に、先ほどの例 Y=3X+2で考えます。
この例でxの範囲をyではなくxで表すと
 \{x|g(x) \leq y \} = \{x|3x+2 \leq y \} = \{x| x \leq \dfrac {y-2}{3} \}
こうなります。なので、この範囲の確率を計算すると
 F_Y(y) = \int_{-\infty}^{\frac {y-2}{3}} f_X(x)dx
こうなりますね。めっちゃわかりやすい!!
ここから、この分布関数を微分して、本当に求めたかった F_{Y}(y)を求めていきます。

2.  F_{Y}(y)微分して f_Y(y)を示す

具体的な方ではなく、一般的な式で見ていきます。
おさらいすると、分布関数は
 F_Y(y) = \int_{-\infty}^{g^{-1}(y)} f_X(x)dx
と表せましたね。これを微分して、インテグラルの中の f_X(x)を取り出します。

この分布関数は定積分です。つまり、 - \inftyの方は定数なので、微分したら消えますね。
そのため、前の g^{-1} (y)の方だけを考えます。
これを微分すると、 f_X(x)のxに g^{-1} (y)を代入したものが出てくる…
だけではなく!
 g^{-1} (y)自体を微分したものを掛けます。
なぜそうなるかは、このあたりのHPを参考にしてください。高校数学です。

結局こうなります。
 f_{Y}(y) = f_{X}(g^{-1}(y)) \dfrac {d}{dy}g^{-1}(y)
公式の絶対値がついていないバージョンが出てきましたね!
さて、なぜ公式では絶対値がついているのでしょう?

絶対値がついているワケ

公式の中で、この一文に注目して下さい。

g(x)が単調増加もしくは単調減少な関数とし

はい。単調増加、もしくは単調減少です。
先ほどの例で、 Y=3X+2で考えましたよね。これは単調増加です。
単調減少する Y=-3X+2で考えてみましょう。
こちらを先ほどのSTEP1と同じように、xの範囲にすると
 \{x|g(x) \leq y \} = \{x|-3x+2 \leq y \} = \{x| \dfrac {2-y}{3} \leq x \}
となります。積分式で書くと
 F_Y(y) = \int_{\frac {2-y}{3}}^{\infty} f_X(x)dx
となります。先ほどと積分範囲の∞が逆ですね。
今回のxの範囲は何々以上、なので、xは∞まで値を取ることができますので、このような式になっています。

さて、STEP2の微分をしていきます。
今回は、前の∞は定数になるので微分すると0です。つまり、後ろの方を計算していきます。
その際、定積分の計算をするので、後ろはマイナスがつくことに注意すると、
 f_{Y}(y) = - f_{X}(\frac {2-y}{3}) \dfrac {d}{dy}\frac {2-y}{3}
このように計算できます。
こちら、後ろの微分する項は、-yを微分するのでマイナスが出てきますね。
前についているマイナスと、この微分で出てくるマイナスで結局マイナスが消えてプラスになります。

つまり、g(x)が単調減少の場合は、yの前にマイナスがつきます。
そのため微分すると必ずマイナスが出てきますが、定積分の前後の関係から、そっちでもマイナスが必ず出てきます。
なので結局プラスになるので、単調減少でも公式が適用できるように絶対値がついているんですね。

応用編: Y= -log(|X|)の変数変換

ここまでで公式の出し方が分かったと思うので、単純な単調増加、単調減少の関数ではない関数を見ていきます。
現代数理統計学の基礎の演習問題 第2章 問13(3)を解きます。
問題文はここから引用です。
MathStat_Answers.pdf - Google ドライブ

これは単純増加、単純減少ではないので、先ほどの公式がそのまま使えません。
ただ、公式の導出の考え方は使えます。

まずSTEP1でやったことを思い出してください。xの範囲を特定していました。
 -log|x| \leq yをxについて解いてみます。
 -log|x| \leq y \Leftrightarrow log|x| \geq -y \Leftrightarrow log|x| \geq log {e^{-y}}
log同士の比較は、底が1より大きければそのまま外せます。今回の底は自然対数eなので1より大きいです。つまり、
 log|x| \geq log {e^{-y}} \Leftrightarrow |x| \geq e^{-y} \Leftrightarrow x \geq e^{-y}, -e^{-y} \geq x
となります。
この範囲の積分をすれば、分布関数になるはずです。
今回は範囲がxがある数以下とある数以上に分かれているので、積分は2つ登場します。
 F_Y(y) = \int_{ e^{-y}}^{\infty} f_X(x)dx + \int_{-\infty}^{-e^{-y}} f_X(x)dx

これをSTEP2の時と同じく微分します。
 f_Y(y) = (-f_X(e^{-y})) \frac {d}{dy}(e^{-y}) + (f_X(-e^{-y})) \frac {d}{dy} (-e^{-y})= (-f_X(e^{-y})) (-e^{-y}) + (f_X(-e^{-y})) (e^{-y})
ここで f(x) = 1/2であるため、それを代入して計算すると
 f_Y(y) = (-\frac{1}{2}) (-e^{-y}) + (\frac{1}{2}) (e^{-y}) = e^{-y}
となります。
また、yの範囲についても計算すると、-1 < x < 1の範囲を Y=^log|X|で考えて、
 y > 0となります。
以上で解けましたね。

ポイントは、やはりxの範囲。それを出してからその範囲に従って積分することが重要です。
それが分かれば、どんな変数変換でもできる…はず!

応用編②:xの範囲指定がある Y= X^2の変数変換(2023/4/7追記)

問題を解いていて、もう1点重要な観点に気づきました。
それは、xの範囲でyのグラフが変わるかどうか?です。
現代数理統計学の基礎の演習問題 第2章 問15を解きながら考えます。

こちらの問題、xの範囲指定がなければ、いつもの Y = X^2の変数変換です。
ですが、xの範囲があることで少し事情が変わってきます。


こちらが、今回のxの範囲における、 y=x^2のグラフです。
 -1 < x < 1の範囲、つまり 0 < y < 1の範囲においては、通常の y = x^2のグラフですよね。
ただ、 1 < y < 4の範囲においては、第2象限の部分は消えているため、通常の y = x^2のグラフとは異なります。
そこで、場合分けが必要になるというわけです。

 0 < y < 1の場合は、通常の y = x^2なので省略。
 1 < y < 4について考えます。

分布関数を求めると、以下のようになります。
 F_Y(y) = \int_{ -1 }^{ 1 } f_X(x)dx + \int_{ 1 }^{\sqrt{y}} f_X(x)dx
まず1つ目のインテグラルでは、 -1 < x < 1の範囲の積分です。これは定積分になりますね。
2つ目のインテグラルは、xの範囲を考えたときの -\sqrt{y} < x < \sqrt{y}の兼ね合いで考えます。
xは1より大きいのですから、1より大きく、 \sqrt{y}より小さくなりますね。

後はこれを微分して解いていくだけです。
この問題により、xの範囲でyのグラフが変わる場合の解き方を学ぶことができました。

まとめ

  • 変数変換の問題では、分布関数 F_Y(y)積分の形で表してから、微分することで確率密度関数を求める。
  • 積分の形で表すとき、xの範囲をyを用いて表すことが重要。
  • xの範囲でyのグラフが変わる場合は、yの範囲で場合分けして考える。(2023/4/7 追加)
  • 微分するときは、定積分の引かれる側と引く側どちらになるかで、マイナスをつけるかつけないかが変わることに注意。
  • 単純増加、単純減少の式であれば公式で解けるが、そうでない変換は公式そのまま使っても解けない。

以上です。
ずっとまとめたいと思っていたので、まとめられてよかったです。
この考え方だと解けない変数変換などあれば、ぜひ教えてほしいので、連絡お願いします。