Skip to contents

Regression example

# Load libraries
library(lavaan)
library(lavaanExtra)

# Define our regression terms
regression <- list(
  mpg = names(mtcars)[2:5],
  disp = names(mtcars)[4:7]
)

# Write the model, and check it
mtcars.model <- write_lavaan(regression = regression)
cat(mtcars.model)
## ##################################################
## # [---------Regressions (Direct effects)---------]
## 
## mpg ~ cyl + disp + hp + drat
## disp ~ hp + drat + wt + qsec
# Fit the model with `lavaan`
fit.reg <- sem(mtcars.model, data = mtcars)

# Get regression parameters only
lavaan_reg(fit.reg)
##   Outcome Predictor     p      B CI_lower CI_upper
## 1     mpg       cyl 0.241 -0.242   -0.647    0.163
## 2     mpg      disp 0.121 -0.287   -0.648    0.075
## 3     mpg        hp 0.124 -0.264   -0.602    0.073
## 4     mpg      drat 0.156  0.192   -0.073    0.456
## 5    disp        hp 0.176  0.175   -0.079    0.429
## 6    disp      drat 0.032 -0.177   -0.340   -0.015
## 7    disp        wt 0.000  0.614    0.409    0.818
## 8    disp      qsec 0.059 -0.186   -0.380    0.007
# We can get it prettier with the `rempsyc::nice_table` integration
lavaan_reg(fit.reg, nice_table = TRUE, highlight = TRUE)

Outcome

Predictor

p

β

95% CI

mpg

cyl

.241

-0.24

[-0.65, 0.16]

mpg

disp

.121

-0.29

[-0.65, 0.08]

mpg

hp

.124

-0.26

[-0.60, 0.07]

mpg

drat

.156

0.19

[-0.07, 0.46]

disp

hp

.176

0.18

[-0.08, 0.43]

disp

drat

.032*

-0.18

[-0.34, -0.02]

disp

wt

< .001***

0.61

[0.41, 0.82]

disp

qsec

.059

-0.19

[-0.38, 0.01]