散布図・回帰直線・重回帰分析の違い|残差と決定係数を具体例で理解する
気温と商品の売上、学習時間とテストの得点など、二つの数値の関係を調べたい場面があります。散布図や回帰分析を使うと、その関係を図や式で整理し、予測に役立てることができます。
ただし、回帰式が求められたからといって、原因が分かったり、将来の値を正確に予測できたりするとは限りません。係数の意味、予測と実測のずれ、モデルを評価した条件を合わせて読むことが大切です。
この記事では、散布図、単回帰分析、重回帰分析の違いを整理し、残差と決定係数を小さな計算例で確認します。数値を計算するだけでなく、その結果から何が言えるのかを理解していきましょう。
目次
1.散布図・単回帰分析・重回帰分析の違い
散布図は、二つの変量を横軸と縦軸に取り、一組の観測値を一つの点として表した図です。回帰分析は、予測したい変数と、それを説明するために使う変数の関係を、式などで表す方法です。
この記事では、直線やその拡張によって関係を表す線形回帰を中心に扱います。回帰分析にはほかの種類もあり、すべての関係を直線で表せるわけではありません。
| 方法 | 主な役割 | 例 |
|---|---|---|
| 散布図 | 二つの変量の関係を視覚的に確認する | 気温と売上を点で表す |
| 単回帰分析 | 一つの説明変数を使って目的変数を説明・予測する | 気温から売上を予測する |
| 重回帰分析 | 複数の説明変数を使って目的変数を説明・予測する | 気温や営業時間などから売上を予測する |
説明変数は、そのまま「原因」を意味しない
予測したい変数を「目的変数」、説明や予測に使う変数を「説明変数」と呼びます。ただし、この名称だけで、説明変数が目的変数の原因だと決まるわけではありません。
例えば、学習時間と得点に関係があっても、事前の理解度、教材、学習方法などが関わっている可能性があります。「関係が見られること」と「学習時間を増やせば、その分だけ得点が上がること」は区別しましょう。
2.散布図では、傾向とデータの条件を確認する
散布図を見るときは、点の並び方に加えて、対象、単位、観測期間を確認します。売上の例なら、一つの点が一日分なのか、一店舗分なのかによって、比較している内容が変わります。
右肩上がりや右肩下がりの傾向だけでなく、曲線的な関係、複数の集団、極端に離れた点がないかも見てください。一本の直線を当てはめる前に、データの特徴を把握することが大切です。
- 関係の向き:横軸の値が大きいとき、縦軸の値はどう変化しているか。
- 関係の形:直線に近いか、曲線的か、途中で傾向が変わるか。
- 散らばり:同じような横軸の値でも、縦軸の値が大きく異なるか。
- 集団の違い:店舗、地域、時期などによって点のまとまりが分かれていないか。
- 離れた点:入力ミスなのか、実際に起きた特別な事例なのか。
極端な値があっても、見た目だけで削除しないようにしましょう。単位の取り違えや入力ミスは修正が必要ですが、正しく観測された値なら、その背景を調べることも分析の一部です。
データの中心や散らばりを確認する際は、代表値の性質も押さえておきましょう。平均値・中央値の違いと、仮説検定の結果を読む際の注意点を整理しています。
データ分析の代表値と仮説検定|平均・中央値・p値の読み方を具体例で解説 記事を読む →3.回帰直線と最小二乗法を理解する
単回帰分析で求めた予測式は、次のように表せます。ここでは、実測値を \(y\)、モデルによる予測値を \(\hat{y}\) として区別します。
$$ \hat{y}=b_0+b_1x $$
\(b_0\) は切片、\(b_1\) は傾きです。傾きは、このモデル上で説明変数が1単位増えたときに、予測値がどれだけ変わるかを表します。
切片は、説明変数が0のときの予測値です。ただし、0が観測した範囲から離れていたり、現実的な意味を持たなかったりする場合は、切片を無理に実際の状況へ当てはめる必要はありません。
最小二乗法は、縦方向のずれの二乗和を最小にする
通常の最小二乗法では、実測値と予測値の差を二乗し、その合計が最も小さくなるように係数を求めます。ここで扱うのは縦軸方向の差であり、点から直線への最短距離ではありません。
$$ \sum_{i=1}^{n}\left\{y_i-(b_0+b_1x_i)\right\}^2 $$
ずれを二乗するため、大きく外れた観測値は計算結果に強く関わる場合があります。直線が引けたら終わりにせず、どの点が当てはめに影響しているかも確認しましょう。
小さなデータで、実測値と予測値を比べる
計算を確認するため、説明変数が「1、2、3」、目的変数が「2、2、5」という架空のデータを使います。この3点に、切片を含む通常の最小二乗法を適用すると、回帰直線は \(\hat{y}=1.5x\) になります。
| 説明変数 \(x\) | 実測値 \(y\) | 予測値 \(\hat{y}\) | 残差 \(y-\hat{y}\) |
|---|---|---|---|
| 1 | 2 | 1.5 | 0.5 |
| 2 | 2 | 3 | −1 |
| 3 | 5 | 4.5 | 0.5 |
回帰直線は、すべての点を通るとは限りません。この例では、3点全体の残差平方和を小さくする直線を求めているため、一つひとつの点にはずれが残っています。
なお、この3点は仕組みを説明するための例です。実際の予測に十分なデータ量があることや、直線というモデルが妥当であることを示すものではありません。
4.重回帰分析の係数は、ほかの変数との関係を踏まえて読む
複数の説明変数を使う重回帰分析では、予測式を次のように表せます。ここでは説明変数の数を \(p\) とし、データの件数を表す \(n\) と区別します。
$$ \hat{y}=b_0+b_1x_1+b_2x_2+\cdots+b_px_p $$
このような加法的なモデルでは、ある係数は、モデルに含めたほかの説明変数を一定としたときの予測値の変化を表します。変数の組み合わせやモデルの形が変わると、係数の意味や値も変わり得ます。
架空の家賃モデルで確認する
次の式は、係数の読み方を説明するための架空のモデルです。実際の物件データから推定した式ではなく、地域の相場や適正な家賃を示すものでもありません。
$$ \hat{y}=50000+2000x_1-1500x_2-1000x_3 $$
- \(\hat{y}\):予測する月額家賃(円)
- \(x_1\):広さ(平方メートル)
- \(x_2\):築年数(年)
- \(x_3\):駅からの徒歩時間(分)
広さ40平方メートル、築10年、徒歩5分なら、計算上の予測値は11万円です。これは式へ数値を代入した結果であり、実際の家賃が11万円になることを保証するものではありません。
$$ 50000+2000\times40-1500\times10-1000\times5=110000 $$
広さの係数2000は、このモデルでは、築年数と徒歩時間を同じにしたとき、広さが1平方メートル大きい物件の予測家賃が2000円高くなることを意味します。実際に部屋を広くすれば必ず家賃が2000円上がる、という因果効果を示しているわけではありません。
係数の大きさだけで、重要な変数を決めない
係数の値は、変数の単位に左右されます。広さを1平方メートル単位から10平方メートル単位へ変更すると、同じ関係を表す係数は2000から20000へ変わります。
このため、広さの係数2000と築年数の係数−1500を、そのまま比較して「広さのほうが重要」とは言えません。標準化した係数を使う方法もありますが、それだけで因果的な重要度が分かるわけではありません。
5.残差と誤差を区別し、ずれ方を確認する
残差は、観測した値から、当てはめたモデルの予測値を引いたものです。実際のデータと推定した式があれば計算できます。
$$ e_i=y_i-\hat{y}_i $$
一方、統計モデルの「誤差項」は、母集団について仮定した関係では説明しきれない部分を表します。未知の係数を含むため、通常は残差のように直接計算できるものではありません。
例えば、単回帰の統計モデルは次のように書けます。未知の係数を \(\beta_0,\beta_1\)、誤差項を \(\varepsilon_i\) とし、データから求めた予測式と区別します。
$$ y_i=\beta_0+\beta_1x_i+\varepsilon_i $$
残差の符号と並び方を見る
残差が正なら、実測値は予測値より大きく、モデルはその値を小さく予測しています。残差が負なら、モデルは実測値より大きく予測しています。
残差を予測値や観測順序に対して描いた図は、モデルを確認する手掛かりになります。NISTの統計ハンドブックでも、決定係数だけでなく、残差の図を使った確認が重視されています。
| 残差の見え方 | 確認したいこと |
|---|---|
| 曲線状の並びがある | 直線では捉えきれない関係がないか |
| 予測値が大きいほど、残差の幅も広がる | 値の大きさによって、ばらつきが変わっていないか |
| 時間順に正や負の残差が続く | 季節性、時間的な依存、環境の変化などがないか |
| 一部の点だけ残差が大きい | 記録の誤り、特殊な条件、モデルに含めていない情報がないか |
残差に特徴があった場合も、すぐにデータを削除したり、別の手法へ変更したりするのではなく、原因を調べます。また、係数の検定や区間推定まで行う場合は、誤差の独立性や分散など、使用する手法の仮定も確認してください。
6.決定係数R²は、予測の正解率ではない
決定係数 \(R^2\) は、実測値をその平均値で予測する場合と比べて、モデルの二乗誤差がどれだけ小さいかを表す指標です。目的変数の値がすべて同じではない場合、次の式で計算できます。
$$ R^2=1-\frac{\sum_{i=1}^{n}(y_i-\hat{y}_i)^2}{\sum_{i=1}^{n}(y_i-\bar{y})^2} $$
分子は残差平方和、分母は実測値と平均値との差の二乗和です。\(R^2=0.8\) でも、「予測が80%の確率で当たる」「結果の80%の原因が判明した」という意味ではありません。
先ほどの3点では、R²は0.75になる
実測値「2、2、5」の平均は3です。回帰直線による残差平方和は1.5、平均値からの差の二乗和は6なので、決定係数は0.75になります。
$$ \sum_{i=1}^{3}(y_i-\hat{y}_i)^2 =0.5^2+(-1)^2+0.5^2=1.5 $$
$$ \sum_{i=1}^{3}(y_i-\bar{y})^2 =(2-3)^2+(2-3)^2+(5-3)^2=6 $$
$$ R^2=1-\frac{1.5}{6}=0.75 $$
この例では、平均値3をすべての予測に使う場合と比べ、同じ3点に対する二乗誤差の合計が75%小さくなっています。新しいデータでも同じ性能が得られるかは、別に確認する必要があります。
R²が必ず0〜1に収まるとは限らない
切片を含む通常の最小二乗法を、当てはめに使ったデータで評価し、目的変数にばらつきがある場合、\(R^2\) は0〜1に収まります。しかし、別のデータで評価する場合などは、負になることがあります。
上の式で負になるのは、評価対象の平均値を一律に予測する場合より、モデルの二乗誤差が大きいときです。また、目的変数がすべて同じ場合は分母が0になるため、この式では通常の計算ができません。
説明変数を増やしても、未知のデータに強くなるとは限らない
同じデータに対する通常の最小二乗法では、既存の説明変数を残したまま変数を追加しても、訓練データ上の残差平方和は増えません。そのため、訓練データの \(R^2\) は下がらず、無関係な変数でも上がることがあります。
自由度調整済み決定係数は、変数の数を考慮する指標ですが、将来の予測性能を保証するものではありません。予測が目的なら、モデル作成に使っていないデータでの確認が必要です。
数値を判断に使うときは、その指標が何を表すのかを区別することが大切です。期待値・統計的有意差・リスクの違いを、具体例で確認できます。
確率を意思決定に活かす方法|期待値・有意差・リスクの読み方を具体例で解説 記事を読む →7.予測に使う前に確認したいこと
モデルの評価では、数値の大きさだけでなく、実際に使う状況に近い条件で確認したかが重要です。学習したデータにはよく合っていても、別の時期や対象では大きく外れることがあります。
モデル作成に使わないデータで評価する
予測性能を確認するには、モデルを作るデータと評価するデータを分けます。モデルや変数を選ぶために繰り返し使った評価データも、最終的な性能を確認する独立したデータとは区別してください。
時系列の売上予測なら、過去のデータでモデルを作り、それより後の期間で評価するなど、実際の利用順序に合わせます。未来にしか分からない情報を説明変数へ含めないことも必要です。
R²に加えて、元の単位でずれを確認する
家賃なら円、販売数なら個というように、実際に扱う単位で予測のずれを確認すると、用途に対して許容できるかを考えやすくなります。代表的な指標に、平均絶対誤差のMAEと、二乗平均平方根誤差のRMSEがあります。
| 指標 | 計算の考え方 | 読む際のポイント |
|---|---|---|
| MAE | 実測値と予測値の差の絶対値を平均する | 元の単位で、平均的なずれの大きさを確認できる |
| RMSE | 差を二乗して平均し、平方根を取る | 大きなずれを相対的に強く反映する |
| R² | 平均値による予測と、二乗誤差を比較する | 評価データのばらつきにも左右される |
「R²が0.7以上なら合格」といった基準を、すべての分野へ当てはめることはできません。どれくらいのずれが許容されるか、特に大きく外れる対象がないかを、利用目的に合わせて確認しましょう。
多重共線性は、変数同士の重なりとして確認する
説明変数の一つが、ほかの説明変数の組み合わせでほぼ表せる場合、係数の推定が不安定になることがあります。これが多重共線性の問題で、データの小さな変化によって係数が大きく変わる場合があります。
例えば、合計売上と、その内訳である商品A・商品Bの売上を同時に説明変数へ入れると、変数同士に重なりが生じます。二変数ずつの相関だけでは見つからない場合もあり、必要に応じてVIFなどの診断を使います。
相関が高い変数を機械的に削除するのではなく、何を説明・予測したいかに照らして検討してください。係数を個別に解釈することと、予測全体の性能を評価することも分けて考えます。
観測した範囲の外へ、そのまま式を延ばさない
観測した範囲を超えて予測することを「外挿」といいます。例えば、10〜30度のデータから求めた気温と売上の関係が、40度でも同じように続くとは限りません。
値の範囲だけでなく、地域、時期、対象者などが変わった場合にも注意が必要です。モデルを使う条件が、元のデータとどの程度異なるかを確認しましょう。
分析結果を改善につなげるには、比較条件をそろえ、原因の仮説と確認できた事実を分ける必要があります。データ分析から施策の検証までの進め方を紹介しています。
データ分析の進め方|数値の比較から原因の仮説・改善策の検証まで 記事を読む →8.回帰分析でよくある質問
散布図で直線的な関係が見えなければ、分析できませんか?
直線的な関係が弱くても、曲線的な関係や、条件による違いがある可能性があります。ただし、関係が見つかるまで都合よく対象を分けるのではなく、分ける理由を明確にし、別のデータでも確かめましょう。
説明変数は、多いほうがよいですか?
多ければよいわけではありません。不要な変数を増やすと、訓練データへ過度に合わせてしまうほか、収集や管理の負担も増えます。予測時に取得できる情報か、追加することで評価データの性能が改善するかを確認してください。
残差が0なら、そのモデルは正しいのでしょうか?
その観測値と予測値が一致したことは分かりますが、モデル全体の妥当性や将来の性能までは分かりません。訓練データを完全に再現する複雑なモデルでも、新しいデータでは大きく外れることがあります。
重回帰分析をすれば、因果関係を証明できますか?
重回帰分析を行うだけでは証明できません。モデルに含めていない要因、測定の誤り、原因と結果の逆転などが残る可能性があります。因果効果を調べる場合は、データの集め方や研究設計、必要な仮定まで検討します。
9.回帰式と評価結果を、セットで読む
散布図は関係の形を確認するために、回帰式は関係を数値で表すために使います。そのうえで、残差がどのように現れるか、モデル作成に使わなかったデータでも予測できるかを確かめることが大切です。
- 説明変数を、そのまま原因と決めつけない。
- 回帰係数は、単位と、モデルに含めたほかの変数を確認して読む。
- 残差は「実測値−予測値」として計算し、ずれ方も調べる。
- R²を正解率と捉えず、評価したデータと条件を確認する。
- 予測に使う場合は、未知のデータでのずれと利用可能な範囲を確かめる。
まずは小さなデータで実測値・予測値・残差を並べ、それぞれの意味を確認してみてください。式を求めることと、その式を使ってよいかを判断することを分けると、分析結果をより適切に扱えるようになります。
10.参考資料
- NIST:How can I tell if a model fits my data?:残差の定義と、決定係数だけに頼らないモデルの確認方法。
- NIST:Regression Diagnostics:回帰診断と多重共線性。
- scikit-learn:Metrics and scoring:R²、MAE、RMSEなど、予測を評価する指標。
- scikit-learn:Cross-validation:モデルの評価方法と、時系列データを扱う際の注意点。
Learning Tools
記事を検索したい方はここから!
記事を検索
関連記事や、今の内容に近いテーマをすぐに検索できます。
例: AI / 情報Ⅰ / Python / 統計 / 資格 / 学習法