注目キーワード

線形回帰:「線形単回帰」と「線形重回帰」をマスターしよう!

「線形回帰」とは?~線形単回帰と線形重回帰~

実験計画法を用いたデータ駆動型の研究開発は、企業研究者が最短で目標達成するのに必要なスキルです。
データ駆動型の研究プロセスの中で、花形とも言える「モデリング」には様々な手法があります。

 

今回、モデリングの中でも最も基本的な線形回帰(Linear Regression)について解説していきます。
単純な「線形単回帰」から「線形重回帰」への拡張を丁寧に解説します。

「データサイエンスを化学研究に活用したい」「実験計画法を使いこなせるようになりたい」といった初学者向けの記事です。
ぜひ本記事を読んで、モデリングの最初の一歩を踏み出してください!

なお、実験計画法を用いた研究プロセスの全体像は以下の記事で解説しているので、まだの方はご一読ください。
モデリングの位置づけがより明確になります。

関連記事

実験計画法は企業研究者に必須の技術 多くの場合、企業研究者の研究開発には目標とする性能や水準があります。 その目標に対してどういうアプローチで研究開発を進めるか、というのは研究者のセンスが問われるところです。 本記事では、複雑な目[…]

線形回帰の位置づけ

データ駆動型の研究プロセスでは、目標性能yに対して、変数Xを使って以下を目指すことになります。

「y = f(X) のモデルを作って、目標を達成する最適条件を見つけよう!」

モデルを作るとは、yと変数Xの関係を明らかにする、と言い換えることができます。
そして、この「f(X)」には様々な型・種類があり、モデルに求める解釈性と精度によって使い分けます。

基本的にモデルの解釈性と精度は下図の通りトレードオフの関係になっています。

今回の線形回帰は解釈性が高い比較的単純なモデルです。
単純ですが、化学分野では非常に使用頻度が高いものなので、しっかり理解していきましょう!

線形単回帰

線形回帰の中でも最も単純なものが線形単回帰です。
まずはここから始めましょう。

線形単回帰の定義と特徴

線形単回帰は以下の式で表されます。

これ、皆さん知っていますよね!中学校で習う一次関数ってやつです。
yを一つの変数xで説明しようとするのが線形単回帰です。

いくつかのデータを取って、そこから傾きaと切片b を求めます。
つまり、線形単回帰は「x-y二次元プロットに対して、直線でフィッティングする」ということになります。

化学者であれば、この線形単回帰は日常的に使っていると思います。
例えば、何かしらの検量線です。
yを濃度、xをスペクトル強度として、濃度を調整したサンプルでいくつかのデータを取り、線形単回帰によって検量線を作っていますよね。

その検量線をもとに、未知サンプルのスペクトル強度から濃度を推測する。
これって正に、「学習データを使って作ったモデルから未知データを予測する」という手順そのものなんですね。

最小二乗法でフィッティング

では、学習データからどのように傾きaと切片bを求めるのでしょうか。
それは「最小二乗法」という方法を用います。

これも皆さん、エクセルで実践している方がほとんどだと思います。
エクセルで検量線を作るとき、slope()やintercept()関数を使って傾きと切片を求めると思いますが、エクセル内部では最小二乗法を使っています。

最小二乗法の考え方は「フィッティングした直線と実験データの誤差を最小化するように傾き(=係数)、切片を求める」というものです。
ここでの「誤差」とは下図のことです。

全ての実験データとフィッティングした直線の誤差、正確には誤差を二乗したものを合計します。
この合計値が最小になるように計算していき、最終的に傾きと切片が求まります。
ここでは、どのように最小になるように計算していくかの説明は割愛します。

この最小二乗法によるフィッティングは線形回帰に共通した手法です。
ここから、線形単回帰を線形重回帰に拡張していきますが、最終的にフィッティングする手法は同じ最小二乗法になります。

線形重回帰

さて、線形単回帰は理解できたと思います。しかし、こんな疑問が湧くと思います。

目標としている性能に影響しそうな因子が複数あるけど、その時はどうしたらいいの?」

そうです、線形重回帰の出番です。

線形単回帰から重回帰への拡張

変数が1つの「線形単回帰」から、変数が2つ以上になると「線形重回帰」と呼ばれます。
線形重回帰の一般式は次の通りです。

例えば「ある反応の収率を最大化したい」という課題に直面した時、収率に影響しそうな因子は反応時間や温度、触媒量、基質濃度、触媒種など複数存在します。
それらの因子を定数倍して足し合わせて収率を算出しようとするのが線形重回帰になります。

「なんだ、それだけか」「変数が増えただけか」と感じると思います。
単純ですが、変数が増えるということが何を意味するのか、もう少し考えていきます。

直線から平面に:次元の拡張

線形単回帰は説明変数が1つで、線形重回帰は2つ以上になります。
これは、「yを説明変数1つではうまく表現できないから、yをうまく表現できるように説明変数を増やす」と解釈することができます。

もう少し数学的な解釈を試みます。
線形単回帰は上で図示したように、x-y2次元プロット上で直線でフィッティングします。

では、説明変数が2つの以下式の場合はどうでしょう。

この場合、各変数とyとの2次元プロット上では何となく相関(図では正の相関)は見えますが、いずれもうまくyを説明できていません。
そこで、次元を拡張してy-x1-x2の3次元プロット上で平面でフィッティングしてみます。
すると、データをうまく表現する平面が描けました。

このように、線形重回帰で変数を増やしていくことは、「フィッティングの次元を1次元(直線)から、2次元(平面)や3次元(立体)へと上げていくこと」と解釈できます。
4次元以上は頭ではイメージできませんが、考え方は同じです。
この考え方は大事なので、しっかりと理解しておきましょう。

「線形」の意味

最後に線形重回帰の「線形」が何を意味するのか説明しておきます。

線形重回帰の「線形」とは、「変数同士の関係が加算・減算・定数倍だけで表現されている」という意味です。
線形重回帰の下記一般式を思い出すと、上の意味と一致していることが分かるかと思います。

一方、「線形」という言葉には「まっすぐな関係」という意味もありますよね。
これと混在しないように注意してください。

本記事で扱ったグラフは全て「まっすぐな関係」、つまり直線や平面で表現されるものでした。
しかし、化学で扱う現象は「まっすぐな関係」ばかりではなく、極大や極小を持ったり、どこかで飽和するような「曲がった関係」もありますよね。

実はこのような「曲がった関係」も線形重回帰で表現できます。
「曲がった関係」を「線形」重回帰で表現する?と混乱するかもしれませんが、線形重回帰の「線形」は冒頭説明した意味なので、「まっすぐな関係」しか表現できないわけではありません。

ちょっと混乱しそうな言葉の定義の話でしたが、しっくりくるまで何度か読み返してみてください。

「まっすぐな関係」から「曲がった関係」への拡張は別記事でまとめる予定です。

おわりに

今回、線形回帰の基礎について解説しました。
最も単純な線形単回帰から、線形重回帰への拡張、それが意味することを丁寧に追っていきました。

線形回帰は基本的に最小二乗法を使ってフィッティングすることや、「説明変数を増やす = フィッティングの次元を上げる」という考え方はとくに重要です。

別の記事で、この線形回帰をPythonで実装する方法についても開設予定ですので、楽しみにしていてください!

最新情報をチェックしよう!