論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
線形回帰
Linear Regression
回帰モデル
別称: 線形回帰モデル

🔖 キーワード索引

最小二乗法OLS回帰係数切片残差F検定t検定重回帰正規方程式

別名・略称:線形回帰モデル

💡 30秒で分かる結論

線形回帰(Linear Regression):応答を説明変数の線形結合でモデル化する基本的回帰手法。

📍 あなたが今見ているもの

線形回帰は統計・機械学習で最初に学ぶ重要モデル。 SSDSE データで 「都道府県の死亡率は高齢化率でどれくらい説明できるか?」 といった問いに答えるのに使います。 シンプルなのに 解釈しやすく、 多くの場面で十分機能 するため、 最初に試すベースラインとして常に第一選択。

🎨 直感で掴む

直線フィッティング

2 次元なら散布図に 「最も良くフィットする直線」 を引く操作。 数式 $y = \beta_0 + \beta_1 x$ の $\beta_0$(切片)と $\beta_1$(傾き)を、 残差の二乗和が最小 になるよう決めるのが最小二乗法(OLS)。

単回帰と重回帰

種類説明変数数式
単回帰1 個y = β₀ + β₁x
重回帰2 個以上y = β₀ + β₁x₁ + ... + βₚxₚ

📐 定義 / 数式

【線形回帰モデル】
$$y_i = \beta_0 + \beta_1 x_{i1} + \cdots + \beta_p x_{ip} + \epsilon_i$$
【最小二乗推定(正規方程式)】
$$\hat\beta = (X^\top X)^{-1} X^\top y$$
【決定係数 R²】
$$R^2 = 1 - \frac{\sum (y_i - \hat y_i)^2}{\sum (y_i - \bar y)^2}$$

🔬 記号・式を言葉で読み解く

$\beta_0$(切片)
全説明変数が 0 のときの y の予測値。
$\beta_j$(偏回帰係数)
他変数を固定して $x_j$ を 1 増やしたときの y の変化量。
$\epsilon_i$(残差)
観測値 $y_i$ と予測値 $\hat y_i$ の差。 平均 0 のノイズを仮定。
$R^2$(決定係数)
y の分散のうち、 モデルで説明される割合。 0〜1。
p 値
「真の係数が 0」という帰無仮説の検定。 p < 0.05 なら有意。

🧮 実データで計算してみる

SSDSE 47 都道府県で「死亡率 ~ 高齢化率」の単回帰:

パラメータ推定値p 値
切片 β₀-6.7< 0.001 ***
高齢化率 β₁+0.65< 0.001 ***
0.945

解釈:高齢化率が 1% 上がると、 死亡率は約 0.65‰ 上がる。 95% を説明できる強いモデル。

🐍 Python 実装

SSDSE-B-2026(47 都道府県・2023 年データ)を題材にした最小コード:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import pandas as pd
import statsmodels.api as sm

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='utf-8', skiprows=1)

X = df[['高齢化率']]
y = df['死亡率']
X = sm.add_constant(X)  # 切片項追加

model = sm.OLS(y, X).fit()
print(model.summary())  # 係数、 p値、 R² が全部見える

⚠️ よくある落とし穴

⚠️ 外れ値で係数が動く
1 点で傾きが大きく変わる。 → 残差プロットで外れ値確認。
⚠️ 非線形関係を無視
曲線関係を直線でフィットすると R² が下がる。 → 散布図で確認、 多項式項追加。
⚠️ 多重共線性
説明変数が強く相関すると係数の解釈が不安定。 → VIF を確認、 変数選択。
⚠️ p 値の有意性のみで判断
n が大きいと小さな効果でも有意に。 効果量(係数の大きさ)も見る。
⚠️ 外挿の危険
訓練データの範囲外の予測は信頼できない。

🌐 関連手法・この用語を使う論文

📄 2018_H1_daijin — 都道府県別死亡率の規定要因
高齢化率を主説明変数に線形回帰で死亡率を予測。
📄 2022_H1_daijin — 教育格差の規定要因
複数説明変数を含む重回帰で要因分析。