NURVG : 無料で読むことができる乱数生成の本

ネット上に公開されている無料の乱数生成に関する800ページを超える大著。1986年にシュプリンガーから出版されたが、現在絶版。昔の本なので内容は少し古い。たとえば MCMC など、最近の重要な内容は(目次を見るかぎり)含まれていない。しかし、基本から丁寧に書いてあるようなので、手元においておいて損はないと思います。なぜ無料なのかは上述のウェブサイトを読むとわかります(シュプリンガーといろいろあったらしい)。ただ無料で利用出来るだけでなく、印刷、再配布、さらには販売してもいいらしく、売るときはこの本のセールスポイントを教えますよ、というジョーク?も。

Furthermore, I give anyone the permission, even without asking me, to take these PDF files to a printer, print as many copies as you like, and sell them for profit. If you would like me to advertise the sales points of the hard copies, please let me know.

機械学習屋さんもデータマイニング屋さんもシミュレーション屋さんも、確率統計に携わる人はダウンロードして iPad か kindle にでも突っ込んでおくことをオススメします(電子書籍リーダー買おうかなぁ)。

こちらのエントリーを書く際にこの本を参考にさせて頂きました。

ディリクレ分布に関するメモ (4)

前回はディリクレ分布にしたがう乱数を発生させてそれを可視化しましたが、乱数発生のアルゴリズムがなぜ正当化されるのかについては説明しませんでした。

今回はそのあたりについて書いてみます。前回書いたように、パラメータ \(\alpha\) をもつディリクレ分布からのサンプリング方法は以下のようになります。

  1. \(i=1,\cdots,d\) に対してシェープパラメータが \(\alpha_i\) 、スケールパラメータが1のガンマ分布を発生させる。これを \(X_i\) とする。
  2. \(X=X_1+\cdots+X_d\) として、\(Y_i=X_i/X\) としてこの \(Y\) を記録する

このように定義した \(Y_i\) がディリクレ分布に従うことを以下で証明します。 “ディリクレ分布に関するメモ (4)”の続きを読む

ディリクレ分布に関するメモ (3)

すこし予定を変更して、今回はディリクレ分布を可視化してみます。
次元が高いとプロットできないので、3次元のディリクレ分布を可視化することにします。


三次元なのでこのような三角形の上に確率変数が分布します。ディリクレ分布のパラメータをいろいろ変えながら、この三角形上にランダムにサンプルされたディリクレ分布をプロットしていきます。そのためにはディリクレ分布に従う乱数を発生させるアルゴリズムが必要になります。 “ディリクレ分布に関するメモ (3)”の続きを読む

ディリクレ分布に関するメモ (2)

前の記事 ではディリクレ分布の正規化定数を計算しました。

ディリクレ分布は正規化定数を含めて以下のようになりました。
\begin{align*}
&f(x)=\frac1{B(\alpha)}\prod_{i=1}^d x_i^{\alpha_i-1}\qquad x\in \Delta\\
&\text{where} \qquad B(\alpha)=\frac{\prod_{i=1}^d\Gamma(\alpha_i)}{\Gamma(A)}
\end{align*}

今回は平均、分散、共分散を計算します。これらの計算には正規化定数の計算と類似点が非常に多いため、前回の記事を読んでない方は先にそちらをどうぞ。 “ディリクレ分布に関するメモ (2)”の続きを読む

ディリクレ分布に関するメモ (1)

【ディリクレ分布シリーズ】

ディリクレ分布 (Dirichlet distribution) について。非常に有用な分布なのですが、まじめに計算をしたことがなかったので計算をしてみました。計算はベータ関数、ガンマ関数のオンパレードです。まずはディリクレ分布の諸性質から。

ディリクレ分布とは

  • d 次元のベクトル値の確率変数(\(d\ge2\))でベクトルの成分の合計が1となるような分布。また、各ベクトル成分 \(x_i\) は非負。
  • 合計が1になるという制約条件から、実質は\begin{align*}\Delta=\{x\in\mathbb R^d | x_1+x_2+\cdots+x_d=1, x_i>0\}\end{align*}上に定義される \(d-1\) 次元の確率分布。ここでは \(x_d=1-x_1-\cdots-x_{d-1}\) として扱う。
  • この性質から、ディリクレ分布からのランダムなサンプルは有限個の値を取る確率分布と解釈できる。
  • 密度関数がパラメータ \(\alpha\) (d 次元のベクトル)を使って以下のように定義される:\begin{align*}f(x)\propto \prod_{i=1}^d x_i^{\alpha_i-1}\end{align*}(正規化定数は後で計算します)以降、表記の簡略化のために
    \begin{align*}
    &\alpha_{i:j}=\sum_{k=i}^j\alpha_k\\
    &A=\alpha_{1:d}
    \end{align*}
    という表記を使う。
  • \(Dir(\alpha)\) とか表記する。
  • 平均は\begin{align*}E[X]=\frac\alpha{A}\end{align*}
  • 分散は\begin{align*}V[X_i]=\frac{\alpha_i(A-\alpha_i)}{A^2(A+1)}\end{align*}
  • 共分散は\begin{align*}Cov[X_i,X_j]=\frac{-\alpha_i\alpha_j}{A^2(A+1)}\qquad(i\ne j)\end{align*}
  • ベータ分布の一般化(多次元化、多変量ベータ分布); ベータ分布は \(d=2\) の時に対応する
  • 多項分布をディリクレ分布で混合するとポリア多項分布が得られる
  • 多項分布と共役
  • 独立な d 個のガンマ分布に従う乱数を正規化することで、d 次元のディリクレ分布に従う乱数を容易に発生させることが可能

“ディリクレ分布に関するメモ (1)”の続きを読む

多項ロジットモデル、条件付きロジットモデル

ロジットモデル・ファミリーに関するメモです。添字は次の意味とします。

  • i=1,2,…,I 個人
  • j=1,2,…,J カテゴリー(選択肢)

Quantitative models in marketing research の pp.77 にはこんな記述がある(抄訳):

一般にマーケティングの際には大きく3タイプに分類される説明変数に出会う.
1つ目は個人の間で異なり,選択肢の間では同一な変数だ.例えば,年齢,収入,性別などがそうだ.これは \(X_i\) と記述する.
2つ目は個人の間で異なり,さらに選択肢の間でも異なるような変数だ.個人 i にとっての特定の購入機会における商品 j の価格などが例として考えられる.これは \(W_{ij}\) などと記述される.
3つ目は個人の間では同じだが,選択肢の間で異なるような変数だ.これは1パッケージあたり何個詰めか,などの例が考えられる.これは \(Z_j\) と書くことにする.

大雑把に言えばこの3つはデモグラフィック,シチュエーション,製品スペックに対応していると理解すればよさそう。
“多項ロジットモデル、条件付きロジットモデル”の続きを読む

ベータ二項分布


「コインを n 回投げた。表の出る回数 k が従う分布は?」

これは確率 p = 1/2、サイズ n の二項分布に従います。

「表のでる確率が p のバイアスがあるコインを n 回投げた。表の出る回数 k が従う分布は?」

これは確率 p、サイズ n の二項分布に従います。

「バイアスのあるコインがたくさん入った袋がある。そこから一枚コインを一枚抜き出して、n 回投げた。表の出る回数 k が従う分布は?ただし袋の中のコインの表の出る確率 p はベータ分布に従うこととする」

これはベータ二項分布という分布に従います。
“ベータ二項分布”の続きを読む