ブログ

数学検定2級 解説 〜公式問題集 解説&解答 Ch.5「ベクトル」〜

数学検定$2$級は数ⅡBまで相当の数学の基本トピックに関して取り扱った検定であり、統計学に必要な数学を身につける際の指標に役に立ちます。当記事では「日本数学検定協会 監修」の「数学検定問題集 $2$級」より、第$5$章の「ベクトル」の解説と演習問題の解答例などを取り扱いました。

・数学検定$2$級まとめ
https://www.hello-statisticians.com/math_certificate_2

本章のまとめ

内積

位置ベクトル

演習

計算技能問題

問題.$1$

$[1]$
下記のように計算できる。
$$
\large
\begin{align}
|4\vec{a} + 3\vec{b}| &= \sqrt{(4 \cdot 1 + 3 \cdot (-3))^{2} + (4 \cdot (-2) + 3 \cdot 1)^{2}} \\
&= \sqrt{(-5)^2 + (-5)^2} \\
&= 5 \sqrt{2}
\end{align}
$$

$[2]$
なす角を$\theta$とおくと内積の定義より下記が成立する。
$$
\large
\begin{align}
\vec{a} \cdot \vec{b} &= |\vec{a}| |\vec{b}| \cos{\theta} \\
\left(\begin{array}{c} 1 \\ -2 \end{array} \right) \cdot \left(\begin{array}{c} -3 \\ 1 \end{array} \right) &= \sqrt{1^2+(-2)^2} \sqrt{(-3)^2+1^2} \cos{\theta} \\
-3 – 2 &= \sqrt{5} \cdot \sqrt{10} \cdot \cos{\theta} \\
-5 &= 5 \sqrt{2} \cos{\theta} \\
\cos{\theta} &= – \frac{1}{\sqrt{2}}
\end{align}
$$

上記より$\theta=135^{\circ}$である。

問題.$2$

$$
\large
\begin{align}
\vec{a} = \left(\begin{array}{c} 6 \\ -1 \end{array} \right), \quad \vec{b} = \left(\begin{array}{c} -3 \\ 2 \end{array} \right), \quad \vec{c} = \left(\begin{array}{c} 1 \\ -1 \end{array} \right)
\end{align}
$$

$[1]$
$\vec{a}+t\vec{b}$と$\vec{c}$が平行であるとき下記が成立する。
$$
\large
\begin{align}
\vec{a} + t\vec{b} &= k \vec{c} \\
\left(\begin{array}{c} 6 \\ -1 \end{array} \right) + t \left(\begin{array}{c} -3 \\ 2 \end{array} \right) &= k \left(\begin{array}{c} 1 \\ -1 \end{array} \right) \\
\left(\begin{array}{c} 6-3t \\ -1+2t \end{array} \right) &= \left(\begin{array}{c} k \\ -k \end{array} \right) \\
(6-3t) + (-1+2t) &= 0 \\
t &= 5
\end{align}
$$

$[2]$
$\vec{a}+t\vec{b}$と$\vec{c}$が垂直であるとき下記が成立する。
$$
\large
\begin{align}
(\vec{a}+t\vec{b}) \cdot \vec{c} &= 0 \\
\left(\begin{array}{c} 6-3t \\ -1+2t \end{array} \right) \cdot \left(\begin{array}{c} 1 \\ -1 \end{array} \right) &= 0 \\
(6-3t) – (-1+2t) &= 0 \\
5t &= 7 \\
t &= \frac{7}{5}
\end{align}
$$

問題.$3$

$[1]$
下記のように計算を行うことができる。
$$
\large
\begin{align}
|\vec{a}-\vec{b}| &= \sqrt{|\vec{a}-\vec{b}|^{2}} \\
&= \sqrt{|\vec{a}|^{2} + |\vec{b}|^{2} – 2 \vec{a} \cdot \vec{b}} \\
&= \sqrt{1^{2} + 9^{2} – 2 \cdot 5} \\
&= \sqrt{72} \\
&= 6 \sqrt{2}
\end{align}
$$

$[2]$
下記のように計算を行うことができる。
$$
\large
\begin{align}
|2\vec{a} – 3\vec{b}| &= \sqrt{|2 \vec{a} – 3 \vec{b}|^{2}} \\
&= \sqrt{4|\vec{a}|^{2} + 9|\vec{b}|^{2} – 12 \vec{a} \cdot \vec{b}} \\
&= \sqrt{4 \cdot 1^{2} + 9 \cdot 9^{2} – 12 \cdot 5} \\
&= \sqrt{4 + 729 – 60} \\
&= \sqrt{673}
\end{align}
$$

問題.$4$

$\overrightarrow{DC} = \overrightarrow{AB}$であるので下記が成立する。
$$
\large
\begin{align}
\overrightarrow{DC} &= \overrightarrow{AB} \\
\left(\begin{array}{c} -3 \\ 1 \end{array} \right) – \left(\begin{array}{c} x \\ y \end{array} \right) &= \left(\begin{array}{c} 2 \\ 3 \end{array} \right) – \left(\begin{array}{c} 1 \\ -5 \end{array} \right) \\
\left(\begin{array}{c} -3-x \\ 1-y \end{array} \right) &= \left(\begin{array}{c} 1 \\ 8 \end{array} \right) \\
\left(\begin{array}{c} x \\ y \end{array} \right) &= \left(\begin{array}{c} -3-1 \\ 1-8 \end{array} \right) \\
&= \left(\begin{array}{c} -4 \\ -7 \end{array} \right)
\end{align}
$$

問題.$5$

$[1]$
$AC:BC=OA:OB$が成立より下記が得られる。
$$
\large
\begin{align}
AC:BC &= OA:OB \\
&= \sqrt{2^2+1^2} : \sqrt{(-3)^2+6^2} \\
&= \sqrt{5} : \sqrt{45} \\
&= \sqrt{5} : 3 \sqrt{5} \\
&= 1 : 3
\end{align}
$$

上記より$\overrightarrow{OC}$は下記のように表せる。
$$
\large
\begin{align}
\overrightarrow{OC} &= \overrightarrow{OA} + \frac{1}{4} \overrightarrow{AB} \\
&= \left(\begin{array}{c} 2 \\ 1 \end{array} \right) + \frac{1}{4} \left(\begin{array}{c} -3-2 \\ 6-1 \end{array} \right) \\
&= \left(\begin{array}{c} 2 \\ 1 \end{array} \right) + \frac{1}{4} \left(\begin{array}{c} -5 \\ 5 \end{array} \right) \\
&= \frac{1}{4} \left(\begin{array}{c} 8-5 \\ 4+5 \end{array} \right) \\
&= \frac{1}{4} \left(\begin{array}{c} 3 \\ 9 \end{array} \right)
\end{align}
$$

$[2]$
$\overrightarrow{OC}$と同じ向きの単位ベクトルを$\vec{e}$とおくと、$\vec{e}$は下記のように得られる。
$$
\large
\begin{align}
\vec{e} &= \frac{\overrightarrow{OC}}{|\overrightarrow{OC}|} \\
&= \frac{1}{4} \left(\begin{array}{c} 3 \\ 9 \end{array} \right) \cdot \frac{1}{\sqrt{3^2+9^2}/4} \\
&= \frac{1}{4} \left(\begin{array}{c} 3 \\ 9 \end{array} \right) \cdot \frac{4}{3 \sqrt{10}} \\
&= \frac{1}{3 \sqrt{10}} \left(\begin{array}{c} 3 \\ 9 \end{array} \right) \\
&= \frac{1}{\sqrt{10}} \left(\begin{array}{c} 1 \\ 3 \end{array} \right)
\end{align}
$$

問題.$6$

$[1]$
$$
\large
\begin{align}
\vec{a} = \left(\begin{array}{c} 1 \\ 0 \\ -1 \end{array} \right), \quad \vec{b} = \left(\begin{array}{c} 2 \\ -2 \\ -1 \end{array} \right)
\end{align}
$$

$\vec{a}, \vec{b}$のなす角を$\theta$とおくと下記が成立する。
$$
\large
\begin{align}
\cos{\theta} &= \frac{\vec{a} \cdot \vec{b}}{|\vec{a}||\vec{b}|} \\
&= \frac{2+1}{\sqrt{2}\sqrt{9}} \\
&= \frac{1}{\sqrt{2}}
\end{align}
$$

上記より$\theta=45^{\circ}$が成り立つ。

$[2]$
$$
\large
\begin{align}
\vec{a} = \left(\begin{array}{c} -1 \\ 2 \\ 4 \end{array} \right), \quad \vec{b} = \left(\begin{array}{c} 2 \\ -3 \\ 2 \end{array} \right)
\end{align}
$$

$\vec{a}, \vec{b}$のなす角を$\theta$とおくと下記が成立する。
$$
\large
\begin{align}
\cos{\theta} &= \frac{\vec{a} \cdot \vec{b}}{|\vec{a}||\vec{b}|} \\
&= \frac{-2-6+8}{|\vec{a}||\vec{b}|} \\
&= 0
\end{align}
$$

上記より$\theta=90^{\circ}$が成り立つ。

数理技能問題

問題.$1$

問題.$2$

内積について成立する式などに基づいて下記のような変形を行うことで示すことができる。
$$
\large
\begin{align}
|m\vec{a} + n\vec{b}|^{2} &= (m\vec{a} + n\vec{b}) \cdot m\vec{a} + n\vec{b} \\
&= m^2 \vec{a} \cdot \vec{a} + mn \vec{a} \cdot \vec{b} + mn \vec{b} \cdot \vec{a} + n^{2} \vec{b} \cdot \vec{b} \\
&= m^2 |\vec{a}|^{2} + 2mn(\vec{a} \cdot \vec{b}) + n^2 |\vec{b}|^{2}
\end{align}
$$

問題.$3$

$|\vec{a}+\vec{b}|=|\vec{a}-\vec{b}|$であるとき下記が成立する。
$$
\large
\begin{align}
|\vec{a}+\vec{b}| &= |\vec{a}-\vec{b}| \\
|\vec{a}+\vec{b}|^{2} &= |\vec{a}-\vec{b}|^{2} \\
|\vec{a}|^{2} + |\vec{b}|^{2} + 2 \vec{a} \cdot \vec{b} &= |\vec{a}|^{2} + |\vec{b}|^{2} – 2 \vec{a} \cdot \vec{b} \\
4 \vec{a} \cdot \vec{b} &= 0 \\
\vec{a} \cdot \vec{b} &= 0
\end{align}
$$

$|\vec{a}| \neq 0, \, |\vec{b}| \neq 0$でない場合に$\vec{a} \cdot \vec{b} = 0$であれば$\vec{a}$と$\vec{b}$は垂直である。

問題.$4$

$[1]$
$\vec{a} \cdot \vec{b}$は下記のような変形を行うことによって得られる。
$$
\large
\begin{align}
|\vec{a}-\vec{b}|^{2} &= (3\sqrt{5})^{2} \\
|\vec{a}|^{2} + |\vec{b}|^{2} – 2 \vec{a} \cdot \vec{b} &= 45 \\
2 \vec{a} \cdot \vec{b} &= 5^{2} + 2^{2} – 45 \\
2 \vec{a} \cdot \vec{b} &= -16 \\
\vec{a} \cdot \vec{b} &= -8
\end{align}
$$

$[1]$
$|\vec{a}+\vec{b}|$は下記のように得られる。
$$
\large
\begin{align}
|\vec{a}+\vec{b}| &= \sqrt{|\vec{a}+\vec{b}|^{2}} \\
&= \sqrt{|\vec{a}|^{2} + |\vec{b}|^{2} + 2 \vec{a} \cdot \vec{b}} \\
&= \sqrt{5^{2} + 2^{2} – 16} \\
&= \sqrt{25 + 4 – 16} \\
&= \sqrt{13}
\end{align}
$$

問題.$5$

平行四辺形$ABCD$について$\overrightarrow{AC}, \overrightarrow{BD}$は下記のように表すことができる。
$$
\large
\begin{align}
\overrightarrow{AC} &= \overrightarrow{AB} + \overrightarrow{BC} \\
\overrightarrow{BD} &= -\overrightarrow{AB} + \overrightarrow{BC}
\end{align}
$$

よって$AC^{2}+BD^{2}$は下記のように計算することができる。
$$
\large
\begin{align}
AC^{2} + BD^{2} &= |\overrightarrow{AC}|^{2} + |\overrightarrow{BD}|^{2} \\
&= |\overrightarrow{AB} + \overrightarrow{BC}|^{2} + |-\overrightarrow{AB} + \overrightarrow{BC}|^{2} \\
&= |\overrightarrow{AB}|^{2} + |\overrightarrow{BC}|^{2} + \cancel{2 \overrightarrow{AB} \cdot \overrightarrow{BC}} + |\overrightarrow{AB}|^{2} + |\overrightarrow{BC}|^{2} – \cancel{2 \overrightarrow{AB} \cdot \overrightarrow{BC}} \\
&= 2|\overrightarrow{AB}|^{2} + 2|\overrightarrow{BC}|^{2} \\
&= 2(AB^{2}+BC^{2})
\end{align}
$$

問題.$6$

$$
\large
\begin{align}
\vec{a} = \left(\begin{array}{c} 2 \\ -2 \\ 1 \end{array} \right), \quad \vec{b} = \left(\begin{array}{c} 2 \\ 3 \\ -4 \end{array} \right)
\end{align}
$$

上記の$\vec{a}, \vec{b}$の両方に垂直なベクトルを$\displaystyle \vec{e} = \left(\begin{array}{c} x \\ y \\ z \end{array} \right)$とおくと下記が成立する。
$$
\large
\begin{align}
\vec{a} \cdot \vec{e} &= 0 \\
\left(\begin{array}{c} 2 \\ -2 \\ 1 \end{array} \right) \cdot \left(\begin{array}{c} x \\ y \\ z \end{array} \right) &= 0 \\
2x – 2y + z &= 0 \quad (1) \\
\vec{b} \cdot \vec{e} &= 0 \\
\left(\begin{array}{c} 2 \\ 3 \\ -4 \end{array} \right) \cdot \left(\begin{array}{c} x \\ y \\ z \end{array} \right) &= 0 \\
2x + 3y + -4z &= 0 \quad (2)
\end{align}
$$

$(1)-(2)$より$-5y+5z=0$であり、$y=z$が成立する。また、$y=z$を$(1)$に代入することで$\displaystyle x=\frac{1}{2}$が得られる。ここで$|\vec{e}|=1$より$x^2+y^2+z^2=1$が成立するので、下記のように$z$が得られる。
$$
\large
\begin{align}
x^2 + y^2 + z^2 &= 1 \\
\frac{1}{4}z^2 + z^2 + z^{2} &= 1 \\
\frac{9}{4}z^{2} &= 1 \\
z^{2} &= \frac{4}{9} \\
z &= \pm \frac{2}{3}
\end{align}
$$

よって、$\vec{e}$は下記のように表せる。
$$
\large
\begin{align}
\vec{e} &= \pm \frac{1}{3} \left(\begin{array}{c} 1 \\ 2 \\ 2 \end{array} \right)
\end{align}
$$

np.meshgridとmatplotlib.pyplotを用いた2変数関数の描画

$2$変数関数の描画を手動で行う場合はなかなか難しいのでPythonのようなプログラム言語を用いる描画法を抑えておくと様々な所で役に立ちます。当記事ではnumpy.meshgridmatplotlib.pyplotのいくつかのメソッドを用いた2変数関数の描画について取り扱いました。

・Pythonまとめ
https://www.hello-statisticians.com/python_basic

np.meshgridを用いた格子点の作成

NumPymeshgridメソッドは下記のように実行することができます。

import numpy as np

x_, y_ = np.arange(-2,2.01,0.01), np.arange(-2,2.01,0.01)

x, y = np.meshgrid(x_, y_)

print(x)
print("===")
print(y)

・実行結果

[[-2.   -1.99 -1.98 ...  1.98  1.99  2.  ]
 [-2.   -1.99 -1.98 ...  1.98  1.99  2.  ]
 [-2.   -1.99 -1.98 ...  1.98  1.99  2.  ]
 ...
 [-2.   -1.99 -1.98 ...  1.98  1.99  2.  ]
 [-2.   -1.99 -1.98 ...  1.98  1.99  2.  ]
 [-2.   -1.99 -1.98 ...  1.98  1.99  2.  ]]
===
[[-2.   -2.   -2.   ... -2.   -2.   -2.  ]
 [-1.99 -1.99 -1.99 ... -1.99 -1.99 -1.99]
 [-1.98 -1.98 -1.98 ... -1.98 -1.98 -1.98]
 ...
 [ 1.98  1.98  1.98 ...  1.98  1.98  1.98]
 [ 1.99  1.99  1.99 ...  1.99  1.99  1.99]
 [ 2.    2.    2.   ...  2.    2.    2.  ]]

計算結果より$-2 \leq x \leq 2, \, -2 \leq y \leq 2$の領域の点を$0.01$刻みで表されたことが確認できます。数学ではそれぞれの点に$(x,y)$の$2$つの値を対応させて表すことが多いですが、np.meshgridではそれぞれの点における$x$と$y$の値を分けて表すことに注意が必要です。

matplotlib.pyplotを用いた描画

以下では$2$変数関数$f(x,y) = x^2 + y^2$の描画を行います。

plt.contour

pyplot.contourを下記のように用いることで$2$変数関数の等高線の描画を行うことができます。

import numpy as np
import matplotlib.pyplot as plt

x_, y_ = np.arange(-2,2.01,0.01), np.arange(-2,2.01,0.01)
x, y = np.meshgrid(x_, y_)
z = x**2 + y**2

plt.contour(x,y,z,cmap="viridis")
plt.colorbar()
plt.show()

・実行結果

plt.pcolormesh

pyplot.pcolormeshを下記のように用いることで$2$変数関数のカラーマップの描画を行うことができます。

import numpy as np
import matplotlib.pyplot as plt

x_, y_ = np.arange(-2,2.01,0.01), np.arange(-2,2.01,0.01)
x, y = np.meshgrid(x_, y_)
z = x**2 + y**2

plt.pcolormesh(x,y,z,cmap="viridis")
plt.colorbar()
plt.show()

・実行結果

ローゼンブロック関数(Rosenbrock function)の数式とPythonを用いたグラフ化

ローゼンブロック関数(Rosenbrock function)は主に$2$変数で表される関数で、シンプルな数式である一方で等高線が複雑になることから最適化アルゴリズムのベンチマークなどに用いられます。当記事ではローゼンブロック関数の数式とPythonを用いたグラフ化を取り扱いました。

・Pythonまとめ
https://www.hello-statisticians.com/python_basic

ローゼンブロック関数の数式と解釈

ローゼンブロック関数の数式

$2$変数$x,y$に関するローゼンブロック関数を$f(x,y)$とおくと、$f(x,y)$は下記のように表すことができます。
$$
\large
\begin{align}
f(x,y) = a(x-1)^{2} + b(y-x^2)^2
\end{align}
$$

上記の$a$と$b$はローゼンブロック関数のパラメータですが、一般的には$a=1, b=100$が用いられることが多いので、下記の式では数値の代入を行いました。
$$
\large
\begin{align}
f(x,y) = (x-1)^{2} + 100(y-x^2)^2
\end{align}
$$

ローゼンブロック関数の解釈

ローゼンブロック関数のグラフについては次節で取り扱いますが、Pythonなどを用いなくても数式から概形を予測することが可能です。式の解釈にあたっては$(y-x^2)^2$の係数が$100$のように大きい場合は$(y-x^2)^2$の項に着目すると良いです。

ここで$(y-x^2)^2$の項は、$y=x^2$が成立する際に$(y-x^2)^2=0$が成立するので、$y=x^2$の関数に沿ってローゼンブロック関数$f(x,y)$の値が小さいだろうと考察できます。

また、$y=x^2$が成立するとき$(x-1)^{2}$を最小にする$x$は$x=1$であるので、$(x,y)=(1,1)$が$f(x,y)$を最小にする点であると考えられます。このとき最小値は$f(1,1)=0$を取ります。ローゼンブロック関数では関数の値の小さな点が$y=x^2$の$0 \leq x \leq 2$あたりに集中することから等高線がバナナのような形を取ります。このことからローゼンブロック関数はバナナ関数などと呼ばれる場合もあります。

ローゼンブロック関数のグラフ化と最小点の探索

ローゼンブロック関数のグラフ化

下記を実行することで等高線を描くことができます。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm

x_, y_ = np.arange(-2,2.01,0.01), np.arange(-2,2.01,0.01)
x, y = np.meshgrid(x_, y_)
z = (1-x)**2 + 100*(y-x**2)**2

levs = 10**np.arange(0., 3.5, 0.5)

plt.contour(x,y,z,norm=LogNorm(),levels=levs,cmap="viridis")
plt.colorbar()

plt.show()

・実行結果

上図では黄色に近づくとローゼンブロック関数$f(x,y)$の値が大きく、紫に近づくと$f(x,y)$の値が小さいです。前節で解釈したように$y=x^2, \, 0 \leq x \leq 2$の周辺に関数の値が小さい点があることが確認できます。

勾配法を用いた関数の最小点の探索

$$
\large
\begin{align}
\left(\begin{array}{c} x_{n+1} \\ y_{n+1} \end{array} \right) = \left(\begin{array}{c} x_{n} \\ y_{n} \end{array} \right) – \alpha \nabla f(x,y)|_{x=x_{n},y=y_{n}}
\end{align}
$$

勾配降下法では上記のような数式を用いて関数の最小値の探索を行います。ここでローゼンブロック関数$f(x,y)$の勾配ベクトル$\nabla f(x,y)$は下記のように得られます。
$$
\large
\begin{align}
\nabla f(x,y) &= \left(\begin{array}{c} \displaystyle \frac{\partial f}{\partial x} \\ \displaystyle \frac{\partial f}{\partial y} \end{array} \right) \\
&= \left(\begin{array}{c} 2(x-1)-400x(y-x^2) \\ 200(y-x^2) \end{array} \right)
\end{align}
$$

上記の勾配ベクトルを元に下記を実行することで$(x,y)=(0,2)$から$\alpha=0.005$で勾配降下法の繰り返し計算を行うことができます。

alpha = 0.005
x_n, y_n = 0., 2.

for i in range(500):
    x_n = x_n - alpha*(2*(x_n-1) - 400*x_n*(y_n-x_n**2))
    y_n = y_n - alpha*200*(y_n-x_n**2)
    
    if (i+1)%100==0:
        print("n:{}, x_n:{:.5f}, y_n:{:.5f}".format(i+1,x_n,y_n))

・実行結果

n:100, x_n:0.63397, y_n:0.40191
n:200, x_n:0.86602, y_n:0.74999
n:300, x_n:0.95096, y_n:0.90432
n:400, x_n:0.98205, y_n:0.96442
n:500, x_n:0.99343, y_n:0.98690

上記よりx_ny_nが$(1,1)$に収束することが確認できます。計算過程は次のように図で表すことも可能です。

alpha = 0.002
x_n, y_n = 0., 2.
x_n_, y_n_ = np.zeros(10), np.zeros(10)

display_n, display_idx = [1, 2, 5, 10, 20, 50, 100, 200, 500, 1000], 0

for i in range(1000):
    x_n = x_n - alpha*(2*(x_n-1) - 400*x_n*(y_n-x_n**2))
    y_n = y_n - alpha*200*(y_n-x_n**2)
    
    if (i+1) in display_n:
        x_n_[display_idx], y_n_[display_idx] = x_n, y_n
        display_idx += 1

plt.plot(x_n_,y_n_,"ro")
plt.contour(x,y,z,norm=LogNorm(),levels=levs,cmap="viridis")
plt.colorbar()

plt.show()

・実行結果

可視化の都合上学習率や表示する繰り返し演算のインデックスは調整を行いましたのでご注意ください。図より$(0,2)$から$(1,1)$に近づく流れが確認できます。

当項での計算では$\alpha$に定数を設定しましたが、下記のように直線探索を行うこともできます。

勾配法の計算過程のアニメーション

参考

・ローゼンブロック関数:Wikipedia
・ベンチマーク関数:Wikipedia

数学検定2級 解説 〜公式問題集 解説&解答 Ch.4「微分・積分」〜

数学検定$2$級は数ⅡBまで相当の数学の基本トピックに関して取り扱った検定であり、統計学に必要な数学を身につける際の指標に役に立ちます。当記事では「日本数学検定協会 監修」の「数学検定問題集 $2$級」より、第$4$章の「微分・積分」の解説と演習問題の解答例などを取り扱いました。

・数学検定$2$級まとめ
https://www.hello-statisticians.com/math_certificate_2

本章のまとめ

微分

積分

演習

計算技能問題

問題.$1$

$[1]$
下記のように計算できる。
$$
\large
\begin{align}
y &= 5x^2 – 6x + 4 \\
y’ &= 10x – 6
\end{align}
$$

$[2]$
下記のように計算できる。
$$
\large
\begin{align}
y &= x^3 – 3x + 1 \\
y’ &= 3x^2 – 3
\end{align}
$$

$[3]$
下記のように計算できる。
$$
\large
\begin{align}
y &= (2x-5)^2 \\
&= 4x^2 – 20x + 25 \\
y’ &= 8x – 20
\end{align}
$$

$[4]$
下記のように計算できる。
$$
\large
\begin{align}
y &= x(x+1)^{2} \\
&= x^3 + 2x^2 + x \\
y’ &= 3x^2 + 4x + 1
\end{align}
$$

問題.$2$

$[1]$
$f(x)=2x^2$とおくと$f'(x)$は下記のように得られる。
$$
\large
\begin{align}
f'(x) = 4x
\end{align}
$$

よって$x=1$における接線の方程式は下記のように表される。
$$
\large
\begin{align}
y – f(1) &= f'(1)(x-1) \\
y &= 4(x-1) + 2 \\
&= 4x – 2
\end{align}
$$

$[2]$
$f(x)=x^2-3x$とおくと$f'(x)$は下記のように得られる。
$$
\large
\begin{align}
f'(x) = 2x-3
\end{align}
$$

よって$x=1$における接線の方程式は下記のように表せる。
$$
\large
\begin{align}
y – f(1) &= f'(1)(x-1) \\
y &= -(x-1) – 2 \\
&= -x – 1
\end{align}
$$

$[3]$
$f(x)=x^2+x$とおくと$f'(x)$は下記のように得られる。
$$
\large
\begin{align}
f'(x) = 2x+1
\end{align}
$$

上記が$3$であるので$2x+1=3$より$x=1$である。$x=1$における接線の方程式は下記のように表せる。
$$
\large
\begin{align}
y – f(1) &= f'(1)(x-1) \\
y &= 3(x-1) + 2 \\
&= 3x – 1
\end{align}
$$

問題.$3$

$[1]$
定積分の値は下記のように計算できる。
$$
\large
\begin{align}
\int_{-2}^{3} (6x^2-4x+1) dx &= \left[ 2x^3-2x^2+x \right]_{-2}^{3} \\
&= (2 \cdot 3^3 – 2 \cdot 3^2 + 3) – (2 \cdot (-2)^3 – 2 \cdot (-2)^2 + (-2)) \\
&= 54 – 18 + 3 -(-16 – 8 – 2) = 65
\end{align}
$$

$[2]$
定積分の値は下記のように計算できる。
$$
\large
\begin{align}
\int_{2}^{3} (x^2+3x-4) dx &= \left[ \frac{1}{3}x^3 + \frac{3}{2}x^2 – 4x \right]_{2}^{3} \\
&= \left( 9 + \frac{27}{2} – 12 \right) – \left( \frac{8}{3} + 6 – 8 \right) \\
&= \frac{59}{6}
\end{align}
$$

$[3]$
定積分の値は下記のように計算できる。
$$
\large
\begin{align}
\int_{-1}^{2} (x+3)^{2} dx &= \left[ \frac{1}{3}(x+3)^{3} \right]_{-1}^{2} \\
&= \frac{1}{3}(5^3 – 2^3) \\
&= 39
\end{align}
$$

$[4]$
定積分の値は下記のように計算できる。
$$
\large
\begin{align}
\int_{-1}^{1} x(2x-1)^2 dx &= \int_{-1}^{1} (4x^3 – 4x^2 + x) dx \\
&= -2 \int_{0}^{1} 4x^2 dx \\
&= -2 \left[ \frac{4}{3}x^3 \right]_{0}^{1} \\
&= -\frac{8}{3}(1^3-0^3) \\
&= -\frac{8}{3}
\end{align}
$$

問題.$4$

$[1]$
面積は下記のように得られる。
$$
\large
\begin{align}
\int_{0}^{2} -(x^2-2x) dx &= -\left[ \frac{1}{3}x^{3} – x^2 \right]_{0}^{2} \\
&= – \left( \frac{8}{3} – 2^2 \right) \\
&= \frac{4}{3}
\end{align}
$$

$[2]$
面積は下記のように得られる。
$$
\large
\begin{align}
\int_{0}^{1} (x-x^2) dx &= \left[ \frac{1}{2}x^{2} – \frac{1}{3}x^3 \right]_{0}^{1} \\
&= \frac{1}{2} – \frac{1}{3} \\
&= \frac{1}{6}
\end{align}
$$

$[3]$
面積は下記のように得られる。
$$
\large
\begin{align}
\int_{0}^{1} x^2 dx + \int_{1}^{2} (x^2-4x+4) dx &= 2 \int_{0}^{1} x^2 dx \\
&= 2 \left[ \frac{1}{3}x^{3} \right]_{0}^{1} \\
&= \frac{2}{3}
\end{align}
$$

$[4]$
面積は下記のように得られる。
$$
\large
\begin{align}
\int_{-2}^{0} (-x^2-(x^2+4x)) dx &= -2 \int_{-2}^{0} (x^2+2x) dx \\
&= 2 \left[ \frac{1}{3}x^{3} + x^{2} \right]_{-2}^{0} \\
&= \frac{8}{3}
\end{align}
$$

数理技能問題

問題.$1$

放物線を$f(x)=ax^2$、点$P$に関して$x=x_p$、点$Q$に関して$x=x_q$のように表す。このとき直線$PQ$の傾きは下記のように表せる。
$$
\large
\begin{align}
\frac{f(x_q)-f(x_p)}{x_q-x_p} &= \frac{ax_q^2 – ax_p^2}{x_q-x_p} \\
&= \frac{a \cancel{(x_q-x_p)} (x_q+x_p)}{\cancel{(x_q-x_p)}} \\
&= a(x_p+x_q) \quad (1)
\end{align}
$$

また、$P$と$Q$の中点が$\displaystyle x=\frac{x_p+x_q}{2}$であるかつ、$f'(x)=2ax$であるので、$P$と$Q$の中点における傾きは下記のように表せる。
$$
\large
\begin{align}
f’ \left( \frac{x_p+x_q}{2} \right) &= 2a \cdot \frac{x_p+x_q}{2} \\
&= a(x_p+x_q) \quad (2)
\end{align}
$$

$(1)$と$(2)$が等しいことから、線分$PQ$と中点における接線の傾きは一致することが示される。

問題.$2$

$f(x)=x^{2}-2x$とおくと、$f'(x)=2x-2$である。ここで点$(a,f(a))$における接線の方程式は下記のように得られる。
$$
\large
\begin{align}
y – f(a) &= f'(a)(x-a) \\
y &= 2(a-1)(x-a) + a^2 – 2a
\end{align}
$$

ここで接線が$(3,-1)$を通るとき下記が成立する。
$$
\large
\begin{align}
-1 &= 2(a-1)(3-a) + a^2 – 2a \\
a^2 – 6a + 5 &= 0 \\
(a-1)(a-5) &= 0
\end{align}
$$

・$a=1$のとき
接線は下記のように得られる。
$$
\large
\begin{align}
y &= 2(a-1)(x-a) + a^2 – 2a \\
&= 2(1-1)(x-1) + 1^2 – 2 \cdot 1 \\
&= -1
\end{align}
$$

・$a=5$のとき
接線は下記のように得られる。
$$
\large
\begin{align}
y &= 2(a-1)(x-a) + a^2 – 2a \\
&= 2(5-1)(x-5) + 5^2 – 2 \cdot 5 \\
&= 8x – 25
\end{align}
$$

問題.$3$

球の中心を$O$、「球の中心から直円錐の底面への垂線」と「底面」の交点を$H$、直円錐の底面の円周上の$1$点を$P$とおく。このとき$\angle POH = \theta$、体積を$V$とおくと、直円錐の体積の公式より$V$は下記のように得られる。
$$
\large
\begin{align}
V &= \frac{1}{3} \pi (R \sin{\theta})^{2} (R + R\cos{\theta}) \\
&= \frac{\pi R^{3}}{3} \sin^{2}{\theta} (1+\cos{\theta}) \\
&= \frac{\pi R^{3}}{3} (1-\cos^{2}{\theta}) (1+\cos{\theta})
\end{align}
$$

上記に対し、$x=\cos{\theta}$とおくと、$V$は下記のように表せる。
$$
\large
\begin{align}
V &= \frac{\pi R^{3}}{3} (1-\cos^{2}{\theta}) (1+\cos{\theta}) \\
&= \frac{\pi R^{3}}{3} (-\cos^{3}{\theta} – \cos^{2}{\theta} + \cos{\theta} + 1) \\
&= \frac{\pi R^{3}}{3} (-x^3-x^2+x+1) \quad (1)
\end{align}
$$

ここで$\displaystyle 0 < \theta < \frac{\pi}{2}$より$0 < x < 1$である。よって、区間$0 < x < 1$における$f(x) = -x^3-x^2+x+1$を最大にする$x$を$(1)$式に代入すれば良い。$f'(x)$は下記のように計算できる。
$$
\large
\begin{align}
f'(x) &= -3x^2 – 2x + 1 \\
&= -(3x^2 + 2x -1) \\
&= -(3x-1)(x+1)
\end{align}
$$

上記より区間$0 < x < 1$における$f(x)$の増減表は下記のように表せる。
$$
\large
\begin{array}{|c|*5{c|}}\hline x & 0 & \cdots & \displaystyle \frac{1}{3} & \cdots & 1 \\
\hline f'(x) & & + & 0 & – & \\
\hline f(x) & & \nearrow & \displaystyle \max & \searrow & \\
\hline
\end{array}
$$

よって$(1)$式に$\displaystyle x = \frac{1}{3}$を代入することで$V$の最大値が下記のように得られる。
$$
\large
\begin{align}
V &= \frac{\pi R^{3}}{3} \left( -\frac{1}{3^3} – \frac{1}{3^2} + \frac{1}{3} + 1 \right) \\
&= \frac{32 \pi R^{3}}{81}
\end{align}
$$

問題.$4$

$[1]$
$$
\large
\begin{align}
\left( \frac{1}{3}(x-\alpha)^{3} \right)’ &= \left( \frac{1}{3}(x^{3} – 3x^{2}\alpha + 3x\alpha^{2} – \alpha^{3}) \right)’ \\
&= x^{2} – 2x \alpha + \alpha^{2} \\
&= (x-\alpha)^{2}
\end{align}
$$

上記より下記が成立する。
$$
\large
\begin{align}
\int (x-\alpha)^{2} dx = \frac{1}{3}(x-\alpha)^{3} + C
\end{align}
$$

$[2]$
下記のように式変形を行うことができる。
$$
\large
\begin{align}
\int_{\alpha}^{\beta} (x-\alpha)(x-\beta) dx &= \int_{\alpha}^{\beta} (x-\alpha)^{2} dx – \int_{\alpha}^{\beta} (\beta-\alpha)(x-\alpha) dx \\
&= \left[ \frac{1}{3}(x-\alpha)^{3} \right]_{\alpha}^{\beta} – \left[ \frac{1}{2}(\beta-\alpha)(x-\alpha)^{2} \right]_{\alpha}^{\beta} \\
&= \frac{1}{3} (\beta-\alpha)^3 – \frac{1}{2} (\beta-\alpha)^3 \\
&= \frac{2-3}{6} (\beta-\alpha)^3 \\
&= -\frac{1}{6} (\beta-\alpha)^3
\end{align}
$$

問題.$5$

$f(x)=x^2-2x+2$とおくと、$f'(x)=2x-2$より、点$(2,2)$における接線の方程式は下記のように表せる。
$$
\large
\begin{align}
y-2 &= f'(2)(x-2) \\
y &= 2(x-2) + 2 \\
&= 2x – 2
\end{align}
$$

よって面積は下記のように計算できる。
$$
\large
\begin{align}
\int_{0}^{2} [(x^2-2x+2) – (2x-2)] dx &= \int_{0}^{2} (x^2-4x+4) dx \\
&= \int_{0}^{2} (x-2)^{2} dx \\
&= \frac{1}{3} \left[ (x-2)^{3} \right]_{0}^{2} \\
&= \frac{1}{3}(0^{3} – (-2)^3) \\
&= \frac{8}{3}
\end{align}
$$

統計検定準1級 問題解説 ~2016年6月実施 選択問題及び部分記述問題 問2~

過去問

過去問題は統計検定公式が問題と解答例を公開しています。こちらを参照してください。

解説

$P(X=1) = P(X=3) = p_1$,$P(X=2) = P(X=4) = p_2$とおく.$E[X] = \dfrac{8}{3}$なので,$p_1\cdot 1 + p_2 \cdot 2 + p_1 \cdot 3 + p_2 \cdot 4 = \dfrac{8}{3}$.また,$2p_1 + 2p_2 = 1$である.これらを解いて,$p_1 = \dfrac{1}{6}$,$p_2 = \dfrac{1}{3}$を得る.

[1] 解答

$\boxed{ \ \mathsf{記述3}\ }$ : $\dfrac{11}{9}$
$V[X] = E[X^2] – E[X]^2$ を利用する.
$$
E[X^2] = \dfrac{1}{6}\cdot1^2 + \dfrac{1}{3} \cdot 2^2+ \dfrac{1}{6}\cdot 3^2 + \dfrac{1}{3} \cdot 4^2= \dfrac{25}{3}
$$
したがって,
$$
V[X] = \dfrac{25}{3} – \left( \dfrac{8}{3}\right)^2 = \dfrac{11}{9}
$$
である.

[2] 解答

$\boxed{ \ \mathsf{記述4}\ }$ : $\dfrac{7}{36}$
$1$ 回目に出た目を $x$,$2$ 回目に出た目を $y$ とすると,$Y=3$ となるのは,$(1,3)$,$(2,3)$,$(3,3)$,$(3,1)$,$(3,2)$ の $5$ 通りのみ.それぞれが起こる確率は $\left(\dfrac{1}{6}\right)^2$,$\dfrac{1}{3}\cdot \dfrac{1}{6}$,$\left(\dfrac{1}{6}\right)^2$,$\left(\dfrac{1}{6}\right)^2$,$\dfrac{1}{3}\cdot \dfrac{1}{6}$ であるから,
$$
P(Y=3) = \left(\dfrac{1}{6}\right)^2\cdot 2 + \dfrac{1}{3}\cdot \dfrac{1}{6}\cdot 2 + \left(\dfrac{1}{6}\right)^2 = \dfrac{7}{36}
$$
である.

Ch.6 「代表的な連続確率分布」の章末問題の解答例 〜数理統計学(共立出版)〜

当記事は「数理統計学(共立出版)」の読解サポートにあたってChapter.$6$の「代表的な連続確率分布」の章末問題の解答の作成を行いました。
基本的には書籍の購入者向けの解説なので、まだ入手されていない方は購入の上ご確認ください。また、解説はあくまでサイト運営者が独自に作成したものであり、書籍の公式ページではないことにご注意ください。

・解答まとめ
https://www.hello-statisticians.com/answer_textbook_math_stat#green

章末の演習問題について

問題6.1の解答例

コーシー分布の確率密度関数を$f(x)$とおくと下記のように表せる。
$$
\large
\begin{align}
f(x) = \frac{1}{\pi(1+x^2)}
\end{align}
$$

「特定の区間の期待値が発散$\, \implies \,$有限の期待値・分散を持たない」であるので、以下では$[0,\infty)$における$xf(x)$の積分が発散することを示す。
$$
\large
\begin{align}
\int_{0}^{\infty} xf(x) dx &= \frac{1}{\pi} \int_{0}^{\infty} \frac{x}{1+x^2} dx \\
&= \frac{1}{2 \pi} \int_{0}^{\infty} \frac{(1+x^2)’}{1+x^2} dx \\
&= \frac{1}{2 \pi} \left[ \log{(1+x^2)} \right]_{0}^{\infty} = \infty
\end{align}
$$

$\displaystyle \int_{0}^{\infty} xf(x) dx = \infty$であるのでコーシー分布は期待値を持たないことが示される。

・類題
現代数理統計学 問$4.10$

問題6.2の解答例

問題6.3の解答例

問題6.4の解答例

確率変数$X$に関して$X \sim F(n_1,n_2)$より、以下が成立する。
$$
\large
\begin{align}
f_{X}(x) = \frac{x^{\frac{n_1}{2}-1}}{B \left( \frac{n_1}{2}, \frac{n_2}{2} \right)} \left( \frac{n_1}{n_2} \right)^{\frac{n_1}{2}} \left( 1+\frac{n_1}{n_2}x \right)^{-\frac{n_1+n_2}{2}}, \quad x > 0
\end{align}
$$

上記に対し、下記のような変数変換を考える。
$$
\large
\begin{align}
Y = \frac{\frac{n_1}{n_2}X}{1+\frac{n_1}{n_2}X}
\end{align}
$$

$\displaystyle y = \frac{\frac{n_1}{n_2}y}{1+\frac{n_1}{n_2}x}$は下記のように$x$に関して解くことができる。
$$
\large
\begin{align}
y &= \frac{\frac{n_1}{n_2}x}{1+\frac{n_1}{n_2}x} \\
y \left( 1+\frac{n_1}{n_2}x \right) &= \frac{n_1}{n_2}x \\
y + y \cdot \frac{n_1}{n_2}x &= \frac{n_1}{n_2}x \\
y &= (1-y) \frac{n_1}{n_2}x \\
x &= \frac{y}{\frac{n_1}{n_2} (1-y)}
\end{align}
$$

上記より$\displaystyle \frac{dx}{dy}$は下記のように計算できる。
$$
\large
\begin{align}
\frac{dx}{dy} &= \frac{\frac{n_1}{n_2} (1-y) – y\frac{n_1}{n_2} \cdot (-1)}{\left( \frac{n_1}{n_2} \right)^{2} (1-y)^2} \\
&= \frac{\frac{n_1}{n_2}}{\left( \frac{n_1}{n_2} \right)^{2} (1-y)^2} \\
&= \frac{1}{\frac{n_1}{n_2} (1-y)^2}
\end{align}
$$

ここで確率変数$Y$に関する確率密度関数を$g_Y(y)$とおくと、変数変換の公式より$g_Y(y)$は下記のように得ることができる。
$$
\large
\begin{align}
g_Y(y) &= f_X(x) \left| \frac{dx}{dy} \right| \\
&= f_X \left( \frac{y}{\frac{n_1}{n_2} (1-y)} \right) \times \frac{1}{\frac{n_1}{n_2} (1-y)^2} \\
&= \frac{\left(\frac{y}{\cancel{\frac{n_1}{n_2}} (1-y)}\right)^{\frac{n_1}{2}-1}}{B \left( \frac{n_1}{2}, \frac{n_2}{2} \right)} \cancel{\left( \frac{n_1}{n_2} \right)^{\frac{n_1}{2}}} \left( 1+\cancel{\frac{n_1}{n_2}} \cdot \frac{y}{\cancel{\frac{n_1}{n_2}} (1-y)} \right)^{-\frac{n_1+n_2}{2}} \times \frac{1}{\cancel{\frac{n_1}{n_2}} (1-y)^2} \\
&= \frac{1}{B \left( \frac{n_1}{2}, \frac{n_2}{2} \right)} \cdot \left(\frac{y}{1-y}\right)^{\frac{n_1}{2}-1} \cdot \left( \frac{1-y+y}{1-y} \right)^{-\frac{n_1+n_2}{2}} \cdot \frac{1}{(1-y)^2} \\
&= \frac{1}{B \left( \frac{n_1}{2}, \frac{n_2}{2} \right)} \cdot \left(\frac{y}{1-y}\right)^{\frac{n_1}{2}-1} \cdot (1-y)^{\frac{n_1+n_2}{2}} \cdot \frac{1}{(1-y)^2} \\
&= \frac{1}{B \left( \frac{n_1}{2}, \frac{n_2}{2} \right)} y^{\frac{n_1}{2}-1} (1-y)^{\frac{n_1+n_2}{2} – \left( \frac{n_1}{2}-1 \right) – 2} \\
&= \frac{1}{B \left( \frac{n_1}{2}, \frac{n_2}{2} \right)} y^{\frac{n_1}{2}-1} (1-y)^{\frac{n_2}{2} – 1}
\end{align}
$$

上記がベータ分布$\displaystyle \mathrm{Be} \left( \frac{n_1}{2}, \frac{n_2}{2} \right)$の確率密度関数に一致する。よって、$\displaystyle Y \sim \mathrm{Be} \left( \frac{n_1}{2}, \frac{n_2}{2} \right)$である。

seabornを利用したデータ可視化(data visualization)の基礎

データの可視化(data visualization)は、データを様々な角度から確認し、データ自体を理解する目的で行われることが多い印象です。探索的データ分析(EDA)と呼ばれることもあります。Pythonを使ってデータを可視化する際に、matplotlibがよく使われていると思います。ですが、matplotlibだけで綺麗で複雑な図を作成するのは難しいことが多いです。 ここでは、matplotlibベースのデータ可視化ライブラリであるseabornの基礎をまとめます。

seabornを利用することで、簡単に綺麗な図を作ることができます。

seaborn

seabornは、Pythonのデータ可視化(data visualization)ライブラリです。matplotlibをベースにしており、レイアウトの指定をしておくと、matplotlibで描くグラフがそれだけで綺麗になります。また、複数のプロットを組み合わせたグラフなどを描画する高度なAPIも提供されています。

詳細は以下の公式ドキュメントを参照してください。公式ドキュメントにあるGallaryを眺めるだけでも楽しいですし、どんなことができるのかわかると思います。

https://seaborn.pydata.org/

seabornの導入

インストール

インストールはpip を利用できます。詳細は下記の公式インストールドキュメントを参照してください。

https://seaborn.pydata.org/installing.html

pipでインストールをするには下記のコマンドを実行します。

pip install seaborn

seabornはじめの一歩

seabornの基本的な利用方法として下記の例を紹介します。

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme()

xs = np.random.normal(size=500)
plt.hist(xs);

matplotlibでヒストグラムを描画しています(matplotlibでのヒストグラムの描画についてはこちらを参照ください)。こちらのコードを実行すると以下のような図が描画されます。

こちらにあるようなmatplotlibを使った通常のグラフと配色などが異なりますね。こちらについて解説します。

import seaborn as sns

この行でseabornをimportしています。

sns.set_theme()

このコマンドによって、本プロセスにおけるmatplotlibseabornで描画する全てのグラフのテーマを設定します。そのため、matplotlibで描画したヒストグラムの配色等が変わってきています。なお、ここでは引数に何も入れていないので、デフォルトテーマが使われます。

詳しくは、以下の公式ドキュメントを参照してください。

https://seaborn.pydata.org/generated/seaborn.set_theme.html

テーマについては、本稿の「レイアウトの指定」にも簡単な解説を記載しています。

基本的なグラフ描画

上記の通り、seabornをインポートしてテーマを設定するだけで、matplotlibで描画するグラフの見た目が改善されます。これだけでもseabornを利用する効果はあるのですが、ここでは、seabornで描画できるグラフの例をいくつか紹介します。

散布図

散布図(lmplot)

ヒストグラム(KDE)

棒グラフ

seabornで特徴的なグラフ描画

散布図行列: pairplot

多変量データのうち二変数同士の組み合わせで散布図を描画することで、どの変数間に相関があるのかを確認する目的で「散布図行列」というものを描くことが多いです。散布図行列をmatplotlibで愚直に描画するには、sub_plotを駆使する必要があり、複雑になります。seabornには、seaborn.pairplotが提供されており、散布図行列を容易に描画することができます。

詳細は以下のドキュメントを確認してください。

データとしてpandas.DataFrame形式のデータが用意できれば、そのデータを入力するだけです。例として、irisデータセットの散布図行列を描画します。

import seaborn as sns

df_iris = sns.load_dataset("iris")
sns.pairplot(df_iris);

上記のコードを実行すると下記のようなグラフが描画されます。

irisデータセットは、4つの数値データとあやめ(iris)の種類を表す列(species)で構成されます。なお、データセットの取得(seaborn.load_dataset)については、後述の「豊富なデータセット」を確認してください。

species列はobject型(カテゴリデータ)なので、その他の4つの変量の2つの組み合わせの散布図が描画されています。対角成分には、各変量のヒストグラムが描かれています。

seaborn.pairplotのオプションパラメータとして、hueでカテゴリ変数を指定すると、指定したカテゴリで色分けがされます。

df_iris = sns.load_dataset("iris")
sns.pairplot(df_iris, hue="species");

上記のコードを実行すると以下のような図が描画されます。

アヤメの種類の分類に寄与する変量としてどのようなものが適切か容易に確認できます。

[参考]

jointplot

heatmap

覚えておくと良いポイント

レイアウトの指定

seabornでは、グラフの配色やフォントサイズなどを一括で変更できる seaborn.set_theme が提供されています。詳細は公式ドキュメントを参照ください。ここでは、よく使うcontextstylepalette について解説します。

context

contextは、描画要素のスケールを指定します。

設定はプリセットを呼び出す形式で、「paper, notebook, talk, poster」のいずれかを入力します。デフォルトはnotebookが選択されます。

paper, notebook, talk, posterの順にスケールが拡大されていきます。

sns.set_theme()
xs = np.random.normal(size=500)
plt.hist(xs);

このコードを実行すると下記のグラフが描画されます。

次に、talkを指定してみます。

sns.set_theme(context="talk")
plt.hist(xs);

下記のようなグラフが描画されます。

フォントサイズが変わっているのがわかります。

style

styleは描画の背景の色やグリッド線の有無などを指定するプリセットが用意されています。

指定できるパラメータは、darkgrid, whitegrid, dark, white, ticks で、デフォルトでは、darkgridが指定されます。

例として、whitegridを指定する場合は下記のようになります。

sns.set_theme(style="whitegrid")
plt.hist(xs);

上記コードを実行すると下記のようなグラフが描画されます。

背景色が白になります。

palette

paletteでは、カラーパレットを指定できます。

指定できる値は、seabornのパレット名(deep, muted, bright, pastel, dark, colorblind)、matplotlibのカラーマップ名(こちらを参照)などが指定できます。詳しくは公式ドキュメントを参照してください。

例として、以下のコードを紹介します。

sns.set_theme(palette="pastel")
plt.hist(xs);

上記コードを実行すると以下のような図が描画されます。

[参考]

カラーパレットの指定

カラーパレットは上記のように、全体のテーマを一括で設定できます。カラーパレットで指定される色はseaborn.color_paletteで取得できます。

複数のグラフをプロットする場合など、描画要素を追加する毎に自動で色が遷移します。しかし、色の指定を明示的にしたい場合には、以下のようにカラーコードを格納しておくと便利です。

c_list = sns.color_palette("deep").as_hex()
print(c_list)

上記のコードを実行すると、下記のような出力が得られます。

この例では、c_list変数にdeepで指定される10種類の色が16進数で格納されます。グラフを描画する際にこの値を指定できます(下記)。

x = [0, 1, 2, 3, 4, 5]
y1 = [0, 2, 1, 3, 2, 4]
y2 = [4, 2, 3, 1, 3, 2]
plt.plot(x, y1, color=c_list[2])
plt.plot(x, y2, color=c_list[1])

上記のコードを実行すると以下のような図が描画されます。

下記のようにリストのindexが色の種類の範囲を超えないように指定できます。(seabornに限った話ではありませんが)

n_color = len(c_list)
ys = np.random.normal(size=15)
for i, y in enumerate(ys):
    plt.bar(i, y, color=c_list[i%n_color])

上記のコードを実行すると下記のような図が描画されます。

色のローテーションができていることがわかります。

カラーパレットについてさらに詳しくは、以下のチュートリアルなどを参照してください。

[参考]

豊富なデータセット

seabornでは色々なデータセットが用意されており、それらのデータセットを取得できるAPIが提供されています。

例えば、有名なトイデータであるアヤメの種類に関するデータセット(iris)を取得するには下記のようにします。

iris = sns.load_dataset("iris")

これで、pandas.DataFrame形式でデータセットを取得することができます(下記)。

取得できるデータセットは、以下のリポジトリのCSVファイル名を指定できます。

https://github.com/mwaskom/seaborn-data

また、データセット名を取得するためのseaborn.get_dataset_namesも用意されています。

[参考]

まとめ

参考

MCMC法〜メトロポリス法・HMC・NUTS etc〜|問題演習で理解する統計学【19】

下記などで取り扱った、MCMCについて問題演習を通した理解ができるように問題・解答・解説をそれぞれ作成しました。

・標準演習$100$選
https://www.hello-statisticians.com/practice_100

基本問題

メトロポリス・ヘイスティングス法

ギブス・サンプリング

発展問題

最尤法・ベイズ推定・MCMCの活用

・問題
入門書などでのMCMC法の解説は通常の最尤法やベイズ推定と同時に取り扱われることが少ないので、この問題では以下、最尤法やベイズ推定と並行でMCMC法の基本的な流れを演習形式で具体的に確認を行う。下記の問いにそれぞれ答えよ。
i) ポアソン分布$\mathrm{Po}(\lambda)$に基づいて観測値$x_1,\cdots,x_n$が得られたと考えられる際に、パラメータ$\lambda$の推定を試みる。$x_1,\cdots,x_n$を元に尤度$L(\lambda)$を表せ。ポアソン分布の確率関数$p(x)$は下記のように表されることを用いて良い。
$$
\begin{align}
p(x) &= \frac{\lambda^{x} e^{-\lambda}}{x!} \\
&= \exp{(x \log{\lambda} – \lambda – \log{x!})}
\end{align}
$$

ⅱ) i)で確認を行なった尤度$L(\lambda)$を元に対数尤度$\log{L(\lambda)}$を計算し、$\lambda$で微分を行うことで$L(\lambda)$を最大にする$\lambda$を求めよ。
ⅲ) ⅱ)では最尤法に基づいて$\lambda$の点推定を行なったが、サンプルが少ない場合は$\lambda$の事前分布を元に事後分布を得るベイズ法を用いる場合が多い。ベイズ法を行う際にポアソン分布に基づく推定のようにシンプルな場合は共役事前分布を用いることで式変形に基づいて結果を得ることができる。
得られる観測値がポアソン分布に従う場合、パラメータ$\lambda$の共役事前分布はガンマ分布に従う。ガンマ分布$\mathrm{Ga}(\alpha,\beta)$の確率密度関数を変数$\lambda$に関して$f(\lambda)$とおくとき、$f(\lambda)$を表せ。
iv) パラメータ$\lambda$の事後分布を$P(\lambda|x_1,\cdots,x_n)$とおくとベイズの定理に基づいて$P(\lambda|x_1,\cdots,x_n) \propto L(\lambda)f(\lambda)$が成立する。i)とⅲ)の結果を用いて$P(\lambda|x_1,\cdots,x_n)$を計算し、$\lambda$の事後分布を答えよ。
v) ⅲ)、iv)ではパラメータ$\lambda$の共役事前分布$\mathrm{Ga}(\alpha,\beta)$を元に事後分布の導出を行なったが、実際は複雑な式を仮定することが多く共役事前分布が得られることが少ない。このような場合にMCMC法を用いる。
観測値$x_1=2, x_2=3, x_3=1$が得られた時、i)の式を目標分布、$\lambda$の初期値を$\lambda_0=2$、提案分布を$\lambda_{n+1} \sim \mathcal{N}(\lambda_{n},0.2^2)$とおく。このときMCMC法を用いて実際にサンプルを生成せよ。

・解答
i)
尤度$L(\lambda)$は下記のように表せる。
$$
\large
\begin{align}
L(\lambda) &= \prod_{i=1}^{n} p(x_i) \\
&= \prod_{i=1}^{n} \exp{(x_i \log{\lambda} – \lambda – \log{x_i!})} \\
&= \exp{\left( \sum_{i=1}^{n} (x_i \log{\lambda} – \lambda – \log{x_i!}) \right)}
\end{align}
$$

別解
下記のように表しても良い。
$$
\large
\begin{align}
L(\lambda) &= \prod_{i=1}^{n} p(x_i) \\
&= \prod_{i=1}^{n} \frac{\lambda^{x_i} e^{-\lambda}}{x_i!} \\
&= \lambda^{\sum_{i=1}^{n} x_i} e^{-n \lambda} \left( \prod_{i=1}^{n} x_i! \right)^{-1}
\end{align}
$$

ⅱ)
対数尤度$\log{L(\lambda)}$は下記のように表せる。
$$
\large
\begin{align}
\log{L(\lambda)} &= \log{\left[ \exp{\left( \sum_{i=1}^{n} (x_i \log{\lambda} – \lambda – \log{x_i!}) \right)} \right]} \\
&= \sum_{i=1}^{n} (x_i \log{\lambda} – \lambda – \log{x_i!})
\end{align}
$$

上記を$\lambda$で偏微分を行うと下記が得られる。
$$
\large
\begin{align}
\frac{\partial \log{L(\lambda)}}{\partial \lambda} &= \frac{\partial}{\partial \lambda} \sum_{i=1}^{n} (x_i \log{\lambda} – \lambda – \log{x_i!}) \\
&= \sum_{i=1}^{n} \left( \frac{x_i}{\lambda} – 1 \right) \\
&= \frac{n(\bar{x}-\lambda)}{\lambda}
\end{align}
$$

上記の式変形にあたっては$\displaystyle \bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i$を用いた。上記が$\lambda$に関して単調減少であることから、$\lambda=\bar{x}$で$\log{L(\lambda)}$は最大値を取る。よって$L(\lambda)$を最大にする$\lambda$は$\lambda=\bar{x}$である。

ⅲ)
変数$\lambda$に関する確率密度関数$f(\lambda)$は下記のように表せる。
$$
\large
\begin{align}
f(\lambda) = \frac{1}{\beta^{\alpha} \Gamma(\alpha)} \lambda^{\alpha-1} \exp{\left( -\frac{\lambda}{\beta} \right)}
\end{align}
$$

iv)
パラメータ$\lambda$の事後分布$P(\lambda|x_1,\cdots,x_n) \propto L(\lambda)f(\lambda)$は下記のように計算できる。
$$
\large
\begin{align}
P(\lambda|x_1,\cdots,x_n) & \propto L(\lambda)f(\lambda) \\
&= \lambda^{\sum_{i=1}^{n} x_i} e^{-n \lambda} \left( \prod_{i=1}^{n} x_i! \right)^{-1} \times \frac{1}{\beta^{\alpha} \Gamma(\alpha)} \lambda^{\alpha-1} \exp{\left( -\frac{\lambda}{\beta} \right)} \\
& \propto \lambda^{\alpha + \sum_{i=1}^{n} x_i – 1} \exp{\left[ -\left( n+\frac{1}{\beta} \right) \lambda \right]} \\
&= \lambda^{\alpha + \sum_{i=1}^{n} x_i – 1} \exp{\left[ -\left( \frac{n \beta + 1}{\beta} \right) \lambda \right]} \\
&= \lambda^{\alpha + \sum_{i=1}^{n} x_i – 1} \exp{\left[ – \frac{\lambda}{\beta/(n \beta + 1)} \right]}
\end{align}
$$

よってパラメータ$\lambda$の事後分布はガンマ分布$\displaystyle \mathrm{Ga} \left( \alpha + \sum_{i=1}^{n} x_i , \frac{\beta}{n \beta + 1} \right)$である。

v)
下記より、MCMC法に基づいてパラメータの分布を得ることができる。

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

np.random.seed(0)

lamb = 2.
x = np.array([2., 3., 1.])

def calc_target_dist(lamb):
    return lamb**(np.sum(x)) * np.e**(-x.shape[0]*lamb)

lambs = np.zeros(10000)

for i in range(11000):
    y = stats.norm.rvs(0,0.2)
    alpha = np.min([1.,calc_target_dist(lamb+y)/calc_target_dist(lamb)])
    u = np.random.rand()
    if alpha > u:
        lamb = lamb+y
    if (i+1)>1000:
        lambs[i-1000] = lamb

plt.hist(lambs,bins=25)
plt.show()

実行結果

・解説
下記などを参考に作成を行いました。

ハミルトニアンモンテカルロ(HMC)

NUTS(No U-Turn Sampler)

数学検定2級 解説 〜公式問題集 解説&解答 Ch.3「直線・円の方程式」〜

数学検定$2$級は数ⅡBまで相当の数学の基本トピックに関して取り扱った検定であり、統計学に必要な数学を身につける際の指標に役に立ちます。当記事では「日本数学検定協会 監修」の「数学検定問題集 $2$級」より、第$3$章の「直線・円の方程式」の解説と演習問題の解答例などを取り扱いました。

・数学検定$2$級まとめ
https://www.hello-statisticians.com/math_certificate_2

本章のまとめ

演習

計算技能問題

問題.$1$

$[1]$
傾きが$2$の直線は$y=2x+b$のように表せる。この直線が$(1,-2)$を通ることより下記が成立する。
$$
\large
\begin{align}
-2 &= 2 \cdot 1 + b \\
b &= -4
\end{align}
$$

よって$y=2x-4$が得られる。

$[2]$
直線の傾きは下記のように得られる。
$$
\large
\begin{align}
\frac{5-(-1)}{4-2} &= \frac{6}{2} \\
&= 3
\end{align}
$$

ここで直線$y=3x+b$が$(2,-1)$を通ることで下記が成立する。
$$
\large
\begin{align}
-1 &= 3 \cdot 2 + b \\
b &= -7
\end{align}
$$

よって$y=3x-7$が得られる。

問題.$2$

下記のように$a$の値が得られる。
$$
\large
\begin{align}
\frac{-2-6}{3-(-1)} &= \frac{2-6}{a-(-1)} \\
\frac{-8}{4} &= \frac{-4}{a+1} \\
-2 &= \frac{-4}{a+1} \\
a+1 &= 2 \\
a &= 1
\end{align}
$$

問題.$3$

問題.$4$

問題.$5$

$x^2+y^2-4x+2y+1=0$は下記のように変形できる。
$$
\large
\begin{align}
x^2 + y^2 – 4x + 2y + 1 &= 0 \\
(x-2)^2 + (y-1)^{2} – 2^2 – 1^2 + 1 &= 0 \\
(x-2)^2 + (y-1)^{2} &= 2^2
\end{align}
$$

上記より円の中心は$(2,1)$、半径は$2$である。

問題.$6$

$x-y+1=0$より$y=x+1$を$x^2+y^2=5$に代入すると下記が得られる。
$$
\large
\begin{align}
x^2 + y^2 &= 5 \\
x^2 + (x+1)^2 &= 5 \\
x^2 + x^2 + 2x + 1 &= 5 \\
2(x^2+x-2) &= 0 \\
(x+2)(x-1) &= 0
\end{align}
$$

上記より$x=-2,1$が得られる。よって直線と円の交点は$(-2,-1), (1,2)$である。

問題.$7$

$\sqrt{3^2+4^{2}}=5$より、中心が$(3,4)$で半径が$5-3=2$の円が該当する。よって円の方程式は下記のように表せる。
$$
\large
\begin{align}
(x-3)^2 + (y-4)^2 = 2^2
\end{align}
$$

数理技能問題

問題.$1$

問題.$2$

問題.$3$

問題.$4$

問題.$5$

問題.$6$

問題.$7$

問題.$8$

統計検定準1級 問題解説 ~2016年6月実施 選択問題及び部分記述問題 問1

過去問題

過去問題は統計検定公式が問題と解答例を公開しています。こちらを参照してください。

解答

[1] 解答

$\boxed{ \ \mathsf{記述1}\ }$ : $0.2$

変動係数 $={標準偏差 }/{ 平均}$ であるから
$$\dfrac{11}{55} = 0.2$$
である.

[2]解答

$\boxed{ \ \mathsf{記述2}\ }$ : $12.0$
餌を変えた後の変動係数を $x$ とおく.変動係数は餌を変える前と後で変化しないので

$$
\dfrac{x}{60} = 0.2
$$

が成り立つ.よって$x=12.0$である.