La mémoire de mathématiques

数学めも by Müde

正規分布の形を決めるパラメータ

前回のBox-Muller法のソースコードを見てみると、next関数の最後で、次の計算をしています。

  return result * sigma + mu;

これは、resultの値にsigmaという変数を乗じて、muという値を加えています。これは何を意味しているかというと…

  • resultの値には、すでに標準正規分布に従った値が入っている
  • resultの値にmuを加えることで、平均(山のピークの位置)をずらしている
  • resultの値にsigmaを乗じることで、山の裾野の広がり方を調整している

もう少し、正規分布について感覚的に言葉で書いてみます。


正規分布というのは、なにかたくさんデータを取ってきて、値を整理してグラフにしてみたら、山っぽいグラフになりました、というのが不正確でざっくりとした説明です。

この山の平均が0、分散が1の場合、その正規分布は、標準正規分布、と呼ばれます。ここで分散が1であるということの意味については追求しないのですが、分散についてざっくりと考えると…

  • 分散が小さければ、データは平均の周りにたくさん集まっていて、山としては尖ったものとなる
  • 分散が大きければ、データは平均よりも離れた場所にもそれなりに集まっていて、山としてはなだらかなものとなる

というものです。

何が言いたいかというと、この正規分布の山は、平均と分散という2つのパラメータによって形が決まる、ということです。

さて、分散の正の平方根をとったものを標準偏差、と言います。これも結論だけで有耶無耶な話になるのですが、標準正規分布から取り出した値に標準偏差を掛けて、平均を加えると、その標準偏差と平均に従った正規分布を取り出すことができるのです。

その操作が、上のソースコードの意味です。

BoxMullerクラスのコンストラクタには、平均と標準偏差を引数として与えています。next関数で標準正規分布に従った値を取り出して、最後にその平均と標準偏差を使って、欲しい正規分布の値に変換しているのです。

これは結構面白いことで、逆の操作をすれば、つまり、なんか正規分布に従っていそうなデータに対して、標準偏差で割って、平均を減じれば、標準正規分布に従ったデータになる、ということです。

標準正規分布にしてしまえば、検定とかも楽ですね。


と、すごくざっくりといい加減な話をしてしまいました。証明はいろんなページに載っているのでそれを参考にして頂ければ良いと思いますし、このページでも、(歩みは遅いですが)少しずつ数学的な証明を与えていきたいと考えています。