スプレッドシートのLINEST関数の使い方|統計量一括取得

スポンサーリンク

「回帰分析で傾きも切片もR²も全部ほしいのに、SLOPE・INTERCEPT・RSQをバラバラに書くのが面倒……」

こんなふうに感じたことはありませんか? 統計関数を1つずつ入力していると、数式が増えて管理も大変ですよね。

そんなときに使えるのがスプレッドシートのLINEST関数です。この記事では基本の書き方から統計量の読み方、実務での活用例まで丁寧に解説します。

LINEST関数とは?(SLOPE等の上位互換)

LINEST関数(読み方: リネスト関数)は、線形回帰の結果を配列でまとめて返す統計関数です。「LINEST」は英語の「LINear ESTimation(線形推定)」の略が由来です。

線形回帰とは、散布図に描かれた点に最もフィットする直線(y = mx + b)を求める手法のことです。LINEST関数はこの直線の傾き(m)や切片(b)だけでなく、R²やF統計量などの統計指標も一括で返してくれます。

つまり、次の関数を1つずつ入力する必要がなくなります。

LINEST関数1つで、これら4つの関数の結果を含む統計量をまとめて取得できます。「統計量をフルセットでほしい」ときの上位互換として覚えておくと便利ですよ。

NOTE

LINEST関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数がありますが、ExcelではCtrl+Shift+Enterの配列入力が必要です。Googleスプレッドシートでは通常のEnterで自動的にスピル(隣接セルに展開)されます。

LINEST関数の基本構文と引数

基本構文

=LINEST(既知のy, [既知のx], [切片計算], [統計情報])

カッコの中に、従属変数のデータと、必要に応じて独立変数のデータ・オプションを指定します。

引数の説明

引数必須/任意既定値説明
既知のy必須従属変数のデータ範囲(例: 売上データ)
既知のx任意{1,2,3,…}独立変数のデータ範囲(例: 月番号)。省略すると連番が使われる
切片計算任意TRUETRUE=切片を計算、FALSE=切片を0に固定
統計情報(verbose)任意FALSETRUE=統計量フル出力(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列)
1120
2135
3148
4155
5170
6180
7192
8200
9215
10225
11238
12250

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つで必要な数値が揃うのでとても効率的です。ぜひ活用してみてください。

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