固有ベクトルの観点から線形変換を掌握する

線形代数において、固有値固有ベクトルの話題は花形である。これらは理論的に美しいだけでなく、応用上様々な場面に登場し、重宝されている。中でも固有値が力を発揮するのは、やはり行列の対角化を行う時であろう。すなわち、n次正方行列 Aがある条件を満たすと、ある変換行列 Pが存在して P^{-1} A Pが対角行列になるのである。

では、対角化が可能となるための「ある条件」とは一体なんだろう?それは、固有値の (固有方程式の解としての) 重複度と、その固有値に対応する固有空間の次元が全ての固有値に対して等しいことである。これは対角化可能であるための必要十分条件となっている。

そう、固有値というのは実に厄介で、例えば固有方程式を解いた結果、 \lambdaが重解として得られたとしても、 \lambdaに対応する固有空間は必ずしも2次元になるとは限らないのである。

以上の事実から、行列は固有値の数と重複度、および固有ベクトルの次元によって、いくつかの種類に分類出来そうな気がしてくる。そのように分類された行列のクラスは、それぞれ何か特徴的な性質を持つのだろうか?

本稿ではこのぼんやりとした疑問の答えに迫るべく、前半は対角化について調べ、後半は具体例を頼りに固有値・固有空間が反映する行列の性質について調べてみようと思う。

対角化とは何か?

まずは対角化について考えてみよう。対角化と言えば P^{-1} A Pという変換の仕方が特徴的である。これの意味するところを考えることによって、対角化について理解を深めていこう。

線形変換の表現

行列は線形変換と密接な関係にある。すなわち、任意の線形変換は行列によって表現することができる。 P^{-1} A Pの意味を理解する上では、Aをある線形変換の表現行列と捉えるのがよい。

まず、線形変換の定義を[1]より引用する。

線形変換
 K上の線形空間 Vから K上の線形空間 V'への写像 Tが二条件
 \displaystyle{
\begin{eqnarray}
&& T({\bf x} + {\bf y}) = T({\bf x}) + T({\bf y}) \\
&& T(a{\bf x}) = aT({\bf x})
\end{eqnarray}
}
を充すとき,  T Vから V'への線形写像と言う.
・・・ (中略) ・・・
とくに,  Vから V自身への線形写像を,  V線形変換と言う.

 Vの次元をnとする。 Vの1つの基底を {\bf e}_1,  {\bf e}_2, \cdots ,  {\bf e}_nとすると、 Vの任意の元は以下のように基底の線型結合で表すことができる。

 \displaystyle{
{\bf v} = \sum_{i=1}^n x_i {\bf e}_i
}

ここで、 {\bf v} Vの線形変換 Tで写したものはやはり Vの元となる。よって以下のように同じ基底で表すことができる。

 \displaystyle{
T({\bf v}) = \sum_{i=1}^n x_i' {\bf e}_i
}

すると、変換前後の係数の間には以下のような関係が成立する。

 \displaystyle{
 \left( \begin{array}{c}
      x_1' \\
      x_2' \\
      \vdots \\
      x_n'
    \end{array} \right)_e
  = \left( \begin{array}{cccc}
      a_{11} & a_{12} & \ldots & a_{1n} \\
      a_{21} & a_{22} & \ldots & a_{2n} \\
      \vdots & \vdots & \ddots & \vdots \\
      a_{n1} & a_{n2} & \ldots & a_{nn}
    \end{array} \right)
 \left( \begin{array}{c}
      x_1 \\
      x_2 \\
      \vdots \\
      x_n
    \end{array} \right)_e
}

上の行列 A = (a_{ij})が線形変換 Tの表現行列である。両辺のベクトルの右下にeと書いたのは、これが基底 {\bf e}_iによるベクトルであることを示している。表現行列を簡潔に Aと表した式は以下のようになる。

 \displaystyle{
 \left( \begin{array}{c}
      x_1' \\
      x_2' \\
      \vdots \\
      x_n'
    \end{array} \right)_e
  = A
 \left( \begin{array}{c}
      x_1 \\
      x_2 \\
      \vdots \\
      x_n
    \end{array} \right)_e
}

基底の取り替え

次に、線形変換 T Vの別の基底で表現するとどうなるか考えてみよう。そのような基底を {\bf f}_1,  {\bf f}_2, \cdots ,  {\bf f}_nとする。すると、先ほどと同じように変換前後のベクトルは以下のように表される。

 \displaystyle{
{\bf v} = \sum_{i=1}^n y_i {\bf f}_i
}

 \displaystyle{
T({\bf v}) = \sum_{i=1}^n y_i' {\bf f}_i
}

基底の取り替えにおいて重要な考え方は、元の基底に対する表現行列 Aをできる限り活かすことである。そのために、 Aではなく入力として与えるベクトルの方を変換することを考える。これを実現するためには、以下のような行列 Pを利用する。

 \displaystyle{
 \left( \begin{array}{c}
      x_1 \\
      x_2 \\
      \vdots \\
      x_n
    \end{array} \right)_e
=
P \left( \begin{array}{c}
      y_1 \\
      y_2 \\
      \vdots \\
      y_n
    \end{array} \right)_f
}

このような行列 Pを基底の取り替え行列と呼ぶ。これより、 Tは以下のように表現できる。

 \displaystyle{
P \left( \begin{array}{c}
      y_1' \\
      y_2' \\
      \vdots \\
      y_n'
    \end{array} \right)_f
  = A
P \left( \begin{array}{c}
      y_1 \\
      y_2 \\
      \vdots \\
      y_n
    \end{array} \right)_f
}

異世界を旅して帰還する

基底の変換後の式の両辺に P^{-1}をかけると以下のようになる。

 \displaystyle{
 \left( \begin{array}{c}
      y_1' \\
      y_2' \\
      \vdots \\
      y_n'
    \end{array} \right)_f
  = P^{-1}A P
 \left( \begin{array}{c}
      y_1 \\
      y_2 \\
      \vdots \\
      y_n
    \end{array} \right)_f
}

 P^{-1}A Pが基底 {\bf f}_iを用いた場合の Tの表現行列となる。

普通はここで話はおしまいである。基底を変換した後の表現行列が求められたのだから、めでたしめでたしというわけだ。しかし、 P^{-1}A Pという形の変換は線形代数に限らずいろんな数学の分野でよく見かける形であり、もう一段抽象的なレベルでの意味がある。これを少し掘り下げて考えてみよう。

まず、行列 Aは基底 {\bf e}_iの世界で表現されるベクトルに対して適用可能な行列である。これを別の世界のベクトル、すなわち、基底 {\bf f}_iで表現されるベクトルに適用したいと思ったら、一度 {\bf f}_iの世界から {\bf e}_iの世界に移動する必要がある。すると、移動後のベクトルには Aを適用することができる。最後に、 Aを適用して得られたベクトルを元の世界に戻してやれば、結局 {\bf f}_iの世界のベクトルに Aを適用出来たことになる。以下に図を示す。

f:id:peng225:20180917213651p:plain

このように P^{-1}, Pで変換を挟み込むことは、その変換が適用可能な世界へと移動し、変換が終わったら元の世界に戻してやるような効果がある。これが線形変換の表現行列を別の基底で表したベクトルに適用できるからくりである。

対角化は座標変換

ここまで座標変換の話ばかりしてきた訳だが、座標変換と対角化の関係について述べておく。ずばり対角化とは、線形変換の基底を固有ベクトルから成る基底に変換する操作のことである。そして、対角化可能であるとは、基底となるような固有ベクトルの組が存在することを意味している。

逆に、もし固有値の重複度より固有ベクトルの次元が小さいものが存在すると、対象となる線形空間の次元に対して固有ベクトルの本数が足りなくなってしまい、基底を作れなくなる。この場合は対角化不可能となる。

基底の取り替え行列 Pとしては、 Aのn個の列固有ベクトル {\bf p}_1, {\bf p}_2, \cdots, {\bf p}_nを並べた行列を取れば対角化できる。計算の過程を以下に示す。

 \displaystyle{
\begin{eqnarray}
P^{-1} A 
 \left( \begin{array}{cccc}
      {\bf p}_1 & {\bf p}_2 & \cdots & {\bf p}_n
    \end{array} \right)
 &=& P^{-1} \left( \begin{array}{cccc}
      \lambda_1 {\bf p}_1 & \lambda_2 {\bf p}_2 & \cdots & \lambda_n {\bf p}_n
    \end{array} \right) \\
 &=& \left( \begin{array}{cccc}
      \lambda_1 & 0 & \ldots & 0 \\
      0 & \lambda_2 & \ldots & 0 \\
      \vdots & \vdots & \ddots & \vdots \\
      0 & 0 & \ldots & \lambda_n
    \end{array} \right)
\end{eqnarray}
}

固有値固有ベクトルは何に紐づくものか?

ここで注意点を1つ。世の中ではよく「行列の固有値」とか「行列の固有ベクトル」という言い方をする。これは別に間違っていない。実は、線形変換に対しても固有値固有ベクトルという概念が存在する。

まず固有値についてだが、行列の固有値 P^{-1}, Pのサンドイッチ変換に対して不変となる。そのため、線形変換の固有値とは「任意の基底に対する表現行列の固有値である」と定義しておけば、それは一意に定まる。

多様体微分幾何学なんかが代表的であるが、座標系に依存しない量や概念というのは、その数学的対象の本質的な性質を表していると考えられるため、一般にとても重要である。

一方、固有ベクトルは座標系の取り方によって変わる。このように、固有値固有ベクトルでは不変となる範囲が異なるので注意が必要である。

固有値・固有空間に着目した線形変換の分類

ここまでで固有値固有ベクトルとかなりお友達になれたはずなので、本題に入ろう。線形変換が固有値の数や重複度、また固有空間の次元とどのような関係にあるのかを調べてみよう。簡単のために、話を \mathbb{R}上2次の正方行列に絞る。

 \mathbb{R}上2次の正方行列は以下のように分類できる。

  1. 異なる2つの実固有値を持つ場合
  2. 1つの実固有値を持ち、固有空間の次元が2の場合
  3. 1つの実固有値を持ち、固有空間の次元が1の場合
  4. 固有値を持たない場合

以下では分類された各項目の線形変換がどのような振る舞いをするのか、例を用いながら調べてみる。

異なる2つの実固有値を持つ場合

例として以下の行列を考える。

 \displaystyle{
A = \left( \begin{array}{cc}
     1  & -1/4 \\
  -1/2 & 5/4 \\
    \end{array} \right)
}

 A固有値固有ベクトルは以下のようになる。

sage: A = matrix(QQ, [[1, -1/4], [-1/2, 5/4]])
sage: for var in A.eigenvectors_right():
....:     print var
....:     
(3/2, [   # 固有値1つ目
(1, -2)   # 固有ベクトル
], 1)     # 重複度
(3/4, [   # 固有値2つ目
(1, 1)    # 固有ベクトル
], 1)     # 重複度

この線形変換を可視化したものを以下に示す。

f:id:peng225:20180913002223p:plain

ここで、黒の矢印は基底、グレーの点線矢印は基底に Aを作用させて得られるベクトルである。赤の矢印は固有ベクトル、オレンジの点線矢印は固有ベクトル Aを作用させて得られるベクトルである。また、水色の矢印は、矢印の根元の位置ベクトルが、 Aによって矢印の先端に写ることを意味している。

これを見ると、Aの作用によって空間が2つの固有ベクトルの方向に伸び縮みしているのが分かる。これより、このタイプの線形変換は固有ベクトル方向の拡大・縮小を表すと考えられる。ただし、伸びるのか縮むのか、またその程度がどれくらいであるかは固有値によって決まる。

1つの実固有値を持ち、固有空間の次元が2の場合

例として以下の行列を考える。

 \displaystyle{
A = \left( \begin{array}{cc}
     2  & 0 \\
     0 & 2 \\
    \end{array} \right)
}

 A固有値固有ベクトルは以下のようになる。

sage: A = matrix(QQ, [[2, 0], [0, 2]])
sage: for var in A.eigenvectors_right():
....:     print var
....:     
(2, [     # 固有値
(1, 0),   # 固有ベクトル1つ目
(0, 1)    # 固有ベクトル2つ目
], 2)     # 重複度

この線形変換を可視化したものを以下に示す。

f:id:peng225:20180913002458p:plain

これを見ると、Aの作用によって空間が原点を中心に拡大されているのが分かる。これより、このタイプの線形変換は拡大・縮小を行うものと考えられる。

一点補足だが、このケースの線形変換の表現行列は単位行列の定数倍しかあり得ない。 Aのただ1つの固有値 \lambdaとすると、 Aを対角化した行列は \lambda Eとなる。対角化のための変換行列を Pとすると、結局以下のようになる。

 \displaystyle{
\begin{eqnarray}
P^{-1} A P &=& \lambda E \\
A &=& P (\lambda E) P^{-1} \\
A &=& \lambda E
\end{eqnarray}
}

よって A単位行列固有値倍となる。

1つの実固有値を持ち、固有空間の次元が1の場合

例として以下の行列を考える。

 \displaystyle{
A = \left( \begin{array}{cc}
     11/6 & -1/3 \\
       1/3  & 7/6
    \end{array} \right)
}

 A固有値固有ベクトルは以下のようになる。

sage: A = matrix(QQ, [[11/6, -1/3], [1/3, 7/6]])
sage: for var in A.eigenvectors_right():
....:     print var
....:     
(3/2, [   # 固有値
(1, 1)    # 固有ベクトル
], 2)     # 重複度

この線形変換を可視化したものを以下に示す。

f:id:peng225:20180913002520p:plain

これを見ると、原点を通る固有ベクトルによって引かれる直線より下側では右向きの、上側では左向きの流れがあるように見える。これより、このタイプの線形変換は固有ベクトルと平行な方向に歪みを与える働きがあると考えられる。

固有値を持たない場合

例として以下の行列を考える。

 \displaystyle{
A = \left( \begin{array}{cc}
     1   & -1/2 \\
    1/2 &   1
    \end{array} \right)
}

 A固有値固有ベクトルは以下のようになる。

sage: A = matrix(QQ, [[1, -1/2], [1/2, 1]])
sage: for var in A.eigenvectors_right():
....:     print var
....:     
(1 - 0.50000000000000000?*I, [(1, 1*I)], 1)    # 固有値が虚数
(1 + 0.50000000000000000?*I, [(1, -1*I)], 1)

この線形変換を可視化したものを以下に示す。

f:id:peng225:20180913002536p:plain

これを見ると、螺旋のような渦巻きが現れている。これより、このタイプの線形変換は回転と拡大・縮小の組み合わせになっていると考えられる。

まとめ

以上、線形変換についていろいろと調べてみた。その結果、線形変換は固有値固有ベクトルによっていくつかの種類に分類できそうだということが分かった。本稿では2次正方行列で表現される線形変換しか詳細に調べなかったが、3次以上についても類似の考察が可能だろうと推測される。3次までなら頑張って可視化できないこともないかもしれないので、機会があればトライしてみたい。

参考文系

[1]

線型代数入門 (基礎数学)

線型代数入門 (基礎数学)

区間推定の理論と実践

統計学における推定の考え方は仮説検定と双璧を成す重要な理論であり、初学者がまず目指すべき最高到達点である。推定は強力な手法であるが故に、恐らく大抵の教科書では記載があるだろうし、ググればいくらでもWebページがヒットする。

そんな状況下ではあるが、推定の中でも特に区間推定は個人的に興味をそそられる内容であり、ぜひともブログを書き起こしてみたくなった。そこで、本稿ではできるだけ二番煎じにならないよう、私が得た区間推定に対する理解について説明してみたいと思う。

本稿では正規母集団から抽出した標本データを用いた母平均の区間推定のみをターゲットとする。また、適当なサンプルデータを用いて実際に区間推定を行うことで、区間推定の理論に対して確かな実感を得てみたいと思う。

なお、本稿を執筆するに辺り、全体的に[1][2]を参考にした。

母平均の区間推定

母分散が既知の場合

正規母集団 N(\mu,\ \sigma^2)に従う独立な確率変数 X_1,\ X_2,\ \cdots .\ X_nの標本平均 \overline{X}を考える。このとき、 \overline{X}自体も確率変数となっており、これが従う確率分布は N(\mu,\ \sigma^2/n)となる。また、これを標準化した確率変数 Z = \frac{\overline{X} - \mu}{\sigma/\sqrt{n}}は、当然だが標準正規分布 N(0,\ 1)に従う。

今、母分散 \sigma^2は分かっているが、母平均 \muの値が不明な状況を考える。もちろん、実際にはこんなことはまずあり得ないのだが、このケースを考えることは後々の議論において意味がある。

この時、 \mu = E(\overline{X})という関係が成り立つので、標本平均をそのまま母分散だと考えてもあながち間違いではない。しかし、当然だが \overline{X}の値にはぶれがあり、どんなサンプルを抽出するかによって値が変わってしまう。しかも、極端なケースでは \overline{X}はとんでもなく大きくなったり小さくなったりすることがあり得る。そのため、 \overline{X}の値だけをみても、母平均について何も確実なことは言えない。

では、何か確率的な議論はできないだろうか?例えば「95%の確率で \muはAからBの間に入ります」というようなことが言えないだろうか?

結論から言うとこれは可能である。標準正規分布において、それより大きい値を取る確率が \alpha\ (0 < \alpha < 1)となるような点 ( 100 \alphaパーセント点) を Z_\alphaと表すと、先ほど導入した確率変数Zは確率 1 - \alphaで以下の不等式を満たす。

 \displaystyle{
 -Z_{\alpha/2} < Z < Z_{\alpha/2}
}

2点注意事項がある。まず、これは正規分布が左右対称だから言えることである。さもなければ、  -Z_{\alpha/2}の部分はそれより小さい値を取る確率が \alpha/2となるような点を別途求めて、それと置き換えてやる必要がある。

次に、 \alphaを2で割っている理由だが、これは上側の \alpha/2と下側の \alpha/2を両方排除し、残りが 1 - \alphaとなるようにするためである。

この不等式を変形すれば、以下のように \muが確率 1 - \alphaで取る値の範囲が分かる。

 \displaystyle{
\overline{X} - \frac{Z_{\alpha/2} \sigma}{\sqrt{n}} <  \mu < \overline{X} + \frac{Z_{\alpha/2}\sigma}{\sqrt{n}}
}

母分散が未知の場合

先ほども述べた通り、母平均は未知なのに母分散は分かっているということは普通はあり得ない。実際に得られるのは不偏分散 s^2だけというケースがほとんどである。不偏分散の定義式を以下に示す。

 \displaystyle{
s^2 = \frac{1}{n-1} \sum_{i=1}^n (X_i - \overline{X})^2
}

不偏分散に対しては \sigma^2 = E(s^2)という関係式が成り立つので、これを母分散の代わりに用いることはそれほど不自然ではない。しかし、やはりサンプル数が少ない場合には母分散とかけ離れた値を取ることがあり得る。そのため、先ほど考えた確率変数Zの式に対して単に \sigma = sを代入すると、これはもはや正規分布には従わない。

では、これはどのような分布になるのだろうか?それを調べるために、Zの式に \sigma = sを代入した式を以下のように変形してみよう。

 \displaystyle{
\begin{eqnarray}
t &=& \frac{\overline{X} - \mu}{\frac{s}{\sqrt{n}}} \\
&=& \frac{\overline{X} - \mu}{\frac{\sigma}{\sqrt{n}} \cdot \frac{s}{\sigma}} \\
&=& \frac{Z}{\frac{\sqrt{\frac{1}{n-1} \sum_{i=1}^n (X_i - \overline{X})^2}}{\sigma}} \\
&=& \frac{Z}{\sqrt{\frac{1}{n-1} \sum_{i=1}^n \left(\frac{X_i - \overline{X}}{\sigma}\right)^2}}
\end{eqnarray}
}

ここで、分母に \sum_{i=1}^n \left(\frac{X_i - \overline{X}}{\sigma}\right)^2という式が現れた。この式自体も確率変数であり、これは標準正規分布に従う確率変数の二乗和を表す。このような確率変数が従う確率分布は自由度n-1の \chi^2分布と呼ばれる。

まとめると、標準正規分布に従う確率変数Zと自由度n-1の \chi^2分布に従う確率変数Wによって、元々の確率変数tは以下のように表される。

 \displaystyle{
t = \frac{Z}{\sqrt{\frac{W}{n-1}}}
}

このような確率変数tが従う確率分布は自由度n-1のt分布と呼ばれる。結論として、母分散未知のケースにおける母平均の推定にはt分布を使用する必要があることが分かった。

自由度n-1のt分布を t(n-1)と書くと、母分散既知のケースと同様の計算を行うことで、 \muは確率 1 - \alphaで以下の不等式を満たすことが分かる。

 \displaystyle{
\overline{X} - \frac{t_{\alpha/2}(n-1) s}{\sqrt{n}} <  \mu < \overline{X} + \frac{t_{\alpha/2}(n-1) s}{\sqrt{n}}
}

ただし、 t_{\alpha/2}(n-1)は自由度n-1のt分布の 100 \alpha/2パーセント点を表す。ここでもt分布が左右対称であることを利用している。

サンプル数に関する注意

t分布は自由度が大きくなると正規分布に収束していく。そのため、t分布を用いる必要があるのはサンプル数が少ない場合に限る。実用上はサンプル数が30以上あれば正規分布を使用しても差し支えないようである[1]。

区間推定の実践

ここまでに述べたことを実践してみよう。統計処理をするにはpythonかRが簡単そうであるが、Android上で環境を構築できたのでpythonを使うことにする[3]。また、データセットとしてIrisは見飽きたので、ここではAbarone (アワビ) を使用している[4]。

Abaroneデータセットには、1列目に性別、3列目に直径の情報が入っている。今回はオスのアワビの直径データについて、母平均の区間推定を行ってみた。サンプル数は敢えて少なめに10とし、t分布を使った場合と正規分布を使った場合で比較を行った。もちろん、正しいのはt分布を使う方である。

以下に今回作成したソースコードを示す。作成の際には[5]を参考にさせて頂いた。日本語コメントは本稿のために後から付したものであり、このままでは実行できないので注意されたい。

import pandas as pd
from scipy import stats
import math

# 全部の列に名前を付けるのは諦めた...
abalone = pd.read_csv('file:///storage/emulated/0/Download/abalone.data', 
                 header=None, names=['sex', 'length', 'diameter', 'height', 'a', 'b', 'c', 'd', 'e'])

# オスの情報だけ抽出
male = abalone[abalone['sex'] == 'M']

n = 10
# 自由度n-1のt分布の95%信頼区間を取得
tleft, tright = stats.t.interval(alpha=0.95, df=n-1)
# 正規分布の95%信頼区間を取得
nleft, nright = stats.norm.interval(alpha=0.95)

mean = male.iloc[:n]['diameter'].mean()
# デフォルトで不偏分散の平方根が計算される
stddev = male.iloc[:n]['diameter'].std()

# 本文中の式と若干符号が異なるので注意
tleft = mean + tleft*stddev/math.sqrt(n)
tright = mean + tright*stddev/math.sqrt(n)

nleft = mean + nleft*stddev/math.sqrt(n)
nright = mean + nright*stddev/math.sqrt(n)

print("mean = {:.3f}, stddev = {:.3f}".format(mean, stddev))
print("t-dist: left = {:.3f}, right = {:.3f}".format(tleft, tright))
print("n-dist: left = {:.3f}, right = {:.3f}".format(nleft, nright))

実行結果を以下に示す。

mean = 0.339, stddev = 0.046
t-dist: left = 0.306, right = 0.372
n-dist: left = 0.310, right = 0.368

実行結果から分かるように、正規分布を使った場合は区間が狭めに出力されてしまう。そのため、正規分布での結果を元に考察を行うと判断を誤る恐れがある。

最後に特大の注意事項がある。今回はオスのアワビの直径データが正規分布に従うと仮定して分析を行ったが、本来であればこの仮定の妥当性は良く確かめる必要がある。誤った仮定を元に一生懸命計算したとしても、その結果には何の意味もないどころか、誤った帰結へと導かれる危険性がある。

データが正規分布に良く当てはまっているかどうかを判断する方法について私には知見がない。軽くググってみたらいろいろと情報がありそうだったので、興味のある方は調べてみると面白いかもしれない。

その他の話題

本稿では正規母集団から抽出したサンプルから母平均の区間推定を行った。この他にも、例えば母分散の区間推定を行う方法などは有名である[1]。また、実用上のタスクとしては正規母集団以外の母集団を考えることもあるだろう。しかし、どんな場合であれ、基本的な区間推定の考え方は本稿に述べたものと大きく異なることはないであろう。

まとめ

以上、区間推定に関する理論と実践について述べた。統計学は応用先が非常にたくさんある分野なので、理解を深めておいて損はない。また機会があれば、多変量解析などの進んだ内容も勉強し直したい。

確率分布族の再生性まとめ

確率分布はたくさんある

統計学を勉強していると、世の中には本当にたくさんの確率分布が存在する事に気付く。現実世界の現象に統計学を応用しようと考えるとき、その現象にはどのような確率分布が良く当てはまるのかを考えたくなる時がある。そのためには、数ある確率分布がそれぞれどういう現象をうまく表現できるかということを知っておく必要がある。

そこで、本稿では基本的な確率分布の特徴についてまとめてみ・・・ようと思ったのだが、途中までやりかかったところですでに素晴らしいまとめ[1]が存在することに気づいた。

劣化コピーを作っても意味がないので、ここでは[1]に記載が少ない再生性に関する事項についてのみまとめてみる。ただし、さすがに[1]に記載されている全ての分布について調べるのはしんどいので、ここでは私が個人的に興味を持った分布についてのみ紹介する。詳細は[2][3][4][5][6]等を参照のこと。

離散型

名称 再生性  X_i\ (i=1,\ 2)  X_1 + X_2
二項分布 有り  Bi(n_i,\ p)  Bi(n_1 + n_2,\ p)
ポアソン分布 有り  Po(\lambda_i)  Po(\lambda_1 + \lambda_2)

連続型

名称 再生性  X_i\ (i=1,\ 2)  X_1 + X_2
正規分布 有り  N(\mu_i,\ \sigma_i^2)  N(\mu_1 + \mu_2,\ \sigma_1^2 + \sigma_2^2)
対数正規分布 有り  \Lambda(\mu_i,\ \sigma_i^2)  \Lambda(\mu_1 + \mu_2,\ \sigma_1^2 + \sigma_2^2)
指数分布 無し - -
ガンマ分布 有り  Ga(\alpha_i,\ \lambda)  Ga(\alpha_1 + \alpha_2,\ \lambda)
コーシー分布 有り  Ca(\alpha_i,\ \beta_i)  Ca(\alpha_1+\alpha_2,\ \beta_1+\beta_2)
 \chi^2分布 有り  \chi^2(m_1)  \chi^2(m_1 + m_2)
t分布 無し? - -

まとめ

調べてみると、意外と多くの確率分布族が再生性を持つことが分かった。世の中うまくできているものだ。

今回は[1]を見つけたことでブログを書くモチベーションが下がってしまったが、こういうまとめが存在すること自体は大変ありがたい。困ったときに活用させてもらおう。

中心極限定理と確率分布族の再生性

確率・統計の分野における定理と言えばいろいろあるが、中でも中心極限定理は有名だろう。ざっくり言えば、中心極限定理とはある確率分布に従う独立な確率変数をたくさん取り出すと、それらの和が従う確率分布は正規分布に近づいていくというものである。

一方で、確率分布の中には再生性と呼ばれる性質を持つものがある。これは、ある確率分布族に属する2つの確率分布に対して、それぞれに従う2つの独立な確率変数の和を取ると、その和が従う確率分布は再び元の確率分布族に属するというものである。

これらは一見すると矛盾しているようにも思える。なぜなら、一方は和の確率分布が正規分布になると言い、もう一方は和の確率分布は元の分布と同じ分布族に属すると主張しているからである。

そこで本稿では両者の間にどのような関係があり、どうすれば両者を矛盾なく解釈できるかについて考えてみる。

中心極限定理

中心極限定理の内容をWikipedia[1]より引用する。

期待値  \muと分散  \sigma^2 を持つ独立同分布 ("i.i.d.") に従う確率変数 ("r.v.") 列  X_1,\ X_2, \ldotsに対し、
 \displaystyle{
S_{n}:=\sum _{k=1}^{n}X_{k}
}
とおくと、
 \displaystyle{
P{\Big (}{\frac {S_{n}-n\mu }{{\sqrt {n}}\sigma }}\leq \alpha {\Big )}\to {\frac {1}{\sqrt {2\pi }}}\int _{-\infty }^{\alpha }e^{-{\frac {x^{2}}{2}}}dx\qquad (n\to \infty ).
}
つまり、i.i.d. r.v. 列の和を標準化すると、期待値 0, 分散 1 の正規分布 N(0, 1) に分布収束する。

記事[1]の英語版には記載があるのだが、定理成立のためには分散が有限の値を取ることも必要なので注意されたい。

確率分布族の再生性

定義

続いて、再生性の定義をWikipedia[2]より引用する。

確率分布族の再生性
分布族 \mathbb{F}を考える。

任意の確率分布 F_{1},\ F_{2} \in \mathbb{F}に対して、 F_{i}に従う互いに独立な確率変数を X_{i}とおく (i=1, 2) 。これを X_{i}\sim F_{i}と書く(以下同様)。

このとき、 X_{1}+X_{2}の確率分布Fが F\in \mathbb {F}を満たすならば、分布族 \mathbb{F}は再生性を持つという。

ここで、分布族 \mathbb{F}としては、例えば正規分布の族や二項分布の族などをイメージしておくと良いだろう。実際、これらの分布族は再生性を持つことが知られている[2]。

確率分布族に再生性がある場合、3つ以上の確率変数の和についても同じ分布族に属する確率分布に従う。

確率密度関数の畳み込み

定理の中で登場した確率分布 F_{1},\ F_{2},\ F確率密度関数をそれぞれ f_{1},\ f_{2},\ fとすると、fは具体的に f = f_{1} * f_{2}と表すことができる。ここで*は畳み込み演算を表す。畳み込み演算は (連続的な値を扱う場合) 以下のように定義される[3]。

\displaystyle{
(f * g)(x) = \int^{\infty}_{-\infty} f(t)g(x-t) dt
}

最初の疑問への答え

ここで、冒頭で掲げた疑問の答えについて考えてみよう。 \mathbb{F}を再生性を持つ分布族とする。また、確率分布 F \in \mathbb{F}確率密度関数をfとする。Fに従う独立な確率変数の列 X_1,\ X_2, \cdots ,\ X_nの総和 S_n = X_1 + X_2 + \cdots + X_nが従う確率分布の密度関数は f * f * \cdots * f (fをn個畳み込み) となる。念のため述べておくが、畳み込み演算は結合法則が成り立つので、演算順序を括弧で明示せずとも結果は一意に定まる[3]。

 \mathbb{F}の再生性により f * f * \cdots * fが表す確率分布は \mathbb{F}に属する。一方、中心極限定理により n \to \inftyのときその累積分布関数は正規分布に近づいていく。つまり、最初の疑問への答えとしては「確率変数の和の累積分布関数は n \to \inftyでもあくまで分布族 \mathbb{F}に従うが、同時に正規分布の累積分布関数に限りなく近づいていく」ということである。つまり、再生性と中心極限定理の主張は (当たり前だが) どちらも同時に正しいのである。

例として二項分布について考えてみよう。確率変数 X_1,\ X_2,\ \cdots ,\ X_nは互いに独立で、かつ二項分布 \mathrm{B}(m,\ p)に従うとすると、これらの総和 X_1 + X_2 +\ \cdots + X_nは二項分布 \mathrm{B}(nm,\ p)に従う。nがどれだけ大きくなってもこれが二項分布であることに変わりはないが、一方でだんだんと正規分布にも近づいていくのである。

実用上、nが大きくなると \mathrm{B}(nm,\ p)を計算するのは骨が折れる。そのため、近似的に正規分布に従うと考えて、計算を簡略化できたりするようだ[4]。

なぜ累積分布関数?

ここまでの議論では何かと結論を累積分布関数に結びつけてきた。確率・統計素人の私からすると確率密度関数で考えた方が簡単そうに思えるわけだが、なぜ執拗に累積分布関数に言及する必要があったのか?その理由は先ほど引用した中心極限定理のstatementをよく見ると分かる。重要な部分を抜き出してみる。

i.i.d. r.v. 列の和を標準化すると、期待値 0, 分散 1 の正規分布 N(0, 1) に分布収束する。

先ほどはさらりと流したが、ここに登場する「分布収束」という概念が肝である。Wikipedia[5]より定義を引用する。

分布収束
確率変数の列 X_{1},\ X_{2},\ldotsが、ある確率変数Xへと分布収束する、あるいは弱収束あるいは法則収束(converge in law)するとは、
\displaystyle{
\lim _{n\to \infty }F_{n}(x)=F(x),
}
が、Fが連続であるような全ての数 x \in\mathbb{R}に対して成立することを言う。ここで、 F_{n} およびFはそれぞれ確率変数 X_{n}およびXの累積分布関数である。

この定義を見ると分かるように、中心極限定理において正規分布に近づいていくのは累積分布関数であり、確率密度関数ではない。つまり、中心極限定理確率密度関数については何も教えてくれないので、累積分布関数についてしか議論できないのである。

積分布関数を微分してはダメか?

しかし、累積分布関数は確率密度関数不定積分したものなのだから、一見するとどちらで議論しても大差ないような気がしてしまう。つまり、累積分布関数が正規分布のそれに近づくのならば、微分してやれば確率密度関数が得られるので、確率密度関数正規分布に近づいていくのではないのか?

もしそうだとすると、分散が有限値を取る任意の確率分布の密度関数を無限に畳み込んでやると、それは正規分布の密度関数に近づいていくと言えそうだ。私は先日この事実に思い至り、これはすごいことに気が付いたと喜んだ。

しかし、残念ながらこれは常に正しいとは言えない。Wikipedia[1]の英語版を見ると以下のような記述がある。

Thus the central limit theorem can be interpreted as a statement about the properties of density functions under convolution: the convolution of a number of density functions tends to the normal density as the number of density functions increases without bound. These theorems require stronger hypotheses than the forms of the central limit theorem given above. 

つまり、確率密度関数をたくさん畳み込んで正規分布の密度関数に近づくためには、中心極限定理よりも強い仮定が必要だと書かれている。一体なぜそんなことになってしまうのだろうか?

残念ながら、現状ではこの疑問の答えを真に理解するまでには至っていない。この問題にはlocal limit theorem[6]なるものが関係していることまでは分かったが、一朝一夕では理解できなさそうな沼が広がっていることに気付いたので、今回はここで諦めることにした。

ただし、[6]によると密度関数の収束列の中に有界な項が存在する場合は密度関数も正規分布に収束するというような記載がある。そのため、応用上よく扱うような密度関数であれば正規分布に近づいていくと思って差し支えないのだろう。

まとめ

以上、中心極限定理と確率分布族の再生性の関係性について述べた。結論としては、再生性を持つ分布族に属する確率分布に従う確率変数をたくさん足してやると、それはあくまで元の分布族に属する確率分布に従う。そうでありながら、それは同時に正規分布に近づいていくということであった。

また、確率密度関数と累積分布関数に関する微妙な問題について調べた。詳細な理解にまでは至らなかったが、両者の区別を曖昧にしたまま議論を進めると痛い目にあうということが分かった。

今回はネットで調べた情報を中心に記事を書いてみたが、やはり専門書が手元にないとしんどいし、確率論は奥が深くて難しい。いずれ何か本を手にとってじっくりと勉強したい。

モーメント母関数とTaylor展開の項別微分

最近、統計学を勉強している。統計学における重要な概念の1つとしてモーメント母関数がある。モーメント母関数とは簡単な計算を施すことで次々と重要な統計量が取得できる便利関数であるが、これは指数関数 f(x) = e^xのTaylor展開と関係がある。本稿ではこれについて疑問に思ったことと、その回答について書いてみる。

なお、あらかじめ述べておくが、本稿は統計学の話と見せかけて、内容はほとんど解析学の話である。

モーメント母関数

定義

まず、モーメントの定義を以下に示す[1]。

モーメント
一般に
 \displaystyle{
\mu_r = E(X^r)
}
を, Xの (原点のまわりの) r次のモーメント moment, または積率といい,
 \displaystyle{
\mu'_r = E(X - \mu)^r
} (ただし、 \mu = E(X))
を, Xの期待値 (平均) のまわりのr次のモーメンという.

本[1]は記法が少々分かりづらいが、Xの期待値のまわりのモーメントの式は恐らく \mu'_r = E\{(X - \mu)^r\}を意図しているものと思われる。

続いてモーメント母関数の定義を以下に示す[1]。

モーメント母関数
すべての次数のモーメントを生成するモーメント母関数 moment generating function を
 \displaystyle{
M_X(t) = E(e^{tX})
}
と定義する. その計算は
 \displaystyle{
M_X(t) = \sum_x e^{tx} f(x)
} (離散型)
 \displaystyle{
M_X(t) = \int_{-\infty}^{\infty} e^{tx} f(x)dx
} (連続型)
による.

モーメント母関数からモーメントを取得する

モーメント母関数を使うと面倒な計算をすることなく任意の次数のモーメントを取得することができる。そのためにはモーメント母関数をr回微分して0を代入すれば良い。すなわち、以下の式が成立する。

 \displaystyle{
\mu_r = M^{(r)}_X(0)
}

なぜこうなるのか説明する。まず、 e^{x}のTaylor展開に x = tXを代入すると以下のようになる。

 \displaystyle{
e^{tX} = \sum_{n=0}^{\infty} \frac{(tX)^n}{n!}
}

さらに両辺の期待値を取ると以下のようになる。

 \displaystyle{
\begin{eqnarray}
M_X(t) &=& E \left(\sum_{n=0}^{\infty} \frac{(tX)^n}{n!} \right) \\
             &=& \sum_{n=0}^{\infty} E \left( \frac{(tX)^n}{n!} \right) \\
             &=& \sum_{n=0}^{\infty} \frac{t^n}{n!} E (X^n) \\
             &=& \sum_{n=0}^{\infty} \frac{\mu_n}{n!} t^n
\end{eqnarray}
}

2つ目の等号は期待値の加法性による*1。上式の両辺をr回微分してみる。

 \displaystyle{
\begin{eqnarray}
M^{(r)}_X(t) &=& \left(\sum_{n=0}^{\infty} \frac{\mu_n}{n!} t^n \right)^{(r)} \\
                      &=& \sum_{n=0}^{\infty} \left(\frac{\mu_n}{n!} t^n \right)^{(r)} \\
                      &=& \sum_{n=0}^{\infty} \frac{\mu_{n+r}}{n!} t^n
\end{eqnarray}
}

あとは t = 0を代入すれば求める式が得られる。

Taylor展開と項別微分

先程の説明の中で、さらりと項別微分を行っていたことにお気づきだろうか?よく知られているように、無限級数はいつでも気軽に項別微分出来るものではなく、常にそれが可能かどうかチェックする必要がある。

ここで私が疑問に思ったのは、Taylor展開によって得られた無限級数はいつでも項別微分可能か?ということである。以下でこれについて調べていこう。

級数

Taylor展開によって得られる無限級数は、いわゆる冪級数の形をしている。冪級数とは以下のような形をした級数である[2]。

 \displaystyle{
\sum_{n=0}^{\infty} a_n (x - \alpha)^n
}

ただし、 x - \alphaにxを代入してもこの後の議論はほとんど変わらないので、ここでは以下のような冪級数のみを考える。

 \displaystyle{
\sum_{n=0}^{\infty} a_n x^n
}

項別微分可能条件

一般の無限級数に対する項別微分可能条件を以下に示す[2]。

項別微分可能条件
 \sum a_n(x) = s(x)が収束し,  a_n(x)微分可能,  a_n'(x)が連続で,  \sum a_n'(x) = t(x)が一様に収束するならば,
 \displaystyle{
s'(x) = t(x)
}
すなわち s(x) = \sum a_n(x)が項別に微分される:
 \displaystyle{
\frac{d}{dx} \sum a_n(x) = \sum \frac{d}{dx} a_n(x)
}

Taylor展開によって得られる冪級数の場合、xが収束半径内に収まってさえいれば収束は保証される。また、各項は微分可能であり、各項の導関数も当然連続である。そのため、項別微分可能であるかどうかを知るためには、以下の2点について調べれば良い。

  • 各項の導関数の無限級数、すなわち \sum_{n=1}^{\infty} n a_n x^{n-1}の収束半径は、もとの級数 \sum_{n=0}^{\infty} a_n x^nの収束半径とどういう関係にあるか?
  •  \sum_{n=1}^{\infty} n a_n x^{n-1}は収束半径内において一様収束するか?

以下でそれぞれについて調べてみよう。

無限級数の収束半径

無限級数の収束半径は以下で与えられる[2]。

Cauchy-Hadamardの定理
級数 \sum a_n x^nの収束半径rは次の値を有する:
 \displaystyle{
\frac{1}{r} = \varlimsup_{n \to \infty} \sqrt[n]{a_n}
}

 n \to \inftyのとき \sqrt[n]{n} \to 1となるため、 \sum_{n=0}^{\infty} a_n x^n \sum_{n=1}^{\infty} n a_n x^{n-1}の収束半径は一致する。

級数の一様収束条件

級数の一様収束性を考える上では、次のAbelの定理が有効である。

Abelの定理
もしも巾級数 \sum a_n x^n x=x_0なるとき収束するならば,  |x| < |x_0|なるxのすべての値に関して絶対収束し, また領域 |x| < |x_0|に含まれる任意の閉区域において一様に収束する.

ここでちょっとした疑問が生じる。収束半径rに対して、xが収束する区間はよく |x| < rというように開区間として与えられる。一方、上の定理では閉区間での一様収束性を述べており、この定理をどのように適用すれば良いか分かりづらい。この点について少し説明してみる。

 \sum_{n=1}^{\infty} n a_n x^{n-1}の収束半径をrとする。また、 \epsilonをrより十分小さい正の数であるとする。一様収束とは、ざっくり言えばある区間において関数値があらゆるxに対して同じように収束していく様子を表す。そのため、ある1つの点において一様収束を考える意味はなく、必ず区間について考える必要がある。

一様収束を考える区間として、ここでは [-r + \epsilon,\ r - \epsilon]に着目してみよう。収束半径はrなので、 x = \frac{(r - \epsilon) + r}{2}の点において \sum_{n=1}^{\infty} n a_n x^{n-1}は収束する。よってAbelの定理により |x| < \frac{(r - \epsilon) + r}{2}に含まれる任意の閉区間において \sum_{n=1}^{\infty} n a_n x^{n-1}は一様収束する。特に、 [-r + \epsilon,\ r - \epsilon]において一様収束する。 \epsilon \to 0の極限をを考えれば、結局 \sum_{n=1}^{\infty} n a_n x^{n-1}は収束半径内において一様収束すると言える。

なお、 r = \inftyの場合は若干証明が異なるが、考え方はほとんど一緒である。

以上により、Taylor展開によって得られる冪級数は何回でも項別微分できる事が分かった。

まとめ

本稿ではモーメント母関数に端を発し、Taylor展開によって得られる無限級数の項別微分可能性について述べた。結論として、そのような級数は何回でも項別微分出来ることが分かった。

分かっている人からしてみれば実に当たり前のことかも知れないが、私にしてみればこういう疑問を抱けたこと自体を嬉しく思う。こういう初歩的な事実に対しても常に懐疑的に見る気持ちを忘れずに、これからも数学を学んでいけると良い。

参考

[1]

統計学入門 (基礎統計学?)

統計学入門 (基礎統計学?)

[2]
解析概論 改訂第3版 軽装版

解析概論 改訂第3版 軽装版

*1:無限級数に対しても加法性がそのまま成立するかどうかは厳密に考える必要があると思われるが、本[1]ではあまり細かいことは書いていなかった。

幾何平均の使いどころ

「平均」と言えば、算術平均 (=相加平均) の他に幾何平均 (=相乗平均) があるということをご存知の方は多いだろう。算術平均の方は意味が理解しやすく、使われる場面も多いと思われる。一方で、幾何平均はその意味するところが分かりづらく、一体どんな場面で使うべきものなのか、不勉強な私はこれまで知らなかった。せいぜい、高校数学で相加・相乗平均の関係を計算に使ったりする程度で、幾何平均ならではの使いどころというのは理解していなかった。

最近、統計学の本[1]を読み直して幾何平均の使いどころに気づいたので、本稿ではそれを紹介したいと思う。

定義

幾何平均の定義を[1]より引用する。

幾何平均
正数 x_1,\ x_2,\ \cdots,\ x_nの幾何平均 geometric mean  x_G
\displaystyle{
x_G = \sqrt[n]{x_1 \cdot x_2 \cdot \ \cdots \ \cdot x_n}
}
で定義され, (以下省略)

幾何平均の意味

幾何平均の定義式を少し変形してみよう。

\displaystyle{
x_G^n = x_1 \cdot x_2 \cdot \ \cdots \ \cdot x_n
}

この式の意味は、平均を計算するのに使用されたn個の数を全て掛け合わせたものは、幾何平均のn乗に等しいということである。つまり幾何平均とは、互いに掛け合わせることに意味があるようなデータに対して、平均的にはどのような数を掛け合わせることに相当するかを示す指標と言える。

例 : 前年度との売上比率

ここまでの話だけ聞くと何だか当たり前のことのような気がしてしまう訳だが、この事実を真に理解するために、1つ例を見て頂きたい。

ある会社の売上高が、2015年度から2016年度にかけて10%増加、2016年度から2017年度にかけて5%増加、2017年度から2018年度にかけて3%増加したとする。この時、2015年度から2018年度にかけて、平均で毎年どれくらい売上が伸びたと言えるだろうか?

ここで試しに算術平均を計算すると以下のようになる。

 \displaystyle{
\frac{1.1 + 1.05 + 1.03}{3} = 1.06
}

つまり、平均で毎年6%売上が伸びたと言えそうに見える。しかし、実はこれは正しくない。まず、2015年度の売上を1としたとき、2018年度の売上は以下のように計算される。

 \displaystyle{
1.1 \times 1.05 \times 1.03 = 1.18965
}

一方、毎年6%売上が伸びたとして計算すると以下のようになる。

 \displaystyle{
1.06^3 = 1.191016
}

このように、売上比率に対して算術平均を使ってしまうと、元のデータを用いた場合と計算が合わなくなってしまうのである。

この理由は、ある2つの年度の間の売上比率を計算するには、その間の各年度における前年度との売上比率を掛け合わせる必要があるからである。つまり、前年度との売上比率は掛け合わせることに意味があるデータだからである。

このようなケースこそ幾何平均の出番である。今回のデータに対して幾何平均を計算すると以下のようになる。

 \displaystyle{
\sqrt[3]{1.1 \times 1.05 \times 1.03} \simeq 1.059595
}

これを3乗すると、当然だが2015年度の売上を1としたときの2018年度の売上に一致する。すなわち、売上比率に対しては算術平均ではなく幾何平均を使うのが妥当であると言える。

まとめ

以上、幾何平均を使うべきケースについて例を交えて説明した。ポイントとしては、幾何平均は掛け合わせることに意味のあるデータに対して使用するということであった。これでもう、平均を計算する際にどちらを使うべきかで迷うことはないだろう。

参考

[1]

統計学入門 (基礎統計学?)

統計学入門 (基礎統計学?)