Note: To show the code, press the “Code” button on the right.

Abbreviations: SST = SameSexTouch, OST = OppositeSexTouch, COT = CloseOtherTouch.

Misc: Bootstrap SEs were used with 1000 bootstrap samples for all the models. All the computations were carried out using lavaan package, mimicking the Mplus calculations. The data were assumed to be missing at random - models were estimated using full-information maximum likelihood fit function.

HowLong (DV) by Touch * CS

  1. Can you also run all of these analyses with how quick people shared? (HowLong -> that is, for CS and touch tests, because we only ask this question when people shared their emotion)

Poisson regression for SST * CS

For the following 3 Poisson GLMs, “estimate” represents standardized estimates (I centered and z-scaled the variables beforehand), Pr(>|z|) is the associated p-value. For convenience, the output shows only the table with parameter estimates and matrix of bivariate correlations.

summary(glm(HowLong ~ SSTouchTest * ZCommunalStrength, data = exdat, family=poisson()))$coefficients
##                                  Estimate Std. Error    z value
## (Intercept)                    0.39837381 0.04503078  8.8467005
## SSTouchTest                   -0.01467203 0.04564702 -0.3214236
## ZCommunalStrength             -0.06405330 0.04309837 -1.4862117
## SSTouchTest:ZCommunalStrength  0.03936955 0.04517475  0.8714946
##                                   Pr(>|z|)
## (Intercept)                   9.014493e-19
## SSTouchTest                   7.478894e-01
## ZCommunalStrength             1.372231e-01
## SSTouchTest:ZCommunalStrength 3.834841e-01
d1 <- with(exdat, data.frame(HowLong = HowLong, SST = SSTouchTest, CS = ZCommunalStrength))
round(cor(d1, use = "pairwise.complete.obs"), 2)
##         HowLong   SST    CS
## HowLong    1.00 -0.04 -0.13
## SST       -0.04  1.00  0.10
## CS        -0.13  0.10  1.00

Poisson regression for OST * CS

summary(glm(HowLong ~ OSTouchTest * ZCommunalStrength, data = exdat, family=poisson()))$coefficients
##                                  Estimate Std. Error    z value
## (Intercept)                    0.39921601 0.04477329  8.9163872
## OSTouchTest                    0.04607100 0.04611777  0.9989858
## ZCommunalStrength             -0.07020916 0.04291029 -1.6361848
## OSTouchTest:ZCommunalStrength  0.03336178 0.04599218  0.7253793
##                                   Pr(>|z|)
## (Intercept)                   4.817470e-19
## OSTouchTest                   3.178016e-01
## ZCommunalStrength             1.018009e-01
## OSTouchTest:ZCommunalStrength 4.682194e-01
d2 <- with(exdat, data.frame(HowLong = HowLong, OST = OSTouchTest, CS = ZCommunalStrength))
round(cor(d2, use = "pairwise.complete.obs"), 2)
##         HowLong   OST    CS
## HowLong    1.00  0.08 -0.13
## OST        0.08  1.00 -0.01
## CS        -0.13 -0.01  1.00

Poisson regression for COT * CS

summary(glm(HowLong ~ CloseOthersTouchTest * ZCommunalStrength, data = exdat, family=poisson()))$coefficients
##                                            Estimate Std. Error    z value
## (Intercept)                             0.398475890 0.04530567  8.7952766
## CloseOthersTouchTest                    0.009936536 0.04567637  0.2175422
## ZCommunalStrength                      -0.067049940 0.04320836 -1.5517815
## CloseOthersTouchTest:ZCommunalStrength  0.019910825 0.04778705  0.4166573
##                                            Pr(>|z|)
## (Intercept)                            1.426960e-18
## CloseOthersTouchTest                   8.277859e-01
## ZCommunalStrength                      1.207145e-01
## CloseOthersTouchTest:ZCommunalStrength 6.769291e-01
d3 <- with(exdat, data.frame(HowLong = HowLong, COT = CloseOthersTouchTest, CS = ZCommunalStrength))
round(cor(d3, use = "pairwise.complete.obs"), 2)
##         HowLong  COT    CS
## HowLong    1.00 0.00 -0.13
## COT        0.00 1.00  0.14
## CS        -0.13 0.14  1.00

Well-being by touch * sharing, mediated by interoception

  1. Can you run the analyses on page 4 also with interoception as a mediator between the IVs there, and the DVs (e.g., between closeothertouch X sharing -> interoception (pribc) -> reflection).

Stress by SST*sharing, mediated by interoception

Controlling for main effects of Sharing and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the indirect (alpha * beta), direct (tau), and total effect (tau + (alpha * beta)). The operator “~” stands for “is predicted by”, “:=” denotes “is defined by”. Table below the parameter estimates is the matrix of bivariate correlations.

modelSSstress <- 'PriBC ~ alpha*int_SST_sharing + TargetSharing + SSTouchTest
stress ~ beta*PriBC + tau*int_SST_sharing + TargetSharing + SSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitSSstress <- sem(modelSSstress, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSSstress, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1     PriBC  ~  int_SST_sharing    alpha  0.017 0.032  0.519  0.604
## 4    stress  ~            PriBC     beta -0.016 0.062 -0.254  0.799
## 5    stress  ~  int_SST_sharing      tau  0.031 0.042  0.728  0.467
## 21 indirect :=       alpha*beta indirect  0.000 0.002 -0.117  0.907
## 22   direct :=              tau   direct  0.031 0.042  0.726  0.468
## 23    total := tau+(alpha*beta)    total  0.030 0.042  0.720  0.472
##    ci.lower ci.upper
## 1    -0.063    0.077
## 4    -0.139    0.108
## 5    -0.055    0.116
## 21   -0.005    0.005
## 22   -0.055    0.116
## 23   -0.055    0.116
lavCor(fitSSstress)
##                 PriBC  stress i_SST_ TrgtSh SSTchT
## PriBC            1.000                            
## stress          -0.019  1.000                     
## int_SST_sharing  0.007  0.047  1.000              
## TargetSharing    0.015  0.015 -0.061  1.000       
## SSTouchTest      0.116 -0.055 -0.148  0.058  1.000

Stress by OST*sharing, mediated by interoception

Controlling for main effects of Sharing and Touch

modelOSstress <- 'PriBC ~ alpha*int_OST_sharing + TargetSharing + OSTouchTest
stress ~ beta*PriBC + tau*int_OST_sharing + TargetSharing + OSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitOSstress <- sem(modelOSstress, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOSstress, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1     PriBC  ~  int_OST_sharing    alpha  0.055 0.034  1.642  0.101
## 4    stress  ~            PriBC     beta  0.003 0.062  0.055  0.956
## 5    stress  ~  int_OST_sharing      tau -0.030 0.042 -0.718  0.473
## 21 indirect :=       alpha*beta indirect  0.000 0.004  0.046  0.964
## 22   direct :=              tau   direct -0.030 0.042 -0.716  0.474
## 23    total := tau+(alpha*beta)    total -0.030 0.042 -0.705  0.481
##    ci.lower ci.upper
## 1    -0.003    0.130
## 4    -0.128    0.129
## 5    -0.111    0.052
## 21   -0.009    0.009
## 22   -0.111    0.052
## 23   -0.112    0.055
lavCor(fitOSstress)
##                 PriBC  stress i_OST_ TrgtSh OSTchT
## PriBC            1.000                            
## stress          -0.019  1.000                     
## int_OST_sharing  0.072 -0.025  1.000              
## TargetSharing    0.015  0.015 -0.070  1.000       
## OSTouchTest      0.118 -0.155 -0.100  0.031  1.000

Stress by COT*sharing, mediated by interoception

Controlling for main effects of Sharing and Touch

modelCOstress <- 'PriBC ~ alpha*int_COT_sharing + TargetSharing + CloseOthersTouchTest
stress ~ beta*PriBC + tau*int_COT_sharing + TargetSharing + CloseOthersTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitCOstress <- sem(modelCOstress, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOstress, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1     PriBC  ~  int_COT_sharing    alpha -0.035 0.037 -0.946  0.344
## 4    stress  ~            PriBC     beta -0.023 0.060 -0.380  0.704
## 5    stress  ~  int_COT_sharing      tau  0.014 0.041  0.347  0.729
## 21 indirect :=       alpha*beta indirect  0.001 0.003  0.240  0.811
## 22   direct :=              tau   direct  0.014 0.041  0.346  0.729
## 23    total := tau+(alpha*beta)    total  0.015 0.041  0.364  0.716
##    ci.lower ci.upper
## 1    -0.114    0.035
## 4    -0.148    0.090
## 5    -0.077    0.088
## 21   -0.005    0.010
## 22   -0.077    0.088
## 23   -0.075    0.092
lavCor(fitCOstress)
##                      PriBC  stress i_COT_ TrgtSh ClsOTT
## PriBC                 1.000                            
## stress               -0.019  1.000                     
## int_COT_sharing      -0.058  0.018  1.000              
## TargetSharing         0.015  0.015 -0.081  1.000       
## CloseOthersTouchTest  0.072  0.026 -0.044  0.085  1.000
##################################

Reflection by SST*sharing, mediated by interoception

Controlling for main effects of Sharing and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the indirect (alpha * beta), direct (tau), and total effect (tau + (alpha * beta)). The operator “~” stands for “is predicted by”, “:=” denotes “is defined by”. Table below the parameter estimates is the matrix of bivariate correlations.

modelSSreflection <- 'PriBC ~ alpha*int_SST_sharing + TargetSharing + SSTouchTest
reflection ~ beta*PriBC + tau*int_SST_sharing + TargetSharing + SSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitSSreflection <- sem(modelSSreflection, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSSreflection, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1       PriBC  ~  int_SST_sharing    alpha  0.017 0.035  0.468  0.640
## 4  reflection  ~            PriBC     beta  0.234 0.083  2.829  0.005
## 5  reflection  ~  int_SST_sharing      tau -0.032 0.051 -0.634  0.526
## 21   indirect :=       alpha*beta indirect  0.004 0.008  0.459  0.646
## 22     direct :=              tau   direct -0.032 0.051 -0.633  0.527
## 23      total := tau+(alpha*beta)    total -0.028 0.052 -0.548  0.583
##    ci.lower ci.upper
## 1    -0.053    0.082
## 4     0.033    0.386
## 5    -0.140    0.059
## 21   -0.013    0.020
## 22   -0.140    0.059
## 23   -0.137    0.068
lavCor(fitSSreflection)
##                 PriBC  rflctn i_SST_ TrgtSh SSTchT
## PriBC            1.000                            
## reflection       0.165  1.000                     
## int_SST_sharing  0.007 -0.065  1.000              
## TargetSharing    0.015  0.138 -0.061  1.000       
## SSTouchTest      0.116  0.223 -0.148  0.058  1.000

Reflection by OST*sharing, mediated by interoception

Controlling for main effects of Sharing and Touch

modelOSreflection <- 'PriBC ~ alpha*int_OST_sharing + TargetSharing + OSTouchTest
reflection ~ beta*PriBC + tau*int_OST_sharing + TargetSharing + OSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitOSreflection <- sem(modelOSreflection, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOSreflection, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label   est    se     z pvalue
## 1       PriBC  ~  int_OST_sharing    alpha 0.055 0.039 1.413  0.158
## 4  reflection  ~            PriBC     beta 0.222 0.089 2.486  0.013
## 5  reflection  ~  int_OST_sharing      tau 0.012 0.054 0.227  0.820
## 21   indirect :=       alpha*beta indirect 0.012 0.012 1.057  0.291
## 22     direct :=              tau   direct 0.012 0.054 0.227  0.820
## 23      total := tau+(alpha*beta)    total 0.025 0.056 0.438  0.661
##    ci.lower ci.upper
## 1    -0.022    0.132
## 4     0.045    0.412
## 5    -0.091    0.113
## 21   -0.005    0.042
## 22   -0.091    0.113
## 23   -0.086    0.134
lavCor(fitOSreflection)
##                 PriBC  rflctn i_OST_ TrgtSh OSTchT
## PriBC            1.000                            
## reflection       0.165  1.000                     
## int_OST_sharing  0.072 -0.012  1.000              
## TargetSharing    0.015  0.138 -0.070  1.000       
## OSTouchTest      0.118  0.261 -0.100  0.031  1.000

Reflection by COT*sharing, mediated by interoception

Controlling for main effects of Sharing and Touch

modelCOreflection <- 'PriBC ~ alpha*int_COT_sharing + TargetSharing + CloseOthersTouchTest
reflection ~ beta*PriBC + tau*int_COT_sharing + TargetSharing + CloseOthersTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitCOreflection <- sem(modelCOreflection, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOreflection, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1       PriBC  ~  int_COT_sharing    alpha -0.035 0.040 -0.872  0.383
## 4  reflection  ~            PriBC     beta  0.246 0.075  3.261  0.001
## 5  reflection  ~  int_COT_sharing      tau -0.057 0.050 -1.150  0.250
## 21   indirect :=       alpha*beta indirect -0.009 0.010 -0.840  0.401
## 22     direct :=              tau   direct -0.057 0.050 -1.147  0.251
## 23      total := tau+(alpha*beta)    total -0.066 0.052 -1.266  0.206
##    ci.lower ci.upper
## 1    -0.111    0.049
## 4     0.074    0.384
## 5    -0.159    0.033
## 21   -0.031    0.014
## 22   -0.159    0.033
## 23   -0.172    0.035
lavCor(fitCOreflection)
##                      PriBC  rflctn i_COT_ TrgtSh ClsOTT
## PriBC                 1.000                            
## reflection            0.165  1.000                     
## int_COT_sharing      -0.058 -0.079  1.000              
## TargetSharing         0.015  0.138 -0.081  1.000       
## CloseOthersTouchTest  0.072  0.188 -0.044  0.085  1.000
#######################

Rumination by SST*sharing, mediated by interoception

Controlling for main effects of Sharing and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the indirect (alpha * beta), direct (tau), and total effect (tau + (alpha * beta)). The operator “~” stands for “is predicted by”, “:=” denotes “is defined by”. Table below the parameter estimates is the matrix of bivariate correlations.

modelSSrumination <- 'PriBC ~ alpha*int_SST_sharing + TargetSharing + SSTouchTest
rumination ~ beta*PriBC + tau*int_SST_sharing + TargetSharing + SSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitSSrumination <- sem(modelSSrumination, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSSrumination, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1       PriBC  ~  int_SST_sharing    alpha  0.017 0.033  0.497  0.619
## 4  rumination  ~            PriBC     beta -0.037 0.117 -0.321  0.748
## 5  rumination  ~  int_SST_sharing      tau -0.032 0.062 -0.524  0.600
## 21   indirect :=       alpha*beta indirect -0.001 0.005 -0.132  0.895
## 22     direct :=              tau   direct -0.032 0.062 -0.523  0.601
## 23      total := tau+(alpha*beta)    total -0.033 0.062 -0.534  0.593
##    ci.lower ci.upper
## 1    -0.058    0.073
## 4    -0.266    0.167
## 5    -0.176    0.077
## 21   -0.013    0.008
## 22   -0.176    0.077
## 23   -0.182    0.074
lavCor(fitSSrumination)
##                 PriBC  rumntn i_SST_ TrgtSh SSTchT
## PriBC            1.000                            
## rumination      -0.028  1.000                     
## int_SST_sharing  0.007 -0.010  1.000              
## TargetSharing    0.015 -0.045 -0.061  1.000       
## SSTouchTest      0.116 -0.078 -0.148  0.058  1.000

Rumination by OST*sharing, mediated by interoception

Controlling for main effects of Sharing and Touch

modelOSrumination <- 'PriBC ~ alpha*int_OST_sharing + TargetSharing + OSTouchTest
rumination ~ beta*PriBC + tau*int_OST_sharing + TargetSharing + OSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitOSrumination <- sem(modelOSrumination, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOSrumination, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1       PriBC  ~  int_OST_sharing    alpha  0.055 0.035  1.579  0.114
## 4  rumination  ~            PriBC     beta -0.026 0.106 -0.249  0.803
## 5  rumination  ~  int_OST_sharing      tau -0.053 0.077 -0.690  0.490
## 21   indirect :=       alpha*beta indirect -0.001 0.007 -0.215  0.830
## 22     direct :=              tau   direct -0.053 0.077 -0.688  0.491
## 23      total := tau+(alpha*beta)    total -0.054 0.078 -0.700  0.484
##    ci.lower ci.upper
## 1    -0.019    0.119
## 4    -0.224    0.197
## 5    -0.199    0.092
## 21   -0.018    0.011
## 22   -0.199    0.092
## 23   -0.208    0.087
lavCor(fitOSrumination)
##                 PriBC  rumntn i_OST_ TrgtSh OSTchT
## PriBC            1.000                            
## rumination      -0.028  1.000                     
## int_OST_sharing  0.072 -0.028  1.000              
## TargetSharing    0.015 -0.045 -0.070  1.000       
## OSTouchTest      0.118 -0.098 -0.100  0.031  1.000

Rumination by COT*sharing, mediated by interoception

Controlling for main effects of Sharing and Touch

modelCOrumination <- 'PriBC ~ alpha*int_COT_sharing + TargetSharing + CloseOthersTouchTest
rumination ~ beta*PriBC + tau*int_COT_sharing + TargetSharing + CloseOthersTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitCOrumination <- sem(modelCOrumination, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOrumination, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1       PriBC  ~  int_COT_sharing    alpha -0.035 0.035 -1.013  0.311
## 4  rumination  ~            PriBC     beta -0.048 0.118 -0.407  0.684
## 5  rumination  ~  int_COT_sharing      tau  0.050 0.067  0.736  0.462
## 21   indirect :=       alpha*beta indirect  0.002 0.006  0.305  0.760
## 22     direct :=              tau   direct  0.050 0.068  0.734  0.463
## 23      total := tau+(alpha*beta)    total  0.051 0.068  0.750  0.453
##    ci.lower ci.upper
## 1    -0.100    0.034
## 4    -0.266    0.171
## 5    -0.086    0.177
## 21   -0.012    0.013
## 22   -0.086    0.177
## 23   -0.095    0.179
lavCor(fitCOrumination)
##                      PriBC  rumntn i_COT_ TrgtSh ClsOTT
## PriBC                 1.000                            
## rumination           -0.028  1.000                     
## int_COT_sharing      -0.058  0.043  1.000              
## TargetSharing         0.015 -0.045 -0.081  1.000       
## CloseOthersTouchTest  0.072 -0.030 -0.044  0.085  1.000
#######################

Health by SST*sharing, mediated by interoception

Controlling for main effects of Sharing and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the indirect (alpha * beta), direct (tau), and total effect (tau + (alpha * beta)). The operator “~” stands for “is predicted by”, “:=” denotes “is defined by”. Table below the parameter estimates is the matrix of bivariate correlations.

modelSShealth <- 'PriBC ~ alpha*int_SST_sharing + TargetSharing + SSTouchTest
health ~ beta*PriBC + tau*int_SST_sharing + TargetSharing + SSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitSShealth <- sem(modelSShealth, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSShealth, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1     PriBC  ~  int_SST_sharing    alpha  0.017 0.031  0.526  0.599
## 4    health  ~            PriBC     beta -0.124 0.082 -1.508  0.132
## 5    health  ~  int_SST_sharing      tau  0.057 0.056  1.020  0.308
## 21 indirect :=       alpha*beta indirect -0.002 0.005 -0.403  0.687
## 22   direct :=              tau   direct  0.057 0.056  1.017  0.309
## 23    total := tau+(alpha*beta)    total  0.055 0.056  0.975  0.330
##    ci.lower ci.upper
## 1    -0.046    0.075
## 4    -0.285    0.048
## 5    -0.071    0.170
## 21   -0.015    0.008
## 22   -0.071    0.170
## 23   -0.074    0.165
lavCor(fitSShealth)
##                 PriBC  health i_SST_ TrgtSh SSTchT
## PriBC            1.000                            
## health          -0.083  1.000                     
## int_SST_sharing  0.007  0.062  1.000              
## TargetSharing    0.015 -0.017 -0.061  1.000       
## SSTouchTest      0.116 -0.065 -0.148  0.058  1.000

Health by OST*sharing, mediated by interoception

Controlling for main effects of Sharing and Touch

modelOShealth <- 'PriBC ~ alpha*int_OST_sharing + TargetSharing + OSTouchTest
health ~ beta*PriBC + tau*int_OST_sharing + TargetSharing + OSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitOShealth <- sem(modelOShealth, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOShealth, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1     PriBC  ~  int_OST_sharing    alpha  0.055 0.041  1.360  0.174
## 4    health  ~            PriBC     beta -0.104 0.082 -1.264  0.206
## 5    health  ~  int_OST_sharing      tau -0.044 0.059 -0.748  0.454
## 21 indirect :=       alpha*beta indirect -0.006 0.007 -0.822  0.411
## 22   direct :=              tau   direct -0.044 0.059 -0.746  0.456
## 23    total := tau+(alpha*beta)    total -0.050 0.060 -0.828  0.407
##    ci.lower ci.upper
## 1    -0.020    0.148
## 4    -0.267    0.067
## 5    -0.164    0.079
## 21   -0.026    0.004
## 22   -0.164    0.079
## 23   -0.179    0.079
lavCor(fitOShealth)
##                 PriBC  health i_OST_ TrgtSh OSTchT
## PriBC            1.000                            
## health          -0.083  1.000                     
## int_OST_sharing  0.072 -0.034  1.000              
## TargetSharing    0.015 -0.017 -0.070  1.000       
## OSTouchTest      0.118 -0.130 -0.100  0.031  1.000

Health by COT*sharing, mediated by interoception

Controlling for main effects of Sharing and Touch

modelCOhealth <- 'PriBC ~ alpha*int_COT_sharing + TargetSharing + CloseOthersTouchTest
health ~ beta*PriBC + tau*int_COT_sharing + TargetSharing + CloseOthersTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitCOhealth <- sem(modelCOhealth, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOhealth, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1     PriBC  ~  int_COT_sharing    alpha -0.035 0.037 -0.964  0.335
## 4    health  ~            PriBC     beta -0.136 0.083 -1.629  0.103
## 5    health  ~  int_COT_sharing      tau  0.006 0.056  0.100  0.920
## 21 indirect :=       alpha*beta indirect  0.005 0.006  0.783  0.434
## 22   direct :=              tau   direct  0.006 0.056  0.100  0.921
## 23    total := tau+(alpha*beta)    total  0.010 0.056  0.184  0.854
##    ci.lower ci.upper
## 1    -0.111    0.039
## 4    -0.291    0.027
## 5    -0.111    0.113
## 21   -0.006    0.020
## 22   -0.111    0.113
## 23   -0.110    0.115
lavCor(fitCOhealth)
##                      PriBC  health i_COT_ TrgtSh ClsOTT
## PriBC                 1.000                            
## health               -0.083  1.000                     
## int_COT_sharing      -0.058  0.010  1.000              
## TargetSharing         0.015 -0.017 -0.081  1.000       
## CloseOthersTouchTest  0.072  0.028 -0.044  0.085  1.000
###################################

Double mediation models

  1. Can you run those analyses as well first with reflection or rumination as mediators, from touchscales X sharing -> health or stress (and thus the thinking styles as mediators). And, the next step would then of course still be interoception as second mediator.

SST*Sharing -> reflection –> interoception –> stress

Controlling for main effects of Sharing and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the two indirect (a1 * b1 and a2 * b2), total indirect (a1 * d * b2), direct (c), and total effect c + (a1 * b1) + (a2 * b2) + (a1 * d * b2). The operator “~” stands for “is predicted by”, “:=” denotes “is defined by”. Table below the parameter estimates is the matrix of bivariate correlations.

modelSSstress_refl <- 'reflection ~ a1*int_SST_sharing + TargetSharing + SSTouchTest
PriBC ~ a2*int_SST_sharing + d*reflection + TargetSharing + SSTouchTest
stress ~ c*int_SST_sharing + b1*reflection + b2*PriBC + TargetSharing + SSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitSSstress_refl <- sem(modelSSstress_refl, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSSstress_refl, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op             rhs          label    est    se      z
## 1      reflection  ~ int_SST_sharing             a1 -0.028 0.061 -0.467
## 4           PriBC  ~ int_SST_sharing             a2  0.019 0.031  0.619
## 5           PriBC  ~      reflection              d  0.090 0.036  2.499
## 8          stress  ~ int_SST_sharing              c  0.021 0.040  0.535
## 9          stress  ~      reflection             b1 -0.286 0.035 -8.141
## 10         stress  ~           PriBC             b2  0.051 0.063  0.813
## 28      indirect1 :=           a1*b1      indirect1  0.008 0.018  0.463
## 29      indirect2 :=           a2*b2      indirect2  0.001 0.003  0.377
## 30 total.indirect :=         a1*d*b2 total.indirect  0.000 0.001 -0.260
## 31         direct :=               c         direct  0.021 0.040  0.533
##    pvalue ci.lower ci.upper
## 1   0.641   -0.134    0.106
## 4   0.536   -0.047    0.072
## 5   0.012    0.017    0.166
## 8   0.593   -0.057    0.102
## 9   0.000   -0.349   -0.218
## 10  0.416   -0.082    0.167
## 28  0.643   -0.034    0.039
## 29  0.706   -0.003    0.008
## 30  0.795   -0.001    0.001
## 31  0.594   -0.057    0.102
lavCor(fitSSstress_refl)
##                 rflctn PriBC  stress i_SST_ TrgtSh SSTchT
## reflection       1.000                                   
## PriBC            0.165  1.000                            
## stress          -0.387 -0.019  1.000                     
## int_SST_sharing -0.065  0.007  0.047  1.000              
## TargetSharing    0.138  0.015  0.015 -0.061  1.000       
## SSTouchTest      0.223  0.116 -0.055 -0.148  0.058  1.000

OST*Sharing -> reflection –> interoception –> stress

Controlling for main effects of Sharing and Touch

modelOSstress_refl <- 'reflection ~ a1*int_OST_sharing + TargetSharing + OSTouchTest
PriBC ~ a2*int_OST_sharing + d*reflection + TargetSharing + OSTouchTest
stress ~ c*int_OST_sharing + b1*reflection + b2*PriBC + TargetSharing + OSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitOSstress_refl <- sem(modelOSstress_refl, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOSstress_refl, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op             rhs          label    est    se      z
## 1      reflection  ~ int_OST_sharing             a1  0.025 0.050  0.495
## 4           PriBC  ~ int_OST_sharing             a2  0.053 0.035  1.539
## 5           PriBC  ~      reflection              d  0.086 0.034  2.562
## 8          stress  ~ int_OST_sharing              c -0.027 0.034 -0.792
## 9          stress  ~      reflection             b1 -0.272 0.039 -7.052
## 10         stress  ~           PriBC             b2  0.064 0.055  1.151
## 28      indirect1 :=           a1*b1      indirect1 -0.007 0.013 -0.507
## 29      indirect2 :=           a2*b2      indirect2  0.003 0.004  0.778
## 30 total.indirect :=         a1*d*b2 total.indirect  0.000 0.001  0.241
## 31         direct :=               c         direct -0.027 0.034 -0.790
##    pvalue ci.lower ci.upper
## 1   0.620   -0.063    0.142
## 4   0.124   -0.023    0.108
## 5   0.010    0.022    0.150
## 8   0.428   -0.102    0.037
## 9   0.000   -0.345   -0.198
## 10  0.250   -0.033    0.187
## 28  0.612   -0.035    0.015
## 29  0.437   -0.005    0.015
## 30  0.810   -0.001    0.002
## 31  0.430   -0.102    0.037
lavCor(fitOSstress_refl)
##                 rflctn PriBC  stress i_OST_ TrgtSh OSTchT
## reflection       1.000                                   
## PriBC            0.165  1.000                            
## stress          -0.387 -0.019  1.000                     
## int_OST_sharing -0.012  0.072 -0.025  1.000              
## TargetSharing    0.138  0.015  0.015 -0.070  1.000       
## OSTouchTest      0.261  0.118 -0.155 -0.100  0.031  1.000

COT*Sharing -> reflection –> interoception –> stress

Controlling for main effects of Sharing and Touch

modelCOstress_refl <- 'reflection ~ a1*int_COT_sharing + TargetSharing + CloseOthersTouchTest
PriBC ~ a2*int_COT_sharing + d*reflection + TargetSharing + CloseOthersTouchTest
stress ~ c*int_COT_sharing + b1*reflection + b2*PriBC + TargetSharing + CloseOthersTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitCOstress_refl <- sem(modelCOstress_refl, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOstress_refl, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op             rhs          label    est    se      z
## 1      reflection  ~ int_COT_sharing             a1 -0.066 0.052 -1.258
## 4           PriBC  ~ int_COT_sharing             a2 -0.029 0.035 -0.834
## 5           PriBC  ~      reflection              d  0.094 0.036  2.588
## 8          stress  ~ int_COT_sharing              c -0.003 0.038 -0.069
## 9          stress  ~      reflection             b1 -0.295 0.037 -7.997
## 10         stress  ~           PriBC             b2  0.050 0.063  0.787
## 28      indirect1 :=           a1*b1      indirect1  0.019 0.016  1.229
## 29      indirect2 :=           a2*b2      indirect2 -0.001 0.003 -0.446
## 30 total.indirect :=         a1*d*b2 total.indirect  0.000 0.001 -0.439
## 31         direct :=               c         direct -0.003 0.038 -0.069
##    pvalue ci.lower ci.upper
## 1   0.208   -0.166    0.026
## 4   0.404   -0.108    0.028
## 5   0.010    0.028    0.163
## 8   0.945   -0.078    0.077
## 9   0.000   -0.374   -0.221
## 10  0.432   -0.083    0.188
## 28  0.219   -0.008    0.051
## 29  0.655   -0.010    0.002
## 30  0.661   -0.002    0.001
## 31  0.945   -0.078    0.077
lavCor(fitCOstress_refl)
##                      rflctn PriBC  stress i_COT_ TrgtSh ClsOTT
## reflection            1.000                                   
## PriBC                 0.165  1.000                            
## stress               -0.387 -0.019  1.000                     
## int_COT_sharing      -0.079 -0.058  0.018  1.000              
## TargetSharing         0.138  0.015  0.015 -0.081  1.000       
## CloseOthersTouchTest  0.188  0.072  0.026 -0.044  0.085  1.000

SST*Sharing -> reflection –> interoception –> health

Controlling for main effects of Sharing and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the two indirect (a1 * b1 and a2 * b2), total indirect (a1 * d * b2), direct (c), and total effect c + (a1 * b1) + (a2 * b2) + (a1 * d * b2). The operator “~” stands for “is predicted by”, “:=” denotes “is defined by”. Table below the parameter estimates is the matrix of bivariate correlations.

modelSShealth_refl <- 'reflection ~ a1*int_SST_sharing + TargetSharing + SSTouchTest
PriBC ~ a2*int_SST_sharing + d*reflection + TargetSharing + SSTouchTest
health ~ c*int_SST_sharing + b1*reflection + b2*PriBC + TargetSharing + SSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitSShealth_refl <- sem(modelSShealth_refl, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSShealth_refl, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op             rhs          label    est    se      z
## 1      reflection  ~ int_SST_sharing             a1 -0.028 0.052 -0.545
## 4           PriBC  ~ int_SST_sharing             a2  0.019 0.031  0.620
## 5           PriBC  ~      reflection              d  0.090 0.034  2.619
## 8          health  ~ int_SST_sharing              c  0.050 0.053  0.942
## 9          health  ~      reflection             b1 -0.213 0.050 -4.289
## 10         health  ~           PriBC             b2 -0.074 0.076 -0.985
## 28      indirect1 :=           a1*b1      indirect1  0.006 0.012  0.502
## 29      indirect2 :=           a2*b2      indirect2 -0.001 0.003 -0.442
## 30 total.indirect :=         a1*d*b2 total.indirect  0.000 0.001  0.324
## 31         direct :=               c         direct  0.050 0.053  0.940
##    pvalue ci.lower ci.upper
## 1   0.586   -0.145    0.069
## 4   0.535   -0.036    0.077
## 5   0.009    0.016    0.159
## 8   0.346   -0.058    0.159
## 9   0.000   -0.331   -0.126
## 10  0.324   -0.231    0.085
## 28  0.616   -0.015    0.034
## 29  0.659   -0.010    0.005
## 30  0.746   -0.001    0.002
## 31  0.347   -0.058    0.159
lavCor(fitSShealth_refl)
##                 rflctn PriBC  health i_SST_ TrgtSh SSTchT
## reflection       1.000                                   
## PriBC            0.165  1.000                            
## health          -0.230 -0.083  1.000                     
## int_SST_sharing -0.065  0.007  0.062  1.000              
## TargetSharing    0.138  0.015 -0.017 -0.061  1.000       
## SSTouchTest      0.223  0.116 -0.065 -0.148  0.058  1.000

OST*Sharing -> reflection –> interoception –> health

Controlling for main effects of Sharing and Touch

modelOShealth_refl <- 'reflection ~ a1*int_OST_sharing + TargetSharing + OSTouchTest
PriBC ~ a2*int_OST_sharing + d*reflection + TargetSharing + OSTouchTest
health ~ c*int_OST_sharing + b1*reflection + b2*PriBC + TargetSharing + OSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitOShealth_refl <- sem(modelOShealth_refl, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOShealth_refl, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op             rhs          label    est    se      z
## 1      reflection  ~ int_OST_sharing             a1  0.025 0.048  0.509
## 4           PriBC  ~ int_OST_sharing             a2  0.053 0.036  1.487
## 5           PriBC  ~      reflection              d  0.086 0.033  2.591
## 8          health  ~ int_OST_sharing              c -0.041 0.053 -0.786
## 9          health  ~      reflection             b1 -0.199 0.050 -3.963
## 10         health  ~           PriBC             b2 -0.060 0.084 -0.705
## 28      indirect1 :=           a1*b1      indirect1 -0.005 0.010 -0.489
## 29      indirect2 :=           a2*b2      indirect2 -0.003 0.006 -0.546
## 30 total.indirect :=         a1*d*b2 total.indirect  0.000 0.001 -0.226
## 31         direct :=               c         direct -0.041 0.053 -0.784
##    pvalue ci.lower ci.upper
## 1   0.611   -0.071    0.118
## 4   0.137   -0.014    0.130
## 5   0.010    0.019    0.149
## 8   0.432   -0.145    0.078
## 9   0.000   -0.309   -0.106
## 10  0.481   -0.227    0.099
## 28  0.625   -0.029    0.016
## 29  0.585   -0.017    0.006
## 30  0.821   -0.002    0.001
## 31  0.433   -0.145    0.078
lavCor(fitOShealth_refl)
##                 rflctn PriBC  health i_OST_ TrgtSh OSTchT
## reflection       1.000                                   
## PriBC            0.165  1.000                            
## health          -0.230 -0.083  1.000                     
## int_OST_sharing -0.012  0.072 -0.034  1.000              
## TargetSharing    0.138  0.015 -0.017 -0.070  1.000       
## OSTouchTest      0.261  0.118 -0.130 -0.100  0.031  1.000

COT*Sharing -> reflection –> interoception –> health

Controlling for main effects of Sharing and Touch

modelCOhealth_refl <- 'reflection ~ a1*int_COT_sharing + TargetSharing + CloseOthersTouchTest
PriBC ~ a2*int_COT_sharing + d*reflection + TargetSharing + CloseOthersTouchTest
health ~ c*int_COT_sharing + b1*reflection + b2*PriBC + TargetSharing + CloseOthersTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitCOhealth_refl <- sem(modelCOhealth_refl, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOhealth_refl, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op             rhs          label    est    se      z
## 1      reflection  ~ int_COT_sharing             a1 -0.066 0.048 -1.363
## 4           PriBC  ~ int_COT_sharing             a2 -0.029 0.034 -0.853
## 5           PriBC  ~      reflection              d  0.094 0.033  2.830
## 8          health  ~ int_COT_sharing              c -0.008 0.054 -0.140
## 9          health  ~      reflection             b1 -0.229 0.049 -4.641
## 10         health  ~           PriBC             b2 -0.079 0.083 -0.961
## 28      indirect1 :=           a1*b1      indirect1  0.015 0.011  1.371
## 29      indirect2 :=           a2*b2      indirect2  0.002 0.005  0.481
## 30 total.indirect :=         a1*d*b2 total.indirect  0.000 0.001  0.607
## 31         direct :=               c         direct -0.008 0.054 -0.140
##    pvalue ci.lower ci.upper
## 1   0.173   -0.162    0.029
## 4   0.394   -0.106    0.031
## 5   0.005    0.028    0.157
## 8   0.888   -0.103    0.101
## 9   0.000   -0.326   -0.132
## 10  0.337   -0.256    0.081
## 28  0.170   -0.010    0.038
## 29  0.631   -0.005    0.018
## 30  0.544    0.000    0.003
## 31  0.889   -0.103    0.101
lavCor(fitCOhealth_refl)
##                      rflctn PriBC  health i_COT_ TrgtSh ClsOTT
## reflection            1.000                                   
## PriBC                 0.165  1.000                            
## health               -0.230 -0.083  1.000                     
## int_COT_sharing      -0.079 -0.058  0.010  1.000              
## TargetSharing         0.138  0.015 -0.017 -0.081  1.000       
## CloseOthersTouchTest  0.188  0.072  0.028 -0.044  0.085  1.000

SST*Sharing -> rumination –> interoception –> stress

Controlling for main effects of Sharing and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the two indirect (a1 * b1 and a2 * b2), total indirect (a1 * d * b2), direct (c), and total effect c + (a1 * b1) + (a2 * b2) + (a1 * d * b2). Table below the parameter estimates is the matrix of bivariate correlations.

modelSSstress_rum <- 'rumination ~ a1*int_SST_sharing + TargetSharing + SSTouchTest
PriBC ~ a2*int_SST_sharing + d*rumination + TargetSharing + SSTouchTest
stress ~ c*int_SST_sharing + b1*rumination + b2*PriBC + TargetSharing + SSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitSSstress_rum <- sem(modelSSstress_rum, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSSstress_rum, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op             rhs          label    est    se      z
## 1      rumination  ~ int_SST_sharing             a1 -0.033 0.060 -0.548
## 4           PriBC  ~ int_SST_sharing             a2  0.016 0.034  0.476
## 5           PriBC  ~      rumination              d -0.009 0.026 -0.342
## 8          stress  ~ int_SST_sharing              c  0.041 0.036  1.133
## 9          stress  ~      rumination             b1  0.320 0.023 14.062
## 10         stress  ~           PriBC             b2 -0.004 0.049 -0.077
## 28      indirect1 :=           a1*b1      indirect1 -0.011 0.019 -0.547
## 29      indirect2 :=           a2*b2      indirect2  0.000 0.002 -0.033
## 30 total.indirect :=         a1*d*b2 total.indirect  0.000 0.000 -0.014
## 31         direct :=               c         direct  0.041 0.036  1.130
##    pvalue ci.lower ci.upper
## 1   0.584   -0.143    0.097
## 4   0.634   -0.046    0.090
## 5   0.733   -0.070    0.044
## 8   0.257   -0.032    0.114
## 9   0.000    0.269    0.365
## 10  0.939   -0.103    0.089
## 28  0.584   -0.044    0.030
## 29  0.974   -0.004    0.004
## 30  0.989    0.000    0.000
## 31  0.258   -0.032    0.114
lavCor(fitSSstress_rum)
##                 rumntn PriBC  stress i_SST_ TrgtSh SSTchT
## rumination       1.000                                   
## PriBC           -0.028  1.000                            
## stress           0.564 -0.019  1.000                     
## int_SST_sharing -0.010  0.007  0.047  1.000              
## TargetSharing   -0.045  0.015  0.015 -0.061  1.000       
## SSTouchTest     -0.078  0.116 -0.055 -0.148  0.058  1.000

OST*Sharing -> rumination –> interoception –> stress

Controlling for main effects of Sharing and Touch

modelOSstress_rum <- 'rumination ~ a1*int_OST_sharing + TargetSharing + OSTouchTest
PriBC ~ a2*int_OST_sharing + d*rumination + TargetSharing + OSTouchTest
stress ~ c*int_OST_sharing + b1*rumination + b2*PriBC + TargetSharing + OSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitOSstress_rum <- sem(modelOSstress_rum, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOSstress_rum, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op             rhs          label    est    se      z
## 1      rumination  ~ int_OST_sharing             a1 -0.054 0.066 -0.820
## 4           PriBC  ~ int_OST_sharing             a2  0.055 0.035  1.566
## 5           PriBC  ~      rumination              d -0.006 0.028 -0.219
## 8          stress  ~ int_OST_sharing              c -0.013 0.032 -0.427
## 9          stress  ~      rumination             b1  0.314 0.024 13.075
## 10         stress  ~           PriBC             b2  0.012 0.048  0.242
## 28      indirect1 :=           a1*b1      indirect1 -0.017 0.021 -0.826
## 29      indirect2 :=           a2*b2      indirect2  0.001 0.004  0.182
## 30 total.indirect :=         a1*d*b2 total.indirect  0.000 0.000  0.029
## 31         direct :=               c         direct -0.013 0.032 -0.426
##    pvalue ci.lower ci.upper
## 1   0.412   -0.213    0.072
## 4   0.117   -0.009    0.125
## 5   0.827   -0.064    0.045
## 8   0.670   -0.073    0.059
## 9   0.000    0.259    0.360
## 10  0.809   -0.089    0.103
## 28  0.409   -0.062    0.021
## 29  0.856   -0.009    0.007
## 30  0.977    0.000    0.000
## 31  0.670   -0.073    0.059
lavCor(fitOSstress_rum)
##                 rumntn PriBC  stress i_OST_ TrgtSh OSTchT
## rumination       1.000                                   
## PriBC           -0.028  1.000                            
## stress           0.564 -0.019  1.000                     
## int_OST_sharing -0.028  0.072 -0.025  1.000              
## TargetSharing   -0.045  0.015  0.015 -0.070  1.000       
## OSTouchTest     -0.098  0.118 -0.155 -0.100  0.031  1.000

COT*Sharing -> rumination –> interoception –> stress

Controlling for main effects of Sharing and Touch

modelCOstress_rum <- 'rumination ~ a1*int_COT_sharing + TargetSharing + CloseOthersTouchTest
PriBC ~ a2*int_COT_sharing + d*rumination + TargetSharing + CloseOthersTouchTest
stress ~ c*int_COT_sharing + b1*rumination + b2*PriBC + TargetSharing + CloseOthersTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitCOstress_rum <- sem(modelCOstress_rum, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOstress_rum, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op             rhs          label    est    se      z
## 1      rumination  ~ int_COT_sharing             a1  0.051 0.076  0.676
## 4           PriBC  ~ int_COT_sharing             a2 -0.035 0.038 -0.915
## 5           PriBC  ~      rumination              d -0.011 0.028 -0.408
## 8          stress  ~ int_COT_sharing              c -0.002 0.034 -0.050
## 9          stress  ~      rumination             b1  0.321 0.021 15.001
## 10         stress  ~           PriBC             b2 -0.007 0.048 -0.152
## 28      indirect1 :=           a1*b1      indirect1  0.016 0.024  0.673
## 29      indirect2 :=           a2*b2      indirect2  0.000 0.002  0.109
## 30 total.indirect :=         a1*d*b2 total.indirect  0.000 0.000  0.033
## 31         direct :=               c         direct -0.002 0.034 -0.050
##    pvalue ci.lower ci.upper
## 1   0.499   -0.102    0.217
## 4   0.360   -0.106    0.038
## 5   0.683   -0.064    0.050
## 8   0.960   -0.075    0.060
## 9   0.000    0.279    0.361
## 10  0.879   -0.104    0.087
## 28  0.501   -0.032    0.072
## 29  0.913   -0.005    0.005
## 30  0.973    0.000    0.000
## 31  0.960   -0.075    0.060
lavCor(fitCOstress_rum)
##                      rumntn PriBC  stress i_COT_ TrgtSh ClsOTT
## rumination            1.000                                   
## PriBC                -0.028  1.000                            
## stress                0.564 -0.019  1.000                     
## int_COT_sharing       0.043 -0.058  0.018  1.000              
## TargetSharing        -0.045  0.015  0.015 -0.081  1.000       
## CloseOthersTouchTest -0.030  0.072  0.026 -0.044  0.085  1.000

SST*Sharing -> rumination –> interoception –> health

Controlling for main effects of Sharing and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the two indirect (a1 * b1 and a2 * b2), total indirect (a1 * d * b2), direct (c), and total effect c + (a1 * b1) + (a2 * b2) + (a1 * d * b2). Table below the parameter estimates is the matrix of bivariate correlations.

modelSShealth_rum <- 'rumination ~ a1*int_SST_sharing + TargetSharing + SSTouchTest
PriBC ~ a2*int_SST_sharing + d*rumination + TargetSharing + SSTouchTest
health ~ c*int_SST_sharing + b1*rumination + b2*PriBC + TargetSharing + SSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitSShealth_rum <- sem(modelSShealth_rum, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSShealth_rum, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op             rhs          label    est    se      z
## 1      rumination  ~ int_SST_sharing             a1 -0.033 0.061 -0.542
## 4           PriBC  ~ int_SST_sharing             a2  0.016 0.035  0.469
## 5           PriBC  ~      rumination              d -0.009 0.030 -0.295
## 8          health  ~ int_SST_sharing              c  0.063 0.051  1.216
## 9          health  ~      rumination             b1  0.184 0.039  4.728
## 10         health  ~           PriBC             b2 -0.117 0.081 -1.450
## 28      indirect1 :=           a1*b1      indirect1 -0.006 0.011 -0.529
## 29      indirect2 :=           a2*b2      indirect2 -0.002 0.005 -0.368
## 30 total.indirect :=         a1*d*b2 total.indirect  0.000 0.000 -0.124
## 31         direct :=               c         direct  0.063 0.052  1.213
##    pvalue ci.lower ci.upper
## 1   0.588   -0.149    0.113
## 4   0.639   -0.049    0.084
## 5   0.768   -0.065    0.056
## 8   0.224   -0.049    0.155
## 9   0.000    0.099    0.245
## 10  0.147   -0.272    0.054
## 28  0.597   -0.030    0.022
## 29  0.713   -0.013    0.007
## 30  0.902   -0.001    0.001
## 31  0.225   -0.049    0.155
lavCor(fitSShealth_rum)
##                 rumntn PriBC  health i_SST_ TrgtSh SSTchT
## rumination       1.000                                   
## PriBC           -0.028  1.000                            
## health           0.239 -0.083  1.000                     
## int_SST_sharing -0.010  0.007  0.062  1.000              
## TargetSharing   -0.045  0.015 -0.017 -0.061  1.000       
## SSTouchTest     -0.078  0.116 -0.065 -0.148  0.058  1.000

OST*Sharing -> rumination –> interoception –> health

Controlling for main effects of Sharing and Touch

modelOShealth_rum <- 'rumination ~ a1*int_OST_sharing + TargetSharing + OSTouchTest
PriBC ~ a2*int_OST_sharing + d*rumination + TargetSharing + OSTouchTest
health ~ c*int_OST_sharing + b1*rumination + b2*PriBC + TargetSharing + OSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitOShealth_rum <- sem(modelOShealth_rum, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOShealth_rum, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op             rhs          label    est    se      z
## 1      rumination  ~ int_OST_sharing             a1 -0.054 0.066 -0.817
## 4           PriBC  ~ int_OST_sharing             a2  0.055 0.038  1.443
## 5           PriBC  ~      rumination              d -0.006 0.026 -0.235
## 8          health  ~ int_OST_sharing              c -0.035 0.058 -0.595
## 9          health  ~      rumination             b1  0.176 0.039  4.512
## 10         health  ~           PriBC             b2 -0.099 0.077 -1.287
## 28      indirect1 :=           a1*b1      indirect1 -0.010 0.013 -0.738
## 29      indirect2 :=           a2*b2      indirect2 -0.005 0.006 -0.839
## 30 total.indirect :=         a1*d*b2 total.indirect  0.000 0.000 -0.111
## 31         direct :=               c         direct -0.035 0.058 -0.594
##    pvalue ci.lower ci.upper
## 1   0.414   -0.201    0.064
## 4   0.149   -0.023    0.132
## 5   0.814   -0.064    0.045
## 8   0.552   -0.164    0.065
## 9   0.000    0.081    0.249
## 10  0.198   -0.246    0.052
## 28  0.460   -0.042    0.012
## 29  0.402   -0.023    0.004
## 30  0.912   -0.001    0.000
## 31  0.553   -0.164    0.065
lavCor(fitOShealth_rum)
##                 rumntn PriBC  health i_OST_ TrgtSh OSTchT
## rumination       1.000                                   
## PriBC           -0.028  1.000                            
## health           0.239 -0.083  1.000                     
## int_OST_sharing -0.028  0.072 -0.034  1.000              
## TargetSharing   -0.045  0.015 -0.017 -0.070  1.000       
## OSTouchTest     -0.098  0.118 -0.130 -0.100  0.031  1.000

COT*Sharing -> rumination –> interoception –> health

Controlling for main effects of Sharing and Touch

modelCOhealth_rum <- 'rumination ~ a1*int_COT_sharing + TargetSharing + CloseOthersTouchTest
PriBC ~ a2*int_COT_sharing + d*rumination + TargetSharing + CloseOthersTouchTest
health ~ c*int_COT_sharing + b1*rumination + b2*PriBC + TargetSharing + CloseOthersTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitCOhealth_rum <- sem(modelCOhealth_rum, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOhealth_rum, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op             rhs          label    est    se      z
## 1      rumination  ~ int_COT_sharing             a1  0.051 0.076  0.675
## 4           PriBC  ~ int_COT_sharing             a2 -0.035 0.041 -0.842
## 5           PriBC  ~      rumination              d -0.011 0.027 -0.417
## 8          health  ~ int_COT_sharing              c -0.004 0.055 -0.066
## 9          health  ~      rumination             b1  0.186 0.037  5.077
## 10         health  ~           PriBC             b2 -0.127 0.083 -1.526
## 28      indirect1 :=           a1*b1      indirect1  0.010 0.014  0.661
## 29      indirect2 :=           a2*b2      indirect2  0.004 0.006  0.729
## 30 total.indirect :=         a1*d*b2 total.indirect  0.000 0.001  0.134
## 31         direct :=               c         direct -0.004 0.055 -0.066
##    pvalue ci.lower ci.upper
## 1   0.500   -0.087    0.215
## 4   0.400   -0.119    0.060
## 5   0.676   -0.065    0.044
## 8   0.947   -0.113    0.100
## 9   0.000    0.104    0.252
## 10  0.127   -0.275    0.048
## 28  0.508   -0.018    0.039
## 29  0.466   -0.006    0.021
## 30  0.894   -0.001    0.001
## 31  0.947   -0.113    0.100
lavCor(fitCOhealth_rum)
##                      rumntn PriBC  health i_COT_ TrgtSh ClsOTT
## rumination            1.000                                   
## PriBC                -0.028  1.000                            
## health                0.239 -0.083  1.000                     
## int_COT_sharing       0.043 -0.058  0.010  1.000              
## TargetSharing        -0.045  0.015 -0.017 -0.081  1.000       
## CloseOthersTouchTest -0.030  0.072  0.028 -0.044  0.085  1.000
###############

Well-being by touch * CS, mediated by interoception

4a: The same would go for well-being, touch, communal strength, so, a: First examining interoception as mediator

Stress by SST*CS, mediated by interoception

Controlling for main effects of Communal Strenght and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the indirect (alpha * beta), direct (tau), and total effect (tau + (alpha * beta)). Table below the parameter estimates is the matrix of bivariate correlations.

modelSSstress3 <- 'PriBC ~ alpha*int_SST_CS + ZCommunalStrength + SSTouchTest
stress ~ beta*PriBC + tau*int_SST_CS + ZCommunalStrength + SSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitSSstress3 <- sem(modelSSstress3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSSstress3, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1     PriBC  ~       int_SST_CS    alpha -0.041 0.041 -1.017  0.309
## 4    stress  ~            PriBC     beta -0.005 0.063 -0.077  0.939
## 5    stress  ~       int_SST_CS      tau  0.005 0.045  0.109  0.913
## 21 indirect :=       alpha*beta indirect  0.000 0.003  0.061  0.951
## 22   direct :=              tau   direct  0.005 0.046  0.108  0.914
## 23    total := tau+(alpha*beta)    total  0.005 0.045  0.114  0.910
##    ci.lower ci.upper
## 1    -0.120    0.041
## 4    -0.150    0.113
## 5    -0.096    0.089
## 21   -0.008    0.008
## 22   -0.096    0.089
## 23   -0.092    0.086
lavCor(fitSSstress3)
##                   PriBC  stress i_SST_ ZCmmnS SSTchT
## PriBC              1.000                            
## stress            -0.019  1.000                     
## int_SST_CS        -0.062  0.002  1.000              
## ZCommunalStrength  0.108 -0.071 -0.005  1.000       
## SSTouchTest        0.116 -0.055  0.011  0.096  1.000

Stress by OST*CS, mediated by interoception

Controlling for main effects of Communal Strenght and Touch

modelOSstress3 <- 'PriBC ~ alpha*int_OST_CS + ZCommunalStrength + OSTouchTest
stress ~ beta*PriBC + tau*int_OST_CS + ZCommunalStrength + OSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitOSstress3 <- sem(modelOSstress3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOSstress3, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1     PriBC  ~       int_OST_CS    alpha -0.099 0.048 -2.078  0.038
## 4    stress  ~            PriBC     beta  0.014 0.068  0.213  0.831
## 5    stress  ~       int_OST_CS      tau  0.013 0.041  0.316  0.752
## 21 indirect :=       alpha*beta indirect -0.001 0.007 -0.198  0.843
## 22   direct :=              tau   direct  0.013 0.041  0.315  0.753
## 23    total := tau+(alpha*beta)    total  0.012 0.040  0.287  0.774
##    ci.lower ci.upper
## 1    -0.193    0.002
## 4    -0.133    0.157
## 5    -0.076    0.097
## 21   -0.019    0.013
## 22   -0.076    0.097
## 23   -0.077    0.100
lavCor(fitOSstress3)
##                   PriBC  stress i_OST_ ZCmmnS OSTchT
## PriBC              1.000                            
## stress            -0.019  1.000                     
## int_OST_CS        -0.126 -0.016  1.000              
## ZCommunalStrength  0.108 -0.071  0.084  1.000       
## OSTouchTest        0.118 -0.155  0.065 -0.011  1.000

Stress by COT*CS, mediated by interoception

Controlling for main effects of Communal Strenght and Touch

modelCOstress3 <- 'PriBC ~ alpha*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
stress ~ beta*PriBC + tau*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitCOstress3 <- sem(modelCOstress3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOstress3, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1     PriBC  ~       int_COT_CS    alpha  0.014 0.052  0.274  0.784
## 4    stress  ~            PriBC     beta -0.013 0.063 -0.201  0.841
## 5    stress  ~       int_COT_CS      tau -0.035 0.048 -0.721  0.471
## 21 indirect :=       alpha*beta indirect  0.000 0.003 -0.052  0.958
## 22   direct :=              tau   direct -0.035 0.048 -0.719  0.472
## 23    total := tau+(alpha*beta)    total -0.035 0.048 -0.723  0.470
##    ci.lower ci.upper
## 1    -0.101    0.104
## 4    -0.152    0.096
## 5    -0.134    0.064
## 21   -0.008    0.007
## 22   -0.134    0.064
## 23   -0.135    0.066
lavCor(fitCOstress3)
##                      PriBC  stress i_COT_ ZCmmnS ClsOTT
## PriBC                 1.000                            
## stress               -0.019  1.000                     
## int_COT_CS            0.021 -0.028  1.000              
## ZCommunalStrength     0.108 -0.071 -0.051  1.000       
## CloseOthersTouchTest  0.072  0.026  0.164  0.135  1.000

Health by SST*CS, mediated by interoception

Controlling for main effects of Communal Strenght and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the indirect (alpha * beta), direct (tau), and total effect (tau + (alpha * beta)). Table below the parameter estimates is the matrix of bivariate correlations.

modelSShealth3 <- 'PriBC ~ alpha*int_SST_CS + ZCommunalStrength + SSTouchTest
health ~ beta*PriBC + tau*int_SST_CS + ZCommunalStrength + SSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitSShealth3 <- sem(modelSShealth3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSShealth3, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1     PriBC  ~       int_SST_CS    alpha -0.041 0.042 -0.975  0.330
## 4    health  ~            PriBC     beta -0.118 0.085 -1.397  0.162
## 5    health  ~       int_SST_CS      tau -0.036 0.057 -0.638  0.524
## 21 indirect :=       alpha*beta indirect  0.005 0.007  0.737  0.461
## 22   direct :=              tau   direct -0.036 0.057 -0.636  0.525
## 23    total := tau+(alpha*beta)    total -0.032 0.057 -0.550  0.582
##    ci.lower ci.upper
## 1    -0.127    0.048
## 4    -0.283    0.043
## 5    -0.139    0.086
## 21   -0.009    0.019
## 22   -0.139    0.086
## 23   -0.145    0.089
lavCor(fitSShealth3)
##                   PriBC  health i_SST_ ZCmmnS SSTchT
## PriBC              1.000                            
## health            -0.083  1.000                     
## int_SST_CS        -0.062 -0.029  1.000              
## ZCommunalStrength  0.108 -0.054 -0.005  1.000       
## SSTouchTest        0.116 -0.065  0.011  0.096  1.000

Health by OST*CS, mediated by interoception

Controlling for main effects of Communal Strenght and Touch

modelOShealth3 <- 'PriBC ~ alpha*int_OST_CS + ZCommunalStrength + OSTouchTest
health ~ beta*PriBC + tau*int_OST_CS + ZCommunalStrength + OSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitOShealth3 <- sem(modelOShealth3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOShealth3, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1     PriBC  ~       int_OST_CS    alpha -0.098 0.050 -1.948  0.051
## 4    health  ~            PriBC     beta -0.103 0.078 -1.318  0.187
## 5    health  ~       int_OST_CS      tau -0.015 0.065 -0.229  0.819
## 21 indirect :=       alpha*beta indirect  0.010 0.010  1.012  0.312
## 22   direct :=              tau   direct -0.015 0.065 -0.229  0.819
## 23    total := tau+(alpha*beta)    total -0.005 0.064 -0.073  0.941
##    ci.lower ci.upper
## 1    -0.199    0.009
## 4    -0.260    0.042
## 5    -0.142    0.132
## 21   -0.007    0.038
## 22   -0.142    0.132
## 23   -0.123    0.137
lavCor(fitOShealth3)
##                   PriBC  health i_OST_ ZCmmnS OSTchT
## PriBC              1.000                            
## health            -0.083  1.000                     
## int_OST_CS        -0.126 -0.023  1.000              
## ZCommunalStrength  0.108 -0.054  0.084  1.000       
## OSTouchTest        0.118 -0.130  0.065 -0.011  1.000

Health by COT*CS, mediated by interoception

Controlling for main effects of Communal Strenght and Touch

modelCOhealth3 <- 'PriBC ~ alpha*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
health ~ beta*PriBC + tau*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitCOhealth3 <- sem(modelCOhealth3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOhealth3, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1     PriBC  ~       int_COT_CS    alpha  0.014 0.054  0.250  0.803
## 4    health  ~            PriBC     beta -0.126 0.082 -1.538  0.124
## 5    health  ~       int_COT_CS      tau -0.085 0.064 -1.329  0.184
## 21 indirect :=       alpha*beta indirect -0.002 0.009 -0.199  0.843
## 22   direct :=              tau   direct -0.085 0.064 -1.325  0.185
## 23    total := tau+(alpha*beta)    total -0.087 0.064 -1.345  0.179
##    ci.lower ci.upper
## 1    -0.094    0.127
## 4    -0.295    0.045
## 5    -0.211    0.037
## 21   -0.027    0.015
## 22   -0.211    0.037
## 23   -0.212    0.041
lavCor(fitCOhealth3)
##                      PriBC  health i_COT_ ZCmmnS ClsOTT
## PriBC                 1.000                            
## health               -0.083  1.000                     
## int_COT_CS            0.021 -0.068  1.000              
## ZCommunalStrength     0.108 -0.054 -0.051  1.000       
## CloseOthersTouchTest  0.072  0.028  0.164  0.135  1.000
####################

Stress by SST*CS, mediated by reflection

4b: Then examining whether reflection/rumination as mediator onto health and stress

Controlling for main effects of Communal Strenght and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the indirect (alpha * beta), direct (tau), and total effect (tau + (alpha * beta)). Table below the parameter estimates is the matrix of bivariate correlations.

modelSSstress4 <- 'reflection ~ alpha*int_SST_CS + ZCommunalStrength + SSTouchTest
stress ~ beta*reflection + tau*int_SST_CS + ZCommunalStrength + SSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitSSstress4 <- sem(modelSSstress4, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSSstress4, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1  reflection  ~       int_SST_CS    alpha -0.018 0.070 -0.257  0.797
## 4      stress  ~       reflection     beta -0.275 0.033 -8.288  0.000
## 5      stress  ~       int_SST_CS      tau -0.003 0.042 -0.079  0.937
## 21   indirect :=       alpha*beta indirect  0.005 0.020  0.255  0.799
## 22     direct :=              tau   direct -0.003 0.042 -0.078  0.937
## 23      total := tau+(alpha*beta)    total  0.002 0.045  0.037  0.971
##    ci.lower ci.upper
## 1    -0.188    0.114
## 4    -0.340   -0.202
## 5    -0.097    0.075
## 21   -0.030    0.050
## 22   -0.097    0.075
## 23   -0.091    0.085
lavCor(fitSSstress4)
##                   rflctn stress i_SST_ ZCmmnS SSTchT
## reflection         1.000                            
## stress            -0.387  1.000                     
## int_SST_CS        -0.014  0.002  1.000              
## ZCommunalStrength  0.178 -0.071 -0.005  1.000       
## SSTouchTest        0.223 -0.055  0.011  0.096  1.000

Stress by OST*CS, mediated by reflection

Controlling for main effects of Communal Strenght and Touch

modelOSstress4 <- 'reflection ~ alpha*int_OST_CS + ZCommunalStrength + OSTouchTest
stress ~ beta*reflection + tau*int_OST_CS + ZCommunalStrength + OSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitOSstress4 <- sem(modelOSstress4, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOSstress4, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1  reflection  ~       int_OST_CS    alpha -0.081 0.062 -1.294  0.196
## 4      stress  ~       reflection     beta -0.260 0.035 -7.486  0.000
## 5      stress  ~       int_OST_CS      tau -0.018 0.038 -0.480  0.631
## 21   indirect :=       alpha*beta indirect  0.021 0.017  1.263  0.207
## 22     direct :=              tau   direct -0.018 0.039 -0.479  0.632
## 23      total := tau+(alpha*beta)    total  0.003 0.040  0.063  0.949
##    ci.lower ci.upper
## 1    -0.207    0.051
## 4    -0.318   -0.185
## 5    -0.103    0.060
## 21   -0.011    0.056
## 22   -0.103    0.060
## 23   -0.086    0.087
lavCor(fitOSstress4)
##                   rflctn stress i_OST_ ZCmmnS OSTchT
## reflection         1.000                            
## stress            -0.387  1.000                     
## int_OST_CS        -0.037 -0.016  1.000              
## ZCommunalStrength  0.178 -0.071  0.084  1.000       
## OSTouchTest        0.261 -0.155  0.065 -0.011  1.000

Stress by COT*CS, mediated by reflection

Controlling for main effects of Communal Strenght and Touch

modelCOstress4 <- 'reflection ~ alpha*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
stress ~ beta*reflection + tau*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitCOstress4 <- sem(modelCOstress4, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOstress4, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1  reflection  ~       int_COT_CS    alpha  0.083 0.067  1.237  0.216
## 4      stress  ~       reflection     beta -0.281 0.036 -7.882  0.000
## 5      stress  ~       int_COT_CS      tau -0.011 0.044 -0.263  0.792
## 21   indirect :=       alpha*beta indirect -0.023 0.020 -1.174  0.240
## 22     direct :=              tau   direct -0.011 0.044 -0.263  0.793
## 23      total := tau+(alpha*beta)    total -0.035 0.045 -0.772  0.440
##    ci.lower ci.upper
## 1    -0.077    0.229
## 4    -0.363   -0.208
## 5    -0.087    0.086
## 21   -0.073    0.018
## 22   -0.087    0.086
## 23   -0.111    0.062
lavCor(fitCOstress4)
##                      rflctn stress i_COT_ ZCmmnS ClsOTT
## reflection            1.000                            
## stress               -0.387  1.000                     
## int_COT_CS            0.077 -0.028  1.000              
## ZCommunalStrength     0.178 -0.071 -0.051  1.000       
## CloseOthersTouchTest  0.188  0.026  0.164  0.135  1.000
############################

Stress by SST*CS, mediated by rumination

Controlling for main effects of Communal Strenght and Touch

modelSSstress5 <- 'rumination ~ alpha*int_SST_CS + ZCommunalStrength + SSTouchTest
stress ~ beta*rumination + tau*int_SST_CS + ZCommunalStrength + SSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitSSstress5 <- sem(modelSSstress5, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSSstress5, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1  rumination  ~       int_SST_CS    alpha -0.086 0.085 -1.013  0.311
## 4      stress  ~       rumination     beta  0.319 0.023 13.705  0.000
## 5      stress  ~       int_SST_CS      tau  0.029 0.038  0.765  0.444
## 21   indirect :=       alpha*beta indirect -0.027 0.027 -1.002  0.317
## 22     direct :=              tau   direct  0.029 0.038  0.763  0.446
## 23      total := tau+(alpha*beta)    total  0.002 0.044  0.043  0.966
##    ci.lower ci.upper
## 1    -0.253    0.099
## 4     0.270    0.365
## 5    -0.057    0.102
## 21   -0.085    0.032
## 22   -0.057    0.102
## 23   -0.097    0.092
lavCor(fitSSstress5)
##                   rumntn stress i_SST_ ZCmmnS SSTchT
## rumination         1.000                            
## stress             0.564  1.000                     
## int_SST_CS        -0.059  0.002  1.000              
## ZCommunalStrength -0.112 -0.071 -0.005  1.000       
## SSTouchTest       -0.078 -0.055  0.011  0.096  1.000

Stress by OST*CS, mediated by rumination

Controlling for main effects of Communal Strenght and Touch

modelOSstress5 <- 'rumination ~ alpha*int_OST_CS + ZCommunalStrength + OSTouchTest
stress ~ beta*rumination + tau*int_OST_CS + ZCommunalStrength + OSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitOSstress5 <- sem(modelOSstress5, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOSstress5, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1  rumination  ~       int_OST_CS    alpha  0.033 0.077  0.432  0.666
## 4      stress  ~       rumination     beta  0.313 0.021 14.839  0.000
## 5      stress  ~       int_OST_CS      tau -0.010 0.034 -0.297  0.766
## 21   indirect :=       alpha*beta indirect  0.010 0.024  0.431  0.667
## 22     direct :=              tau   direct -0.010 0.034 -0.296  0.767
## 23      total := tau+(alpha*beta)    total  0.000 0.041  0.011  0.991
##    ci.lower ci.upper
## 1    -0.121    0.200
## 4     0.263    0.346
## 5    -0.077    0.053
## 21   -0.032    0.062
## 22   -0.077    0.053
## 23   -0.075    0.088
lavCor(fitOSstress5)
##                   rumntn stress i_OST_ ZCmmnS OSTchT
## rumination         1.000                            
## stress             0.564  1.000                     
## int_OST_CS         0.009 -0.016  1.000              
## ZCommunalStrength -0.112 -0.071  0.084  1.000       
## OSTouchTest       -0.098 -0.155  0.065 -0.011  1.000

Stress by COT*CS, mediated by rumination

Controlling for main effects of Communal Strenght and Touch

modelCOstress5 <- 'rumination ~ alpha*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
stress ~ beta*rumination + tau*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitCOstress5 <- sem(modelCOstress5, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOstress5, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1  rumination  ~       int_COT_CS    alpha -0.245 0.071 -3.458  0.001
## 4      stress  ~       rumination     beta  0.324 0.024 13.759  0.000
## 5      stress  ~       int_COT_CS      tau  0.047 0.038  1.246  0.213
## 21   indirect :=       alpha*beta indirect -0.079 0.023 -3.437  0.001
## 22     direct :=              tau   direct  0.047 0.038  1.243  0.214
## 23      total := tau+(alpha*beta)    total -0.032 0.043 -0.745  0.456
##    ci.lower ci.upper
## 1    -0.373   -0.090
## 4     0.273    0.374
## 5    -0.035    0.121
## 21   -0.121   -0.029
## 22   -0.035    0.121
## 23   -0.117    0.059
lavCor(fitCOstress5)
##                      rumntn stress i_COT_ ZCmmnS ClsOTT
## rumination            1.000                            
## stress                0.564  1.000                     
## int_COT_CS           -0.150 -0.028  1.000              
## ZCommunalStrength    -0.112 -0.071 -0.051  1.000       
## CloseOthersTouchTest -0.030  0.026  0.164  0.135  1.000
#######################

Health by SST*CS, mediated by rumination

Controlling for main effects of Communal Strenght and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the indirect (alpha * beta), direct (tau), and total effect (tau + (alpha * beta)). Table below the parameter estimates is the matrix of bivariate correlations.

modelSShealth4 <- 'rumination ~ alpha*int_SST_CS + ZCommunalStrength + SSTouchTest
health ~ beta*rumination + tau*int_SST_CS + ZCommunalStrength + SSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitSShealth4 <- sem(modelSShealth4, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSShealth4, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1  rumination  ~       int_SST_CS    alpha -0.086 0.083 -1.032  0.302
## 4      health  ~       rumination     beta  0.180 0.044  4.112  0.000
## 5      health  ~       int_SST_CS      tau -0.018 0.064 -0.289  0.773
## 21   indirect :=       alpha*beta indirect -0.015 0.016 -0.954  0.340
## 22     direct :=              tau   direct -0.018 0.064 -0.288  0.773
## 23      total := tau+(alpha*beta)    total -0.034 0.061 -0.552  0.581
##    ci.lower ci.upper
## 1    -0.245    0.054
## 4     0.090    0.271
## 5    -0.146    0.116
## 21   -0.050    0.011
## 22   -0.146    0.116
## 23   -0.149    0.091
lavCor(fitSShealth4)
##                   rumntn health i_SST_ ZCmmnS SSTchT
## rumination         1.000                            
## health             0.239  1.000                     
## int_SST_CS        -0.059 -0.029  1.000              
## ZCommunalStrength -0.112 -0.054 -0.005  1.000       
## SSTouchTest       -0.078 -0.065  0.011  0.096  1.000

Health by OST*CS, mediated by rumination

Controlling for main effects of Communal Strenght and Touch

modelOShealth4 <- 'rumination ~ alpha*int_OST_CS + ZCommunalStrength + OSTouchTest
health ~ beta*rumination + tau*int_OST_CS + ZCommunalStrength + OSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitOShealth4 <- sem(modelOShealth4, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOShealth4, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1  rumination  ~       int_OST_CS    alpha  0.033 0.093  0.354  0.724
## 4      health  ~       rumination     beta  0.175 0.037  4.745  0.000
## 5      health  ~       int_OST_CS      tau -0.015 0.061 -0.248  0.804
## 21   indirect :=       alpha*beta indirect  0.006 0.017  0.341  0.733
## 22     direct :=              tau   direct -0.015 0.061 -0.248  0.804
## 23      total := tau+(alpha*beta)    total -0.009 0.063 -0.148  0.882
##    ci.lower ci.upper
## 1    -0.168    0.204
## 4     0.109    0.251
## 5    -0.138    0.114
## 21   -0.029    0.046
## 22   -0.138    0.114
## 23   -0.136    0.121
lavCor(fitOShealth4)
##                   rumntn health i_OST_ ZCmmnS OSTchT
## rumination         1.000                            
## health             0.239  1.000                     
## int_OST_CS         0.009 -0.023  1.000              
## ZCommunalStrength -0.112 -0.054  0.084  1.000       
## OSTouchTest       -0.098 -0.130  0.065 -0.011  1.000

Health by COT*CS, mediated by rumination

Controlling for main effects of Communal Strenght and Touch

modelCOhealth4 <- 'rumination ~ alpha*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
health ~ beta*rumination + tau*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitCOhealth4 <- sem(modelCOhealth4, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOhealth4, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1  rumination  ~       int_COT_CS    alpha -0.245 0.083 -2.948  0.003
## 4      health  ~       rumination     beta  0.179 0.040  4.502  0.000
## 5      health  ~       int_COT_CS      tau -0.045 0.065 -0.696  0.487
## 21   indirect :=       alpha*beta indirect -0.044 0.018 -2.436  0.015
## 22     direct :=              tau   direct -0.045 0.065 -0.694  0.488
## 23      total := tau+(alpha*beta)    total -0.089 0.065 -1.364  0.172
##    ci.lower ci.upper
## 1    -0.389   -0.060
## 4     0.107    0.253
## 5    -0.203    0.066
## 21   -0.084   -0.011
## 22   -0.203    0.066
## 23   -0.242    0.040
lavCor(fitCOhealth4)
##                      rumntn health i_COT_ ZCmmnS ClsOTT
## rumination            1.000                            
## health                0.239  1.000                     
## int_COT_CS           -0.150 -0.068  1.000              
## ZCommunalStrength    -0.112 -0.054 -0.051  1.000       
## CloseOthersTouchTest -0.030  0.028  0.164  0.135  1.000
#######################

Health by SST*CS, mediated by reflection

Controlling for main effects of Communal Strenght and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the indirect (alpha * beta), direct (tau), and total effect (tau + (alpha * beta)). Table below the parameter estimates is the matrix of bivariate correlations.

modelSShealth5 <- 'reflection ~ alpha*int_SST_CS + ZCommunalStrength + SSTouchTest
health ~ beta*reflection + tau*int_SST_CS + ZCommunalStrength + SSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitSShealth5 <- sem(modelSShealth5, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSShealth5, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1  reflection  ~       int_SST_CS    alpha -0.019 0.071 -0.272  0.786
## 4      health  ~       reflection     beta -0.218 0.051 -4.254  0.000
## 5      health  ~       int_SST_CS      tau -0.038 0.063 -0.599  0.549
## 21   indirect :=       alpha*beta indirect  0.004 0.016  0.268  0.788
## 22     direct :=              tau   direct -0.038 0.063 -0.598  0.550
## 23      total := tau+(alpha*beta)    total -0.034 0.059 -0.575  0.565
##    ci.lower ci.upper
## 1    -0.172    0.112
## 4    -0.327   -0.114
## 5    -0.153    0.098
## 21   -0.027    0.037
## 22   -0.153    0.098
## 23   -0.138    0.089
lavCor(fitSShealth5)
##                   rflctn health i_SST_ ZCmmnS SSTchT
## reflection         1.000                            
## health            -0.230  1.000                     
## int_SST_CS        -0.014 -0.029  1.000              
## ZCommunalStrength  0.178 -0.054 -0.005  1.000       
## SSTouchTest        0.223 -0.065  0.011  0.096  1.000

Health by OST*CS, mediated by reflection

Controlling for main effects of Communal Strenght and Touch

modelOShealth5 <- 'reflection ~ alpha*int_OST_CS + ZCommunalStrength + OSTouchTest
health ~ beta*reflection + tau*int_OST_CS + ZCommunalStrength + OSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitOShealth5 <- sem(modelOShealth5, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOShealth5, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1  reflection  ~       int_OST_CS    alpha -0.082 0.074 -1.105  0.269
## 4      health  ~       reflection     beta -0.202 0.051 -3.929  0.000
## 5      health  ~       int_OST_CS      tau -0.028 0.067 -0.422  0.673
## 21   indirect :=       alpha*beta indirect  0.017 0.015  1.085  0.278
## 22     direct :=              tau   direct -0.028 0.067 -0.421  0.674
## 23      total := tau+(alpha*beta)    total -0.012 0.064 -0.183  0.855
##    ci.lower ci.upper
## 1    -0.219    0.059
## 4    -0.315   -0.108
## 5    -0.145    0.102
## 21   -0.012    0.046
## 22   -0.145    0.102
## 23   -0.122    0.117
lavCor(fitOShealth5)
##                   rflctn health i_OST_ ZCmmnS OSTchT
## reflection         1.000                            
## health            -0.230  1.000                     
## int_OST_CS        -0.037 -0.023  1.000              
## ZCommunalStrength  0.178 -0.054  0.084  1.000       
## OSTouchTest        0.261 -0.130  0.065 -0.011  1.000

Health by COT*CS, mediated by reflection

Controlling for main effects of Communal Strenght and Touch

modelCOhealth5 <- 'reflection ~ alpha*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
health ~ beta*reflection + tau*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitCOhealth5 <- sem(modelCOhealth5, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOhealth5, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##           lhs op              rhs    label    est    se      z pvalue
## 1  reflection  ~       int_COT_CS    alpha  0.081 0.066  1.235  0.217
## 4      health  ~       reflection     beta -0.229 0.049 -4.676  0.000
## 5      health  ~       int_COT_CS      tau -0.067 0.068 -0.986  0.324
## 21   indirect :=       alpha*beta indirect -0.019 0.017 -1.118  0.263
## 22     direct :=              tau   direct -0.067 0.068 -0.984  0.325
## 23      total := tau+(alpha*beta)    total -0.085 0.068 -1.258  0.208
##    ci.lower ci.upper
## 1    -0.035    0.230
## 4    -0.340   -0.148
## 5    -0.202    0.082
## 21   -0.054    0.007
## 22   -0.202    0.082
## 23   -0.212    0.056
lavCor(fitCOhealth5)
##                      rflctn health i_COT_ ZCmmnS ClsOTT
## reflection            1.000                            
## health               -0.230  1.000                     
## int_COT_CS            0.077 -0.068  1.000              
## ZCommunalStrength     0.178 -0.054 -0.051  1.000       
## CloseOthersTouchTest  0.188  0.028  0.164  0.135  1.000
####################

Double mediation models 2

  1. Can you run those analyses as well first with reflection or rumination as mediators, from touchscales X sharing -> health or stress (and thus the thinking styles as mediators). And, the next step would then of course still be interoception as second mediator.

SST*CS -> reflection –> interoception –> stress

Controlling for main effects of CS and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the two indirect (a1 * b1 and a2 * b2), total indirect (a1 * d * b2), direct (c), and total effect c + (a1 * b1) + (a2 * b2) + (a1 * d * b2). Table below the parameter estimates is the matrix of bivariate correlations.

modelSSstress_refl2 <- 'reflection ~ a1*int_SST_CS + ZCommunalStrength + SSTouchTest
PriBC ~ a2*int_SST_CS + d*reflection + ZCommunalStrength + SSTouchTest
stress ~ c*int_SST_CS + b1*reflection + b2*PriBC + ZCommunalStrength + SSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitSSstress_refl2 <- sem(modelSSstress_refl2, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSSstress_refl2, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1      reflection  ~ int_SST_CS             a1 -0.017 0.075 -0.223  0.823
## 4           PriBC  ~ int_SST_CS             a2 -0.040 0.045 -0.887  0.375
## 5           PriBC  ~ reflection              d  0.081 0.032  2.492  0.013
## 8          stress  ~ int_SST_CS              c  0.003 0.041  0.066  0.947
## 9          stress  ~ reflection             b1 -0.278 0.033 -8.544  0.000
## 10         stress  ~      PriBC             b2  0.053 0.056  0.943  0.346
## 28      indirect1 :=      a1*b1      indirect1  0.005 0.021  0.223  0.824
## 29      indirect2 :=      a2*b2      indirect2 -0.002 0.004 -0.503  0.615
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.001 -0.125  0.901
## 31         direct :=          c         direct  0.003 0.041  0.066  0.947
##    ci.lower ci.upper
## 1    -0.163    0.112
## 4    -0.129    0.052
## 5     0.023    0.141
## 8    -0.074    0.105
## 9    -0.338   -0.212
## 10   -0.053    0.169
## 28   -0.034    0.049
## 29   -0.014    0.004
## 30   -0.002    0.001
## 31   -0.074    0.105
lavCor(fitSSstress_refl2)
##                   rflctn PriBC  stress i_SST_ ZCmmnS SSTchT
## reflection         1.000                                   
## PriBC              0.165  1.000                            
## stress            -0.387 -0.019  1.000                     
## int_SST_CS        -0.014 -0.062  0.002  1.000              
## ZCommunalStrength  0.178  0.108 -0.071 -0.005  1.000       
## SSTouchTest        0.223  0.116 -0.055  0.011  0.096  1.000

OST*CS -> reflection –> interoception –> stress

Controlling for main effects of CS and Touch

modelOSstress_refl2 <- 'reflection ~ a1*int_OST_CS + ZCommunalStrength + OSTouchTest
PriBC ~ a2*int_OST_CS + d*reflection + ZCommunalStrength + OSTouchTest
stress ~ c*int_OST_CS + b1*reflection + b2*PriBC + ZCommunalStrength + OSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitOSstress_refl2 <- sem(modelOSstress_refl2, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOSstress_refl2, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1      reflection  ~ int_OST_CS             a1 -0.079 0.069 -1.155  0.248
## 4           PriBC  ~ int_OST_CS             a2 -0.092 0.058 -1.599  0.110
## 5           PriBC  ~ reflection              d  0.070 0.030  2.356  0.018
## 8          stress  ~ int_OST_CS              c -0.003 0.044 -0.063  0.950
## 9          stress  ~ reflection             b1 -0.262 0.038 -6.975  0.000
## 10         stress  ~      PriBC             b2  0.061 0.057  1.071  0.284
## 28      indirect1 :=      a1*b1      indirect1  0.021 0.018  1.136  0.256
## 29      indirect2 :=      a2*b2      indirect2 -0.006 0.008 -0.739  0.460
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.001 -0.573  0.566
## 31         direct :=          c         direct -0.003 0.044 -0.063  0.950
##    ci.lower ci.upper
## 1    -0.222    0.046
## 4    -0.190    0.036
## 5     0.007    0.123
## 8    -0.083    0.090
## 9    -0.339   -0.189
## 10   -0.058    0.170
## 28   -0.012    0.062
## 29   -0.025    0.007
## 30   -0.002    0.000
## 31   -0.083    0.090
lavCor(fitOSstress_refl2)
##                   rflctn PriBC  stress i_OST_ ZCmmnS OSTchT
## reflection         1.000                                   
## PriBC              0.165  1.000                            
## stress            -0.387 -0.019  1.000                     
## int_OST_CS        -0.037 -0.126 -0.016  1.000              
## ZCommunalStrength  0.178  0.108 -0.071  0.084  1.000       
## OSTouchTest        0.261  0.118 -0.155  0.065 -0.011  1.000

COT*CS -> reflection –> interoception –> stress

Controlling for main effects of CS and Touch

modelCOstress_refl2 <- 'reflection ~ a1*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
PriBC ~ a2*int_COT_CS + d*reflection + ZCommunalStrength + CloseOthersTouchTest
stress ~ c*int_COT_CS + b1*reflection + b2*PriBC + ZCommunalStrength + CloseOthersTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitCOstress_refl2 <- sem(modelCOstress_refl2, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOstress_refl2, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1      reflection  ~ int_COT_CS             a1  0.083 0.071  1.174  0.240
## 4           PriBC  ~ int_COT_CS             a2  0.005 0.050  0.106  0.915
## 5           PriBC  ~ reflection              d  0.087 0.036  2.421  0.015
## 8          stress  ~ int_COT_CS              c -0.012 0.041 -0.301  0.763
## 9          stress  ~ reflection             b1 -0.285 0.036 -7.938  0.000
## 10         stress  ~      PriBC             b2  0.051 0.066  0.782  0.434
## 28      indirect1 :=      a1*b1      indirect1 -0.024 0.020 -1.156  0.248
## 29      indirect2 :=      a2*b2      indirect2  0.000 0.004  0.060  0.952
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.001  0.584  0.559
## 31         direct :=          c         direct -0.012 0.041 -0.300  0.764
##    ci.lower ci.upper
## 1    -0.063    0.202
## 4    -0.092    0.112
## 5     0.014    0.165
## 8    -0.095    0.071
## 9    -0.350   -0.211
## 10   -0.080    0.195
## 28   -0.065    0.020
## 29   -0.010    0.013
## 30   -0.001    0.002
## 31   -0.095    0.071
lavCor(fitCOstress_refl2)
##                      rflctn PriBC  stress i_COT_ ZCmmnS ClsOTT
## reflection            1.000                                   
## PriBC                 0.165  1.000                            
## stress               -0.387 -0.019  1.000                     
## int_COT_CS            0.077  0.021 -0.028  1.000              
## ZCommunalStrength     0.178  0.108 -0.071 -0.051  1.000       
## CloseOthersTouchTest  0.188  0.072  0.026  0.164  0.135  1.000

SST*CS -> reflection –> interoception –> health

Controlling for main effects of CS and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the two indirect (a1 * b1 and a2 * b2), total indirect (a1 * d * b2), direct (c), and total effect c + (a1 * b1) + (a2 * b2) + (a1 * d * b2). Table below the parameter estimates is the matrix of bivariate correlations.

modelSShealth_refl2 <- 'reflection ~ a1*int_SST_CS + ZCommunalStrength + SSTouchTest
PriBC ~ a2*int_SST_CS + d*reflection + ZCommunalStrength + SSTouchTest
health ~ c*int_SST_CS + b1*reflection + b2*PriBC + ZCommunalStrength + SSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitSShealth_refl2 <- sem(modelSShealth_refl2, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSShealth_refl2, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1      reflection  ~ int_SST_CS             a1 -0.018 0.068 -0.262  0.793
## 4           PriBC  ~ int_SST_CS             a2 -0.039 0.041 -0.955  0.340
## 5           PriBC  ~ reflection              d  0.081 0.032  2.547  0.011
## 8          health  ~ int_SST_CS              c -0.039 0.059 -0.664  0.507
## 9          health  ~ reflection             b1 -0.211 0.054 -3.930  0.000
## 10         health  ~      PriBC             b2 -0.075 0.088 -0.854  0.393
## 28      indirect1 :=      a1*b1      indirect1  0.004 0.016  0.236  0.813
## 29      indirect2 :=      a2*b2      indirect2  0.003 0.005  0.554  0.580
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.001  0.165  0.869
## 31         direct :=          c         direct -0.039 0.059 -0.662  0.508
##    ci.lower ci.upper
## 1    -0.159    0.116
## 4    -0.123    0.043
## 5     0.015    0.145
## 8    -0.138    0.105
## 9    -0.308   -0.105
## 10   -0.251    0.102
## 28   -0.028    0.039
## 29   -0.009    0.014
## 30   -0.001    0.002
## 31   -0.138    0.105
lavCor(fitSShealth_refl2)
##                   rflctn PriBC  health i_SST_ ZCmmnS SSTchT
## reflection         1.000                                   
## PriBC              0.165  1.000                            
## health            -0.230 -0.083  1.000                     
## int_SST_CS        -0.014 -0.062 -0.029  1.000              
## ZCommunalStrength  0.178  0.108 -0.054 -0.005  1.000       
## SSTouchTest        0.223  0.116 -0.065  0.011  0.096  1.000

OST*CS -> reflection –> interoception –> health

Controlling for main effects of CS and Touch

modelOShealth_refl2 <- 'reflection ~ a1*int_OST_CS + ZCommunalStrength + OSTouchTest
PriBC ~ a2*int_OST_CS + d*reflection + ZCommunalStrength + OSTouchTest
health ~ c*int_OST_CS + b1*reflection + b2*PriBC + ZCommunalStrength + OSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitOShealth_refl2 <- sem(modelOShealth_refl2, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOShealth_refl2, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1      reflection  ~ int_OST_CS             a1 -0.080 0.068 -1.185  0.236
## 4           PriBC  ~ int_OST_CS             a2 -0.092 0.047 -1.964  0.050
## 5           PriBC  ~ reflection              d  0.070 0.033  2.131  0.033
## 8          health  ~ int_OST_CS              c -0.029 0.067 -0.434  0.664
## 9          health  ~ reflection             b1 -0.196 0.054 -3.627  0.000
## 10         health  ~      PriBC             b2 -0.069 0.078 -0.887  0.375
## 28      indirect1 :=      a1*b1      indirect1  0.016 0.015  1.045  0.296
## 29      indirect2 :=      a2*b2      indirect2  0.006 0.009  0.694  0.487
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.001  0.489  0.625
## 31         direct :=          c         direct -0.029 0.067 -0.433  0.665
##    ci.lower ci.upper
## 1    -0.217    0.059
## 4    -0.183   -0.003
## 5     0.005    0.132
## 8    -0.163    0.109
## 9    -0.305   -0.074
## 10   -0.219    0.110
## 28   -0.011    0.058
## 29   -0.014    0.026
## 30   -0.001    0.002
## 31   -0.163    0.109
lavCor(fitOShealth_refl2)
##                   rflctn PriBC  health i_OST_ ZCmmnS OSTchT
## reflection         1.000                                   
## PriBC              0.165  1.000                            
## health            -0.230 -0.083  1.000                     
## int_OST_CS        -0.037 -0.126 -0.023  1.000              
## ZCommunalStrength  0.178  0.108 -0.054  0.084  1.000       
## OSTouchTest        0.261  0.118 -0.130  0.065 -0.011  1.000

COT*CS -> reflection –> interoception –> health

Controlling for main effects of CS and Touch

modelCOhealth_refl2 <- 'reflection ~ a1*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
PriBC ~ a2*int_COT_CS + d*reflection + ZCommunalStrength + CloseOthersTouchTest
health ~ c*int_COT_CS + b1*reflection + b2*PriBC + ZCommunalStrength + CloseOthersTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitCOhealth_refl2 <- sem(modelCOhealth_refl2, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOhealth_refl2, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1      reflection  ~ int_COT_CS             a1  0.081 0.070  1.161  0.246
## 4           PriBC  ~ int_COT_CS             a2  0.006 0.048  0.119  0.905
## 5           PriBC  ~ reflection              d  0.087 0.035  2.466  0.014
## 8          health  ~ int_COT_CS              c -0.066 0.067 -0.989  0.323
## 9          health  ~ reflection             b1 -0.222 0.050 -4.442  0.000
## 10         health  ~      PriBC             b2 -0.077 0.086 -0.899  0.369
## 28      indirect1 :=      a1*b1      indirect1 -0.018 0.017 -1.089  0.276
## 29      indirect2 :=      a2*b2      indirect2  0.000 0.005 -0.084  0.933
## 30 total.indirect :=    a1*d*b2 total.indirect -0.001 0.001 -0.674  0.500
## 31         direct :=          c         direct -0.066 0.067 -0.987  0.324
##    ci.lower ci.upper
## 1    -0.053    0.240
## 4    -0.075    0.097
## 5     0.015    0.157
## 8    -0.190    0.065
## 9    -0.327   -0.133
## 10   -0.242    0.096
## 28   -0.058    0.012
## 29   -0.015    0.009
## 30   -0.003    0.001
## 31   -0.190    0.065
lavCor(fitCOhealth_refl2)
##                      rflctn PriBC  health i_COT_ ZCmmnS ClsOTT
## reflection            1.000                                   
## PriBC                 0.165  1.000                            
## health               -0.230 -0.083  1.000                     
## int_COT_CS            0.077  0.021 -0.068  1.000              
## ZCommunalStrength     0.178  0.108 -0.054 -0.051  1.000       
## CloseOthersTouchTest  0.188  0.072  0.028  0.164  0.135  1.000

SST*CS -> rumination –> interoception –> stress

Controlling for main effects of CS and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the two indirect (a1 * b1 and a2 * b2), total indirect (a1 * d * b2), direct (c), and total effect c + (a1 * b1) + (a2 * b2) + (a1 * d * b2). Table below the parameter estimates is the matrix of bivariate correlations.

modelSSstress_rum2 <- 'rumination ~ a1*int_SST_CS + ZCommunalStrength + SSTouchTest
PriBC ~ a2*int_SST_CS + d*rumination + ZCommunalStrength + SSTouchTest
stress ~ c*int_SST_CS + b1*rumination + b2*PriBC + ZCommunalStrength + SSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitSSstress_rum2 <- sem(modelSSstress_rum2, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSSstress_rum2, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1      rumination  ~ int_SST_CS             a1 -0.081 0.080 -1.011  0.312
## 4           PriBC  ~ int_SST_CS             a2 -0.041 0.040 -1.029  0.304
## 5           PriBC  ~ rumination              d -0.006 0.028 -0.196  0.845
## 8          stress  ~ int_SST_CS              c  0.032 0.039  0.802  0.422
## 9          stress  ~ rumination             b1  0.319 0.022 14.480  0.000
## 10         stress  ~      PriBC             b2  0.003 0.042  0.060  0.952
## 28      indirect1 :=      a1*b1      indirect1 -0.026 0.026 -1.007  0.314
## 29      indirect2 :=      a2*b2      indirect2  0.000 0.002 -0.045  0.964
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.000  0.008  0.994
## 31         direct :=          c         direct  0.032 0.040  0.800  0.423
##    ci.lower ci.upper
## 1    -0.232    0.078
## 4    -0.110    0.036
## 5    -0.062    0.051
## 8    -0.042    0.115
## 9     0.276    0.362
## 10   -0.095    0.084
## 28   -0.074    0.025
## 29   -0.006    0.004
## 30    0.000    0.000
## 31   -0.042    0.115
lavCor(fitSSstress_rum2)
##                   rumntn PriBC  stress i_SST_ ZCmmnS SSTchT
## rumination         1.000                                   
## PriBC             -0.028  1.000                            
## stress             0.564 -0.019  1.000                     
## int_SST_CS        -0.059 -0.062  0.002  1.000              
## ZCommunalStrength -0.112  0.108 -0.071 -0.005  1.000       
## SSTouchTest       -0.078  0.116 -0.055  0.011  0.096  1.000

OST*CS -> rumination –> interoception –> stress

Controlling for main effects of CS and Touch

modelOSstress_rum2 <- 'rumination ~ a1*int_OST_CS + ZCommunalStrength + OSTouchTest
PriBC ~ a2*int_OST_CS + d*rumination + ZCommunalStrength + OSTouchTest
stress ~ c*int_OST_CS + b1*rumination + b2*PriBC + ZCommunalStrength + OSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitOSstress_rum2 <- sem(modelOSstress_rum2, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOSstress_rum2, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1      rumination  ~ int_OST_CS             a1  0.044 0.088  0.505  0.614
## 4           PriBC  ~ int_OST_CS             a2 -0.099 0.056 -1.779  0.075
## 5           PriBC  ~ rumination              d  0.001 0.028  0.040  0.968
## 8          stress  ~ int_OST_CS              c -0.001 0.030 -0.049  0.961
## 9          stress  ~ rumination             b1  0.312 0.023 13.781  0.000
## 10         stress  ~      PriBC             b2  0.013 0.046  0.274  0.784
## 28      indirect1 :=      a1*b1      indirect1  0.014 0.028  0.496  0.620
## 29      indirect2 :=      a2*b2      indirect2 -0.001 0.005 -0.235  0.815
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.000  0.005  0.996
## 31         direct :=          c         direct -0.001 0.030 -0.048  0.961
##    ci.lower ci.upper
## 1    -0.131    0.212
## 4    -0.212    0.022
## 5    -0.059    0.053
## 8    -0.058    0.062
## 9     0.264    0.353
## 10   -0.068    0.107
## 28   -0.041    0.064
## 29   -0.014    0.009
## 30    0.000    0.000
## 31   -0.058    0.062
lavCor(fitOSstress_rum2)
##                   rumntn PriBC  stress i_OST_ ZCmmnS OSTchT
## rumination         1.000                                   
## PriBC             -0.028  1.000                            
## stress             0.564 -0.019  1.000                     
## int_OST_CS         0.009 -0.126 -0.016  1.000              
## ZCommunalStrength -0.112  0.108 -0.071  0.084  1.000       
## OSTouchTest       -0.098  0.118 -0.155  0.065 -0.011  1.000

COT*CS -> rumination –> interoception –> stress

Controlling for main effects of CS and Touch

modelCOstress_rum2 <- 'rumination ~ a1*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
PriBC ~ a2*int_COT_CS + d*rumination + ZCommunalStrength + CloseOthersTouchTest
stress ~ c*int_COT_CS + b1*rumination + b2*PriBC + ZCommunalStrength + CloseOthersTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitCOstress_rum2 <- sem(modelCOstress_rum2, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOstress_rum2, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1      rumination  ~ int_COT_CS             a1 -0.246 0.087 -2.824  0.005
## 4           PriBC  ~ int_COT_CS             a2  0.014 0.055  0.263  0.792
## 5           PriBC  ~ rumination              d -0.005 0.026 -0.187  0.852
## 8          stress  ~ int_COT_CS              c  0.046 0.038  1.217  0.223
## 9          stress  ~ rumination             b1  0.324 0.024 13.784  0.000
## 10         stress  ~      PriBC             b2 -0.006 0.046 -0.132  0.895
## 28      indirect1 :=      a1*b1      indirect1 -0.080 0.028 -2.875  0.004
## 29      indirect2 :=      a2*b2      indirect2  0.000 0.003 -0.034  0.973
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.000 -0.025  0.980
## 31         direct :=          c         direct  0.046 0.038  1.214  0.225
##    ci.lower ci.upper
## 1    -0.394   -0.044
## 4    -0.098    0.125
## 5    -0.062    0.045
## 8    -0.031    0.120
## 9     0.278    0.366
## 10   -0.094    0.081
## 28   -0.122   -0.012
## 29   -0.007    0.004
## 30   -0.001    0.000
## 31   -0.031    0.120
lavCor(fitCOstress_rum2)
##                      rumntn PriBC  stress i_COT_ ZCmmnS ClsOTT
## rumination            1.000                                   
## PriBC                -0.028  1.000                            
## stress                0.564 -0.019  1.000                     
## int_COT_CS           -0.150  0.021 -0.028  1.000              
## ZCommunalStrength    -0.112  0.108 -0.071 -0.051  1.000       
## CloseOthersTouchTest -0.030  0.072  0.026  0.164  0.135  1.000

SST*CS -> rumination –> interoception –> health

Controlling for main effects of CS and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the two indirect (a1 * b1 and a2 * b2), total indirect (a1 * d * b2), direct (c), and total effect c + (a1 * b1) + (a2 * b2) + (a1 * d * b2). Table below the parameter estimates is the matrix of bivariate correlations.

modelSShealth_rum2 <- 'rumination ~ a1*int_SST_CS + ZCommunalStrength + SSTouchTest
PriBC ~ a2*int_SST_CS + d*rumination + ZCommunalStrength + SSTouchTest
health ~ c*int_SST_CS + b1*rumination + b2*PriBC + ZCommunalStrength + SSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitSShealth_rum2 <- sem(modelSShealth_rum2, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSShealth_rum2, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1      rumination  ~ int_SST_CS             a1 -0.081 0.075 -1.074  0.283
## 4           PriBC  ~ int_SST_CS             a2 -0.039 0.038 -1.037  0.300
## 5           PriBC  ~ rumination              d -0.005 0.028 -0.193  0.847
## 8          health  ~ int_SST_CS              c -0.022 0.059 -0.379  0.705
## 9          health  ~ rumination             b1  0.180 0.038  4.687  0.000
## 10         health  ~      PriBC             b2 -0.114 0.081 -1.396  0.163
## 28      indirect1 :=      a1*b1      indirect1 -0.015 0.015 -1.001  0.317
## 29      indirect2 :=      a2*b2      indirect2  0.004 0.006  0.767  0.443
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.000 -0.100  0.920
## 31         direct :=          c         direct -0.022 0.059 -0.378  0.705
##    ci.lower ci.upper
## 1    -0.232    0.060
## 4    -0.118    0.034
## 5    -0.069    0.047
## 8    -0.151    0.091
## 9     0.095    0.250
## 10   -0.273    0.065
## 28   -0.050    0.011
## 29   -0.005    0.020
## 30   -0.001    0.001
## 31   -0.151    0.091
lavCor(fitSShealth_rum2)
##                   rumntn PriBC  health i_SST_ ZCmmnS SSTchT
## rumination         1.000                                   
## PriBC             -0.028  1.000                            
## health             0.239 -0.083  1.000                     
## int_SST_CS        -0.059 -0.062 -0.029  1.000              
## ZCommunalStrength -0.112  0.108 -0.054 -0.005  1.000       
## SSTouchTest       -0.078  0.116 -0.065  0.011  0.096  1.000

OST*CS -> rumination –> interoception –> health

Controlling for main effects of CS and Touch

modelOShealth_rum2 <- 'rumination ~ a1*int_OST_CS + ZCommunalStrength + OSTouchTest
PriBC ~ a2*int_OST_CS + d*rumination + ZCommunalStrength + OSTouchTest
health ~ c*int_OST_CS + b1*rumination + b2*PriBC + ZCommunalStrength + OSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitOShealth_rum2 <- sem(modelOShealth_rum2, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOShealth_rum2, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1      rumination  ~ int_OST_CS             a1  0.044 0.081  0.541  0.589
## 4           PriBC  ~ int_OST_CS             a2 -0.099 0.050 -1.988  0.047
## 5           PriBC  ~ rumination              d  0.001 0.027  0.041  0.967
## 8          health  ~ int_OST_CS              c -0.022 0.063 -0.352  0.725
## 9          health  ~ rumination             b1  0.175 0.041  4.247  0.000
## 10         health  ~      PriBC             b2 -0.103 0.085 -1.208  0.227
## 28      indirect1 :=      a1*b1      indirect1  0.008 0.015  0.514  0.607
## 29      indirect2 :=      a2*b2      indirect2  0.010 0.010  1.004  0.315
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.000 -0.014  0.989
## 31         direct :=          c         direct -0.022 0.063 -0.351  0.726
##    ci.lower ci.upper
## 1    -0.121    0.215
## 4    -0.204   -0.013
## 5    -0.055    0.052
## 8    -0.129    0.103
## 9     0.102    0.255
## 10   -0.253    0.066
## 28   -0.022    0.041
## 29   -0.010    0.036
## 30   -0.001    0.001
## 31   -0.129    0.103
lavCor(fitOShealth_rum2)
##                   rumntn PriBC  health i_OST_ ZCmmnS OSTchT
## rumination         1.000                                   
## PriBC             -0.028  1.000                            
## health             0.239 -0.083  1.000                     
## int_OST_CS         0.009 -0.126 -0.023  1.000              
## ZCommunalStrength -0.112  0.108 -0.054  0.084  1.000       
## OSTouchTest       -0.098  0.118 -0.130  0.065 -0.011  1.000

COT*CS -> rumination –> interoception –> health

Controlling for main effects of CS and Touch

modelCOhealth_rum2 <- 'rumination ~ a1*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
PriBC ~ a2*int_COT_CS + d*rumination + ZCommunalStrength + CloseOthersTouchTest
health ~ c*int_COT_CS + b1*rumination + b2*PriBC + ZCommunalStrength + CloseOthersTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitCOhealth_rum2 <- sem(modelCOhealth_rum2, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOhealth_rum2, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1      rumination  ~ int_COT_CS             a1 -0.246 0.075 -3.271  0.001
## 4           PriBC  ~ int_COT_CS             a2  0.018 0.052  0.338  0.736
## 5           PriBC  ~ rumination              d -0.005 0.028 -0.165  0.869
## 8          health  ~ int_COT_CS              c -0.044 0.060 -0.727  0.468
## 9          health  ~ rumination             b1  0.178 0.040  4.440  0.000
## 10         health  ~      PriBC             b2 -0.121 0.076 -1.605  0.108
## 28      indirect1 :=      a1*b1      indirect1 -0.044 0.018 -2.452  0.014
## 29      indirect2 :=      a2*b2      indirect2 -0.002 0.008 -0.277  0.782
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.001 -0.126  0.900
## 31         direct :=          c         direct -0.044 0.060 -0.725  0.469
##    ci.lower ci.upper
## 1    -0.410   -0.070
## 4    -0.085    0.112
## 5    -0.062    0.047
## 8    -0.176    0.061
## 9     0.103    0.269
## 10   -0.260    0.037
## 28   -0.087   -0.010
## 29   -0.026    0.009
## 30   -0.002    0.003
## 31   -0.176    0.061
lavCor(fitCOhealth_rum2)
##                      rumntn PriBC  health i_COT_ ZCmmnS ClsOTT
## rumination            1.000                                   
## PriBC                -0.028  1.000                            
## health                0.239 -0.083  1.000                     
## int_COT_CS           -0.150  0.021 -0.068  1.000              
## ZCommunalStrength    -0.112  0.108 -0.054 -0.051  1.000       
## CloseOthersTouchTest -0.030  0.072  0.028  0.164  0.135  1.000
#########################

Double mediation models 3

4a Then (if all goes well), interoception as first mediator, reflection or rumination as second mediator. Then repeat analyses with the other touch tests.

SST*CS -> interoception –> reflection –> stress

Controlling for main effects of CS and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the two indirect (a1 * b1 and a2 * b2), total indirect (a1 * d * b2), direct (c), and total effect c + (a1 * b1) + (a2 * b2) + (a1 * d * b2). Table below the parameter estimates is the matrix of bivariate correlations.

modelSSstress_refl3 <- 'PriBC ~ a1*int_SST_CS + ZCommunalStrength + SSTouchTest
reflection ~ a2*int_SST_CS + d*PriBC + ZCommunalStrength + SSTouchTest
stress ~ c*int_SST_CS + b1*PriBC + b2*reflection + ZCommunalStrength + SSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitSSstress_refl3 <- sem(modelSSstress_refl3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSSstress_refl3, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1           PriBC  ~ int_SST_CS             a1 -0.041 0.043 -0.953  0.341
## 4      reflection  ~ int_SST_CS             a2 -0.008 0.071 -0.114  0.910
## 5      reflection  ~      PriBC              d  0.209 0.078  2.698  0.007
## 8          stress  ~ int_SST_CS              c  0.003 0.040  0.068  0.945
## 9          stress  ~      PriBC             b1  0.053 0.064  0.825  0.409
## 10         stress  ~ reflection             b2 -0.278 0.037 -7.572  0.000
## 28      indirect1 :=      a1*b1      indirect1 -0.002 0.005 -0.486  0.627
## 29      indirect2 :=      a2*b2      indirect2  0.002 0.019  0.119  0.906
## 30 total.indirect :=    a1*d*b2 total.indirect  0.002 0.003  0.827  0.408
## 31         direct :=          c         direct  0.003 0.040  0.068  0.946
##    ci.lower ci.upper
## 1    -0.140    0.042
## 4    -0.151    0.143
## 5     0.026    0.363
## 8    -0.080    0.082
## 9    -0.071    0.189
## 10   -0.345   -0.195
## 28   -0.014    0.004
## 29   -0.038    0.040
## 30   -0.002    0.009
## 31   -0.080    0.082
lavCor(fitSSstress_refl3)
##                   PriBC  rflctn stress i_SST_ ZCmmnS SSTchT
## PriBC              1.000                                   
## reflection         0.165  1.000                            
## stress            -0.019 -0.387  1.000                     
## int_SST_CS        -0.062 -0.014  0.002  1.000              
## ZCommunalStrength  0.108  0.178 -0.071 -0.005  1.000       
## SSTouchTest        0.116  0.223 -0.055  0.011  0.096  1.000

OST*CS -> interoception –> reflection –> stress

Controlling for main effects of CS and Touch

modelOSstress_refl3 <- 'PriBC ~ a1*int_OST_CS + ZCommunalStrength + OSTouchTest
reflection ~ a2*int_OST_CS + d*PriBC + ZCommunalStrength + OSTouchTest
stress ~ c*int_OST_CS + b1*PriBC + b2*reflection + ZCommunalStrength + OSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitOSstress_refl3 <- sem(modelOSstress_refl3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOSstress_refl3, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1           PriBC  ~ int_OST_CS             a1 -0.098 0.052 -1.888  0.059
## 4      reflection  ~ int_OST_CS             a2 -0.062 0.061 -1.009  0.313
## 5      reflection  ~      PriBC              d  0.180 0.080  2.259  0.024
## 8          stress  ~ int_OST_CS              c -0.003 0.043 -0.066  0.948
## 9          stress  ~      PriBC             b1  0.061 0.057  1.067  0.286
## 10         stress  ~ reflection             b2 -0.262 0.039 -6.725  0.000
## 28      indirect1 :=      a1*b1      indirect1 -0.006 0.008 -0.793  0.428
## 29      indirect2 :=      a2*b2      indirect2  0.016 0.017  0.952  0.341
## 30 total.indirect :=    a1*d*b2 total.indirect  0.005 0.004  1.154  0.249
## 31         direct :=          c         direct -0.003 0.043 -0.066  0.948
##    ci.lower ci.upper
## 1    -0.189    0.024
## 4    -0.188    0.045
## 5    -0.009    0.303
## 8    -0.086    0.091
## 9    -0.067    0.186
## 10   -0.346   -0.190
## 28   -0.025    0.008
## 29   -0.012    0.057
## 30   -0.001    0.014
## 31   -0.086    0.091
lavCor(fitOSstress_refl3)
##                   PriBC  rflctn stress i_OST_ ZCmmnS OSTchT
## PriBC              1.000                                   
## reflection         0.165  1.000                            
## stress            -0.019 -0.387  1.000                     
## int_OST_CS        -0.126 -0.037 -0.016  1.000              
## ZCommunalStrength  0.108  0.178 -0.071  0.084  1.000       
## OSTouchTest        0.118  0.261 -0.155  0.065 -0.011  1.000

COT*CS -> interoception –> reflection –> stress

Controlling for main effects of CS and Touch

modelCOstress_refl3 <- 'PriBC ~ a1*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
reflection ~ a2*int_COT_CS + d*PriBC + ZCommunalStrength + CloseOthersTouchTest
stress ~ c*int_COT_CS + b1*PriBC + b2*reflection + ZCommunalStrength + CloseOthersTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitCOstress_refl3 <- sem(modelCOstress_refl3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOstress_refl3, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1           PriBC  ~ int_COT_CS             a1  0.012 0.049  0.255  0.799
## 4      reflection  ~ int_COT_CS             a2  0.080 0.068  1.181  0.238
## 5      reflection  ~      PriBC              d  0.226 0.089  2.544  0.011
## 8          stress  ~ int_COT_CS              c -0.012 0.046 -0.269  0.788
## 9          stress  ~      PriBC             b1  0.051 0.061  0.847  0.397
## 10         stress  ~ reflection             b2 -0.285 0.032 -8.790  0.000
## 28      indirect1 :=      a1*b1      indirect1  0.001 0.004  0.168  0.867
## 29      indirect2 :=      a2*b2      indirect2 -0.023 0.020 -1.147  0.251
## 30 total.indirect :=    a1*d*b2 total.indirect -0.001 0.003 -0.249  0.804
## 31         direct :=          c         direct -0.012 0.046 -0.269  0.788
##    ci.lower ci.upper
## 1    -0.081    0.114
## 4    -0.054    0.209
## 5     0.021    0.387
## 8    -0.097    0.085
## 9    -0.079    0.155
## 10   -0.346   -0.217
## 28   -0.007    0.012
## 29   -0.066    0.015
## 30   -0.007    0.007
## 31   -0.097    0.085
lavCor(fitCOstress_refl3)
##                      PriBC  rflctn stress i_COT_ ZCmmnS ClsOTT
## PriBC                 1.000                                   
## reflection            0.165  1.000                            
## stress               -0.019 -0.387  1.000                     
## int_COT_CS            0.021  0.077 -0.028  1.000              
## ZCommunalStrength     0.108  0.178 -0.071 -0.051  1.000       
## CloseOthersTouchTest  0.072  0.188  0.026  0.164  0.135  1.000

SST*CS -> interoception –> reflection –> health

Controlling for main effects of CS and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the two indirect (a1 * b1 and a2 * b2), total indirect (a1 * d * b2), direct (c), and total effect c + (a1 * b1) + (a2 * b2) + (a1 * d * b2). Table below the parameter estimates is the matrix of bivariate correlations.

modelSShealth_refl3 <- 'PriBC ~ a1*int_SST_CS + ZCommunalStrength + SSTouchTest
reflection ~ a2*int_SST_CS + d*PriBC + ZCommunalStrength + SSTouchTest
health ~ c*int_SST_CS + b1*PriBC + b2*reflection + ZCommunalStrength + SSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitSShealth_refl3 <- sem(modelSShealth_refl3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSShealth_refl3, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1           PriBC  ~ int_SST_CS             a1 -0.040 0.043 -0.932  0.351
## 4      reflection  ~ int_SST_CS             a2 -0.009 0.070 -0.134  0.893
## 5      reflection  ~      PriBC              d  0.209 0.083  2.510  0.012
## 8          health  ~ int_SST_CS              c -0.039 0.063 -0.623  0.533
## 9          health  ~      PriBC             b1 -0.075 0.087 -0.863  0.388
## 10         health  ~ reflection             b2 -0.211 0.050 -4.247  0.000
## 28      indirect1 :=      a1*b1      indirect1  0.003 0.007  0.450  0.653
## 29      indirect2 :=      a2*b2      indirect2  0.002 0.015  0.133  0.894
## 30 total.indirect :=    a1*d*b2 total.indirect  0.002 0.002  0.791  0.429
## 31         direct :=          c         direct -0.039 0.063 -0.622  0.534
##    ci.lower ci.upper
## 1    -0.137    0.041
## 4    -0.156    0.127
## 5     0.030    0.362
## 8    -0.163    0.076
## 9    -0.244    0.110
## 10   -0.296   -0.116
## 28   -0.010    0.021
## 29   -0.031    0.036
## 30   -0.002    0.008
## 31   -0.163    0.076
lavCor(fitSShealth_refl3)
##                   PriBC  rflctn health i_SST_ ZCmmnS SSTchT
## PriBC              1.000                                   
## reflection         0.165  1.000                            
## health            -0.083 -0.230  1.000                     
## int_SST_CS        -0.062 -0.014 -0.029  1.000              
## ZCommunalStrength  0.108  0.178 -0.054 -0.005  1.000       
## SSTouchTest        0.116  0.223 -0.065  0.011  0.096  1.000

OST*CS -> interoception –> reflection –> health

Controlling for main effects of CS and Touch

modelOShealth_refl3 <- 'PriBC ~ a1*int_OST_CS + ZCommunalStrength + OSTouchTest
reflection ~ a2*int_OST_CS + d*PriBC + ZCommunalStrength + OSTouchTest
health ~ c*int_OST_CS + b1*PriBC + b2*reflection + ZCommunalStrength + OSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitOShealth_refl3 <- sem(modelOShealth_refl3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOShealth_refl3, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1           PriBC  ~ int_OST_CS             a1 -0.098 0.054 -1.808  0.071
## 4      reflection  ~ int_OST_CS             a2 -0.063 0.076 -0.826  0.409
## 5      reflection  ~      PriBC              d  0.180 0.068  2.658  0.008
## 8          health  ~ int_OST_CS              c -0.029 0.082 -0.355  0.722
## 9          health  ~      PriBC             b1 -0.069 0.082 -0.845  0.398
## 10         health  ~ reflection             b2 -0.196 0.050 -3.958  0.000
## 28      indirect1 :=      a1*b1      indirect1  0.007 0.009  0.763  0.446
## 29      indirect2 :=      a2*b2      indirect2  0.012 0.017  0.741  0.459
## 30 total.indirect :=    a1*d*b2 total.indirect  0.003 0.003  1.369  0.171
## 31         direct :=          c         direct -0.029 0.082 -0.354  0.723
##    ci.lower ci.upper
## 1    -0.195    0.018
## 4    -0.229    0.076
## 5     0.041    0.316
## 8    -0.203    0.125
## 9    -0.240    0.088
## 10   -0.306   -0.116
## 28   -0.012    0.031
## 29   -0.013    0.054
## 30    0.000    0.010
## 31   -0.203    0.125
lavCor(fitOShealth_refl3)
##                   PriBC  rflctn health i_OST_ ZCmmnS OSTchT
## PriBC              1.000                                   
## reflection         0.165  1.000                            
## health            -0.083 -0.230  1.000                     
## int_OST_CS        -0.126 -0.037 -0.023  1.000              
## ZCommunalStrength  0.108  0.178 -0.054  0.084  1.000       
## OSTouchTest        0.118  0.261 -0.130  0.065 -0.011  1.000

COT*CS -> interoception –> reflection –> health

Controlling for main effects of CS and Touch

modelCOhealth_refl3 <- 'PriBC ~ a1*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
reflection ~ a2*int_COT_CS + d*PriBC + ZCommunalStrength + CloseOthersTouchTest
health ~ c*int_COT_CS + b1*PriBC + b2*reflection + ZCommunalStrength + CloseOthersTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitCOhealth_refl3 <- sem(modelCOhealth_refl3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOhealth_refl3, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1           PriBC  ~ int_COT_CS             a1  0.013 0.051  0.254  0.800
## 4      reflection  ~ int_COT_CS             a2  0.078 0.072  1.095  0.274
## 5      reflection  ~      PriBC              d  0.227 0.087  2.592  0.010
## 8          health  ~ int_COT_CS              c -0.066 0.063 -1.055  0.291
## 9          health  ~      PriBC             b1 -0.077 0.089 -0.862  0.389
## 10         health  ~ reflection             b2 -0.222 0.049 -4.491  0.000
## 28      indirect1 :=      a1*b1      indirect1 -0.001 0.005 -0.202  0.840
## 29      indirect2 :=      a2*b2      indirect2 -0.017 0.017 -1.019  0.308
## 30 total.indirect :=    a1*d*b2 total.indirect -0.001 0.003 -0.215  0.830
## 31         direct :=          c         direct -0.066 0.063 -1.053  0.293
##    ci.lower ci.upper
## 1    -0.098    0.109
## 4    -0.079    0.234
## 5     0.036    0.390
## 8    -0.200    0.053
## 9    -0.259    0.134
## 10   -0.331   -0.125
## 28   -0.014    0.007
## 29   -0.057    0.016
## 30   -0.007    0.006
## 31   -0.200    0.053
lavCor(fitCOhealth_refl3)
##                      PriBC  rflctn health i_COT_ ZCmmnS ClsOTT
## PriBC                 1.000                                   
## reflection            0.165  1.000                            
## health               -0.083 -0.230  1.000                     
## int_COT_CS            0.021  0.077 -0.068  1.000              
## ZCommunalStrength     0.108  0.178 -0.054 -0.051  1.000       
## CloseOthersTouchTest  0.072  0.188  0.028  0.164  0.135  1.000

SST*CS -> interoception –> rumination –> stress

Controlling for main effects of CS and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the two indirect (a1 * b1 and a2 * b2), total indirect (a1 * d * b2), direct (c), and total effect c + (a1 * b1) + (a2 * b2) + (a1 * d * b2). Table below the parameter estimates is the matrix of bivariate correlations.

modelSSstress_rum3 <- 'PriBC ~ a1*int_SST_CS + ZCommunalStrength + SSTouchTest
rumination ~ a2*int_SST_CS + d*PriBC + ZCommunalStrength + SSTouchTest
stress ~ c*int_SST_CS + b1*PriBC + b2*rumination + ZCommunalStrength + SSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitSSstress_rum3 <- sem(modelSSstress_rum3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSSstress_rum3, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1           PriBC  ~ int_SST_CS             a1 -0.041 0.041 -0.984  0.325
## 4      rumination  ~ int_SST_CS             a2 -0.082 0.084 -0.972  0.331
## 5      rumination  ~      PriBC              d -0.023 0.110 -0.211  0.833
## 8          stress  ~ int_SST_CS              c  0.032 0.042  0.762  0.446
## 9          stress  ~      PriBC             b1  0.003 0.044  0.058  0.954
## 10         stress  ~ rumination             b2  0.319 0.022 14.817  0.000
## 28      indirect1 :=      a1*b1      indirect1  0.000 0.002 -0.047  0.963
## 29      indirect2 :=      a2*b2      indirect2 -0.026 0.027 -0.957  0.339
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.002  0.154  0.878
## 31         direct :=          c         direct  0.032 0.042  0.760  0.447
##    ci.lower ci.upper
## 1    -0.125    0.042
## 4    -0.235    0.088
## 5    -0.260    0.184
## 8    -0.056    0.103
## 9    -0.080    0.104
## 10    0.270    0.364
## 28   -0.005    0.005
## 29   -0.081    0.027
## 30   -0.005    0.005
## 31   -0.056    0.103
lavCor(fitSSstress_rum3)
##                   PriBC  rumntn stress i_SST_ ZCmmnS SSTchT
## PriBC              1.000                                   
## rumination        -0.028  1.000                            
## stress            -0.019  0.564  1.000                     
## int_SST_CS        -0.062 -0.059  0.002  1.000              
## ZCommunalStrength  0.108 -0.112 -0.071 -0.005  1.000       
## SSTouchTest        0.116 -0.078 -0.055  0.011  0.096  1.000

OST*CS -> interoception –> rumination –> stress

Controlling for main effects of CS and Touch

modelOSstress_rum3 <- 'PriBC ~ a1*int_OST_CS + ZCommunalStrength + OSTouchTest
rumination ~ a2*int_OST_CS + d*PriBC + ZCommunalStrength + OSTouchTest
stress ~ c*int_OST_CS + b1*PriBC + b2*rumination + ZCommunalStrength + OSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitOSstress_rum3 <- sem(modelOSstress_rum3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOSstress_rum3, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1           PriBC  ~ int_OST_CS             a1 -0.099 0.046 -2.166  0.030
## 4      rumination  ~ int_OST_CS             a2  0.045 0.088  0.512  0.609
## 5      rumination  ~      PriBC              d  0.005 0.121  0.040  0.968
## 8          stress  ~ int_OST_CS              c -0.001 0.037 -0.040  0.968
## 9          stress  ~      PriBC             b1  0.013 0.049  0.259  0.796
## 10         stress  ~ rumination             b2  0.312 0.021 14.895  0.000
## 28      indirect1 :=      a1*b1      indirect1 -0.001 0.005 -0.239  0.811
## 29      indirect2 :=      a2*b2      indirect2  0.014 0.028  0.506  0.613
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.004 -0.038  0.969
## 31         direct :=          c         direct -0.001 0.037 -0.040  0.968
##    ci.lower ci.upper
## 1    -0.196    0.002
## 4    -0.108    0.240
## 5    -0.218    0.215
## 8    -0.079    0.086
## 9    -0.066    0.116
## 10    0.272    0.356
## 28   -0.014    0.008
## 29   -0.035    0.079
## 30   -0.008    0.008
## 31   -0.079    0.086
lavCor(fitOSstress_rum3)
##                   PriBC  rumntn stress i_OST_ ZCmmnS OSTchT
## PriBC              1.000                                   
## rumination        -0.028  1.000                            
## stress            -0.019  0.564  1.000                     
## int_OST_CS        -0.126  0.009 -0.016  1.000              
## ZCommunalStrength  0.108 -0.112 -0.071  0.084  1.000       
## OSTouchTest        0.118 -0.098 -0.155  0.065 -0.011  1.000

COT*CS -> interoception –> rumination –> stress

Controlling for main effects of CS and Touch

modelCOstress_rum3 <- 'PriBC ~ a1*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
rumination ~ a2*int_COT_CS + d*PriBC + ZCommunalStrength + CloseOthersTouchTest
stress ~ c*int_COT_CS + b1*PriBC + b2*rumination + ZCommunalStrength + CloseOthersTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitCOstress_rum3 <- sem(modelCOstress_rum3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOstress_rum3, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1           PriBC  ~ int_COT_CS             a1  0.016 0.058  0.269  0.788
## 4      rumination  ~ int_COT_CS             a2 -0.246 0.076 -3.215  0.001
## 5      rumination  ~      PriBC              d -0.020 0.109 -0.183  0.855
## 8          stress  ~ int_COT_CS              c  0.046 0.040  1.165  0.244
## 9          stress  ~      PriBC             b1 -0.006 0.044 -0.138  0.890
## 10         stress  ~ rumination             b2  0.324 0.022 14.515  0.000
## 28      indirect1 :=      a1*b1      indirect1  0.000 0.003 -0.035  0.972
## 29      indirect2 :=      a2*b2      indirect2 -0.080 0.025 -3.149  0.002
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.002 -0.045  0.964
## 31         direct :=          c         direct  0.046 0.040  1.162  0.245
##    ci.lower ci.upper
## 1    -0.115    0.125
## 4    -0.384   -0.076
## 5    -0.215    0.179
## 8    -0.028    0.139
## 9    -0.102    0.080
## 10    0.284    0.372
## 28   -0.008    0.004
## 29   -0.123   -0.021
## 30   -0.005    0.006
## 31   -0.028    0.139
lavCor(fitCOstress_rum3)
##                      PriBC  rumntn stress i_COT_ ZCmmnS ClsOTT
## PriBC                 1.000                                   
## rumination           -0.028  1.000                            
## stress               -0.019  0.564  1.000                     
## int_COT_CS            0.021 -0.150 -0.028  1.000              
## ZCommunalStrength     0.108 -0.112 -0.071 -0.051  1.000       
## CloseOthersTouchTest  0.072 -0.030  0.026  0.164  0.135  1.000

SST*CS -> interoception –> rumination –> health

Controlling for main effects of CS and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the two indirect (a1 * b1 and a2 * b2), total indirect (a1 * d * b2), direct (c), and total effect c + (a1 * b1) + (a2 * b2) + (a1 * d * b2). Table below the parameter estimates is the matrix of bivariate correlations.

modelSShealth_rum3 <- 'PriBC ~ a1*int_SST_CS + ZCommunalStrength + SSTouchTest
rumination ~ a2*int_SST_CS + d*PriBC + ZCommunalStrength + SSTouchTest
health ~ c*int_SST_CS + b1*PriBC + b2*rumination + ZCommunalStrength + SSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitSShealth_rum3 <- sem(modelSShealth_rum3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSShealth_rum3, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1           PriBC  ~ int_SST_CS             a1 -0.039 0.038 -1.015  0.310
## 4      rumination  ~ int_SST_CS             a2 -0.082 0.082 -0.998  0.318
## 5      rumination  ~      PriBC              d -0.023 0.103 -0.221  0.825
## 8          health  ~ int_SST_CS              c -0.022 0.062 -0.360  0.719
## 9          health  ~      PriBC             b1 -0.114 0.079 -1.435  0.151
## 10         health  ~ rumination             b2  0.180 0.039  4.587  0.000
## 28      indirect1 :=      a1*b1      indirect1  0.004 0.005  0.818  0.414
## 29      indirect2 :=      a2*b2      indirect2 -0.015 0.015 -0.963  0.335
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.001  0.168  0.867
## 31         direct :=          c         direct -0.022 0.063 -0.359  0.720
##    ci.lower ci.upper
## 1    -0.129    0.031
## 4    -0.241    0.087
## 5    -0.239    0.169
## 8    -0.142    0.102
## 9    -0.266    0.078
## 10    0.104    0.259
## 28   -0.007    0.014
## 29   -0.045    0.016
## 30   -0.002    0.002
## 31   -0.142    0.102
lavCor(fitSShealth_rum3)
##                   PriBC  rumntn health i_SST_ ZCmmnS SSTchT
## PriBC              1.000                                   
## rumination        -0.028  1.000                            
## health            -0.083  0.239  1.000                     
## int_SST_CS        -0.062 -0.059 -0.029  1.000              
## ZCommunalStrength  0.108 -0.112 -0.054 -0.005  1.000       
## SSTouchTest        0.116 -0.078 -0.065  0.011  0.096  1.000

OST*CS -> interoception –> rumination –> health

Controlling for main effects of CS and Touch

modelOShealth_rum3 <- 'PriBC ~ a1*int_OST_CS + ZCommunalStrength + OSTouchTest
rumination ~ a2*int_OST_CS + d*PriBC + ZCommunalStrength + OSTouchTest
health ~ c*int_OST_CS + b1*PriBC + b2*rumination + ZCommunalStrength + OSTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitOShealth_rum3 <- sem(modelOShealth_rum3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOShealth_rum3, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1           PriBC  ~ int_OST_CS             a1 -0.099 0.053 -1.860  0.063
## 4      rumination  ~ int_OST_CS             a2  0.044 0.091  0.491  0.623
## 5      rumination  ~      PriBC              d  0.005 0.117  0.040  0.968
## 8          health  ~ int_OST_CS              c -0.022 0.066 -0.334  0.739
## 9          health  ~      PriBC             b1 -0.103 0.079 -1.309  0.190
## 10         health  ~ rumination             b2  0.175 0.037  4.697  0.000
## 28      indirect1 :=      a1*b1      indirect1  0.010 0.010  1.052  0.293
## 29      indirect2 :=      a2*b2      indirect2  0.008 0.017  0.464  0.643
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.002 -0.032  0.974
## 31         direct :=          c         direct -0.022 0.067 -0.333  0.739
##    ci.lower ci.upper
## 1    -0.201    0.018
## 4    -0.109    0.264
## 5    -0.222    0.221
## 8    -0.143    0.123
## 9    -0.250    0.046
## 10    0.101    0.249
## 28   -0.005    0.038
## 29   -0.019    0.049
## 30   -0.006    0.005
## 31   -0.143    0.123
lavCor(fitOShealth_rum3)
##                   PriBC  rumntn health i_OST_ ZCmmnS OSTchT
## PriBC              1.000                                   
## rumination        -0.028  1.000                            
## health            -0.083  0.239  1.000                     
## int_OST_CS        -0.126  0.009 -0.023  1.000              
## ZCommunalStrength  0.108 -0.112 -0.054  0.084  1.000       
## OSTouchTest        0.118 -0.098 -0.130  0.065 -0.011  1.000

COT*CS -> interoception –> rumination –> health

Controlling for main effects of CS and Touch

modelCOhealth_rum3 <- 'PriBC ~ a1*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
rumination ~ a2*int_COT_CS + d*PriBC + ZCommunalStrength + CloseOthersTouchTest
health ~ c*int_COT_CS + b1*PriBC + b2*rumination + ZCommunalStrength + CloseOthersTouchTest
indirect1 := a1 * b1
indirect2 := a2 * b2
total.indirect := a1 * d * b2
direct := c
total := c + (a1 * b1) + (a2 * b2) + (a1 * d * b2)'

fitCOhealth_rum3 <- sem(modelCOhealth_rum3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOhealth_rum3, rsquare = TRUE)[c(1,4,5,8:10,28:31),]
##               lhs op        rhs          label    est    se      z pvalue
## 1           PriBC  ~ int_COT_CS             a1  0.019 0.055  0.340  0.734
## 4      rumination  ~ int_COT_CS             a2 -0.246 0.080 -3.057  0.002
## 5      rumination  ~      PriBC              d -0.019 0.116 -0.160  0.873
## 8          health  ~ int_COT_CS              c -0.044 0.063 -0.691  0.490
## 9          health  ~      PriBC             b1 -0.121 0.084 -1.446  0.148
## 10         health  ~ rumination             b2  0.178 0.038  4.687  0.000
## 28      indirect1 :=      a1*b1      indirect1 -0.002 0.008 -0.296  0.767
## 29      indirect2 :=      a2*b2      indirect2 -0.044 0.017 -2.567  0.010
## 30 total.indirect :=    a1*d*b2 total.indirect  0.000 0.001 -0.047  0.963
## 31         direct :=          c         direct -0.044 0.063 -0.689  0.491
##    ci.lower ci.upper
## 1    -0.106    0.109
## 4    -0.383   -0.077
## 5    -0.280    0.190
## 8    -0.153    0.088
## 9    -0.317    0.023
## 10    0.114    0.263
## 28   -0.020    0.014
## 29   -0.077   -0.012
## 30   -0.003    0.003
## 31   -0.153    0.088
lavCor(fitCOhealth_rum3)
##                      PriBC  rumntn health i_COT_ ZCmmnS ClsOTT
## PriBC                 1.000                                   
## rumination           -0.028  1.000                            
## health               -0.083  0.239  1.000                     
## int_COT_CS            0.021 -0.150 -0.068  1.000              
## ZCommunalStrength     0.108 -0.112 -0.054 -0.051  1.000       
## CloseOthersTouchTest  0.072 -0.030  0.028  0.164  0.135  1.000
##############

Well-being by touch * CS, mediated by HowLong

4e: All of the above: could you also show how quickly people share their emotion with the predictors above? (and, ideally, also use this variable as a mediator (HowLong).

Stress by SST*CS, mediated by HowLong

Controlling for main effects of Communal Strenght and Touch. The output shows the standardized estimate (est), SE, z-value, p-value and 95%CI. The table shows the results for alpha, beta, and tau paths as well as for the indirect (alpha * beta), direct (tau), and total effect (tau + (alpha * beta)). Table below the parameter estimates is the matrix of bivariate correlations.

modelSSstress6 <- 'HowLong ~ alpha*int_SST_CS + ZCommunalStrength + SSTouchTest
stress ~ beta*HowLong + tau*int_SST_CS + ZCommunalStrength + SSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitSSstress6 <- sem(modelSSstress6, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSSstress6, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1   HowLong  ~       int_SST_CS    alpha  0.066 0.048  1.378  0.168
## 4    stress  ~          HowLong     beta -0.003 0.060 -0.047  0.962
## 5    stress  ~       int_SST_CS      tau  0.002 0.051  0.030  0.976
## 21 indirect :=       alpha*beta indirect  0.000 0.005 -0.037  0.971
## 22   direct :=              tau   direct  0.002 0.051  0.030  0.976
## 23    total := tau+(alpha*beta)    total  0.001 0.051  0.026  0.979
##    ci.lower ci.upper
## 1    -0.025    0.154
## 4    -0.114    0.144
## 5    -0.091    0.108
## 21   -0.011    0.013
## 22   -0.091    0.108
## 23   -0.095    0.108
lavCor(fitSSstress6)
##                   HowLng stress i_SST_ ZCmmnS SSTchT
## HowLong            1.000                            
## stress             0.007  1.000                     
## int_SST_CS         0.075  0.002  1.000              
## ZCommunalStrength -0.125 -0.071 -0.005  1.000       
## SSTouchTest       -0.042 -0.055  0.011  0.096  1.000

Stress by OST*CS, mediated by HowLong

Controlling for main effects of Communal Strenght and Touch

modelOSstress6 <- 'HowLong ~ alpha*int_OST_CS + ZCommunalStrength + OSTouchTest
stress ~ beta*HowLong + tau*int_OST_CS + ZCommunalStrength + OSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitOSstress6 <- sem(modelOSstress6, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOSstress6, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label   est    se     z pvalue ci.lower
## 1   HowLong  ~       int_OST_CS    alpha 0.047 0.058 0.808  0.419   -0.052
## 4    stress  ~          HowLong     beta 0.011 0.059 0.187  0.852   -0.104
## 5    stress  ~       int_OST_CS      tau 0.000 0.039 0.009  0.993   -0.068
## 21 indirect :=       alpha*beta indirect 0.001 0.004 0.128  0.898   -0.008
## 22   direct :=              tau   direct 0.000 0.039 0.009  0.993   -0.068
## 23    total := tau+(alpha*beta)    total 0.001 0.039 0.023  0.982   -0.068
##    ci.upper
## 1     0.173
## 4     0.123
## 5     0.089
## 21    0.011
## 22    0.089
## 23    0.091
lavCor(fitOSstress6)
##                   HowLng stress i_OST_ ZCmmnS OSTchT
## HowLong            1.000                            
## stress             0.007  1.000                     
## int_OST_CS         0.048 -0.016  1.000              
## ZCommunalStrength -0.125 -0.071  0.084  1.000       
## OSTouchTest        0.079 -0.155  0.065 -0.011  1.000

Stress by COT*CS, mediated by HowLong

Controlling for main effects of Communal Strenght and Touch

modelCOstress6 <- 'HowLong ~ alpha*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
stress ~ beta*HowLong + tau*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitCOstress6 <- sem(modelCOstress6, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOstress6, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1   HowLong  ~       int_COT_CS    alpha  0.032 0.051  0.620  0.535
## 4    stress  ~          HowLong     beta -0.001 0.061 -0.021  0.983
## 5    stress  ~       int_COT_CS      tau -0.033 0.046 -0.727  0.467
## 21 indirect :=       alpha*beta indirect  0.000 0.004 -0.010  0.992
## 22   direct :=              tau   direct -0.033 0.046 -0.725  0.468
## 23    total := tau+(alpha*beta)    total -0.033 0.046 -0.721  0.471
##    ci.lower ci.upper
## 1    -0.057    0.150
## 4    -0.114    0.135
## 5    -0.127    0.072
## 21   -0.009    0.011
## 22   -0.127    0.072
## 23   -0.126    0.071
lavCor(fitCOstress6)
##                      HowLng stress i_COT_ ZCmmnS ClsOTT
## HowLong               1.000                            
## stress                0.007  1.000                     
## int_COT_CS            0.044 -0.028  1.000              
## ZCommunalStrength    -0.125 -0.071 -0.051  1.000       
## CloseOthersTouchTest  0.004  0.026  0.164  0.135  1.000
#############

Health by SST*CS, mediated by HowLong

Controlling for main effects of Communal Strenght and Touch

modelSShealth6 <- 'HowLong ~ alpha*int_SST_CS + ZCommunalStrength + SSTouchTest
health ~ beta*HowLong + tau*int_SST_CS + ZCommunalStrength + SSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitSShealth6 <- sem(modelSShealth6, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitSShealth6, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1   HowLong  ~       int_SST_CS    alpha  0.066 0.051  1.280  0.201
## 4    health  ~          HowLong     beta  0.059 0.076  0.770  0.441
## 5    health  ~       int_SST_CS      tau -0.037 0.057 -0.649  0.516
## 21 indirect :=       alpha*beta indirect  0.004 0.007  0.539  0.590
## 22   direct :=              tau   direct -0.037 0.057 -0.647  0.517
## 23    total := tau+(alpha*beta)    total -0.033 0.057 -0.578  0.563
##    ci.lower ci.upper
## 1    -0.032    0.170
## 4    -0.092    0.222
## 5    -0.156    0.056
## 21   -0.008    0.026
## 22   -0.156    0.056
## 23   -0.153    0.066
lavCor(fitSShealth6)
##                   HowLng health i_SST_ ZCmmnS SSTchT
## HowLong            1.000                            
## health             0.051  1.000                     
## int_SST_CS         0.075 -0.029  1.000              
## ZCommunalStrength -0.125 -0.054 -0.005  1.000       
## SSTouchTest       -0.042 -0.065  0.011  0.096  1.000

Health by OST*CS, mediated by HowLong

Controlling for main effects of Communal Strenght and Touch

modelOShealth6 <- 'HowLong ~ alpha*int_OST_CS + ZCommunalStrength + OSTouchTest
health ~ beta*HowLong + tau*int_OST_CS + ZCommunalStrength + OSTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitOShealth6 <- sem(modelOShealth6, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitOShealth6, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1   HowLong  ~       int_OST_CS    alpha  0.047 0.056  0.840  0.401
## 4    health  ~          HowLong     beta  0.074 0.065  1.141  0.254
## 5    health  ~       int_OST_CS      tau -0.013 0.064 -0.208  0.835
## 21 indirect :=       alpha*beta indirect  0.003 0.006  0.635  0.526
## 22   direct :=              tau   direct -0.013 0.064 -0.208  0.836
## 23    total := tau+(alpha*beta)    total -0.010 0.064 -0.153  0.878
##    ci.lower ci.upper
## 1    -0.042    0.170
## 4    -0.076    0.196
## 5    -0.116    0.132
## 21   -0.006    0.018
## 22   -0.116    0.132
## 23   -0.112    0.135
lavCor(fitOShealth6)
##                   HowLng health i_OST_ ZCmmnS OSTchT
## HowLong            1.000                            
## health             0.051  1.000                     
## int_OST_CS         0.048 -0.023  1.000              
## ZCommunalStrength -0.125 -0.054  0.084  1.000       
## OSTouchTest        0.079 -0.130  0.065 -0.011  1.000

Health by COT*CS, mediated by HowLong

Controlling for main effects of Communal Strenght and Touch

modelCOhealth6 <- 'HowLong ~ alpha*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
health ~ beta*HowLong + tau*int_COT_CS + ZCommunalStrength + CloseOthersTouchTest
indirect := alpha * beta
direct := tau
total := tau + (alpha * beta)'

fitCOhealth6 <- sem(modelCOhealth6, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")
parameterEstimates(fitCOhealth6, rsquare = TRUE)[c(1, 4, 5, 21, 22, 23),]
##         lhs op              rhs    label    est    se      z pvalue
## 1   HowLong  ~       int_COT_CS    alpha  0.032 0.049  0.648  0.517
## 4    health  ~          HowLong     beta  0.061 0.065  0.935  0.350
## 5    health  ~       int_COT_CS      tau -0.088 0.063 -1.398  0.162
## 21 indirect :=       alpha*beta indirect  0.002 0.005  0.379  0.705
## 22   direct :=              tau   direct -0.088 0.063 -1.394  0.163
## 23    total := tau+(alpha*beta)    total -0.087 0.064 -1.362  0.173
##    ci.lower ci.upper
## 1    -0.073    0.126
## 4    -0.079    0.186
## 5    -0.214    0.034
## 21   -0.006    0.017
## 22   -0.214    0.034
## 23   -0.211    0.034
lavCor(fitCOhealth6)
##                      HowLng health i_COT_ ZCmmnS ClsOTT
## HowLong               1.000                            
## health                0.051  1.000                     
## int_COT_CS            0.044 -0.068  1.000              
## ZCommunalStrength    -0.125 -0.054 -0.051  1.000       
## CloseOthersTouchTest  0.004  0.028  0.164  0.135  1.000
########################

Path models COT

Consequences of Reflective and Ruminative Mood Orientations

Some very rough guide to model respecification:

  1. Look at the “Model test” table first. If the pvalue for the chisq test is significant, the model departs from the data.

  2. To see how much are the data incompatible with the model, see the other fit indices. For an approximately fitting model, CFI and TLI should be >.95, RMSEA < .06.

  3. If the model does not fit the data, we cannot rely on model parameters. Usually, they may be slightly off for a misspecified model (say in units), but with severe misspecification, they can be way off (sometimes even in tenths). The next step is then to look at the modification indices table. Collumn “mi” stands for the modification index. It represents the change in chi square statistics if you allow the given parameter. “~” stands for regression path (read as “predicted by”), “~~” denotes a correlation. “sepc.all” is the value of correlation or standardized regression path that the model missed.

Example: take Model3SST. The chisq value for the model is at 129. If it makes theoretical sense that reflection and rumination are correlated and you allow that model parameter, the chisq will drop by 108 (see the Modification indices table), which will give you a very well fitting model (if the model chisq roughly approaches the df, model fits very well). Without allowing for that correlation, the model assumes zero correlation between reflection and rumination. The data say there is a correlation ~.5, which was a huge departure from what the model assumed. In model respecification, it is best to do the least number of theoretically justifiable modifications. Consider especially those with huge modification indices until the chisq test statistics approaches the number of df.

Model 1 COT

path.model1 <- 'reflection ~ a*ZCommunalStrength + b*int_COT_CS + c*CloseOthersTouchTest
rumination ~ d*int_COT_CS + e*ZCommunalStrength + f*CloseOthersTouchTest
PriBC ~ g*reflection + h*rumination
stress ~ i*PriBC
health ~ j*stress'

fit.path.model1 <- sem(path.model1, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")

Model test and approximate fit indices

fitmeasures(fit.path.model1, c("chisq", "df", "pvalue", "cfi", "tli", "rmsea", "rmsea.ci.lower", "rmsea.ci.upper", "srmr_mplus", "pnfi", "bic"))
##          chisq             df         pvalue            cfi            tli 
##        312.923         15.000          0.000          0.292         -0.180 
##          rmsea rmsea.ci.lower rmsea.ci.upper           pnfi            bic 
##          0.214          0.194          0.235          0.179       8854.372

Modification indices

modificationindices(fit.path.model1, alpha = .05, sort. = TRUE, minimum.value = fit.path.model1@test[[1]]$df)
##           lhs op        rhs      mi    epc sepc.lv sepc.all sepc.nox
## 54     stress  ~ rumination 138.095  0.320   0.320    0.566    0.566
## 46 rumination  ~     stress 135.776  0.971   0.971    0.550    0.550
## 35 rumination ~~     stress 135.022  0.533   0.533    0.548    0.548
## 30 reflection ~~ rumination 108.412 -0.659  -0.659   -0.473   -0.473
## 40 reflection  ~ rumination 108.412 -0.405  -0.405   -0.500   -0.500
## 44 rumination  ~ reflection 108.411 -0.634  -0.634   -0.514   -0.514
## 53     stress  ~ reflection  66.621 -0.280  -0.280   -0.400   -0.400
## 32 reflection ~~     stress  65.817 -0.302  -0.302   -0.383   -0.383
## 42 reflection  ~     stress  65.449 -0.547  -0.547   -0.382   -0.382
## 45 rumination  ~      PriBC  40.081 -2.203  -2.203   -1.085   -1.085
## 43 reflection  ~     health  22.256 -0.228  -0.228   -0.219   -0.219
## 47 rumination  ~     health  22.117  0.283   0.283    0.221    0.221
## 41 reflection  ~      PriBC  20.228 -1.301  -1.301   -0.791   -0.791

Parameter estimates, standard errors, p-values, CI’s, \(R^2\)

parameterEstimates(fit.path.model1, rsquare = TRUE)[c(2, 4, 7:10, 30:34),]
##           lhs op        rhs label    est    se      z pvalue ci.lower
## 2  reflection  ~ int_COT_CS     b  0.111 0.072  1.550  0.121   -0.026
## 4  rumination  ~ int_COT_CS     d -0.260 0.079 -3.308  0.001   -0.388
## 7       PriBC  ~ reflection     g  0.123 0.041  3.004  0.003    0.044
## 8       PriBC  ~ rumination     h  0.037 0.034  1.083  0.279   -0.030
## 9      stress  ~      PriBC     i -0.021 0.066 -0.326  0.745   -0.138
## 10     health  ~     stress     j  0.547 0.058  9.365  0.000    0.443
## 30 reflection r2 reflection        0.078    NA     NA     NA       NA
## 31 rumination r2 rumination        0.053    NA     NA     NA       NA
## 32      PriBC r2      PriBC        0.045    NA     NA     NA       NA
## 33     stress r2     stress        0.000    NA     NA     NA       NA
## 34     health r2     health        0.157    NA     NA     NA       NA
##    ci.upper
## 2     0.255
## 4    -0.101
## 7     0.193
## 8     0.103
## 9     0.151
## 10    0.670
## 30       NA
## 31       NA
## 32       NA
## 33       NA
## 34       NA

Bivariate correlations

lavCor(fit.path.model1)
##                      rflctn rumntn PriBC  stress health ZCmmnS i_COT_
## reflection            1.000                                          
## rumination           -0.511  1.000                                   
## PriBC                 0.165 -0.028  1.000                            
## stress               -0.387  0.564 -0.019  1.000                     
## health               -0.230  0.239 -0.083  0.397  1.000              
## ZCommunalStrength     0.178 -0.112  0.108 -0.071 -0.054  1.000       
## int_COT_CS            0.077 -0.150  0.021 -0.028 -0.068 -0.051  1.000
## CloseOthersTouchTest  0.188 -0.030  0.072  0.026  0.028  0.135  0.164
##                      ClsOTT
## reflection                 
## rumination                 
## PriBC                      
## stress                     
## health                     
## ZCommunalStrength          
## int_COT_CS                 
## CloseOthersTouchTest  1.000

Power analysis

For approximate fit (based on the RMSEA distribution). Statistical power for the detection of a likely misspecified model (RMSEA > .08). Models 1SST and 1OST have the same power.

df <- fit.path.model1@test[[1]]$df
alpha <- .05
n <- nrow(exdat)
rmsea0 <- .05           # RMSEA given H0
rmseaa <- .08           # RMSEA given Ha

ncp0 <- (n-1)*df*rmsea0**2 ;
ncpa <-(n-1)*df*rmseaa**2 ;
if(rmsea0 < rmseaa) {
  cval <- qchisq(1-alpha,df=df,ncp=ncp0)
  pwr.rmsea <- 1 - pchisq(cval,df=df,ncp=ncpa)
} else {
  cval <- qchisq(alpha,df=df,ncp=ncp0)
  pwr.rmsea <- pchisq(cval,df=df,ncp=ncpa)
}
rm(ncp0, ncpa, cval)
print(round(pwr.rmsea,10))
## [1] 0.6966705

Path model

semPaths(fit.path.model1, layout = "tree2", rotation = 2, nDigits = 2, "Standardized", intercepts = FALSE, residuals = FALSE,
        fade = FALSE, nCharNodes = 0, sizeMan = 9, edge.label.cex = .9, edge.label.position = .4)

Bayes factor in favor of the alternative hypothesis (BF10) and posterior probability for model parameters (given 1:1 prior odds for H0:Ha)

These are Bayes Factors based on model selection / information criteria approach as proposed by Wagenmakers, 2007. Each BF represents the relative evidence in the data favoring alternative hypothesis (parameter freely estimated) over the null (the given parameter fixed to 0). Bayes Factors using BIC approximation implicitly assume unit information prior which makes them rather conservative with regard to the alternative hypothesis.

f1 <- NULL
bf1 <- NULL
posterior1 <- NULL
for(i in letters[1:10]){
  m1 <- 'reflection ~ a*ZCommunalStrength + b*int_COT_CS + c*CloseOthersTouchTest
  rumination ~ d*int_COT_CS + e*ZCommunalStrength + f*CloseOthersTouchTest
  PriBC ~ g*reflection + h*rumination
  stress ~ i*PriBC
  health ~ j*stress'
  f1 <- sem(m1, data = exdat, mimic = "Mplus", missing = "ML")
  bf1[i] <- 1/(exp((BIC(f1) - BIC(sem(m1, data = exdat, mimic = "Mplus", missing = "ML",
                                               constraints = paste(i, '==', '0', sep = ""))))/2))
  posterior1[i] <- bf1[i]/(1+bf1[i])
}
data.frame(BF10 = bf1, Posterior = round(posterior1, 3))
##           BF10 Posterior
## a 2.898978e+01     0.967
## b 2.205846e-01     0.181
## c 3.847242e+00     0.794
## d 9.753778e+00     0.907
## e 3.083495e+00     0.755
## f 5.416924e-02     0.051
## g 4.239699e+01     0.977
## h 1.252700e-01     0.111
## i 5.176796e-02     0.049
## j 5.810263e+14     1.000

Model 2 COT

path.model2 <- 'PriBC ~ a*ZCommunalStrength + b*int_COT_CS + c*CloseOthersTouchTest
  reflection ~ d*PriBC
rumination ~ e*PriBC
stress ~ f*reflection + g*rumination
health ~ h*stress'

fit.path.model2 <- sem(path.model2, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")

Model test and approximate fit indices

fitmeasures(fit.path.model2, c("chisq", "df", "pvalue", "cfi", "tli", "rmsea", "rmsea.ci.lower", "rmsea.ci.upper", "srmr_mplus", "pnfi", "bic"))
##          chisq             df         pvalue            cfi            tli 
##        179.645         17.000          0.000          0.614          0.432 
##          rmsea rmsea.ci.lower rmsea.ci.upper           pnfi            bic 
##          0.149          0.129          0.169          0.406       8708.953

Modification indices

modificationindices(fit.path.model2, alpha = .05, sort. = TRUE, minimum.value = fit.path.model1@test[[1]]$df)
##           lhs op        rhs      mi    epc sepc.lv sepc.all sepc.nox
## 32 reflection ~~ rumination 114.107 -0.705  -0.705   -0.506   -0.506
## 42 reflection  ~ rumination 114.107 -0.410  -0.410   -0.506   -0.506
## 48 rumination  ~ reflection 114.106 -0.642  -0.642   -0.520   -0.520
## 49 rumination  ~     stress 112.485  6.696   6.696    3.660    3.660
## 43 reflection  ~     stress 108.669 -1.378  -1.378   -0.930   -0.930
## 28      PriBC ~~ reflection  20.791 -1.299  -1.299   -1.906   -1.906
## 38      PriBC  ~ reflection  20.791 -1.183  -1.183   -1.960   -1.960

Parameter estimates, standard errors, p-values, CI’s, \(R^2\)

parameterEstimates(fit.path.model2, rsquare = TRUE)[c(2, 4:8, 28:32),]
##           lhs op        rhs label    est    se      z pvalue ci.lower
## 2       PriBC  ~ int_COT_CS     b  0.012 0.049  0.246  0.806   -0.084
## 4  reflection  ~      PriBC     d  0.274 0.093  2.946  0.003    0.077
## 5  rumination  ~      PriBC     e -0.057 0.125 -0.459  0.646   -0.278
## 6      stress  ~ reflection     f -0.094 0.033 -2.841  0.004   -0.169
## 7      stress  ~ rumination     g  0.280 0.024 11.503  0.000    0.232
## 8      health  ~     stress     h  0.547 0.063  8.721  0.000    0.441
## 28      PriBC r2      PriBC        0.015    NA     NA     NA       NA
## 29 reflection r2 reflection        0.027    NA     NA     NA       NA
## 30 rumination r2 rumination        0.001    NA     NA     NA       NA
## 31     stress r2     stress        0.283    NA     NA     NA       NA
## 32     health r2     health        0.148    NA     NA     NA       NA
##    ci.upper
## 2     0.123
## 4     0.456
## 5     0.214
## 6    -0.023
## 7     0.324
## 8     0.673
## 28       NA
## 29       NA
## 30       NA
## 31       NA
## 32       NA

Bivariate correlations

lavCor(fit.path.model2)
##                      PriBC  rflctn rumntn stress health ZCmmnS i_COT_
## PriBC                 1.000                                          
## reflection            0.165  1.000                                   
## rumination           -0.028 -0.511  1.000                            
## stress               -0.019 -0.387  0.564  1.000                     
## health               -0.083 -0.230  0.239  0.397  1.000              
## ZCommunalStrength     0.108  0.178 -0.112 -0.071 -0.054  1.000       
## int_COT_CS            0.021  0.077 -0.150 -0.028 -0.068 -0.051  1.000
## CloseOthersTouchTest  0.072  0.188 -0.030  0.026  0.028  0.135  0.164
##                      ClsOTT
## PriBC                      
## reflection                 
## rumination                 
## stress                     
## health                     
## ZCommunalStrength          
## int_COT_CS                 
## CloseOthersTouchTest  1.000

Power analysis

For approximate fit (based on the RMSEA distribution). Statistical power for the detection of a likely misspecified model (RMSEA > .08). Models 2SST and 2OST have the same power.

df <- fit.path.model2@test[[1]]$df
alpha <- .05
n <- nrow(exdat)
rmsea0 <- .05           # RMSEA given H0
rmseaa <- .08           # RMSEA given Ha

ncp0 <- (n-1)*df*rmsea0**2 ;
ncpa <-(n-1)*df*rmseaa**2 ;
if(rmsea0 < rmseaa) {
  cval <- qchisq(1-alpha,df=df,ncp=ncp0)
  pwr.rmsea <- 1 - pchisq(cval,df=df,ncp=ncpa)
} else {
  cval <- qchisq(alpha,df=df,ncp=ncp0)
  pwr.rmsea <- pchisq(cval,df=df,ncp=ncpa)
}
rm(ncp0, ncpa, cval)
print(round(pwr.rmsea,10))
## [1] 0.7422685

Path model

semPaths(fit.path.model2, layout = "tree2", rotation = 2, nDigits = 2, "Standardized", intercepts = FALSE, residuals = FALSE,
         fade = FALSE, nCharNodes = 0, sizeMan = 9, edge.label.cex = .9)

Bayes factor in favor of the alternative hypothesis (BF10) and posterior probability for model parameters (given 1:1 prior odds for H0:Ha)

f2 <- NULL
bf2 <- NULL
posterior2 <- NULL
for(i in letters[1:8]){
  m2 <- 'PriBC ~ a*ZCommunalStrength + b*int_COT_CS + c*CloseOthersTouchTest
  reflection ~ d*PriBC
  rumination ~ e*PriBC
  stress ~ f*reflection + g*rumination
  health ~ h*stress'
  f2 <- sem(m2, data = exdat, mimic = "Mplus", missing = "ML")
  bf2[i] <- 1/(exp((BIC(f2) - BIC(sem(m2, data = exdat, mimic = "Mplus", missing = "ML",
                                      constraints = paste(i, '==', '0', sep = ""))))/2))
  posterior2[i] <- bf2[i]/(1+bf2[i])
}
data.frame(BF10 = bf2, Posterior = round(posterior2, 3))
##           BF10 Posterior
## a 2.525082e-01     0.202
## b 5.052447e-02     0.048
## c 9.080751e-02     0.083
## d 1.928811e+01     0.951
## e 5.699043e-02     0.054
## f 3.459359e+00     0.776
## g 1.685678e+21     1.000
## h 5.810263e+14     1.000

Model 3 COT

path.model3 <- 'reflection ~ a*ZCommunalStrength + b*int_COT_CS + c*CloseOthersTouchTest
rumination ~ d*int_COT_CS + e*ZCommunalStrength + f*CloseOthersTouchTest
stress ~ g*reflection + h*rumination
health ~ i*stress
'

fit.path.model3 <- sem(path.model3, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")

Model test and approximate fit indices

fitmeasures(fit.path.model3, c("chisq", "df", "pvalue", "cfi", "tli", "rmsea", "rmsea.ci.lower", "rmsea.ci.upper", "srmr_mplus", "pnfi", "bic"))
##          chisq             df         pvalue            cfi            tli 
##        133.977          9.000          0.000          0.694          0.389 
##          rmsea rmsea.ci.lower rmsea.ci.upper           pnfi            bic 
##          0.179          0.153          0.207          0.343       7832.214

Modification indices

modificationindices(fit.path.model3, alpha = .05, sort. = TRUE, minimum.value = fit.path.model1@test[[1]]$df)
##           lhs op        rhs      mi    epc sepc.lv sepc.all sepc.nox
## 27 reflection ~~ rumination 108.413 -0.659  -0.659   -0.473   -0.473
## 36 rumination  ~ reflection 108.413 -0.634  -0.634   -0.514   -0.514
## 33 reflection  ~ rumination 108.413 -0.405  -0.405   -0.500   -0.500
## 34 reflection  ~     stress 103.196 -1.288  -1.288   -0.872   -0.872
## 37 rumination  ~     stress  52.877  2.912   2.912    1.597    1.597
## 35 reflection  ~     health  15.423 -0.202  -0.202   -0.194   -0.194

Parameter estimates, standard errors, p-values, CI’s, \(R^2\)

parameterEstimates(fit.path.model3, rsquare = TRUE)[c(2, 4, 7:9, 27:30),]
##           lhs op        rhs label    est    se      z pvalue ci.lower
## 2  reflection  ~ int_COT_CS     b  0.111 0.075  1.490  0.136   -0.049
## 4  rumination  ~ int_COT_CS     d -0.260 0.083 -3.148  0.002   -0.423
## 7      stress  ~ reflection     g -0.094 0.037 -2.506  0.012   -0.174
## 8      stress  ~ rumination     h  0.280 0.026 10.772  0.000    0.231
## 9      health  ~     stress     i  0.547 0.065  8.411  0.000    0.421
## 27 reflection r2 reflection        0.078    NA     NA     NA       NA
## 28 rumination r2 rumination        0.053    NA     NA     NA       NA
## 29     stress r2     stress        0.287    NA     NA     NA       NA
## 30     health r2     health        0.149    NA     NA     NA       NA
##    ci.upper
## 2     0.259
## 4    -0.083
## 7    -0.024
## 8     0.324
## 9     0.669
## 27       NA
## 28       NA
## 29       NA
## 30       NA

Bivariate correlations

lavCor(fit.path.model3)
##                      rflctn rumntn stress health ZCmmnS i_COT_ ClsOTT
## reflection            1.000                                          
## rumination           -0.511  1.000                                   
## stress               -0.387  0.564  1.000                            
## health               -0.230  0.239  0.397  1.000                     
## ZCommunalStrength     0.178 -0.112 -0.071 -0.054  1.000              
## int_COT_CS            0.077 -0.150 -0.028 -0.068 -0.051  1.000       
## CloseOthersTouchTest  0.188 -0.030  0.026  0.028  0.135  0.164  1.000

Power analysis

For approximate fit (based on the RMSEA distribution). Statistical power for the detection of a likely misspecified model (RMSEA > .08). Models 3SST and 3OST have the same power.

df <- fit.path.model3@test[[1]]$df
alpha <- .05
n <- nrow(exdat)
rmsea0 <- .05           # RMSEA given H0
rmseaa <- .08           # RMSEA given Ha

ncp0 <- (n-1)*df*rmsea0**2 ;
ncpa <-(n-1)*df*rmseaa**2 ;
if(rmsea0 < rmseaa) {
  cval <- qchisq(1-alpha,df=df,ncp=ncp0)
  pwr.rmsea <- 1 - pchisq(cval,df=df,ncp=ncpa)
} else {
  cval <- qchisq(alpha,df=df,ncp=ncp0)
  pwr.rmsea <- pchisq(cval,df=df,ncp=ncpa)
}
rm(ncp0, ncpa, cval)
print(round(pwr.rmsea,10))
## [1] 0.5169066

Path model

semPaths(fit.path.model3, layout = "tree2", rotation = 2, nDigits = 2, "Standardized", intercepts = FALSE, residuals = FALSE,
         fade = FALSE, nCharNodes = 0, sizeMan = 9, edge.label.cex = .9, edge.label.position = .4)

Bayes factor in favor of the alternative hypothesis (BF10) and posterior probability for model parameters (given 1:1 prior odds for H0:Ha)

f3 <- NULL
bf3 <- NULL
posterior3 <- NULL
for(i in letters[1:9]){
  m3 <- 'reflection ~ a*ZCommunalStrength + b*int_COT_CS + c*CloseOthersTouchTest
rumination ~ d*int_COT_CS + e*ZCommunalStrength + f*CloseOthersTouchTest
stress ~ g*reflection + h*rumination
health ~ i*stress'
  f3 <- sem(m3, data = exdat, mimic = "Mplus", missing = "ML")
  bf3[i] <- 1/(exp((BIC(f3) - BIC(sem(m3, data = exdat, mimic = "Mplus", missing = "ML",
                                      constraints = paste(i, '==', '0', sep = ""))))/2))
  posterior3[i] <- bf3[i]/(1+bf3[i])
}
data.frame(BF10 = bf3, Posterior = round(posterior3, 3))
##           BF10 Posterior
## a 2.895745e+01     0.967
## b 2.204270e-01     0.181
## c 3.848010e+00     0.794
## d 9.741408e+00     0.907
## e 3.082508e+00     0.755
## f 5.416760e-02     0.051
## g 3.459359e+00     0.776
## h 1.685678e+21     1.000
## i 5.810263e+14     1.000
####################

Path models SST

Consequences of Reflective and Ruminative Mood Orientations

Model 1SST

path.model1SST <- 'reflection ~ a*ZCommunalStrength + b*int_SST_CS + c*SSTouchTest
rumination ~ d*int_SST_CS + e*ZCommunalStrength + f*SSTouchTest
PriBC ~ g*reflection + h*rumination
stress ~ i*PriBC
health ~ j*stress'

fit.path.model1SST <- sem(path.model1SST, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")

Model test and approximate fit indices

fitmeasures(fit.path.model1SST, c("chisq", "df", "pvalue", "cfi", "tli", "rmsea", "rmsea.ci.lower", "rmsea.ci.upper", "srmr_mplus", "pnfi", "bic"))
##          chisq             df         pvalue            cfi            tli 
##        310.810         15.000          0.000          0.289         -0.185 
##          rmsea rmsea.ci.lower rmsea.ci.upper           pnfi            bic 
##          0.213          0.193          0.234          0.177       8899.100

Modification indices

modificationindices(fit.path.model1SST, alpha = .05, sort. = TRUE, minimum.value = fit.path.model1@test[[1]]$df)
##           lhs op        rhs      mi    epc sepc.lv sepc.all sepc.nox
## 54     stress  ~ rumination 138.064  0.320   0.320    0.566    0.566
## 46 rumination  ~     stress 135.248  0.978   0.978    0.554    0.554
## 35 rumination ~~     stress 134.483  0.538   0.538    0.552    0.552
## 30 reflection ~~ rumination 108.271 -0.662  -0.662   -0.475   -0.475
## 40 reflection  ~ rumination 108.271 -0.396  -0.396   -0.489   -0.489
## 44 rumination  ~ reflection 108.271 -0.641  -0.641   -0.519   -0.519
## 53     stress  ~ reflection  66.602 -0.280  -0.280   -0.400   -0.400
## 32 reflection ~~     stress  62.703 -0.294  -0.294   -0.373   -0.373
## 42 reflection  ~     stress  62.286 -0.531  -0.531   -0.371   -0.371
## 45 rumination  ~      PriBC  53.422 -2.917  -2.917   -1.436   -1.436
## 41 reflection  ~      PriBC  24.372 -1.342  -1.342   -0.816   -0.816
## 47 rumination  ~     health  22.728  0.290   0.290    0.226    0.226
## 43 reflection  ~     health  20.001 -0.215  -0.215   -0.207   -0.207

Parameter estimates, standard errors, p-values, CI’s, \(R^2\)

parameterEstimates(fit.path.model1SST, rsquare = TRUE)[c(2, 4, 7:10, 30:34),]
##           lhs op        rhs label    est    se      z pvalue ci.lower
## 2  reflection  ~ int_SST_CS     b -0.008 0.084 -0.098  0.922   -0.171
## 4  rumination  ~ int_SST_CS     d -0.083 0.097 -0.853  0.394   -0.281
## 7       PriBC  ~ reflection     g  0.123 0.045  2.751  0.006    0.031
## 8       PriBC  ~ rumination     h  0.037 0.036  1.048  0.295   -0.036
## 9      stress  ~      PriBC     i -0.021 0.064 -0.336  0.737   -0.150
## 10     health  ~     stress     j  0.547 0.057  9.539  0.000    0.423
## 30 reflection r2 reflection        0.085    NA     NA     NA       NA
## 31 rumination r2 rumination        0.029    NA     NA     NA       NA
## 32      PriBC r2      PriBC        0.045    NA     NA     NA       NA
## 33     stress r2     stress        0.000    NA     NA     NA       NA
## 34     health r2     health        0.157    NA     NA     NA       NA
##    ci.upper
## 2     0.148
## 4     0.128
## 7     0.200
## 8     0.105
## 9     0.098
## 10    0.654
## 30       NA
## 31       NA
## 32       NA
## 33       NA
## 34       NA

Bivariate correlations

lavCor(fit.path.model1SST)
##                   rflctn rumntn PriBC  stress health ZCmmnS i_SST_ SSTchT
## reflection         1.000                                                 
## rumination        -0.511  1.000                                          
## PriBC              0.165 -0.028  1.000                                   
## stress            -0.387  0.564 -0.019  1.000                            
## health            -0.230  0.239 -0.083  0.397  1.000                     
## ZCommunalStrength  0.178 -0.112  0.108 -0.071 -0.054  1.000              
## int_SST_CS        -0.014 -0.059 -0.062  0.002 -0.029 -0.005  1.000       
## SSTouchTest        0.223 -0.078  0.116 -0.055 -0.065  0.096  0.011  1.000

Path model

semPaths(fit.path.model1SST, layout = "tree2", rotation = 2, nDigits = 2, "Standardized", intercepts = FALSE, residuals = FALSE,
         fade = FALSE, nCharNodes = 0, sizeMan = 9, edge.label.cex = .9, edge.label.position = .4)

Bayes factor in favor of the alternative hypothesis (BF10) and posterior probability for model parameters (given 1:1 prior odds for H0:Ha)

These are Bayes Factors based on model selection / information criteria approach as proposed by Wagenmakers, 2007. Each BF represents the relative evidence in the data favoring alternative hypothesis (parameter freely estimated) over the null (the given parameter fixed to 0). Bayes Factors using BIC approximation implicitly assume unit information prior which makes them rather conservative with regard to the alternative hypothesis.

f1b <- NULL
bf1b <- NULL
posterior1b <- NULL
for(i in letters[1:10]){
  m1b <- 'reflection ~ a*ZCommunalStrength + b*int_SST_CS + c*SSTouchTest
  rumination ~ d*int_SST_CS + e*ZCommunalStrength + f*SSTouchTest
  PriBC ~ g*reflection + h*rumination
  stress ~ i*PriBC
  health ~ j*stress'
  f1b <- sem(m1b, data = exdat, mimic = "Mplus", missing = "ML")
  bf1b[i] <- 1/(exp((BIC(f1b) - BIC(sem(m1b, data = exdat, mimic = "Mplus", missing = "ML",
                                      constraints = paste(i, '==', '0', sep = ""))))/2))
  posterior1b[i] <- bf1b[i]/(1+bf1b[i])
}
data.frame(BF10 = bf1b, Posterior = round(posterior1b, 3))
##           BF10 Posterior
## a 2.104770e+01     0.955
## b 4.850414e-02     0.046
## c 5.650190e+02     0.998
## d 8.617919e-02     0.079
## e 1.190410e+00     0.543
## f 1.152505e-01     0.103
## g 4.239699e+01     0.977
## h 1.252700e-01     0.111
## i 5.176796e-02     0.049
## j 5.810263e+14     1.000

Model 2SST

path.model2SST <- 'PriBC ~ a*ZCommunalStrength + b*int_SST_CS + c*SSTouchTest
reflection ~ d*PriBC
rumination ~ e*PriBC
stress ~ f*reflection + g*rumination
health ~ h*stress'

fit.path.model2SST <- sem(path.model2SST, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")

Model test and approximate fit indices

fitmeasures(fit.path.model2SST, c("chisq", "df", "pvalue", "cfi", "tli", "rmsea", "rmsea.ci.lower", "rmsea.ci.upper", "srmr_mplus", "pnfi", "bic"))
##          chisq             df         pvalue            cfi            tli 
##        170.317         17.000          0.000          0.631          0.458 
##          rmsea rmsea.ci.lower rmsea.ci.upper           pnfi            bic 
##          0.144          0.125          0.164          0.417       8746.466

Modification indices

modificationindices(fit.path.model2SST, alpha = .05, sort. = TRUE, minimum.value = fit.path.model1@test[[1]]$df)
##           lhs op         rhs      mi    epc sepc.lv sepc.all sepc.nox
## 42 reflection  ~  rumination 114.107 -0.410  -0.410   -0.506   -0.506
## 32 reflection ~~  rumination 114.107 -0.705  -0.705   -0.506   -0.506
## 48 rumination  ~  reflection 114.107 -0.642  -0.642   -0.520   -0.520
## 49 rumination  ~      stress 112.484  6.696   6.696    3.660    3.660
## 43 reflection  ~      stress 108.669 -1.378  -1.378   -0.930   -0.930
## 38      PriBC  ~  reflection  23.117 -0.920  -0.920   -1.524   -1.524
## 28      PriBC ~~  reflection  23.117 -1.010  -1.010   -1.483   -1.483
## 47 reflection  ~ SSTouchTest  18.771  0.220   0.220    0.207    0.207

Parameter estimates, standard errors, p-values, CI’s, \(R^2\)

parameterEstimates(fit.path.model2SST, rsquare = TRUE)[c(2, 4:8, 28:32),]
##           lhs op        rhs label    est    se      z pvalue ci.lower
## 2       PriBC  ~ int_SST_CS     b -0.041 0.040 -1.032  0.302   -0.117
## 4  reflection  ~      PriBC     d  0.274 0.092  2.974  0.003    0.075
## 5  rumination  ~      PriBC     e -0.057 0.110 -0.524  0.601   -0.289
## 6      stress  ~ reflection     f -0.094 0.037 -2.572  0.010   -0.170
## 7      stress  ~ rumination     g  0.280 0.023 12.110  0.000    0.236
## 8      health  ~     stress     h  0.547 0.072  7.629  0.000    0.396
## 28      PriBC r2      PriBC        0.026    NA     NA     NA       NA
## 29 reflection r2 reflection        0.027    NA     NA     NA       NA
## 30 rumination r2 rumination        0.001    NA     NA     NA       NA
## 31     stress r2     stress        0.283    NA     NA     NA       NA
## 32     health r2     health        0.148    NA     NA     NA       NA
##    ci.upper
## 2     0.045
## 4     0.438
## 5     0.176
## 6    -0.021
## 7     0.327
## 8     0.684
## 28       NA
## 29       NA
## 30       NA
## 31       NA
## 32       NA

Bivariate correlations

lavCor(fit.path.model2SST)
##                   PriBC  rflctn rumntn stress health ZCmmnS i_SST_ SSTchT
## PriBC              1.000                                                 
## reflection         0.165  1.000                                          
## rumination        -0.028 -0.511  1.000                                   
## stress            -0.019 -0.387  0.564  1.000                            
## health            -0.083 -0.230  0.239  0.397  1.000                     
## ZCommunalStrength  0.108  0.178 -0.112 -0.071 -0.054  1.000              
## int_SST_CS        -0.062 -0.014 -0.059  0.002 -0.029 -0.005  1.000       
## SSTouchTest        0.116  0.223 -0.078 -0.055 -0.065  0.096  0.011  1.000

Path model

semPaths(fit.path.model2SST, layout = "tree2", rotation = 2, nDigits = 2, "Standardized", intercepts = FALSE, residuals = FALSE,
         fade = FALSE, nCharNodes = 0, sizeMan = 9, edge.label.cex = .9)

Bayes factor in favor of the alternative hypothesis (BF10) and posterior probability for model parameters (given 1:1 prior odds for H0:Ha)

f2b <- NULL
bf2b <- NULL
posterior2b <- NULL
for(i in letters[1:8]){
  m2b <- 'PriBC ~ a*ZCommunalStrength + b*int_SST_CS + c*SSTouchTest
  reflection ~ d*PriBC
  rumination ~ e*PriBC
  stress ~ f*reflection + g*rumination
  health ~ h*stress'
  f2b <- sem(m2b, data = exdat, mimic = "Mplus", missing = "ML")
  bf2b[i] <- 1/(exp((BIC(f2b) - BIC(sem(m2b, data = exdat, mimic = "Mplus", missing = "ML",
                                      constraints = paste(i, '==', '0', sep = ""))))/2))
  posterior2b[i] <- bf2b[i]/(1+bf2b[i])
}
data.frame(BF10 = bf2b, Posterior = round(posterior2b, 3))
##           BF10 Posterior
## a 2.212822e-01     0.181
## b 9.285938e-02     0.085
## c 5.793203e-01     0.367
## d 1.928811e+01     0.951
## e 5.699043e-02     0.054
## f 3.459359e+00     0.776
## g 1.685678e+21     1.000
## h 5.810263e+14     1.000

Model 3SST

path.model3SST <- 'reflection ~ a*ZCommunalStrength + b*int_SST_CS + c*SSTouchTest
rumination ~ d*int_SST_CS + e*ZCommunalStrength + f*SSTouchTest
stress ~ g*reflection + h*rumination
health ~ i*stress
'

fit.path.model3SST <- sem(path.model3SST, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")

Model test and approximate fit indices

fitmeasures(fit.path.model3SST, c("chisq", "df", "pvalue", "cfi", "tli", "rmsea", "rmsea.ci.lower", "rmsea.ci.upper", "srmr_mplus", "pnfi", "bic"))
##          chisq             df         pvalue            cfi            tli 
##        129.122          9.000          0.000          0.701          0.402 
##          rmsea rmsea.ci.lower rmsea.ci.upper           pnfi            bic 
##          0.176          0.149          0.203          0.346       7876.940

Modification indices

modificationindices(fit.path.model3SST, alpha = .05, sort. = TRUE, minimum.value = fit.path.model1@test[[1]]$df)
##           lhs op        rhs      mi    epc sepc.lv sepc.all sepc.nox
## 33 reflection  ~ rumination 108.271 -0.396  -0.396   -0.489   -0.489
## 27 reflection ~~ rumination 108.271 -0.662  -0.662   -0.475   -0.475
## 36 rumination  ~ reflection 108.271 -0.641  -0.641   -0.519   -0.519
## 34 reflection  ~     stress  91.726 -1.180  -1.180   -0.799   -0.799
## 37 rumination  ~     stress  61.783  3.733   3.733    2.046    2.046

Parameter estimates, standard errors, p-values, CI’s, \(R^2\)

parameterEstimates(fit.path.model3SST, rsquare = TRUE)[c(2, 4, 7:9, 27:30),]
##           lhs op        rhs label    est    se      z pvalue ci.lower
## 2  reflection  ~ int_SST_CS     b -0.008 0.075 -0.111  0.912   -0.152
## 4  rumination  ~ int_SST_CS     d -0.083 0.090 -0.915  0.360   -0.253
## 7      stress  ~ reflection     g -0.094 0.034 -2.730  0.006   -0.175
## 8      stress  ~ rumination     h  0.280 0.026 10.932  0.000    0.228
## 9      health  ~     stress     i  0.547 0.064  8.564  0.000    0.426
## 27 reflection r2 reflection        0.085    NA     NA     NA       NA
## 28 rumination r2 rumination        0.029    NA     NA     NA       NA
## 29     stress r2     stress        0.287    NA     NA     NA       NA
## 30     health r2     health        0.149    NA     NA     NA       NA
##    ci.upper
## 2     0.127
## 4     0.087
## 7    -0.030
## 8     0.335
## 9     0.681
## 27       NA
## 28       NA
## 29       NA
## 30       NA

Bivariate correlations

lavCor(fit.path.model3SST)
##                   rflctn rumntn stress health ZCmmnS i_SST_ SSTchT
## reflection         1.000                                          
## rumination        -0.511  1.000                                   
## stress            -0.387  0.564  1.000                            
## health            -0.230  0.239  0.397  1.000                     
## ZCommunalStrength  0.178 -0.112 -0.071 -0.054  1.000              
## int_SST_CS        -0.014 -0.059  0.002 -0.029 -0.005  1.000       
## SSTouchTest        0.223 -0.078 -0.055 -0.065  0.096  0.011  1.000

Path model

semPaths(fit.path.model3SST, layout = "tree2", rotation = 2, nDigits = 2, "Standardized", intercepts = FALSE, residuals = FALSE,
         fade = FALSE, nCharNodes = 0, sizeMan = 9, edge.label.cex = .9, edge.label.position = .4)

Bayes factor in favor of the alternative hypothesis (BF10) and posterior probability for model parameters (given 1:1 prior odds for H0:Ha)

f3b <- NULL
bf3b <- NULL
posterior3b <- NULL
for(i in letters[1:9]){
  m3b <- 'reflection ~ a*ZCommunalStrength + b*int_SST_CS + c*SSTouchTest
  rumination ~ d*int_SST_CS + e*ZCommunalStrength + f*SSTouchTest
  stress ~ g*reflection + h*rumination
  health ~ i*stress'
  f3b <- sem(m3b, data = exdat, mimic = "Mplus", missing = "ML")
  bf3b[i] <- 1/(exp((BIC(f3b) - BIC(sem(m3b, data = exdat, mimic = "Mplus", missing = "ML",
                                      constraints = paste(i, '==', '0', sep = ""))))/2))
  posterior3b[i] <- bf3b[i]/(1+bf3b[i])
}
data.frame(BF10 = bf3b, Posterior = round(posterior3b, 3))
##           BF10 Posterior
## a 2.108136e+01     0.955
## b 4.850750e-02     0.046
## c 5.619050e+02     0.998
## d 8.614730e-02     0.079
## e 1.190988e+00     0.544
## f 1.151619e-01     0.103
## g 3.459359e+00     0.776
## h 1.685678e+21     1.000
## i 5.810263e+14     1.000
####################

Path models OST

Consequences of Reflective and Ruminative Mood Orientations

Model 1OST

path.model1OST <- 'reflection ~ a*ZCommunalStrength + b*int_OST_CS + c*OSTouchTest
rumination ~ d*int_OST_CS + e*ZCommunalStrength + f*OSTouchTest
PriBC ~ g*reflection + h*rumination
stress ~ i*PriBC
health ~ j*stress'

fit.path.model1OST <- sem(path.model1OST, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")

Model test and approximate fit indices

fitmeasures(fit.path.model1OST, c("chisq", "df", "pvalue", "cfi", "tli", "rmsea", "rmsea.ci.lower", "rmsea.ci.upper", "srmr_mplus", "pnfi", "bic"))
##          chisq             df         pvalue            cfi            tli 
##        316.806         15.000          0.000          0.309         -0.151 
##          rmsea rmsea.ci.lower rmsea.ci.upper           pnfi            bic 
##          0.216          0.195          0.237          0.188       8886.025

Modification indices

modificationindices(fit.path.model1OST, alpha = .05, sort. = TRUE, minimum.value = fit.path.model1@test[[1]]$df)
##           lhs op        rhs      mi    epc sepc.lv sepc.all sepc.nox
## 54     stress  ~ rumination 138.043  0.320   0.320    0.566    0.566
## 46 rumination  ~     stress 129.490  0.956   0.956    0.541    0.541
## 35 rumination ~~     stress 128.848  0.525   0.525    0.539    0.539
## 44 rumination  ~ reflection 105.672 -0.645  -0.645   -0.522   -0.522
## 40 reflection  ~ rumination 105.672 -0.386  -0.386   -0.477   -0.477
## 30 reflection ~~ rumination 105.672 -0.642  -0.642   -0.461   -0.461
## 53     stress  ~ reflection  66.643 -0.280  -0.280   -0.400   -0.400
## 32 reflection ~~     stress  53.835 -0.268  -0.268   -0.340   -0.340
## 42 reflection  ~     stress  53.371 -0.484  -0.484   -0.338   -0.338
## 45 rumination  ~      PriBC  39.289 -2.496  -2.496   -1.229   -1.229
## 41 reflection  ~      PriBC  26.433 -1.190  -1.190   -0.724   -0.724
## 47 rumination  ~     health  21.365  0.281   0.281    0.219    0.219
## 43 reflection  ~     health  16.602 -0.192  -0.192   -0.186   -0.186

Parameter estimates, standard errors, p-values, CI’s, \(R^2\)

parameterEstimates(fit.path.model1OST, rsquare = TRUE)[c(2, 4, 7:10, 30:34),]
##           lhs op        rhs label    est    se      z pvalue ci.lower
## 2  reflection  ~ int_OST_CS     b -0.086 0.071 -1.213  0.225   -0.228
## 4  rumination  ~ int_OST_CS     d  0.048 0.095  0.507  0.612   -0.137
## 7       PriBC  ~ reflection     g  0.123 0.042  2.905  0.004    0.032
## 8       PriBC  ~ rumination     h  0.037 0.033  1.119  0.263   -0.027
## 9      stress  ~      PriBC     i -0.021 0.064 -0.335  0.738   -0.149
## 10     health  ~     stress     j  0.547 0.061  8.942  0.000    0.425
## 30 reflection r2 reflection        0.117    NA     NA     NA       NA
## 31 rumination r2 rumination        0.032    NA     NA     NA       NA
## 32      PriBC r2      PriBC        0.045    NA     NA     NA       NA
## 33     stress r2     stress        0.000    NA     NA     NA       NA
## 34     health r2     health        0.157    NA     NA     NA       NA
##    ci.upper
## 2     0.059
## 4     0.228
## 7     0.201
## 8     0.112
## 9     0.119
## 10    0.668
## 30       NA
## 31       NA
## 32       NA
## 33       NA
## 34       NA

Bivariate correlations

lavCor(fit.path.model1OST)
##                   rflctn rumntn PriBC  stress health ZCmmnS i_OST_ OSTchT
## reflection         1.000                                                 
## rumination        -0.511  1.000                                          
## PriBC              0.165 -0.028  1.000                                   
## stress            -0.387  0.564 -0.019  1.000                            
## health            -0.230  0.239 -0.083  0.397  1.000                     
## ZCommunalStrength  0.178 -0.112  0.108 -0.071 -0.054  1.000              
## int_OST_CS        -0.037  0.009 -0.126 -0.016 -0.023  0.084  1.000       
## OSTouchTest        0.261 -0.098  0.118 -0.155 -0.130 -0.011  0.065  1.000

Path model

semPaths(fit.path.model1OST, layout = "tree2", rotation = 2, nDigits = 2, "Standardized", intercepts = FALSE, residuals = FALSE,
         fade = FALSE, nCharNodes = 0, sizeMan = 9, edge.label.cex = .9, edge.label.position = .4)

Bayes factor in favor of the alternative hypothesis (BF10) and posterior probability for model parameters (given 1:1 prior odds for H0:Ha)

These are Bayes Factors based on model selection / information criteria approach as proposed by Wagenmakers, 2007. Each BF represents the relative evidence in the data favoring alternative hypothesis (parameter freely estimated) over the null (the given parameter fixed to 0). Bayes Factors using BIC approximation implicitly assume unit information prior which makes them rather conservative with regard to the alternative hypothesis.

f1c <- NULL
bf1c <- NULL
posterior1c <- NULL
for(i in letters[1:10]){
  m1c <- 'reflection ~ a*ZCommunalStrength + b*int_OST_CS + c*OSTouchTest
  rumination ~ d*int_OST_CS + e*ZCommunalStrength + f*OSTouchTest
  PriBC ~ g*reflection + h*rumination
  stress ~ i*PriBC
  health ~ j*stress'
  f1c <- sem(m1c, data = exdat, mimic = "Mplus", missing = "ML")
  bf1c[i] <- 1/(exp((BIC(f1c) - BIC(sem(m1c, data = exdat, mimic = "Mplus", missing = "ML",
                                        constraints = paste(i, '==', '0', sep = ""))))/2))
  posterior1c[i] <- bf1c[i]/(1+bf1c[i])
}
data.frame(BF10 = bf1c, Posterior = round(posterior1c, 3))
##           BF10 Posterior
## a 1.701583e+02     0.994
## b 1.355887e-01     0.119
## c 7.458742e+05     1.000
## d 5.864294e-02     0.055
## e 2.008626e+00     0.668
## f 4.421822e-01     0.307
## g 4.239699e+01     0.977
## h 1.252700e-01     0.111
## i 5.176796e-02     0.049
## j 5.810263e+14     1.000

Model 2OST

path.model2OST <- 'PriBC ~ a*ZCommunalStrength + b*int_OST_CS + c*OSTouchTest
reflection ~ d*PriBC
rumination ~ e*PriBC
stress ~ f*reflection + g*rumination
health ~ h*stress'

fit.path.model2OST <- sem(path.model2OST, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")

Model test and approximate fit indices

fitmeasures(fit.path.model2OST, c("chisq", "df", "pvalue", "cfi", "tli", "rmsea", "rmsea.ci.lower", "rmsea.ci.upper", "srmr_mplus", "pnfi", "bic"))
##          chisq             df         pvalue            cfi            tli 
##        183.871         17.000          0.000          0.618          0.438 
##          rmsea rmsea.ci.lower rmsea.ci.upper           pnfi            bic 
##          0.151          0.131          0.171          0.409       8740.948

Modification indices

modificationindices(fit.path.model2OST, alpha = .05, sort. = TRUE, minimum.value = fit.path.model1@test[[1]]$df)
##           lhs op         rhs      mi    epc sepc.lv sepc.all sepc.nox
## 48 rumination  ~  reflection 114.107 -0.642  -0.642   -0.520   -0.520
## 32 reflection ~~  rumination 114.106 -0.705  -0.705   -0.506   -0.506
## 42 reflection  ~  rumination 114.106 -0.410  -0.410   -0.506   -0.506
## 49 rumination  ~      stress 112.482  6.696   6.696    3.660    3.660
## 43 reflection  ~      stress 108.667 -1.378  -1.378   -0.930   -0.930
## 47 reflection  ~ OSTouchTest  26.436  0.261   0.261    0.245    0.246
## 28      PriBC ~~  reflection  26.157 -0.815  -0.815   -1.196   -1.196
## 38      PriBC  ~  reflection  26.157 -0.742  -0.742   -1.230   -1.230

Parameter estimates, standard errors, p-values, CI’s, \(R^2\)

parameterEstimates(fit.path.model2OST, rsquare = TRUE)[c(2, 4:8, 28:32),]
##           lhs op        rhs label    est    se      z pvalue ci.lower
## 2       PriBC  ~ int_OST_CS     b -0.098 0.051 -1.942  0.052   -0.211
## 4  reflection  ~      PriBC     d  0.274 0.091  3.003  0.003    0.091
## 5  rumination  ~      PriBC     e -0.057 0.116 -0.495  0.621   -0.297
## 6      stress  ~ reflection     f -0.094 0.033 -2.826  0.005   -0.151
## 7      stress  ~ rumination     g  0.280 0.026 10.760  0.000    0.233
## 8      health  ~     stress     h  0.547 0.065  8.476  0.000    0.420
## 28      PriBC r2      PriBC        0.046    NA     NA     NA       NA
## 29 reflection r2 reflection        0.027    NA     NA     NA       NA
## 30 rumination r2 rumination        0.001    NA     NA     NA       NA
## 31     stress r2     stress        0.283    NA     NA     NA       NA
## 32     health r2     health        0.148    NA     NA     NA       NA
##    ci.upper
## 2    -0.002
## 4     0.445
## 5     0.145
## 6    -0.020
## 7     0.335
## 8     0.669
## 28       NA
## 29       NA
## 30       NA
## 31       NA
## 32       NA

Bivariate correlations

lavCor(fit.path.model2OST)
##                   PriBC  rflctn rumntn stress health ZCmmnS i_OST_ OSTchT
## PriBC              1.000                                                 
## reflection         0.165  1.000                                          
## rumination        -0.028 -0.511  1.000                                   
## stress            -0.019 -0.387  0.564  1.000                            
## health            -0.083 -0.230  0.239  0.397  1.000                     
## ZCommunalStrength  0.108  0.178 -0.112 -0.071 -0.054  1.000              
## int_OST_CS        -0.126 -0.037  0.009 -0.016 -0.023  0.084  1.000       
## OSTouchTest        0.118  0.261 -0.098 -0.155 -0.130 -0.011  0.065  1.000

Path model

semPaths(fit.path.model2OST, layout = "tree2", rotation = 2, nDigits = 2, "Standardized", intercepts = FALSE, residuals = FALSE,
         fade = FALSE, nCharNodes = 0, sizeMan = 9, edge.label.cex = .9)

Bayes factor in favor of the alternative hypothesis (BF10) and posterior probability for model parameters (given 1:1 prior odds for H0:Ha)

f2c <- NULL
bf2c <- NULL
posterior2c <- NULL
for(i in letters[1:8]){
  m2c <- 'PriBC ~ a*ZCommunalStrength + b*int_OST_CS + c*OSTouchTest
  reflection ~ d*PriBC
  rumination ~ e*PriBC
  stress ~ f*reflection + g*rumination
  health ~ h*stress'
  f2c <- sem(m2c, data = exdat, mimic = "Mplus", missing = "ML")
  bf2c[i] <- 1/(exp((BIC(f2c) - BIC(sem(m2c, data = exdat, mimic = "Mplus", missing = "ML",
                                        constraints = paste(i, '==', '0', sep = ""))))/2))
  posterior2c[i] <- bf2c[i]/(1+bf2c[i])
}
data.frame(BF10 = bf2c, Posterior = round(posterior2c, 3))
##           BF10 Posterior
## a 6.107622e-01     0.379
## b 2.018850e+00     0.669
## c 2.045409e+00     0.672
## d 1.928811e+01     0.951
## e 5.699043e-02     0.054
## f 3.459359e+00     0.776
## g 1.685678e+21     1.000
## h 5.810263e+14     1.000

Model 3OST

path.model3OST <- 'reflection ~ a*ZCommunalStrength + b*int_OST_CS + c*OSTouchTest
rumination ~ d*int_OST_CS + e*ZCommunalStrength + f*OSTouchTest
stress ~ g*reflection + h*rumination
health ~ i*stress
'

fit.path.model3OST <- sem(path.model3OST, data = exdat, se = "bootstrap", bootstrap = nboot, mimic = "Mplus", missing = "ML")

Model test and approximate fit indices

fitmeasures(fit.path.model3OST, c("chisq", "df", "pvalue", "cfi", "tli", "rmsea", "rmsea.ci.lower", "rmsea.ci.upper", "srmr_mplus", "pnfi", "bic"))
##          chisq             df         pvalue            cfi            tli 
##        129.019          9.000          0.000          0.712          0.423 
##          rmsea rmsea.ci.lower rmsea.ci.upper           pnfi            bic 
##          0.175          0.149          0.203          0.351       7863.815

Modification indices

modificationindices(fit.path.model3OST, alpha = .05, sort. = TRUE, minimum.value = fit.path.model1@test[[1]]$df)
##           lhs op        rhs      mi    epc sepc.lv sepc.all sepc.nox
## 27 reflection ~~ rumination 105.656 -0.642  -0.642   -0.461   -0.461
## 36 rumination  ~ reflection 105.656 -0.645  -0.645   -0.522   -0.522
## 33 reflection  ~ rumination 105.656 -0.386  -0.386   -0.476   -0.476
## 34 reflection  ~     stress  69.511 -0.981  -0.981   -0.665   -0.665
## 37 rumination  ~     stress  42.172  3.052   3.052    1.675    1.675

Parameter estimates, standard errors, p-values, CI’s, \(R^2\)

parameterEstimates(fit.path.model3OST, rsquare = TRUE)[c(2, 4, 7:9, 27:30),]
##           lhs op        rhs label    est    se      z pvalue ci.lower
## 2  reflection  ~ int_OST_CS     b -0.086 0.078 -1.104  0.270   -0.271
## 4  rumination  ~ int_OST_CS     d  0.048 0.093  0.520  0.603   -0.145
## 7      stress  ~ reflection     g -0.094 0.034 -2.762  0.006   -0.155
## 8      stress  ~ rumination     h  0.280 0.026 10.976  0.000    0.233
## 9      health  ~     stress     i  0.547 0.065  8.372  0.000    0.405
## 27 reflection r2 reflection        0.117    NA     NA     NA       NA
## 28 rumination r2 rumination        0.032    NA     NA     NA       NA
## 29     stress r2     stress        0.288    NA     NA     NA       NA
## 30     health r2     health        0.149    NA     NA     NA       NA
##    ci.upper
## 2     0.037
## 4     0.237
## 7    -0.030
## 8     0.338
## 9     0.668
## 27       NA
## 28       NA
## 29       NA
## 30       NA

Bivariate correlations

lavCor(fit.path.model3OST)
##                   rflctn rumntn stress health ZCmmnS i_OST_ OSTchT
## reflection         1.000                                          
## rumination        -0.511  1.000                                   
## stress            -0.387  0.564  1.000                            
## health            -0.230  0.239  0.397  1.000                     
## ZCommunalStrength  0.178 -0.112 -0.071 -0.054  1.000              
## int_OST_CS        -0.037  0.009 -0.016 -0.023  0.084  1.000       
## OSTouchTest        0.261 -0.098 -0.155 -0.130 -0.011  0.065  1.000

Path model

semPaths(fit.path.model3OST, layout = "tree2", rotation = 2, nDigits = 2, "Standardized", intercepts = FALSE, residuals = FALSE,
         fade = FALSE, nCharNodes = 0, sizeMan = 9, edge.label.cex = .9, edge.label.position = .4)

Bayes factor in favor of the alternative hypothesis (BF10) and posterior probability for model parameters (given 1:1 prior odds for H0:Ha)

f3c <- NULL
bf3c <- NULL
posterior3c <- NULL
for(i in letters[1:9]){
  m3c <- 'reflection ~ a*ZCommunalStrength + b*int_OST_CS + c*OSTouchTest
  rumination ~ d*int_OST_CS + e*ZCommunalStrength + f*OSTouchTest
  stress ~ g*reflection + h*rumination
  health ~ i*stress'
  f3c <- sem(m3c, data = exdat, mimic = "Mplus", missing = "ML")
  bf3c[i] <- 1/(exp((BIC(f3c) - BIC(sem(m3c, data = exdat, mimic = "Mplus", missing = "ML",
                                        constraints = paste(i, '==', '0', sep = ""))))/2))
  posterior3c[i] <- bf3c[i]/(1+bf3c[i])
}
data.frame(BF10 = bf3c, Posterior = round(posterior3c, 3))
##           BF10 Posterior
## a 1.718350e+02     0.994
## b 1.363190e-01     0.120
## c 7.169339e+05     1.000
## d 5.883969e-02     0.056
## e 2.027192e+00     0.670
## f 4.382795e-01     0.305
## g 3.459359e+00     0.776
## h 1.685678e+21     1.000
## i 5.810263e+14     1.000