One of four related functions for mixed effects analyses (based on `lmer`

and `as_lmerModLmerTest`

) to get a linear model for downstream steps, or an ANOVA table.

`mixed_model`

`mixed_anova`

`mixed_model_slopes`

`mixed_anova_slopes`

.

```
mixed_anova(
data,
Y_value,
Fixed_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".

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

These functions require a data table, one dependent variable (Y_value), one or more independent variables (Fixed_Factor), and at least one random factor (Random_Factor). These should match names of variables in the long-format data table exactly.

Outputs of `mixed_model`

and `mixed_model_slopes`

can be used for post-hoc comparisons with `posthoc_Pairwise`

, `posthoc_Levelwise`

, `posthoc_vsRef`

, `posthoc_Trends_Pairwise`

, `posthoc_Trends_Levelwise`

and `posthoc_Trends_vsRef`

or with `emmeans`

.

More than one fixed factors can be provided as a vector (e.g. c("A", "B")). A full model with interaction term is fitted.
This means when `Y_value = Y, Fixed_factor = c("A", "B"), Random_factor = "R"`

are entered as arguments, these are passed on as `Y ~ A*B + (1|R)`

(which is equivalent to `Y ~ A + B + A:B + (1|R)`

).

In `mixed_model_slopes`

and `mixed_anova_slopes`

, the following kind of formula is used: `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 `Slopes_Factor`

and `Random_Factor`

.

```
#Usage with one fixed (Student) and random factor (Experiment)
mixed_anova(data = data_doubling_time,
Y_value = "Doubling_time",
Fixed_Factor = "Student",
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)
#> Student 16.824 1.8694 9 18 0.4725 0.8744
#two fixed factors provided as a vector
mixed_anova(data = data_cholesterol,
Y_value = "Cholesterol",
Fixed_Factor = c("Treatment", "Hospital"),
Random_Factor = "Subject")
#> Type II Analysis of Variance Table with Kenward-Roger's method
#> Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
#> Treatment 1968.38 1968.38 1 20 46.2485 1.301e-06 ***
#> Hospital 131.43 32.86 4 20 0.7720 0.5561366
#> Treatment:Hospital 1482.35 370.59 4 20 8.7072 0.0003066 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
```