bodyfat <- read.table("http://www.stat.ufl.edu/~winner/sta4210/data/CH07TA01.txt", header=F,col.names=c("X1","X2","X3","Y")) attach(bodyfat) bodyfat n <- length(Y) (SSTO <- (n-1)*var(Y)) # Compute total SS = (n-1)*var(Y) bodyfat.X1 <- lm(Y ~ X1) # Fit regression of Y on X1 summary(bodyfat.X1) anova(bodyfat.X1) (SSE_X1 <- deviance(bodyfat.X1)) # Obtain SSE(X1) (SSR_X1 <- SSTO - SSE_X1) # Obtain SSR(X1) bodyfat.X2 <- lm(Y ~ X2) # Fit regression of Y on X2 summary(bodyfat.X2) anova(bodyfat.X2) (SSE_X2 <- deviance(bodyfat.X2)) # Obtain SSE(X2) (SSR_X2 <- SSTO - SSE_X2) # Obtain SSR(X2) bodyfat.X1X2 <- lm(Y ~ X1 + X2) # Fit regression of Y on X1, X2 summary(bodyfat.X1X2) anova(bodyfat.X1X2) (SSE_X1X2 <- deviance(bodyfat.X1X2)) # Obtain SSE(X1,X2) (SSR_X1X2 <- SSTO - SSE_X1X2) # Obtain SSR(X1,X2) bodyfat.X1X2X3 <- lm(Y ~ X1 + X2 + X3) # Fit regression of Y on X1, X2, X3 summary(bodyfat.X1X2X3) anova(bodyfat.X1X2X3) (SSE_X1X2X3 <- deviance(bodyfat.X1X2X3)) # Obtain SSE(X1,X2,X3) (SSR_X1X2X3 <- SSTO - SSE_X1X2X3) # Obtain SSR(X1,X2,X3) (SSR_X2GX1 <- SSR_X1X2 - SSR_X1) # Obtain SSR(X2|X1) (SSR_X3GX1X2 <- SSE_X1X2 - SSE_X1X2X3) # Obtain SSR(X3|X1,X2) (SSR_X2X3GX1 <- SSR_X1X2X3 - SSR_X1) # Obtain SSR(X2,X3|X1) (SSR_X1GX2 <- SSR_X1X2 - SSR_X2) # Obtain SSR(X1|X2) (F_X3GX1X2 <- (SSR_X3GX1X2/1)/(SSE_X1X2X3/(n-4))) # F* for H0: beta_3=0 (F_X2X3GX1 <- (SSR_X2X3GX1/2)/(SSE_X1X2X3/(n-4))) # F* for H0: beta_2=beta_3=0 (R2_Y2G1 <- SSR_X2GX1/SSE_X1) # Coefficient of Partial determination between Y,X2 given X1 (R2_Y3G12 <- SSR_X3GX1X2/SSE_X1X2) # Coefficient of Partial determination between Y,X3 given X1,X2 (R2_Y1G2 <- SSR_X1GX2/SSE_X2) # Coefficient of Partial determination between Y,X1 given X2 (r_Y2G1 <- sign(coef(bodyfat.X1X2)[3])*sqrt(R2_Y2G1)) # Coeff of partial corr between Y,X2 given X1 (r_Y3G12 <- sign(coef(bodyfat.X1X2X3)[4])*sqrt(R2_Y3G12)) # Coeff of partial corr between Y,X3 given X1,X2 (r_Y1G2 <- sign(coef(bodyfat.X1X2)[2])*sqrt(R2_Y1G2)) # Coeff of partial corr between Y,X1 given X2