RSQ関数とは?決定係数R²をサクッと求める関数
「広告費を増やしたら売上は本当に伸びるの?」
こんなふうに、2つのデータの関連度を数値で確認したい場面ってありますよね。なんとなく相関がありそう…では説得力に欠けます。
そんなときに使えるのがスプレッドシートのRSQ関数です。決定係数R²(アールスクエア)という指標を一発で求められます。この記事では、RSQ関数の基本から実践的な活用法までわかりやすく解説していきます。
スプレッドシートのRSQ関数とは?決定係数R²を求める関数
RSQ関数は「R Squared(Rの二乗)」の略です。2組のデータから決定係数R²を計算します。
決定係数R²とは、ざっくり言うと「データのバラつきのうち、どれだけを回帰直線(予測の線)で説明できるか」を示す指標です。値は0から1の範囲で返されます。
- 1に近い → データが回帰直線にピッタリ沿っている(予測精度が高い)
- 0に近い → データがバラバラで回帰直線では説明できない
たとえばR²=0.85なら、「データの変動の85%をこのモデルで説明できる」という意味になります。R²が高いほど、予測の根拠として使いやすくなりますよ。
RSQ関数の構文と引数
基本構文はこちらです。
=RSQ(data_y, data_x)
| 引数 | 必須 | 説明 |
|---|---|---|
| data_y | はい | 従属変数(結果側)のデータ範囲 |
| data_x | はい | 独立変数(原因側)のデータ範囲 |
ここで注意したいのが引数の順番です。 data_y(結果)が先、data_x(原因)が後になります。CORREL関数やSLOPE関数と同じ順番ですね。
戻り値の範囲:0〜1の意味
RSQ関数の戻り値は必ず0以上1以下になります。マイナスになることはありません。
これは、相関係数(2変数の直線的な関連の強さを−1〜1で表す数値)を二乗しているためです。相関係数が−0.8でも、RSQ関数の結果は0.64になります。つまり、RSQ関数は正の相関・負の相関を区別しません。相関の「方向」ではなく「強さ」だけを見る指標です。方向も知りたい場合は、CORREL関数と組み合わせて使いましょう。
RSQ関数の基本的な使い方
実際に使ってみましょう。広告費と売上のサンプルデータで試します。
| 月 | 広告費(万円) | 売上(万円) |
|---|---|---|
| 1月 | 10 | 120 |
| 2月 | 15 | 150 |
| 3月 | 20 | 200 |
| 4月 | 25 | 210 |
| 5月 | 30 | 280 |
| 6月 | 35 | 300 |
A2:A7に広告費、B2:B7に売上が入っているとします。
数式の入力例
売上が広告費によってどれだけ説明できるかを求めます。
=RSQ(B2:B7, A2:A7)
結果は約0.974になります。R²=0.974ということは、売上の変動の約97%が広告費で説明できるという意味です。かなり強い関連性ですね。
引数の順番に注意:data_yが先
RSQ関数では引数の順番を入れ替えても結果は変わりません。数学的にR²は対称だからです。
=RSQ(B2:B7, A2:A7) → 約0.974
=RSQ(A2:A7, B2:B7) → 約0.974(同じ結果)
ただし、SLOPE関数やFORECAST関数と一緒に使う場面が多いはずです。これらは引数の順番で結果が変わります。混乱を防ぐために、常にdata_yを第1引数にする習慣をつけておくと安心ですよ。
R²の値の読み方と判断基準
「R²がいくつなら合格ライン?」という疑問を持つ方は多いと思います。ここでは目安をまとめます。
R²値の目安表
| R²の範囲 | 強さの目安 | 活用シーン |
|---|---|---|
| 0.9〜1.0 | 非常に強い | 予測モデルとして信頼性が高い |
| 0.7〜0.9 | 強い | 実務の予測に十分使える |
| 0.5〜0.7 | やや強い | 傾向の把握には活用可能 |
| 0.3〜0.5 | 中程度 | 参考値として使える程度 |
| 0.1〜0.3 | 弱い | 他の要因を探した方がよい |
| 0.0〜0.1 | ほぼ無関係 | 関連性はほぼない |
ただし、この目安は分野によって異なります。工学や物理では0.9以上が求められることが多いです。一方、マーケティングや社会科学では0.3〜0.5でも「有意な関係」として扱われることがあります。
「高いR²=良いモデル」の落とし穴
R²が高いからといって安心はできません。注意すべきケースがあります。
- データが2点だけ → R²は必ず1.0になります。2点なら直線が必ず通るからです。これは過適合と呼ばれる状態で、「サンプルに対してのみ精度が高く見える」という問題があります
- 外れ値の影響 → 1つの極端なデータがR²を大きく変えることがあります
- 見せかけの相関 → 時系列データでは、両方が増加トレンドにあるだけで高いR²が出ることがあります
R²だけを見て「このモデルは正しい」と判断するのは危険です。必ずデータの中身も確認してくださいね。
CORREL²=RSQの関係を理解する
RSQ関数の計算結果は、実はCORREL関数の結果を二乗したものと同じになります。
=RSQ(B2:B7, A2:A7) → 約0.974
=CORREL(B2:B7, A2:A7)^2 → 約0.974(同じ結果)
CORREL関数との比較で直感的に理解する
CORREL関数は相関係数r(−1〜1の範囲)を返します。RSQ関数はそれを二乗したR²(0〜1の範囲)を返します。
| 関数 | 戻り値の範囲 | わかること |
|---|---|---|
| CORREL | −1〜1 | 相関の方向と強さ |
| RSQ | 0〜1 | 説明力の大きさ |
使い分けのポイントはシンプルです。「正の相関か負の相関かを知りたい」ならCORREL関数、「予測モデルの当てはまり度合いを知りたい」ならRSQ関数を使いましょう。
PEARSON関数との違い
スプレッドシートにはPEARSON関数もあります。PEARSON関数はCORREL関数とまったく同じ結果を返します。
=CORREL(B2:B7, A2:A7) → 同じ値
=PEARSON(B2:B7, A2:A7) → 同じ値
つまり、以下の3つはすべて同じ結果になります。
=RSQ(B2:B7, A2:A7)
=CORREL(B2:B7, A2:A7)^2
=PEARSON(B2:B7, A2:A7)^2
PEARSON関数は「ピアソンの積率相関係数」の正式名称に由来しています。CORREL関数の別名と考えてOKです。
RSQとSTEYXで回帰精度を2軸評価する
R²は「モデルがどれだけ説明できているか」を示す指標です。でも、実際の予測がどれくらいズレるかはR²だけではわかりません。
ここで役立つのがSTEYX関数です。STEYX関数は回帰の標準誤差(残差の標準偏差)を返します。残差とは、実際のデータと予測値のズレのことです。
R²が高くても誤差が大きいケースがある
たとえば、年間売上が数億円規模のデータでR²=0.95が出たとします。一見すごく良い結果です。しかし、STEYXが5,000万円だったらどうでしょう。
予測のズレが5,000万円もあるなら、実務ではちょっと使いにくいですよね。R²はあくまで「割合」を見ているので、データのスケールが大きいと誤差の絶対額も大きくなりがちです。
2軸評価の具体的な手順
R²とSTEYXを組み合わせて、4つのパターンで判断できます。
| パターン | R²(説明力) | STEYX(誤差) | 判断 |
|---|---|---|---|
| A | 高い(0.7以上) | 小さい | 最良。予測モデルとして信頼できる |
| B | 高い(0.7以上) | 大きい | 要注意。データのスケールを確認 |
| C | 低い(0.7未満) | 小さい | バラつきは小さいが説明力不足 |
| D | 低い(0.7未満) | 大きい | モデルの見直しが必要 |
実際の数式は以下のように並べて入力します。
=RSQ(B2:B7, A2:A7) → 約0.974(説明力:非常に高い)
=STEYX(B2:B7, A2:A7) → 約12.8(予測誤差:約13万円)
R²=0.974でSTEYX=約12.8なら、パターンAに該当します。広告費から売上を予測するモデルとして、十分に信頼できる結果です。
SLOPE・FORECAST・RSQを組み合わせた実践例
ここからは、複数の関数を組み合わせた実践的な使い方を見ていきましょう。
予測値を出してから精度確認するワークフロー
よくあるワークフローは「予測 → 精度確認」の流れです。
ステップ1:回帰直線の傾きと切片を求める
=SLOPE(B2:B7, A2:A7) → 約7.43(傾き)
=INTERCEPT(B2:B7, A2:A7) → 約42.86(切片)
SLOPE関数で傾き、INTERCEPT関数で切片を取得します。
ステップ2:新しい広告費に対する売上を予測する
広告費40万円のときの売上予測をFORECAST関数で求めます。
=FORECAST(40, B2:B7, A2:A7) → 約340.0(万円)
ステップ3:予測の精度を確認する
=RSQ(B2:B7, A2:A7) → 約0.974(説明力)
=STEYX(B2:B7, A2:A7) → 約12.8(標準誤差)
R²=0.974でSTEYX関数の誤差も許容範囲なので、「広告費40万円なら売上は約340万円」という予測は信頼性が高いと判断できます。
回帰分析ミニパネルの作り方
上記の関数をまとめて並べると、ちょっとした回帰分析パネルが作れます。
| セル | 項目 | 数式 |
|---|---|---|
| D2 | 傾き | =SLOPE(B2:B7, A2:A7) |
| D3 | 切片 | =INTERCEPT(B2:B7, A2:A7) |
| D4 | 決定係数 R² | =RSQ(B2:B7, A2:A7) |
| D5 | 標準誤差 | =STEYX(B2:B7, A2:A7) |
| D6 | 相関係数 | =CORREL(B2:B7, A2:A7) |
| D8 | 予測入力 | (広告費を手入力) |
| D9 | 予測結果 | =FORECAST(D8, B2:B7, A2:A7) |
D8に広告費を入れれば、D9に予測売上がすぐ出ます。D4とD5で精度もひと目で確認できるので、社内向けの簡易分析ツールとしておすすめですよ。
LINEST関数との使い分け
RSQ関数は手軽に決定係数を求められる便利な関数です。ただし、説明変数(原因側)が1つの単回帰分析にしか使えません。
複数の要因を同時に分析する重回帰分析では、LINEST関数を使う必要があります。
| 比較項目 | RSQ関数 | LINEST関数 |
|---|---|---|
| 対応する分析 | 単回帰のみ | 単回帰+重回帰 |
| 出力 | R²の値1つ | 傾き・切片・R²・標準誤差などを一括出力 |
| 手軽さ | かんたん | 配列数式の知識が必要 |
| おすすめ場面 | 「とりあえずR²だけ見たい」とき | 本格的な回帰分析をしたいとき |
たとえば「広告費だけでなく、気温や曜日も売上に影響しているのでは?」と考えたときは、LINEST関数の出番です。LINEST関数の第4引数をTRUEにすると、重回帰のR²を含む統計情報を一括で取得できます。
まずはRSQ関数で単回帰の当てはまりを確認する。それで説明力が足りなければLINEST関数で重回帰に進む。この流れが実務ではスムーズです。
よくあるエラーと対処法
RSQ関数を使っていると、いくつかのエラーが出ることがあります。あらかじめ原因を知っておくと、すぐに対処できますよ。
#DIV/0!(ゼロ除算エラー)
以下のいずれかの場合に発生します。
- x値(data_x)がすべて同じ値のとき → 分散がゼロになり計算不能
- データが1件以下のとき → 相関係数を計算できない
対処法:データが最低2件以上あること、x値に変動があることを確認してください。
#N/A(データ不一致エラー)
data_yとdata_xの要素数が異なる場合に発生します。
=RSQ(B2:B7, A2:A6) → #N/A(data_yは6件、data_xは5件)
対処法:両方の範囲が同じ行数・列数になっているか確認しましょう。
#VALUE!(値エラー)
引数の範囲に数値に変換できない文字列が含まれている場合に発生します。セルに「−」や「N/A」などのテキストが入っていないか確認してください。
R²=1.0が返ってきた場合
エラーではありませんが、データが2点のみのとき、R²は必ず1.0になります。2点であれば直線は必ず通るためです。これは過適合(訓練データにだけ過剰に適合した状態)なので、予測モデルとしては使えません。データを追加してから再度確認してみてください。
まとめ
スプレッドシートのRSQ関数は、決定係数R²を手軽に求められる関数です。
ポイントをおさらいしておきましょう。
- 構文は
=RSQ(data_y, data_x)。結果側のデータが第1引数 - 戻り値は0〜1。1に近いほど予測モデルの説明力が高い
- CORREL関数の二乗と同じ結果になる。方向ではなく強さだけを見る指標
- R²だけで判断しない。STEYX関数と組み合わせた2軸評価がおすすめ
- 重回帰分析にはLINEST関数を使う。RSQ関数は単回帰専用
まずは身近な2つのデータでRSQ関数を試してみてください。「なんとなくの感覚」が数値で裏付けられると、データ分析がぐっと楽しくなりますよ。
