| Type: | Package | 
| Title: | Spaghetti-Plot Fixed and Random Effects of Linear Mixed Models | 
| Version: | 0.1.0 | 
| Description: | Plot both fixed and random effects of linear mixed models, multilevel models in a single spaghetti plot. The package allows to visualize the effect of a predictor on a criterion between different levels of a grouping variable. Additionally, confidence intervals can be displayed for fixed effects. Calculation of predicted values of random effects allows only models with one random intercept and/or one random slope to be plotted. Confidence intervals and predicted values of fixed effects are computed using the 'ggpredict' function from the 'ggeffects' package. Lüdecke, D. (2018) <doi:10.21105/joss.00638>. | 
| Encoding: | UTF-8 | 
| LazyData: | true | 
| Imports: | ggeffects, ggplot2, glmmTMB, lme4 | 
| RoxygenNote: | 7.3.1 | 
| Depends: | R (≥ 2.10) | 
| License: | MIT + file LICENSE | 
| NeedsCompilation: | no | 
| Packaged: | 2024-05-17 10:48:22 UTC; jfp | 
| Author: | Jan-Felix Palnau  | 
| Maintainer: | Jan-Felix Palnau <jan.palnau@mailbox.org> | 
| Repository: | CRAN | 
| Date/Publication: | 2024-06-05 19:30:08 UTC | 
Spaghetti-plot fixed and random effects of linear mixed models
Description
cookPasta() creates dataframes from fixed and random effects of 'lme4' or 'glmmTMB' models (e.g., for plotting)
Usage
cookPasta(
  model = NULL,
  predictor = NULL,
  nested.in = NULL,
  group = NULL,
  ci.int = FALSE,
  ci.lvl = ci.lvl
)
Arguments
model | 
 lme4 or glmmTMB model object  | 
predictor | 
 (Character) Name of predictor (e.g., "time" or "math_score"), as it is present in the model  | 
nested.in | 
 (Character) Name of the variable your time points or subjects are nested in (e.g.,"school" or "id")  | 
group | 
 (Optional, character) The name of your grouping variable (e.g., "condition" or "gender")  | 
ci.int | 
 (Optional, boolean) Enable confidence (prediction) intervals, disabled by default  | 
ci.lvl | 
 (Optional, numeric) Set level of confidence (prediction) intervals (default: 0.95). Requires ci.int to be set to TRUE  | 
Value
Returns a list of two dataframes, in which the first element is the fixed effects dataframe and the second element the random effects dataframe
ECOVIA data
Description
A subset of data from the ECOVIA app
Usage
ecovia_data
Format
A data frame with 1743 rows and 4 columns:
- id
 Subjects, in which time points are nested in
- time
 Day of intervention
- condition
 Condition (control vs. intervention)
- CO2
 Daily dietary carbon emissions
Source
<https://osf.io/qd7vw/?view_only=cc22e0d1de8844e1850d8ef1442fbecb>
JSP data
Description
A subset of JSP secondary school exam data
Usage
jsp_data
Format
A data frame with 728 rows and 7 columns:
- math_score_y1
 Score on math test year 1
- math_score_y3
 Score on math test year 3
- gender
 Gender of subjects (pupils)
- social_class
 Social class of subjects (pupils)
- school
 School, in which subjects (pupils) are nested in
- normal_score_y1
 Normal test score year 1
- normal_score_y3
 Normal test score year 3
Source
<https://www.bristol.ac.uk/cmm/team/hg/msm-3rd-ed/datasets.html>
Spaghetti-plot fixed and random effects of linear mixed models
Description
pastaPlot() plots slopes for both fixed and random effects of linear mixed models from 'lme4' or 'glmmTMB' packages as a single spaghetti plot, optionally between conditions including confidence bands for fixed effects.
Usage
pastaPlot(
  model = NULL,
  predictor = NULL,
  nested.in = NULL,
  group = NULL,
  legend.title = "Legend",
  group.labels = NULL,
  xlab = NULL,
  ylab = NULL,
  font.family = NULL,
  colors = NULL,
  ci.lvl = 0.95,
  ci.int = FALSE,
  ci.linetype = 0,
  lwd.fix = 1,
  lwd.ran = 0.5,
  xlab.inc = 0,
  xlab.int = NULL,
  ylim = NULL,
  opacity.ci = 0.25,
  opacity.ran = 0.3,
  colors.ci = NULL
)
Arguments
model | 
 lme4 or glmmTMB model object  | 
predictor | 
 (Character) Name of predictor (e.g., "time" or "math_score"), as it is present in the model  | 
nested.in | 
 (Character) Name of the variable your time points or subjects are nested in (e.g.,"school" or "id")  | 
group | 
 (Optional, character) The name of your grouping variable (e.g., "condition" or "gender")  | 
legend.title | 
 (Optional, character) Name of legend in plot (e.g., "Condition", or "Gender")  | 
group.labels | 
 (Optional, vector of characters) Names of group labels to be displayed in the plot (e.g., c("Control", "Intervention"))  | 
xlab | 
 (Optional, character) Label of x-axis (predictor) (e.g., "Time (days)")  | 
ylab | 
 (Optional, character) Label of y-axis (dependant variable) (e.g., "GAF")  | 
font.family | 
 (Optional, character) Name of the font family (e.g. "serif")  | 
colors | 
 (Optional, vector of characters) Set color of slopes. Length of vector should correspond to number of values in group variable (e.g., c("#5e9aff", "blue")). If no group variable is specified, pass a single color.  | 
ci.lvl | 
 (Optional, numeric) Set confidence interval (default: 0.95)  | 
ci.int | 
 (Optional, logical) Enable confidence (prediction) intervals, disabled by default  | 
ci.linetype | 
 (Optional, numeric) Set linetype of confidence bands outline (default: 0)  | 
lwd.fix | 
 (Optional, numeric) Line width of fixed effects (default: 1)  | 
lwd.ran | 
 (Optional, numeric) Line width of random effects (default: 0.5)  | 
xlab.inc | 
 (Optional, numeric) Increment the displayed values of your predictor (e.g., xlab_int = 1 changes range of x from 0-29 to 1-30), set to 0 by default  | 
xlab.int | 
 (Optional, numeric) Interval between displayed predictor values on x-axis (e.g., "1"), disabled by default  | 
ylim | 
 (Optional, numeric vector) Limited range of values on y-axis (e.g. c(1,5.5))  | 
opacity.ci | 
 (Optional, numeric) Set opacity of confidence bands in the range of 0 to 1 (default = 0.1)  | 
opacity.ran | 
 (Optional, numeric) Set opacity of random slopes in the range of 0 to 1 (default = 0.4)  | 
colors.ci | 
 (Optional, vector of characters) Set color of confidence bands. Length of vector should correspond to number of values in group variable (e.g., c("#5e9aff", "blue")). If no group variable is specified, pass a single color.  | 
Value
Returns a ggplot2 plot object to further be modified
Examples
lme4_model <- lme4::lmer(CO2 ~ 1 + time*condition + (1 + time | id),
data=ecovia_data, REML = FALSE, control = lme4::lmerControl(optimizer = "bobyqa"))
pastaPlot(lme4_model, "time", "id", group = "condition", legend.title = "Condition",
group.labels = c("Control", "Intervention"), ci.int = TRUE, xlab = "Time (days)",
ylab = "CO2")
glmmTMB_model <- glmmTMB::glmmTMB(math_score_y3 ~ 1 + math_score_y1*gender +
(1 + math_score_y1 | school), data=jsp_data, REML = FALSE)
pastaPlot(glmmTMB_model, "math_score_y1", "school", group = "gender",
legend.title = "Gender", group.labels = c("Male", "Female"), ci.int = FALSE,
xlab = "Math score (year 1)", ylab = "Math score (year 3)")