There are four related functions for mixed effects analyses: mixed_model, mixed_anova, mixed_model_slopes, and mixed_anova_slopes.

mixed_anova_slopes(
  data,
  Y_value,
  Fixed_Factor,
  Slopes_Factor,
  Random_Factor,
  Df_method = "Kenward-Roger",
  SS_method = "II",
  ...
)

Arguments

data

a data table object, e.g. data.frame or tibble.

Y_value

name of column containing quantitative (dependent) variable, provided within "quotes".

Fixed_Factor

name(s) of categorical fixed factors (independent variables) provided as a vector if more than one or within "quotes".

Slopes_Factor

name of factor to allow varying slopes on.

Random_Factor

name(s) of random factors to allow random intercepts; to be provided as a vector when more than one or within "quotes".

Df_method

method for calculating degrees of freedom. Default is Kenward-Roger, can be changed to "Satterthwaite".

SS_method

type of sum of square, default is type II, can be changed to "I", "III", "1" or "2", or others.

...

any additional arguments to pass on to lmer if required.

Value

ANOVA table of class "anova" and "data.frame".

Details

This function uses lmer to fit a linear mixed effect model and provides the model object, which could be used for post-hoc comparisons. The model object is converted to class lmerModLmerTest object by as_lmerModLmerTest.

It produces a type II sum of squares ANOVA table with Kenward-Roger approximation for degrees of freedom (as implemented in lmerTest) package. It requires a data table, one dependent variable (Y_value), one or more independent variables (Fixed_Factor). Exactly one random factor (Random_Factor) and Slope_Factor should be provided. This function is related to mixed_model.

More than one fixed factors can be provided as a vector (e.g. c("A", "B")). A full model with interaction term is fitted with one term each for varying slopes and intercepts. This means when Y_value = Y, Fixed_factor = c("A", "B"), Slopes_Factor = "S", Random_factor = "R" are entered as arguments, these are passed on as Y ~ A*B + (S|R) (which is equivalent to Y ~ A + B + A:B + (S|R)). In this experimental implementation, random slopes and intercepts are fitted ((Slopes_Factor|Random_Factor)). Only one term each is allowed for ¬ and Random_Factor.

Examples

mixed_anova_slopes(data = data_2w_Tdeath,
Y_value = "PI",
Fixed_Factor = c("Genotype", "Time"),
Slopes_Factor = "Time",
Random_Factor = "Experiment")
#> boundary (singular) fit: see help('isSingular')
#> Type II Analysis of Variance Table with Kenward-Roger's method
#>                Sum Sq Mean Sq NumDF DenDF  F value    Pr(>F)    
#> Genotype      2921.08 2921.08     1    10 120.0752 6.832e-07 ***
#> Time           404.49  404.49     1     5  16.6273  0.009562 ** 
#> Genotype:Time  158.93  158.93     1    10   6.5329  0.028571 *  
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1