スプレッドシートのLOGEST関数の使い方|指数回帰パラメータ

スポンサーリンク

「売上が毎月1.3倍ずつ伸びているけど、この成長倍率って正確にはいくつなんだろう?」

こんなふうに思ったことはありませんか? GROWTH関数で予測値は出せても、指数回帰の倍率や切片といったパラメータそのものを確認したいときってありますよね。

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

スプレッドシートのLOGEST関数とは?(GROWTHの内部エンジン)

LOGEST関数(読み方: ロゲスト関数)は、指数回帰のパラメータを配列でまとめて返す統計関数です。「LOGEST」は英語の「LOGarithmic ESTimation(対数推定)」の略が由来です。

指数回帰とは、データの増え方が加速していくパターンに当てはめる手法のことです。数式モデルは y = b * m^x で、mが成長倍率、bがy切片にあたります。

LOGEST関数はLINEST関数の指数版です。LINESTは線形回帰(y = mx + b)のパラメータを返します。一方、LOGESTは指数回帰(y = b * m^x)のパラメータを返します。

もう1つの大事なポイントは、GROWTH関数との関係です。GROWTH関数は内部でLOGESTと同じ計算を行います。そして予測値を直接返してくれます。つまりLOGESTは「GROWTHの内部エンジン」にあたる関数です。

まとめると、LOGESTにできることは次のとおりです。

  • 指数回帰の成長倍率(m)とy切片(b)を一括で返す
  • verbose=TRUEにするとR²やF統計量など統計量フルセットも出力できる
  • LINEST関数が「線形回帰のパラメータ」なら、LOGESTは「指数回帰のパラメータ」
  • GROWTH関数が「予測値」を返すのに対し、LOGESTは「パラメータそのもの」を返す

NOTE

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

LOGEST関数の基本構文と引数

基本構文

=LOGEST(既知のy, [既知のx], [定数計算], [統計情報])

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

引数の説明

引数必須/任意既定値説明
既知のy必須従属変数のデータ範囲(例: 売上データ)。正の数値のみ
既知のx任意{1,2,3,…}独立変数のデータ範囲(例: 月番号)。省略すると連番が使われる
定数計算任意TRUETRUE=y切片bを計算、FALSE=bを1に固定
統計情報(verbose)任意FALSETRUE=統計量フル出力(5行)、FALSE=mとbのみ(1行)

必須の引数は「既知のy」だけです。ただし、実務では「既知のx」も指定するのが一般的ですよ。

WARNING

既知のyには正の数値のみ指定できます。0以下の値が含まれていると #NUM! エラーになります。指数回帰は内部で対数を取るため、0や負の値は計算できません。

TIP

4番目の引数「統計情報」をTRUEにすると、5行分の統計量マトリックスが出力されます。指数回帰の精度を確認したいときはTRUEがおすすめです。

最小構成と推奨構成

=LOGEST(B2:B7)

これが最小構成です。成長倍率mとy切片bだけが1行×2列で返ります。

=LOGEST(B2:B7, A2:A7, TRUE, TRUE)

こちらが推奨構成です。統計量フルセットが5行×2列で返ります。回帰分析に使うならこの書き方を基本にしてみてください。

WARNING

4番目の引数をTRUEにしたとき、結果は5行×2列に展開されます。出力先の下方向に5行・右方向に2列分の空きスペースを確保してください。既にデータがあると #REF! エラーになります。

LOGEST関数の基本的な使い方

実際にLOGEST関数を使ってみましょう。

あるお店の6か月分の売上を記録したとします。毎月の伸びが加速しているのが特徴です。

 A列(月番号)B列(売上・万円)
2行目1120
3行目2155
4行目3200
5行目4260
6行目5340
7行目6440

このデータは毎月おおむね1.3倍ずつ増えています。直線的ではなく加速する、典型的な指数成長のパターンですね。

成長倍率とy切片を取得する

D2セルに次の数式を入力します。

=LOGEST(B2:B7, A2:A7)

結果は2つの値が横に並んで返ります。

D2(成長倍率 m)E2(y切片 b)
約 1.29約 93.5

成長倍率mが約1.29ということは、「1か月ごとに約1.29倍ずつ伸びている」ことを意味します。y切片bは月番号0のときの理論上の売上ですよ。

GROWTH関数の結果と手動で照合する

LOGESTで得たmとbを使えば、予測値を手動で計算できます。たとえば月番号7の予測値は次のように求まります。

=93.5 * 1.29^7

この結果は約570万円です。GROWTH関数=GROWTH(B2:B7, A2:A7, 7) と入力した結果と一致しますよ。

LOGESTはパラメータを返し、GROWTHは予測値を返す。この関係を押さえておくと使い分けがしやすくなります。なお、EXP関数LN関数を組み合わせた =EXP(LN(b)+LN(m)*x) でも同じ結果が得られます。

verbose=TRUEで統計量を一括取得する

統計情報(verbose)をTRUEにすると、5行×2列の統計量マトリックスが返ります。単回帰(独立変数が1つ)の場合のレイアウトは次のとおりです。

=LOGEST(B2:B7, A2:A7, TRUE, TRUE)
列1列2
1行目成長倍率(m)y切片(b)
2行目mの標準誤差bの標準誤差
3行目決定係数(R²)推定標準誤差(Syx)
4行目F統計量自由度(df)
5行目回帰平方和(SSR)残差平方和(SSE)

構造はLINEST関数のverbose出力とまったく同じです。違いは1行目の値だけです。線形回帰の傾き・切片ではなく、指数回帰の成長倍率・y切片が入ります。

各行の意味を簡単に見ていきましょう。

1行目: 成長倍率とy切片

指数回帰モデル y = b * m^x のmとbです。mが1より大きければ成長、1より小さければ減少を示します。

2行目: 標準誤差

mとbの推定がどれくらい信頼できるかを示す指標です。値が小さいほど精度が高いことを意味します。

3行目: R²と推定標準誤差

R²(決定係数)はデータのばらつきのうち、指数回帰モデルで説明できる割合です。0〜1の範囲で、1に近いほどモデルの当てはまりが良いことを示します。

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

F統計量は回帰モデル全体が統計的に有意かどうかを示す指標です。値が大きいほど有意性が高くなります。

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

回帰で説明できたばらつき(SSR)と、説明できなかったばらつき(SSE)です。

項目が多く見えますが、実務でまず確認すべきは1行目(m・b)と3行目(R²)です。この3つを押さえれば十分活用できますよ。

LINEST関数との違い(線形 vs 指数)

LOGESTとLINESTは対になる関数です。どちらを使うかは、データの増え方で判断します。

項目LINESTLOGEST
回帰モデル線形(y = mx + b)指数(y = b * m^x)
1行目の出力傾きm、切片b成長倍率m、y切片b
適したデータ毎回同じ量だけ増える毎回同じ倍率で増える
予測値を返す関数TREND関数 / FORECAST関数GROWTH関数
具体例毎月+20万円ずつ売上増加毎月×1.3倍ずつ売上増加
引数の構造4つ(y, x, 切片, verbose)4つ(y, x, 定数, verbose)
verbose出力5行×2列5行×2列(同じ構造)

どちらを選ぶか迷ったときは、グラフを描いてみるのが一番わかりやすいです。散布図が直線的ならLINEST関数、曲線的に加速しているならLOGESTを選んでみてください。

両方の関数でR²を出して比較するという方法もあります。R²が高いほうのモデルがデータに合っているので、判断材料として使えますよ。

よくあるエラーと対処法

LOGEST関数でよく見かけるエラーと、その対処法をまとめました。

エラー原因対処法
#NUM!既知のyに0以下の値が含まれているyの値をすべて正の数値にする。0や負の値は指数回帰で計算できない
#REF!verbose=TRUE時に出力先のセルにデータがある下方向5行×右方向2列分のセルを空けてから入力する
#N/A既知のyとxのデータ数が一致していないyとxの行数を揃える

特に #NUM! エラーはよく遭遇します。LOGEST関数は内部でLN関数(自然対数)を使って計算しています。対数は正の数値にしか定義されていないため、0以下の値があるとエラーになります。

売上データに「0」がある月は、1や0.1など小さい正の値で代替するか、該当行を除外して対処してみてください。

まとめ

この記事では、スプレッドシートのLOGEST関数の使い方を解説しました。

  • LOGEST関数は指数回帰モデル(y = b * m^x)のパラメータを返す関数
  • 成長倍率(m)とy切片(b)を一括で取得できる
  • verbose=TRUEでR²やF統計量を含む統計量フルセットを出力できる
  • LINEST関数は線形回帰、LOGESTは指数回帰という対の関係
  • GROWTH関数は内部でLOGESTを使い、予測値を直接返す

指数的に伸びるデータの回帰パラメータを確認したいときは、ぜひLOGEST関数を使ってみてください。パラメータではなく予測値がほしいときはGROWTH関数が便利ですよ。

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