メインコンテンツへスキップ

残差プロットを使いこなす:回帰モデルの仮定をチェックする方法

残差プロットとは何か、一般的なパターンの読み方、そして非線形性、不均一分散、外れ値など回帰の問題の発見にどう役立つかを学びます。
更新 2026年9月10日  · 9 分 読む

AIで探索

ChatGPTClaudePerplexity

回帰モデルを当てはめ、R²も悪くない。係数も直感的に合っている。けれど、見栄えのいいサマリーテーブルは、ひどくミススペックなモデルを隠すことがあります。数字が見落とすものを一発で捉える散布図がひとつ——残差プロットです。

本記事では、残差プロットとは何か、どう読むか、知っておくべきパターン、そしてPythonとRの両方での作成方法を解説します。多くの初心者はこの診断ステップをまるごと飛ばします。読み終える頃には、そうはならないはずです。

残差プロットとは?

残差は、モデルの予測と実際の結果の差です: residual = observed − predicted。残差プロットはその差を可視化します。x軸には予測(当てはめ)値または説明変数、y軸には残差を置きます。ゼロの位置に水平の基準線が引かれ、完全一致の予測を表します。

ゼロのまわりにランダムに散った点群:健全な残差プロット。Image by Author. 

中心的な考え方はこうです。モデルが関係性をうまく捉えていれば、残差はノイズのように見えるはず。ゼロの周りにランダムに散り、明確なパターンがない。もし形が現れたら、係数だけでは語れない何かをモデルが教えてくれているのです。

残差プロットの読み解き方

パターンを探してください。理想的には、はっきりしたパターンはないはず——これが基本原則です。残差の位置、ばらつき、形が示すものが面白いポイントになります。

位置:散布はゼロを中心にしていますか?

当てはめ値のある領域ではゼロより上、別の領域では下に残差が偏る場合、モデルにバイアスがあります。特定の領域で一貫して過小または過大に予測しているのです。これは、欠落した変数や、直線モデルでは捉えられない非線形関係を示唆することがよくあります。

ばらつき:分散はおおむね一定ですか?

左から右へ眺めてください。すべての当てはめ値で残差の広がりがだいたい同じなら良い兆候です。当てはめ値が大きくなるにつれて点が扇状に広がるなら、分散が変わっています。これは不均一分散(ヘテロスケダスティシティ)と呼ばれます。係数推定自体は壊しませんが、標準誤差が当てにならなくなります。仮説検定を行うなら重要です。

形:カーブやトレンドはありますか?

平坦でパターンがないのが理想です。U字や弧は、非線形項の欠落を示します。クラスターや帯状の並びは、モデルがひとまとめに扱っているサブグループの存在を示唆します。ほかと大きく離れた単独の点は調査に値します。

よくある残差プロットのパターンと意味

モデルの問題を示す4つの残差プロット・パターン。Image by Author.

ゼロの周りにランダムな散布

良好な結果です。ゼロ線の上下におおむね均等に分布し、目立ったトレンドがない点群は、モデルが関係性を適切に捉えていることを示します。ある程度のランダムさは当然です。

曲線的なパターン

曲線や弧状のパターンは、たいてい未考慮の非線形関係を意味します。データが曲がっているのに、モデルが直線を当てはめているのです。対処法は多くの場合、多項式項(x²のような)を加えるか、説明変数に変換を施すこと。住宅価格や生物成長のような題材では、実務でよく見られるパターンです。

漏斗(ファン)型

当てはめ値が大きくなるにつれて残差が広がる——これは不均一分散で、分散が一定ではありません。結果の大きさに応じて予測誤差が自然と大きくなる金融データなどで一般的です。応答変数に対する対数変換は初手として妥当なことが多く、加重最小二乗も選択肢です。

クラスターやグループ

残差プロットに明確なグループが見える場合、モデルが考慮していないサブ母集団がデータに含まれていることが多いです。モデルに入れるべきカテゴリ変数(地域、処置群、製品タイプなど)があるはずです。2〜3本の帯が見えたら、まずそこから調べてください。

大きく孤立した残差

ほかから大きく離れた点は要確認です。真の外れ値、入力ミス、特異な特徴を持つ観測のいずれかかもしれません。自動的に削除しないでください。まず理解すること。残すべきか除外すべきかは利便性ではなく文脈次第です。

これらの各パターンに対して、残差プロットが示すのは症状であり、診断ではありません。何かがおかしいことは教えてくれますが、理由は自分で特定する必要があります。

残差プロットで確認できる回帰の仮定

以上のパターンを踏まえ、残差プロットで評価できる仮定と、できない仮定を明確にしておきましょう。

  • 線形性:説明変数と目的変数の関係が真に線形なら、当てはめ値に対する残差に傾向は現れません。曲線や弧は、線形性が成り立っていない直接的な視覚サインです。
  • 等分散:漏斗パターンこそが不均一分散の見た目です。広がりが当てはめ値とともに増えるなら、等分散は破られています。残差vs当てはめ値プロットは、これを捉えるのに最も一般的な道具です。
  • 独立性:観測に自然な順序(時間、空間、被験者クラスターなど)がある場合、その順序に対する残差をプロットしてパターンを確認できます。時間順で残差がトレンドを示すなら自己相関が疑われます。ただし単純な残差vs当てはめ値プロットでは見えないこともあり、専用の残差vs順序プロットが必要な場合があります。
  • 外れ値と影響点:大きく孤立した残差は、モデルがうまく予測できていない観測を示します。回帰直線を不釣り合いに引っ張る「影響」に関しては、Residuals vs. Leverageプロットのほうが基本の残差プロットより有益です。

残差プロットで信頼して評価できないもののひとつが正規性です。平坦な残差vs当てはめ値プロットは、誤差が正規分布に従うことを保証しません。正規性にはQ-Qプロットが必要です。ここは混同されがちなので押さえておきましょう。

Pythonで残差プロットを作る方法

一般的な手順は、scikit-learnでモデルを当てはめて残差を計算し、matplotlibで可視化します。以下は住宅データの単回帰を使った完結な例です。

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# Sample data: square footage predicting home price
sqft = np.array([800, 1000, 1200, 1500, 1800, 2000, 2200, 2500, 3000, 3500])
price = np.array([150, 180, 210, 260, 300, 330, 370, 420, 500, 560])

# Reshape for sklearn and fit the model
X = sqft.reshape(-1, 1)
model = LinearRegression()
model.fit(X, price)

# Generate predictions and calculate residuals
predicted = model.predict(X)
residuals = price - predicted

# Plot residuals against fitted values
plt.figure(figsize=(8, 5))
plt.scatter(predicted, residuals, color='steelblue', edgecolors='white', s=80)
plt.axhline(y=0, color='red', linestyle='--', linewidth=1.2)
plt.xlabel('Fitted Values')
plt.ylabel('Residuals')
plt.title('Residual Plot')
plt.tight_layout()
plt.show()

肝はresiduals = price - predictedの一行です。axhline()でゼロの基準線を追加しています。これがないと読み取りがかなり難しくなります。出力が概ねパターンレスに見えるなら、まずまず良好です。高い当てはめ値で残差がやや大きくなっている点に注目してください。点が10個しかないので断言は困難ですが、先ほど触れたファン型の兆しを示唆しています。

Pythonでの回帰をさらに深掘りするなら、Introduction to Regression with statsmodels in Pythonのコースで、モデル当てはめ、仮定の確認、解釈を詳しく学べます。

Rで残差プロットを作る方法

Rは標準機能でこれをやや簡単にします。いったんlm()でモデルを当てはめれば、組み込みのplot()関数が残差vs当てはめ値を含む完全な診断パネルを自動で出力します。

# Same housing data in R
sqft <- c(800, 1000, 1200, 1500, 1800, 2000, 2200, 2500, 3000, 3500)
price <- c(150, 180, 210, 260, 300, 330, 370, 420, 500, 560)

# Fit the model and view diagnostics
housing_model <- lm(price ~ sqft)
plot(housing_model, which = 1) # which = 1 gives residuals vs. fitted

引数which = 1は、残差vs当てはめ値プロットだけを取り出します。省略すると、標準の4つの診断図(残差vs当てはめ値、Q-Q、スケール-ロケーション、残差vsレバレッジ)がすべて得られます。全体像を素早く把握したいときに便利です。Rはまた、最も極端な3点にインデックスで注釈を付けるので、手作業で外れ値を探す手間が省けます。

Rでの回帰を一通り学ぶには、Introduction to Regression in Rのコースで、モデル構築と診断を基礎から扱っています。

残差プロットと他の回帰診断プロットの違い

残差vs当てはめ値プロットは出発点であって、全体像ではありません。いくつかの関連プロットは別の問いに答えます。

残差プロット vs Q-Qプロット

残差vs当てはめ値プロットは線形性と等分散を確認します。Q-Qプロットは残差が正規分布に従うか(正規性)を確認します。これは別の問いです。きれいに見える残差プロットは正規性を保証しませんし、Q-Qプロットは分散について教えてくれません。どちらも併用するのが一般的です。

異なる2つのプロットで、モデルに関する異なる問いに答えます。Image by Author.

残差プロット vs スケール-ロケーションプロット

スケール-ロケーション(spread-locationとも)プロットは、当てはめ値に対して標準化残差の絶対値の平方根をプロットします。不均一分散の検出に特化しており、符号を取り除いて広がりだけに注目するため、素の残差プロットよりも漏斗パターンが見つけやすいことがよくあります。

残差プロット vs 残差vsレバレッジプロット

レバレッジは、モデルがどれだけ悪く予測したかではなく、観測の説明変数の値がどれほど特異かを測ります。高いレバレッジと大きな残差が組み合わさると、潜在的な影響点になります。残差vsレバレッジプロットはこれらの組み合わせを特定し、通常は最も問題のある点を名前付きで強調します。影響点がモデルを歪めていないか心配なら、これを確認してください。

残差プロットに問題が出たときの対処

残差プロットは診断であって、判決ではありません。パターンが見えるからといって、モデルが無価値という意味ではありません。一般的なパターンと次の一手の対応は次のとおりです。

  • 曲線的なパターン: 多項式項の追加や説明変数の変換を検討してください。xの対数変換やx²項が状況をまっすぐにすることがよくあります。
  • 漏斗型: 応答変数の対数または平方根変換を試してください。効かない場合は、加重最小二乗でノイズの大きい観測の影響を小さくします。
  • 大きく孤立した残差: 観測を調査してください。まずは入力ミスを確認。正当な点であれば、その特異性をモデルで考慮すべきか検討します。
  • クラスターやグループ: まだ入れていないカテゴリ変数がないか探してください。サブグループごとの別モデルが適切な場合もあります。

残差プロットは症状を示します。原因を特定するわけではなく、ひとつのパターンにも複数の説明がありえます。より良い問いを立てるきっかけとして使ってください。

残差プロットの読み解きでよくある誤り

  • 完全にランダムなプロットを期待する:現実のデータは雑然としています。少数の不適合点、わずかな非対称性、端でのクラスタリング——これは普通です。問うべきは、完全にランダムかどうかではなく、より良いモデルなら解消できる体系的なパターンがあるかどうかです。
  • すべての外れ値を悪いデータとみなす:大きな残差は、その観測に対する予測が悪かったことを意味しますが、観測が誤りだという意味ではありません。外れ値がデータセットで最も興味深い点ということもあります。正体を理解してからでなければ削除しないでください。
  • 残差プロットが正規性を証明すると考える:しません。きれいな残差vs当てはめ値プロットは、線形性と等分散を示すものです。正規性にはQ-Qプロットが必要です。両者は補完的で、置き換え可能ではありません。
  • 文脈を無視してプロットだけを見る:時系列モデルの残差プロットは、横断データのそれとは読み方が異なります。懸念すべきパターンかどうかは、データ構造、サンプルサイズ、モデルの用途に依存します。予測モデルで修正が必要なパターンでも、探索的分析では無視できるかもしれません。

結論

モデルを当てはめ、サマリーを確認し、R²に満足する——多くの人はここで止まります。残差プロットはその後に見るもので、しばしば別の物語を語ります。ゼロ周りのランダムな散布が理想。曲線、漏斗、クラスター、極端で孤立した点は、それぞれモデルが考慮していない何かを示唆します。

単独のプロットで全体像は得られません。残差vs当てはめ値プロットに、正規性のためのQ-Qプロット、分散のためのスケール-ロケーションプロット、影響点が気になるならレバレッジプロットを組み合わせてください。いずれも異なる問いに答えます。

さらに進みたい場合は、Intermediate Regression with statsmodels in Pythonのコースで、診断が問題を示したときの対応まで含め、仮定の確認を詳しく扱っています。回帰の仮定とモデル評価をより広く学ぶには、Pythonにおける線形回帰の仮定に関するチュートリアルが次の一読に最適です。


Vinod Chugani's photo
Author
Vinod Chugani
LinkedIn

Vinod Chuganiは、東京でJPMorgan最年少のヘッジファンド・セールスデスク責任者としてキャリアをスタートし、その後Lehman Brothersで個人売上記録を樹立、さらに30か国に展開するエレクトロニクス流通事業を売上SG$1億を超える規模へと成長させたのち、データ分野へ転身しました。Duke大学で経済学を専攻し、NYC Data Science Academyを修了。MavenのHugo Bowne-Andersonによる「Building AI Applications」コースでは、100名超の応募者の中から3名の奨学生の一人に選出されました。現在は、DataCamp、KDnuggets、Machine Learning Mastery、Statologyにて統計からエージェント型AIまで幅広いテーマで執筆し、NYC Data Science Academyでは1,000回以上の1対1セッションを通じてデータ分野のプロフェッショナルをメンターしています。

 

FAQs

残差プロットに曲線的なパターンが出るのは何を意味しますか?

弧状やアーチ状のパターンは、予測変数と目的変数の間にモデルが捉え損ねている非線形関係があることを示すのが一般的です。線形回帰は直線を当てはめるため、真の関係に曲がりがあると、残差に系統的な曲線として現れます。通常の対処は、多項式項(x²など)を追加するか、予測変数に対数や平方根の変換を適用することです。

正規的なデータセットでは、どの程度の残差が外れ値のように見えるべきですか?

誤差が正規分布に従う適合の良いモデルでは、標準化残差のおよそ5%が偶然±2の外に、0.3%未満が±3の外に出ます——つまり、いくつかの極端な点は想定内で、自動的に問題とは限りません。重要なのは、それらの点がパターンを形成しているか、あるいは単独の点がデータ問題を示唆するほど異常な残差をもっているかです。

残差プロットだけで回帰の仮定をすべてチェックできますか?

いいえ——そしてこれはよくある誤解です。残差vs当てはめ値プロットは、線形性、等分散、(観測順でプロットすれば)独立性の確認に役立ちますが、正規性を信頼して評価することはできません。正規性にはQ-Qプロットが必要です。影響点を調べるには、残差vsレバレッジプロットのほうが有用です。残差プロットは最初の診断であって、唯一の診断ではないと考えてください。

残差プロットとスケール-ロケーションプロットの違いは何ですか?

どちらも分散を評価しますが、方法が異なります。残差プロットは当てはめ値に対する生の残差(正負あり)を示し、曲線やクラスターなど全体的なパターンの把握に有用です。スケール-ロケーションプロットは当てはめ値に対して標準化残差の平方根(すべて正)を示し、不均一分散の抽出に適します。漏斗型が微妙な場合、スケール-ロケーションのほうが見分けやすいことが多いです。

残差プロットに大きな孤立した残差がある場合、外れ値を削除すべきですか?

自動的にはそうしません。大きな残差は、その観測に対するモデルの予測が悪かったことを意味するだけで、観測が誤っているという意味ではありません。削除する前に、その点が入力ミスか、珍しいが正当なケースか、モデルの適用範囲外かを確認してください。残差プロットを良く見せるために正当なデータを削るのはモデル操作の一種です。観測が正当なら、モデルの限界を認めるか、別のモデル構造を検討するほうが誠実です。

残差プロットの不均一分散は実際に何に影響しますか?

漏斗(ファン)パターンは係数推定にバイアスを与えません——平均的な効果は正しく推定されます。問題になるのは標準誤差の信頼性で、p値や信頼区間に影響します。回帰を純粋に予測のために使うなら影響は小さいかもしれませんが、仮説検定や信頼区間が必要なら、応答変数の変換か、不等分散に対する標準誤差の補正が必要です。

残差プロットは重回帰でも単回帰と同様に使えますか?

はい。多重回帰ではモデルが誤る余地が増えるため、むしろ重要度が増します。標準的なやり方は、全体像のために残差を当てはめ値に対して描き、その後、各予測変数に対しても個別にプロットし、モデルが見逃している非線形関係がないかを確認します。解釈のルールは同じです:パターンを探し、体系的なものを調べてください。

時系列回帰と横断回帰で、残差プロットの見方はどう異なりますか?

横断データの回帰では、残差vs当てはめ値プロットで曲線、漏斗、クラスターといった空間的パターンを探します。時系列回帰では、残差が時間とともに相関していないかも確認が必要です。自己相関は独立性の仮定に反し、標準誤差を当てにならなくします。残差を時間インデックスに対してプロットし、トレンドや周期的パターンを探してください。Durbin-Watson統計量は一次自己相関の検定にも使えます。単純な残差vs当てはめ値プロットだけでは捉えられません。

トピック
データ分析
データサイエンス

DataCampで学ぶ

Courses

統計的思考 ケーススタディ

4時間
16.2K
統計的思考力を活かし、実データセットから実用的な洞察を引き出して、習得への重要な一歩を踏み出しましょう。
詳細を見るRight Arrow
コースを開始
もっと見るRight Arrow