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] |