直線回帰は重回帰分析の最も単純な場合である。
例題:
「表 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))
演習問題:
応用問題: