スプレッドシートのLOGEST関数の使い方|LINESTの指数版でR²まで一括取得

スポンサーリンク

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

スプレッドシートでデータ分析をしていると、こんなふうに思うことはありませんか。GROWTH関数を使えば予測値はすぐ出せます。けれども、指数回帰の倍率や切片といったパラメータそのものを確認したいときもありますよね。

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

スプレッドシートの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! エラーになります。LOGEST関数は内部で対数を取って計算するため、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.30約 92.1

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

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

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

=92.1 * 1.30^7

この計算結果は約570万円になります。GROWTH関数=GROWTH(B2:B7, A2:A7, 7) と入力した結果ともほぼ一致しますよ。

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

いつLOGESTを選ぶべきか(線形 vs 指数の判断軸)

LOGESTとLINESTのどちらを使うかは、データのパターンで判断します。簡単な見極め方は次のとおりです。

  • 差分が一定(前月+20、+20、+20…)なら → 線形回帰(LINEST)
  • 比率が一定(前月比×1.3、×1.3、×1.3…)なら → 指数回帰(LOGEST)

散布図を描いて、点が直線に近いか、上に凸に曲がっているかを見るのも有効な判断材料です。曲線的に加速していたら指数回帰が候補に入ります。

両方のR²を比較するという方法もあります。R²が高いほうのモデルが、データに合っていると考えてみてくださいね。

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に近いほどモデルの当てはまりが良いことを示しますよ。一般的に0.9以上あれば「当てはまりが良い」と判断されます。

NOTE

LOGEST関数のR²は、内部の対数変換後の空間で計算されたR²です。元データそのもののR²とは厳密には異なる点に注意してください。指数回帰モデル同士の比較や、トレンドの良し悪しの目安として使うのが現実的ですよ。

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

F統計量は、回帰モデル全体が統計的に有意かどうかを示す指標です。値が大きいほど有意性が高くなります。自由度(df)はサンプル数から推定パラメータ数を引いた値です。

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

回帰で説明できたばらつき(SSR)と、説明できなかったばらつき(SSE)です。SSE が小さいほど、モデルがデータをよく説明できていることになります。

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

実務での活用例(倍化期間と複利の逆算)

LOGESTで得た成長倍率mを使うと、ビジネスでよく使う指標を直接計算できます。

倍化期間(ダブリング期間)を計算する

「今のペースで伸び続けたら、何か月で売上は2倍になる?」という疑問にも、LOGESTの結果が役立ちます。倍化期間は次の式で計算できます。

=LN(2)/LN(m)

mが1.30の場合、=LN(2)/LN(1.30) で約2.64か月になります。つまり、約2.6か月ごとに売上が2倍になるペースだとわかります。

実効成長率(%表記)に直す

「毎月何%伸びているか」という言い方に直したい場合は、mから1を引いて100をかけます。

=(m - 1) * 100

mが1.30なら、「毎月30%成長」と言い換えられますね。経営会議など、%表記のほうが伝わりやすい場面で活用できますよ。

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列(同じ構造)
0以下の値の扱い使用可能#NUM! エラー

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

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

よくあるエラーと対処法

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

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

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

売上データに「0」がある月があるときは、1や0.1など小さい正の値で代替するか、その行を除外して対処してみてください。マイナス値が含まれる場合は、そもそも指数回帰モデルが適切でない可能性もありますよ。

よくある質問

LOGEST関数とLINEST関数の違いを教えてください。

LINEST関数は線形回帰(y = mx + b)のパラメータ(傾きと切片)を返します。LOGEST関数は指数回帰(y = b × m^x)のパラメータ(成長倍率と切片)を返してくれます。データが毎回一定量ずつ増えるならLINEST関数、毎回一定の倍率で増えるならLOGEST関数を選んでください。グラフを描いて直線的なら線形、曲線的に加速しているなら指数と判断するのが一番わかりやすいです。

LOGEST関数とGROWTH関数はどう使い分ければよいですか?

指数回帰の「成長倍率mやy切片bのパラメータそのものを知りたい」ときはLOGEST関数を使います。「特定のxに対する予測値を直接知りたい」ときはGROWTH関数が便利ですよ。GROWTH関数は内部でLOGEST関数と同じ計算を行い、その結果から予測値を直接返してくれます。

LOGEST関数で #NUM! エラーが出ます。どう対処しますか?

既知のyに0以下の値が含まれているときに発生するエラーです。LOGEST関数は内部でLN関数(自然対数)を使うため、0や負の値は計算できません。yのデータをすべて正の数値にするか、売上が0の月は1や0.1など小さい正の値で代替して対応してください。

verbose=TRUEのとき、5行の出力のうちまずどこを確認すべきですか?

まずは1行目(成長倍率m・y切片b)と3行目のR²(決定係数)を確認してください。R²が1に近いほどモデルの当てはまりが良いことを意味します。R²が0.9以上あれば、実務では十分な精度と考えられますよ。この3つを押さえれば日常の分析では十分活用できます。

LOGEST関数で算出した成長倍率から「倍化期間」を計算するには?

倍化期間は =LN(2)/LN(m) の式で計算できます。mが1.30の場合は約2.64になり、「約2.6か月ごとに売上が2倍になるペース」だとわかります。LN関数(自然対数)を使うことで、底に依存せずに倍化期間を算出できますよ。

まとめ

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

  • LOGEST関数は指数回帰モデル(y = b * m^x)のパラメータを返す関数
  • 成長倍率(m)とy切片(b)を一括で取得できる
  • verbose=TRUEで決定係数R²やF統計量を含む統計量フルセットを出力できる
  • LINEST関数は線形回帰、LOGESTは指数回帰という対の関係
  • GROWTH関数は内部でLOGESTを使い、予測値を直接返す
  • 既知のyに0以下の値があると #NUM! エラーになる点に注意
  • 成長倍率mから倍化期間や%成長率を直接計算できる

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

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