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))
Methods
print
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