Skip to contents

Anova coding (also called deviation or simple coding) sets the grand mean as the intercept. Each contrast compares one level with the reference level (base).

Usage

contr_code_anova(fct, levels = NULL, base = 1, colnames = NULL)

Arguments

fct

the factor to contrast code (or a vector)

levels

the levels of the factor in order

base

the index of the level to use as baseline

colnames

optional list of column names for the added contrasts

Value

the factor with contrasts set

Examples

df <- sim_design(between = list(pet = c("cat", "dog")), 
                 mu = c(10, 20), plot = FALSE)
df$pet <- contr_code_anova(df$pet)
lm(y ~ pet, df) %>% broom::tidy()
#> # A tibble: 2 × 5
#>   term        estimate std.error statistic   p.value
#>   <chr>          <dbl>     <dbl>     <dbl>     <dbl>
#> 1 (Intercept)    14.9     0.0645     231.  7.18e-243
#> 2 pet.dog-cat     9.84    0.129       76.3 8.59e-149

df <- sim_design(between = list(pet = c("cat", "dog", "ferret")), 
                 mu = c(2, 4, 9), empirical = TRUE, plot = FALSE)
                 
df$pet <- contr_code_anova(df$pet, base = 1)
lm(y ~ pet, df) %>% broom::tidy()
#> # A tibble: 3 × 5
#>   term           estimate std.error statistic   p.value
#>   <chr>             <dbl>     <dbl>     <dbl>     <dbl>
#> 1 (Intercept)        5       0.0577      86.6 8.45e-213
#> 2 pet.dog-cat        2.00    0.141       14.1 4.53e- 35
#> 3 pet.ferret-cat     7       0.141       49.5 1.67e-145

df$pet <- contr_code_anova(df$pet, base = 2)
lm(y ~ pet, df) %>% broom::tidy()
#> # A tibble: 3 × 5
#>   term           estimate std.error statistic   p.value
#>   <chr>             <dbl>     <dbl>     <dbl>     <dbl>
#> 1 (Intercept)           5    0.0577      86.6 8.45e-213
#> 2 pet.cat-dog          -2    0.141      -14.1 4.53e- 35
#> 3 pet.ferret-dog        5    0.141       35.4 1.89e-108

df$pet <- contr_code_anova(df$pet, base = "ferret")
lm(y ~ pet, df) %>% broom::tidy()
#> # A tibble: 3 × 5
#>   term           estimate std.error statistic   p.value
#>   <chr>             <dbl>     <dbl>     <dbl>     <dbl>
#> 1 (Intercept)           5    0.0577      86.6 8.45e-213
#> 2 pet.cat-ferret       -7    0.141      -49.5 1.67e-145
#> 3 pet.dog-ferret       -5    0.141      -35.4 1.89e-108