この会の企画・会場設備の提供をして頂きました
㈱ ワークスアプリケーションズ様
にこの場をお借りして御礼申し上げます。
前回,エントロピーの話が中途半端になってしまったのでここから始めます.
情報量とは一体なんでしょうか?直感的に考えて見ます。
分かり易い例として,文章の中の単語の情報量について考えましょう。
「そして」、「しかし」、「例えば」、「本節では」⋯
など,他の文章でも頻繁に登場する単語はその文章を理解する上でほとんど役に立ちません。
一方
「確率」、「事象」、「測度」、「分布」、⋯
などの単語が登場したら、それだけでその文書は確率論や統計学に関するものであろうと分かってしまいます。これらの単語は情報量が多い単語であると言えるでしょう。
今の例から、 情報量は確率と深く関係しているのではないかと考えられます。更に, 確率が小さい事象の持つ情報量は大きいであろうという事も分かります。
そこで,事象Aの情報量I(A)は,何らかの単調減少な関数f(x)によって I(A)=f(P(A)) と表されると仮定してみましょう。
さらに,事象A,Bが独立であるならば,A,Bそれぞれの持つ情報に重複は無いであろうと考えられるので, A,Bが独立ならばI(A∩B)=I(A)+I(B) である事が期待されます。
この時P(A∩B)=P(A)P(B)なので, f(P(A)P(B))=f(P(A))+f(P(B)) が成立しなければなりません。
このような性質を持つ,単調減少なfであれば良いので f(x)=−logx などが候補となります。以上の他,様々な考察に基いて情報量が定義されます。
事象Aの確率がP(A)である時 I(A)=−logP(A) をこの事象の(選択)情報量という。
logの底は(何でも良いが),例えば2とすればよい。 底が2の時の情報量の単位をビットという。
歪みのないコインを3回振って,表がk回出たという事象をAkとします。I(Ak)を計算しましょう。
【解答】
P(Ak)=nCk(12)3
なので
P(A0)=18, P(A1)=38, P(A2)=38, P(A3)=18
となるから,
I(A0)=I(A3)=−log18=3, I(A1)=I(A2)=−log38≈1.42
となる。
選択情報量の期待値が情報エントロピーです。
有限集合(サイズn)上の確率分布に対して,
H(X)=n∑i=1I(X=xi)P(X=xi)=−n∑i=1P(X=xi)logP(X=xi)
を,確率分布の情報エントロピーやシャノン情報量と言う。
ただしP(X=xi)=0の時は−P(X=xi)logP(X=xi)=0とする。
連続的な確率分布に対しても,似た量 h(x)=−∫∞−∞ρ(x)logρ(x)dx を考えてこれをエントロピーと呼びますが,これはシャノン情報量とは異なるので注意してください。 (ρ(x)は確率「密度」なので−logρ(x)は選択情報量ではない。)
サイコロの出目の確率分布のエントロピーを計算してみましょう。出目に偏りがある場合はどうなるでしょうか?
出目に偏りが無い場合には, H(X)=−6∑i=116log16=−log16≈2.585 です。出目に偏りがある場合として,例えば1が出る確率を1160,6が出る確率を960としてみれば H(X)=−4×16log16−1160log1160−960log960≈2.583 少しエントロピーが小さくなりました。
以下の定理が成立します.
エントロピー H(X)=−n∑i=1P(X=xi)logP(X=xi) はP(X=xi)が全て等しい時に最大となる。
【証明】
ラグランジュの未定定数法を利用する。pi=P(X=xi)とおいて,
f(p1,⋯,pn,λ)=−n∑i=1pilogpi+λ(p1+⋯+pn−1)
とすると,
∂f∂pi=−logpi−1+λ,∂f∂λ=p1+⋯+pn−1
であるので極値において
λ=logpi+1,p1+⋯+pn=1
が成り立つ。従って,H(X)が極値を取るとき
p1=⋯=pn=1n, λ=1−logn
である。これが最大値である事は明らか。
□
「エントロピー」という言葉を「乱雑さの度合い」と理解している人もいるでしょう。実際,統計力学におけるエントロピーと情報科学におけるエントロピーは定数倍を除いて一致します。
直感的に言えば,今の定理よりΩ={x1,⋯,xn}上の確率分布のエントロピーが大きくなると,X=x1,⋯,xnのいずれが出るかが全くのランダムに近づいていく(乱雑になっていく)という事になります。
また,「情報量」と聞いて通常連想するのは「データの圧縮」ではないかと思います。
あるランダムなデータの列のエントロピーが小さい(シャノン情報量が少ない)という事は,そのデータ列が何らかのパターンを持っている(乱雑さが小さい)という事です。 そのパターンを利用してデータの圧縮を行う事が出来ます。
また,情報量は事象の独立性とも関係があります。統計学ではこの視点が特に重要であり、今後も登場すると思います。
2つの事象の間で情報のやり取りがあるならば,それらは確率的に独立ではないはずです。先ほど説明した独立性の定義 P(X,Y)=P(X)P(Y) では、「X,Yが独立か否か」しかわかりませんが、情報量を測る事で「独立性の程度」を数値化出来ます。
今説明した事を定式化します.
2つの確率変数 X,Y (それぞれ m,n 個の値をとる)に対して H(X,Y)=−∑1≤i≤m1≤j≤nP(X=xi,Y=yj)logP(X=xi,Y=yj) を結合エントロピーという.
2つの確率変数 X,Y に対して I(X,Y)=H(X)+H(Y)−H(X,Y) を 相互情報量 という.
そして以下の定理が成立します.
確率変数 X,Y が独立⇔I(X,Y)=0 (但し, X,Y が独立であるというのは, それぞれの変数がとる全ての値について P(X=xi,Y=yj)=P(X=xi)P(Y=yj) が成り立つこと.)
有名な離散的分布・連続的分布の例をいくつか紹介します.
重要なものを除き定理の証明を省略しますので, その証明は練習問題としてください.
Xx1x2⋯xnP(X=xi)1n1n⋯1n を 離散一様分布 という.
a<bのとき, 密度関数が ρ(x)={1b−a(a≤x≤b)0(上記以外) で表される分布を 連続一様分布 と呼び U(a,b) と書く. 平均:a+b2分散:(b−a)212
サイコロを1個振ったときの目の値が離散一様分布に従う変数の例です. また, プログラミング言語の標準的な擬似乱数は近似的に離散・連続一様分布に従うものとみなす事ができます.
0≤p≤1として X10P(X=xi)p1−p を ベルヌーイ分布 という. 平均:p分散:p(1−p)
結果が2通りしかない試行をベルヌーイ試行と言います. 例えばコイン投げなどです.
二項分布 B(n,p) は確率 p で成功するベルヌーイ試行を n 回行った際の成功回数の分布です.
数式中の
(nk)=n!k!(n−k)!
は n 個のものから k 個のものを選ぶ場合の数です.
n 回の試行のうちちょうど k 回成功するのが (nk)パターンあり, 個々のパターンの生起確率が pk(1−p)n−k であるという事になります.
X∼B(m,p),Y∼B(n,p) ならば X+Y∼B(n+m,p).
X∼B(m,p)というのは確率変数 X が確率分布 B(m,p) に従うという意味です. このように, 確率変数 X,Y がある分布に従う時に, X+Y も同じ種類の分布に従う事を 再生性 と言います.
この定理は ベルヌーイ試行を m 回行った場合の成功回数 X と n 回行った場合の成功回数 Y の和 X+Y は, 試行を m+n 回行った場合の成功回数となります. これは明らかですね.
自然数 r と実数 0≤p≤1 に対して P(X=k)=(k−1r−1)pr(1−p)k−r(k=r,r+1,r+2,…) に従う分布を 負の二項分布 という. 平均:rp分散:r(1−p)p2
負の二項分布での P(X=k) は確率 p で成功するベルヌーイ試行が r 回成功する為に必要な試行の回数が k 回である確率です.
k−1 回目までにちょうど r−1 回成功する確率が (k−1r−1)pr−1(1−p)(k−r) であり, k 回目に成功する確率が p ですから 掛けあわせて (k−1r−1)pr(1−p)(k−r) となります.
例えばコイン投げをして10回表が出るためには 平均 10÷12=20 回投げる必要があります. 標準偏差は約 4.5 となります.
λ>0 に対して P(X=k)=λke−λk!(k=0,1,2,…) に従う分布を ポアソン分布 と呼び Po(λ) と書く. 平均:λ分散:λ
ポアソン分布 Po(λ) は単位時間(単位面積・体積)あたりに平均 λ 回発生する事象が, 単位時間(単位面積・体積)あたりに発生する回数の確率分布です.
例えば, 1日あたり平均 30 通のメールを受信する場合に1日 35 通のメールを受け取る確率は P(X=35)=3035e−3035! と計算されます. おおよそ 4.5% となります.
>>> from math import factorial,exp
>>> 30**35 * exp(-30) / factorial(35)
0.04530820008655117
時刻 t までに事象が Xt 回生起する確率が P(Xt=k)=(λt)ke−λtk! に従う過程を ポアソン過程 という.
単位時間に λ 回事象が生起するならば, 時刻 t までには λt 回事象が生起するはずです.
Webサービスへのアクセス数, 店への来客数など実用上重要な例をポアソン過程とみなす事が出来ます.
X∼Po(λ1),Y∼Po(λ2) ならば X+Y∼Po(λ1+λ2)
λ=np が定数となるようにしながら n→∞ の極限をとると limn→∞(nk)pk(1−p)n−k=λke−λk! となる.
λ=npが定数ということは, n→∞のとき p→0です. つまり, ポアソン分布は成功確率が非常に低いベルヌーイ試行を,多数回行った場合の成功回数の分布と考える事が出来ます.
以下の例は「めったに発生しない事象の生起回数」へのポアソン分布の適用として歴史的に有名です.
ボルトキーヴィッチは著書"Das Gesetz der kleinen Zahlen "(The Law of Small Numbers)において、プロイセン陸軍の14の騎兵連隊の中で、1875年から1894年にかけての20年間で馬に蹴られて死亡する兵士の数について調査しており、1年間当たりに換算した当該事案の発生件数の分布がパラメータ0.61のポアソン分布によく従うことを示している。
Wikipedia:ポアソン分布より引用
【極限定理の証明】
λ=npとおくと
(nk)pk(1−p)n−k=n(n−1)⋯(n−k+1)k!(λn)k(1−λn)n−k=1k!⋅(1−1n)⋯(1−k−1n)(λ)k{(1−λn)nλ}λ⋅n−knn→∞→1k!⋅k個⏞1⋅1⋯1⋅λk(e−1)λ=λke−λk!
□
自然数 N,K,n(0≤K≤N,0≤n≤N) に対して P(X=k)=(nk)(N−nK−k)(NK) に従う確率分布を 超幾何分布 という. 平均:nKN分散:(N−n)n(N−K)K(N−1)N2
超幾何分布は当たりが K 本入っている N 本のくじから n 本引いた時に k 本当たる確率であると言えます.
N 本のくじを一列に並べる方法の数は, 当たりくじの場所を N 箇所から K 箇所選ぶ方法の数だから (NK) 通りです.
左から n 本の中にあたりくじ k 本が並ぶような並べ方の総数が (nk)(N−nK−k) であるので P(X=k)=(nk)(N−nK−k)(NK) という等式が得られます.
実数 λ>0 に対して 確率密度関数が ρ(x)={λe−λx(x≥0)0(x<0) である分布を 指数分布 という. 平均:1λ分散:1λ2
ポアソン分布 Po(λ) に従って発生する事象の発生間隔の分布はパラーメータが λ の指数分布に従います.
あるWebサービスには1秒当たり平均 5人がアクセスがあります. アクセスがあってから 0.01 秒以内に次のアクセスが来る確率を計算してください.
∫0.0105e−5xdx=[−e−5x]0.010=−e−0.05+e0≈0.049 つまり約 4.9 %となります.
確率変数 X が指数分布に従う場合, 任意の s,t>0 に対して P(X>s+t|X>s)=P(X>t) が成立する.
P(X>t) は t 単位時間以上事象が生起しない確率です.
この定理が言っていることは, s 単位時間事象が生起しなかったとしても, その後 t 単位時間待たなければならない確率は変化しないという事です.
実数μ,σ(σ>0に対して 確率密度関数が ρ(x)=1√2πσ2exp(−(x−μ)22σ2) である確率分布を 正規分布 と呼び N(μ,σ2) と書く. 平均:μ分散:σ2
ある確率変数の値の平均値からのずれがランダムに発生する場合, それは正規分布に従うと考える事が出来ます. 例えば測定誤差などは正規分布に従うものとしてモデル化されます.
また, 後に説明する 中心極限定理 が成立する事がその重要性を高めています.
X∼N(μ1,σ21),Y∼N(μ2,σ22)ならば X+Y∼N(μ1+μ2,σ21+σ22)
複数の確率変数 X1,X2,…,Xn が従う同時確率を与える分布を 多変量分布 と言います.
確率変数 X,Y に対して Cov(X,Y)=E[(X−E[X])(Y−E[Y])]=E[XY]−E[X]E[Y] を X,Y の 共分散 という.
確率変数 X,Y に対して Cor(X,Y)=Cov(X,Y)σ[X]σ[Y] を X,Y の 相関係数 という.
Cor(X,Y)>0のとき, X,Y には 正の相関 があるといい, Cor(X,Y)<0のときは 負の相関 があるという. Cor(X,Y)=0のときは 無相関 であるという.
Cor(X,Y)>0 であるというのは, X−E[X],Y−E[Y]が同符号である傾向がある という事です. 相関係数が大きいほど, 平均値を中心として X が増加すれば Y も増加するという傾向がみられます.
共分散についても同様の事が言えます. 相関係数は下のように共分散の値の範囲を正規化したものであるといえます.
確率変数 X,Y に対して X,Yが独立⇒X,Yは無相関 である.
という性質が成り立ちます. 逆は成り立たないことに注意する必要があります. 相関性というのはあくまで分布の平均的な性質です.
共分散・相関係数の多変数版の一般化が分散共分散行列・相関行列です.
確率変数ベクトル x=(X1,X2,…,Xn) に対して, Σ=(Cov(Xi,Xj))n,n で定まる行列を,この確率分布の 分散共分散行列 という.
確率変数ベクトル x=(X1,X2,…,Xn) に対して, Σ=(Cor(Xi,Xj))n,n で定まる行列を,この確率分布の 相関行列 という.
正規分布に関しては多変数のものも頻繁に必要となります.
n次元ベクトル μ と n 次正則行列 Σ に対して, 同時確率密度関数 ρ(x)=1√(2π)n√detΣexp{−12(x−μ)TΣ−1(x−μ)} と表される確率分布を 多変量正規分布 という.μ は平均ベクトル, Σ は分散共分散行列である.
簡単な例として, 2変数 x=(x,y) で μ=(μ1,μ2)T,Σ=(σ2100σ22) の場合を直に書き下してみれば, ρ(x)=12πσ1σ2exp{−(x−μ1)22σ21−(x−μ2)22σ22} となります.
大数の法則とは, 理論的な確率と統計的な確率が一致するという定理です. 多数回の試行を実際に行うことは難しい場合が多いので大変重要な定理となります.
証明を行う為にはいくつか準備が必要となります. この勉強会では簡単の為, 標本が有限個の場合についてのみを考えることにしますので, 詳しくは専門書を参照してください.
【証明】
確率変数 Y を
Y={1(|X|≥aのとき)0(上記以外)
と定義すると, P[|X|≥a]=E[Y] である.
ここで
aY≤|X|
である(|X|≥aなら aY=a, |X|<aなら aY=0)ので
aE[Y]≤E[|X|]
である. 従って両辺を a で割って
P[|X|≥a]=E[|X|]a
である.
□
任意の a>0 に対して σ[X]≠0ならば P(|X−E[X]|≥aσ[X])≤1a2 が成立する.
【証明】
P(|X−E[X]|≥aσ[X])=P((X−E[X])2≥a2σ[X]2)
であるのでマルコフの不等式より
P(|X−E[X]|≥aσ[X])≤E[(X−E[X])2]a2σ[X]2]=σ[X]2a2σ[X]2=1a2
である.
P(X=x)=p に従う試行を独立に n 回行った際に X=x が生起する頻度を確率変数 Qn で表すならば, 任意の ε>0 に対して, limn→∞P(|Qn−p|>ε)=0 である.
【証明】
確率変数 ei(i=1,2,…,n) を
ei={1i 回目に X=x が生起したとき0上記以外
とすると,
E[ei]=1⋅P(X=x)+0⋅P(X≠x)=pE[e2i]=12⋅P(X=x)+0⋅P(X≠x)=pV[ei]=E[e2i]−(E[ei])2=p−p2
である. ここで
Qn=e1+e2+⋯+enn
であるから 期待値・分散の加法性より
E[Qn]=1n(E[e1]+E[e2]+⋯+E[en])=pV[Qn]=1n2(V[e1]+V[e2]+⋯+V[en])=p−p2n2
である.
よってチェビシェフの不等式により,任意のa>0 に対して P(|Qn−p|>a√p−p2n)≤1a2 が成り立つので任意の ε>0 に対して ε<a√p−p2n をみたすように a を取れば P(|Qn−p|>ε)≤√p−p2ε2n2 が成り立つ. したがって limn→∞P(|Qn−p|>ε)=0 となる. □
中心極限定理とは, 同一の分布に従う試行を繰り返し行なって平均値をとると, 試行回数を増やした時に, 平均値が正規分布に従うという定理です.
この定理の証明は前提としなければならない知識が多いので定理のみ示して具体例を見てみようと思います.
確率変数 X1,X2,…,Xn が期待値 μ, 標準偏差 σ の同一の確率分布に従い, 独立であるとする. このとき Xi の平均 ¯X=1n(X1+X2+⋯+Xn) の従う確率分布は n が大きくなると正規分布 N(μ,σ2n) に収束(弱収束)する.
下のグラフは λ=3 のポアソン分布に従う乱数 N=10,30,50 個の平均値をそれぞれ 1000 サンプル計算して 幅0.1 の区間毎にヒストグラム化してプロットしたものです. 平均が 3 の正規分布に近づいていく様子が見えると思います.
今のデータを生成するのに利用したプログラムです. 他の種類の確率分布についても実験を行ってみてください.
import numpy as np
from collections import Counter
M = 1000
for N in [10,30,50]:
data = [np.average(np.random.poisson(3, N)) for i in range(M)]
hist,key = np.histogram(data, bins=np.arange(1,5,0.1), density=True)
for i in range(len(hist)):
print "{0}\t{1}".format(key[i], hist[i])
print "\n"
次回は計算機寄りの話題としてまず, 擬似乱数について説明します. その後,統計量の計算機での計算について具体的なデータセットを用意して説明する予定です. 時間があれば,仮説検定などの説明をします.