Figure 6.1
attach(livestock) logcount <- log10(count) new.country <- reorder.factor(country, logcount, median) new.livestock <- reorder.factor(livestock.type, logcount, median) ans <- dotplot(new.country ~ logcount | new.livestock, sub = list("Figure 6.1",cex=.8), xlab = "Log 10 Number of Livestock", layout=c(3,2)) detach() ans
Figure 6.2
attach(livestock) logcount <- log10(count) new.country <- reorder.factor(country, logcount, median) new.livestock <- reorder.factor(livestock.type, logcount, median) ans <- dotplot(new.livestock ~ logcount | new.country, sub = list("Figure 6.2",cex=.8), xlab = "Log 10 Number of Livestock", layout=c(4,7), aspect=1/2) detach() ans
Figure 6.3
attach(livestock) logcount <- log10(count) new.country <- ordered(country, rev(sort(levels(country)))) new.livestock <- ordered(livestock.type, c("Sheep","Poultry","Pigs","Horses","Cattle")) ans <- dotplot(new.country ~ logcount | new.livestock, sub = list("Figure 6.3",cex=.8), xlab = "Log 10 Number of Livestock", layout=c(3,2)) detach() ans
Figure 6.4
attach(livestock) logcount <- log10(count) wt <- rep(1,length(logcount)) for(i in 1:10){ liv.lm <- lm(logcount~livestock.type+country,weights=wt) wt <- wt.bisquare(liv.lm$res/median(abs(liv.lm$res)),c=6) liv.effects <- dummy.coef(liv.lm) liv.effects <- sapply(liv.effects,sort) all.effects <- c(liv.effects$livestock.type,NA,liv.effects$country) ans <- dotplot(all.effects, aspect=1, sub = list("Figure 6.4",cex=.8), xlab = "Log Livestock Effects (log 10 count)") detach() ans
# no 6.4
Figure 6.5
attach(livestock) logcount <- log10(count) wt <- rep(1,length(logcount)) for(i in 1:10){ liv.lm <- lm(logcount~livestock.type+country,weights=wt) wt <- wt.bisquare(liv.lm$res/median(abs(liv.lm$res)),c=6) liv.effects <- dummy.coef(liv.lm) liv.effects <- sapply(liv.effects,"sort") new.country <- ordered(country,names(liv.effects$country)) new.livestock <- ordered(livestock.type,names(liv.effects$livestock.type)) ans <- dotplot(new.country ~ logcount | new.livestock, sub = list("Figure 6.5",cex=.8), xlab = "Log 10 Number of Livestock", layout=c(3,2)) detach() ans
Figure 6.6
attach(livestock) logcount <- log10(count) wt <- rep(1,length(logcount)) for(i in 1:10){ liv.lm <- lm(logcount~livestock.type+country,weights=wt) wt <- wt.bisquare(liv.lm$res/median(abs(liv.lm$res)),c=6) liv.effects <- dummy.coef(liv.lm) liv.effects <- sapply(liv.effects,"sort") new.country <- ordered(country,names(liv.effects$country)) new.livestock <- ordered(livestock.type,names(liv.effects$livestock.type)) ans <- dotplot(new.livestock ~ logcount | new.country, sub = list("Figure 6.6",cex=.8), xlab = "Log 10 Number of Livestock", layout=c(4,7), aspect=1) detach() ans
Figure 6.7
attach(livestock) logcount <- log10(count) wt <- rep(1,length(logcount)) for(i in 1:10){ liv.lm <- lm(logcount~livestock.type+country,weights=wt) wt <- wt.bisquare(liv.lm$res/median(abs(liv.lm$res)),c=6) } liv.effects <- dummy.coef(liv.lm) liv.effects <- sapply(liv.effects,"sort") new.country <- ordered(country,names(liv.effects$country)) new.livestock <- ordered(livestock.type,names(liv.effects$livestock.type)) ans <- dotplot(new.country ~ fitted.values(liv.lm) | new.livestock, sub = list("Figure 6.7",cex=.8), xlab = "Fitted Log 10 Number of Livestock", layout=c(3,2)) detach() ans
Figure 6.8
attach(livestock) logcount <- log10(count) wt <- rep(1,length(logcount)) for(i in 1:10){ liv.lm <- lm(logcount~livestock.type+country,weights=wt) wt <- wt.bisquare(liv.lm$res/median(abs(liv.lm$res)),c=6) liv.effects <- dummy.coef(liv.lm) liv.effects <- sapply(liv.effects,"sort") new.country <- ordered(country,names(liv.effects$country)) new.livestock <- ordered(livestock.type,names(liv.effects$livestock.type)) ans <- dotplot(new.livestock ~ fitted.values(liv.lm) | new.country, sub = list("Figure 6.8",cex=.8), xlab = "Fitted Log 10 Number of Livestock", layout=c(4,7), aspect=1) detach() ans
Figure 6.9
attach(livestock) logcount <- logb(count,2) wt <- rep(1,length(logcount)) for(i in 1:10){ liv.lm <- lm(logcount~livestock.type+country,weights=wt) wt <- wt.bisquare(liv.lm$res/median(abs(liv.lm$res)),c=6) liv.effects <- dummy.coef(liv.lm) liv.effects <- sapply(liv.effects,"sort") new.country <- ordered(country,names(liv.effects$country)) new.livestock <- ordered(livestock.type,names(liv.effects$livestock.type)) liv.res <- residuals(liv.lm) liv.res[(livestock.type=="Pigs")&(country=="Turkey")] <- NA ans <- dotplot(new.country ~ liv.res | new.livestock, panel = function(x, y) { panel.dotplot(x, y) panel.abline(v=0) }, layout=c(3,2), sub = list("Figure 6.9",cex=.8), xlab = "Residual Log 2 Number of Livestock") detach() ans
Figure 6.10
attach(livestock) logcount <- logb(count,2) wt <- rep(1,length(logcount)) for(i in 1:10){ liv.lm <- lm(logcount~livestock.type+country,weights=wt) wt <- wt.bisquare(liv.lm$res/median(abs(liv.lm$res)),c=6) liv.effects <- dummy.coef(liv.lm) liv.effects <- sapply(liv.effects,"sort") new.country <- ordered(country,names(liv.effects$country)) new.livestock <- ordered(livestock.type,names(liv.effects$livestock.type)) liv.res <- residuals(liv.lm) liv.res[(livestock.type=="Pigs")&(country=="Turkey")] <- NA ans <- dotplot(new.livestock ~ liv.res | new.country, panel = function(x, y) { panel.dotplot(x, y) panel.abline(v=0) }, aspect=1, layout=c(4,7), sub = list("Figure 6.10",cex=.8), xlab = "Residual Log 2 Number of Livestock") detach() ans
Figure 6.11
# requires map library -- with the world database (available from statlib) attach(livestock) library(maps) xlim <- c(-10,32) ylim <- c(35,70) map.ar <- diff(ylim)/(diff(xlim) * cos(abs(mean(ylim))*pi/180)) "map.xy"<- list(x = c(20.0565758, 9.55326843, 21.5958538, 25.9420471, 14.9860134, 8.19508266, -8.19369793, 14.7143764, 9.19108582, 19.241663, 4.75434399, -7.74096918 , 25.0365906, 17.159111, 5.38816404, 12.4507322, 19.241663, 12.5412788, -3.39477348 , 19.0605717, 24.9460449, -1.67440414, 2.67179179, 8.28562832, 29.835516, 28.2962379), y = c(40.9712944, 61.4110756, 39.8017159, 62.6363487, 62.7477379, 46.9862709, 40.0801888, 47.7102966, 56.1758194, 47.0419655, 50.7734795, 53.2797165, 42.7535095, 49.4368172, 51.8873634, 52.4443054, 44.1458664, 42.8648987, 40.1358795, 52.1101379, 45.9280815, 52.6113892, 46.8748817, 50.439312, 38.799221, 54.4492989)) country.names <- levels(country) names(map.xy$y) <- names(map.xy$x) <-country.names europe <- map("world.thin", xlim = xlim, ylim = ylim, plot = F) logcount <- logb(count,2) wt <- rep(1,length(logcount)) for(i in 1:10){ liv.lm <- lm(logcount~livestock.type+country,weights=wt) wt <- wt.bisquare(liv.lm$res/median(abs(liv.lm$res)),c=6) residual.sheep <- residuals(liv.lm)[livestock.type=="Sheep"] names(residual.sheep) <- as.character(country[livestock.type=="Sheep"]) residual.sheep <- residual.sheep[country.names] residual.sheep <- equal.count(residual.sheep, number = 3, overlap = 1/4) ans <- xyplot(map.xy$y ~ map.xy$x | residual.sheep, panel = substitute(function(x, y){ do.call("lines", c(list(x = europe), trellis.par.get("reference.line"))) do.call("panel.xyplot", c(list(x = x, y = y), trellis.par.get("dot.symbol"))) }), layout = c(3, 1), aspect = map.ar, xlim = c(-10, 32), ylim = c(35, 70), xlab = "", ylab = "") print(ans, position=c(0,.375,1,1), more=T) logcount <- logb(count,2) wt <- rep(1,length(logcount)) for(i in 1:10){ liv.lm <- lm(logcount~livestock.type+country,weights=wt) wt <- wt.bisquare(liv.lm$res/median(abs(liv.lm$res)),c=6) residual.sheep <- residuals(liv.lm)[livestock.type=="Sheep"] ans <- plot(equal.count(residual.sheep, number = 3, overlap = 1/4), xlab = "Residual Log 2 Sheep CountnnFigure 6.11") print(ans, position=c(0,.2,1,.5)) detach() invisible()
Figure 6.12
dotplot(algorithm ~ logb(time,2) | machine * input, data = run.time, aspect = "xy", sub = list("Figure 6.12",cex=.8), xlab = "Log Run Time (log 2 seconds)")
Figure 6.13
Machine <- levels(run.time$machine) dotplot(algorithm ~ logb(time, 2) | input, data = run.time, panel = function(x, y, subscripts, ...) { do.call("abline", c(list(h = y), trellis.par.get("dot.line"))) panel.superpose(x, y, subscripts, ...) }, groups = machine, aspect = "xy", layout = c(2, 3), sub = list("Figure 6.13",cex=.8), xlab = "Log Run Time (log 2 seconds)", key = list(points = Rows(trellis.par.get("superpose.symbol"), 1:length(Machine)), text = list(Machine), columns = length(Machine)))
Figure 6.14
Machine <- levels(run.time$machine) dotplot(input ~ logb(time, 2) | algorithm, data = run.time, panel = function(x, y, subscripts, ...) { do.call("abline", c(list(h = y), trellis.par.get("dot.line"))) panel.superpose(x, y, subscripts, ...) }, groups = machine, aspect = .5, layout = c(1,3), sub = list("Figure 6.14",cex=.8), xlab = "Log Run Time (log 2 seconds)", key = list(points = Rows(trellis.par.get("superpose.symbol"), 1:length(Machine)), text = list(Machine), columns = length(Machine)))
Figure 6.15
differences <- run.time differences$time <- logb(differences$time,2) new.vax <- differences$time[(differences$algorithm=="new")& (differences$machine=="vax")] new.mips <- differences$time[(differences$algorithm=="new")& (differences$machine=="mips")] differences$time <- differences$time - c(rep(new.vax,3),rep(new.mips,3)) differences <- differences[differences$algorithm!="new",] differences$algorithm <- ordered(differences$algorithm, names(sort(tapply(differences$time,differences$algorithm,mean)))) differences$machine <- ordered(differences$machine, names(sort(tapply(differences$time,differences$machine,mean)))) differences$input <- ordered(differences$input, names(sort(tapply(differences$time,differences$input,mean)))) Algorithm <- levels(differences$algorithm) dotplot(input ~ time | machine, data = differences, panel = function(x, y, subscripts, ...){ do.call("abline", c(list(h = y), trellis.par.get("dot.line"))) panel.superpose(x, y, subscripts, ...) }, groups = algorithm, aspect = .5, layout = c(2, 1), xlim = c(0, 4), sub = list("Figure 6.15",cex=.8), xlab = "Improvement (log 2 seconds)", key = list(y = 1.3, points = Rows(trellis.par.get("superpose.symbol"), 1:length(Algorithm)), text = list(Algorithm), columns = length(Algorithm)))
Figure 6.16
differences <- run.time differences$time <- logb(differences$time,2) new.vax <- differences$time[(differences$algorithm=="new")& (differences$machine=="vax")] new.mips <- differences$time[(differences$algorithm=="new")& (differences$machine=="mips")] differences$time <- differences$time - c(rep(new.vax,3),rep(new.mips,3)) differences <- differences[differences$algorithm!="new",] differences$algorithm <- ordered(differences$algorithm, names(sort(tapply(differences$time,differences$algorithm,mean)))) differences$machine <- ordered(differences$machine, names(sort(tapply(differences$time,differences$machine,mean)))) differences$input <- ordered(differences$input, names(sort(tapply(differences$time,differences$input,mean)))) attach(differences) runtime.lm <- lm(time~(input+algorithm)*machine) ans <- dotplot(input ~ residuals(runtime.lm) | machine * algorithm, panel = function(x, y) { panel.dotplot(x, y) panel.abline(v = 0) }, aspect = 2/3, layout = c(2, 2), sub = list("Figure 6.16",cex=.8), xlab = "Residual Improvement (log 2 seconds)") detach() ans
Figure 6.17
differences <- run.time differences$time <- logb(differences$time,2) new.vax <- differences$time[(differences$algorithm=="new")& (differences$machine=="vax")] new.mips <- differences$time[(differences$algorithm=="new")& (differences$machine=="mips")] differences$time <- differences$time - c(rep(new.vax,3),rep(new.mips,3)) differences <- differences[differences$algorithm!="new",] differences$algorithm <- ordered(differences$algorithm, names(sort(tapply(differences$time,differences$algorithm,mean)))) differences$machine <- ordered(differences$machine, names(sort(tapply(differences$time,differences$machine,mean)))) differences$input <- ordered(differences$input, names(sort(tapply(differences$time,differences$input,mean)))) rfs(lm(time~(input+algorithm)*machine, data = differences), sub = list("Figure 6.17",cex=.8), aspect = 2, ylab = "Log Run Time (log 2 seconds)")
Figure 6.18
differences <- run.time differences$time <- logb(differences$time,2) new.vax <- differences$time[(differences$algorithm=="new")& (differences$machine=="vax")] new.mips <- differences$time[(differences$algorithm=="new")& (differences$machine=="mips")] differences$time <- differences$time - c(rep(new.vax,3),rep(new.mips,3)) differences <- differences[differences$algorithm!="new",] differences$algorithm <- ordered(differences$algorithm, names(sort(tapply(differences$time,differences$algorithm,mean)))) differences$machine <- ordered(differences$machine, names(sort(tapply(differences$time,differences$machine,mean)))) differences$input <- ordered(differences$input, names(sort(tapply(differences$time,differences$input,mean)))) attach(differences) runtime.lm <- lm(time~(input+algorithm)*machine) which <- algorithm == "7th" ans <- dotplot(input[which] ~ fitted(runtime.lm)[which] | machine[which], aspect = 1/4, layout = c(1, 2), sub = list("Figure 6.18",cex=.8), xlab = "Fitted Improvement (log 2 seconds)") detach() ans
Figure 6.19
differences <- run.time differences$time <- logb(differences$time,2) new.vax <- differences$time[(differences$algorithm=="new")& (differences$machine=="vax")] new.mips <- differences$time[(differences$algorithm=="new")& (differences$machine=="mips")] differences$time <- differences$time - c(rep(new.vax,3),rep(new.mips,3)) differences <- differences[differences$algorithm!="new",] differences$algorithm <- ordered(differences$algorithm, names(sort(tapply(differences$time,differences$algorithm,mean)))) differences$machine <- ordered(differences$machine, names(sort(tapply(differences$time,differences$machine,mean)))) differences$input <- ordered(differences$input, names(sort(tapply(differences$time,differences$input,mean)))) attach(differences) runtime.lm.fitted <- 2^fitted(lm(time~(input+algorithm)*machine)) which <- algorithm == "7th" ans <- dotplot(input ~ runtime.lm.fitted | machine, subset = algorithm == "7th", aspect = 1/4, layout = c(1, 2), sub = list("Figure 6.19",cex=.8), xlab = "Fitted Improvement Factor") detach() ans
Figure 6.20
dotplot(variety ~ yield | year * site, data = barley, aspect=.4, sub = list("Figure 6.20",cex=.8), xlab = "Barley Yield (bushels/acre)")
Figure 6.21
attach(barley) morris31 <- yield[(site=="Morris")&(year=="1931")] morris32 <- yield[(site=="Morris")&(year=="1932")] new.yield <- yield new.yield[(site=="Morris")&(year=="1931")] <- morris32 new.yield[(site=="Morris")&(year=="1932")] <- morris31 ans <- dotplot(variety ~ new.yield | year * site, sub = list("Figure 6.21",cex=.8), xlab = "Barley Yield (bushels/acre)", aspect=.4) detach() ans
Figure 6.22
attach(barley) morris31 <- yield[(site=="Morris")&(year=="1931")] morris32 <- yield[(site=="Morris")&(year=="1932")] new.yield <- yield new.yield[(site=="Morris")&(year=="1931")] <- morris32 new.yield[(site=="Morris")&(year=="1932")] <- morris31 which <- year=="1931" new.yield.diff <- new.yield[which]-new.yield[!which] ans <- dotplot(variety[which] ~ new.yield.diff | site[which], sub = list("Figure 6.22",cex=.8), xlab = "Differences of Barley Yield (bushels/acre)", layout = c(1,6), aspect=.4) detach() ans
Figure 6.23
attach(barley) morris31 <- yield[(site=="Morris")&(year=="1931")] morris32 <- yield[(site=="Morris")&(year=="1932")] new.yield <- yield new.yield[(site=="Morris")&(year=="1931")] <- morris32 new.yield[(site=="Morris")&(year=="1932")] <- morris31 wt <- rep(1,length(yield)) for(i in 1:10){ barley.lm <- lm(new.yield~variety+year*site,weights=wt) wt <- wt.bisquare(barley.lm$res/median(abs(barley.lm$res)),c=6) ans <- rfs(barley.lm, sub = list("Figure 6.23",cex=.8), aspect=2, ylab = "Yield (bushels/acre)") detach() ans
Figure 6.24
attach(barley) morris31 <- yield[(site=="Morris")&(year=="1931")] morris32 <- yield[(site=="Morris")&(year=="1932")] new.yield <- yield new.yield[(site=="Morris")&(year=="1931")] <- morris32 new.yield[(site=="Morris")&(year=="1932")] <- morris31 wt <- rep(1,length(yield)) for(i in 1:10){ barley.lm <- lm(new.yield~variety+year*site,weights=wt) wt <- wt.bisquare(barley.lm$res/median(abs(barley.lm$res)),c=6) barley.effects <- dummy.coef(barley.lm) ys.effects <- c(barley.effects$"year:site" + outer( barley.effects$year,barley.effects$site,"+")) ys.year <- ordered(rep(levels(year),6),levels(year)) ys.site <- ordered(rep(levels(site),rep(2,6)),levels(site)) n <- length(levels(ys.year)) ans <- dotplot(ys.site ~ ys.effects, panel = function(x, y, subscripts, ...) { do.call("abline", c(list(h = y), trellis.par.get("dot.line"))) panel.superpose(x, y, subscripts, ...) }, groups = ys.year, aspect = 2/3, sub = list("Figure 6.24",cex=.8), xlab = "Site by Year Effects (bushels/acre)", key = list( points = Rows(trellis.par.get("superpose.symbol"), 1:n), text = list(levels(ys.year)), columns = n)) detach() ans
Figure 6.25
attach(barley) morris31 <- yield[(site=="Morris")&(year=="1931")] morris32 <- yield[(site=="Morris")&(year=="1932")] new.yield <- yield new.yield[(site=="Morris")&(year=="1931")] <- morris32 new.yield[(site=="Morris")&(year=="1932")] <- morris31 wt <- rep(1,length(yield)) for(i in 1:10){ barley.lm <- lm(new.yield~variety+year*site,weights=wt) wt <- wt.bisquare(barley.lm$res/median(abs(barley.lm$res)),c=6) barley.effects <- dummy.coef(barley.lm) ans <- dotplot(sort(barley.effects$variety), sub = list("Figure 6.25",cex=.8), xlab = "Variety Effects (bushels/acre)", aspect=2/3) detach() ans
Figure 6.26
attach(barley) morris31 <- yield[(site=="Morris")&(year=="1931")] morris32 <- yield[(site=="Morris")&(year=="1932")] new.yield <- yield new.yield[(site=="Morris")&(year=="1931")] <- morris32 new.yield[(site=="Morris")&(year=="1932")] <- morris31 wt <- rep(1,length(yield)) for(i in 1:10){ barley.lm <- lm(new.yield~variety+year*site,weights=wt) wt <- wt.bisquare(barley.lm$res/median(abs(barley.lm$res)),c=6) ans <- dotplot(site ~ residuals(barley.lm) | year * variety, layout=c(4,5), aspect=2/3, panel = function(x, y) { panel.dotplot(x, y) panel.abline(v=0) }, sub = list("Figure 6.26",cex=.8), xlab = "Residual Barley Yield (bushels/acre)") detach() ans
Figure 6.27
attach(barley) morris31 <- yield[(site=="Morris")&(year=="1931")] morris32 <- yield[(site=="Morris")&(year=="1932")] new.yield <- yield new.yield[(site=="Morris")&(year=="1931")] <- morris32 new.yield[(site=="Morris")&(year=="1932")] <- morris31 wt <- rep(1,length(yield)) for(i in 1:10){ barley.lm <- lm(new.yield~variety+year*site,weights=wt) wt <- wt.bisquare(barley.lm$res/median(abs(barley.lm$res)),c=6) ans <- dotplot(variety ~ residuals(barley.lm) | year * site, layout = c(2,6), aspect=2/3, panel = function(x, y) { panel.dotplot(x, y) panel.abline(v=0) }, sub = list("Figure 6.27",cex=.8), xlab = "Residual Barley Yield (bushels/acre)") detach() ans