[Superseded]
An integrated function for fitting a multilevel linear regression (also known as hierarchical linear regression). This function will no longer be updated. Please use the these functions separately instead: model_summary, interaction_plot,and simple_slope.

lme_multilevel_model_summary(
  data,
  model = NULL,
  response_variable = NULL,
  random_effect_factors = NULL,
  non_random_effect_factors = NULL,
  two_way_interaction_factor = NULL,
  three_way_interaction_factor = NULL,
  family = NULL,
  id = NULL,
  estimation_method = "REML",
  opt_control = "bobyqa",
  na.action = stats::na.omit,
  model_summary = TRUE,
  interaction_plot = TRUE,
  y_lim = NULL,
  plot_color = FALSE,
  digits = 3,
  use_package = "lmerTest",
  standardize = NULL,
  ci_method = "satterthwaite",
  simple_slope = FALSE,
  assumption_plot = FALSE,
  quite = FALSE,
  streamline = FALSE,
  return_result = FALSE
)

Arguments

data

data.frame

model

lme4 model syntax. Support more complicated model structure from lme4. It is not well-tested to ensure accuracy [Experimental]

response_variable

DV (i.e., outcome variable / response variable). Length of 1. Support dplyr::select() syntax.

random_effect_factors

random effect factors (level-1 variable for HLM from a HLM perspective) Factors that need to estimate fixed effect and random effect (i.e., random slope / varying slope based on the id). Support dplyr::select() syntax.

non_random_effect_factors

non-random effect factors (level-2 variable from a HLM perspective). Factors only need to estimate fixed effect. Support dplyr::select() syntax.

two_way_interaction_factor

two-way interaction factors. You need to pass 2+ factor. Support dplyr::select() syntax.

three_way_interaction_factor

three-way interaction factor. You need to pass exactly 3 factors. Specifying three-way interaction factors automatically included all two-way interactions, so please do not specify the two_way_interaction_factor argument. Support dplyr::select() syntax.

family

a GLM family. It will passed to the family argument in glmer. See ?glmer for possible options. [Experimental]

id

the nesting variable (e.g. group, time). Length of 1. Support dplyr::select() syntax.

estimation_method

character. ML or REML default is REML.

opt_control

default is optim for lme and bobyqa for lmerTest.

na.action

default is stats::na.omit. Another common option is na.exclude

model_summary

print model summary. Required to be TRUE if you want assumption_plot.

interaction_plot

generate interaction plot. Default is TRUE

y_lim

the plot's upper and lower limit for the y-axis. Length of 2. Example: c(lower_limit, upper_limit)

plot_color

If it is set to TRUE (default is FALSE), the interaction plot will plot with color.

digits

number of digits to round to

use_package

Default is lmerTest. Only available for linear mixed effect model. Options are nlme, lmerTest, or lme4('lme4 return similar result as lmerTest except the return model)

standardize

The method used for standardizing the parameters. Can be NULL (default; no standardization), "refit" (for re-fitting the model on standardized data) or one of "basic", "posthoc", "smart", "pseudo". See 'Details' in parameters::standardize_parameters()

ci_method

see options in the Mixed model section in ?parameters::model_parameters()

simple_slope

Slope estimate at ± 1 SD and the mean of the moderator. Uses interactions::sim_slope() in the background.

assumption_plot

Generate an panel of plots that check major assumptions. It is usually recommended to inspect model assumption violation visually. In the background, it calls performance::check_model().

quite

suppress printing output

streamline

print streamlined output.

return_result

If it is set to TRUE (default is FALSE), it will return the model, model_summary, and plot (plot if the interaction term is included)

Value

a list of all requested items in the order of model, model_summary, interaction_plot, simple_slope

Examples

fit <- lme_multilevel_model_summary(
  data = popular,
  response_variable = popular,
  random_effect_factors = NULL, # you can add random effect predictors here 
  non_random_effect_factors = c(extrav,texp),
  two_way_interaction_factor = NULL, # you can add two-way interaction plot here 
  id = class,
  simple_slope = FALSE, # you can also request simple slope estimate 
  assumption_plot = FALSE, # you can also request assumption plot
  plot_color = FALSE, # you can also request the plot in color
  streamline = FALSE # you can change this to get the least amount of info
)
#> 
#>  
#> Model Summary
#> Model Type = Linear Mixed Effect Model (fitted using lme4 or lmerTest)
#> Outcome = popular
#> Predictors = extrav, texp
#> 
#> Model Estimates
#> ───────────────────────────────────────────────────────────────────────────────────────────────────────
#>           Parameter  Coefficient     SE       t        df  Effects     Group          p          95% CI
#> ───────────────────────────────────────────────────────────────────────────────────────────────────────
#>         (Intercept)        1.035  0.208   4.985   238.069    fixed            0.000 ***  [0.626, 1.443]
#>              extrav        0.504  0.020  24.976  1961.702    fixed            0.000 ***  [0.464, 0.543]
#>                texp        0.099  0.011   9.385   101.830    fixed            0.000 ***  [0.078, 0.120]
#>      SD (Intercept)        0.652    NaN     NaN       NaN   random     class    NaN          [NaN, NaN]
#>   SD (Observations)        0.965    NaN     NaN       NaN   random  Residual    NaN          [NaN, NaN]
#> ───────────────────────────────────────────────────────────────────────────────────────────────────────
#> *** p < 0.001, ** p < 0.01, * p < 0.05, . p < 0.1
#> 
#> Goodness of Fit
#> ────────────────────────────────────────────────────────────────────────────────
#>        AIC      AICc       BIC  R²_conditional  R²_marginal    ICC   RMSE      σ
#> ────────────────────────────────────────────────────────────────────────────────
#>   5786.188  5786.219  5814.193           0.500        0.272  0.314  0.942  0.965
#> ────────────────────────────────────────────────────────────────────────────────
#> 
#> Model Assumption Check
#> OK: Model is converged
#> OK: No singularity is detected
#> Warning: Autocorrelated residuals detected (p < .001).
#> Warning: Non-normality of residuals detected (p = 0.001).
#> OK: No outliers detected.
#> - Based on the following method and threshold: cook (0.839).
#> - For variable: (Whole model)
#> 
#> OK: Error variance appears to be homoscedastic (p = 0.924).
#> OK: No multicolinearity detected (VIF < 5)
#>