sh1’s diary

プログラミング、読んだ本、資格試験、ゲームとか私を記録するところ

最小二乗法による原点を通る回帰直線式の作り方

最小二乗法による回帰直線は、測定で得られた数値の組から、想定する(作成する)関数が測定値に対して好ましい・よい近似となるように、残差の二乗和を最小とするような係数を作成します。

前の記事で、通常の回帰直線  y=ax+b の求め方について説明しましたので、この記事では補足として原点を通る回帰直線がどのように作られているのか整理します。

原点を通る回帰直線式 ax の求め方

まず、当然ですが原点を通るということは、y 軸の高さを持ちません。これは b の値を持たないということです。(  b = 0 )なので、原点を通る回帰直線式は y=ax について考えればよいということです。

n 個のデータ (x _ {1}, y _ {1}) \dots (x _ {n}, y _ {n}) を、 y =ax の式に当てはめて、理論値  \hat y _ {i} が得られたとします。これを  \hat y _ {i} = ax _ {i} と定義します。

{
\begin{eqnarray}
S_{E} &=& (y_{1} - \hat y_{1})^2 + \dots + (y_{i} - \hat y_{i})^2 + \dots + (y_{n} - \hat y_{n})^2 \\
&=& \sum_{i=1}^{n} (y_{i} - ax_{i})^{2} \tag{1}
\end{eqnarray}
}


式が単純になったので y=ax+b の回帰直線式よりも簡単です。(1) 式を展開してみます。

{
\begin{eqnarray}
S_{E} &=& \sum (y_{i}^{2} - 2ax_{i}y_{i} + (ax_{i})^2) \\
&=& \sum y_{i}^2 -2a \sum x_{i} y_{i} + a^{2} \sum (x_{i})^2 \tag{2}
\end{eqnarray}
}


S _ {E} が最小になる a を求めるためには、(2) 式を a で微分して、\frac{dS _ {E}}{da}=0 になる a を求めます。(導関数を参考にする)

f:id:shikaku_sh:20191026104447p:plain:w300
最小にするイメージはこんなの

{
\begin{eqnarray}
\require{cancel}
\frac{dS_{E}}{da} &=& -2\sum x_{i}y_{i}+2a\sum (x_{i})^2 = 0 \\
2a \sum (x_{i})^2 &=& +2\sum x_{i}y_{i} \\
a &=& \frac{\cancel{2} \sum x_{i}y_{i}}{\cancel{2} \sum(x_{i})^{2}} \\
&=& \frac{\sum x_{i}y_{i}}{\sum x_{i}^{2}} \tag{3}
\end{eqnarray}
}


よって、(3) から、a の値を求めることができます。

{
\begin{equation}
a = \frac{\sum x_{i}y_{i}}{\sum x_{i}^{2}}
\end{equation}
}


原点を通る回帰直線の相関係数  R ^ {2} について

原点をとおる回帰直線は、相関係数  R ^ {2} は通常適用することができません。Prism のレポートにその理由が説明してあります。

Prism does not report r2 when you force the line through the origin (or any other point), because the calculations would be ambiguous. There are two ways to compute r2 when the regression line is constrained. As you saw in the previous section, r2 is computed by comparing the sum-of-squares from the regression line with the sum-of-squares from a model defined by the null hypothesis. With constrained regression, there are two possible null hypotheses. One is a horizontal line through the mean of all Y values. But this line doesn't follow the constraint -- it does not go through the origin. The other null hypothesis would be a horizontal line through the origin, far from most of the data.
Because r2 is ambiguous in constrained linear regression, Prism doesn't report it. 1

ただし、平均と同じで対称性を持つ場合は、重心を持つため相関係数を持てそうです。三平方の定理なんかは x と y の対称性がわかりやすい。三角形の重心を求める式も平均ですね。対称性を持つことが大切。

{
\begin{equation}
R = \sqrt {(x-m)^2 + (y - m)^2 }
\end{equation}
}


原点からの変動を測った式として  R ^ {2} の代替として次の式が紹介されています 2 が、通常は相関係数を考えません。

{
\begin{equation}
R^2 = 1 - \frac{\sum ^n _{i=1}(y_i - \hat y_i)^2}{\sum ^n _{i=1} y ^2 _i}
\end{equation}
}


どうしても相関係数が気になる場合は、回帰直線が重心を通過するかどうかを証明する計算を添えておくとよいと思います。

{
\begin{eqnarray}
\frac{1}{n} \sum ^n _{i=1} e_i &=& \frac{1}{n} \sum (y_i - \hat y_i) \\
&=& \frac{1}{n} \sum (y_i - \frac{\sum ^n _{j=1} x_j y_j}{\sum ^n _{j=1} x^2_j}x_i) \\
&=& \bar y - \frac{\sum ^n _{j=1} x_j y_j}{\sum ^n _{j=1} x^2_j} \bar x
\end{eqnarray}
}


計算結果が0のとき、重心  (\bar x, \bar y) を通過する。計算結果が0ではないとき、 R ^ {2} の信頼性は低下するといった感じ。


参考

数値解析 (技術者のための高等数学)

数値解析 (技術者のための高等数学)