`R/mixed_anova_slopes.R`

`mixed_anova_slopes.Rd`

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",
...
)
```

- 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.

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

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`

.

```
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
```