「回帰分析で傾きも切片もR²も全部ほしいのに、SLOPE・INTERCEPT・RSQをバラバラに書くのが面倒……」
こんなふうに感じたことはありませんか? 統計関数を1つずつ入力していると、数式が増えて管理も大変ですよね。
そんなときに使えるのがスプレッドシートのLINEST関数です。この記事では基本の書き方から統計量の読み方、実務での活用例まで丁寧に解説します。
LINEST関数とは?(SLOPE等の上位互換)
LINEST関数(読み方: リネスト関数)は、線形回帰の結果を配列でまとめて返す統計関数です。「LINEST」は英語の「LINear ESTimation(線形推定)」の略が由来です。
線形回帰とは、散布図に描かれた点に最もフィットする直線(y = mx + b)を求める手法のことです。LINEST関数はこの直線の傾き(m)や切片(b)だけでなく、R²やF統計量などの統計指標も一括で返してくれます。
つまり、次の関数を1つずつ入力する必要がなくなります。
- SLOPE関数(傾き)
- INTERCEPT関数(切片)
- RSQ関数(決定係数R²)
- STEYX関数(推定標準誤差)
LINEST関数1つで、これら4つの関数の結果を含む統計量をまとめて取得できます。「統計量をフルセットでほしい」ときの上位互換として覚えておくと便利ですよ。
NOTE
LINEST関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数がありますが、ExcelではCtrl+Shift+Enterの配列入力が必要です。Googleスプレッドシートでは通常のEnterで自動的にスピル(隣接セルに展開)されます。
LINEST関数の基本構文と引数
基本構文
=LINEST(既知のy, [既知のx], [切片計算], [統計情報])
カッコの中に、従属変数のデータと、必要に応じて独立変数のデータ・オプションを指定します。
引数の説明
| 引数 | 必須/任意 | 既定値 | 説明 |
|---|---|---|---|
| 既知のy | 必須 | — | 従属変数のデータ範囲(例: 売上データ) |
| 既知のx | 任意 | {1,2,3,…} | 独立変数のデータ範囲(例: 月番号)。省略すると連番が使われる |
| 切片計算 | 任意 | TRUE | TRUE=切片を計算、FALSE=切片を0に固定 |
| 統計情報(verbose) | 任意 | FALSE | TRUE=統計量フル出力(5行)、FALSE=傾きと切片のみ(1行) |
必須の引数は「既知のy」だけです。ただし、実務では「既知のx」も指定するのが一般的です。
TIP
4番目の引数「統計情報」をTRUEにすると、5行分の統計量マトリックスが出力されます。回帰分析をしっかり行うときはTRUEがおすすめです。
最小構成と推奨構成
=LINEST(B2:B13)
これが最小構成です。傾きと切片だけが1行×2列で返ります。
=LINEST(B2:B13, A2:A13, TRUE, TRUE)
こちらが推奨構成です。統計量フルセットが5行×2列で返ります。回帰分析に使うならこの書き方を基本にしてみてください。
WARNING
4番目の引数をTRUEにしたとき、結果は5行×2列に展開されます。出力先の下方向に5行・右方向に2列分の空きスペースを確保してください。既にデータがあると
#REF!エラーになります。
verbose=TRUEで取得できる統計量の読み方
統計情報(verbose)をTRUEにすると、5行×2列の統計量マトリックスが返ります。単回帰(独立変数が1つ)の場合のレイアウトは次のとおりです。
| 行 | 列1 | 列2 |
|---|---|---|
| 1行目 | 傾き(m) | 切片(b) |
| 2行目 | 傾きの標準誤差 | 切片の標準誤差 |
| 3行目 | 決定係数(R²) | 推定標準誤差(Syx) |
| 4行目 | F統計量 | 自由度(df) |
| 5行目 | 回帰平方和(SSR) | 残差平方和(SSE) |
それぞれの意味を順番に見ていきましょう。
1行目: 傾きと切片
回帰直線 y = mx + b のmとbにあたる値です。傾きは「xが1増えるとyがどれだけ変わるか」を示します。切片は「x=0のときのyの値」です。
2行目: 標準誤差
傾きと切片がどれくらい信頼できるかを表す指標です。値が小さいほど推定の精度が高いことを意味します。「標準誤差 < 傾き」であれば、その傾きは統計的にある程度信頼できると判断できます。
3行目: R²と推定標準誤差
R²(決定係数)は、データのばらつきのうち回帰直線で説明できる割合です。0〜1の範囲をとり、1に近いほどモデルの当てはまりがよいことを示します。推定標準誤差は実際の値と予測値のずれの大きさです。
4行目: F統計量と自由度
F統計量は「回帰モデル全体が意味のあるものか」を検定する指標です。値が大きいほど統計的に有意であることを示します。自由度は回帰の計算に使われたデータ点数に関連する値です。
5行目: 回帰平方和と残差平方和
回帰平方和(SSR)は回帰直線で説明できたばらつき、残差平方和(SSE)は説明できなかったばらつきです。R²は SSR ÷ (SSR + SSE) で計算されます。
ちょっと項目が多く見えますが、実務でまず注目すべきは1行目(傾き・切片)と3行目(R²)の3つです。ここを押さえておけば十分活用できますよ。
SLOPE・INTERCEPT・RSQとの違いと使い分け
LINEST関数の各値は、個別の統計関数と対応しています。INDEXを使えば特定の値だけ取り出すことも可能です。
個別関数との対応表
| 取得したい値 | 個別関数 | LINESTでの取り出し方 |
|---|---|---|
| 傾き | =SLOPE(y, x) | =INDEX(LINEST(y, x, TRUE, TRUE), 1, 1) |
| 切片 | =INTERCEPT(y, x) | =INDEX(LINEST(y, x, TRUE, TRUE), 1, 2) |
| 決定係数R² | =RSQ(y, x) | =INDEX(LINEST(y, x, TRUE, TRUE), 3, 1) |
| 推定標準誤差 | =STEYX(y, x) | =INDEX(LINEST(y, x, TRUE, TRUE), 3, 2) |
どちらを使うべき?
結論として、次のように使い分けるのがおすすめです。
- 傾きだけ・切片だけが必要 → SLOPE関数やINTERCEPT関数を単体で使う方がシンプル
- R²や標準誤差も含めて総合的に見たい → LINEST関数1つで一括取得する方が効率的
- 予測値を求めたい → FORECAST関数やTREND関数を使う
個別関数は「ピンポイントで1つの値がほしいとき」に向いています。LINEST関数は「回帰分析レポートを作るとき」のように複数の統計量を並べたい場面で活躍します。用途に合わせて選んでみてください。
実践例:月次売上データで回帰分析
ここでは、12か月分の売上データを使ってLINEST関数を実際に動かしてみましょう。
サンプルデータ
| 月(A列) | 売上(B列) |
|---|---|
| 1 | 120 |
| 2 | 135 |
| 3 | 148 |
| 4 | 155 |
| 5 | 170 |
| 6 | 180 |
| 7 | 192 |
| 8 | 200 |
| 9 | 215 |
| 10 | 225 |
| 11 | 238 |
| 12 | 250 |
A2:A13に月番号、B2:B13に売上が入っている想定です。
統計量フルセットを取得する
D2セルに次の数式を入力します。
=LINEST(B2:B13, A2:A13, TRUE, TRUE)
D2:E6の範囲に5行×2列の結果が展開されます。このデータの場合、おおよそ次のような値が返ります。
| 行 | D列(列1) | E列(列2) |
|---|---|---|
| 1行目 | 11.65(傾き) | 110.45(切片) |
| 2行目 | 0.29(傾きの標準誤差) | 2.15(切片の標準誤差) |
| 3行目 | 0.993(R²) | 2.71(推定標準誤差) |
| 4行目 | 1581.5(F統計量) | 10(自由度) |
| 5行目 | 11612.3(回帰平方和) | 73.5(残差平方和) |
結果を読み解く
- 傾き11.65: 1か月あたり約11.65万円ずつ売上が増加
- 切片110.45: 月=0の理論値。直線の始点にあたる
- R²=0.993: データの99.3%を直線で説明できており、非常に当てはまりがよい
R²が0.99以上なので、この売上データは月数にほぼ比例して増えていることがわかります。
特定の値だけ取り出す
傾きだけをセルに表示したい場合はINDEXと組み合わせます。
=INDEX(LINEST(B2:B13, A2:A13, TRUE, TRUE), 1, 1)
INDEXの第2引数に行番号、第3引数に列番号を指定します。5行×2列のうち任意の値を1つだけ取り出せますよ。レポートの特定セルに値を埋め込みたいときに便利です。
よくあるエラーと対処法
LINEST関数で発生しやすいエラーと、その解決方法をまとめます。
#REF! エラー
原因1: yとxのデータ数が一致していない
既知のyと既知のxの行数(データの個数)が異なると #REF! になります。
=LINEST(B2:B13, A2:A10, TRUE, TRUE)
この例ではyが12行、xが9行でずれています。範囲を揃えてください。
原因2: 出力先にスペースが足りない
4番目の引数をTRUEにした場合、5行×2列分の空きが必要です。出力先の下方向や右方向に既存データがあると #REF! になります。空きスペースを確保してから再入力してください。
#VALUE! エラー
原因: データ範囲に空白セルや文字列が混入している
LINEST関数は数値データを前提としています。途中に空白や「N/A」のような文字列があるとエラーになります。
=LINEST(B2:B13, A2:A13, TRUE, TRUE)
B2:B13の中に空白や文字列がないか確認しましょう。空白セルを0で埋めるか、該当行を除外してデータ範囲を調整してください。
結果が1行しか出ない
4番目の引数(統計情報)をFALSEにしている、または省略しているケースです。統計量フルセットがほしい場合は、必ず4番目の引数をTRUEに設定してみてください。
=LINEST(B2:B13, A2:A13, TRUE, TRUE)
最後の引数がTRUEになっているか確認しましょう。
切片を0固定にしたときのR²に注意
3番目の引数(切片計算)をFALSEにすると、切片が0に固定されます。この場合、R²の計算式が通常と変わるため、TRUEのときのR²とは直接比較できません。
切片固定は「物理的に原点を通るはずのモデル」でのみ使うのがよいです。一般的な業務データでは、切片計算=TRUE(既定値)のまま使うのが安全ですよ。
まとめ
スプレッドシートのLINEST関数について、基本の使い方から統計量の読み方、エラー対処法まで解説しました。ポイントを振り返っておきましょう。
- LINEST関数は線形回帰の統計量を一括取得できる関数
- 4番目の引数をTRUEにすると、5行×2列の統計量マトリックスが返る
- 1行目(傾き・切片)と3行目(R²)を押さえるのが実務の基本
- 傾きだけなど単一の値がほしいときはSLOPE関数やRSQ関数が手軽
- 予測値を求めたいときはFORECAST関数やTREND関数と組み合わせる
回帰分析のレポートを作る場面では、LINEST関数1つで必要な数値が揃うのでとても効率的です。ぜひ活用してみてください。
