###CHEAT SHEET ANOVA Alphabet Soup & Regression Equivalents:

[First appeared in a post on CrossValidate]

One-way ANOVA:

Structure:   DV is continuous; IV is ONE FACTOR with different LEVELS.
Scenario:    miles-per-gal. vs cylinders
Note that Income vs Gender (M, F) is a t-test.
Syntax:      fit <- aov(mpg ~ as.factor(cyl), data = mtcars); summary(fit); TukeyHSD(fit)
Regression:  fit <- lm(mpg ~ as.factor(cyl), mtcars)
# with F dummy coded;
summary(fit); anova(fit)

Two-way ANOVA:

Structure:   DV is continuous; IV is > 1 FACTORS with different LEVELS.
Scenario:    mpg ~ cylinders & carburators
Syntax:      fit <- aov(mpg ~ as.factor(cyl) + as.factor(carb), mtcars);
summary(fit); TukeyHSD(fit)
Regression:  fit <- lm(mpg ~ as.factor(cyl) + as.factor(carb), mtcars)
# with F dummy coded;
summary(fit); anova(fit)

Two-way Factorial ANOVA:

Structure:   All possible COMBINATIONS of LEVELS are considered.
Scenario:    mpg ~ cylinders + carburetors + (4cyl/1,...8cyl/4)
Syntax:      fit <- aov(mpg ~ as.factor(cyl) * as.factor(carb), mtcars);
summary(fit); TukeyHSD(fit)
Regression:  fit <- lm(mpg ~ as.factor(cyl) * as.factor(carb), mtcars)
# with F dummy coded;
summary(fit); anova(fit)

ANCOVA:

Structure:   DV continuous ~ Factor and continuous COVARIATE.
Scenario:    mpg ~ cylinders + weight
Syntax:      fit <- aov(mpg ~ as.factor(cyl) + wt, mtcars); summary(fit)
Regression:  fit <- lm(mpg ~ as.factor(cyl) + wt, mtcars)
# with F dummy coded;
summary(fit); anova(fit)

MANOVA:

Structure:   > 1 DVs continuous ~ 1 FACTOR ("One-way") or 2 FACTORS ("Two-way MANOVA").
Scenario:    mpg and wt ~ cylinders
Syntax:      fit <- manova(cbind(mpg,wt) ~ as.factor(cyl), mtcars); summary(fit)
Regression:  N/A

MANCOVA:

Structure:   > 1 DVs continuous ~ 1 FACTOR + 1 continuous (covariate) DV.
Scenario:    mpg and wt ~ cyl + displacement (cubic inches)
Syntax:      fit <- manova(cbind(mpg,wt) ~ as.factor(cyl) + disp, mtcars); summary(fit)
Regression:  N/A

WITHIN FACTOR (or SUBJECT) ANOVA: (code here)

Structure:   DV continuous ~ FACTOR with each level * with subject (repeated observations).
Extension paired t-test. Each subject measured at each level multiple times.
Scenario:    Memory rate ~ Emotional value of words for Subjects @ Times
Syntax:      fit <- aov(Recall_Rate ~ Emtl_Value * Time + Error(Subject/Time), data);
summary(fit); print(model.tables(fit, "means"), digits=3);
boxplot(Recall_Rate ~ Emtl_Value, data=data)
with(data, interaction.plot(Time, Emtl_Value, Recall_Rate))
with(data, interaction.plot(Subject, Emtl_Value, Recall_Rate))
NOTE: Data should be in the LONG FORMAT (same subject in multiple rows)
Regression:  Mixed Effects
require(lme4); require(lmerTest)
fit <- lmer(Recall_Rate ~ Emtl_Value * Time + (1|Subject/Time), data);
anova(fit); summary(fit); coefficients(fit); confint(fit)
or
require(nlme)
fit <- lme(Recall_Rate ~ Emtl_Value * Time, random = ~1|Subject/Time, data)
summary(fit); anova(fit); coefficients(fit); confint(fit)

SPLIT-PLOT: (code here)

Structure:   DV continuous ~ FACTOR/-S with RANDOM EFFECTS and pseudoreplication.
Scenario:    Harvest yield ~ Factors = Irrigation / Density of seeds / Fertilizer
& RANDOM EFFECTS (Blocks and plots of land):
Syntax:      fit <- aov(yield ~ irrigation * density * fertilizer +
Error(block/irrigation/density), data); summary(fit)
Regression:  Mixed Effects
require(lme4); require(lmerTest);
fit <- lmer(yield ~ irrigation * fertilizer +
(1|block/irrigation/density), data = splityield);
anova(fit); summary(fit); coefficients(fit); confint(fit)
or
library(nlme)
fit <- lme(yield ~ irrigation * variety, random=~1|field, irrigation)
summary(fit); anova(fit)

NESTED DESIGN: (code here)

Structure:   DV continuous ~ FACTOR/-S with pseudoreplication.
Scenario:    [Glycogen] ~ Factors = Treatment & RANDOM EFFECTS with Russian-doll effect:
Six rats (6 Livers)-> 3 Microscopic Slides/Liver-> 2 Readings/Slide).
Syntax:      fit <- aov(Glycogen ~ Treatment + Error(Rat/Liver), data); summary(fit)
Regression:  Mixed Effects
require(lme4); require(lmerTest)
fit <- lmer(Glycogen ~ Treatment + (1|Rat/Liver), rats);
anova(fit); summary(fit); coefficients(fit); confint(fit)
or
require(nlme)
fit<-lme(Glycogen ~ Treatment, random=~1|Rat/Liver, rats)
summary(fit); anova(fit); VarCorr(fit)

USEFUL SITES: