「広告費を増やしたら売上って本当に上がってるの?」「気温とアイスの販売数って関係あるのかな?」
こんなふうに、2つのデータの関連性を数字で確かめたいときってありますよね。なんとなく「関係ありそう」と思っていても、感覚だけで判断するのはちょっと不安です。
そんなときに使えるのがCORREL関数です。この記事では基本の書き方から相関係数の読み取り方、散布図との連携、SLOPE・INTERCEPT関数との関係まで解説します。
CORREL関数とは?ピアソン相関係数を求める関数
CORREL関数(読み方: コリレーション関数)は、2つのデータセットのピアソン相関係数を返す統計関数です。「CORREL」は「Correlation(相関)」の略です。
相関係数とは、2つのデータがどれくらい連動しているかを表す指標です。値は -1から1 の範囲で返されます。
- 1に近い: 一方が増えるともう一方も増える(正の相関)
- -1に近い: 一方が増えるともう一方は減る(負の相関)
- 0に近い: 2つのデータに関連性がほぼない(無相関)
身近な例でいうと、「気温が上がるとアイスの売上も上がる」なら正の相関です。「気温が上がると鍋の売上は下がる」なら負の相関になります。
CORREL関数にできることをまとめると、次のとおりです。
- 2つのデータ間の相関係数(ピアソン相関係数)を数値で求める
- 複数の要因を比較して、最も影響が大きいものを特定する
- 散布図と組み合わせてデータの関連性を視覚化する
- SLOPE関数・INTERCEPT関数と組み合わせて回帰分析に進む
NOTE
CORREL関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作は同じです。
CORREL関数の書き方(構文と引数)
基本構文
=CORREL(データ_y, データ_x)
カッコの中に、相関を調べたい2つのデータ範囲を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| データ_y | 必須 | 比較したいデータ範囲の1つ目(例: 売上データ) |
| データ_x | 必須 | 比較したいデータ範囲の2つ目(例: 気温データ) |
引数はたった2つだけなのでシンプルですよね。注意点として、データ_yとデータ_xのデータ数は同じにしてください。データ数が異なると #N/A エラーになります。
TIP
範囲内の文字列・TRUE/FALSE・空白セルは自動的に無視されます。ただし、一方が数値で他方が空白というペアがあると、そのペアごと計算から除外されます。
CORREL関数の基本的な使い方
実際にCORREL関数を使ってみましょう。
あるお店で12か月分の「平均気温」と「アイスクリームの売上」を記録したとします。
| A列(月) | B列(平均気温) | C列(売上) | |
|---|---|---|---|
| 2行目 | 1月 | 5 | 120 |
| 3行目 | 2月 | 6 | 135 |
| 4行目 | 3月 | 10 | 180 |
| 5行目 | 4月 | 15 | 250 |
| 6行目 | 5月 | 20 | 320 |
| 7行目 | 6月 | 25 | 410 |
| 8行目 | 7月 | 30 | 520 |
| 9行目 | 8月 | 32 | 550 |
| 10行目 | 9月 | 27 | 430 |
| 11行目 | 10月 | 18 | 280 |
| 12行目 | 11月 | 12 | 190 |
| 13行目 | 12月 | 7 | 140 |
相関係数を求める
=CORREL(C2:C13, B2:B13)
結果は約 0.99 になります。1にとても近い値なので、気温と売上には強い正の相関があることがわかりますね。
相関係数の読み取り方(強弱の目安表)
CORREL関数の結果が出ても「0.65って強いの?弱いの?」と迷うことがありますよね。以下の目安表を参考にしてください。
| 相関係数の範囲 | 強さの目安 | 解釈 |
|---|---|---|
| 0.7 〜 1.0 | 強い正の相関 | 一方が増えると、もう一方もかなり増える |
| 0.4 〜 0.7 | やや正の相関 | 一方が増えると、もう一方も増える傾向 |
| 0.2 〜 0.4 | 弱い正の相関 | わずかに同じ方向に動く傾向 |
| -0.2 〜 0.2 | ほぼ無相関 | 2つのデータに関連性はほぼない |
| -0.4 〜 -0.2 | 弱い負の相関 | わずかに逆方向に動く傾向 |
| -0.7 〜 -0.4 | やや負の相関 | 一方が増えると、もう一方は減る傾向 |
| -1.0 〜 -0.7 | 強い負の相関 | 一方が増えると、もう一方はかなり減る |
ビジネスの現場では 0.4以上(または-0.4以下) であれば「関連がありそうだ」と判断するケースが多いですよ。
WARNING
相関関係は因果関係ではありません。 相関係数が高いからといって「Aが原因でBが起きている」とは限りません。たとえば「アイスの売上」と「水難事故の件数」は強い相関を示します。しかし、アイスが事故を引き起こしているわけではなく、「気温」という第三の要因が両方に影響しています。データ分析の際は、この点を常に意識してくださいね。
CORREL関数の実践的な使い方・応用例
広告費と売上の関係を分析する
マーケティング部門では「広告費を増やしたら売上は増えるのか?」という問いがよく出てきます。
月別の広告費(D列)と売上(E列)があるとして、次の数式で相関を確認できます。
=CORREL(E2:E13, D2:D13)
結果が0.7以上なら、広告投資に効果がある可能性が高いと判断できます。逆に0.2程度なら、広告費以外の要因が売上を左右していることになりますね。
複数の要因を比較して影響度を特定する
売上に影響しそうな要因が複数ある場合、それぞれの相関係数を並べると優先順位が見えてきます。
=CORREL(売上, 気温) → 0.92
=CORREL(売上, 広告費) → 0.65
=CORREL(売上, 競合価格) → -0.31
この結果なら「気温の影響が最も大きく、広告費もそこそこ影響あり、競合価格は弱い逆相関」と読み取れます。施策の優先順位づけに使えますよ。
散布図と組み合わせて視覚化する
CORREL関数で数値を出したら、散布図と組み合わせるとさらにわかりやすくなります。
- 2つのデータ列(例: B2:C13)を選択する
- 「挿入」メニュー → 「グラフ」を選択する
- グラフの種類を「散布図」に変更する
- 点の並びが右肩上がりなら正の相関、右肩下がりなら負の相関
散布図上でグラフエディタの「カスタマイズ」→「系列」→「トレンドライン」にチェックを入れると、データの傾向を直線で表示できます。「R2」にもチェックを入れると、相関の強さを視覚的にも確認できますよ。
TIP
R2(決定係数)は相関係数を2乗した値です。CORREL関数の結果が0.9ならR2は0.81になります。「一方のデータで他方の81%を説明できる」と解釈できます。
SLOPE・INTERCEPT関数との関係
CORREL関数で「2つのデータに相関がある」とわかったら、次のステップとして回帰分析に進めます。ここで使うのがSLOPE関数とINTERCEPT関数です。
| 関数 | 役割 | 求めるもの |
|---|---|---|
| CORREL | 相関の強さを確認する | 相関係数(-1〜1) |
| SLOPE | 回帰直線の傾きを求める | xが1増えたときyがどれだけ変化するか |
| INTERCEPT | 回帰直線のy切片を求める | x=0のときのyの値 |
回帰直線の式は y = SLOPE × x + INTERCEPT です。CORREL関数で相関が強いと確認できれば、この式を使って将来の値を予測できます。
たとえば、先ほどの気温と売上データで回帰直線を求めてみましょう。
=SLOPE(C2:C13, B2:B13)
結果は約 15.5 です。気温が1度上がると売上が約15.5万円増えるという意味です。
=INTERCEPT(C2:C13, B2:B13)
結果は約 47.7 です。気温が0度のとき売上は約47.7万円と推定できます。
この2つを組み合わせれば、「来月の平均気温が22度なら、売上は 15.5 x 22 + 47.7 = 約389万円」と予測できますよね。
TIP
FORECAST関数を使えば、SLOPE・INTERCEPTを個別に求めなくても予測値を直接計算できます。
=FORECAST(22, C2:C13, B2:B13)のように書きます。
よくあるエラーと対処法
#N/Aエラー
CORREL関数で最もよく見るエラーです。
| 原因 | 対策 |
|---|---|
| データ_yとデータ_xの行数が異なる | セル範囲の行数を揃える |
たとえば =CORREL(B2:B13, C2:C10) のように行数がずれていると発生します。データ範囲を確認してください。
#DIV/0!エラー
以下の原因が考えられます。
| 原因 | 対策 |
|---|---|
| 数値データが1つしかない | 2つ以上の数値データを指定する |
| 片方のデータがすべて同じ値 | データにばらつきがあるか確認する |
すべて同じ値の場合、標準偏差が0になるため計算できません。
#VALUE!エラー
引数に文字列を直接入力すると発生します。
=CORREL("100", "200") → #VALUE!エラー
=CORREL(100, 200) → 正常に計算される(ただしデータ1つなのでエラー)
セル範囲内に文字列がある場合は自動で無視されます。文字列を直接引数として渡した場合にのみ発生するエラーです。
TIP
期待した結果にならないときは、セル範囲に空白や文字列が混ざっていないか確認してください。CORREL関数は対応するペアが両方とも数値のデータだけを使います。COUNT関数で数値の個数を確認するのがおすすめです。
PEARSON関数との違い・関連する統計関数
PEARSON関数との違い
GoogleスプレッドシートにはCORRELとよく似たPEARSON関数があります。
=PEARSON(C2:C13, B2:B13)
実は、CORREL関数とPEARSON関数はまったく同じ計算結果を返します。どちらもピアソンの積率相関係数を計算する関数です。
| 項目 | CORREL | PEARSON |
|---|---|---|
| 戻り値 | ピアソン相関係数 | ピアソン相関係数 |
| 計算結果 | 同じ | 同じ |
| 名前の由来 | Correlation(相関) | Karl Pearson(統計学者) |
どちらを使っても結果は同じなので、チームで統一しておけばOKです。一般的にはCORREL関数のほうが使われる頻度が高いですよ。
関連する統計関数の一覧
| 関数 | 説明 | CORREL関数との関係 |
|---|---|---|
| AVERAGE関数 | 平均値を求める | 相関分析の前にデータの平均を確認する |
| STDEV関数 | 標本標準偏差を求める | データのばらつき具合を確認する |
| VAR関数 | 標本分散を求める | 標準偏差の2乗。ばらつきの別指標 |
| SLOPE関数 | 回帰直線の傾き | 相関確認後の回帰分析に使う |
| INTERCEPT関数 | 回帰直線のy切片 | 相関確認後の回帰分析に使う |
| FORECAST関数 | 線形予測値を返す | 回帰直線を使った将来予測に使う |
| RSQ関数 | 決定係数(R2)を返す | 相関係数の2乗。説明力の指標 |
TIP
CORREL関数の計算式は「共分散 / (データ_yの標準偏差 x データ_xの標準偏差)」です。手動計算も可能ですが、CORREL関数を使えば一発で求められます。
まとめ
CORREL関数は、2つのデータセットのピアソン相関係数を返す関数です。
この記事のポイント
- 構文は
=CORREL(データ_y, データ_x)で、2つのデータ範囲を指定するだけ - 戻り値は-1〜1の相関係数。1に近いほど正の相関、-1に近いほど負の相関
- ビジネスの現場では0.4以上(または-0.4以下)が「関連あり」の目安
- PEARSON関数とは同じ計算結果を返す
- SLOPE・INTERCEPT関数と組み合わせれば回帰分析に進める
- 相関関係は因果関係ではないことを常に意識する
次のステップ:関連する統計関数
CORREL関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。データ分析の幅が広がりますよ。
