回帰直線の求め方をやさしく解説|最小二乗法による切片・傾きの導出手順

Pocket

回帰分析における回帰直線の具体的な導出手順を初心者向けにわかりやすく解説!

当連載コラム「これならわかる多変量解析入門」では、第1回(多変量解析の基本「回帰分析」を初心者向けに解説)で回帰分析の概要について、また第3回(多変量解析に必要な統計基礎を解説)でデータのばらつきについて説明しました。

今回は、ばらつきのあるデータにつきどのようにして回帰直線の係数(切片と傾き)が計算されるのかについて、出来るだけわかりやすく解説します。

 

1.回帰直線の切片と傾きを計算するために必要な残差平方和

5組のデータ(xi,yi)(i=1~5)を例にとり、回帰直線 ŷ = a + bx の切片(a)と傾き(b)を求めます。

ŷ は「ワイ・ハット」と呼ばれ、yの推定値を示します。実測値 yᵢ とその推定値 ŷᵢ は一般には異なり、その差を「残差(residual)」と呼びます。個々の残差は eᵢ = yᵢ − ŷᵢ と書くことができます。

また個々のデータを yᵢ = a + bxᵢ + eᵢ と書くこともできます。図1はデータ、残差、回帰直線の関係を視覚化した図になります。

 

データ(xᵢ, yᵢ)、残差eᵢ = yᵢ − ŷᵢおよび回帰直線ŷ = a + bxの関係
【図1 データ (xᵢ, yᵢ)、残差 eᵢ = yᵢ − ŷᵢ、および回帰直線 ŷ = a + bx の関係】

 

回帰直線の切片と傾きは、残差平方和(residual sum of squares)が最小となるように決めます。この方法は、皆さんもご存じの最小二乗法(method of least squares)の名前で知られています。

すべてのデータの残差をできるだけ小さくしたいのですが、残差eᵢは正の値も負の値も取ります。そのため残差の和をそのまま最小化すると正の値と負の値が相殺されてしまい変動の指標として適切でないケースが発生します。そのため、すべての残差を平方して0以上の値とし、その和を最小化するようにします。その和は「残差平方和」と呼ばれます。第5回で取り上げた偏差平方和と同様に、「差を二乗して足し合わせる」という考え方を用いますが、偏差平方和が平均との差を用いるのに対し、残差平方和では回帰直線による推定値との差を用います。

残差平方和 SSresidual は以下の式で表されます。

残差平方和 (式1)

残差がすべてゼロの場合のみ残差平方和はゼロとなり、すべての観測データが回帰直線上にあることを示します。

 

2.残差平方和を最小化する回帰直線の切片と傾きの式

結果を先に示すと、回帰直線 ŷ = a + bx の傾きと切片は以下の式から求めることができます。
(※ここでは、xの値がすべて同じではなく、xにばらつきがある場合を考えます。)

回帰直線の傾き (式2)

a = ȳ − bx̄ (式3)

ここで、x̄とȳはそれぞれxᵢとyᵢの平均値です。

xᵢの平均値 (式4)
yᵢの平均値 (式5)

 

3.残差平方和を最小化する回帰直線の切片と傾きの導出手順

多くの参考書は(式2)と(式3)を載せていますが、どのような手順で(式2)と(式3)が導出できるのかの手順はあまり記載されていません。このコラムでは具体的な導出手順を説明します。

ある評価値を最大化・最小化することは、多変量解析の分野でとても重要な技術です。式変形が少し煩雑になりますので、苦手な方は導出の考え方だけでも理解していただければ有用だと思います。

まず、式変形の最後に利用する関係式を準備しておきます。
第5回のコラム「共分散と相関係数の考え方」で偏差積和Sxyと共分散Vxyを学習しました。
共分散Vxyは次の式のように変形できます。

共分散Vxy (式6)
Vxx (式7)

さてここから残差平方和 SSresidual を変形していきます。(式1)の右辺の2乗を展開します。

残差平方和SSresidual (式8)

(式8)の中に出てくるすべてのbを定数とみなすと、SSresidual はaに関する2次式(a2のある項、aのある項とそれ以外の項の和)とみなすことができ、2次の項(式8の2番目の項)の係数nは正の値です。

今度は(式8)の中に出てくるすべてのaを定数とみなすと、SSresidual はbに関する2次式(b2のある項、bのある項とそれ以外の項の和)で、2次の項(式8の3番目の項)の係数2次の項(式8の3番目の項)の係数も正の値です。

高校の数学で、xの2次関数 y = dx² + ex + f のグラフの形を勉強したのを覚えているでしょうか?
もしdが正の値であれば2次関数のグラフは図2のように「下に凸」の形になり、×印の点で最小値を取ります。

aとbの値は独立して自由に設定することができますので、aを横軸とみなした2次関数が最小値を取ると同時に、bを横軸とみなした2次関数も最小値を取るように、aとbの組を計算することができればその組が SSresidual を最小にする切片と傾きの値となります。

さて図2の2次関数の最小値を求めるにはどうしたら良いでしょうか?
2次関数の最小値を取る点では接線の傾きが必ずゼロ(接線が横軸と平行)になります。

 

下に凸な2次関数
【図2 下に凸な2次関数】
×印:最小値の位置、破線:最小値の位置における接線

 

aを横軸とみなした2次関数の接線の傾きがゼロとなる条件は、(式8)をaで偏微分した値がゼロになることを意味します。同様に、bを横軸とみなした場合は、(式8)をbで偏微分した値がゼロになることを意味します。
したがって、残差平方和が最小となるaとbは、次の2つの条件を同時に満たします。
式で書くとそれぞれ以下のようになります。

assresidual/aa=0 (式9)

aSSresidual/ab=0 (式10)

(式9)の条件より、
残差平方和を変形1 (式11)

(式10)の条件より、
残差平方和を変形2 (式12)

(式11)を2で割って平均値を表すx̄とȳを用いて整理すると、
na − nȳ + bnx̄ = 0 (式13)

さらに変形すると、
ȳ = a + bx̄ (式14)

これは切片aを求める(式3)と同じです。この後説明する手順でbが先にわかればx̄とȳの値を用いることで切片aを計算できます。

この時点で興味深いのは、(式14)から、回帰直線がxiとyiの平均値を座標とする点 (x̄, ȳ) を必ず通ることがわかる点です。

次に、(式12)に(式14)のaを代入して(式12)をbだけの式に書き換えると、以下のように変形していきます。

残差平方和を変形3 (式15)

さらに(式15)の最右辺をbを求める式に変形します。

残差平方和を変形4 (式16)

(式16)の分子は、(式6)の最右辺にnを掛けた式と同じであり、分母は(式7)の最右辺にnを掛けた式と同じです。そこで、さらに分子を(式6)の中間項に置き換え、分母を(式7)の中間項に置き換えると、(式2)と同じ以下の式が得られます。

残差平方和を変形5 (式17)

これで回帰直線 ŷ = a + bx の係数(切片aと傾きb)を求める式にやっとたどり着きました。

 

4.まとめ

今回のコラムでは回帰直線の係数(切片と傾き)がどのような手順で計算できるのかを見てきました。
ある評価値を最大あるいは最小にする条件およびその変数の値を計算する考え方はいろいろな課題に応用できます。考え方だけでも覚えておきましょう。

 

(アイアール技術者教育研究所 A・T)

 

 

Pocket

関連するセミナー

製造業eラーニングTech e-L講座リスト

製造業向けeラーニングライブラリ

アイアール技術者教育研究所の講師紹介

製造業の新入社員教育サービス

技術者育成プログラム策定の無料相談受付中

スモールステップ・スパイラル型の技術者教育

技術の超キホン

機械設計マスターへの道

生産技術のツボ

早わかり電気回路・電子回路

早わかり電気回路・電子回路

品質保証塾

機械製図道場

スぺシャルコンテンツ
Special Contents

導入・活用事例

テキスト/教材の制作・販売