直線回帰は重回帰分析の最も単純な場合である。
例題:
「表 1 において,変数 $X$ を用いて,変数 $Y$ を予測する直線回帰式を求めなさい。」
| $i$ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 変数 $X_{i}$ | 2.8 | 3.4 | 3.6 | 5.8 | 7.0 | 9.5 | 10.2 | 12.3 | 13.2 | 13.4 |
| 変数 $Y_{i}$ | 0.6 | 3.0 | 0.4 | 1.5 | 15.0 | 13.4 | 7.6 | 19.8 | 18.3 | 18.9 |
計算手順:
例題では,$n = 10$,$( X_{1} , Y_{1} ) = ( 2.8, 0.6 )$,$\dots$ ,$( X_{10} , Y_{10} ) = ( 13.4, 18.9 )$
![]() 図 1.直線回帰式 |
|---|
> X <- c(2.8, 3.4, 3.6, 5.8, 7.0, 9.5, 10.2, 12.3, 13.2, 13.4)
> Y <- c(0.6, 3.0, 0.4, 1.5, 15.0, 13.4, 7.6, 19.8, 18.3, 18.9)
> n <- length(x)
> Mean.X <- sum(X)/n # mean(X)
> Mean.Y <- sum(Y)/n # mean(Y)
> SS.XY <- sum((X-Mean.X)*(Y-Mean.Y)) # var(X, Y)*(n-1)
> SS.X <- sum((X-Mean.X)^2) # var(X)*(n-1)
> a <- SS.XY / SS.X
> b <- Mean.Y-a*Mean.X
> c(a=a, b=b)
a b
1.743982 -4.311134
> ## 標準で用意されている lm 関数を使う場合
> ans <- lm(Y ~ X)
> summary(ans)
Call:
lm(formula = Y ~ X)
Residuals:
Min 1Q Median 3Q Max
-5.8775 -1.2778 -0.0651 1.3220 7.1033
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -4.3111 2.7654 -1.559 0.157622
X 1.7440 0.3064 5.691 0.000459
Residual standard error: 3.816 on 8 degrees of freedom
Multiple R-squared: 0.8019, Adjusted R-squared: 0.7772
F-statistic: 32.39 on 1 and 8 DF, p-value: 0.000459
# 散布図と回帰直線を描く
> plot(Y ~ X)
> abline(ans)
> text(5, 17, sprintf("Y.hat = %.3fX%.3f", a, b))
演習問題:
応用問題: