ブログ

統計学を学ぶにあたって必ず抑えておくべき微積分の定義・公式・基本事項

当記事では「統計学を学ぶにあたって必ず抑えておくべき微積分の定義・公式・基本事項」に関して取り扱います。特に微分の定義、$x^{n}$の微分の公式、微積分を用いた関数の最大・最小問題はあらゆるトピックで出てくるので、何度も繰り返して身につけておくと良いです。
取りまとめにあたっては数学の解説に関してはなるべくシンプルに取り扱いますが、統計学への応用に関連した複雑な内容に関しては目次に「*」をつけました。「*」がついているものはやや難しいので、読み飛ばしても問題ありません。

・基本数学まとめ
https://www.hello-statisticians.com/math_basic

微分

極限の概要

極限の定義を厳密に行うと抽象的であるので、当項では数$3$レベルの直感的な理解にとどめて以下、極限を取り扱う。

「極限」は「限りなく〇〇に近い数」と直感的には考えれば良い。たとえば限りなく$0$に近い数は$0.0001$、限りなく$2$に近い数は$1.99998$のように大まかに考えれば十分である。このように限りなく〇〇に近い数を下記のように定める。
$$
\large
\begin{align}
\lim_{x \to 1} x, \lim_{x \to \infty} x, \lim_{h \to 0} h
\end{align}
$$

上記では$\displaystyle \lim_{x \to 1} x$のように表したが、$\displaystyle \lim_{x \to 1} (x^2+x)$のように$x \to 1$のときの$x^2+x$の値を表すこともできる。

極限は基本的には$x \to 1$の際は$x=1$を代入することで考えることができる。たとえば下記が成立する。
$$
\large
\begin{align}
\lim_{x \to 1} x &= 1 \\
\lim_{x \to \infty} x &= \infty \\
\lim_{h \to 0} h &= 0 \\
\lim_{x \to 1} (x^2+x) &= (1^2+1) = 2 \\
\lim_{h \to 0} (h+1) &= (0+1) = 1
\end{align}
$$

上記のように極限は概ね代入を行うことで値の計算を行えるが、下記のような場合具体的な値を計算する際に注意が必要である。
$$
\large
\begin{align}
\lim_{x \to \infty} (2x-x), \lim_{h \to 0} \frac{h^2+h}{h}
\end{align}
$$

上記を単に代入することで計算を行おうとすると、下記のように表される。
$$
\large
\begin{align}
\lim_{x \to \infty} (2x-x) &= 2 \infty – \infty \quad (1) \\
\lim_{h \to 0} \frac{h^2+h}{h} &= \frac{0^2+0}{0} \quad (2)
\end{align}
$$

上記は「具体的に値が定まらない」ので不定形といわれる。「具体的に値が定まらない」というのはたとえば限りなく$0$に小さい数を表すにあたって$10^{-3}$を用いるときもあれば$10^{-10}$を用いるときもあると考えると理解しやすい。このように不定形では様々な値を持つことがあり得る。

よって、文字に関して約分などを行うことによって、予め不定形を解除する必要がある。$(1)$式$(2)$式の不定形はそれぞれ下記のように解消できる。
$$
\large
\begin{align}
\lim_{x \to \infty} (2x-x) &= \lim_{x \to \infty} x = \infty \quad (1)’ \\
\lim_{h \to 0} \frac{h^2+h}{h} &= \lim_{h \to 0} (h+1) \\
&= 1+0 = 1 \quad (2)’
\end{align}
$$

不定形の解消にあたっては上記のように約分で解消する場合が多い。また、不定形は具体的には$\displaystyle \frac{\infty}{\infty}$、$\displaystyle \frac{0}{0}$、$1^{\infty}$の形式で出てくることが多い。

当記事で取り扱う「微分の定義」は$\displaystyle \frac{0}{0}$の形式の不定形であるし、「ネイビア数$e$の定義」は$1^{\infty}$の形式の不定形である。

微分の定義式とその理解

$$
\large
\begin{align}
f'(x) = \lim_{h \to 0} \frac{f(x+h)-f(x)}{h} \quad (3)
\end{align}
$$

上記のように定義される$f'(x)$を「導関数」と呼ぶ。また、関数$f(x)$から導関数$f'(x)$を計算することを「微分」と称する。

上記のように定義される$f'(x)$を「導関数」と呼ぶ。また、関数$f(x)$から導関数$f'(x)$を計算することを「微分」と称する。$(3)$式のような微分の定義式だけではわかりにくいので、以下関数$f(x)$を元に導関数$f'(x)$が点$x$における$f(x)$の傾きを表す関数であることの確認を行う。

上図のように関数$y=f(x)$に対し、$x, x+h$における値$f(x), f(x+h)$を考えるとき、傾き$\displaystyle \frac{\Delta y}{\Delta x}$を下記のように考えられる。
$$
\large
\begin{align}
\frac{\Delta y}{\Delta x} &= \frac{f(x+h)-f(x)}{(x+h)-x} \\
&= \frac{f(x+h)-f(x)}{h}
\end{align}
$$

このとき、$h \to 0$を考えると$\displaystyle \frac{\Delta y}{\Delta x}$が$x$における$f(x)$の傾きに一致する。また、ここで$\displaystyle f'(x) = \lim_{h \to 0} \frac{f(x+h)-f(x)}{h}$であるので、導関数$f'(x)$は$f(x)$の$x$における傾きであると考えられる。

微分の定義に基づく$x^n$の微分

・$f(x) = x^2$
$$
\large
\begin{align}
f'(x) &= \lim_{h \to 0} \frac{f(x+h)-f(x)}{h} \\
&= \lim_{h \to 0} \frac{(x+h)^2-x^2}{h} \\
&= \lim_{h \to 0} \frac{(x^2+2xh+h^2)-x^2}{h} \\
&= \lim_{h \to 0} \frac{2xh+h^2}{h} \\
&= \lim_{h \to 0} \frac{\cancel{h}(2x+h)}{\cancel{h}} \\
&= \lim_{h \to 0} (2x+h) = 2x
\end{align}
$$

・$f(x) = x^3$
$$
\large
\begin{align}
f'(x) &= \lim_{h \to 0} \frac{f(x+h)-f(x)}{h} \\
&= \lim_{h \to 0} \frac{(x+h)^3-x^3}{h} \\
&= \lim_{h \to 0} \frac{(x^3+3x^2h+3xh^2+h^3)-x^3}{h} \\
&= \lim_{h \to 0} \frac{3x^2h+3xh^2+h^3}{h} \\
&= \lim_{h \to 0} \frac{\cancel{h}(3x^2+3xh+h^2)}{\cancel{h}} \\
&= \lim_{h \to 0} (3x^2+3xh+h^2) = 3x^2
\end{align}
$$

・$f(x) = x^n$
$$
\large
\begin{align}
f'(x) &= \lim_{h \to 0} \frac{f(x+h)-f(x)}{h} \\
&= \lim_{h \to 0} \frac{(x+h)^n-x^n}{h} \\
&= \lim_{h \to 0} \frac{(x^n + {}_n C_{1} x^{n-1}h + {}_n C_{2} x^{n-2}h^2 + \cdots + h^n) – x^n}{h} \\
&= \lim_{h \to 0} \frac{{}_n C_{1} x^{n-1}h + {}_n C_{2} x^{n-2}h^2 + \cdots + h^n}{h} \\
&= \lim_{h \to 0} \frac{\cancel{h}({}_n C_{1} x^{n-1} + {}_n C_{2} x^{n-2}h + \cdots + h^n)}{\cancel{h}} \\
&= \lim_{h \to 0} ({}_n C_{1} x^{n-1} + {}_n C_{2} x^{n-2}h + \cdots + h^n) \\
&= {}_n C_{1} x^{n-1} \\
&= n x^{n-1}
\end{align}
$$

積分

積分の定義・積分と微分の対応

上図のように関数$f(x)=x^2-1$を考える際に、区間$[a,b]$における符号付き面積を下記のような数式で定める。
$$
\large
\begin{align}
\int_{a}^{b} f(x) dx
\end{align}
$$

上記の$\displaystyle \int$は$\displaystyle \sum$、$dx$は$\Delta x$に対応すると考えることで微小区間の和を取ることで符号付き面積を計算すると解釈できる。このとき下記が成立するように関数$F(x)$を定める。
$$
\large
\begin{align}
F(x) &= \int f(x) dx \\
\int_{a}^{b} f(x) dx &= F(b) – F(a)
\end{align}
$$

ここで上記に対し、$\displaystyle \frac{d}{dx} F(x)$を考えると下記が成立する。
$$
\large
\begin{align}
\frac{d}{dx} F(x) &= \lim_{\Delta x \to 0} \frac{1}{\Delta x}(F(x + \Delta x) – F(x)) \\
&= \lim_{\Delta x \to 0} \frac{1}{\Delta x} \left( \int_{a}^{x + \Delta x} f(t) dt – \int_{a}^{x} f(t) dt \right) \\
&= \lim_{\Delta x \to 0} \frac{1}{\Delta x} \int_{x}^{x + \Delta x} f(t) dt \\
&= \lim_{\Delta x \to 0} \frac{1}{\cancel{\Delta x}} f(x) \cancel{\Delta x} \\
&= f(x)
\end{align}
$$

よって関数$y=f(x)$と$y=0$によって構成される符号付き面積は微分の逆の計算を行うことによって導出できる。

多項式関数の定積分

前項で取り扱った内容より、$\displaystyle \frac{d}{dx} F(x) = \frac{d}{dx} \int f(x) dx = f(x)$が成立する。ここで$f(x)=x^n$のとき、$F(x)$は下記のように考えられる。
$$
\large
\begin{align}
\frac{d}{dx} F(x) &= f(x) = x^{n} \\
F(x) &= \int f(x) dx = \frac{1}{n+1} x^{n+1} + C
\end{align}
$$

ここで上記の$C$には任意の定数が対応し、この$C$は積分定数といわれることが多い。また、区間$[a,b]$での$y=x^n$と$y=0$に囲まれる符号付き面積は下記のように計算を行える。
$$
\large
\begin{align}
\int_{a}^{b} f(x) dx &= F(b)-F(a) \\
&= \left[ \frac{1}{n+1} x^{n+1} \right]_{a}^{b} \\
&= \frac{1}{n+1} (b^{n+1}-a^{n+1})
\end{align}
$$

上記の$\displaystyle \int_{a}^{b} f(x) dx$を関数$f(x)$の定積分という。ここでの手順に基づいて多項式関数の定積分を行うことができる。

積分と面積

前項で取り扱った内容より、積分を用いて多項式関数によって構成される面積の計算を行うことができる。前項では「符号付き面積」を計算したが、$y=0$の積分値が負で計算されるので、この部分の計算結果に$-$をかけることで補正を行う必要がある。

以下、$f(x)=x^2-1$の区間$[-2,3]$で$y=0$と$f(x)$がなす面積の計算を行う。$f(x)=x^2-1$は$x<-1,1<x$、$-1<x<1$で$f(x)<0$であることに基づいて面積$S$は下記のように計算できる。
$$
\large
\begin{align}
S &= \int_{-2}^{-1} f(x) dx – \int_{-1}^{1} f(x) dx + \int_{1}^{3} f(x) dx \\
&= \int_{-2}^{-1} (x^2-1) dx – \int_{-1}^{1} (x^2-1) dx + \int_{1}^{3} (x^2-1) dx \\
&= \left[ \frac{1}{3}x^3-x \right]_{-2}^{-1} – \left[ \frac{1}{3}x^3-x \right]_{-1}^{1} + \left[ \frac{1}{3}x^3-x \right]_{1}^{3} \\
&= \left[ \left( \frac{1}{3}(-1)^3-(-1) \right) – \left( \frac{1}{3}(-2)^3-(-2) \right) \right] – \left[ \left( \frac{1}{3} \cdot 1^3-1 \right) – \left( \frac{1}{3}(-1)^3-(-1) \right) \right] \\
& \qquad + \left[ \left( \frac{1}{3} \cdot 3^3-3 \right) – \left( \frac{1}{3} \cdot 1^3-1 \right) \right] \\
&= \left( \frac{2}{3} + \frac{2}{3} \right) – \left( – \frac{2}{3} – \frac{2}{3} \right) + \left( 6 + \frac{2}{3} \right) \\
&= \frac{28}{3}
\end{align}
$$

微積分の応用

最小値・最大値問題と微分

微分の応用でよく出てくるのが「最小値・最大値問題」である。統計学や機械学習の分野でよく用いられる「数理最適化」に関するトピックの多くが「最小値・最大値問題」に関連していることから、「最適化」の理解にあたっては微分の理解が必須となる。

以下$f(x)=-x^2+2x$の最大値問題の解法について「①平方完成に基づく方法」と「②微分に基づく方法」についてそれぞれ確認を行う。まず①の平方完成については下記のように式変形を行うことができる。
$$
\large
\begin{align}
f(x) &= -x^2 + 2x \\
&= -(x^2-2x) \\
&= -(x^2-1)^2 + 1
\end{align}
$$

上記より関数$f(x)=-x^2+2x$は$x=1$のときに最大値$1$を取ることが確認できる。平方完成については下記でも詳しく取り扱った。

②の微分に基づく方法では、「導関数$f'(x)$が関数$f(x)$の傾きに対応する」ことに基づいて増減表を作成し、最大値における$x$を導出する。まず関数$f(x)$の微分は下記のように計算できる。
$$
\large
\begin{align}
f'(x) &= -2x + 2 \\
&= -2(x-1)
\end{align}
$$

上記より、$x<1$では$f'(x)>0$、$x>1$では$f'(x)<0$、$x=1$では$f'(x)=0$であることが確認できる。よって、下記のように関数$f(x)$の増減表を作成することができる。
$$
\large
\begin{array}{|c|*3{c|}}\hline x & \cdots & 1 & \cdots \\
\hline f'(x) & + & 0 & – \\
\hline f(x) & \nearrow & \displaystyle \max & \searrow \\
\hline
\end{array}
$$

増減表より関数$f(x)=-x^2+2x$は$x=1$のときに最大値$1$を取ることが確認できる。

当項で確認したように、微分を元に増減表を作成することで最大値・最小値問題の解を得ることができる。①の平方完成の方法では$2$次関数以外では適用できない場合が多いが、微分に基づく手法は多くの関数に対し汎用的に用いることができるなど大変有用である。

確率密度関数と積分

二重中心化(double centering)の概要と$n$次正方行列における導出

「統計学実践ワークブック」の$26$章で取り扱われる「多次元尺度法(MDS; Multi-Dimensional scaling)」の導出に関連して二重中心化(double centering)が唐突に出てくるので、当記事では二重中心化の概要と$n$次正方行列における導出に関して取りまとめました。

・参考
多次元尺度構成法
https://www.hello-statisticians.com/explain-terms-cat/mds1.html

二重中心化の大枠

二重中心化の概要

$n \times n$単位行列を$I_{n}$、全ての要素が$1$の$n \times n$行列を$J_{n}$とおく。このとき$I_{n}, J_{n}$はそれぞれ下記のように表される。
$$
\large
\begin{align}
I_{n} &= \left(\begin{array}{ccc} 1 & \cdots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \cdots & 1 \end{array} \right) \\
J_{n} &= \left(\begin{array}{ccc} 1 & \cdots & 1 \\ \vdots & \ddots & \vdots \\ 1 & \cdots & 1 \end{array} \right)
\end{align}
$$

このとき、$n \times n$行列$A$の左と右からそれぞれ$\displaystyle \left( I_{n}-\frac{1}{n}J_{n} \right)$をかけた$\displaystyle \left( I_{n}-\frac{1}{n}J_{n} \right)A\left( I_{n}-\frac{1}{n}J_{n} \right)$の各行、各列の平均が$0$になる。このように$\displaystyle \left( I_{n}-\frac{1}{n}J_{n} \right)A\left( I_{n}-\frac{1}{n}J_{n} \right)$を計算することを二重中心化(double centering)という。

$2 \times 2$正方行列における二重中心化

前項の内容はやや抽象的であるので、当項では$2 \times 2$正方行列を元に二重中心化が成立することを具体的に確認を行う。$A,I_{2},J_{2}$をそれぞれ下記のように定める。
$$
\large
\begin{align}
A &= \left(\begin{array}{cc} a & b \\ c & d \end{array} \right) \\
I_{n} &= \left(\begin{array}{cc} 1 & 0 \\ 0 & 1 \end{array} \right) \\
J_{n} &= \left(\begin{array}{cc} 1 & 1 \\ 1 & 1 \end{array} \right)
\end{align}
$$

このとき$\displaystyle \left( I_{n}-\frac{1}{n}J_{n} \right)A\left( I_{n}-\frac{1}{n}J_{n} \right)$は下記のように計算できる。
$$
\large
\begin{align}
& \left( I_{n}-\frac{1}{n}J_{n} \right)A\left( I_{n}-\frac{1}{n}J_{n} \right) \\
&= \frac{1}{2^2} \left(\begin{array}{cc} 1 & -1 \\ -1 & 1 \end{array} \right) \left(\begin{array}{cc} a & b \\ c & d \end{array} \right) \left(\begin{array}{cc} 1 & -1 \\ -1 & 1 \end{array} \right) \\
&= \frac{1}{2^2} \left(\begin{array}{cc} a-c & b-d \\ -a+c & -b+d \end{array} \right) \left(\begin{array}{cc} 1 & -1 \\ -1 & 1 \end{array} \right) \\
&= \frac{1}{2^2} \left(\begin{array}{cc} a-c-b+d & -a+c+b-d \\ -a+c+b-d & a-c-b+d \end{array} \right) \\
&= \frac{1}{2^2} \left(\begin{array}{cc} a-c-b+d & -(a-c-b+d) \\ -(a-c-b+d) & a-c-b+d \end{array} \right)
\end{align}
$$

上記より、それぞれの行と列の平均を取ると$0$になり、二重中心化が行われたことが確認できる。

$n \times n$正方行列における二重中心化

$\displaystyle \left( I_{n}-\frac{1}{n}J_{n} \right)A\left( I_{n}-\frac{1}{n}J_{n} \right)$の$(i,j)$成分の導出

当項では$n \times n$正方行列を元に二重中心化が成立することの確認を行う。$A,I_{n},J_{n}$をそれぞれ下記のように定める。
$$
\large
\begin{align}
A &= \left(\begin{array}{ccccc} a_{11} & a_{12} & \cdots & a_{1,n-1} & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2,n-1} & a_{2n} \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ a_{n-1,1} & a_{n-1,2} & \cdots & a_{n-1,n-1} & a_{n-1,n} \\ a_{n1} & a_{n2} & \cdots & a_{n,n-1} & a_{nn} \end{array} \right) \\
I_{n} &= \left(\begin{array}{ccccc} 1 & 0 & \cdots & 0 & 0 \\ 0 & 1 & \cdots & 0 & 0 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ 0 & 0 & \cdots & 1 & 0 \\ 0 & 0 & \cdots & 0 & 1 \end{array} \right) \\
J_{n} &= \left(\begin{array}{ccccc} 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & \cdots & 1 & 1 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & \cdots & 1 & 1 \end{array} \right)
\end{align}
$$

このとき、行列$\displaystyle \left( I_{n}-\frac{1}{n}J_{n} \right)$は下記のように表せる。
$$
\large
\begin{align}
I_{n} – \frac{1}{n}J_{n} &= \left(\begin{array}{ccccc} 1 & 0 & \cdots & 0 & 0 \\ 0 & 1 & \cdots & 0 & 0 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ 0 & 0 & \cdots & 1 & 0 \\ 0 & 0 & \cdots & 0 & 1 \end{array} \right) – \frac{1}{n}\left(\begin{array}{ccccc} 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & \cdots & 1 & 1 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & \cdots & 1 & 1 \end{array} \right) \\
&= \frac{1}{n} \left(\begin{array}{ccccc} n-1 & -1 & \cdots & -1 & -1 \\ -1 & n-1 & \cdots & -1 & -1 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ -1 & -1 & \cdots & n-1 & -1 \\ -1 & -1 & \cdots & -1 & n-1 \end{array} \right)
\end{align}
$$

上記を元に$\displaystyle \left( I_{n}-\frac{1}{n}J_{n} \right)A\left( I_{n}-\frac{1}{n}J_{n} \right)$の$(i,j)$成分を$\displaystyle \left[ \left( I_{n}-\frac{1}{n}J_{n} \right)A\left( I_{n}-\frac{1}{n}J_{n} \right) \right]_{ij}$とおくと、$\displaystyle \left[ \left( I_{n}-\frac{1}{n}J_{n} \right)A\left( I_{n}-\frac{1}{n}J_{n} \right) \right]_{ij}$は下記のように計算できる。
$$
\large
\begin{align}
& \left[ \left( I_{n}-\frac{1}{n}J_{n} \right)A\left( I_{n}-\frac{1}{n}J_{n} \right) \right]_{ij} \\
&= \frac{1}{n^2} \left(\begin{array}{ccccc} -1 & \cdots & n-1 & \cdots & -1 \end{array} \right) \left(\begin{array}{ccccc} a_{11} & a_{12} & \cdots & a_{1,n-1} & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2,n-1} & a_{2n} \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ a_{n-1,1} & a_{n-1,2} & \cdots & a_{n-1,n-1} & a_{n-1,n} \\ a_{n1} & a_{n2} & \cdots & a_{n,n-1} & a_{nn} \end{array} \right) \left(\begin{array}{c} -1 \\ \vdots \\ n-1 \\ \vdots \\ -1 \end{array} \right) \\
&= \frac{1}{n^2} \left(\begin{array}{ccccc} -1 & \cdots & n-1 & \cdots & -1 \end{array} \right) \left(\begin{array}{c} \displaystyle n a_{1j}-\sum_{k=1}^{n}a_{1k} \\ \vdots \\ \displaystyle n a_{ij}-\sum_{k=1}^{n}a_{ik} \\ \vdots \\ \displaystyle n a_{nj}-\sum_{k=1}^{n}a_{nk} \end{array} \right) \\
&= \frac{1}{n^2} \left[ \left( \sum_{k=1}^{n}a_{1k} – n a_{1j} \right) + \cdots + \left( \sum_{l=1}^{n}a_{nl} – n a_{nj} \right) + n \left( -\sum_{k=1}^{n}a_{ik} + n a_{ij} \right) \right] \\
&= \frac{1}{n^2} \left[ n^2 a_{ij} – n \sum_{l=1}^{n} a_{lj} – n \sum_{k=1}^{n} a_{ik} + \sum_{l=1}^{n} \sum_{k=1}^{n} a_{lk} \right] \\
&= a_{ij} – \frac{1}{n} \sum_{l=1}^{n} a_{lj} – \frac{1}{n} \sum_{k=1}^{n} a_{ik} + \frac{1}{n^2} \sum_{l=1}^{n} \sum_{k=1}^{n} a_{lk} \quad (1)
\end{align}
$$

$\displaystyle \left( I_{n}-\frac{1}{n}J_{n} \right)A\left( I_{n}-\frac{1}{n}J_{n} \right)$の$i$行の和の計算

$(1)$式に対して、$j$に関して$1$から$n$の和を考えれば良いので、下記のように計算できる。
$$
\large
\begin{align}
& \sum_{j=1}^{n} \left[ a_{ij} – \frac{1}{n} \sum_{l=1}^{n} a_{lj} – \frac{1}{n} \sum_{k=1}^{n} a_{ik} + \frac{1}{n^2} \sum_{l=1}^{n} \sum_{k=1}^{n} a_{lk} \right] \\
&= \sum_{j=1}^{n} a_{ij} – \frac{1}{n} \sum_{l=1}^{n} \sum_{j=1}^{n} a_{lj} – \sum_{k=1}^{n} a_{ik} + \frac{1}{n} \sum_{l=1}^{n} \sum_{k=1}^{n} a_{lk} \\
&= \left( \sum_{j=1}^{n} a_{ij} – \sum_{k=1}^{n} a_{ik} \right) – \frac{1}{n} \left( \sum_{l=1}^{n} \sum_{j=1}^{n} a_{lj} – \sum_{l=1}^{n} \sum_{k=1}^{n} a_{lk} \right)
\end{align}
$$

上記の式の$j$と$k$はどちらも$\displaystyle \sum$の同じ用いられ方のインデックスであることから、$\displaystyle \sum_{j=1}^{n} a_{ij} = \sum_{k=1}^{n} a_{ik}$と$\displaystyle \sum_{l=1}^{n} \sum_{j=1}^{n} a_{lj} = \sum_{l=1}^{n} \sum_{k=1}^{n} a_{lk}$がそれぞれ成立する。よって、下記が成立すると考えられる。
$$
\large
\begin{align}
& \sum_{j=1}^{n} \left[ a_{ij} – \frac{1}{n} \sum_{l=1}^{n} a_{lj} – \frac{1}{n} \sum_{k=1}^{n} a_{ik} + \frac{1}{n^2} \sum_{l=1}^{n} \sum_{k=1}^{n} a_{lk} \right] \\
&= \left( \sum_{j=1}^{n} a_{ij} – \sum_{k=1}^{n} a_{ik} \right) – \frac{1}{n} \left( \sum_{l=1}^{n} \sum_{j=1}^{n} a_{lj} – \sum_{l=1}^{n} \sum_{k=1}^{n} a_{lk} \right) \\
&= 0
\end{align}
$$

$\displaystyle \left( I_{n}-\frac{1}{n}J_{n} \right)A\left( I_{n}-\frac{1}{n}J_{n} \right)$の$j$列の和の計算

前項と同様に、$(1)$式に対して、$i$に関して$1$から$n$の和を考えれば良いので、下記のように計算できる。
$$
\large
\begin{align}
& \sum_{i=1}^{n} \left[ a_{ij} – \frac{1}{n} \sum_{l=1}^{n} a_{lj} – \frac{1}{n} \sum_{k=1}^{n} a_{ik} + \frac{1}{n^2} \sum_{l=1}^{n} \sum_{k=1}^{n} a_{lk} \right] \\
&= \left( \sum_{i=1}^{n} a_{ij} – \sum_{l=1}^{n} a_{lj} \right) – \frac{1}{n} \left( \sum_{i=1}^{n}\sum_{k=1}^{n} a_{ik} – \sum_{l=1}^{n} \sum_{k=1}^{n} a_{lk} \right) \\
&= 0
\end{align}
$$

正規分布からの標本に基づく母平均の二乗$\mu^2$の推定におけるバイアスとジャックナイフ推定量

「統計学実践ワークブック」の$8$章「統計的推定の基礎」のバイアスやジャックナイフ推定量に関する直感的な理解が難しいように思われたので、当記事では具体的に正規分布から標本を発生させることでいくつかの値の確認を行いました。ワークブック問$8.3$を主に参考に作成を行いました。

概要の確認

$\mu^2$の$2$つの推定量$T_1, T_2$の定義

ワークブック問$8.3$では$\mu^2$の推定にあたって、標本$X_1,…,X_n \sim \mathcal{N}(\mu,\sigma^2), i.i.d.$から下記で表す推定量$T_1, T_2$がそれぞれ定義される。
$$
\large
\begin{align}
T_1 &= \bar{X}^{2} \\
T_2 &= \frac{1}{n} \sum_{i=1}^{n} X_{i}^{2}
\end{align}
$$

また、推定量$T_1, T_2$の期待値$E[T_1], E[T_2]$はそれぞれ下記のように計算できる。
$$
\large
\begin{align}
E[T_1] &= E[\bar{X}^2] \\
&= E[\bar{X}]^2 + V[\bar{X}] \\
&= \mu^2 + \frac{\sigma^2}{n} \\
E[T_2] &= E \left[ \frac{1}{n} \sum_{i=1}^{n} X_{i}^{2} \right] \\
&= \frac{1}{n} E \left[ \sum_{i=1}^{n} X_{i}^{2} \right] \\
&= \frac{n}{n} E[X_{i}^{2}] \\
&= E[X_{i}]^{2} + V[X_{i}] \\
&= \mu^{2} + \sigma^{2}
\end{align}
$$

バイアスの定義と推定量$T_1, T_2$のバイアスの計算

母数を$\theta$、推定量を$\hat{\theta}$とおくとき、$\theta$のバイアス$b(\theta)$は下記のように定義される。
$$
\large
\begin{align}
b(\theta) = \hat{\theta} – \theta
\end{align}
$$

上記がわかりにくい場合は「bias = parameter – estimator」のように考えると良い。ここで前項のように定めた推定量$T_1,T_2$のバイアスを$b_{1}(\mu,\sigma^2),b_{2}(\mu,\sigma^2)$のようにおくと、それぞれ下記のように計算できる。
$$
\large
\begin{align}
b_{1}(\mu,\sigma^2) &= E[T_1] – \mu^2 \\
&= \mu^2 + \frac{\sigma^2}{n} – \mu^2 \\
&= \frac{\sigma^2}{n} \\
b_{2}(\mu,\sigma^2) &= E[T_2] – \mu^2 \\
&= \mu^2 + \sigma^2 – \mu^2 \\
&= \sigma^2
\end{align}
$$

ここでの導出は「統計学実践ワークブック」の問$8.3$の$[1]$に対応する。また、式を確認することで$T_1$のバイアスは$n$が大きいときには$0$に収束する一方で、$T_2$のバイアスは一定であることが確認できる。

ジャックナイフ推定量

詳しくは「統計学実践ワークブック」の$8$章まとめの「ジャックナイフ推定量」で取り扱ったように、ジャックナイフ推定量はバイアスの推定量を元に下記のように定められる。
$$
\large
\begin{align}
\hat{\theta}_{(\cdot)} &= \frac{1}{n} \sum_{i=1}^{n} \hat{\theta}_{(i)} \\
\hat{\mathrm{bias}} &= (n-1)(\hat{\theta}_{(\cdot)}-\hat{\theta}) \\
\hat{\theta}_{jack} &= \hat{\theta} – \hat{\mathrm{bias}}
\end{align}
$$

$\hat{\theta}_{(\cdot)}$の計算手順が少々複雑であるので注意が必要である。推定量$T_1$にあてはめる場合は、$i$番目の標本$X_i$を除いて計算を行なった標本平均を$\bar{X}_{(i)}$とおき、$\hat{\theta}_{(i)}=\bar{X}_{(i)}^2, \hat{\theta}=\bar{X}^2$を元に計算を行えばよい。

Pythonを用いた具体的な値の確認

バイアスの収束の確認

「バイアスの定義と推定量$T_1, T_2$のバイアスの計算」で取り扱った内容に関して、以下Pythonを用いて$\mathcal{N}(10,1^2)$を元に生成した乱数に関して確認を行う。

import numpy as np
from scipy import stats

np.random.seed(0)

mu, sigma, num_trial = 10., 1., 50
num_sample = np.array([5,10,20,100,500,1000,10000,100000])

for i in range(num_sample.shape[0]):
    T1_sum, T2_sum = 0., 0.
    for j in range(num_trial):
        x = stats.norm.rvs(mu,sigma,size=num_sample[i])
        T1_sum += np.mean(x)**2
        T2_sum += np.mean(x**2)
    T1, T2 = T1_sum/num_trial, T2_sum/num_trial
    print("---")
    print("Num_Sample: {:.0f}, T1-mu^2: {:.2f}".format(num_sample[i],T1-mu**2))
    print("Num_Sample: {:.0f}, T2-mu^2: {:.2f}".format(num_sample[i],T2-mu**2))

・実行結果

Num_Sample: 5, T1-mu^2: 0.87
Num_Sample: 5, T2-mu^2: 1.63
---
Num_Sample: 10, T1-mu^2: -2.34
Num_Sample: 10, T2-mu^2: -1.40
---
Num_Sample: 20, T1-mu^2: 0.61
Num_Sample: 20, T2-mu^2: 1.50
---
Num_Sample: 100, T1-mu^2: -0.29
Num_Sample: 100, T2-mu^2: 0.69
---
Num_Sample: 500, T1-mu^2: -0.02
Num_Sample: 500, T2-mu^2: 0.97
---
Num_Sample: 1000, T1-mu^2: -0.03
Num_Sample: 1000, T2-mu^2: 0.96
---
Num_Sample: 10000, T1-mu^2: 0.07
Num_Sample: 10000, T2-mu^2: 1.07
---
Num_Sample: 100000, T1-mu^2: 0.00
Num_Sample: 100000, T2-mu^2: 1.00

上記の実行結果より、概ね$500$サンプル以上を用いて計算を行なった場合、$\displaystyle b_{1}(\mu,\sigma^2)=\frac{\sigma^2}{n}$が$0$に近づき、$b_{2}(\mu,\sigma^2)=\sigma^2$が$0$に近づくことが読み取れる。

ジャックナイフ法を用いた$T_1$の補正

以下では、「ジャックナイフ推定量」で取り扱った内容を元にジャックナイフ法を用いて$T_1$の補正を行い、具体的な値の変化の確認を行う。

import numpy as np
from scipy import stats

np.random.seed(10)

mu, sigma, num_trial = 10., 1., 5
num_sample = np.array([3,5,10,15,20,50,100])

for i in range(num_sample.shape[0]):
    T1_sum, T1_jack_sum = 0., 0.
    for j in range(num_trial):
        x = stats.norm.rvs(mu,sigma,size=num_sample[i])
        x_sub = np.zeros(num_sample[i])
        for k in range(num_sample[i]):
            a = 0
            for l in range(num_sample[i]):
                if k != l:
                    a += x[l]
            x_sub[k] = (a/(x.shape[0]-1))**2
        x_sub_mean = np.mean(x_sub)
        bias = (x.shape[0]-1)*(x_sub_mean - np.mean(x)**2)
        T1_sum += np.mean(x)**2
        T1_jack_sum += np.mean(x)**2-bias
    T1, T1_jack = T1_sum/num_trial, T1_jack_sum/num_trial
    print("---")
    print("Num_Sample: {:.0f}, T1-mu^2: {:.2f}".format(num_sample[i],T1-mu**2))
    print("Num_Sample: {:.0f}, T1_jack-mu^2: {:.2f}".format(num_sample[i],T1_jack-mu**2))

・実行結果

Num_Sample: 3, T1-mu^2: 3.43
Num_Sample: 3, T1_jack-mu^2: 3.14
---
Num_Sample: 5, T1-mu^2: 3.58
Num_Sample: 5, T1_jack-mu^2: 3.32
---
Num_Sample: 10, T1-mu^2: 0.23
Num_Sample: 10, T1_jack-mu^2: 0.13
---
Num_Sample: 15, T1-mu^2: 1.74
Num_Sample: 15, T1_jack-mu^2: 1.66
---
Num_Sample: 20, T1-mu^2: -0.97
Num_Sample: 20, T1_jack-mu^2: -1.01
---
Num_Sample: 50, T1-mu^2: 0.79
Num_Sample: 50, T1_jack-mu^2: 0.77
---
Num_Sample: 100, T1-mu^2: -1.16
Num_Sample: 100, T1_jack-mu^2: -1.16

実行結果より、ジャックナイフ推定量を用いることで推定された値が誤差が小さくなるように補正がかけられていることが確認できる。また、ここでバイアスは概ね正の値を取ることも合わせて確認できた。

正規分布間のKLダイバージェンス(KL-divergence)の値をグラフ化して把握する

確率分布の類似度を計算するにあたってKLダイバージェンスが用いられることが多いですが、式の解釈に関してわかりやすくまとめられていることが少ないように思われます。そこで当記事ではKLダイバージェンスの概略が把握できるように正規分布間のKLダイバージェンスの値を具体的にグラフ化を行いました。
「パターン認識と機械学習」の$1.6$節の「Information Theory」などを主に参考に作成を行いました。

・用語/公式解説
https://www.hello-statisticians.com/explain-terms

前提の確認

KLダイバージェンスの式定義

$$
\large
\begin{align}
KL(p||q) &= – \int p(x) \ln{q(x)} dx – \left[ – \int p(x) \ln{p(x)} dx \right] \\
&= – \int p(x) \ln{\frac{q(x)}{p(x)}} dx \quad (1.113)
\end{align}
$$

確率分布$p(x)$に関するKLダイバージェンスは「パターン認識と機械学習」の$(1.113)$式のように定義されるので、上記に表した。$p(x)$の$x$は多次元ベクトルを考える場合もあるが、当記事では以下$1$次元の$x$のみを取り扱う。

正規分布間のKLダイバージェンス

$2$つの正規分布$p(x)=\mathcal{N}(x|\mu,\sigma^{2}), q(x)=\mathcal{N}(x|m,s^{2})$間のKLダイバージェンス$KL(p||q)$は「パターン認識と機械学習」の演習$1.30$より、下記のように表すことができる。
$$
\large
\begin{align}
KL(p||q) &= – \int p(x) \ln{\frac{q(x)}{p(x)}} dx \quad (1.113) \\
&= \ln{\frac{s}{\sigma}} + \frac{1}{2} \left[ \frac{1}{s^2}(\mu^2+\sigma^2 – 2 \mu m + m^2) – 1 \right] \\
&= \frac{1}{2} \left[ \ln{\frac{s^2}{\sigma^2}} + \frac{\sigma^2-s^2}{s^2} + \frac{(\mu-m)^2}{s^2} \right] \quad (1)
\end{align}
$$

上記の結果を元に、$\mu,\sigma^{2},m,s^2$の値を変化させたときにKLダイバージェンスの$KL(p||q)$がどのように変化するかに関して、以下確認を行う。

KLダイバージェンスの値の変化とグラフ

$2$つの正規分布が一致する場合

$p(x)=q(x)$が成立する場合、$\mu=m,\sigma^{2}=s^2$であり、$(1)$式に代入すると下記のように変形できる。
$$
\large
\begin{align}
KL(p||q) &= \frac{1}{2} \left[ \ln{\frac{s^2}{\sigma^2}} + \frac{\sigma^2-s^2}{s^2} + \frac{(\mu-m)^2}{s^2} \right] \quad (1) \\
&= \frac{1}{2} \left[ \ln{\frac{s^2}{s^2}} + \frac{s^2-s^2}{s^2} + \frac{(m-m)^2}{s^2} \right] \\
&= 0
\end{align}
$$

上記は$p(x)=q(x)$のときに$KL(p||q)=0$であることに対応する。

分散が同一で平均を動かす場合

当項では$\sigma^{2}=s^2$が成立するときに$KL(p||q)$が$\mu=m$の値に基づいてどのように変化するかに関して確認を行う。
$$
\large
\begin{align}
KL(p||q) &= \frac{1}{2} \left[ \ln{\frac{s^2}{\sigma^2}} + \frac{\sigma^2-s^2}{s^2} + \frac{(\mu-m)^2}{s^2} \right] \quad (1) \\
&= \frac{1}{2} \left[ \ln{\frac{s^2}{s^2}} + \frac{s^2-s^2}{s^2} + \frac{(\mu-m)^2}{s^2} \right] \\
&= \frac{1}{2} \frac{(\mu-m)^2}{s^2}
\end{align}
$$

上記のようにKLダイバージェンスは$\mu-m$の$2$次関数で表される。ここで$\mu-m$を考えるにあたっては、二つのそれぞれの値ではなく「差」が重要であるので、グラフ化にあたっては$\Delta = \mu-m$のようにおき、$\Delta$を変数と見る。

$\Delta$を変数と見たときのKLダイバージェンスのグラフ化は下記を実行することで行える。なお、$2$つの正規分布の分散は$1^2,2^2,3^2$の$3$つを同時に表した。

import numpy as np
import matplotlib.pyplot as plt

delta = np.arange(-3.,3.01,0.01)
sigma2 = np.array([1.**2, 2.**2, 3.**2])
KL_color = ["green","blue","red"]

for i in range(sigma2.shape[0]):
    KL = delta**2/sigma2[i]
    plt.plot(delta,KL,color=KL_color[i],label="sigma^2: {:.0f}".format(sigma2[i]))

plt.legend()
plt.show()

・実行結果

$\sigma^{2}=s^2$が成立するときのKLダイバージェンス$KL(p||q)$の値、$x$方向は$\Delta = \mu-m$の値、色は$\sigma^{2}=1$が緑、$\sigma^{2}=2^2$が青、$\sigma^{2}=3^2$が赤にそれぞれ対応

上の図より、「分散が同じ$2$つの正規分布のKLダイバージェンスは平均の差の$2$次関数で表され、分散の逆数が$y=ax^2$の$a$に対応する」ことが読み取れる。

平均が同一で分散を動かす場合

当項では$\mu=m$が成立するときに$KL(p||q)$が$\mu=m$の値に基づいてどのように変化するかに関して確認を行う。ここで$\sigma^2 = ks^2$とおくと、$(1)$式は下記のように変形できる。
$$
\large
\begin{align}
KL(p||q) &= \frac{1}{2} \left[ \ln{\frac{s^2}{\sigma^2}} + \frac{\sigma^2-s^2}{s^2} + \frac{(\mu-m)^2}{s^2} \right] \quad (1) \\
&= \frac{1}{2} \left[ \ln{\frac{s^2}{(ks)^2}} + \frac{(ks)^2-s^2}{s^2} + \frac{(m-m)^2}{s^2} \right] \\
&= \frac{1}{2} ( -\ln{k} + k – 1 )
\end{align}
$$

上記より、変数$k$に関するKLダイバージェンスのグラフ化は下記を実行することで行える。

import numpy as np
import matplotlib.pyplot as plt

k = np.arange(0.01,5.,0.01)
KL = (-np.log(k)+k-1)/2.

plt.plot(k,KL)
plt.show()

・実行結果

$\mu=m$が成立するときのKLダイバージェンス$KL(p||q)$の値、$x$方向は$\sigma^2 = ks^2$が成立する際の$k$の値

実行結果より$k=1$、すなわち$\sigma^2=s^2$が成立するときに$KL(p||q)=0$であることも合わせて確認できる。

必ず抑えておくべき展開・因数分解(factorization)の基本公式

数式変形にあたって、統計学に限らずあらゆる分野で出てくるのが展開と因数分解(factorization)です。当記事では、因数分解の必ず抑えておくべき基本公式と抑えておくと良いその他の公式に関して、それぞれの導出なども合わせて取りまとめを行いました。

・基礎数学まとめ
https://www.hello-statisticians.com/math_basic

必ず抑えておくべき基本公式

$A(B+C)=AB+BC$

展開や因数分解を考える前に抑えておくと良いのが$A(B+C)=AB+BC$の式です。この式の解釈は「$B+C$に$A$をかけた場合と$AB$と$AC$の和が一致する」です。このような計算は「旅行の予算組み時に$1$人あたりを先に計算してから人数をかける」のように、日常的にもよく用います。

$(A+B)^2=A^2+2AB+B^2$

$(A+B)^2=A^2+2AB+B^2$はよく出てくる公式です。詳しくは下記のように導出することができます。
$$
\large
\begin{align}
(A+B)^2 &= (A+B)(A+B) \\
&= A(A+B)+B(A+B) \\
&= A^2+AB+BA+B^2 \\
&= A^2+AB+AB+B^2 \\
&= A^2+2AB+B^2
\end{align}
$$

$(A-B)^2=A^2-2AB+B^2$

$(A-B)^2=A^2-2AB+B^2$も$(A+B)^2=A^2+2AB+B^2$と同様によく出てくる公式です。詳しくは下記のように導出することができます。
$$
\large
\begin{align}
(A-B)^2 &= (A-B)(A-B) \\
&= A(A-B)-B(A-B) \\
&= A^2-AB-BA+B^2 \\
&= A^2-AB-AB+B^2 \\
&= A^2-2AB+B^2
\end{align}
$$

$(A+B)^3=A^3+3A^2B+3AB^2+B^3$

$(A+B)^3=A^3+3A^2B+3AB^2+B^3$は$(A+B)^2=A^2+2AB+B^2$を元に下記のように導出することができます。
$$
\large
\begin{align}
(A+B)^3 &= (A+B)(A+B)^2 \\
&= (A+B)(A^2+2AB+B^2) \\
&= A(A^2+2AB+B^2)+B(A^2+2AB+B^2) \\
&= A^3+2A^2B+AB^2 + A^2B+2AB^2+B^3 \\
&= A^3 + (2+1)A^2B + (1+2)AB^2 + B^3 \\
&= A^3+3A^2B+3AB^2+B^3
\end{align}
$$

$(A-B)^3=A^3-3A^2B+3AB^2-B^3$

$(A+B)^3=A^3+3A^2B+3AB^2+B^3$の$B$を$-B$で置き換えることで下記のように導出を行うことができます。
$$
\large
\begin{align}
(A+(-B))^3 &= A^3+3A^2(-B)+3A(-B)^2+(-B)^3 \\
&= A^3-3A^2B+3AB^2-B^3
\end{align}
$$

抑えておくと良いその他公式

$(A+B+C)^2=A^2+B^2+C^2+2AB+2BC+2CA$

$(A+B+C)^2=A^2+B^2+C^2+2AB+2BC+2CA$は下記のように導出することができます。
$$
\large
\begin{align}
(A+B+C)^2 &= (A+B+C)(A+B+C) \\
&= A(A+B+C) + B(A+B+C) + C(A+B+C) \\
&= (A^2+AB+AC) + (BA^2+B^2+BC) + (CA+CB+C^2) \\
&= (A^2+AB+CA) + (AB+B^2+BC) + (CA+BC+C^2) \\
&= A^2 + B^2 + C^2 + (1+1)AB + (1+1)BC + (1+1)CA \\
&= A^2+B^2+C^2+2AB+2BC+2CA
\end{align}
$$

$(A-B)(A^2+AB+B^2)=A^3-B^3$

$(A-B)(A^2+AB+B^2)=A^3-B^3$は下記のように導出することができます。

$$
\large
\begin{align}
(A-B)(A^2+AB+B^2) &= (A^3+\cancel{A^2B}+\cancel{AB^2}) – (\cancel{A^2B}+\cancel{AB^2}+B^3) \\
&= A^3-B^3
\end{align}
$$

$(A+B)(A^2-AB+B^2)=A^3+B^3$

$(A+B)(A^2-AB+B^2)=A^3+B^3$は下記のように導出することができます。

$$
\large
\begin{align}
(A+B)(A^2-AB+B^2) &= (A^3-\cancel{A^2B}+\cancel{AB^2}) + (\cancel{A^2B}-\cancel{AB^2}+B^3) \\
&= A^3+B^3
\end{align}
$$

$\displaystyle (A+B)^n = \sum_{k=0}^{n} {}_{n} C_{k} A^{n-k}B^{k}$

$\displaystyle (A+B)^n = \sum_{k=0}^{n} {}_{n} C_{k} A^{n-k}B^{k}$が成立することを理解するにあたっては、$(A+B)^n$の$A^{k}B^{n-k}$の係数が${}_{n} C_{k}$で表せることを確認すると良いです。

$A^{k}B^{n-k}$は$(A+B)^n=(A+B)(A+B)(A+B) \cdots (A+B)(A+B)$から$A$の位置を$k$個選び、残りの$(A+B)$から$B$を選ぶことで計算されます。この選び方は$n$個の位置から$k$個選ぶことに対応するので$(A+B)^n$の$A^{k}B^{n-k}$の係数が${}_{n} C_{k}$のように表せます。

上記を$k=0$から$k=n$まで考え、和を取ることで$\displaystyle (A+B)^n = \sum_{k=0}^{n} {}_{n} C_{k} A^{n-k}B^{k}$が導出できます。

【作業環境・機材紹介】データ分析/ソフト開発におすすめの機材紹介 〜メインマシン周辺編〜

本記事では、「あつまれ統計の森」管理者の@t41の作業環境や機材を紹介します。

@t41は普段、データ分析の受託案件やソフトウェア開発をしています。あくまで個人的な感想ではありますが、ソフトウェア開発やデータ分析をしていくうえで色々試した結果、今のところ落ち着いているおすすめの開発環境を紹介します。今回は特に、メインマシン周辺の機材を紹介します。

機材周りの充実に少しでも参考になれば。

データ分析/ソフト開発に必要な機材

データ分析/ソフトウェア開発をする上では、計算機と入出力デバイス(モニタ、マウス、キーボード)があれば最低限作業はできます。

安価に機材をそろえようとすれば揃えることはできますが 、一日中触れているため、扱いやすい機材、手に馴染む機材を使うことで無駄なストレスが減ると思います(個人の感想)。

今回「メインマシン周辺編」としては以下の分類についておすすめ機材を紹介していきます。

  • メインマシン
  • ポインティングデバイス(マウスなど)
  • キーボード
  • モニタ

おすすめ機材紹介

メインマシン

現在の私のメインマシンは、2020年リリースの Apple Mac mini M1 Chipです。

これの前は、MacBook Proをメインマシンにしていましたが、排熱関係で不満があり、現在はサブマシンになっています。Touch Barがついているモデルだったのですが、Escキーが物理的に廃止されているというとんでもない仕様のキーボードだったのもサブマシンに降格した理由の一つです。

他にもLinuxマシンもありますが、それについては別に紹介します。

メインマシンのスペックについて

メインマシンについては、作業のスタイルによって要求されるスペックが変わってくると考えています。

現在では、クラウド環境(Google Colabなど)に繋いで作業することも多いので、スペックもOSもそれほどこだわらないでも良いことが多いと思います。

ただ、新技術の調査や実験をするのに、ローカルで作業ができると小回りが効いてよいです。好きに環境をいじれるというのも良いです。なので、私はローカルでの作業も考慮して、手が届く範囲で最高のものを選んでおくのがおすすめです。

据え置きかラップトップか

据え置きかラップトップかという点においても各自のスタイルによって決まります。

外で作業することがあるならラップトップである必要がありますが、個人的にはカフェでMacを開くようなことはほぼないので、Mac miniを使っています。Mac miniであれば持ち運ぶこともできるので。

個人的には、たまの外出用にMacBook Proをサブマシンとして用意しています。

OSについて

正直なんでも良いと思います。

ただ個人的にはMacOSが便利なのではないかなと思っています。Windowsマシンは10年くらい触っていないので最近の使い勝手は知らないのですが。。。

ポインティングデバイス

私はポインティングデバイスとして、トラックボールとペンタブレットを愛用しています。

トラックボール

私は親指でボールを動かす派です。

トラックボールは、20年以上使っていますが、以下の点が利点と考えています

  • マウスと違って手首が疲れない
    • 動かすのは親指だけ
  • マルチモニタ間のポインタの移動など、長距離の移動が楽
    • 勢いをつけてボールを転がすと慣性で動いてくれるので、長距離を一気に移動でき、速い
  • スペースの制限を受けない

欠点としては以下のものがあると感じています

  • 細かい作業で親指の付け根が凝る

トラックボールを選ぶなら、現時点では Logitech MX ERGO一択だと考えています。
これはなによりも、触感が良く、手に馴染みます。トラックボールは本体を動かさないため、手が滑ったり本体が滑ると思うようにポインタが動きません。この製品は表面の加工が素晴らしくピタッと吸い付いてくる感じが良いです。

以前は同じlogitech のM570 をずっと使っていました。MX ERGOが登場するまではこちら一択だったのですが、表面の吸い付き感でMX ERGOに移行しました。(下記リンクはM570後継のM575)

他の製品については、いくつか試したところ、ボールの感度に不満があったり、ボタンが故障しやすかったりとおすすめできるものは知らないです。

ペンタブレット

リモートワークが進んだ現在では、コミュニケーションツールとしてペンタブレットがあると非常に便利です。

議論や報告等の場で、あらかじめ用意したスライドで話が終わることは少ないと考えています。オフラインの場では、ホワイトボードを活用することが多いわけですが、リモート環境ではマウス等で何かを描こうとするとストレスが溜まりますね。そこで、ペンタブレットがあると解消されます。

液晶タブレットであれば、画面を確認しながら直接書き込めるので、ホワイトボードに近い感覚で使えます。私は以下の製品を使っています。

キーボード

ソフトウェア系のエンジニアであれば、ほぼ一日中触っているのがキーボードです。文字が打てればなんでも良いという考え方もありますが、一日中触っているデバイスなので、気に入ったものを使うのが良いと考えます。指の疲れにくさが違ってくると感じています。

色々好みがあると思いますが、私はFILCOのMajestouchを愛用しています。キースイッチは赤軸です。
メカニカルキーボードは打鍵感があってスイッチを押している感覚を受けられるのが気に入っています。

キー配置はUSでも日本語でもどっちでもよくて、これは完全に好みです。日本語配列だとスペースキー周りにキーが増えるのが煩わしく感じるところですが。

Majestouchでは、Blootooth接続のモデルもあります。こちらも使っていたのですが、無線の接続状況が安定しないことが稀にあり、今はあまり使っていません(サブマシンで使っていたりします)。

値段が上がってしまっているようなので、あまりおすすめはしないです。

モニタ

私はマルチモニタ派です。大きなモニタ一つよりも複数のモニタがある方が好みです。

ウィンドウの最大化をした場合に全ての画面が埋まるのが防げるとか、モニタごとに役割を決めておくといった理由から、複数のモニタを使うことを好みます。

モニタの機種自体は、解像度とコネクタがあえばそれほどこだわりなく使います。今使っているのは既に製造されていないのですが、以下のようなもの(28インチの4Kモニタ)を2枚使っています。

モニタ周辺機器:ディスプレイアダプタ

Macminiでは、通常モニタを2枚までしか繋ぐことができません(最近のOS側で改善されたのかは調べていません)。

しかし、ここまで書いてきた通り、モニタ2枚、液晶ペンタブレットの計3出力が必要になります。

そこで、以下のアダプタを使います。専用のアプリをインストールすることで、モニタ3出力が可能になります。

モニタ周辺機器:モニタアーム

モニタアームは一度使えば、その便利さにハマると感じています。モニタの位置調整がしやすいというのは想像できると思うのですが、最も良いのは、デスクを広く使えるということです。

1枚のときは以下のものを使っていました。4軸あるとモニタ位置の自由度が増えます。

まとめ

ここまで、当Webサイト管理人の@t41のメインマシン周辺の機材を紹介してきました。

メインマシン自体は、手が届く範囲で最新で最高の物を選ぶのがおすすめです。その他の機材については、完全に好みの範囲なので、色々試してみて気に入ったものを利用するのが良いと思います。

特に、ポインティングデバイスとキーボードは計算機と直接触れる部分なので、模索してみるのが良いと思います。

参考

行列の基本事項まとめ 〜$2$次元正方行列の積、行列式、逆行列、固有値・固有ベクトル、対角化〜

当記事では$2$次元の行列に対して、「行列の積」、「行列式」、「逆行列」、「固有値・固有ベクトル」、「対角化」などの基本トピックを取り扱います。$2$次元の行列に関してはある程度シンプルな公式があるので、一通り抑えておくと良いと思います。

・基礎数学まとめ
https://www.hello-statisticians.com/math_basic

行列の定義と演算

$2 \times 2$行列の定義

$$
\large
\begin{align}
A = \left(\begin{array}{cc} a & b \\ c & d \end{array} \right)
\end{align}
$$

$2 \times 2$行列は上記の$A$のように縦と横に$2$つずつの要素が並ぶように定義される。ベクトルを複数並べたもののように解釈することもできる。

ここで行と列に関して区別されることは抑えておく必要があり、それぞれ$a,b$を$1$行目、$c,d$を$2$行目と数えるのに対し、$a,c$を$1$列目、$b,d$を$2$列目と数える。このことは$a,b,c,d$のそれぞれの要素単位でも考えることができ、例えば$b$は$1$行$2$列の要素のように考えられる。

行列の和・差・定数倍

行列の和・差・定数倍は通常の四則演算と変わらないので、簡単に考えればよい。以下に簡単な具体例を紹介する。
$$
\large
\begin{align}
A = \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right), \quad B = \left(\begin{array}{cc} b_{11} & b_{12} \\ b_{21} & b_{22} \end{array} \right)
\end{align}
$$

上記のように行列$A$と行列$B$を定める。上記では$i$行$j$列の要素を$a_{ij}$のように表したが、この表記を用いることが多いので「必ず」抑えておくとよい。また、$i$行$j$列の要素を$(i,j)$成分と表現する場合もある。$A$の要素を$a_{ij}$、$B$の要素を$b_{ij}$と表すことにより、複数の行列を扱う際の文字の区別が行いやすくなるのでなるべく用いるようにすると良い。応用にあたっては$i$と$j$がそれぞれ何に対応するかは常に注意しておくとよい。

行列$A,B$の和$A+B$と差$A-B$、定数倍$kA$はそれぞれ下記のように計算される。
$$
\large
\begin{align}
A + B &= \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right) + \left(\begin{array}{cc} b_{11} & b_{12} \\ b_{21} & b_{22} \end{array} \right) \\
&= \left(\begin{array}{cc} a_{11}+b_{11} & a_{12}+b_{12} \\ a_{21}+b_{21} & a_{22}+b_{22} \end{array} \right) \\
A – B &= \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right) – \left(\begin{array}{cc} b_{11} & b_{12} \\ b_{21} & b_{22} \end{array} \right) \\
&= \left(\begin{array}{cc} a_{11}-b_{11} & a_{12}-b_{12} \\ a_{21}-b_{21} & a_{22}-b_{22} \end{array} \right) \\
kA &= k \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right) \\
&= \left(\begin{array}{cc} k a_{11} & k a_{12} \\ k a_{21} & k a_{22} \end{array} \right)
\end{align}
$$

行列の積

行列の積は通常の四則演算と異なる演算を行うので注意しておく必要がある。前項と同様に下記のように行列$A, B$を定める。
$$
\large
\begin{align}
A = \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right), \quad B = \left(\begin{array}{cc} b_{11} & b_{12} \\ b_{21} & b_{22} \end{array} \right)
\end{align}
$$

このとき行列の積$AB$は下記のように定められる。
$$
\large
\begin{align}
AB &= \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right)\left(\begin{array}{cc} b_{11} & b_{12} \\ b_{21} & b_{22} \end{array} \right) \\
&= \left(\begin{array}{cc} a_{11}b_{11}+a_{12}b_{21} & a_{11}b_{12}+a_{12}b_{22} \\ a_{21}b_{11}+a_{22}b_{21} & a_{21}b_{12}+a_{22}b_{22} \end{array} \right)
\end{align}
$$

行列式と逆行列の公式

$2 \times 2$行列の行列式

$$
\large
\begin{align}
A = \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right)
\end{align}
$$

上記のように定めた行列$A$の行列式$\det{A}$は下記のように定義される。
$$
\large
\begin{align}
\det{A} &= a_{11}a_{22} – a_{12}a_{21}
\end{align}
$$

$2 \times 2$行列の逆行列の公式

$$
\large
\begin{align}
I_{2} = \left(\begin{array}{cc} 1 & 0 \\ 0 & 1 \end{array} \right)
\end{align}
$$

上記のように単位行列$I_{2}$を定めるとき、$AA^{-1}=I_{2}$となる$A^{-1}$を$A$の逆行列と定める。ここで$AA^{-1}=I_{2}$が成立すれば同時に$A^{-1}A=I_{2}$も成立する。このことは下記のように示せる。
$$
\large
\begin{align}
AA^{-1} &= I_{2} \\
A^{-1}AA^{-1} &= A^{-1} \\
(A^{-1}A-I_{2})A^{-1} &= O \\
A^{-1}A &= I_{2} \\
A^{-1} & \neq O
\end{align}
$$

以下、逆行列の公式に関して確認を行う。
$$
\large
\begin{align}
A = \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right)
\end{align}
$$

ここで上記のように定めた行列$A$の逆行列$A^{-1}$は$\det{A} \neq 0$のとき、下記のように表される。
$$
\large
\begin{align}
A^{-1} &= \frac{1}{\det{A}} \left(\begin{array}{cc} a_{22} & -a_{12} \\ -a_{21} & a_{11} \end{array} \right) \\
&= \frac{1}{a_{11}a_{22} – a_{12}a_{21}} \left(\begin{array}{cc} a_{22} & -a_{12} \\ -a_{21} & a_{11} \end{array} \right) \quad (1)
\end{align}
$$

$(1)$式で表した$A^{-1}$が$A$の逆行列であることは下記のように$AA^{-1}$を計算することで示すことができる。
$$
\large
\begin{align}
AA^{-1} &= \frac{1}{a_{11}a_{22} – a_{12}a_{21}} \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right) \left(\begin{array}{cc} a_{22} & -a_{12} \\ -a_{21} & a_{11} \end{array} \right) \\
&= \frac{1}{a_{11}a_{22} – a_{12}a_{21}} \left(\begin{array}{cc} a_{11}a_{22}-a_{12}a_{21} & -a_{11}a_{12}+a_{12}a_{11} \\ a_{21}a_{22}-a_{22}a_{21} & -a_{21}a_{12}+a_{22}a_{11} \end{array} \right) \\
&= \frac{1}{a_{11}a_{22} – a_{12}a_{21}} \left(\begin{array}{cc} a_{11}a_{22} – a_{12}a_{21} & 0 \\ 0 & a_{11}a_{22} – a_{12}a_{21} \end{array} \right) = \left(\begin{array}{cc} 1 & 0 \\ 0 & 1 \end{array} \right) = I_{2}
\end{align}
$$

$2 \times 2$行列の固有値・固有ベクトル

固有値・固有ベクトルの定義とそれぞれの導出

$$
\large
\begin{align}
A = \left(\begin{array}{cc} a_{11} & a_{12} \\ a_{21} & a_{22} \end{array} \right)
\end{align}
$$

上記のように定めた行列$A$の固有値を$\lambda$、固有ベクトルを$\displaystyle \mathbf{u} = \left(\begin{array}{cc} u_{1} \\ u_{2} \end{array} \right)$とおくと、固有値と固有ベクトルの定義により下記が成立する。
$$
\large
\begin{align}
A \mathbf{u} = \lambda \mathbf{u} \quad (2)
\end{align}
$$

このとき、固有値は固有方程式$\det(A – \lambda I_{2})=0$を解くことで得られる。また、得られた固有値をそれぞれ$(2)$式に代入することで、固有値に対応する固有ベクトルが得られる。

手順自体はシンプルである一方で計算が複雑であるので、以下具体的な行列に関して確認を行う。
$$
\large
\begin{align}
A = \left(\begin{array}{cc} 2 & 1 \\ 1 & 2 \end{array} \right)
\end{align}
$$

上記の行列$A$に対して固有方程式$\det(A – \lambda I_{2})=0$を解くことを考える。
$$
\large
\begin{align}
\det(A – \lambda I_{2}) &= 0 \\
(2-\lambda)^2 – 1^2 &= 0 \\
\lambda^2 – 4 \lambda + 4 – 1 &= 0 \\
\lambda^2 – 4 \lambda + 3 &= 0 \\
(\lambda-1)(\lambda-3) &= 0
\end{align}
$$

上記の計算により$\lambda=1,3$が得られる。途中計算では展開を行なったが、$A^2-B^2=(A+B)(A-B)$の因数分解を用いることで、$(2-\lambda)^2 – 1^2 = (2-\lambda+1)(2-\lambda-1)$のように計算を行うと$1$行分の計算が省略できるのでなるべく用いると良い。

以下、得られた固有値の$\lambda=1,3$に関して固有ベクトルを計算する。
・$\lambda=1$に対応する固有ベクトル
$$
\large
\begin{align}
A \mathbf{u} &= \mathbf{u} \\
\left(\begin{array}{cc} 2 & 1 \\ 1 & 2 \end{array} \right)\left(\begin{array}{cc} u_{1} \\ u_{2} \end{array} \right) &= \left(\begin{array}{cc} u_{1} \\ u_{2} \end{array} \right) \\
\left(\begin{array}{cc} 2u_{1}+u_{2} \\ u_{1}+2u_{2} \end{array} \right) &= \left(\begin{array}{cc} u_{1} \\ u_{2} \end{array} \right) \\
\left(\begin{array}{cc} u_{1} \\ u_{1} \end{array} \right) &= \left(\begin{array}{cc} -u_{2} \\ -u_{2} \end{array} \right) \\
u_{1} &= -u_{2}
\end{align}
$$

上記より$\lambda=1$に対応する固有ベクトルは定数$k$を用いて$\displaystyle \mathbf{u} = k\left(\begin{array}{cc} 1 \\ -1 \end{array} \right)$のように表せる。

・$\lambda=3$に対応する固有ベクトル
$$
\large
\begin{align}
A \mathbf{u} &= 3 \mathbf{u} \\
\left(\begin{array}{cc} 2 & 1 \\ 1 & 2 \end{array} \right)\left(\begin{array}{cc} u_{1} \\ u_{2} \end{array} \right) &= 3\left(\begin{array}{cc} u_{1} \\ u_{2} \end{array} \right) \\
\left(\begin{array}{cc} 2u_{1}+u_{2} \\ u_{1}+2u_{2} \end{array} \right) &= \left(\begin{array}{cc} 3u_{1} \\ 3u_{2} \end{array} \right) \\
\left(\begin{array}{cc} -u_{1} \\ u_{1} \end{array} \right) &= \left(\begin{array}{cc} -u_{2} \\ u_{2} \end{array} \right) \\
u_{1} &= u_{2}
\end{align}
$$

上記より$\lambda=3$に対応する固有ベクトルは定数$k$を用いて$\displaystyle \mathbf{u} = k\left(\begin{array}{cc} 1 \\ 1 \end{array} \right)$のように表せる。

また、固有ベクトルを考えるにあたっては、大きさ$1$の固有ベクトルを考えることが多い。ここまでの議論により、$\lambda=1$に対応する大きさ$1$の固有ベクトルは$\displaystyle \mathbf{u} = \frac{1}{\sqrt{2}}\left(\begin{array}{cc} 1 \\ -1 \end{array} \right)$、$\lambda=3$に対応する大きさ$1$の固有ベクトルは$\displaystyle \mathbf{u} = \frac{1}{\sqrt{2}}\left(\begin{array}{cc} 1 \\ 1 \end{array} \right)$のようにそれぞれ考えられる。

当項で取り扱ったように固有値・固有ベクトルの計算は考え方自体はシンプルな一方で計算が複雑になる。ここでは$2 \times 2$行列の固有値・固有ベクトルについて取り扱ったが、次数が上がるにつれてさらに取り扱いが難しくなるので、固有値・固有ベクトルに関しては近似的な手法が多く考案されている。たとえば「統計の森」で主に用いるPythonで固有値・固有ベクトルを取り扱うにあたってはNumPyを用いるが、NumPyでも近似的な手法が用いられていることは抑えておくと良い。

行列の対角化

行列の対角化は前項で取り扱った固有ベクトルを元に考えることができる。それぞれの固有値・固有ベクトルの表記にあたって、$\lambda_1=3$に対応する固有ベクトルを$\mathbf{u}_{1}$、$\lambda_2=1$に対応する固有ベクトルを$\mathbf{u}_{2}$のように定める。

このとき、下記のように$U$と対角行列$\Lambda$を定義する。
$$
\large
\begin{align}
U &= \left(\begin{array}{c} \mathbf{u}_{1} & \mathbf{u}_{2} \end{array} \right) \\
&= \frac{1}{\sqrt{2}} \left(\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right) \\
\Lambda &= \left(\begin{array}{cc} \lambda_{1} & 0 \\ 0 & \lambda_{2} \end{array} \right) = \left(\begin{array}{cc} 3 & 0 \\ 0 & 1 \end{array} \right)
\end{align}
$$

ここで上記の$U$に関して$UU^{\mathrm{T}}=I_{2}$が成立するので、$U$は直交行列である。このとき、$UU^{\mathrm{T}}=I_{2}$より$U^{-1}=U^{\mathrm{T}}$が成立する。

また、$\Lambda,U$が固有値・固有ベクトルに基づいて定義されたことより、下記が成立する。
$$
\large
\begin{align}
A\left(\begin{array}{c} \mathbf{u}_{1} & \mathbf{u}_{2} \end{array} \right) &= \left(\begin{array}{c} \lambda_{1} \mathbf{u}_{1} & \lambda_{2} \mathbf{u}_{2} \end{array} \right) \\
A\left(\begin{array}{c} \mathbf{u}_{1} & \mathbf{u}_{2} \end{array} \right) &= \left(\begin{array}{c} \mathbf{u}_{1} & \mathbf{u}_{2} \end{array} \right) \left(\begin{array}{cc} \lambda_{1} & 0 \\ 0 & \lambda_{2} \end{array} \right) \\
AU &= U \Lambda \quad (3)
\end{align}
$$

上記は$A \mathbf{u}_{i} = \lambda_{i} \mathbf{u}_{i}$をまとめたと考えればよい。ここで$(3)$式の両辺に左から$U^{-1}=U^{\mathrm{T}}$をかけると下記のように変形できる。
$$
\large
\begin{align}
AU &= U \Lambda \quad (3) \\
U^{-1}AU &= U^{-1} U \Lambda \\
U^{\mathrm{T}} A U &= \Lambda
\end{align}
$$

よって、$U^{\mathrm{T}} A U$を計算すれば行列を対角化できる。以下、それぞれの値を代入することで式が正しいことの具体的な確認を行う。
$$
\large
\begin{align}
U^{\mathrm{T}} A U &= \frac{1}{2} \left(\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right) \left(\begin{array}{cc} 2 & 1 \\ 1 & 2 \end{array} \right) \left(\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right) \\
&= \frac{1}{2} \left(\begin{array}{cc} 3 & 3 \\ 1 & -1 \end{array} \right) \left(\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right) \\
&= \frac{1}{2} \left(\begin{array}{cc} 6 & 0 \\ 0 & 2 \end{array} \right) \\
&= \left(\begin{array}{cc} 3 & 0 \\ 0 & 1 \end{array} \right) \\
&= \Lambda
\end{align}
$$

このように固有ベクトルを用いて直交行列を作成することで、行列の対角化を行える。また、大きさ$1$の固有ベクトルをここで取り扱ったように並べて行列$U$を作成する場合、$U$は必ず直交行列であり、$U^{-1}=U^{\mathrm{T}}$が成立することも合わせて抑えておくと良い。

行列の$n$乗

行列の$n$乗の計算は、対角行列の$n$乗が対角成分の$n$乗を考えるだけで計算できることに基づいて考えると良い。以下、$\Lambda$に関して具体的な計算の確認を行う。
$$
\large
\begin{align}
\Lambda^{2} &= \left(\begin{array}{cc} \lambda_{1} & 0 \\ 0 & \lambda_{2} \end{array} \right)\left(\begin{array}{cc} \lambda_{1} & 0 \\ 0 & \lambda_{2} \end{array} \right) \\
&= \left(\begin{array}{cc} \lambda_{1}^2+0^2 & \lambda_{1} \times 0 + 0 \times \lambda_{2} \\ 0 \times \lambda_{1} + \lambda_{2} \times 0 & 0^{2}+\lambda_{2}^{2} \end{array} \right) \\
&= \left(\begin{array}{cc} \lambda_{1}^2 & 0 \\ 0 & \lambda_{2}^{2} \end{array} \right) \\
\Lambda^{3} &= \left(\begin{array}{cc} \lambda_{1}^{2} & 0 \\ 0 & \lambda_{2}^{2} \end{array} \right)\left(\begin{array}{cc} \lambda_{1} & 0 \\ 0 & \lambda_{2} \end{array} \right) \\
&= \left(\begin{array}{cc} \lambda_{1}^{3} & 0 \\ 0 & \lambda_{2}^{3} \end{array} \right)
\end{align}
$$

同様に考えて、$\Lambda^{n}$は下記のように表せる。
$$
\large
\begin{align}
\Lambda^{n} = \left(\begin{array}{cc} \lambda_{1}^{n} & 0 \\ 0 & \lambda_{2}^{n} \end{array} \right)
\end{align}
$$

上記の導出にあたっては厳密には数学的帰納法などを用いて示すが、直感的に妥当な結果である一方で議論が冗長になるのでここでは省略する。$\Lambda^{n}$がシンプルに計算できることが確認できたので、以下では$A$の$n$乗に関して考える。
$$
\large
\begin{align}
U^{\mathrm{T}} A U = \Lambda
\end{align}
$$

前項より上記のように$U^{\mathrm{T}} A U = \Lambda$が成立するので、この両辺の$n$乗に関して考えると下記のように変形できる。
$$
\large
\begin{align}
U^{\mathrm{T}} A U &= \Lambda \\
(U^{-1} A U)^{n} &= \Lambda^{n} \\
(U^{-1} A U)(U^{-1} A U) \cdots (U^{-1} A U) &= \Lambda^{n} \\
U^{-1} A (UU^{-1}) A U \cdots U^{-1} A U &= \Lambda^{n} \\
U^{-1} A^{n} U &= \Lambda^{n} \\
UU^{-1} A^{n} UU^{-1} &= U\Lambda^{n}U^{-1} \\
A^{n} &= U\Lambda^{n}U^{\mathrm{T}}
\end{align}
$$

したがって、$\displaystyle A^{n} = \left(\begin{array}{cc} 2 & 1 \\ 1 & 2 \end{array} \right)^{n}$は下記のように計算できる。
$$
\large
\begin{align}
A^{n} &= U\Lambda^{n}U^{\mathrm{T}} \\
&= \frac{1}{2} \left(\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right) \left(\begin{array}{cc} 3^{n} & 0 \\ 0 & 1^{n} \end{array} \right) \left(\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right) \\
&= \frac{1}{2} \left(\begin{array}{cc} 3^{n} & 1 \\ 3^{n} & -1 \end{array} \right) \left(\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right) = \frac{1}{2}\left(\begin{array}{cc} 3^{n}+1 & 3^{n}-1 \\ 3^{n}-1 & 3^{n}+1 \end{array} \right)
\end{align}
$$

実際に$A^{2},A^{3}$を計算すると$n=2,3$の上記の式と一致することが確認できる。

9章「仮説検定の方法(1):母平均の検定」の練習問題解答例〜例題で学ぶ初歩からの統計学[第2版]〜

当記事は「白砂, 例題で学ぶ初歩からの統計学 第$2$版 (日本評論社)」の読解サポートにあたって$9$章「仮説検定の方法(1):母平均の検定」の練習問題を解説します。
基本的には書籍の購入者向けの解説なので、まだ入手されていない方は下記より入手をご検討ください。また、解説はあくまでサイト運営者が独自に作成したものであり、書籍の公式ページではないことにご注意ください。(そのため著者の意図とは異なる解説となる可能性はあります)

・統計学に関する書籍の解答集
https://www.hello-statisticians.com/answer_textbook

執筆:@kakusan96

演習問題解答例

9-1.母平均の検定 [正規母集団で母標準偏差$\sigma$が既知・n<30 : 両側検定])

帰無仮説を本日のクリームパンの製造工程に異常はなかった($\mu=185.0$)、対立仮説を本日のクリームパンの製造に異常があった($\mu\neq185.0$)として、有意水準の5%の両側検定を行う。

問題文より、

母平均$\mu=185.0$
母標準偏差$\sigma=1.2$
標本数n=25
標本平均$\bar{x}=184.1$

であり、母集団は正規分布に従うため標本数が少なくても、帰無仮説が正しいとき標本平均の分布は正規分布$N\left(\mu, \frac{\sigma^2}{n} \right)$に従う。

標本平均の分布が正規分布に従うためz検定を行う。
検定統計量$z=\frac{\bar{x}-\mu}{\sigma / \sqrt{n}}$を計算すると
$$
\begin{align}
z&=\frac{184.1-185.0}{{1.2} / {\sqrt{25}}}\\
z&=-3.75
\end{align}
$$

今回は両側検定であるため$z_{{0.05}/{2}}=\pm 1.96$より、有意水準5%の両側検定における臨界値は$\pm 1.96$である。

$z<-1.96$より有意水準の5%の両側検定において帰無仮説は棄却され、対立仮説が採択されるため、本日の製造工程には異常があったといえる。

9-2.母平均の検定 [正規母集団で母標準偏差$\sigma$が既知・n$\geq$30 : 右片側検定])

帰無仮説をこのクラスの試験結果は過去の平均点と等しい($\mu=60.3$)、対立仮説をこのクラスの試験結果は過去の平均点を上回っている($\mu > 60.3$)として有意水準5%右片側検定を行う。

問題文より、
母平均$\mu=60.3$
母標準偏差$\sigma=11.2$
標本数n=49
標本平均$\bar{x}=63.5$

であり、母集団は正規分布に従うため、帰無仮説が正しいとき標本平均の分布は正規分布$N\left(\mu, \frac{\sigma^2}{n} \right)$に従う。

標本平均の分布が正規分布に従うためz検定を行う。
検定統計量$z=\frac{\bar{x}-\mu}{{\sigma} / {\sqrt{n}}}$を計算すると

$$
\begin{align}
z&=\frac{63.5-60.3}{{11.2} / {\sqrt{49}}}\\
z&=2.0
\end{align}
$$

$z > 1.645$より有意水準の5%の右片側検定において帰無仮説は棄却され、対立仮説が採択されるため、このクラスの試験結果は過去の平均点を上回っているといえる。

9-3.母平均の検定 [母集団分布の形と母標準偏差$\sigma$が未知・n$\geq$30 : 両側検定])

帰無仮説をアスピリン含有量の表記は正しい($\mu=330.0$)、対立仮説を($\mu\neq330.0$))として有意水準1%で両側検定を行う。

問題文より、
母平均$\mu=330.0$
母標準偏差$\sigma$が未知
標本数n=50
標本平均$\bar{x}=329.8$
標本標準偏差s=0.7

であり、今回は母標準偏差$\sigma$が未知であるため、母標準偏差$\sigma$を、標本の不偏分散の平方根で代用する。
母集団の分布が未知であるが標本数が十分にあるため(ここではn$\geq$30を十分な標本数とする)中心極限定理より標本平均の分布は正規分布$N\left(\mu, \frac{s^2}{n} \right)$に従う。

検定統計量を求める過程において標準化するにあたり、母標準偏差$\sigma$が未知で、標本の不偏分散の平方根で代用しているため、標準化した値の分布は自由度n-1のt分布になるが、標本数nが十分にあるため、標準正規分布に近似できる。

標本平均の分布が正規分布に従うためz検定を行う。
検定統計量$z=\frac{329.8-330.0}{{0.7} / {\sqrt{50}}}$を計算すると

$$z=-2.020$$

今回は両側検定であるため$z_{{0.01} / {2}}=\pm 2.576$より、有意水準5%の両側検定における臨界値は$\pm 2.576$である。
$z>-2.576$より有意水準1%の両側検定において帰無仮説は棄却されず、アスピリンの含有量の表記は誤りとは言えない。

9-4.母平均の検定 [正規母集団で母標準偏差$\sigma$が未知・n<30 : t検定 右片側検定])

帰無仮説を編集長の交代によって週刊誌の販売部数は変化していない($\mu=24.7$)、対立仮説を編集長の交代によって週刊誌の販売部数は増加した($\mu>24.7$))として有意水準5%で右片側検定を行う。

問題文より、
母平均$\mu=24.7$
母標準偏差$\sigma$が未知
標本数n=16
標本平均$\bar{x}=26.5$
標本標準偏差s=3.2

であり、母集団は正規分布に従うため、帰無仮説が正しいとき標本平均の分布は正規分布$N \left(\mu, \frac{\sigma^2}{n} \right)$に従う。

ただし母標準偏差$\sigma$が未知であるため、母標準偏差$\sigma$を、標本の不偏分散の平方根で代用する。
検定統計量を求める過程において標準化するにあたり、母標準偏差$\sigma$が未知で、標本の不偏分散の平方根で代用しているため、標準化した値の分布は自由度n-1のt分布になる。

標本平均の分布が自由度n-1のt分布に従うためt検定を行う。
検定統計量$t=\frac{26.5-24.7}{{3.2} / {\sqrt{25}}}$を計算すると

$$t=2.25$$

自由度15のt分布における有意水準5%の右片側検定の臨界点はt分布表より1.753である。$t>1.753$より有意水準5%の右片側検定において帰無仮説は棄却され、対立仮説が採択されるため、編集長の交代によって週刊誌の販売部数は増加したといえる。

9-5.母平均の検定 [正規母集団で母標準偏差$\sigma$が未知・n<30 : t分布 右片側検定])

帰無仮説をバッテリーの改良によって走行距離は伸びなかった($\mu=200$)、対立仮説をバッテリーの改良によって走行距離は伸びた($\mu>200$))として①有意水準5%で右片側検定、②有意水準1%で右片側検定を行う。

問題文より、
母平均$\mu=200$
母標準偏差$\sigma$が未知
標本数n=9
標本平均$\bar{x}=209$
標本の不偏分散の平方根s=12

であり、母集団は正規分布に従うため、帰無仮説が正しいとき標本平均の分布は正規分布$N\left(\mu, {\sigma^2}/ {n} \right)$に従う。
ただし母標準偏差$\sigma$が未知であるため、母標準偏差$\sigma$を、標本の不偏分散の平方根で代用する。
検定統計量を求める過程において標準化するにあたり、母標準偏差$\sigma$が未知で、標本の不偏分散の平方根で代用しているため、標準化した値の分布は自由度n-1のt分布になる。

標本平均の分布が自由度n-1のt分布に従うためt検定を行う。
検定統計量$t=\frac{209-200}{{12} / {\sqrt{9}}}$を計算すると

$$t=2.25$$

自由度8のt分布における有意水準5%の右片側検定の臨界点はt分布表より1.860である。$t>1.860$より有意水準5%の右片側検定において帰無仮説は棄却され、対立仮説が採択されるため、バッテリーの改良によって走行距離は伸びたといえる。

自由度8のt分布における有意水準1%の右片側検定の臨界点はt分布表より2.896である。$t<2.896$より有意水準1%の右片側検定において帰無仮説は棄却できず、バッテリーの改良によって走行距離は伸びたとは言えない。

2022年度共通テスト数学 IIB 第3問 確率・統計 〜確率分布の一次関数による近似〜

本記事では$2022$年度共通テスト数学 IIB より、第$3$問の確率・統計を取り扱いました。第$3$問では二項分布に従う確率変数に関する問題、確率分布の一次関数による近似が出題されました。高度な知識は不要である一方で、計算がなかなか多く試験で解くには大変な印象でした。

・参考
二項分布の解説記事:
https://www.hello-statisticians.com/explain-terms-cat/probdist3.html

・入試問題 解答・解説まとめ
https://www.hello-statisticians.com/entrance_exam

解答

$(1)$

定義からZは $B(400, 0.25)$ に従います。二項分布 $B(n, p)$ に対し、期待値は $np$ です。$Z$の期待値は$100$です。

$(2)$

標準偏差を求めるので,まずは分散 $V(R)$ を求めます。

$\displaystyle V(R) = V \left( \frac{Z}{400} \right) = \frac{V(Z)}{400^2}$ です。$\displaystyle \frac{1}{400}$ という係数が二乗となって出てきます。また、二項分布の分散は $np(1-p)$ です。従って,$\displaystyle V(R) = \frac{V(Z)}{400^2} = 400 \times \frac{0.25(1-0.25)}{400^2}$。求めるのは標準偏差であり、値は $\displaystyle \sqrt{400 \times 0.25(1-0.25)/400^2} = \frac{\sqrt{3}}{80}$ です。

確率変数 R の分布を正規分布で近似しています。標準正規分布を考えれば確率の計算ができますので、標準正規分布に従うように$R$を変形します。

$$P(R \geq x)= P\left(\frac{R-0.25}{\sqrt{3}/80} \geq \frac{x-0.25}{\sqrt{3}/80}\right)$$

$$= 1 – P\left(\frac{R-0.25}{\sqrt{3}/80} \leq \frac{x-0.25}{\sqrt{3}/80}\right) = 0.0465 $$

$$ P\left(\frac{R-0.25}{\sqrt{3}/80} \leq \frac{x-0.25}{\sqrt{3}/80}\right) = 0.9535 $$

表から,$\displaystyle \frac{x-0.25}{\sqrt{3}/80} = 1.68$ ($1.68$は標準正規分布の表を参照)のとき等式が成り立ちます。$\sqrt{3}=1.73$ を用いて計算すると、$x=0.286$ が出てきます。(電卓なしではきつい計算だと思います)

$(3)$

P(全事象) ですので答えは$1$です。

ケコ

$$\int^{300}_{100} (ax+b)dx=\left[\frac{ax^2}{2}+bx\right]^{300}_{100}
= 4 \times 10^4a + 200b = 1 $$

サシス

ケコ で得た等式 $$4 \times 10^4a + 200b = 1 $$ と問題文中の等式②を用いて,$a=-3 \times 10^{-5}, b=11 \times 10^{-3}$ を得ます。

$P(200 \leq X) $ を求めよ、という問題です。

$$ \int^{300}_{200} (ax+b)dx=\left[\frac{ax^2}{2}+bx\right]^{300}_{200} $$

$$= \frac{a}{2}(300^2 – 200^2) + 100b = 0.35 $$

答えは$35$%です。

 

まとめ

以上です。途中 $1.73 \times 1.68$ という計算が出てきたときは面食らいました。確率密度分布を一次関数で近似するという問題が面白かったです。まず、確率密度関数の規格化条件(全事象の確率は$1$という条件)でパラメータの方程式が得られました。次に、期待値が観測されたデータの平均と合わせるように方程式を導いていました。

出典: $2022$年度 共通テスト 数学IIB

深層学習 改訂第2版 第4章「誤差逆伝播法」 65p 数式の導出

当記事は「深層学習 改訂第$2$版 (講談社)」の読解サポートを行います。基本的に購入者向けの解説ですので、購入されていない方は下記より入手をご検討ください。また、解説は筆者の見解であり、公式のものではないことにご注意ください。

執筆: @ShunDeveloper

交差エントロピーにおける出力層のデルタの導出

途中式が省略されている式の導出をした。

計算の準備

計算する対象は以下に示す$\delta_j^{(L)}$である。

$$
\begin{eqnarray}
\delta_j^{(L)}
&=&
\frac{\partial E_n}{\partial u_j^{L}}\\
&=&
\frac{\partial E_n}{\partial y_k}\frac{\partial y_k}{\partial u_j^{L}}\\
\end{eqnarray}
$$

上記の$E_n$は以下のように書き表すことができる。
$$
\begin{eqnarray}
E_n
&=&
-\sum_k d_k
\log y_k \cdots \text{(1)}\\
&=&
-\sum_k d_k
\log \frac{\exp( u_k^{(L)} )}{ \sum_i \exp( u_i^{(L)} ) } \cdots \text{(2)}\\
\end{eqnarray}
$$

(1)式を用いて$\delta_j^{(L)}$を以下の形に変形する。

$$
\begin{eqnarray}\delta_j^{(L)}
&=&
-\sum_k d_k
\frac{1}{ y_k } \frac{\partial y_k}{\partial u_j^{L}} \cdots \text{(3)}\\
\end{eqnarray}
$$

(3)式の、$\displaystyle \frac{\partial y_k}{\partial u_j^{L}}$を商の微分を用いて変形する。S.ラング($1978$)『解析入門 原書第3版』(岩波書店)によれば商の微分の公式は以下に示す通りである。

“$f(x)$および$g(x)$を二つの関数とし, それぞれの導関数$f'(x), g'(x)$が存在するとする. さらに$g(x)\ne 0$とする. このとき商$f(x)/g(x)$の導関数は存在し
$$
\frac{g(x)’f(x) – f(x)g'(x)}{g(x)^2}
$$
に等しい.”

$\displaystyle y_k = \frac{\exp( u_k^{(L)} )}{ \sum_i \exp( u_i^{(L)} ) }$の、$\displaystyle \exp(u_k^{(L)}), \sum_i \: \exp(u_{i}^{(L)}) $に注目すると$\displaystyle \frac{\partial y_k}{\partial u_j^{L}}$を以下のように変形できる。

$$
\begin{eqnarray}
\frac{\partial y_k}{\partial u_j^{L}}
&=&
\frac{1}{( \sum_i \: \exp(u_{i}^{(L)}) )^2}
\biggl(
\frac{ \exp(u_k^{(L)}) }{\partial u_j^{(L)}} \sum_i \: \biggl[ \exp(u_{i}^{(L)})\biggr]

\exp(u_k^{(L)})\frac{\sum_i \: \exp( u_{i}^{(L)}) }{ \partial u_j^{(L)}}
\biggr)
\\
\end{eqnarray}
$$

上記の式において、$\displaystyle \frac{ \exp(u_k^{(L)}) }{\partial u_j^{(L)}}$ は $k = j$ であるとき$\exp(u_k^{(L)})$ で、$k\ne j$ のとき$0$ であるので場合分けする。(ただし$j$が$\delta$の添え字であることに注意する)

$k \ne j$のときの$\displaystyle \frac{\partial y_k}{\partial u_j^{L}}$

$$
\begin{eqnarray}
\frac{\partial y_k}{\partial u_j^{L}}
&=&
\frac{1}{( \sum_i \: \exp(u_{i}^{(L)}) )^2}
\biggl(

\exp(u_k^{(L)})\frac{\sum_i \: \exp( u_{i}^{(L)}) }{ \partial u_j^{(L)}}
\biggr)
\\
&=&
\frac{1}{( \sum_i \: \exp(u_{i}^{(L)}) )^2}
\biggl(

\exp(u_k^{(L)})\exp( u_{j}^{(L)})
\biggr)
\\
&=&

\frac{\exp(u_k^{(L)})}{ \sum_i \: \exp(u_{i}^{(L)}) }
\frac{\exp( u_{j}^{(L)})}{ \sum_i \: \exp(u_{i}^{(L)}) }
\\
&=&
-y_k y_j \cdots \text{(4)}
\end{eqnarray}
$$

$k = j$のときの$\displaystyle \frac{\partial y_k}{\partial u_j^{L}}$

右辺第二項の$\displaystyle \sum_i \: \exp( u_{i}^{(L)})$の足し算の中に$\exp( u_{j}^{(L)})$が含まれていることに注意する。

$$
\begin{eqnarray}
\frac{\partial y_k}{\partial u_j^{L}}
&=&
\frac{1}{( \sum_i \: \exp(u_{i}^{(L)}) )^2}
\biggl(
\frac{ \exp(u_k^{(L)}) }{\partial u_j^{(L)}} \sum_i \: \exp(u_{i}^{(L)})

\exp(u_k^{(L)})\frac{\sum_i \: \exp( u_{i}^{(L)}) }{ \partial u_j^{(L)}}
\biggr)
\\
&=&
\frac{1}{( \sum_i \: \exp(u_{i}^{(L)}) )^2}
\biggl(
\exp(u_k^{(L)})\sum_i \: \exp(u_{i}^{(L)})

\exp(u_k^{(L)})\exp( u_{j}^{(L)})
\biggr)
\\
&=&
\frac{\exp(u_k^{(L)})}{ \sum_i \: \exp(u_{i}^{(L)}) }
\biggl(
\frac{\sum_i \: \exp(u_{i}^{(L)})}{ \sum_i \: \exp(u_{i}^{(L)})}

\frac{\exp( u_{j}^{(L)})}{ \sum_i \: \exp(u_{i}^{(L)}) }
\biggr)\\
&=&
y_k(1-y_j) \cdots \text{(5)}
\end{eqnarray}
$$

$\delta_j^{(L)}$の導出

(3)式に、(4)式と(5)式を代入して$\delta_j^{(L)}$を求める

$$
\begin{eqnarray}\delta_j^{(L)}
&=&
-\sum_k d_k
\log \frac{1}{ y_k } \frac{\partial y_k}{\partial u_j^{L}}\\
&=&

\biggl(
d_j
\frac{1}{ y_k } \frac{\partial y_k}{\partial u_j^{L}}
+
\sum_{k \ne j} d_k
\frac{1}{ y_k } \frac{\partial y_k}{\partial u_j^{L}}
\biggr)
\\
&=&

\biggl(
d_j (1-y_j)
+
\sum_{k \ne j} d_k (-y_j)
\biggr)
\\
&=&
-\biggl(
d_j + \sum_k d_k(-y_j)
\biggr)
\\
&=&
-\biggl(
d_j – y_j \sum_k d_k
\biggr)\\
&=&
y_j-d_j
\end{eqnarray}
$$

ただし、最後の変形には $\displaystyle \sum_k d_k=1$ を用いた