Skip to contents

Bootstrap Percentile Confidence Intervals

Usage

BootCI(x, alpha = 0.05)

Arguments

x

Numeric matrix. Output of PBootVAROLS(), PBootVARLasso(), RBootVAROLS(), or RBootVARLasso().

alpha

Numeric. Significance level.

Value

A list with two elements, namely ll for the lower limit and ul for the upper limit.

See also

Other Simulation of Autoregressive Data Functions: BootSE(), SelectVARLasso(), SimVARExo(), SimVAR(), YXExo(), YX()

Author

Ivan Jacob Agaloos Pesigan

Examples

set.seed(42)
# Parametric bootstrap
system.time(
  pb <- PBootVAROLS(
    data = dat_p2,
    p = 2,
    B = 5,
    burn_in = 20
  )
)
#>    user  system elapsed 
#>   0.011   0.008   0.012 
pb$est
#>           [,1]        [,2]        [,3]        [,4]        [,5]         [,6]
#> [1,] 0.7899726  0.36836768 0.008539283  0.02231498  0.11338780  0.024505442
#> [2,] 1.0001995  0.01334496 0.481949237 -0.01730029 -0.03223315  0.234373552
#> [3,] 1.0666814 -0.03022951 0.014945306  0.60741736 -0.01610408 -0.006149189
#>             [,7]
#> [1,] -0.01143384
#> [2,]  0.01815779
#> [3,]  0.29620975
BootCI(pb)
#> $ll
#>           [,1]        [,2]        [,3]        [,4]        [,5]        [,6]
#> [1,] 0.3751652  0.33712892  0.01200402  0.00279329  0.04442785 -0.03098541
#> [2,] 0.6421709 -0.02025390  0.47338277 -0.05733931 -0.06480672  0.20623286
#> [3,] 0.9691446 -0.06748594 -0.02553769  0.56380550 -0.03980165 -0.04740840
#>             [,7]
#> [1,] -0.06409803
#> [2,] -0.00302273
#> [3,]  0.28132708
#> 
#> $ul
#>          [,1]        [,2]       [,3]       [,4]       [,5]        [,6]
#> [1,] 1.246789  0.39467111 0.08226922 0.06887043 0.16005009 0.060882554
#> [2,] 1.153157  0.02942401 0.51481932 0.02522485 0.01050647 0.273328947
#> [3,] 1.528141 -0.03584411 0.07620323 0.61472119 0.06057578 0.005906998
#>            [,7]
#> [1,] 0.01249539
#> [2,] 0.05478870
#> [3,] 0.31188632
#> 
system.time(
  pb <- PBootVARLasso(
    data = dat_p2,
    p = 2,
    B = 5,
    burn_in = 20,
    n_lambdas = 50,
    crit = "ebic",
    max_iter = 1000,
    tol = 1e-5
  )
)
#>    user  system elapsed 
#>   3.684   1.288   2.506 
pb$est
#>           [,1]    [,2]      [,3]      [,4]       [,5]      [,6]      [,7]
#> [1,] 0.7899726 0.34043 0.0000000 0.0000000 0.08292061 0.0000000 0.0000000
#> [2,] 1.0001995 0.00000 0.4555224 0.0000000 0.00000000 0.2105309 0.0000000
#> [3,] 1.0666814 0.00000 0.0000000 0.5866893 0.00000000 0.0000000 0.2722931
BootCI(pb)
#> $ll
#>           [,1]      [,2]      [,3]      [,4]        [,5]      [,6]      [,7]
#> [1,] 0.5624983 0.2410176 0.0000000 0.0000000 0.005101191 0.0000000 0.0000000
#> [2,] 0.8517844 0.0000000 0.3986863 0.0000000 0.000000000 0.1275153 0.0000000
#> [3,] 0.9336339 0.0000000 0.0000000 0.5209768 0.000000000 0.0000000 0.2097793
#> 
#> $ul
#>          [,1]      [,2]      [,3]      [,4]       [,5]      [,6]      [,7]
#> [1,] 1.084789 0.3039211 0.0000000 0.0000000 0.07828995 0.0000000 0.0000000
#> [2,] 1.012903 0.0000000 0.4604396 0.0000000 0.00000000 0.2415848 0.0000000
#> [3,] 1.220257 0.0000000 0.0000000 0.5867797 0.00000000 0.0000000 0.2737353
#> 

# Residual bootstrap
system.time(
  rb <- RBootVAROLS(
    data = dat_p2,
    p = 2,
    B = 5
  )
)
#>    user  system elapsed 
#>   0.003   0.000   0.002 
rb$est
#>           [,1]        [,2]        [,3]        [,4]        [,5]         [,6]
#> [1,] 0.7899726  0.36836768 0.008539283  0.02231498  0.11338780  0.024505442
#> [2,] 1.0001995  0.01334496 0.481949237 -0.01730029 -0.03223315  0.234373552
#> [3,] 1.0666814 -0.03022951 0.014945306  0.60741736 -0.01610408 -0.006149189
#>             [,7]
#> [1,] -0.01143384
#> [2,]  0.01815779
#> [3,]  0.29620975
BootCI(rb)
#> $ll
#>           [,1]        [,2]        [,3]        [,4]        [,5]         [,6]
#> [1,] 0.5688165  0.33903820 -0.02360324 -0.01307731  0.05884791  0.005473674
#> [2,] 0.8811050 -0.02403041  0.46308639 -0.05150509 -0.05433481  0.211732645
#> [3,] 0.8792789 -0.07343574 -0.02899892  0.58984707 -0.03455137 -0.061623536
#>             [,7]
#> [1,] -0.04084897
#> [2,] -0.02329812
#> [3,]  0.25749914
#> 
#> $ul
#>           [,1]        [,2]       [,3]       [,4]        [,5]       [,6]
#> [1,] 0.8924282  0.40821675 0.04694949 0.05265298  0.12978586 0.02521666
#> [2,] 1.2586674  0.03767657 0.50485906 0.01434738 -0.01635761 0.25314248
#> [3,] 1.3702937 -0.01388036 0.08017799 0.62746863  0.03473791 0.01201643
#>            [,7]
#> [1,] 0.01890011
#> [2,] 0.04786951
#> [3,] 0.32637053
#> 
system.time(
  rb <- RBootVARLasso(
    data = dat_p2,
    p = 2,
    B = 5,
    n_lambdas = 50,
    crit = "ebic",
    max_iter = 1000,
    tol = 1e-5
  )
)
#>    user  system elapsed 
#>   4.544   1.474   3.026 
rb$est
#>           [,1]    [,2]      [,3]      [,4]       [,5]      [,6]      [,7]
#> [1,] 0.7899726 0.34043 0.0000000 0.0000000 0.08292061 0.0000000 0.0000000
#> [2,] 1.0001995 0.00000 0.4555224 0.0000000 0.00000000 0.2105309 0.0000000
#> [3,] 1.0666814 0.00000 0.0000000 0.5866893 0.00000000 0.0000000 0.2722931
BootCI(rb)
#> $ll
#>           [,1]      [,2]      [,3]      [,4]       [,5]     [,6]      [,7]
#> [1,] 0.8480322 0.3265286 0.0000000 0.0000000 0.07953458 0.000000 0.0000000
#> [2,] 0.8403051 0.0000000 0.4211115 0.0000000 0.00000000 0.194627 0.0000000
#> [3,] 1.2115688 0.0000000 0.0000000 0.5580947 0.00000000 0.000000 0.2590219
#> 
#> $ul
#>          [,1]      [,2]      [,3]      [,4]       [,5]     [,6]     [,7]
#> [1,] 1.412892 0.3369921 0.0000000 0.0000000 0.08208324 0.000000 0.000000
#> [2,] 1.545257 0.0000000 0.4559922 0.0000000 0.00000000 0.210748 0.000000
#> [3,] 1.673521 0.0000000 0.0000000 0.5724533 0.00000000 0.000000 0.265686
#>