Skip to contents

Print the content of the output of indirect_effect() or cond_indirect().

Usage

# S3 method for indirect
print(x, digits = 3, pvalue = FALSE, pvalue_digits = 3, se = FALSE, ...)

Arguments

x

The output of indirect_effect() or cond_indirect().

digits

Number of digits to display. Default is 3.

pvalue

Logical. If TRUE, asymmetric p-value based on bootstrapping will be printed if available.

pvalue_digits

Number of decimal places to display for the p-value. Default is 3.

se

Logical. If TRUE and confidence interval is available, the standard error of the estimate is also printed. This is simply the standard deviation of the bootstrap estimates or Monte Carlo simulated values, depending on the method used to form the confidence interval.

...

Other arguments. Not used.

Value

x is returned invisibly. Called for its side effect.

Details

The print method of the indirect-class object.

If bootstrapping confidence interval was requested, this method has the option to print a p-value computed by the method presented in Asparouhov and Muthén (2021). Note that this p-value is asymmetric bootstrap p-value based on the distribution of the bootstrap estimates. It is not computed based on the distribution under the null hypothesis.

For a p-value of a, it means that a 100(1 - a)% bootstrapping confidence interval will have one of its limits equal to 0. A confidence interval with a higher confidence level will include zero, while a confidence interval with a lower confidence level will exclude zero.

We recommend using confidence interval directly. Therefore, p-value is not printed by default. Nevertheless, users who need it can request it by setting pvalue to TRUE.

References

Asparouhov, A., & Muthén, B. (2021). Bootstrap p-value computation. Retrieved from https://www.statmodel.com/download/FAQ-Bootstrap%20-%20Pvalue.pdf

Examples


library(lavaan)
dat <- modmed_x1m3w4y1
mod <-
"
m1 ~ a1 * x   + b1 * w1 + d1 * x:w1
m2 ~ a2 * m1  + b2 * w2 + d2 * m1:w2
m3 ~ a3 * m2  + b3 * w3 + d3 * m2:w3
y  ~ a4 * m3  + b4 * w4 + d4 * m3:w4
"
fit <- sem(mod, dat,
           meanstructure = TRUE, fixed.x = FALSE,
           se = "none", baseline = FALSE)
est <- parameterEstimates(fit)

wvalues <- c(w1 = 5, w2 = 4, w3 = 2, w4 = 3)

indirect_1 <- cond_indirect(x = "x", y = "y",
                            m = c("m1", "m2", "m3"),
                            fit = fit,
                            wvalues = wvalues)
indirect_1
#> 
#> == Conditional Indirect Effect   ==
#>                                                                             
#>  Path:                        x -> m1 -> m2 -> m3 -> y                      
#>  Moderators:                  w1, w2, w3, w4                                
#>  Conditional Indirect Effect: 1.176                                         
#>  When:                        w1 = 5.000, w2 = 4.000, w3 = 2.000, w4 = 3.000
#> 
#> Computation Formula:
#>   (b.m1~x + (b.x:w1)*(w1))*(b.m2~m1 + (b.m1:w2)*(w2))*(b.m3~m2 + (b.m2:w3)*(w3))*(b.y~m3 + (b.m3:w4)*(w4))
#> Computation:
#>   ((0.46277) + (0.23380)*(5.00000))*((0.36130) + (0.13284)*(4.00000))*((0.68691) + (0.10880)*(2.00000))*((0.40487) + (0.16260)*(3.00000))
#> Coefficients of Component Paths:
#>   Path Conditional Effect Original Coefficient
#>   m1~x              1.632                0.463
#>  m2~m1              0.893                0.361
#>  m3~m2              0.905                0.687
#>   y~m3              0.893                0.405
#> 

dat <- modmed_x1m3w4y1
mod2 <-
"
m1 ~ a1 * x
m2 ~ a2 * m1
m3 ~ a3 * m2
y  ~ a4 * m3 + x
"
fit2 <- sem(mod2, dat,
            meanstructure = TRUE, fixed.x = FALSE,
            se = "none", baseline = FALSE)
est <- parameterEstimates(fit)

indirect_2 <- indirect_effect(x = "x", y = "y",
                              m = c("m1", "m2", "m3"),
                              fit = fit2)
indirect_2
#> 
#> == Indirect Effect ==
#>                                          
#>  Path:           x -> m1 -> m2 -> m3 -> y
#>  Indirect Effect 0.071                   
#> 
#> Computation Formula:
#>   (b.m1~x)*(b.m2~m1)*(b.m3~m2)*(b.y~m3)
#> Computation:
#>   (0.52252)*(0.39883)*(0.80339)*(0.42610)
#> Coefficients of Component Paths:
#>   Path Coefficient
#>   m1~x       0.523
#>  m2~m1       0.399
#>  m3~m2       0.803
#>   y~m3       0.426
#> 
print(indirect_2, digits = 5)
#> 
#> == Indirect Effect ==
#>                                          
#>  Path:           x -> m1 -> m2 -> m3 -> y
#>  Indirect Effect 0.07134                 
#> 
#> Computation Formula:
#>   (b.m1~x)*(b.m2~m1)*(b.m3~m2)*(b.y~m3)
#> Computation:
#>   (0.52252)*(0.39883)*(0.80339)*(0.42610)
#> Coefficients of Component Paths:
#>   Path Coefficient
#>   m1~x     0.52252
#>  m2~m1     0.39883
#>  m3~m2     0.80339
#>   y~m3     0.42610
#>