はじめに
得られたデータを把握する際「相加平均」は必ずと言っていいほど計算される値である。
また得られたデータが(x, y)で表される場合、x と y の関係を推定するために「回帰曲線(回帰関数)」を求めることもよく行われていることである。
この回帰曲線(回帰関数)の求め方は種々あるが、最小二乗法で求められるも多い。
本稿は最小二乗法で求められる回帰曲線(回帰関数)が持つ性質と、相加平均との類似性を考察する。
そして考察の結果として、
最小二乗法による回帰関数は相加平均の関数への拡張のひとつである。
(最小二乗法で求まる回帰関数は相加平均の関数版である)
ということを明らかにする。
相加平均の性質
相加平均
\{x_n\}=\{x_1, x_2, \cdots, x_n\} という値の集合に対し、相加平均 \bar{x} は以下で定義される。
\begin{aligned}
\bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i
\end{aligned}
次にこの値と各値との関係を見る。
相加平均と各値との関係
相加平均 \bar{x} と各値 x_i との関係を調べるにあたりその差に着目し、これらの合計を計算する。
\begin{aligned}
\sum_{i=1}^{n} (x_i - \bar{x})
&=
\sum_{i=1}^{n} \left( x_i - \frac{1}{n} \sum_{j=1}^{n} x_j \right) \\
&=
\sum_{i=1}^{n} x_i - \frac{1}{n} \sum_{i=1}^{n} \sum_{j=1}^{n} x_j \\
&=
\sum_{i=1}^{n} x_i - \frac{1}{n} \cdot n \sum_{j=1}^{n} x_j \\
&=
\sum_{i=1}^{n} x_i - \sum_{j=1}^{n} x_j \\
&=
0
\end{aligned}
と結果は0になる。
したがって、
「相加平均」 ⇒ 「各値との差の合計が0」
(「相加平均」であれば「各値との差の合計が0」)
が言える。
ではこの逆はどうか確かめよう。
各値との差の合計が0になるような値が存在するとして、その値を \hat{x} とする。
\begin{aligned}
\sum_{i=1}^{n} (x_i - \hat{x} ) &= 0 \\
\sum_{i=1}^{n} x_i - \sum_{i=1}^{n} \hat{x} &= 0 \\
\sum_{i=1}^{n} x_i - n \cdot \hat{x} &= 0 \\
\\
\therefore \quad \hat{x} = \frac{1}{n} \sum_{i=1}^{n} x_i
\end{aligned}
これは相加平均である。
つまり \bar{x} = \hat{x} 。
したがって、
「各値との差の合計が0」 ⇒ 「相加平均」
(「各値との差の合計が0」であれば「相加平均」である)
が言える。
先の結果と合わせて、この2つは必要十分条件であることが分かった。
「相加平均」 ⇔ 「各値との差の合計が0」
これが相加平均の性質である。
最小二乗法による回帰関数の導出
最小二乗法による回帰関数の導出を記載する。
導出の前提
導出に際し以下の前提を置く。
-
各データ (x_i, y_i) は回帰関数 f(x) と正規分布 N(0,\sigma^2) に従う誤差 \varepsilon を用いて
y_i = f(x_i) + \varepsilon
と表される。
-
回帰関数 f(x) は既知の関数 g_i(x) の線形結合
f(x) = \sum_{i=0}^{m-1} a_i g_i(x)
で表される。
-
データ数 n、回帰関数の線形結合の項数 m は、
であるとする。
係数の導出による回帰関数の決定
データ (x_i, y_i)_{i=\{1,2,\cdots, n\}} の x と y の関係を尤もらしく表す回帰関数とするため、次の二乗誤差を最小とするような係数を求める。
つまり、二乗誤差を最小とするような関数が尤もらしい回帰関数であるとする。
J = \sum_{i=1}^{n} (f(x_i) - y_i)^2
今、求める未知数は線形結合の各係数 \{a_i\} であり、これらが求まれば回帰関数 f(x) は一意に定まる。
従って J は\{a_i\} の多変数関数 J(a_0,a_1, \cdots, a_{m-1}) と見做せる。
J をある一つの係数 a_k の関数と捉えた場合(他の係数を固定して考えた場合)、
\begin{aligned}
J(a_k) &= (f(x_1) - y_1)^2 + \cdots + (f(x_k) - y_k)^2 + \cdots + (f(x_n) - y_n)^2 \\
&=
(f(x_k))^2 - 2y_k f(x_k) + y_k^2 + \cdots \\
&=
g(x_k)^2 \cdot a_k^2 -2y_k g(x_k) \cdot a_k + C
\end{aligned}
であり、a_k の係数は正なのでこのグラフは下に凸となる。
これは全係数に対して言えるので、この多変数関数 J(a_0,a_1, \cdots, a_{m-1}) は下に凸の多変数関数であり、各 a_i に対して二次関数なので「極値=最小値」である。
よって、J を最小とするためには、各 a_i で微分してそれを0と置いた連立方程式を解けば良い。
\begin{aligned}
\frac{\partial J}{\partial a_k}
&=
\frac{\partial}{\partial a_k} \left\{ \sum_{i=1}^{n}(f(x_i)-y_i)^2 \right\} \\
&=
\frac{\partial}{\partial a_k}\left\{\sum_{i=1}^{n}\left(\sum_{j=0}^{m-1}a_jg_j(x_i)-y_i\right)^2\right\} \\
&=
2\sum_{i=1}^{n}\left(\sum_{j=0}^{m-1}a_jg_j(x_i)-y_i\right)\frac{\partial}{\partial a_k}\left(\sum_{j=0}^{m-1}a_jg_j(x_i)-y_i\right) \\
&=
2\sum_{i=1}^{n}\left(\sum_{j=0}^{m-1}a_jg_j(x_i)-y_i\right)g_k(x_i) \\
&=
2\sum_{i=1}^{n}\sum_{j=0}^{m-1}a_jg_j(x_i)g_k(x_i)-2\sum_{i=1}^{n}y_ig_k(x_i) \\
&=
0 \\
\\
∴ &\sum_{i=1}^{n}\sum_{j=0}^{m-1}a_jg_j(x_i)g_k(x_i)=\sum_{i=1}^{n}y_ig_k(x_i)
\end{aligned}
\scriptsize{
\begin{aligned}
\begin{bmatrix}
\sum_{i=1}^{n}\sum_{j=0}^{m-1}a_jg_j(x_i)g_0(x_i) \\
\sum_{i=1}^{n}\sum_{j=0}^{m-1}a_jg_j(x_i)g_1(x_i) \\
\vdots \\
\sum_{i=1}^{n}\sum_{j=0}^{m-1}a_jg_j(x_i)g_{m-1}(x_i)
\end{bmatrix}
&=
\begin{bmatrix}
\sum_{i=1}^{n}y_ig_0(x_i) \\
\sum_{i=1}^{n}y_ig_1(x_i) \\
\vdots \\
\sum_{i=1}^{n}y_ig_{m-1}(x_i)
\end{bmatrix}
\\
\begin{bmatrix}
g_0(x_1) & g_0(x_2) & \cdots & g_0(x_n) \\
g_1(x_1) & g_1(x_2) & \cdots & g_1(x_n) \\
\vdots & \vdots & \ddots & \vdots \\
g_{m-1}(x_1) & g_{m-1}(x_2) & \cdots & g_{m-1}(x_n) \\
\end{bmatrix}
\begin{bmatrix}
g_0(x_1) & g_1(x_1) & \cdots & g_{m-1}(x_1) \\
g_0(x_2) & g_1(x_2) & \cdots & g_{m-1}(x_2) \\
\vdots & \vdots & \ddots & \vdots \\
g_0(x_n) & g_1(x_n) & \cdots & g_{m-1}(x_n) \\
\end{bmatrix}
\begin{bmatrix}
a_0 \\
a_1 \\
\vdots \\
a_{m-1}
\end{bmatrix}
&=
\begin{bmatrix}
g_0(x_1) & g_0(x_2) & \cdots & g_0(x_n) \\
g_1(x_1) & g_1(x_2) & \cdots & g_1(x_n) \\
\vdots & \vdots & \ddots & \vdots \\
g_{m-1}(x_1) & g_{m-1}(x_2) & \cdots & g_{m-1}(x_n) \\
\end{bmatrix}
\begin{bmatrix}
y_1 \\
y_2 \\
\vdots \\
y_n
\end{bmatrix}
\\
G^{t} G \boldsymbol{a} &= G^{t} \boldsymbol{y}
\end{aligned}
}
この G^{t} G \boldsymbol{a} = G^{t} \boldsymbol{y} は正規方程式と呼ばれる。
G^{t}G は m \times m の正方行列である。
この正方行列が正則行列なら逆行列が存在する。
その場合、
\boldsymbol{a} = (G^{t}G)^{-1} G^{t} \boldsymbol{y}
により全ての係数が求まる。
以上で回帰関数 f(x) が求まった。
回帰関数の性質
回帰関数と各値との関係
最小二乗法で求めた回帰関数 f(x) とデータ (x_i, y_i)_{i=\{1,2,\cdots, n\}} との関係を見てみる。
相加平均のところで行ったのと同じように、回帰関数と各データの y値との差を全て足し合わせる。
\scriptsize{
\begin{aligned}
\sum_{i=1}^{n} (f(x_i) - y_i)
&= \sum_{i=1}^{n} f(x_i) - \sum_{i=1}^{n} y_i \\
&= \sum_{i=1}^{n} \sum_{j=1}^{m} a_j g_j(x_i) - \sum_{i=1}^{n} y_i \\
&=
\begin{bmatrix}
1 & 1 & \cdots & 1
\end{bmatrix}
\begin{bmatrix}
g_1(x_1) & g_2(x_1) & \cdots & g_m(x_1) \\
g_1(x_2) & g_2(x_2) & \cdots & g_m(x_2) \\
\vdots & \vdots & \ddots & \vdots \\
g_1(x_n) & g_2(x_n) & \cdots & g_m(x_n)
\end{bmatrix}
\begin{bmatrix}
a_1 \\ a_2 \\ \vdots \\ a_m
\end{bmatrix}
-
\begin{bmatrix}
1 & 1 & \cdots & 1
\end{bmatrix}
\begin{bmatrix}
y_1 \\ y_2 \\ \vdots \\ y_n
\end{bmatrix}
\\
&= \boldsymbol{e}^{t} G \boldsymbol{a} - \boldsymbol{e}^{t} \boldsymbol{y} \\
&= \boldsymbol{e}^{t} (G \boldsymbol{a} - \boldsymbol{y})
\end{aligned}
}
ここでこの回帰関数 f(x) の係数を決定した正規方程式を変形すると、
\begin{aligned}
G^{t} G \boldsymbol{a} &= G^{t} \boldsymbol{y} \\
G^{t}(G \boldsymbol{a} - \boldsymbol{y}) &= O
\end{aligned}
(G \boldsymbol{a} - \boldsymbol{y}) はn次元縦ベクトルで、一般に 0 ベクトルではない。
データ値の y と回帰関数の値には通常残差 \varepsilon があるからである。
また、既知関数 g_i(x) から得られる G も一般に零行列ではない。
\begin{aligned}
(G \boldsymbol{a} - \boldsymbol{y}) &\neq \boldsymbol{0} \\
G &\neq O
\end{aligned}
よってこの式より、 G^{t} と (G \boldsymbol{a} - \boldsymbol{y}) は互いに互いの零因子である。
零因子であるならば、 (G \boldsymbol{a} - \boldsymbol{y}) は G^{t} のどの行ベクトルとも直行する。
すなわち、G^{t} の行ベクトルによって張られるベクトル空間 V に対し、(G \boldsymbol{a} - \boldsymbol{y}) はVのいずれかの直行補空間 V^{\perp} に属する。
(G \boldsymbol{a} - \boldsymbol{y}) \in V^{\perp}
いま知りたいのは \boldsymbol{e}^{t} (G \boldsymbol{a} - \boldsymbol{y}) の値がどうなるかであるが、これはベクトル \boldsymbol{e} と G の関係がどうであるかに依る。
ベクトル \boldsymbol{e} が G^{t} の行ベクトルによって張られるベクトル空間 V に属するならこの値は0、属さないならば不明である。
\begin{aligned}
\boldsymbol{e} \in V &\implies \boldsymbol{e}^{t} (G \boldsymbol{a} - \boldsymbol{y}) = 0 \\
\boldsymbol{e} \notin V &\implies \boldsymbol{e}^{t} (G \boldsymbol{a} - \boldsymbol{y}) = unknown
\end{aligned}
\boldsymbol{e} \notin V の場合が不明なのは、V の直行補空間 V^{\perp} は一般に一意に定まらないからである。
V とは別のベクトル空間 U をとり、\boldsymbol{e} \notin V であって \boldsymbol{e} \in U である場合、(G \boldsymbol{a} - \boldsymbol{y}) \in U^{\perp} であることは一般に否定もされなければ肯定もされない。
さてここで回帰関数 f(x) が定数項を持つ場合を考える。
この場合、線形結合の初項は
\begin{aligned}
\sum_{j=0}^{m-1} a_j g_j(x)
&=
a_0 g_0(x) + \sum_{j=1}^{m-1} a_j g_j(x) \\
&=
a_0 \cdot x^0 + \sum_{j=1}^{m-1} a_j g_j(x) \\
&=
a_0 \cdot 1 + \sum_{j=1}^{m-1} a_j g_j(x) \\
\end{aligned}
と考えることができ、g_0(x) = 1 となるので、G^{t} の行ベクトルの第一行は \boldsymbol{e}^{t} となる。
G^{t} =
\begin{bmatrix}
1 & 1 & \cdots & 1 \\
g_1(x_1) & g_1(x_2) & \cdots & g_1(x_n) \\
\vdots & \vdots & \ddots & \vdots \\
g_{m-1}(x_1) & g_{m-1}(x_2) & \cdots & g_{m-1}(x_n)
\end{bmatrix}
これより、\boldsymbol{e} は V に属することがわかる。
従って、
\boldsymbol{e} \in V \\
(G \boldsymbol{a} - \boldsymbol{y}) \in V^{\perp}
より、
\begin{aligned}
\boldsymbol{e}^{t} (G \boldsymbol{a} - \boldsymbol{y})
&=
\sum_{i=1}^{n} (f(x_i) - y_i) \\
&= 0
\end{aligned}
以上より、回帰関数が定数項を持つ場合、各データの y 値と回帰関数との差の合計は 0 になることが分かった。
回帰関数と相加平均の類似性
回帰関数と各データの y 値との差の合計が 0 になることが分かった。
これは相加平均と各データとの差の合計が 0 になることと同じことのように思える。
つまり「相加平均の関数への拡張が回帰関数である」という主張である。
この主張はどこまで正しいだろうか。
相加平均の場合は、各値との差の合計が 0 である値は必ず相加平均であり、これらは必要十分条件であった。
回帰関数が相加平均の拡張であるならば、各データの y 値との差の合計が 0 になる関数は必ず最小二乗法で求められる回帰関数になるのであろうか。
つまり、上で行ったことの逆は成立し、必要十分条件となるだろうか。
以下で確かめてみることにする。
必要性と十分性の検証
先に
「最小二乗法による回帰関数」 ⇒ 「各データの y 値との差の合計は0」
となることは見た。
ではこの逆
「各データの y 値との差の合計は0」 ⇒ 「最小二乗法による回帰関数」
がどうなるか確認する。
最小二乗法で回帰関数を求めた前提となる条件
\begin{aligned}
y_i &= f(x_i) + \varepsilon \\
f(x) &= \sum_{i=0}^{m-1} a_i g_i(x) \\
n &\geqq m
\end{aligned}
は今回も同じとする。
また f(x) は定数項を持つとする。
f(x) = a_0 + \sum_{i=1}^{m-1} a_i g_i(x)
さてデータ y 値との差の合計は以下で、0とおく。
\scriptsize{
\begin{aligned}
\sum_{i=1}^{n} \left( f(x_i) - y_i \right)
&=
\sum_{i=1}^{n}\sum_{j=0}^{m-1} a_j g_j(x_i) - \sum_{i=1}^{n} y_i \\
&=
\begin{bmatrix}
1 & 1 & \cdots & 1
\end{bmatrix}
\begin{bmatrix}
g_0(x_1) & g_1(x_1) & \cdots & g_{m-1}(x_1) \\
g_0(x_2) & g_1(x_2) & \cdots & g_{m-1}(x_2) \\
\vdots & \vdots & \ddots & \vdots \\
g_0(x_n) & g_1(x_n) & \vdots & g_{m-1}(x_n)
\end{bmatrix}
\begin{bmatrix}
a_0 \\ a_1 \\ \vdots \\ a_{m-1}
\end{bmatrix}
-
\begin{bmatrix}
1 & 1 & \cdots & 1
\end{bmatrix}
\begin{bmatrix}
y_1 \\ y_2 \\ \vdots \\ y_n
\end{bmatrix}
\\
&=
\boldsymbol{e}^{t} G \boldsymbol{a} - \boldsymbol{e}^{t} \boldsymbol{y} \\
&=
\boldsymbol{e}^{t}(G \boldsymbol{a} - \boldsymbol{y}) \\
&= 0
\end{aligned}
}
すでに述べたとおり、一般に (G \boldsymbol{a} - \boldsymbol{y}) は零ベクトルではない。
ということは、今回は \boldsymbol{e} と (G \boldsymbol{a} - \boldsymbol{y}) が直行しているような場合を考えることになる。
これは n 次元空間内でベクトル \boldsymbol{e} と直行するようなベクトルを考えることと同じである。
ベクトル (G \boldsymbol{a} - \boldsymbol{y}) はベクトル \boldsymbol{e} に直行するベクトル全ての集合の部分集合に属する。
\begin{aligned}
\boldsymbol{e} \perp \boldsymbol{v} \implies \boldsymbol{v} \in V \\
(G \boldsymbol{a} - \boldsymbol{y}) \in U \subseteq V
\end{aligned}
ここでの V, U はベクトル空間ではなく集合である。
そのようなベクトルは無数に存在する。
すなわち、解は一意に存在しない。
いま気になることは、このベクトル (G \boldsymbol{a} - \boldsymbol{y}) が属する集合 U が最小二乗法で作り出される集合と同一かどうかである。
これを次に調べよう。
最小二乗法によって算出される係数をベクトル \boldsymbol{b} で表し、この \boldsymbol{b} によって作られるベクトル (G \boldsymbol{b} - \boldsymbol{y}) 全ての集合を W で表す。
(G \boldsymbol{b} - \boldsymbol{y}) \in W
最小二乗法で算出されるベクトル \boldsymbol{b} は算出過程でもわかるように正規方程式 G^{t} G \boldsymbol{b} = G^{t} \boldsymbol{y} を満たし、これらは必要十分条件である。
また、いまは f(x) は定数項を持つとしているので、G^{t} の第一行の行ベクトルは \boldsymbol{e} と同じである。
したがって、
G^{t} (G \boldsymbol{b} - \boldsymbol{y}) = O
より、
(G \boldsymbol{b} - \boldsymbol{y}) \in V
さらに、最小二乗法も今回の想定関数 f(x) も同じ
\sum_{i=0}^{m-1} a_i g_i(x)
で表されることから、
(G \boldsymbol{b} - \boldsymbol{y}) \in U
したがって、
がわかる。
一方、以下の場合を考える。
\begin{aligned}
\begin{bmatrix}
1 & 1 & \cdots & 1 \\
g_1(x_1) & g_1(x_2) & \cdots & g_1(x_n)
\end{bmatrix}
(G \boldsymbol{a} - \boldsymbol{y})
&=
\begin{bmatrix}
\boldsymbol{e}^{t} \\
\boldsymbol{g}^{t}
\end{bmatrix}
(G \boldsymbol{a} - \boldsymbol{y}) \\
&=
\begin{bmatrix}
0 \\ c
\end{bmatrix}
\qquad
(c \neq 0)
\end{aligned}
つまり、
\begin{aligned}
\boldsymbol{e}^{t} (G \boldsymbol{a} - \boldsymbol{y}) &= 0 \\
\boldsymbol{g}^{t} (G \boldsymbol{a} - \boldsymbol{y}) &= c \quad (c \neq 0)
\end{aligned}
いまこの係数 \boldsymbol{a} は最小二乗法で求めたものとは限らないので、このような場合も存在する。
このベクトル (G \boldsymbol{a} - \boldsymbol{y}) は一行目により U に属することが言える。
\boldsymbol{e}^{t} (G \boldsymbol{a} - \boldsymbol{y}) = 0 \\
\therefore \quad (G \boldsymbol{a} - \boldsymbol{y}) \in U
しかし、二行目によって W には属さない。
なぜならば \boldsymbol{g}^{t} は正規方程式での G^{t} の二行目と同じであり、正規方程式ではこの内積は 0 でなければならない。
しかし今はある値 c である。
よって W には属さない。
\boldsymbol{g}^{t} (G \boldsymbol{a} - \boldsymbol{y}) = c \\
\therefore \quad (G \boldsymbol{a} - \boldsymbol{y}) \notin W
したがって、W は U の真部分集であることがわかった。
以上より、
「最小二乗法による回帰関数」 ⇒ 「各データの y 値との差の合計は0」
は成り立つが、逆は成り立たないことが分かった。
相加平均の時は差の合計が 0 になることは必要十分条件であったが、最小二乗法を用いた回帰関数の場合は十分条件のみである。
これは、差の合計が 0 になる回帰関数の求め方が最小二乗法だけではないことを示している。
よって、
最小二乗法による回帰関数は相加平均の関数への拡張のひとつ
であると言えるだろう。
最小二乗法による回帰関数は相加平均の拡張ではあるが、相加平均の拡張にあたる関数は他にもあるということである。
これで冒頭の疑問が解消された。
相加平均と差の二乗和を最小にする値
これまで最小二乗法による回帰関数と相加平均の類似性を見てきた。
最小二乗法は回帰関数と各 y 値との差の二乗和を最小にするように回帰関数を求めた。
その観点から今度は、各値との差の二乗和を最小にするように求めた値はどのような値になるだろうか。
J = \sum_{i=1}^{n} (x_i - \hat{x})^2
最小二乗法の時と同じように、この J は下に凸の二次関数であり未知変数は \hat{x} であるので、J を最小値とするために微分して 0 と置くことでこの \hat{x} を求める。
\begin{aligned}
\frac{dJ}{d \hat{x}} &= -2 \sum_{i=1}^{n} (x_i - \hat{x}) \\
&= 0 \\
\\
\sum_{i=1}^{n} (x_i - \hat{x}) &= 0 \\
\sum_{i=1}^{n} x_i - \sum_{i=1}^{n} \hat{x} &= 0 \\
\sum_{i=1}^{n} x_i - n \hat{x} &= 0 \\
\\
\therefore \quad \hat{x} &= \frac{1}{n} \sum_{i=1}^{n} x_i
\end{aligned}
これは相加平均である。
また、逆も成り立つ。
\begin{aligned}
\frac{dJ}{d \hat{x}} &= -2 \sum_{i=1}^{n} (x_i - \hat{x}) \\
&= -2 \left \{ \sum_{i=1}^{n} x_i - \sum_{i=1}^{n} \hat{x} \right \} \\
&= -2 \left \{ \sum_{i=1}^{n} x_i - n \hat{x} \right \} \\
&= -2 \left \{ \sum_{i=1}^{n} x_i - n \cdot \frac{1}{n} \sum_{i=1}^{n} x_i \right \} \\
&= 0
\end{aligned}
まとめ
相加平均と最小二乗法による回帰関数との類似性について考察した。
● 相加平均は各値との差の合計が 0 になるただ唯一の値である。
● 上記は必要十分条件である。
● 最小二乗法による回帰関数は相加平均の関数への拡張のひとつである。
- 各データの y 値との差の合計が 0 になる関数は最小二乗法による回帰関数意外にも存在する。
- 最小二乗法による回帰関数と各データの y 値との差の合計は 0 になる。
最小二乗法による回帰関数を相加平均の拡張と捉えられることから、データへの知見がさらに拡がることが期待される。
以上。
Discussion