ExcelのLINEST関数の使い方|線形回帰の係数を求める方法

スポンサーリンク

「売上データから成長率を数値で出したいけど、グラフの近似曲線だけだと正確な値がわからない…」そんな経験はありませんか。ExcelのSLOPE関数やINTERCEPT関数で傾き・切片は出せますが、回帰モデルの精度まではわかりませんよね。

ExcelのLINEST関数を使えば、最小二乗法による線形回帰の傾き・切片だけでなく、決定係数R²やF統計量まで一括で取得できます。この記事では基本構文から統計情報の読み解き方、FORECAST.LINEAR関数と組み合わせた予測の手順まで丁寧に解説しますよ。

LINEST関数とは?どんなときに使う関数か

LINEST関数は「リネスト」と読みます。LINear + ESTimate(線形推定)が語源です。

LINEST関数は、既存のデータに y = mx + b という線形回帰モデルをあてはめ、傾き(m)と切片(b)を返す関数です。mはxが1増えたときにyがいくつ変化するかを表し、bはx=0のときのyの値を意味しています。

たとえば広告費と売上の関係を調べたとき、m=2.5と出たら「広告費を1万円増やすごとに売上が2.5万円増える」という関係がわかります。bは広告費ゼロのときのベース売上ですね。

LINEST関数は予測値そのものではなく「回帰モデルの中身」を返す関数です。予測値がほしい場合はFORECAST.LINEAR関数TREND関数と組み合わせて使います。

SLOPE関数・INTERCEPT関数との違い

傾きだけならSLOPE関数、切片だけならINTERCEPT関数でも求められます。ただし、これらの関数では回帰モデルの精度(R²やF値)はわかりません。

LINEST関数は「傾き・切片・統計情報」をまとめて返せる点が最大の強みです。回帰分析の結果を一括で確認したいときに使ってください。

LINEST関数の構文と4つの引数

基本構文

=LINEST(既知のy, [既知のx], [定数], [補正])

LINEST関数は配列数式として動作します。Excel 2021・Microsoft 365では、結果が複数セルに自動展開(スピル)されます。Excel 2019以前は、Ctrl + Shift + Enter での確定が必要です。

引数の一覧

引数必須/省略可説明
既知のy必須回帰の対象となるyの値(売上・利用者数など)
既知のx省略可yに対応するxの値。省略すると {1, 2, 3, …} の連番が自動割り当て
定数省略可TRUE(既定): 切片bを計算する / FALSE: bを0に固定する
補正省略可FALSE(既定): 係数のみ返す / TRUE: 統計情報も返す

引数①:既知のy(必須)

回帰の対象となるyの値を指定します。売上や来客数など、分析したいデータの列です。

引数②:既知のx(省略可)

yに対応するxの値を指定します。年度や月番号、広告費のような説明変数が入ります。

省略すると {1, 2, 3, …} という連番が自動で割り当てられます。時系列データが等間隔に並んでいるなら省略してもOKですよ。

引数③:定数(省略可)

切片bの扱いを指定します。

動作回帰モデル
TRUE(既定)bを計算するy = mx + b
FALSEbを0に固定するy = mx

ほとんどの場合はTRUE(または省略)で問題ありません。原点を通る回帰を求めたい特殊なケースでFALSEを使います。

引数④:補正(省略可)

統計情報を追加出力するかどうかを指定します。

動作出力サイズ
FALSE(既定)係数のみ返す1行2列(mとb)
TRUE統計情報も返す5行2列(係数+統計量)

TRUEにすると決定係数R²やF統計量など、モデルの精度を評価するための情報も一緒に得られます。最初はTRUEで出力して、モデルの信頼性を確認するのがおすすめです。

基本的な使い方(傾きと切片を求める)

まずはシンプルな例で、傾きと切片を求めてみましょう。

次のサンプルデータを用意してください。

セルA列(月)B列(売上・万円)
2行目1100
3行目2130
4行目3155
5行目4190
6行目5210

D2セルに次の数式を入力してください。

=LINEST(B2:B6, A2:A6)

D2に傾き(約27)、E2に切片(約78)が返されます。Microsoft 365ではスピルで2つのセルに展開されますよ。

この結果は「月が1つ進むごとに売上が約27万円増える」「1ヶ月目の開始時点のベース売上が約78万円」という意味です。回帰式 y = 27x + 78 が得られたことになります。

ここで注意したいポイントがあります。 LINEST関数は傾き→切片の順で「右から左」に値を返します。D2がm(傾き)、E2がb(切片)です。SLOPE関数やINTERCEPT関数と結果を比べて確認してみるとわかりやすいですよ。

=SLOPE(B2:B6, A2:A6)   → D2の値と一致
=INTERCEPT(B2:B6, A2:A6) → E2の値と一致

補正=TRUEで返される5行2列の統計情報を読み解く

LINEST関数の真価は、補正をTRUEにしたときに発揮されます。5行×2列(計10個)の値が返されるのでちょっと多く見えますが、それぞれの意味を整理すれば難しくありません。

D2セルに次の数式を入力してください。

=LINEST(B2:B6, A2:A6, TRUE, TRUE)

Microsoft 365ではD2:E6に5行2列の結果がスピルします。Excel 2019以前では、D2:E6を選択した状態で数式を入力し、Ctrl + Shift + Enter で確定してください。

1行目:傾きm・切片b(回帰式の本体)

D2(m:傾き)E2(b:切片)
約27約78

回帰式 y = mx + b の心臓部です。傾き27は「月1つあたり売上が27万円増加」、切片78は「0ヶ月目のベース売上が78万円」を意味します。

2行目:各係数の標準誤差

D3(se_m)E3(se_b)
mの標準誤差bの標準誤差

係数の「ブレ幅」を示す値です。標準誤差が小さいほど、その係数の推定が安定していることを意味します。

3行目:決定係数R²とyの標準誤差

D4(R²)E4(se_y)
決定係数y推定値の標準誤差

R²(決定係数)は最重要の指標です。 0~1の範囲で、1に近いほどモデルがデータにフィットしていることを示します。別途RSQ関数で求めることもできますよ。

R²の範囲判断の目安
0.95以上非常に良好。安心して予測に使える
0.90~0.95良好。実務では十分な精度
0.70~0.90まずまず。予測は参考程度にとどめる
0.70未満当てはまりが弱い。モデルの見直しが必要

4行目:F統計量と自由度

D5(F値)E5(df)
F統計量自由度(残差)

F値が大きいほど「回帰モデルが偶然でなく統計的に意味がある」ことを示します。学術論文でなければ、R²だけ確認すれば実務上は十分ですよ。

5行目:回帰平方和と残差平方和

D6(ssreg)E6(ssresid)
回帰平方和残差平方和

回帰平方和はモデルが説明できた変動量、残差平方和は説明しきれなかった変動量です。ssreg / (ssreg + ssresid) = R² という関係がありますよ。

実践的な使い方:LINEST + FORECAST.LINEARで売上予測

LINEST関数で回帰モデルの精度を確認し、FORECAST.LINEAR関数で予測値を出す。この2ステップが実務での定番ワークフローです。

Step1:LINESTでR²を確認する

先ほどのサンプルデータを使い、補正=TRUEで統計情報を出力します。

=LINEST(B2:B6, A2:A6, TRUE, TRUE)

3行目左側のR²を確認してください。0.9以上であれば、線形モデルがデータにフィットしているので予測に進めます。

Step2:FORECAST.LINEARで将来の売上を予測する

R²が十分に高ければ、FORECAST.LINEAR関数で予測を出します。8セルに「6」(6ヶ月目)を入力しておき、B8セルに次の数式を入力してください。

=FORECAST.LINEAR(A8, B2:B6, A2:A6)

6ヶ月目の予測売上が返されます。FORECAST.LINEAR関数は内部でLINESTと同じ最小二乗法の計算を行い、新しいxに対するy値を直接返してくれますよ。

手動で計算したい場合は、LINESTから得た傾きmと切片bを使って次の式でも同じ結果になります。

=D2 * A8 + E2

D2がm(傾き)、E2がb(切片)の場合です。FORECAST.LINEAR関数のほうが手軽ですが、式の仕組みを理解するために一度は手計算も試してみてください。

複数の将来値をまとめて予測する(TREND関数)

複数のxに対する予測値を一括で得たい場合は、TREND関数が便利です。

A8セルに「6」、A9セルに「7」、A10セルに「8」と入力しておき、B8セルに次の数式を入力してください。

=TREND(B2:B6, A2:A6, A8:A10)

6~8ヶ月目の予測値がスピルで3セルに展開されます。TREND関数はLINESTの線形回帰モデルで予測値をまとめて返してくれるので、複数期間の予測に向いていますよ。

よくあるエラーと対処法

#VALUE!エラー:配列数式の入力ミス

Excel 2019以前で Ctrl + Shift + Enter を押さずにEnterだけで確定すると、正しい結果が得られません。補正=TRUEの場合は傾き(m)しか返されず、残りのセルに #VALUE! が出ることがあります。

対処法: 出力先セル範囲(補正=TRUEなら5行2列)を選択し、数式を入力してから Ctrl + Shift + Enter で確定してください。数式バーに {=LINEST(…)} と中かっこが表示されれば成功です。

Microsoft 365やExcel 2021なら自動スピルに対応しているので、この問題は起きません。

#REF!エラー:配列サイズの不一致

既知のyと既知のxの配列サイズが一致していないと #REF! エラーが出ます。

対処法: yのデータが5行なら、xも5行に揃えてください。空白セルが混じっていないかも確認しましょう。

#N/A エラー:データが不足している

xの値がすべて同じ場合(変動がない場合)、傾きを計算できず #N/A エラーになることがあります。

対処法: xの値に変動があるか確認してください。すべて同じ値では回帰直線を引くことができません。

エラーの一覧と対処法はExcelのエラー値一覧も参考にしてくださいね。

似た関数との違い・使い分け

回帰分析に関連する関数は複数あります。迷ったときはこの表を参考にしてください。

関数返すもの回帰モデル用途
LINEST傾き・切片+統計量線形(y = mx + b)回帰モデルの中身と精度を確認したいとき
SLOPE傾きのみ線形傾きだけ手早く知りたいとき
INTERCEPT切片のみ線形切片だけ手早く知りたいとき
RSQ決定係数R²のみ線形モデルの当てはまりだけ確認したいとき
TREND予測値線形線形回帰による予測値を直接得たいとき
LOGEST係数+統計量指数(y = b × m^x)加速度的に増減するデータの回帰分析
GROWTH予測値指数指数回帰による予測値を直接得たいとき

ポイントは2つの軸で整理することです。

  • 知りたいもの: 回帰係数と統計量 → LINEST / LOGEST、予測値 → TREND / GROWTH、個別の値 → SLOPE / INTERCEPT / RSQ
  • データの形状: 直線的 → LINEST系、カーブ → LOGEST系

LINEST関数は「回帰モデルの全体像を確認するための関数」と覚えておけば、他の関数との使い分けで迷うことはありません。

まとめ

ExcelのLINEST関数は、最小二乗法で線形回帰モデル(y = mx + b)の傾き・切片と統計情報を求める関数です。

この記事のポイントをおさらいしておきましょう。

  • LINEST関数は「傾きm」と「切片b」を返す。予測値がほしいときはFORECAST.LINEAR関数やTREND関数を使う
  • 引数「補正」をTRUEにすると、5行2列の統計情報(R²・F値など)も取得できる
  • R²(決定係数)が0.9以上ならモデルの当てはまりが良好。予測に活用できる
  • 配列数式として入力する(Microsoft 365ではスピル対応)
  • SLOPE関数INTERCEPT関数は個別の値を返すだけ。統計情報まで欲しいならLINEST関数を使う
  • カーブするデータにはLOGEST関数、直線的なデータにはLINEST関数を使い分ける

売上予測や広告効果の分析に、ぜひ活用してみてください。Excel関数の一覧はこちらから確認できます。

タイトルとURLをコピーしました