概要
「回帰分析」は、ある数値(売上・点数・アクセス数など)が、別の数値(広告費・勉強時間・気温など)とどんな直線関係にあるかを数式で表す分析です。
Excel の LINEST 関数は、この「最もよく当てはまる直線」を最小二乗法で求め、その直線の傾きや切片、さらに統計量まで返してくれる“回帰分析専用関数”です。
LINEST 関数の基本
構文と意味
LINEST の基本構文は次のとおりです。
=LINEST(既知のy, 既知のx, [定数], [統計])
「既知のy」は結果(目的変数)、「既知のx」は説明する側(説明変数)です。定数 は切片 b を計算に含めるかどうか(省略または TRUE で「含める」)、統計 は追加の統計量を返すかどうか(省略または FALSE で「傾きと切片だけ」)を指定します。
LINEST は本来「配列を返す関数」ですが、「傾きだけ」「傾きと切片だけ」を取りたいときは、1 セルまたは 2 セルに入力して使うこともできます。
一番シンプルな回帰分析(単回帰:y = mx + b)
データの前提と「傾き・切片」を求める式
次のようなデータを考えます。
A 列:x(説明変数。例:広告費)
B 列:y(目的変数。例:売上)
A2:A11 に 10 個の x、B2:B11 に 10 個の y が入っているとします。
このとき、「y = mx + b」の m(傾き)と b(切片)を求める最も基本的な書き方は次の 2 つです。
傾きだけを 1 セルで取りたい場合(例:D2):
=INDEX(LINEST($B$2:$B$11,$A$2:$A$11),1)
傾きと切片を 2 セルに並べて取りたい場合(例:D2 に傾き、E2 に切片):
D2 に
=INDEX(LINEST($B$2:$B$11,$A$2:$A$11),1)
E2 に
=INDEX(LINEST($B$2:$B$11,$A$2:$A$11),2)
と書く形が、初心者には一番わかりやすいです。
(配列数式として一気に出す方法もありますが、まずは「INDEX で 1 要素ずつ取り出す」スタイルから慣れるのがおすすめです。)
求めた回帰式で「予測値」を計算する
たとえば、D2 に傾き m、E2 に切片 b が入ったら、
「x が F2 に入っているときの予測 y」を G2 に出す式はこうなります。
=$D$2*F2+$E$2
これで、「回帰直線に基づく予測値」を好きな x に対して計算できます。
「広告費を 200 にしたら売上はいくらくらいになりそうか」といった“ざっくり予測”に使えます。
LINEST の配列出力をちゃんと使うパターン
傾き・切片だけを配列で受け取る
LINEST は本来「配列を返す関数」なので、傾きと切片を一度に取りたい場合は、横に 2 セル選択してから数式を入力する方法もあります。
たとえば、D2:E2 を選択した状態で、数式バーに次を入力します。
=LINEST($B$2:$B$11,$A$2:$A$11)
そのまま Enter ではなく、(古いバージョンなら)Ctrl+Shift+Enter で確定すると、
D2 に傾き m、E2 に切片 b が一度に入ります。
(新しい Excel ではスピル機能により、通常の Enter でも配列が展開される場合があります。)
追加の統計量も取りたい場合
統計 引数を TRUE にすると、決定係数 R² や標準誤差など、回帰分析の統計量も一緒に返してくれます。
たとえば、D2:G6 のように 5 行×4 列程度の範囲を選択し、
=LINEST($B$2:$B$11,$A$2:$A$11,TRUE,TRUE)
と入力して配列数式として確定すると、
上段に「傾き・切片」、下段に「標準誤差・R²・F 値・自由度・平方和」などが並びます。
最初は「R²(決定係数)」だけ見られれば十分で、「1 に近いほど回帰直線がデータにフィットしている」と覚えておくとよいです。
複数の説明変数を使う回帰(重回帰)のイメージ
既知の x を「列が複数ある範囲」として渡す
LINEST は、x が 1 列だけでなく、複数列ある場合にも対応しています。
たとえば、
A 列:広告費
B 列:来店客数
C 列:売上
というデータがあり、「売上(C)」を「広告費(A)」と「来店客数(B)」の 2 つで説明したい場合、
既知の y は C2:C11、既知の x は A2:B11 という 2 列範囲になります。
傾きと切片を配列で取りたい場合は、D2:F2 の 3 セルを選択し、
=LINEST($C$2:$C$11,$A$2:$B$11)
と入力して配列数式として確定します。
このとき、D2 に「来店客数の係数」、E2 に「広告費の係数」、F2 に「切片」が入る、といった並びになります(列の順番に注意)。
例題
問題1
A2:A11 に「広告費」、B2:B11 に「売上」が入っています。
この 2 列を使って、売上を広告費の一次関数「y = mx + b」で近似したいとします。
- 傾き m を 1 セル(D2)に取り出す式を、
LINESTとINDEXを使って書いてください。 - 切片 b を 1 セル(E2)に取り出す式も書いてください。
- その m と b を使って、「広告費が F2 に入っているときの予測売上」を G2 に出す式を書いてください。
問題2
A2:A11 に x、B2:B11 に y が入っているとき、D2:E2 を選択してから LINEST を配列数式として入力し、
D2 に傾き、E2 に切片を一度に出したいとします。
- 数式バーに入力すべき式を書いてください。
- その式を確定するときに、通常の Enter と何が違うかを説明してください(古い Excel を想定して構いません)。
問題3
A2:A11 に「広告費」、B2:B11 に「来店客数」、C2:C11 に「売上」が入っています。
売上を「広告費」と「来店客数」の 2 つで説明する重回帰を LINEST で行い、
D2:F2 に「係数・係数・切片」を配列として出したいとします。
- D2:F2 を選択した状態で、数式バーに入力すべき式を書いてください。
- その結果として、D2・E2・F2 にはそれぞれ何が入るかを、列の意味と合わせて説明してください。
問題4
LINEST の第 3 引数「定数」を FALSE にすると、「切片 b を 0 と仮定して回帰直線を求める」動きになります。
A2:A11 に x、B2:B11 に y が入っているとき、切片を 0 に固定した回帰を行う式を書いてください。
また、「切片を 0 にする」ことが意味を持ちそうな現実の例を 1 つ挙げてみてください。
問題5
CORREL は「2 つの変数が一緒に動いているかどうか」を見る関数で、LINEST は「その関係を直線の式として具体的に表す」関数です。
相関係数だけを見る場合と、回帰式(y = mx + b)まで求める場合とで、
「何がわかるようになるか」「どんな場面で回帰式まで欲しくなるか」を、自分の言葉で整理してみてください。
