## ----preliminaries, echo=FALSE, results='hide'------------------------ library("knitr") opts_chunk$set(highlight=FALSE, prompt=TRUE, background='#FFFFFF') options(replace.assign=TRUE, width=72, prompt="R> ") ## ----setup, include=FALSE, cache=FALSE-------------------------------- render_sweave() ## ----tmean------------------------------------------------------------ library("WRS2") timevec <- c(77, 87, 88, 114, 151, 210, 219, 246, 253, 262, 296, 299, 306, 376, 428, 515, 666, 1310, 2611) mean(timevec, 0.1) trimse(timevec, 0.1) mean(timevec) sd(timevec)/sqrt(length(timevec)) ## ----median----------------------------------------------------------- median(timevec) msmedse(timevec) ## ----winmean---------------------------------------------------------- winmean(timevec, 0.1) winse(timevec, 0.1) winvar(timevec, 0.1) ## ----mest------------------------------------------------------------- mest(timevec) mestse(timevec) ## ----wincor----------------------------------------------------------- library("reshape") hangctr <- subset(hangover, subset = group == "alcoholic") hangwide <- cast(hangctr, id ~ time, value = "symptoms")[,-1] colnames(hangwide) <- paste("Time", 1:3) winall(hangwide) ## ----cor-plot, eval=FALSE, echo = FALSE, message=FALSE, warning=FALSE---- # library("GGally") # ggpairs(hangwide) ## ----cor-plot1, echo=FALSE, out.width='0.7\\textwidth', message=FALSE, warning=FALSE---- library("GGally") ggpairs(hangwide) ## ----twocor, cache=TRUE----------------------------------------------- ct1 <- subset(hangover, subset = (group == "control" & time == 1))$symp ct2 <- subset(hangover, subset = (group == "control" & time == 2))$symp at1 <- subset(hangover, subset = (group == "alcoholic" & time == 1))$symp at2 <- subset(hangover, subset = (group == "alcoholic" & time == 2))$symp set.seed(123) twocor(ct1, ct2, at1, at2, corfun = "pbcor", beta = 0.15) ## ----soccer-plot, eval=FALSE, echo = FALSE, message=FALSE------------- # library("ggplot2") # SpainGer <- subset(eurosoccer, League == "Spain" | League == "Germany") # SpainGer <- droplevels(SpainGer) # ggplot(SpainGer, aes(x = League, y = GoalsGame)) + # geom_boxplot(outlier.shape = NA) + # geom_jitter(position = position_jitter(0.1)) ## ----soccer-plot1, echo=FALSE, out.width='0.7\\textwidth'------------- library("ggplot2") SpainGer <- subset(eurosoccer, League == "Spain" | League == "Germany") SpainGer <- droplevels(SpainGer) ggplot(SpainGer, aes(x = League, y = GoalsGame)) + geom_boxplot(outlier.shape = NA) + geom_jitter(position = position_jitter(0.1)) ## ----yuen------------------------------------------------------------- yuen(GoalsGame ~ League, data = SpainGer) ## ----yuenakp---------------------------------------------------------- akp.effect(GoalsGame ~ League, data = SpainGer) ## ----yueneffect------------------------------------------------------- set.seed(123) yuen.effect.ci(GoalsGame ~ League, data = SpainGer) ## ----pb2gen----------------------------------------------------------- set.seed(123) pb2gen(GoalsGame ~ League, data = SpainGer, est = "median") pb2gen(GoalsGame ~ League, data = SpainGer, est = "onestep") ## ----qcomhd, cache=TRUE----------------------------------------------- set.seed(123) fitqt <- qcomhd(GoalsGame ~ League, data = SpainGer, q = c(0.1, 0.25, 0.5, 0.75, 0.95), nboot = 500) fitqt ## ----ano-plot, echo=FALSE, eval=FALSE, message=FALSE------------------ # library("MASS") # anorexiaFT <- subset(anorexia, subset = Treat == "FT") # anorexiaLong <- reshape(anorexiaFT, varying = list(2:3), direction = "long", v.names = "weight") # anorexiaLong$time <- factor(anorexiaLong$time, labels = c("prior", "post")) # gp <- ggplot(anorexiaLong, aes(x = time, y = weight, colour = as.factor(id), group = id)) # gp + geom_point(size = 1) + geom_line() + theme(legend.position="none") ## ----ano-plot1, echo=FALSE, out.width='0.6\\textwidth'---------------- library("MASS") anorexiaFT <- subset(anorexia, subset = Treat == "FT") anorexiaLong <- reshape(anorexiaFT, varying = list(2:3), direction = "long", v.names = "weight") anorexiaLong$time <- factor(anorexiaLong$time, labels = c("prior", "post")) gp <- ggplot(anorexiaLong, aes(x = time, y = weight, colour = as.factor(id), group = id)) gp + geom_point(size = 1) + geom_line() + theme(legend.position="none") ## ----yuend, message=FALSE--------------------------------------------- library("MASS") anorexiaFT <- subset(anorexia, subset = Treat == "FT") with(anorexiaFT, yuend(Prewt, Postwt)) ## ----dqcomhd, cache=TRUE---------------------------------------------- set.seed(123) with(anorexiaFT, Dqcomhd(Prewt, Postwt, q = c(0.25, 0.5, 0.75))) ## ----binband---------------------------------------------------------- g1 <- c(2, 4, 4, 2, 2, 2, 4, 3, 2, 4, 2, 3, 2, 4, 3, 2, 2, 3, 5, 5, 2, 2) g2 <- c(5, 1, 4, 4, 2, 3, 3, 1, 1, 1, 1, 2, 2, 1, 1, 5, 3, 5) binband(g1, g2, KMS = TRUE) ## ----ano2-plot1, echo=FALSE, out.width='0.7\\textwidth'--------------- anorexia$Wdiff <- anorexia$Postwt - anorexia$Prewt ggplot(anorexia, aes(x = Treat, y = Wdiff)) + xlab("group") + ylab("weight difference") + geom_boxplot(outlier.shape = NA) + geom_jitter(position = position_jitter(0.1)) ## ----t1way------------------------------------------------------------ anorexia$Wdiff <- anorexia$Postwt - anorexia$Prewt t1way(Wdiff ~ Treat, data = anorexia) ## ----lincon----------------------------------------------------------- lincon(Wdiff ~ Treat, data = anorexia) ## ----med1way---------------------------------------------------------- set.seed(123) med1way(Wdiff ~ Treat, data = anorexia) ## ----qanova, cache=TRUE, warning=FALSE-------------------------------- set.seed(123) fitqa <- Qanova(Wdiff ~ Treat, data = anorexia, q = c(0.25, 0.5, 0.75)) fitqa ## ----goggles-plot1, echo=FALSE, fig.height = 5, fig.width = 10-------- goggle.agg <- with(goggles, aggregate(attractiveness, list(gender = gender, alcohol = alcohol), mean, trim = 0.20)) goggle.agg$tse <- as.vector(with(goggles, by(attractiveness, list(gender = gender, alcohol = alcohol), trimse, tr = 0.20))) gp <- ggplot(goggle.agg, aes(x = gender, y = x, colour = alcohol, group = alcohol)) + ylab("attractiveness") gp + geom_line() + geom_point(aes(shape = alcohol), size = 3) + geom_errorbar(aes(ymax = x + tse, ymin = x - tse), width = 0.1) gp <- ggplot(goggle.agg, aes(x = alcohol, y = x, colour = gender, group = gender)) + ylab("attractiveness") gp + geom_line() + geom_point(aes(shape = gender), size = 3) + geom_errorbar(aes(ymax = x + tse, ymin = x - tse), width = 0.1) ## ----t2way------------------------------------------------------------ goggles$alcohol <- relevel(goggles$alcohol, ref = "None") t2way(attractiveness ~ gender*alcohol, data = goggles) ## ----results='hide'--------------------------------------------------- postgoggle <- mcp2atm(attractiveness ~ gender*alcohol, data = goggles) postgoggle$contrasts ## ----echo=FALSE, size='scriptsize'------------------------------------ postgoggle$contrasts ## --------------------------------------------------------------------- postgoggle ## ----eval=FALSE------------------------------------------------------- # set.seed(123) # med2way(attractiveness ~ gender*alcohol, data = goggles) # mcp2a(attractiveness ~ gender*alcohol, data = goggles, est = "median") # pbad2way(attractiveness ~ gender*alcohol, data = goggles, est = "mom") # mcp2a(attractiveness ~ gender*alcohol, data = goggles, est = "mom") ## ----swim-plot1, echo=FALSE, fig.height = 6, fig.width = 12----------- optpes.male <- subset(swimming, Sex == "Male") optpes.female <- subset(swimming, Sex == "Female") agg.male <- with(optpes.male, aggregate(Ratio, list(Optim = Optim, Event = Event), mean, trim = 0.20)) agg.male$tse <- as.vector(with(optpes.male, by(Ratio, list(Optim = Optim, Event = Event), trimse, tr = 0.20, simplify = TRUE))) gp <- ggplot(agg.male, aes(x = Event, y = x, colour = Optim, group = Optim)) + ylab("Ratio") gp + geom_line() + geom_point(aes(shape = Optim), size = 3) + geom_errorbar(aes(ymax = x + tse, ymin = x - tse), width = 0.1) + ggtitle("Interaction Plot Men") agg.female <- with(optpes.female, aggregate(Ratio, list(Optim = Optim, Event = Event), mean, trim = 0.20)) agg.female$tse <- as.vector(with(optpes.female, by(Ratio, list(Optim = Optim, Event = Event), trimse, tr = 0.20, simplify = TRUE))) gp <- ggplot(agg.female, aes(x = Event, y = x, colour = Optim, group = Optim)) + ylab("Ratio") gp + geom_line() + geom_point(aes(shape = Optim), size = 3) + geom_errorbar(aes(ymax = x + tse, ymin = x - tse), width = 0.1) + ggtitle("Interaction Plot Women") ## ----t3way------------------------------------------------------------ t3way(Ratio ~ Optim*Sex*Event, data = swimming) ## ----hang-plot1, echo=FALSE, fig.height = 5, fig.width = 8------------ ind <- rep(1:6, each = 20) symlist <- split(hangover$symptoms, ind)[c(1,4,2,5,3,6)] gtmeans <- sapply(symlist, mean, trim = 0.2) plot(1:3, type = "n", ylim = c(0, max(hangover$symptoms) + 10), xaxt = "n", xlab = "Time Points", ylab = "Number of Symptoms", main = "Hangover Data") axis(1, at = 1:3, labels = paste("Time", 1:3)) for (i in 1:6) points(jitter(rep(ceiling(i/2), 20)), symlist[[i]], cex = 0.6, col = ((i %% 2) + 1)) legend("topleft", legend = c("control", "alcoholic"), lty = 1, col = 1:2) lines(1:3, gtmeans[c(1, 3, 5)], col = 1, type = "b", pch = 19) lines(1:3, gtmeans[c(2, 4, 6)], col = 2, type = "b", pch = 19) ## ----rmanova---------------------------------------------------------- hangoverC <- subset(hangover, subset = group == "control") with(hangoverC, rmanova(y = symptoms, groups = time, block = id)) ## ----rmanovaph-------------------------------------------------------- with(hangoverC, rmmcp(y = symptoms, groups = time, block = id)) ## ----hangbw----------------------------------------------------------- bwtrim(symptoms ~ group*time, id = id, data = hangover) ## ----sppbb, cache=TRUE------------------------------------------------ set.seed(123) sppbb(errorRatio ~ group*essay, id, data = essays) ## ----sppba, cache=TRUE------------------------------------------------ set.seed(123) sppba(errorRatio ~ group*essay, id, data = essays, avg = FALSE) ## ----sppba2, cache=TRUE----------------------------------------------- set.seed(123) sppba(errorRatio ~ group*essay, id, data = essays) ## ----sppbi, cache=TRUE------------------------------------------------ set.seed(123) sppbi(errorRatio ~ group*essay, id, data = essays) ## ----smooth-plot, eval=FALSE, echo=FALSE, message=FALSE--------------- # library(colorspace) # colpal <- c(rainbow_hcl(5, c = 100)) # pal <- palette(colpal) # attach(chile) # op <- par(mfrow = c(2,1)) # plot(length, heat, pch = 20, col = "gray", main = "Chile Smoothing I", xlab = "Length", ylab = "Heat") # fitmean <- runmean(length, heat) # fitmest <- rungen(length, heat) # fitmed <- rungen(length, heat, est = "median") # fitbag <- runmbo(length, heat, est = "onestep") # orderx <- order(length) # lines(length[orderx], fitmean[orderx], lwd = 2, col = 1) # lines(length[orderx], fitmest[orderx], lwd = 2, col = 2) # lines(length[orderx], fitmed[orderx], lwd = 2, col = 3) # lines(length[orderx], fitbag[orderx], lwd = 2, col = 4) # legend("topright", legend = c("Trimmed Mean", "MOM", "Median", "Bagged Onestep"), col = 1:4, lty = 1) # plot(length, heat, pch = 20, col = "gray", main = "Chile Smoothing II", xlab = "Length", ylab = "Heat") # fitmean1 <- runmean(length, heat, fr = 0.2) # fitmean2 <- runmean(length, heat, fr = 0.5) # fitmean3 <- runmean(length, heat, fr = 1) # fitmean4 <- runmean(length, heat, fr = 5) # orderx <- order(length) # lines(length[orderx], fitmean1[orderx], lwd = 2, col = 1) # lines(length[orderx], fitmean2[orderx], lwd = 2, col = 2) # lines(length[orderx], fitmean3[orderx], lwd = 2, col = 3) # lines(length[orderx], fitmean4[orderx], lwd = 2, col = 4) # legend("topright", legend = c("f = 0.2", "f = 0.5", "f = 1", "f = 5"), col = 1:4, lty = 1) # par(op) # palette(pal) # detach(chile) ## ----smooth-plot1, echo=FALSE, fig.height = 12, fig.width = 12-------- library(colorspace) colpal <- c(rainbow_hcl(5, c = 100)) pal <- palette(colpal) attach(chile) op <- par(mfrow = c(2,1)) plot(length, heat, pch = 20, col = "gray", main = "Chile Smoothing I", xlab = "Length", ylab = "Heat") fitmean <- runmean(length, heat) fitmest <- rungen(length, heat) fitmed <- rungen(length, heat, est = "median") fitbag <- runmbo(length, heat, est = "onestep") orderx <- order(length) lines(length[orderx], fitmean[orderx], lwd = 2, col = 1) lines(length[orderx], fitmest[orderx], lwd = 2, col = 2) lines(length[orderx], fitmed[orderx], lwd = 2, col = 3) lines(length[orderx], fitbag[orderx], lwd = 2, col = 4) legend("topright", legend = c("Trimmed Mean", "MOM", "Median", "Bagged Onestep"), col = 1:4, lty = 1) plot(length, heat, pch = 20, col = "gray", main = "Chile Smoothing II", xlab = "Length", ylab = "Heat") fitmean1 <- runmean(length, heat, fr = 0.2) fitmean2 <- runmean(length, heat, fr = 0.5) fitmean3 <- runmean(length, heat, fr = 1) fitmean4 <- runmean(length, heat, fr = 5) orderx <- order(length) lines(length[orderx], fitmean1[orderx], lwd = 2, col = 1) lines(length[orderx], fitmean2[orderx], lwd = 2, col = 2) lines(length[orderx], fitmean3[orderx], lwd = 2, col = 3) lines(length[orderx], fitmean4[orderx], lwd = 2, col = 4) legend("topright", legend = c("f = 0.2", "f = 0.5", "f = 1", "f = 5"), col = 1:4, lty = 1) par(op) palette(pal) detach(chile) ## ----electric--------------------------------------------------------- comppts <- c(18, 70, 80, 90, 100, 110) fitanc <- ancova(Posttest ~ Pretest + Group, fr1 = 0.3, fr2 = 0.3, data = electric, pts = comppts) fitanc ## ----anc-plot1, echo=FALSE, fig.height = 6, fig.width = 9------------- plot(electric$Pretest, electric$Posttest, col = rep(1:2, each = 96), pch = 1, cex = 0.8, xlab = "Pretest Score", ylab = "Posttest Score", main = "TV Show ANCOVA") eltr <- subset(electric, subset = Group == "treatment") elct <- subset(electric, subset = Group == "control") ordtr <- order(eltr$Pretest) lines(eltr$Pretest[ordtr], fitanc$fitted.values$treatment[ordtr], col = 1, lwd = 2) abline(lm(eltr$Posttest ~ eltr$Pretest), col = 1, lty = 2) ordct <- order(elct$Pretest) lines(elct$Pretest[ordct], fitanc$fitted.values$control[ordct], col = 2, lwd = 2) abline(lm(elct$Posttest ~ elct$Pretest), col = 2, lty = 2) abline(v = comppts, lty = 2, col = "gray") legend(30, 120, legend = c("treatment", "control"), lty = 1, col = 1:2) ## ----mediate, cache=TRUE, message=FALSE, warning=FALSE---------------- library("mediation") fit.mx <- lm(Esteem ~ MatCare, data = Leerkes) fit.yxm <- lm(Efficacy ~ MatCare + Esteem, data = Leerkes) set.seed(123) fitmed <- mediation::mediate(fit.mx, fit.yxm, treat = "MatCare", mediator = "Esteem", sims = 999, boot = TRUE, boot.ci.type = "bca") summary(fitmed) ## ----rmediate, cache=TRUE--------------------------------------------- set.seed(123) with(Leerkes, ZYmediate(MatCare, Efficacy, Esteem, nboot = 2000))