多項式回帰

多項式回帰(Polynomial Regression)は、回帰分析の一種であり、線形回帰では表現しきれない非線形な関係をモデリングするために用いられます。ただし、「非線形な関係を線形モデルの枠組みで扱う」点が重要な特徴です。


1. 基本的な考え方

多項式回帰では、説明変数 xx と目的変数 yy の関係を、多項式関数で近似します。たとえば、2次の多項式回帰では次のように表されます:

y=β0+β1x+β2x2+εy = \beta_0 + \beta_1 x + \beta_2 x^2 + \varepsilon

一般化すると、d次の多項式回帰は以下のように表現されます:

y=β0+β1x+β2x2++βdxd+εy = \beta_0 + \beta_1 x + \beta_2 x^2 + \cdots + \beta_d x^d + \varepsilon

ここで、

  • β0,β1,,βd\beta_0, \beta_1, \ldots, \beta_d:回帰係数

  • ε\varepsilon:誤差項(ノイズ)


2. 線形回帰との関係

見かけは非線形モデルですが、パラメータに対しては線形です(係数 β\beta は一次式として現れる)。そのため、多項式回帰は通常の**線形回帰の手法(最小二乗法など)**で解くことが可能です。

例として、特徴量を次のように変換することで線形回帰に帰着します:

z1=xz2=x2z3=x3zd=xd\begin{align*} z_1 &= x \\ z_2 &= x^2 \\ z_3 &= x^3 \\ &\vdots \\ z_d &= x^d \end{align*}

変数 ziz_i を使って線形回帰を行うと、非線形な関係を捉えることができます。


3. 実装上の注意点

過学習(Overfitting)

多項式の次数 dd を大きくすると、訓練データには非常によく適合しますが、テストデータへの汎化性能が低下するおそれがあります。これが過学習です。

正則化との併用

高次の多項式回帰では、リッジ回帰やラッソ回帰といった正則化手法を併用することで、係数の過剰な変動を抑制し、過学習を防ぐことが推奨されます。


4. 多項式回帰の用途例

  • 曲線状の成長データのフィッティング(人口成長や経済成長など)

  • 非線形なトレンドを持つ時系列データの近似

  • 医学・生物学分野での用量反応曲線のモデリング


5. Python(scikit-learn)での実装例

python
from sklearn.preprocessing import PolynomialFeatures from sklearn.linear_model import LinearRegression from sklearn.pipeline import make_pipeline # 2次の多項式回帰モデルを構築 degree = 2 model = make_pipeline(PolynomialFeatures(degree), LinearRegression()) # 学習 model.fit(X_train, y_train) # 予測 y_pred = model.predict(X_test)

まとめ

特徴 内容
モデルの性質 非線形な関係を線形回帰の枠組みで表現
利点 線形回帰よりも柔軟なモデリングが可能
欠点 高次化による過学習のリスク
解決策 正則化やクロスバリデーションの活用

生成日:2025/06/01