lm2list function

Join 'lm()' Output to Form an 'lm_list`-Class Object

Join 'lm()' Output to Form an 'lm_list`-Class Object

The resulting model can be used by indirect_effect(), cond_indirect_effects(), or cond_indirect() as a path method, as if fitted by lavaan::sem().

lm2list(...)

Arguments

  • ...: The lm() outputs to be grouped in a list.

Returns

It returns an lm_list-class object that forms a path model represented by a set of regression models. This class has a summary

method that shows the summary of each regression model stored (see summary.lm_list()), and a print

method that prints the models stored (see print.lm_list()).

Details

If a path model with mediation and/or moderation is fitted by a set of regression models using lm(), this function can combine them to an object of the class lm_list that represents a path model, as one fitted by structural equation model functions such as lavaan::sem(). This class of object can be used by some functions, such as indirect_effect(), cond_indirect_effects(), and cond_indirect() as if they were the output of fitting a path model, with the regression coefficients treated as path coefficients.

The regression outputs to be combined need to meet the following requirements:

  • All models must be connected to at least one another model. That is, a regression model must either have (a) at least on predictor that is the outcome variable of another model, or (b) its outcome variable the predictor of another model.
  • All models must be fitted to the same sample. This implies that the sample size must be the same in all analysis.

Examples

data(data_serial_parallel) lm_m11 <- lm(m11 ~ x + c1 + c2, data_serial_parallel) lm_m12 <- lm(m12 ~ m11 + x + c1 + c2, data_serial_parallel) lm_m2 <- lm(m2 ~ x + c1 + c2, data_serial_parallel) lm_y <- lm(y ~ m11 + m12 + m2 + x + c1 + c2, data_serial_parallel) # Join them to form a lm_list-class object lm_serial_parallel <- lm2list(lm_m11, lm_m12, lm_m2, lm_y) lm_serial_parallel summary(lm_serial_parallel) # Compute indirect effect from x to y through m11 and m12 outm11m12 <- cond_indirect(x = "x", y = "y", m = c("m11", "m12"), fit = lm_serial_parallel) outm11m12 # Compute indirect effect from x to y # through m11 and m12 with bootstrapping CI # R should be at least 2000 or even 5000 in read study. # In real research, parallel and progress can be omitted. # They are est to TRUE by default. outm11m12 <- cond_indirect(x = "x", y = "y", m = c("m11", "m12"), fit = lm_serial_parallel, boot_ci = TRUE, R = 100, seed = 1234, parallel = FALSE, progress = FALSE) outm11m12

See Also

summary.lm_list() and print.lm_list() for related methods, indirect_effect() and cond_indirect_effects() which accept lm_list-class objects as input.

  • Maintainer: Shu Fai Cheung
  • License: GPL (>= 3)
  • Last published: 2025-01-25