> > bodyfat X1 X2 X3 Y 1 19.5 43.1 29.1 11.9 2 24.7 49.8 28.2 22.8 3 30.7 51.9 37.0 18.7 4 29.8 54.3 31.1 20.1 5 19.1 42.2 30.9 12.9 6 25.6 53.9 23.7 21.7 7 31.4 58.5 27.6 27.1 8 27.9 52.1 30.6 25.4 9 22.1 49.9 23.2 21.3 10 25.5 53.5 24.8 19.3 11 31.1 56.6 30.0 25.4 12 30.4 56.7 28.3 27.2 13 18.7 46.5 23.0 11.7 14 19.7 44.2 28.6 17.8 15 14.6 42.7 21.3 12.8 16 29.5 54.4 30.1 23.9 17 27.7 55.3 25.7 22.6 18 30.2 58.6 24.6 25.4 19 22.7 48.2 27.1 14.8 20 25.2 51.0 27.5 21.1 > > n <- length(Y) > > (SSTO <- (n-1)*var(Y)) # Compute total SS = (n-1)*var(Y) [1] 495.3895 > > bodyfat.X1 <- lm(Y ~ X1) # Fit regression of Y on X1 > summary(bodyfat.X1) Call: lm(formula = Y ~ X1) Residuals: Min 1Q Median 3Q Max -6.1195 -2.1904 0.6735 1.9383 3.8523 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -1.4961 3.3192 -0.451 0.658 X1 0.8572 0.1288 6.656 3.02e-06 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 2.82 on 18 degrees of freedom Multiple R-squared: 0.7111, Adjusted R-squared: 0.695 F-statistic: 44.3 on 1 and 18 DF, p-value: 3.024e-06 > anova(bodyfat.X1) Analysis of Variance Table Response: Y Df Sum Sq Mean Sq F value Pr(>F) X1 1 352.27 352.27 44.305 3.024e-06 *** Residuals 18 143.12 7.95 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 > (SSE_X1 <- deviance(bodyfat.X1)) # Obtain SSE(X1) [1] 143.1197 > (SSR_X1 <- SSTO - SSE_X1) # Obtain SSR(X1) [1] 352.2698 > > > bodyfat.X2 <- lm(Y ~ X2) # Fit regression of Y on X2 > summary(bodyfat.X2) Call: lm(formula = Y ~ X2) Residuals: Min 1Q Median 3Q Max -4.4949 -1.5671 0.1241 1.3362 4.4084 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -23.6345 5.6574 -4.178 0.000566 *** X2 0.8565 0.1100 7.786 3.6e-07 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 2.51 on 18 degrees of freedom Multiple R-squared: 0.771, Adjusted R-squared: 0.7583 F-statistic: 60.62 on 1 and 18 DF, p-value: 3.6e-07 > anova(bodyfat.X2) Analysis of Variance Table Response: Y Df Sum Sq Mean Sq F value Pr(>F) X2 1 381.97 381.97 60.617 3.6e-07 *** Residuals 18 113.42 6.30 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 > (SSE_X2 <- deviance(bodyfat.X2)) # Obtain SSE(X2) [1] 113.4237 > (SSR_X2 <- SSTO - SSE_X2) # Obtain SSR(X2) [1] 381.9658 > > > bodyfat.X1X2 <- lm(Y ~ X1 + X2) # Fit regression of Y on X1, X2 > summary(bodyfat.X1X2) Call: lm(formula = Y ~ X1 + X2) Residuals: Min 1Q Median 3Q Max -3.9469 -1.8807 0.1678 1.3367 4.0147 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -19.1742 8.3606 -2.293 0.0348 * X1 0.2224 0.3034 0.733 0.4737 X2 0.6594 0.2912 2.265 0.0369 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 2.543 on 17 degrees of freedom Multiple R-squared: 0.7781, Adjusted R-squared: 0.7519 F-statistic: 29.8 on 2 and 17 DF, p-value: 2.774e-06 > anova(bodyfat.X1X2) Analysis of Variance Table Response: Y Df Sum Sq Mean Sq F value Pr(>F) X1 1 352.27 352.27 54.4661 1.075e-06 *** X2 1 33.17 33.17 5.1284 0.0369 * Residuals 17 109.95 6.47 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 > (SSE_X1X2 <- deviance(bodyfat.X1X2)) # Obtain SSE(X1,X2) [1] 109.9508 > (SSR_X1X2 <- SSTO - SSE_X1X2) # Obtain SSR(X1,X2) [1] 385.4387 > > > bodyfat.X1X2X3 <- lm(Y ~ X1 + X2 + X3) # Fit regression of Y on X1, X2, X3 > summary(bodyfat.X1X2X3) Call: lm(formula = Y ~ X1 + X2 + X3) Residuals: Min 1Q Median 3Q Max -3.7263 -1.6111 0.3923 1.4656 4.1277 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 117.085 99.782 1.173 0.258 X1 4.334 3.016 1.437 0.170 X2 -2.857 2.582 -1.106 0.285 X3 -2.186 1.595 -1.370 0.190 Residual standard error: 2.48 on 16 degrees of freedom Multiple R-squared: 0.8014, Adjusted R-squared: 0.7641 F-statistic: 21.52 on 3 and 16 DF, p-value: 7.343e-06 > anova(bodyfat.X1X2X3) Analysis of Variance Table Response: Y Df Sum Sq Mean Sq F value Pr(>F) X1 1 352.27 352.27 57.2768 1.131e-06 *** X2 1 33.17 33.17 5.3931 0.03373 * X3 1 11.55 11.55 1.8773 0.18956 Residuals 16 98.40 6.15 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 > (SSE_X1X2X3 <- deviance(bodyfat.X1X2X3)) # Obtain SSE(X1,X2,X3) [1] 98.40489 > (SSR_X1X2X3 <- SSTO - SSE_X1X2X3) # Obtain SSR(X1,X2,X3) [1] 396.9846 > > (SSR_X2GX1 <- SSR_X1X2 - SSR_X1) # Obtain SSR(X2|X1) [1] 33.16891 > (SSR_X3GX1X2 <- SSE_X1X2 - SSE_X1X2X3) # Obtain SSR(X3|X1,X2) [1] 11.5459 > (SSR_X2X3GX1 <- SSR_X1X2X3 - SSR_X1) # Obtain SSR(X2,X3|X1) [1] 44.71482 > (SSR_X1GX2 <- SSR_X1X2 - SSR_X2) # Obtain SSR(X1|X2) [1] 3.472892 > > (F_X3GX1X2 <- (SSR_X3GX1X2/1)/(SSE_X1X2X3/(n-4))) # F* for H0: beta_3=0 [1] 1.877289 > (F_X2X3GX1 <- (SSR_X2X3GX1/2)/(SSE_X1X2X3/(n-4))) # F* for H0: beta_2=beta_3=0 [1] 3.63517 > > (R2_Y2G1 <- SSR_X2GX1/SSE_X1) # Coefficient of Partial determination between Y,X2 given X1 [1] 0.2317564 > (R2_Y3G12 <- SSR_X3GX1X2/SSE_X1X2) # Coefficient of Partial determination between Y,X3 given X1,X2 [1] 0.1050097 > (R2_Y1G2 <- SSR_X1GX2/SSE_X2) # Coefficient of Partial determination between Y,X1 given X2 [1] 0.03061875 > > (r_Y2G1 <- sign(coef(bodyfat.X1X2)[3])*sqrt(R2_Y2G1)) # Coeff of partial corr between Y,X2 given X1 X2 0.4814109 > (r_Y3G12 <- sign(coef(bodyfat.X1X2X3)[4])*sqrt(R2_Y3G12)) # Coeff of partial corr between Y,X3 given X1,X2 X3 -0.324052 > (r_Y1G2 <- sign(coef(bodyfat.X1X2)[2])*sqrt(R2_Y1G2)) # Coeff of partial corr between Y,X1 given X2 X1 0.1749822 >