BootMed {cTMed} | R Documentation |
Bootstrap Sampling Distribution of Total, Direct, and Indirect Effects of X on Y Through M Over a Specific Time Interval or a Range of Time Intervals
Description
This function generates a bootstrap method
sampling distribution
of the total, direct and indirect effects
of the independent variable X
on the dependent variable Y
through mediator variables \mathbf{m}
over a specific time interval \Delta t
or a range of time intervals
using the first-order stochastic differential equation model
drift matrix \boldsymbol{\Phi}
.
Usage
BootMed(phi, phi_hat, delta_t, from, to, med, ncores = NULL, tol = 0.01)
Arguments
phi |
List of numeric matrices.
Each element of the list is a bootstrap estimate
of the drift matrix ( |
phi_hat |
Numeric matrix.
The estimated drift matrix ( |
delta_t |
Numeric.
Time interval
( |
from |
Character string.
Name of the independent variable |
to |
Character string.
Name of the dependent variable |
med |
Character vector.
Name/s of the mediator variable/s in |
ncores |
Positive integer.
Number of cores to use.
If |
tol |
Numeric. Smallest possible time interval to allow. |
Details
See Total()
,
Direct()
, and
Indirect()
for more details.
Value
Returns an object
of class ctmedboot
which is a list with the following elements:
- call
Function call.
- args
Function arguments.
- fun
Function used ("BootMed").
- output
A list with length of
length(delta_t)
.
Each element in the output
list has the following elements:
- est
A vector of total, direct, and indirect effects.
- thetahatstar
A matrix of bootstrap total, direct, and indirect effects.
Author(s)
Ivan Jacob Agaloos Pesigan
References
Bollen, K. A. (1987). Total, direct, and indirect effects in structural equation models. Sociological Methodology, 17, 37. doi:10.2307/271028
Deboeck, P. R., & Preacher, K. J. (2015). No need to be discrete: A method for continuous time mediation analysis. Structural Equation Modeling: A Multidisciplinary Journal, 23 (1), 61–75. doi:10.1080/10705511.2014.973960
Ryan, O., & Hamaker, E. L. (2021). Time to intervene: A continuous-time approach to network analysis and centrality. Psychometrika, 87 (1), 214–252. doi:10.1007/s11336-021-09767-0
See Also
Other Continuous Time Mediation Functions:
BootBeta()
,
BootBetaStd()
,
BootMedStd()
,
DeltaBeta()
,
DeltaBetaStd()
,
DeltaIndirectCentral()
,
DeltaMed()
,
DeltaMedStd()
,
DeltaTotalCentral()
,
Direct()
,
DirectStd()
,
ExpCov()
,
ExpMean()
,
Indirect()
,
IndirectCentral()
,
IndirectStd()
,
MCBeta()
,
MCBetaStd()
,
MCIndirectCentral()
,
MCMed()
,
MCMedStd()
,
MCPhi()
,
MCTotalCentral()
,
Med()
,
MedStd()
,
PosteriorBeta()
,
PosteriorIndirectCentral()
,
PosteriorMed()
,
PosteriorTotalCentral()
,
Total()
,
TotalCentral()
,
TotalStd()
,
Trajectory()
Examples
## Not run:
library(simStateSpace)
# prepare parameters
## number of individuals
n <- 50
## time points
time <- 100
delta_t <- 0.10
## dynamic structure
p <- 3
mu0 <- rep(x = 0, times = p)
sigma0 <- matrix(
data = c(
1.0,
0.2,
0.2,
0.2,
1.0,
0.2,
0.2,
0.2,
1.0
),
nrow = p
)
sigma0_l <- t(chol(sigma0))
mu <- rep(x = 0, times = p)
phi <- matrix(
data = c(
-0.357,
0.771,
-0.450,
0.0,
-0.511,
0.729,
0,
0,
-0.693
),
nrow = p
)
sigma <- matrix(
data = c(
0.24455556,
0.02201587,
-0.05004762,
0.02201587,
0.07067800,
0.01539456,
-0.05004762,
0.01539456,
0.07553061
),
nrow = p
)
sigma_l <- t(chol(sigma))
## measurement model
k <- 3
nu <- rep(x = 0, times = k)
lambda <- diag(k)
theta <- 0.2 * diag(k)
theta_l <- t(chol(theta))
boot <- PBSSMOUFixed(
R = 1000L,
path = getwd(),
prefix = "ou",
n = n,
time = time,
delta_t = delta_t,
mu0 = mu0,
sigma0_l = sigma0_l,
mu = mu,
phi = phi,
sigma_l = sigma_l,
nu = nu,
lambda = lambda,
theta_l = theta_l,
ncores = parallel::detectCores() - 1,
seed = 42
)
phi_hat <- phi
colnames(phi_hat) <- rownames(phi_hat) <- c("x", "m", "y")
phi <- extract(object = boot, what = "phi")
# Specific time interval ----------------------------------------------------
BootMed(
phi = phi,
phi_hat = phi_hat,
delta_t = 1,
from = "x",
to = "y",
med = "m"
)
# Range of time intervals ---------------------------------------------------
boot <- BootMed(
phi = phi,
phi_hat = phi_hat,
delta_t = 1:5,
from = "x",
to = "y",
med = "m"
)
plot(boot)
plot(boot, type = "bc") # bias-corrected
# Methods -------------------------------------------------------------------
# BootMed has a number of methods including
# print, summary, confint, and plot
print(boot)
summary(boot)
confint(boot, level = 0.95)
print(boot, type = "bc") # bias-corrected
summary(boot, type = "bc")
confint(boot, level = 0.95, type = "bc")
## End(Not run)