Can I get help completing this tentative (in progress) attempt at getting my bearings on ANOVA's and REGRESSION equivalents? I have been trying to reconcile the concepts, nomenclature and syntax of these two methodologies. There are many posts on this site about their commonality, for instance this or this, but it's still good to have a quick "you are here" map when getting started.
I plan on updating this post, and hope to get help correcting mistakes.
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: