DeltaMedStd {cTMed} | R Documentation |
Delta Method Sampling Variance-Covariance Matrix for the Standardized 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 computes the delta method
sampling variance-covariance matrix
for the standardized 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's
drift matrix \boldsymbol{\Phi}
and process noise covariance matrix \boldsymbol{\Sigma}
.
Usage
DeltaMedStd(
phi,
sigma,
vcov_theta,
delta_t,
from,
to,
med,
ncores = NULL,
tol = 0.01
)
Arguments
phi |
Numeric matrix.
The drift matrix ( |
sigma |
Numeric matrix.
The process noise covariance matrix ( |
vcov_theta |
Numeric matrix.
The sampling variance-covariance matrix of
|
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 TotalStd()
,
DirectStd()
, and
IndirectStd()
for more details.
Delta Method
Let \boldsymbol{\theta}
be
a vector that combines
\mathrm{vec} \left( \boldsymbol{\Phi} \right)
,
that is,
the elements of the \boldsymbol{\Phi}
matrix
in vector form sorted column-wise and
\mathrm{vech} \left( \boldsymbol{\Sigma} \right)
,
that is,
the unique elements of the \boldsymbol{\Sigma}
matrix
in vector form sorted column-wise.
Let \hat{\boldsymbol{\theta}}
be
a vector that combines
\mathrm{vec} \left( \hat{\boldsymbol{\Phi}} \right)
and
\mathrm{vech} \left( \hat{\boldsymbol{\Sigma}} \right)
.
By the multivariate central limit theory,
the function \mathbf{g}
using \hat{\boldsymbol{\theta}}
as input
can be expressed as:
\sqrt{n}
\left(
\mathbf{g} \left( \hat{\boldsymbol{\theta}} \right)
-
\mathbf{g} \left( \boldsymbol{\theta} \right)
\right)
\xrightarrow[]{
\mathrm{D}
}
\mathcal{N}
\left(
0,
\mathbf{J}
\boldsymbol{\Gamma}
\mathbf{J}^{\prime}
\right)
where \mathbf{J}
is the matrix of first-order derivatives
of the function \mathbf{g}
with respect to the elements of \boldsymbol{\theta}
and
\boldsymbol{\Gamma}
is the asymptotic variance-covariance matrix of
\hat{\boldsymbol{\theta}}
.
From the former,
we can derive the distribution of
\mathbf{g} \left( \hat{\boldsymbol{\theta}} \right)
as follows:
\mathbf{g} \left( \hat{\boldsymbol{\theta}} \right)
\approx
\mathcal{N}
\left(
\mathbf{g} \left( \boldsymbol{\theta} \right)
,
n^{-1}
\mathbf{J}
\boldsymbol{\Gamma}
\mathbf{J}^{\prime}
\right)
The uncertainty associated with the estimator
\mathbf{g} \left( \hat{\boldsymbol{\theta}} \right)
is, therefore, given by
n^{-1} \mathbf{J} \boldsymbol{\Gamma} \mathbf{J}^{\prime}
.
When \boldsymbol{\Gamma}
is unknown,
by substitution,
we can use
the estimated sampling variance-covariance matrix of
\hat{\boldsymbol{\theta}}
,
that is,
\hat{\mathbb{V}} \left( \hat{\boldsymbol{\theta}} \right)
for n^{-1} \boldsymbol{\Gamma}
.
Therefore,
the sampling variance-covariance matrix of
\mathbf{g} \left( \hat{\boldsymbol{\theta}} \right)
is given by
\mathbf{g} \left( \hat{\boldsymbol{\theta}} \right)
\approx
\mathcal{N}
\left(
\mathbf{g} \left( \boldsymbol{\theta} \right)
,
\mathbf{J}
\hat{\mathbb{V}} \left( \hat{\boldsymbol{\theta}} \right)
\mathbf{J}^{\prime}
\right) .
Value
Returns an object
of class ctmeddelta
which is a list with the following elements:
- call
Function call.
- args
Function arguments.
- fun
Function used ("DeltaMedStd").
- output
A list the length of which is equal to the length of
delta_t
.
Each element in the output
list has the following elements:
- delta_t
Time interval.
- jacobian
Jacobian matrix.
- est
Estimated standardized total, direct, and indirect effects.
- vcov
Sampling variance-covariance matrix of the estimated standardized 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()
,
BootIndirectCentral()
,
BootMed()
,
BootMedStd()
,
BootTotalCentral()
,
DeltaBeta()
,
DeltaBetaStd()
,
DeltaIndirectCentral()
,
DeltaMed()
,
DeltaTotalCentral()
,
Direct()
,
DirectStd()
,
Indirect()
,
IndirectCentral()
,
IndirectStd()
,
MCBeta()
,
MCBetaStd()
,
MCIndirectCentral()
,
MCMed()
,
MCMedStd()
,
MCPhi()
,
MCPhiSigma()
,
MCTotalCentral()
,
Med()
,
MedStd()
,
PosteriorBeta()
,
PosteriorIndirectCentral()
,
PosteriorMed()
,
PosteriorTotalCentral()
,
Total()
,
TotalCentral()
,
TotalStd()
,
Trajectory()
Examples
phi <- matrix(
data = c(
-0.357, 0.771, -0.450,
0.0, -0.511, 0.729,
0, 0, -0.693
),
nrow = 3
)
colnames(phi) <- rownames(phi) <- c("x", "m", "y")
sigma <- matrix(
data = c(
0.24455556, 0.02201587, -0.05004762,
0.02201587, 0.07067800, 0.01539456,
-0.05004762, 0.01539456, 0.07553061
),
nrow = 3
)
vcov_theta <- matrix(
data = c(
0.00843, 0.00040, -0.00151, -0.00600, -0.00033,
0.00110, 0.00324, 0.00020, -0.00061, -0.00115,
0.00011, 0.00015, 0.00001, -0.00002, -0.00001,
0.00040, 0.00374, 0.00016, -0.00022, -0.00273,
-0.00016, 0.00009, 0.00150, 0.00012, -0.00010,
-0.00026, 0.00002, 0.00012, 0.00004, -0.00001,
-0.00151, 0.00016, 0.00389, 0.00103, -0.00007,
-0.00283, -0.00050, 0.00000, 0.00156, 0.00021,
-0.00005, -0.00031, 0.00001, 0.00007, 0.00006,
-0.00600, -0.00022, 0.00103, 0.00644, 0.00031,
-0.00119, -0.00374, -0.00021, 0.00070, 0.00064,
-0.00015, -0.00005, 0.00000, 0.00003, -0.00001,
-0.00033, -0.00273, -0.00007, 0.00031, 0.00287,
0.00013, -0.00014, -0.00170, -0.00012, 0.00006,
0.00014, -0.00001, -0.00015, 0.00000, 0.00001,
0.00110, -0.00016, -0.00283, -0.00119, 0.00013,
0.00297, 0.00063, -0.00004, -0.00177, -0.00013,
0.00005, 0.00017, -0.00002, -0.00008, 0.00001,
0.00324, 0.00009, -0.00050, -0.00374, -0.00014,
0.00063, 0.00495, 0.00024, -0.00093, -0.00020,
0.00006, -0.00010, 0.00000, -0.00001, 0.00004,
0.00020, 0.00150, 0.00000, -0.00021, -0.00170,
-0.00004, 0.00024, 0.00214, 0.00012, -0.00002,
-0.00004, 0.00000, 0.00006, -0.00005, -0.00001,
-0.00061, 0.00012, 0.00156, 0.00070, -0.00012,
-0.00177, -0.00093, 0.00012, 0.00223, 0.00004,
-0.00002, -0.00003, 0.00001, 0.00003, -0.00013,
-0.00115, -0.00010, 0.00021, 0.00064, 0.00006,
-0.00013, -0.00020, -0.00002, 0.00004, 0.00057,
0.00001, -0.00009, 0.00000, 0.00000, 0.00001,
0.00011, -0.00026, -0.00005, -0.00015, 0.00014,
0.00005, 0.00006, -0.00004, -0.00002, 0.00001,
0.00012, 0.00001, 0.00000, -0.00002, 0.00000,
0.00015, 0.00002, -0.00031, -0.00005, -0.00001,
0.00017, -0.00010, 0.00000, -0.00003, -0.00009,
0.00001, 0.00014, 0.00000, 0.00000, -0.00005,
0.00001, 0.00012, 0.00001, 0.00000, -0.00015,
-0.00002, 0.00000, 0.00006, 0.00001, 0.00000,
0.00000, 0.00000, 0.00010, 0.00001, 0.00000,
-0.00002, 0.00004, 0.00007, 0.00003, 0.00000,
-0.00008, -0.00001, -0.00005, 0.00003, 0.00000,
-0.00002, 0.00000, 0.00001, 0.00005, 0.00001,
-0.00001, -0.00001, 0.00006, -0.00001, 0.00001,
0.00001, 0.00004, -0.00001, -0.00013, 0.00001,
0.00000, -0.00005, 0.00000, 0.00001, 0.00012
),
nrow = 15
)
# Specific time interval ----------------------------------------------------
DeltaMedStd(
phi = phi,
sigma = sigma,
vcov_theta = vcov_theta,
delta_t = 1,
from = "x",
to = "y",
med = "m"
)
# Range of time intervals ---------------------------------------------------
delta <- DeltaMedStd(
phi = phi,
sigma = sigma,
vcov_theta = vcov_theta,
delta_t = 1:5,
from = "x",
to = "y",
med = "m"
)
plot(delta)
# Methods -------------------------------------------------------------------
# DeltaMedStd has a number of methods including
# print, summary, confint, and plot
print(delta)
summary(delta)
confint(delta, level = 0.95)
plot(delta)