Skip to contents

Data

n <- 1000
a <- 0.50
b <- 0.50
cp <- 0.25
sigmasqem <- 1 - a^2
sigmasqey <- 1 - cp^2 - a^2 * b^2 - b^2 * (1 - a^2) - 2 * cp * a * b
em <- rnorm(n = n, mean = 0, sd = sqrt(sigmasqem))
ey <- rnorm(n = n, mean = 0, sd = sqrt(sigmasqey))
X <- rnorm(n = n)
M <- a * X + em
Y <- cp * X + b * M + ey
df <- data.frame(X, M, Y)

Model Specification

model <- "
  Y ~ cp * X + b * M
  M ~ a * X
  indirect := a * b
  direct := cp
  total := cp + (a * b)
"

Model Fitting

fit <- sem(data = df, model = model)

Monte Carlo Confidence Intervals

unstd <- MC(fit, R = 20000L, alpha = c(0.001, 0.01, 0.05))

Methods

print

print(unstd)
#> Monte Carlo Confidence Intervals
#>             est     se     R  0.05%   0.5%   2.5%  97.5%  99.5% 99.95%
#> cp       0.2333 0.0264 20000 0.1465 0.1651 0.1817 0.2846 0.3012 0.3165
#> b        0.5082 0.0272 20000 0.4161 0.4385 0.4551 0.5611 0.5786 0.5988
#> a        0.4820 0.0264 20000 0.3959 0.4140 0.4299 0.5337 0.5495 0.5642
#> Y~~Y     0.5462 0.0244 20000 0.4660 0.4832 0.4979 0.5944 0.6095 0.6263
#> M~~M     0.7527 0.0339 20000 0.6441 0.6655 0.6858 0.8187 0.8387 0.8620
#> indirect 0.2449 0.0188 20000 0.1885 0.1983 0.2094 0.2831 0.2964 0.3105
#> direct   0.2333 0.0264 20000 0.1465 0.1651 0.1817 0.2846 0.3012 0.3165
#> total    0.4782 0.0264 20000 0.3911 0.4102 0.4262 0.5295 0.5457 0.5629

summary

summary(unstd)
#> Monte Carlo Confidence Intervals
#>             est     se     R  0.05%   0.5%   2.5%  97.5%  99.5% 99.95%
#> cp       0.2333 0.0264 20000 0.1465 0.1651 0.1817 0.2846 0.3012 0.3165
#> b        0.5082 0.0272 20000 0.4161 0.4385 0.4551 0.5611 0.5786 0.5988
#> a        0.4820 0.0264 20000 0.3959 0.4140 0.4299 0.5337 0.5495 0.5642
#> Y~~Y     0.5462 0.0244 20000 0.4660 0.4832 0.4979 0.5944 0.6095 0.6263
#> M~~M     0.7527 0.0339 20000 0.6441 0.6655 0.6858 0.8187 0.8387 0.8620
#> indirect 0.2449 0.0188 20000 0.1885 0.1983 0.2094 0.2831 0.2964 0.3105
#> direct   0.2333 0.0264 20000 0.1465 0.1651 0.1817 0.2846 0.3012 0.3165
#> total    0.4782 0.0264 20000 0.3911 0.4102 0.4262 0.5295 0.5457 0.5629

coef

coef(unstd)
#>        cp         b         a      Y~~Y      M~~M      X~~X  indirect    direct 
#> 0.2333230 0.5081833 0.4819530 0.5461589 0.7526879 1.0589562 0.2449205 0.2333230 
#>     total 
#> 0.4782435

vcov

vcov(unstd)
#>                     cp             b             a          Y~~Y          M~~M
#> cp        6.957832e-04 -3.569537e-04 -7.335055e-06 -1.863172e-06 -6.369651e-06
#> b        -3.569537e-04  7.397495e-04  2.175751e-06 -1.959388e-06  4.413204e-06
#> a        -7.335055e-06  2.175751e-06  6.982971e-04 -8.322624e-06  5.021764e-06
#> Y~~Y     -1.863172e-06 -1.959388e-06 -8.322624e-06  5.962836e-04  4.504744e-06
#> M~~M     -6.369651e-06  4.413204e-06  5.021764e-06  4.504744e-06  1.148370e-03
#> X~~X      0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
#> indirect -1.760619e-04  3.579324e-04  3.559548e-04 -5.050361e-06  4.668854e-06
#> direct    6.957832e-04 -3.569537e-04 -7.335055e-06 -1.863172e-06 -6.369651e-06
#> total     5.197213e-04  9.786539e-07  3.486198e-04 -6.913533e-06 -1.700796e-06
#>          X~~X      indirect        direct         total
#> cp          0 -1.760619e-04  6.957832e-04  5.197213e-04
#> b           0  3.579324e-04 -3.569537e-04  9.786539e-07
#> a           0  3.559548e-04 -7.335055e-06  3.486198e-04
#> Y~~Y        0 -5.050361e-06 -1.863172e-06 -6.913533e-06
#> M~~M        0  4.668854e-06 -6.369651e-06 -1.700796e-06
#> X~~X        0  0.000000e+00  0.000000e+00  0.000000e+00
#> indirect    0  3.540809e-04 -1.760619e-04  1.780190e-04
#> direct      0 -1.760619e-04  6.957832e-04  5.197213e-04
#> total       0  1.780190e-04  5.197213e-04  6.977403e-04

confint

confint(unstd, level = 0.95)
#>               2.5%     97.5%
#> cp       0.1816910 0.2845601
#> b        0.4551497 0.5611403
#> a        0.4299410 0.5337397
#> Y~~Y     0.4979155 0.5944224
#> M~~M     0.6857891 0.8187138
#> indirect 0.2094303 0.2831318
#> direct   0.1816910 0.2845601
#> total    0.4262403 0.5294621

Standardized Monte Carlo Confidence Intervals

fit <- sem(data = df, model = model, fixed.x = FALSE)
unstd <- MC(fit, R = 20000L, alpha = c(0.001, 0.01, 0.05))
std <- MCStd(unstd)

Methods

print(std)
#> Standardized Monte Carlo Confidence Intervals
#>             est     se     R  0.05%   0.5%   2.5%  97.5%  99.5% 99.95%
#> cp       0.2422 0.0268 20000 0.1535 0.1722 0.1893 0.2945 0.3101 0.3294
#> b        0.5123 0.0246 20000 0.4289 0.4494 0.4639 0.5607 0.5764 0.5937
#> a        0.4963 0.0239 20000 0.4157 0.4338 0.4488 0.5427 0.5575 0.5754
#> Y~~Y     0.5558 0.0235 20000 0.4805 0.4951 0.5095 0.6018 0.6164 0.6334
#> M~~M     0.7537 0.0237 20000 0.6690 0.6892 0.7055 0.7986 0.8118 0.8272
#> X~~X     1.0000 0.0000 20000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
#> indirect 0.2542 0.0176 20000 0.1974 0.2101 0.2206 0.2892 0.3005 0.3154
#> direct   0.2422 0.0268 20000 0.1535 0.1722 0.1893 0.2945 0.3101 0.3294
#> total    0.4964 0.0239 20000 0.4159 0.4342 0.4485 0.5418 0.5564 0.5712

summary

summary(std)
#> Standardized Monte Carlo Confidence Intervals
#>             est     se     R  0.05%   0.5%   2.5%  97.5%  99.5% 99.95%
#> cp       0.2422 0.0268 20000 0.1535 0.1722 0.1893 0.2945 0.3101 0.3294
#> b        0.5123 0.0246 20000 0.4289 0.4494 0.4639 0.5607 0.5764 0.5937
#> a        0.4963 0.0239 20000 0.4157 0.4338 0.4488 0.5427 0.5575 0.5754
#> Y~~Y     0.5558 0.0235 20000 0.4805 0.4951 0.5095 0.6018 0.6164 0.6334
#> M~~M     0.7537 0.0237 20000 0.6690 0.6892 0.7055 0.7986 0.8118 0.8272
#> X~~X     1.0000 0.0000 20000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
#> indirect 0.2542 0.0176 20000 0.1974 0.2101 0.2206 0.2892 0.3005 0.3154
#> direct   0.2422 0.0268 20000 0.1535 0.1722 0.1893 0.2945 0.3101 0.3294
#> total    0.4964 0.0239 20000 0.4159 0.4342 0.4485 0.5418 0.5564 0.5712

coef

coef(std)
#>        cp         b         a      Y~~Y      M~~M      X~~X  indirect    direct 
#> 0.2422015 0.5122827 0.4962890 0.5557501 0.7536972 1.0000000 0.2542403 0.2422015 
#>     total 
#> 0.4964418

vcov

vcov(std)
#>                     cp             b             a          Y~~Y          M~~M
#> cp        7.190966e-04 -4.665515e-04  6.379271e-06 -1.246286e-04 -6.423531e-06
#> b        -4.665515e-04  6.032406e-04  1.906243e-05 -3.043803e-04 -1.875693e-05
#> a         6.379271e-06  1.906243e-05  5.714927e-04 -1.713986e-04 -5.663971e-04
#> Y~~Y     -1.246286e-04 -3.043803e-04 -1.713986e-04  5.511867e-04  1.698123e-04
#> M~~M     -6.423531e-06 -1.875693e-05 -5.663971e-04  1.698123e-04  5.620164e-04
#> X~~X      2.836307e-20 -3.396941e-20 -3.829225e-20  2.354145e-20  3.710053e-20
#> indirect -2.281923e-04  3.089530e-04  3.020390e-04 -2.385641e-04 -2.993074e-04
#> direct    7.190966e-04 -4.665515e-04  6.379271e-06 -1.246286e-04 -6.423531e-06
#> total     4.909043e-04 -1.575984e-04  3.084183e-04 -3.631927e-04 -3.057310e-04
#>                   X~~X      indirect        direct         total
#> cp        2.836307e-20 -2.281923e-04  7.190966e-04  4.909043e-04
#> b        -3.396941e-20  3.089530e-04 -4.665515e-04 -1.575984e-04
#> a        -3.829225e-20  3.020390e-04  6.379271e-06  3.084183e-04
#> Y~~Y      2.354145e-20 -2.385641e-04 -1.246286e-04 -3.631927e-04
#> M~~M      3.710053e-20 -2.993074e-04 -6.423531e-06 -3.057310e-04
#> X~~X      1.176201e-32 -3.652131e-20  2.836307e-20 -8.158237e-21
#> indirect -3.652131e-20  3.082078e-04 -2.281923e-04  8.001551e-05
#> direct    2.836307e-20 -2.281923e-04  7.190966e-04  4.909043e-04
#> total    -8.158237e-21  8.001551e-05  4.909043e-04  5.709198e-04

confint

confint(std, level = 0.95)
#>               2.5%     97.5%
#> cp       0.1892968 0.2944622
#> b        0.4639209 0.5606698
#> a        0.4487895 0.5426725
#> Y~~Y     0.5095222 0.6018056
#> M~~M     0.7055066 0.7985880
#> X~~X     1.0000000 1.0000000
#> indirect 0.2205518 0.2891652
#> direct   0.1892968 0.2944622
#> total    0.4484950 0.5417844