スプレッドシートのSLOPE関数の使い方|回帰直線の傾きを求める

スポンサーリンク

「売上が月々どれくらい伸びているのか、数字で知りたい」「広告費を1万円増やしたら売上はいくら増えるの?」

こんなふうに、データの変化の勢いを具体的な数値で把握したいときってありますよね。グラフを見ればなんとなくわかるけど、「月あたり何円増えている」と言い切れると説得力が違います。

そんなときに使えるのがSLOPE関数です。この記事では基本の書き方から傾きの読み取り方、INTERCEPT・CORREL・FORECAST関数との連携まで解説します。

SLOPE関数とは?回帰直線の傾きを求める関数

SLOPE関数(読み方: スロープ関数)は、2つのデータセットから回帰直線の傾きを返す統計関数です。「SLOPE」は英語の「slope(傾き・坂)」が由来です。

回帰直線とは、散布図に描かれた点の並びに最もフィットする直線のことです。この直線の傾きがわかると「xが1増えたときに、yがどれだけ変わるか」を数値で把握できます。

たとえば、月ごとの広告費(x)と売上(y)のデータがあるとします。SLOPE関数の結果が「5」なら、広告費を1万円増やすと売上が約5万円増えるという意味です。

SLOPE関数にできることをまとめると、次のとおりです。

  • 2つのデータ間の回帰直線の傾きを求める
  • データの変化率(xが1増えたときのyの増減量)を数値化する
  • INTERCEPT関数と組み合わせて回帰式(y = ax + b)を作る
  • CORREL関数で相関を確認したうえで予測に活用する

NOTE

SLOPE関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作は同じです。

SLOPE関数の書き方(構文と引数)

基本構文

=SLOPE(データ_y, データ_x)

カッコの中に、傾きを求めたい2つのデータ範囲を指定します。

引数の説明

引数必須/任意説明
データ_y必須従属変数のデータ範囲(例: 売上データ)
データ_x必須独立変数のデータ範囲(例: 広告費データ)

引数はたった2つだけなのでシンプルですよね。ポイントは yを先、xを後 に指定することです。「結果(y)が先、原因(x)が後」と覚えてください。

WARNING

データ_yとデータ_xのデータ数は同じにしてください。データ数が異なると #N/A エラーになります。

TIP

範囲内の文字列・TRUE/FALSE・空白セルは自動的に無視されます。ただし、数値としての「0」は計算の対象になります。

SLOPE関数の基本的な使い方

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

あるお店で6か月分の「広告費(万円)」と「売上(万円)」を記録したとします。

 A列(月)B列(広告費)C列(売上)
2行目4月10150
3行目5月15200
4行目6月20280
5行目7月25310
6行目8月30390
7行目9月35450

傾きの値を求める

=SLOPE(C2:C7, B2:B7)

結果は約 12.1 になります。これは「広告費を1万円増やすと、売上が約12.1万円増える」ことを表しています。

傾きの読み取り方

SLOPE関数の結果は正の値にも負の値にもなります。

傾きの値意味
正の値(0より大きい)xが増えるとyも増える広告費↑ → 売上↑
負の値(0より小さい)xが増えるとyは減る価格↑ → 販売数↓
0に近いxが変わってもyはほぼ変わらない関連性が薄い

傾きの絶対値が大きいほど、xの変化に対するyの変化が大きくなります。「12.1」と「2.3」なら、前者のほうがxの影響を強く受けていると判断できますよ。

TIP

ただし、傾きが大きい=相関が強いとは限りません。外れ値が1つあるだけで傾きは大きく変わります。CORREL関数で相関の強さを確認してからSLOPE関数を使うのがおすすめです。

SLOPE関数の実践的な使い方・応用例

売上トレンドの分析

月番号をx、売上をyとして傾きを求めると、月あたりの売上増減がわかります。

 A列(月番号)B列(売上)
2行目1320
3行目2345
4行目3360
5行目4390
6行目5410
7行目6440
=SLOPE(B2:B7, A2:A7)

結果は約 23.7 です。「毎月平均で約23.7万円ずつ売上が伸びている」と読み取れます。上司への報告で「売上は月あたり約24万円のペースで成長しています」と言えますね。

INTERCEPT関数と組み合わせて回帰式を作る

SLOPE関数だけでは傾きしかわかりません。INTERCEPT関数と組み合わせると、回帰式が完成します。

回帰式は y = 傾き x x + 切片 です。

=SLOPE(C2:C7, B2:B7)      → 約 12.1(傾き)
=INTERCEPT(C2:C7, B2:B7)  → 約 28.3(切片)

この回帰式は y = 12.1 x x + 28.3 です。たとえば広告費を40万円(x=40)に増やした場合の売上予測は、12.1 x 40 + 28.3 = 約512万円と計算できます。

FORECAST関数で予測値を直接求める

「回帰式を手で計算するのはめんどう」というときはFORECAST関数が便利です。SLOPE・INTERCEPTの計算を内部で自動的に行い、予測値を直接返してくれます。

=FORECAST(40, C2:C7, B2:B7)

広告費40万円のときの売上予測が一発で出ます。結果は上の回帰式と同じ約512万円です。

TIP

FORECAST関数を使えばSLOPE・INTERCEPTを個別に求めなくても予測ができます。ただし「傾きと切片の値を把握したい」場合はSLOPE・INTERCEPTを使い分けてください。

CORREL関数で相関を確認してからSLOPEを使う

SLOPE関数は「2つのデータに関連がある」前提で傾きを求めます。しかし、関連がないデータでも傾きは計算されてしまいます。

そこで、CORREL関数先に相関の強さを確認するのがおすすめです。

=CORREL(C2:C7, B2:B7)

相関係数が0.7以上(または-0.7以下)なら相関が強いと判断できます。この場合はSLOPE関数の結果を信頼して予測に使えます。

相関係数が0.3程度の場合、SLOPE関数で傾きは出ますが、予測の精度は低くなります。「データ分析の手順」として覚えておくと便利ですよ。

ステップ使う関数確認すること
1. 相関確認CORREL関数相関係数が0.7以上か
2. 傾きを求めるSLOPE関数xが1増えたときのy変化量
3. 切片を求めるINTERCEPT関数x=0のときのy値
4. 予測するFORECAST関数指定したxに対するy予測値

よくあるエラーと対処法

#N/Aエラー

SLOPE関数で最もよく見るエラーです。

原因対策
データ_yとデータ_xの行数が異なるセル範囲の行数を揃える

たとえば =SLOPE(C2:C7, B2:B10) のように行数がずれていると発生します。範囲を確認してください。

#DIV/0!エラー

以下の原因が考えられます。

原因対策
数値データが1つしかない2つ以上の数値データを指定する
xのデータがすべて同じ値データにばらつきがあるか確認する

xがすべて同じ値だと、傾きを計算するための分母が0になります。データ入力のミスがないか確認してください。

TIP

エラーが表示されると困る場合は、IFERROR関数で囲むとスマートです。=IFERROR(SLOPE(C2:C7, B2:B7), "データ不足") のように書けます。

INTERCEPT関数との違い・関連する統計関数

INTERCEPT関数との違い

SLOPE関数とペアで使うのがINTERCEPT関数です。

項目SLOPEINTERCEPT
戻り値回帰直線の傾き(a)回帰直線のy切片(b)
意味xが1増えたときのy変化量x=0のときのyの値
構文=SLOPE(データ_y, データ_x)=INTERCEPT(データ_y, データ_x)
回帰式y = a x x + by = a x x + b

この2つを組み合わせると、回帰式 y = ax + b が完成します。

関連する統計関数の一覧

関数説明SLOPE関数との関係
CORREL関数相関係数を求めるSLOPEの前に相関の強さを確認する
INTERCEPT関数回帰直線のy切片SLOPEとペアで回帰式を作る
FORECAST関数線形予測値を返すSLOPE+INTERCEPTの計算を一括で行う
AVERAGE関数平均値を求めるデータの平均値を確認する
STDEV関数標準偏差を求めるデータのばらつきを確認する
RSQ関数決定係数を返す回帰直線の当てはまりの良さを数値化する

まとめ

SLOPE関数は、2つのデータセットから回帰直線の傾きを返す関数です。

この記事のポイント

  • 構文は =SLOPE(データ_y, データ_x) で、yを先・xを後に指定する
  • 戻り値は傾き(xが1増えたときのy変化量)
  • INTERCEPT関数と組み合わせて回帰式 y = ax + b を作れる
  • FORECAST関数を使えば予測値を直接計算できる
  • 使う前にCORREL関数で相関の強さを確認するのがおすすめ

関連する統計関数

SLOPE関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。データ分析の幅が広がりますよ。

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