Skip to contents

This function generates a bootstrap method sampling distribution for the elements of the standardized matrix of lagged coefficients \(\boldsymbol{\beta}\) 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

BootBetaStd(phi, sigma, phi_hat, sigma_hat, delta_t, ncores = NULL, tol = 0.01)

Arguments

phi

List of numeric matrices. Each element of the list is a bootstrap estimate of the drift matrix (\(\boldsymbol{\Phi}\)).

sigma

List of numeric matrices. Each element of the list is a bootstrap estimate of the process noise covariance matrix (\(\boldsymbol{\Sigma}\)).

phi_hat

Numeric matrix. The estimated drift matrix (\(\hat{\boldsymbol{\Phi}}\)) from the original data set. phi_hat should have row and column names pertaining to the variables in the system.

sigma_hat

Numeric matrix. The estimated process noise covariance matrix (\(\hat{\boldsymbol{\Sigma}}\)) from the original data set.

delta_t

Numeric. Time interval (\(\Delta t\)).

ncores

Positive integer. Number of cores to use. If ncores = NULL, use a single core. Consider using multiple cores when number of replications R is a large value.

tol

Numeric. Smallest possible time interval to allow.

Value

Returns an object of class ctmedboot which is a list with the following elements:

call

Function call.

args

Function arguments.

fun

Function used ("BootBetaStd").

output

A list with length of length(delta_t).

Each element in the output list has the following elements:

est

Estimated elements of the standardized matrix of lagged coefficients.

thetahatstar

A matrix of bootstrap elements of the standardized matrix of lagged coefficients.

Details

See TotalStd().

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

Author

Ivan Jacob Agaloos Pesigan

Examples

# \donttest{
library(bootStateSpace)
# 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 = 10L, # use at least 1000 in actual research
  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 = NULL, # consider using multiple cores
  seed = 42
)
phi_hat <- phi
colnames(phi_hat) <- rownames(phi_hat) <- c("x", "m", "y")
sigma_hat <- sigma
phi <- extract(object = boot, what = "phi")
sigma <- extract(object = boot, what = "sigma")

# Specific time interval ----------------------------------------------------
BootBetaStd(
  phi = phi,
  sigma = sigma,
  phi_hat = phi_hat,
  sigma_hat = sigma_hat,
  delta_t = 1
)
#> 
#> Total, Direct, and Indirect Effects
#> type = pc
#> $`1`
#>             interval     est     se  R    2.5%   97.5%
#> from x to x        1  0.6998 0.0462 10  0.6266  0.7449
#> from x to m        1  0.3888 0.0195 10  0.3519  0.4120
#> from x to y        1 -0.1069 0.0146 10 -0.1388 -0.0966
#> from m to x        1  0.0000 0.0607 10 -0.0633  0.1097
#> from m to m        1  0.5999 0.0277 10  0.5667  0.6537
#> from m to y        1  0.5494 0.0196 10  0.5280  0.5823
#> from y to x        1  0.0000 0.0379 10 -0.0687  0.0476
#> from y to m        1  0.0000 0.0200 10 -0.0264  0.0323
#> from y to y        1  0.5001 0.0157 10  0.4886  0.5323
#> 

# Range of time intervals ---------------------------------------------------
boot <- BootBetaStd(
  phi = phi,
  sigma = sigma,
  phi_hat = phi_hat,
  sigma_hat = sigma_hat,
  delta_t = 1:5
)
plot(boot)









#> NULL
plot(boot, type = "bc") # bias-corrected









#> NULL

# Methods -------------------------------------------------------------------
# BootBetaStd has a number of methods including
# print, summary, confint, and plot
print(boot)
#> 
#> Total, Direct, and Indirect Effects
#> type = pc
#> $`1`
#>             interval     est     se  R    2.5%   97.5%
#> from x to x        1  0.6998 0.0462 10  0.6266  0.7449
#> from x to m        1  0.3888 0.0195 10  0.3519  0.4120
#> from x to y        1 -0.1069 0.0146 10 -0.1388 -0.0966
#> from m to x        1  0.0000 0.0607 10 -0.0633  0.1097
#> from m to m        1  0.5999 0.0277 10  0.5667  0.6537
#> from m to y        1  0.5494 0.0196 10  0.5280  0.5823
#> from y to x        1  0.0000 0.0379 10 -0.0687  0.0476
#> from y to m        1  0.0000 0.0200 10 -0.0264  0.0323
#> from y to y        1  0.5001 0.0157 10  0.4886  0.5323
#> 
#> $`2`
#>             interval    est     se  R    2.5%  97.5%
#> from x to x        2 0.4897 0.0483 10  0.4098 0.5591
#> from x to m        2 0.5053 0.0258 10  0.4619 0.5289
#> from x to y        2 0.0854 0.0170 10  0.0435 0.0934
#> from m to x        2 0.0000 0.0632 10 -0.0603 0.1075
#> from m to m        2 0.3599 0.0460 10  0.3184 0.4541
#> from m to y        2 0.6044 0.0217 10  0.5844 0.6503
#> from y to x        2 0.0000 0.0465 10 -0.0841 0.0600
#> from y to m        2 0.0000 0.0322 10 -0.0508 0.0405
#> from y to y        2 0.2501 0.0190 10  0.2345 0.2841
#> 
#> $`3`
#>             interval    est     se  R    2.5%  97.5%
#> from x to x        3 0.3427 0.0463 10  0.2751 0.4257
#> from x to m        3 0.4936 0.0310 10  0.4390 0.5293
#> from x to y        3 0.2680 0.0175 10  0.2321 0.2816
#> from m to x        3 0.0000 0.0518 10 -0.0592 0.0783
#> from m to m        3 0.2159 0.0528 10  0.1761 0.3210
#> from m to y        3 0.4999 0.0314 10  0.4755 0.5617
#> from y to x        3 0.0000 0.0435 10 -0.0800 0.0559
#> from y to m        3 0.0000 0.0395 10 -0.0690 0.0401
#> from y to y        3 0.1251 0.0217 10  0.0991 0.1646
#> 
#> $`4`
#>             interval    est     se  R    2.5%  97.5%
#> from x to x        4 0.2398 0.0451 10  0.1818 0.3288
#> from x to m        4 0.4293 0.0370 10  0.3675 0.4865
#> from x to y        4 0.3686 0.0193 10  0.3339 0.3881
#> from m to x        4 0.0000 0.0407 10 -0.0597 0.0535
#> from m to m        4 0.1295 0.0508 10  0.0907 0.2251
#> from m to y        4 0.3686 0.0420 10  0.3379 0.4582
#> from y to x        4 0.0000 0.0366 10 -0.0691 0.0460
#> from y to m        4 0.0000 0.0417 10 -0.0760 0.0425
#> from y to y        4 0.0625 0.0266 10  0.0262 0.1026
#> 
#> $`5`
#>             interval    est     se  R    2.5%  97.5%
#> from x to x        5 0.1678 0.0436 10  0.1193 0.2574
#> from x to m        5 0.3508 0.0418 10  0.2884 0.4258
#> from x to y        5 0.3946 0.0256 10  0.3507 0.4268
#> from m to x        5 0.0000 0.0327 10 -0.0543 0.0472
#> from m to m        5 0.0777 0.0448 10  0.0312 0.1541
#> from m to y        5 0.2555 0.0473 10  0.2231 0.3556
#> from y to x        5 0.0000 0.0292 10 -0.0566 0.0356
#> from y to m        5 0.0000 0.0400 10 -0.0749 0.0424
#> from y to y        5 0.0313 0.0316 10 -0.0151 0.0702
#> 
summary(boot)
#>         effect interval         est         se  R        2.5%       97.5%
#> 1  from x to x        1  0.69977250 0.04619127 10  0.62664729  0.74488486
#> 2  from x to m        1  0.38882458 0.01953200 10  0.35192260  0.41196871
#> 3  from x to y        1 -0.10689374 0.01457125 10 -0.13880829 -0.09659607
#> 4  from m to x        1  0.00000000 0.06073521 10 -0.06327065  0.10973835
#> 5  from m to m        1  0.59989538 0.02765981 10  0.56673562  0.65366698
#> 6  from m to y        1  0.54943087 0.01959638 10  0.52803574  0.58233071
#> 7  from y to x        1  0.00000000 0.03787384 10 -0.06873165  0.04761192
#> 8  from y to m        1  0.00000000 0.02001758 10 -0.02637969  0.03232691
#> 9  from y to y        1  0.50007360 0.01565101 10  0.48863283  0.53227519
#> 10 from x to x        2  0.48968155 0.04829663 10  0.40983641  0.55913746
#> 11 from x to m        2  0.50534282 0.02575878 10  0.46193376  0.52888562
#> 12 from x to y        2  0.08537619 0.01700774 10  0.04354753  0.09341637
#> 13 from m to x        2  0.00000000 0.06319950 10 -0.06032399  0.10754010
#> 14 from m to m        2  0.35987447 0.04599063 10  0.31838726  0.45406311
#> 15 from m to y        2  0.60435691 0.02171170 10  0.58439252  0.65028159
#> 16 from y to x        2  0.00000000 0.04647087 10 -0.08413189  0.05999413
#> 17 from y to m        2  0.00000000 0.03217811 10 -0.05083871  0.04051302
#> 18 from y to y        2  0.25007360 0.01902263 10  0.23452458  0.28407525
#> 19 from x to x        3  0.34266568 0.04625981 10  0.27505399  0.42572708
#> 20 from x to m        3  0.49355305 0.03103092 10  0.43895164  0.52930052
#> 21 from x to y        3  0.26800143 0.01745794 10  0.23207899  0.28160738
#> 22 from m to x        3  0.00000000 0.05182109 10 -0.05918328  0.07830911
#> 23 from m to m        3  0.21588703 0.05277420 10  0.17613732  0.32096736
#> 24 from m to y        3  0.49994907 0.03139241 10  0.47550794  0.56172186
#> 25 from y to x        3  0.00000000 0.04348248 10 -0.07996313  0.05587793
#> 26 from y to m        3  0.00000000 0.03946218 10 -0.06895052  0.04010770
#> 27 from y to y        3  0.12505520 0.02167084 10  0.09906528  0.16456126
#> 28 from x to x        4  0.23978802 0.04513966 10  0.18178975  0.32883844
#> 29 from x to m        4  0.42931704 0.03695914 10  0.36749533  0.48650604
#> 30 from x to y        4  0.36856490 0.01930721 10  0.33393489  0.38807816
#> 31 from m to x        4  0.00000000 0.04073720 10 -0.05974959  0.05349997
#> 32 from m to m        4  0.12950963 0.05084755 10  0.09070564  0.22505825
#> 33 from m to y        4  0.36862633 0.04200164 10  0.33793529  0.45816980
#> 34 from y to x        4  0.00000000 0.03662466 10 -0.06907511  0.04599363
#> 35 from y to m        4  0.00000000 0.04169767 10 -0.07602732  0.04248917
#> 36 from y to y        4  0.06253681 0.02659062 10  0.02623799  0.10262406
#> 37 from x to x        5  0.16779706 0.04357748 10  0.11929314  0.25743403
#> 38 from x to m        5  0.35078078 0.04177679 10  0.28840681  0.42580094
#> 39 from x to y        5  0.39455777 0.02561384 10  0.35066697  0.42679774
#> 40 from m to x        5  0.00000000 0.03265503 10 -0.05429124  0.04717457
#> 41 from m to m        5  0.07769223 0.04484591 10  0.03122999  0.15411818
#> 42 from m to y        5  0.25549689 0.04730258 10  0.22314751  0.35557278
#> 43 from y to x        5  0.00000000 0.02922062 10 -0.05661103  0.03561911
#> 44 from y to m        5  0.00000000 0.03997566 10 -0.07487553  0.04242042
#> 45 from y to y        5  0.03127301 0.03156750 10 -0.01509265  0.07019373
confint(boot, level = 0.95)
#>         effect interval       2.5 %      97.5 %
#> 1  from x to x        1  0.62664729  0.74488486
#> 2  from x to m        1  0.35192260  0.41196871
#> 3  from x to y        1 -0.13880829 -0.09659607
#> 4  from x to x        2  0.40983641  0.55913746
#> 5  from x to m        2  0.46193376  0.52888562
#> 6  from x to y        2  0.04354753  0.09341637
#> 7  from x to x        3  0.27505399  0.42572708
#> 8  from x to m        3  0.43895164  0.52930052
#> 9  from x to y        3  0.23207899  0.28160738
#> 10 from x to x        4  0.18178975  0.32883844
#> 11 from x to m        4  0.36749533  0.48650604
#> 12 from x to y        4  0.33393489  0.38807816
#> 13 from x to x        5  0.11929314  0.25743403
#> 14 from x to m        5  0.28840681  0.42580094
#> 15 from x to y        5  0.35066697  0.42679774
print(boot, type = "bc") # bias-corrected
#> 
#> Total, Direct, and Indirect Effects
#> type = bc
#> $`1`
#>             interval     est     se  R    2.5%   97.5%
#> from x to x        1  0.6998 0.0462 10  0.6247  0.7391
#> from x to m        1  0.3888 0.0195 10  0.3620  0.4135
#> from x to y        1 -0.1069 0.0146 10 -0.1156 -0.0966
#> from m to x        1  0.0000 0.0607 10 -0.0633  0.1097
#> from m to m        1  0.5999 0.0277 10  0.5653  0.6134
#> from m to y        1  0.5494 0.0196 10  0.5280  0.5823
#> from y to x        1  0.0000 0.0379 10 -0.0687  0.0476
#> from y to m        1  0.0000 0.0200 10 -0.0243  0.0355
#> from y to y        1  0.5001 0.0157 10  0.4886  0.5323
#> 
#> $`2`
#>             interval    est     se  R    2.5%  97.5%
#> from x to x        2 0.4897 0.0483 10  0.3995 0.5203
#> from x to m        2 0.5053 0.0258 10  0.4619 0.5289
#> from x to y        2 0.0854 0.0170 10  0.0711 0.0945
#> from m to x        2 0.0000 0.0632 10 -0.0598 0.1086
#> from m to m        2 0.3599 0.0460 10  0.3177 0.4386
#> from m to y        2 0.6044 0.0217 10  0.5804 0.6336
#> from y to x        2 0.0000 0.0465 10 -0.0841 0.0600
#> from y to m        2 0.0000 0.0322 10 -0.0508 0.0405
#> from y to y        2 0.2501 0.0190 10  0.2339 0.2829
#> 
#> $`3`
#>             interval    est     se  R    2.5%  97.5%
#> from x to x        3 0.3427 0.0463 10  0.2607 0.3854
#> from x to m        3 0.4936 0.0310 10  0.4303 0.5197
#> from x to y        3 0.2680 0.0175 10  0.2652 0.2856
#> from m to x        3 0.0000 0.0518 10 -0.0557 0.0783
#> from m to m        3 0.2159 0.0528 10  0.1761 0.3210
#> from m to y        3 0.4999 0.0314 10  0.4751 0.5440
#> from y to x        3 0.0000 0.0435 10 -0.0800 0.0559
#> from y to m        3 0.0000 0.0395 10 -0.0690 0.0401
#> from y to y        3 0.1251 0.0217 10  0.0990 0.1432
#> 
#> $`4`
#>             interval    est     se  R    2.5%  97.5%
#> from x to x        4 0.2398 0.0451 10  0.1710 0.2551
#> from x to m        4 0.4293 0.0370 10  0.3537 0.4512
#> from x to y        4 0.3686 0.0193 10  0.3357 0.3882
#> from m to x        4 0.0000 0.0407 10 -0.0494 0.0537
#> from m to m        4 0.1295 0.0508 10  0.0907 0.2251
#> from m to y        4 0.3686 0.0420 10  0.3361 0.4247
#> from y to x        4 0.0000 0.0366 10 -0.0691 0.0460
#> from y to m        4 0.0000 0.0417 10 -0.0760 0.0425
#> from y to y        4 0.0625 0.0266 10  0.0246 0.0917
#> 
#> $`5`
#>             interval    est     se  R    2.5%  97.5%
#> from x to x        5 0.1678 0.0436 10  0.1135 0.2148
#> from x to m        5 0.3508 0.0418 10  0.2717 0.3772
#> from x to y        5 0.3946 0.0256 10  0.3440 0.4258
#> from m to x        5 0.0000 0.0327 10 -0.0543 0.0472
#> from m to m        5 0.0777 0.0448 10  0.0412 0.1572
#> from m to y        5 0.2555 0.0473 10  0.2231 0.3556
#> from y to x        5 0.0000 0.0292 10 -0.0566 0.0356
#> from y to m        5 0.0000 0.0400 10 -0.0749 0.0424
#> from y to y        5 0.0313 0.0316 10 -0.0152 0.0641
#> 
summary(boot, type = "bc")
#>         effect interval         est         se  R        2.5%       97.5%
#> 1  from x to x        1  0.69977250 0.04619127 10  0.62468140  0.73907982
#> 2  from x to m        1  0.38882458 0.01953200 10  0.36196513  0.41348562
#> 3  from x to y        1 -0.10689374 0.01457125 10 -0.11556785 -0.09656559
#> 4  from m to x        1  0.00000000 0.06073521 10 -0.06327065  0.10973835
#> 5  from m to m        1  0.59989538 0.02765981 10  0.56533542  0.61343471
#> 6  from m to y        1  0.54943087 0.01959638 10  0.52803574  0.58233071
#> 7  from y to x        1  0.00000000 0.03787384 10 -0.06873165  0.04761192
#> 8  from y to m        1  0.00000000 0.02001758 10 -0.02431892  0.03549856
#> 9  from y to y        1  0.50007360 0.01565101 10  0.48863283  0.53227519
#> 10 from x to x        2  0.48968155 0.04829663 10  0.39951058  0.52029002
#> 11 from x to m        2  0.50534282 0.02575878 10  0.46193376  0.52888562
#> 12 from x to y        2  0.08537619 0.01700774 10  0.07107420  0.09450813
#> 13 from m to x        2  0.00000000 0.06319950 10 -0.05983589  0.10862932
#> 14 from m to m        2  0.35987447 0.04599063 10  0.31766332  0.43855897
#> 15 from m to y        2  0.60435691 0.02171170 10  0.58044349  0.63358360
#> 16 from y to x        2  0.00000000 0.04647087 10 -0.08413189  0.05999413
#> 17 from y to m        2  0.00000000 0.03217811 10 -0.05083871  0.04051302
#> 18 from y to y        2  0.25007360 0.01902263 10  0.23392510  0.28285536
#> 19 from x to x        3  0.34266568 0.04625981 10  0.26069578  0.38535308
#> 20 from x to m        3  0.49355305 0.03103092 10  0.43031824  0.51967621
#> 21 from x to y        3  0.26800143 0.01745794 10  0.26519763  0.28556434
#> 22 from m to x        3  0.00000000 0.05182109 10 -0.05567422  0.07831864
#> 23 from m to m        3  0.21588703 0.05277420 10  0.17613732  0.32096736
#> 24 from m to y        3  0.49994907 0.03139241 10  0.47505535  0.54396596
#> 25 from y to x        3  0.00000000 0.04348248 10 -0.07996313  0.05587793
#> 26 from y to m        3  0.00000000 0.03946218 10 -0.06895052  0.04010770
#> 27 from y to y        3  0.12505520 0.02167084 10  0.09901812  0.14317853
#> 28 from x to x        4  0.23978802 0.04513966 10  0.17104675  0.25509649
#> 29 from x to m        4  0.42931704 0.03695914 10  0.35373868  0.45122545
#> 30 from x to y        4  0.36856490 0.01930721 10  0.33570845  0.38818799
#> 31 from m to x        4  0.00000000 0.04073720 10 -0.04944208  0.05367381
#> 32 from m to m        4  0.12950963 0.05084755 10  0.09070564  0.22505825
#> 33 from m to y        4  0.36862633 0.04200164 10  0.33610820  0.42472686
#> 34 from y to x        4  0.00000000 0.03662466 10 -0.06907511  0.04599363
#> 35 from y to m        4  0.00000000 0.04169767 10 -0.07602732  0.04248917
#> 36 from y to y        4  0.06253681 0.02659062 10  0.02457317  0.09166099
#> 37 from x to x        5  0.16779706 0.04357748 10  0.11350347  0.21483344
#> 38 from x to m        5  0.35078078 0.04177679 10  0.27173887  0.37722926
#> 39 from x to y        5  0.39455777 0.02561384 10  0.34399803  0.42575955
#> 40 from m to x        5  0.00000000 0.03265503 10 -0.05429124  0.04717457
#> 41 from m to m        5  0.07769223 0.04484591 10  0.04123419  0.15717775
#> 42 from m to y        5  0.25549689 0.04730258 10  0.22314751  0.35557278
#> 43 from y to x        5  0.00000000 0.02922062 10 -0.05661103  0.03561911
#> 44 from y to m        5  0.00000000 0.03997566 10 -0.07487553  0.04242042
#> 45 from y to y        5  0.03127301 0.03156750 10 -0.01516323  0.06407193
confint(boot, level = 0.95, type = "bc")
#>         effect interval      2.5 %      97.5 %
#> 1  from x to x        1  0.6246814  0.73907982
#> 2  from x to m        1  0.3619651  0.41348562
#> 3  from x to y        1 -0.1155678 -0.09656559
#> 4  from x to x        2  0.3995106  0.52029002
#> 5  from x to m        2  0.4619338  0.52888562
#> 6  from x to y        2  0.0710742  0.09450813
#> 7  from x to x        3  0.2606958  0.38535308
#> 8  from x to m        3  0.4303182  0.51967621
#> 9  from x to y        3  0.2651976  0.28556434
#> 10 from x to x        4  0.1710467  0.25509649
#> 11 from x to m        4  0.3537387  0.45122545
#> 12 from x to y        4  0.3357085  0.38818799
#> 13 from x to x        5  0.1135035  0.21483344
#> 14 from x to m        5  0.2717389  0.37722926
#> 15 from x to y        5  0.3439980  0.42575955
# }