# # Baseball example from Section 8.3 and Chapter 8, Exercise 4 # M <- c(18,17,16,15,14,14,13,12,11,11,10,10,10,10,10,9,8,7); Atbats <- c(367,426,521,275,418,466,586,138,510, 200,277,270,435,538,186,558,408, 70); Hits <- c(127,127,144, 61,114,126,154, 29,137, 46, 73, 69,132,142, 42,159,129, 14) Name <- c("Clemente","F Robinson","F Howard", "Johnstone", "Berry", "Spencer", "Kessinger", "L Alvardo","Santo", "Swoboda", "Unser", "Williams", "Scott", "Petrocelli","E Rodriguez", "Campaneris","Munson","Alvis"); Team <- c("Pitts","Balt","Wash","Cal","Chi","Cal","Chi","Bos","Chi", "NY","Wash","Chi","Bos","Bos","KC","Oak","NY","Mil") League <- c("NL","AL","AL","AL","AL","AL","NL","AL","NL", "AL","AL","AL","AL","AL","AL","AL","AL","NL"); r <- length(Name); n <- 45; blanks <- " "; formn <- function(x,n) {substring(paste(format(x,digits=n),blanks),1,n+3)}; intn <- function(n) {if (n<100) paste("",as.character(n)) else as.character(n)} Name <- paste(Name,blanks); Team <- paste(Team,blanks); Xbar <- 0; Ybar <- 0; Y <- M/n; X <- 2*sqrt(n)*asin(sqrt(Y)); P <- Hits/Atbats; Theta <- 2*sqrt(n)*asin(sqrt(P)); Xbar <- mean(X); Ybar <- mean(Y); MSE <- sum((X-Theta)*(X-Theta))/r; MSP <- sum((P-Y)*(P-Y))/r; lambda <- (r-3)/((r-1)*var(X)); cat(" i Name Team League Y P Atbats X Theta"); cat("\n\n"); for (i in 1:r) { cat(substring(100+i,2,4)," ",substring(Name[i],1,11), substring(Team[i],1,6),League[i]," ",formn(Y[i],3), formn(P[i],3),intn(Atbats[i])," ",formn(X[i],4), formn(Theta[i],4),"\n"); } cat("\n\n") MSEEfron <- 0; MSPEfron <- 0; Ave <- P; ML <- Y; Efron <- lambda*Xbar + (1-lambda)*X; RetransEfron <- sin(Efron/(2*sqrt(n)))*sin(Efron/(2*sqrt(n))); MSEEfron <- sum((Efron-Theta)*(Efron-Theta))/r; MSPEfron <- sum((RetransEfron-P)*(RetransEfron-P))/r; Eff <- MSE/MSEEfron; EffP <- MSP/MSPEfron; cat(" i Name Team League Ave ML RetransEfron \n\n"); for (i in 1:r) { cat(substring(100+i,2,4)," ",substring(Name[i],1,11), substring(Team[i],1,6),League[i]," ",formn(Ave[i],3), formn(ML[i],3),formn(RetransEfron[i],3),"\n"); } cat("\n\n"); cat("Ybar Xbar S lambda \n"); cat(Ybar," ",Xbar," ",(r-1)*var(X)," ",lambda); cat("\n\n"); cat("MSE MSEEfron Eff MSP "); cat("MSPEfron EffP \n"); cat(MSE," ",MSEEfron," ",Eff," ",MSP," ",MSPEfron," ",EffP); cat("\n\n\n"); # Remainder of program concerns Chapter 8, Question 4 P0 <- 0.25; Mu <- 2*sqrt(n)*asin(sqrt(P0)); S1 <- sum((X-Mu)*(X-Mu)); lambda1 <- (r-2)/S1; Stein <- lambda1*Mu + (1-lambda1)*X; RetransStein <- sin(Stein/(2*sqrt(n)))*sin(Stein/(2*sqrt(n))); MSEStein <- sum((Stein-Theta)*(Stein-Theta))/r; MSPStein <- sum((RetransStein-P)*(RetransStein-P))/r; Eff1 <- MSE/MSEStein; EffP1 <- MSP/MSPStein; cat(" i Name Team League Ave ML RetransStein \n\n"); for (i in 1:r) { cat(substring(100+i,2,4)," ",substring(Name[i],1,11), substring(Team[i],1,6),League[i]," ",formn(Ave[i],3), formn(ML[i],3),formn(RetransStein[i],3),"\n"); } cat("\n"); cat("Ybar Xbar S1 lambda1 \n"); cat(Ybar," ",Xbar," ",S1," ",lambda1,"\n"); cat("MSE MSEStein Eff1 MSP "); cat("MSPStein EffP1 \n"); cat(MSE," ",MSEStein," ",Eff1," ",MSP," ",MSPStein," ",EffP1,"\n");