# import data
library(readr)
d <- read_csv("/Users/melissalagunas/Desktop/Lab/Contextualizing\ Stigma\ and\ Trauma/LatineData_Subscales.csv")
## New names:
## Rows: 259 Columns: 16
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: "," dbl
## (16): ...1, SSRPH, SSOSH, MHSAS, PR_PF, PR_A, PR_D, PR_SR, PR_PI, ANG, C...
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `` -> `...1`
# import data
library(readr)
dat <- read_csv("/Users/melissalagunas/Desktop/Lab/Contextualizing\ Stigma\ and\ Trauma/LatineData2.csv")
## New names:
## Rows: 259 Columns: 151
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: "," chr
## (4): AHELP, GEN_8_TEXT, ETH_7_TEXT, BORN_1 dbl (146): ...1, Progress,
## Duration..in.seconds., Consent, SSRPH_1, SSRPH_2,... lgl (1): EDU_11_TEXT
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `` -> `...1`
# remove NA variables
d <- na.omit(d)
#data set with only variables of interest
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
d <- data.frame(d$PHFS, d$MHSAS, d$SSOSH, d$SSRPH)
d <- rename(d, familism = d.PHFS, help_seeking_attitudes = d.MHSAS, self_stigma = d.SSOSH, public_stigma = d.SSRPH)
#loading packages
library(lavaan)
## This is lavaan 0.6-16
## lavaan is FREE software! Please report any bugs.
library(semPlot)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(psych)
## 
## Attaching package: 'psych'
## 
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
## 
## The following object is masked from 'package:lavaan':
## 
##     cor2cov
library(jtools)
library(interactions)
library(ggplot2)
library(tidySEM)
## Loading required package: OpenMx
## OpenMx may run faster if it is compiled to take advantage of multiple cores.
## 
## Attaching package: 'OpenMx'
## 
## The following object is masked from 'package:psych':
## 
##     tr
## 
## Registered S3 method overwritten by 'tidySEM':
##   method          from  
##   predict.MxModel OpenMx
## 
## Attaching package: 'tidySEM'
## 
## The following object is masked from 'package:jtools':
## 
##     get_data
# Correlation Analysis 

table <- apaTables::apa.cor.table(d, table.number = 1, show.sig.stars = TRUE,
    landscape = TRUE, filename = "table.doc")
## Registered S3 methods overwritten by 'broom':
##   method            from  
##   tidy.glht         jtools
##   tidy.summary.glht jtools
print(table)
## 
## 
## Table 1 
## 
## Means, standard deviations, and correlations with confidence intervals
##  
## 
##   Variable                  M    SD   1            2            3         
##   1. familism               3.68 0.99                                     
##                                                                           
##   2. help_seeking_attitudes 5.54 1.16 .21**                               
##                                       [.09, .32]                          
##                                                                           
##   3. self_stigma            2.32 0.83 -.18**       -.55**                 
##                                       [-.30, -.06] [-.63, -.46]           
##                                                                           
##   4. public_stigma          2.22 0.67 -.12         -.40**       .56**     
##                                       [-.24, .00]  [-.50, -.29] [.46, .63]
##                                                                           
## 
## Note. M and SD are used to represent mean and standard deviation, respectively.
## Values in square brackets indicate the 95% confidence interval.
## The confidence interval is a plausible range of population correlations 
## that could have caused the sample correlation (Cumming, 2014).
##  * indicates p < .05. ** indicates p < .01.
## 
psych::pairs.panels(d)

# Checking the table of means, standard deviations, and correlations 
table <- apaTables::apa.cor.table(d, table.number = 1, show.sig.stars = TRUE,
    landscape = TRUE, filename = "Lewis_Corr.doc")
print(table)
## 
## 
## Table 1 
## 
## Means, standard deviations, and correlations with confidence intervals
##  
## 
##   Variable                  M    SD   1            2            3         
##   1. familism               3.68 0.99                                     
##                                                                           
##   2. help_seeking_attitudes 5.54 1.16 .21**                               
##                                       [.09, .32]                          
##                                                                           
##   3. self_stigma            2.32 0.83 -.18**       -.55**                 
##                                       [-.30, -.06] [-.63, -.46]           
##                                                                           
##   4. public_stigma          2.22 0.67 -.12         -.40**       .56**     
##                                       [-.24, .00]  [-.50, -.29] [.46, .63]
##                                                                           
## 
## Note. M and SD are used to represent mean and standard deviation, respectively.
## Values in square brackets indicate the 95% confidence interval.
## The confidence interval is a plausible range of population correlations 
## that could have caused the sample correlation (Cumming, 2014).
##  * indicates p < .05. ** indicates p < .01.
## 
# quick peak at data
psych::describe(d)
##                        vars   n mean   sd median trimmed  mad min max range
## familism                  1 257 3.68 0.99   3.80    3.77 0.89   1 5.0   4.0
## help_seeking_attitudes    2 257 5.54 1.16   5.78    5.66 0.99   1 7.0   6.0
## self_stigma               3 257 2.32 0.83   2.10    2.25 0.74   1 4.9   3.9
## public_stigma             4 257 2.22 0.67   2.20    2.21 0.59   1 4.0   3.0
##                         skew kurtosis   se
## familism               -0.76     0.13 0.06
## help_seeking_attitudes -1.13     1.45 0.07
## self_stigma             0.73    -0.05 0.05
## public_stigma           0.19    -0.05 0.04

Working the Moderated Mediation

Piecewise assemly of the moderated mediation

Analysis 1: A simple moderation

# Y = self-stigma; X = public stigma; W = familism

Mod_a_path <- lm(self_stigma ~ public_stigma * familism, data = d)
jtools::summ(Mod_a_path, digits = 3)
## MODEL INFO:
## Observations: 257
## Dependent Variable: self_stigma
## Type: OLS linear regression 
## 
## MODEL FIT:
## F(3,253) = 43.036, p = 0.000
## R² = 0.338
## Adj. R² = 0.330 
## 
## Standard errors: OLS
## --------------------------------------------------------------
##                                  Est.    S.E.   t val.       p
## ---------------------------- -------- ------- -------- -------
## (Intercept)                    -0.088   0.556   -0.159   0.874
## public_stigma                   1.227   0.230    5.343   0.000
## familism                        0.243   0.143    1.698   0.091
## public_stigma:familism         -0.149   0.060   -2.496   0.013
## --------------------------------------------------------------
#graph interaction
interactions::interact_plot(Mod_a_path, pred = public_stigma, modx = familism) +
    ylim(1, 10)

#probing the interaction with simple slopes
interactions::sim_slopes(Mod_a_path, pred = public_stigma, modx = familism)
## JOHNSON-NEYMAN INTERVAL 
## 
## When familism is OUTSIDE the interval [6.12, 25.27], the slope of
## public_stigma is p < .05.
## 
## Note: The range of observed values of familism is [1.00, 5.00]
## 
## SIMPLE SLOPES ANALYSIS 
## 
## Slope of public_stigma when familism = 2.686265 (- 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.83   0.09     9.41   0.00
## 
## Slope of public_stigma when familism = 3.676265 (Mean): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.68   0.06    10.53   0.00
## 
## Slope of public_stigma when familism = 4.666264 (+ 1 SD): 
## 
##   Est.   S.E.   t val.      p
## ------ ------ -------- ------
##   0.53   0.09     6.08   0.00
  # The Johnson-Neyman is a floodlight approach and provides an indication of the places in the distribution of W (moderator) that X has an effect on Y that is different than zero. The analysis of simple slopes approach is thought of as a spotlight approach because probes the distribution at specific values (often the M +/- 1SD).

In this model that is, overall, statistically significant, we account for about 33% of the variance in self-stigma. Looking at these results we can see that there is a statistically significant main effect of public stigma on self-stigma as well as a statistically significant interaction effect (public stigma:familism [XM])

Analysis 2: Another simple moderation

# Y = help-seeking attitudes; X = public stigma; W = familism

Mod_b_path <- lm(help_seeking_attitudes ~ public_stigma * familism, data = d)
jtools::summ(Mod_b_path, digits = 3)
## MODEL INFO:
## Observations: 257
## Dependent Variable: help_seeking_attitudes
## Type: OLS linear regression 
## 
## MODEL FIT:
## F(3,253) = 19.231, p = 0.000
## R² = 0.186
## Adj. R² = 0.176 
## 
## Standard errors: OLS
## --------------------------------------------------------------
##                                  Est.    S.E.   t val.       p
## ---------------------------- -------- ------- -------- -------
## (Intercept)                     6.621   0.861    7.692   0.000
## public_stigma                  -0.807   0.356   -2.271   0.024
## familism                        0.103   0.221    0.467   0.641
## public_stigma:familism          0.040   0.093    0.435   0.664
## --------------------------------------------------------------
#graph interaction
interactions::interact_plot(Mod_b_path, pred = public_stigma, modx = familism) +
    ylim(1, 10)

#probing the interaction with simple slopes
interactions::sim_slopes(Mod_b_path, pred = public_stigma, modx = familism)
## JOHNSON-NEYMAN INTERVAL 
## 
## When familism is INSIDE the interval [-0.79, 6.48], the slope of
## public_stigma is p < .05.
## 
## Note: The range of observed values of familism is [1.00, 5.00]
## 
## SIMPLE SLOPES ANALYSIS 
## 
## Slope of public_stigma when familism = 2.686265 (- 1 SD): 
## 
##    Est.   S.E.   t val.      p
## ------- ------ -------- ------
##   -0.70   0.14    -5.14   0.00
## 
## Slope of public_stigma when familism = 3.676265 (Mean): 
## 
##    Est.   S.E.   t val.      p
## ------- ------ -------- ------
##   -0.66   0.10    -6.62   0.00
## 
## Slope of public_stigma when familism = 4.666264 (+ 1 SD): 
## 
##    Est.   S.E.   t val.      p
## ------- ------ -------- ------
##   -0.62   0.13    -4.59   0.00
  # The Johnson-Neyman is a floodlight approach and provides an indication of the places in the distribution of W (moderator) that X has an effect on Y that is different than zero. The analysis of simple slopes approach is thought of as a spotlight approach because probes the distribution at specific values (often the M +/- 1SD).

Looking at these results we can see that the predictors account for about 18.6% of variance in help-seeking attitudes. Only the independent variable (X), public stigma is a significant predictor. Neither the moderator (familism), nor its interaction with public stigma (public stigma:familism [XW]) are signficant.

Analysis 3: A simple mediation

# Y = help-seeking attitudes; X = public_stigma; M = self_stigma
LMedModel <- "
          help_seeking_attitudes ~ b*self_stigma + c_p*public_stigma 
          self_stigma ~a*public_stigma
          
          #intercepts
          self_stigma ~ self_stigma.mean*1
          help_seeking_attitudes ~ help_seeking_attitudes.mean*1
          
          indirect :=  a*b
          direct  := c_p
          total_c  := c_p + (a*b)
          "
set.seed(230925)  #required for reproducible results because lavaan introduces randomness into the calculations
LMed_fit <- lavaan::sem(LMedModel, data = d, se = "bootstrap", missing = "fiml")
LMed_Sum <- lavaan::summary(LMed_fit, standardized = T, rsq = T, ci = TRUE)
LMed_ParEsts <- lavaan::parameterEstimates(LMed_fit, boot.ci.type = "bca.simple",
    standardized = TRUE)
LMed_Sum
## lavaan 0.6.16 ended normally after 1 iteration
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                         7
## 
##   Number of observations                           257
##   Number of missing patterns                         1
## 
## Model Test User Model:
##                                                       
##   Test statistic                                 0.000
##   Degrees of freedom                                 0
## 
## Parameter Estimates:
## 
##   Standard errors                            Bootstrap
##   Number of requested bootstrap draws             1000
##   Number of successful bootstrap draws            1000
## 
## Regressions:
##                            Estimate  Std.Err  z-value  P(>|z|) ci.lower
##   help_seeking_attitudes ~                                             
##     slf_stgm   (b)           -0.659    0.101   -6.530    0.000   -0.864
##     pblc_stg (c_p)           -0.236    0.123   -1.921    0.055   -0.484
##   self_stigma ~                                                        
##     pblc_stg   (a)            0.694    0.075    9.219    0.000    0.545
##  ci.upper   Std.lv  Std.all
##                            
##    -0.463   -0.659   -0.472
##    -0.002   -0.236   -0.135
##                            
##     0.840    0.694    0.555
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|) ci.lower ci.upper
##    .slf_stg (sl_.)    0.780    0.154    5.080    0.000    0.480    1.072
##    .hlp_sk_ (h__.)    7.587    0.225   33.737    0.000    7.145    8.021
##    Std.lv  Std.all
##     0.780    0.938
##     7.587    6.537
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|) ci.lower ci.upper
##    .hlp_skng_tttds    0.927    0.125    7.397    0.000    0.679    1.158
##    .self_stigma       0.478    0.042   11.483    0.000    0.396    0.559
##    Std.lv  Std.all
##     0.927    0.688
##     0.478    0.692
## 
## R-Square:
##                    Estimate
##     hlp_skng_tttds    0.312
##     self_stigma       0.308
## 
## Defined Parameters:
##                    Estimate  Std.Err  z-value  P(>|z|) ci.lower ci.upper
##     indirect         -0.457    0.090   -5.069    0.000   -0.648   -0.289
##     direct           -0.236    0.123   -1.920    0.055   -0.484   -0.002
##     total_c          -0.693    0.106   -6.528    0.000   -0.888   -0.462
##    Std.lv  Std.all
##    -0.457   -0.262
##    -0.236   -0.135
##    -0.693   -0.397
LMed_ParEsts
##                       lhs op                    rhs                       label
## 1  help_seeking_attitudes  ~            self_stigma                           b
## 2  help_seeking_attitudes  ~          public_stigma                         c_p
## 3             self_stigma  ~          public_stigma                           a
## 4             self_stigma ~1                                   self_stigma.mean
## 5  help_seeking_attitudes ~1                        help_seeking_attitudes.mean
## 6  help_seeking_attitudes ~~ help_seeking_attitudes                            
## 7             self_stigma ~~            self_stigma                            
## 8           public_stigma ~~          public_stigma                            
## 9           public_stigma ~1                                                   
## 10               indirect :=                    a*b                    indirect
## 11                 direct :=                    c_p                      direct
## 12                total_c :=              c_p+(a*b)                     total_c
##       est    se      z pvalue ci.lower ci.upper std.lv std.all std.nox
## 1  -0.659 0.101 -6.530  0.000   -0.853   -0.458 -0.659  -0.472  -0.472
## 2  -0.236 0.123 -1.921  0.055   -0.504   -0.016 -0.236  -0.135  -0.204
## 3   0.694 0.075  9.219  0.000    0.544    0.840  0.694   0.555   0.835
## 4   0.780 0.154  5.080  0.000    0.483    1.073  0.780   0.938   0.938
## 5   7.587 0.225 33.737  0.000    7.125    8.014  7.587   6.537   6.537
## 6   0.927 0.125  7.397  0.000    0.716    1.211  0.927   0.688   0.688
## 7   0.478 0.042 11.483  0.000    0.399    0.565  0.478   0.692   0.692
## 8   0.443 0.000     NA     NA    0.443    0.443  0.443   1.000   0.443
## 9   2.216 0.000     NA     NA    2.216    2.216  2.216   3.332   2.216
## 10 -0.457 0.090 -5.069  0.000   -0.641   -0.286 -0.457  -0.262  -0.394
## 11 -0.236 0.123 -1.920  0.055   -0.504   -0.016 -0.236  -0.135  -0.204
## 12 -0.693 0.106 -6.528  0.000   -0.884   -0.460 -0.693  -0.397  -0.597

The a path (public_stigma -> self_stigma) is statistically significant The b path (self_stigma -> help_seeking_attitudes) is statistically significant The total effect (public_stigma -> help_seeking_attitudes) is statistically significant The direct effect (public_stigma -> help_seeking_attitudes when self_stigma is in the model) is marginally significant The indirect effect (ab) is statistically significant The model accounts for 31% of the variance in help-seeking attitudes (DV) and 30% of the variance in self-stigma

Analysis 4: The moderated mediation - a combined analysis

Combined <- '
    #equations
    self_stigma ~ a1*public_stigma + a2*familism + a3*public_stigma:familism
    help_seeking_attitudes ~ c_p1*public_stigma + c_p2*familism + c_p3*public_stigma:familism + b*self_stigma

    #intercepts
    self_stigma ~ self_stigma.mean*1
    help_seeking_attitudes ~ help_seeking_attitudes.mean*1

    #means, variances of W for simple slopes
    familism ~ familism.mean*1
    familism ~~ familism.var*familism
    
    #index of moderated mediation, there will be an a and b path in the product
    #if the a and/or b path is moderated, select the label that represents the moderation
    
    imm := a3*b

    #Note that we first create the indirect product, then add to it the product of the imm and the W level
    indirect.SDbelow := a1*b + imm*(familism.mean - sqrt(familism.var))
    indirect.mean := a1*b + imm*(familism.mean)
    indirect.SDabove := a1*b + imm*(familism.mean + sqrt(familism.var))

    #direct effect is also moderated so calculate with c_p1 + c_p3
    direct.SDbelow := c_p1 + c_p3*(familism.mean - sqrt(familism.var)) 
    direct.Smean := c_p1 + c_p3*(familism.mean)
    direct.SDabove := c_p1 + c_p3*(familism.mean + sqrt(familism.var))

 '
set.seed(230925) #required for reproducible results because lavaan introduces randomness into the calculations
Combined_fit <- lavaan::sem(Combined, data = d, se = "bootstrap", missing = 'fiml', bootstrap = 1000)
## Warning in lav_partable_vnames(FLAT, "ov.x", warn = TRUE): lavaan WARNING:
##     model syntax contains variance/covariance/intercept formulas
##     involving (an) exogenous variable(s): [familism]; These variables
##     will now be treated as random introducing additional free
##     parameters. If you wish to treat those variables as fixed, remove
##     these formulas from the model syntax. Otherwise, consider adding
##     the fixed.x = FALSE option.
cFITsum <- lavaan::summary(Combined_fit, standardized = TRUE, rsq=T, ci=TRUE)    
cParamEsts <- lavaan::parameterEstimates(Combined_fit, boot.ci.type = "bca.simple", standardized=TRUE)
cFITsum
## lavaan 0.6.16 ended normally after 5 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        13
## 
##   Number of observations                           257
##   Number of missing patterns                         1
## 
## Model Test User Model:
##                                                       
##   Test statistic                               616.759
##   Degrees of freedom                                 2
##   P-value (Chi-square)                           0.000
## 
## Parameter Estimates:
## 
##   Standard errors                            Bootstrap
##   Number of requested bootstrap draws             1000
##   Number of successful bootstrap draws            1000
## 
## Regressions:
##                            Estimate  Std.Err  z-value  P(>|z|) ci.lower
##   self_stigma ~                                                        
##     pblc_st   (a1)            1.227    0.225    5.455    0.000    0.829
##     familsm   (a2)            0.243    0.139    1.744    0.081   -0.025
##     pblc_s:   (a3)           -0.149    0.067   -2.237    0.025   -0.284
##   help_seeking_attitudes ~                                             
##     pblc_st (c_p1)           -0.020    0.401   -0.050    0.960   -0.674
##     familsm (c_p2)            0.259    0.222    1.168    0.243   -0.144
##     pblc_s: (c_p3)           -0.056    0.104   -0.537    0.591   -0.293
##     slf_stg    (b)           -0.642    0.099   -6.505    0.000   -0.843
##  ci.upper   Std.lv  Std.all
##                            
##     1.717    1.227    0.872
##     0.532    0.243    0.256
##    -0.025   -0.149   -0.511
##                            
##     0.957   -0.020   -0.012
##     0.733    0.259    0.223
##     0.126   -0.056   -0.155
##    -0.454   -0.642   -0.524
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|) ci.lower ci.upper
##    .slf_stg (sl_.)   -0.088    0.490   -0.180    0.857   -1.141    0.852
##    .hlp_sk_ (h__.)    6.564    0.896    7.324    0.000    4.476    8.132
##     familsm (fml.)    3.676    0.063   58.363    0.000    3.558    3.797
##    Std.lv  Std.all
##    -0.088   -0.094
##     6.564    5.719
##     3.676    3.721
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|) ci.lower ci.upper
##     familsm (fml.)    0.976    0.088   11.070    0.000    0.799    1.149
##    .slf_stg           0.457    0.040   11.314    0.000    0.371    0.536
##    .hlp_sk_           0.908    0.125    7.294    0.000    0.659    1.141
##    Std.lv  Std.all
##     0.976    1.000
##     0.457    0.521
##     0.908    0.689
## 
## R-Square:
##                    Estimate
##     self_stigma       0.479
##     hlp_skng_tttds    0.311
## 
## Defined Parameters:
##                    Estimate  Std.Err  z-value  P(>|z|) ci.lower ci.upper
##     imm               0.096    0.045    2.144    0.032    0.015    0.191
##     indirect.SDblw   -0.530    0.096   -5.502    0.000   -0.730   -0.358
##     indirect.mean    -0.435    0.086   -5.068    0.000   -0.609   -0.279
##     indirect.SDabv   -0.340    0.097   -3.521    0.000   -0.547   -0.167
##     direct.SDbelow   -0.170    0.158   -1.074    0.283   -0.438    0.165
##     direct.Smean     -0.224    0.121   -1.860    0.063   -0.459    0.022
##     direct.SDabove   -0.279    0.157   -1.782    0.075   -0.606    0.008
##    Std.lv  Std.all
##     0.096    0.267
##    -0.530    0.271
##    -0.435    0.539
##    -0.340    0.806
##    -0.170   -0.433
##    -0.224   -0.588
##    -0.279   -0.744
cParamEsts
##                       lhs op                                          rhs
## 1             self_stigma  ~                                public_stigma
## 2             self_stigma  ~                                     familism
## 3             self_stigma  ~                       public_stigma:familism
## 4  help_seeking_attitudes  ~                                public_stigma
## 5  help_seeking_attitudes  ~                                     familism
## 6  help_seeking_attitudes  ~                       public_stigma:familism
## 7  help_seeking_attitudes  ~                                  self_stigma
## 8             self_stigma ~1                                             
## 9  help_seeking_attitudes ~1                                             
## 10               familism ~1                                             
## 11               familism ~~                                     familism
## 12            self_stigma ~~                                  self_stigma
## 13 help_seeking_attitudes ~~                       help_seeking_attitudes
## 14          public_stigma ~~                                public_stigma
## 15          public_stigma ~~                       public_stigma:familism
## 16 public_stigma:familism ~~                       public_stigma:familism
## 17          public_stigma ~1                                             
## 18 public_stigma:familism ~1                                             
## 19                    imm :=                                         a3*b
## 20       indirect.SDbelow :=  a1*b+imm*(familism.mean-sqrt(familism.var))
## 21          indirect.mean :=                     a1*b+imm*(familism.mean)
## 22       indirect.SDabove :=  a1*b+imm*(familism.mean+sqrt(familism.var))
## 23         direct.SDbelow := c_p1+c_p3*(familism.mean-sqrt(familism.var))
## 24           direct.Smean :=                    c_p1+c_p3*(familism.mean)
## 25         direct.SDabove := c_p1+c_p3*(familism.mean+sqrt(familism.var))
##                          label    est    se      z pvalue ci.lower ci.upper
## 1                           a1  1.227 0.225  5.455  0.000    0.827    1.713
## 2                           a2  0.243 0.139  1.744  0.081   -0.032    0.528
## 3                           a3 -0.149 0.067 -2.237  0.025   -0.283   -0.018
## 4                         c_p1 -0.020 0.401 -0.050  0.960   -0.710    0.860
## 5                         c_p2  0.259 0.222  1.168  0.243   -0.166    0.711
## 6                         c_p3 -0.056 0.104 -0.537  0.591   -0.276    0.140
## 7                            b -0.642 0.099 -6.505  0.000   -0.827   -0.431
## 8             self_stigma.mean -0.088 0.490 -0.180  0.857   -1.130    0.853
## 9  help_seeking_attitudes.mean  6.564 0.896  7.324  0.000    4.760    8.300
## 10               familism.mean  3.676 0.063 58.363  0.000    3.558    3.796
## 11                familism.var  0.976 0.088 11.070  0.000    0.825    1.187
## 12                              0.457 0.040 11.314  0.000    0.388    0.550
## 13                              0.908 0.125  7.294  0.000    0.706    1.191
## 14                              0.443 0.000     NA     NA    0.443    0.443
## 15                              1.454 0.000     NA     NA    1.454    1.454
## 16                             10.259 0.000     NA     NA   10.259   10.259
## 17                              2.216 0.000     NA     NA    2.216    2.216
## 18                              8.070 0.000     NA     NA    8.070    8.070
## 19                         imm  0.096 0.045  2.144  0.032    0.019    0.193
## 20            indirect.SDbelow -0.530 0.096 -5.502  0.000   -0.716   -0.341
## 21               indirect.mean -0.435 0.086 -5.068  0.000   -0.603   -0.274
## 22            indirect.SDabove -0.340 0.097 -3.521  0.000   -0.546   -0.166
## 23              direct.SDbelow -0.170 0.158 -1.074  0.283   -0.458    0.128
## 24                direct.Smean -0.224 0.121 -1.860  0.063   -0.484   -0.010
## 25              direct.SDabove -0.279 0.157 -1.782  0.075   -0.611    0.002
##    std.lv std.all std.nox
## 1   1.227   0.872   1.310
## 2   0.243   0.256   0.172
## 3  -0.149  -0.511  -0.159
## 4  -0.020  -0.012  -0.018
## 5   0.259   0.223   0.150
## 6  -0.056  -0.155  -0.048
## 7  -0.642  -0.524  -0.524
## 8  -0.088  -0.094  -0.094
## 9   6.564   5.719   5.719
## 10  3.676   3.721   3.721
## 11  0.976   1.000   1.000
## 12  0.457   0.521   0.521
## 13  0.908   0.689   0.689
## 14  0.443   1.000   0.443
## 15  1.454   0.682   1.454
## 16 10.259   1.000  10.259
## 17  2.216   3.332   2.216
## 18  8.070   2.520   8.070
## 19  0.096   0.267   0.083
## 20 -0.530   0.271  -0.459
## 21 -0.435   0.539  -0.375
## 22 -0.340   0.806  -0.292
## 23 -0.170  -0.433  -0.149
## 24 -0.224  -0.588  -0.198
## 25 -0.279  -0.744  -0.246