データ分析法・第5回「回帰分析(1):単回帰分析」
データ分析法学習
授業情報
| 項目 | 内容 |
|---|---|
| 科目 | データ分析法 |
| 回数 | 第5回 |
| テーマ | 回帰分析(1):単回帰分析 |
| 日付 | (未記入) |
1. 単回帰分析とは
ピアソンの積率相関係数のように、2つの変数間に直線的関係が想定される場合、以下の一次関数式をあてはめることで変数xから変数yを予測できる。
| 用語 | 説明 |
|---|---|
| 回帰直線(regression line) | 上式の直線 |
| 回帰係数(regression coefficient) | 係数 b(傾き) |
| 説明変数(explanatory variable / independent variable) | 予測元の変数 x |
| 目的変数(response variable / criterion variable / dependent variable) | 予測される変数 y |
2. 回帰直線の求め方(最小2乗法)
予測値と実測値の差(=残差)の2乗和が最小となるように係数a, bを決定する方法を**最小2乗法(least squares method)**という。
例題①:中古車価格を走行距離から予測(reg1.csv)
ある車種の中古車の走行距離(万km)と車両価格(万円)をもとに、走行距離から車両価格を予測する(負の相関が想定される)。
3. Rによる単回帰分析(lm()関数)
3-1. 基本コマンド
x <- read.csv("reg1.csv") # データの読み込み(列名: km, price)
lm(x$price ~ x$km) # 目的変数 ~ 説明変数 の形で指定
y ~ xの形式で、目的変数 ~ 説明変数 の順に指定する- 結果:切片(a) = 127.96、傾き(b) = − 5.31
3-2. 結果を変数に保存して詳細を確認
result <- lm(x$price ~ x$km) # 分析結果を変数resultに保存
summary(result) # 詳細結果を表示(決定係数もここで確認)
# 入子にして一行で書くことも可能
summary(lm(x$price ~ x$km))
summary()の出力中の Multiple R-squared が決定係数(R²)- 例題①:R² = 0.409 → 車両価格の変動の約40.9%が走行距離で説明できる
- 決定係数:予測値と実測値の積率相関係数の2乗として算出される(重回帰分析の場合は重決定係数)
結果の解釈(例題①)
- 走行距離が1万km伸びるにつれて、5.31万円ほど車両価格が低下する
- 車両価格の変動の約**40.9%**が走行距離によって説明される
4. 新規データの予測
回帰式に目的変数(x)の値を直接代入すると予測値が求まる。例:走行距離7.5万kmの場合:
127.957 - 5.310 * 7.5 # → 88.132万円と予測
練習問題①:例題①の分析結果を元に予測
| 走行距離(万km) | 予想車両価格(万円) |
|---|---|
| 2.4 | 115.213 |
| 12.8 | 59.989 |
5. 補足
5-1. 散布図と回帰直線の表示
plot(x$km, x$price) # xを横軸、yを縦軸にして散布図を作成
abline(127.957, -5.310, col=2) # abline(切片a, 傾きb)で回帰直線を描画
5-2. 決定係数を手動で確認
x1 <- data.frame(x$km) # 説明変数のみをデータフレーム化
x2 <- predict(result, newdata=x1) # predict()で予測値を計算
cor(x2, x$price)^2 # 予測値と実測値の相関係数の2乗(=R²)
練習問題②:吹専寺の家賃を面積から予測(reg2.csv)
最寄り駅が吹専寺のアパート物件25件を対象に、面積(m²)から家賃(万円)を予測。
x <- read.csv("reg2.csv") # 列名: rent, area
lm(x$rent ~ x$area)
分析結果
- 回帰式:家賃(y) = 2.635 + 0.206 × 面積(x)
- 決定係数(R²):0.864
- 35m²の部屋の家賃予測値:9.845万円(Rのデフォルトの桁数をそのまま使うと9.861万円)
結果の解釈
- 面積が10m²広くなるにつれて、2.06万円ほど家賃が上昇する
- 家賃の変動の約**86.4%**が部屋の面積によって説明される
5-3. 回帰分析の注意点
⚠️ 回帰分析(単回帰・重回帰とも)はあくまで説明変数の実際の範囲内での線形回帰の結果であり、範囲外への適用には保証がないため注意が必要。
6. 復習用例題集(解答付き)
問題①:都道府県魅力度から観光客数を予測(regtr1.csv)
魅力度(charm)を説明変数、観光客数(tourist)を目的変数とした単回帰分析。
| 切片(a) | 回帰係数(b) | 決定係数(R²) |
|---|---|---|
| -142.14 | 74.15 | 0.329 |
問題②:緯度から平均気温を予測(regtr2.csv)
緯度を説明変数、平均気温を目的変数とした単回帰分析。
| 切片(a) | 回帰係数(b) | 決定係数(R²) | 奈美大島(28.19度)予測気温 | 函館市(41.77度)予測気温 |
|---|---|---|---|---|
| 44.554 | -0.817 | 0.912 | 21.523 | 10.428 |
7. 参考:WebClass小テスト(第5回)
スペイン・リーガ成績(regtest1.csv)から、得点と失点のどちらを説明変数にした方が決定係数が高いかを比べ、選んだ分析結果を採用。
| 説明変数 | 切片(a) | 回帰係数(b) | 決定係数(R²) |
|---|---|---|---|
| 得点(goal)を採用 | 4.832 | 0.928 | 0.835 |
※失点を説明変数とした場合は決定係数が小さくなるため、得点を説明変数とした結果を採用。
まとめ
- 単回帰分析:
y = a + bxの回帰直線をあてはめ、説明変数xから目的変数yを予測。係数は最小2乗法で決定 - Rでの実施:
lm(y ~ x)、詳細はsummary(lm(y ~ x)) - 決定係数 R²:予測値と実測値の相関係数の2乗。目的変数の変動の何%が説明変数で説明できるかを示す
- 新規予測:回帰式にxを代入、または
predict()関数を使用 - 回帰分析は説明変数の実際の範囲内でのみ有効(範囲外推定は注意)