回帰分析のご紹介

●はじめに

人工知能(AI;Artificial Intelligence)ということばを耳にする機会が多くなってきました。
人工知能というものを端的に説明するのはとても難しいですが、世の中に役立つしくみに使われている印象があります。

私自身、人工知能について学んでいる最中のため、うまく説明できるかわかりませんが、人工知能の基礎となる機械学習、機械学習の中でも基本的な理論となる回帰分析とよばれるものを紹介したいと思います。

 

●回帰分析とは

回帰分析は変数の関係を関係式で表現することを試みる手法です。
回帰分析によって集積した実績値から見込まれる成績を推測することができます。

たとえば、過去の実績値として「住宅価格」と「間取り(部屋数)」を使用する場合は、「住宅価格」と「間取り」の関係を直線(「住宅価格」を「間取り」の1次式)で表現することができれば、その直線を用いて「間取り」から「住宅価格」を推測することができます。

また「住宅価格」を推測する際に必要な実績値として「間取り」以外にも「駅からの距離」や「商業施設までの距離」あるいは「犯罪発生率」などを含めて予測したいかもしれません。その場合は実績値の数に応じた関係式を表現する必要があります。

 

●線形回帰の理論①(できるだけ数式を用いずに説明)

回帰分析のひとつの手法として線形回帰とよばれるものがあります。

線形回帰はたくさんある実績値同士の関係を各変数の1次式で表現するものです。

この式を「回帰方程式」とよびます。

(x11,…,xmn, y1,…,ynは実測値で、nはサンプル数、mはデータの個数を表しています(厳密にはデータ数はm-1個))

 

線形回帰では実績値にできるだけ沿うように、回帰方程式中のa1,a2,…,amの値を決定することを目標にします。

このa1,a2,…,amの値を「回帰係数」とよびます。

 

実績値にできるだけ沿う回帰方程式を求める方法のひとつとして、回帰方程式から得られる値と実績値の差(「残差」)を最小にすることを考えます。

2次方程式の最小値が曲線の底(「極値」)となることを利用して、すべての残差の二乗和が最小になるときの「回帰係数」を算出します。

こうして得られる「回帰係数」を用いて表現した「回帰方程式」がたくさんある実績値同士の関係式となります。

 

●線形回帰の理論②(数式を用いて説明)

●例

scikit-learnのサイトにある「ボストン住宅価格データセット」を用いて回帰分析を試みます。

MEDV(住宅価格(単位は$1000))を13個の実測値(CRIM, ZN, … , LSTAT)を説明変数とした回帰方程式で表します。

(出典:https://scikit-learn.org/stable/datasets/index.html#boston-dataset)

 

– ボストンの住宅価格

「ボストン住宅価格データセット」には下記のようなデータが含まれています。

 

– 回帰方程式の導出

実績値から回帰方程式を導出します。

回帰係数は取得した変数を用いて次のように算出することができます。

 

– 予測値の算出

導出した回帰方程式を用いて予測値を算出します。

ここでは説明変数が下記の値の時の目的変数の値を算出します。

 

– scikit-learnのメソッドを利用する方法

上記では回帰係数を手計算することで回帰方程式を導出しましたが、scikit-learnに用意されているメソッドを使用することでも回帰方程式を導出することができます。

回帰係数を出力することにより、先ほどの手計算と同じ結果が得られることを確認できました。(cf. 回帰方程式の導出)

 

●補足

「線形回帰の理論②」で使用した用語を以下に記します。

「回帰分析」:説明変数と目的変数の関係を定式化する手法

「目的変数」:回帰分析において予測したい値を表す変数

「説明変数」:目的変数の値に影響がある(と仮定する)変数

「線形回帰」:回帰分析の手法のひとつで、線形の回帰方程式によって説明変数と目的変数の関係を表す方法

(ここでの線形ということばの説明が難しいのですが、各変数の一次式で表現できる方程式と考えてください)

「回帰方程式」:目的変数と説明変数の関係式

●おわりに

機械学習の古典的アルゴリズムのひとつとして回帰分析を紹介しました。

この予測が適切かどうかを判断したり、より精度の高い予測をするためにはさらに統計学や機械学習の知識が必要です。
機械学習ひいては人工知能についての学びを深めて、世の中に役立つしくみづくりに携わりたいと思います。