Skip to contents

Carries out the Bayes risk optimal test of the composite null "\(\delta_x \times \delta_y=0\)" against its alternative "\(\delta_x \times \delta_y\neq 0\)" based on the test statistic in the real plane.

Usage

mediation_test_Bayes(t, map, truncation = 0)

Arguments

t

A vector consisting of two numerics, the test statistic in the real plane, or a 'n x 2' matrix of such test statistics.

map

The "map" of rejection probabilities – the 'map' item of the output of function compute_map_rejection_probs.

truncation

A nonnegative numeric used to bound the rejection region away from the null hypothesis space. Defaults to 0, in which case the rejection region is minimax optimal.

Value

A list, consisting of:

t:

a vector of two numerics, the test statistic, or a 'n x 2' matrix of such test statistics;

alpha:

a numeric, the type-I error;

truncation:

a nonnegative numeric, used to bound the rejection region away from the null hypothesis space

decision:

a vector of logicals, FALSE if the null hypothesis can be rejected for the alternative at level 'alpha' and TRUE otherwise;

pval:

a vector of numerics, the p-values of the tests, 'NA' in this case;

method:

the character "Bayes";

map:

The "map" of rejection probabilities – the 'map' item of the output of function compute_map_rejection_probs.

Details

For details, we refer to the technical report "Optimal Tests of the Composite Null Hypothesis Arising in Mediation Analysis", by Miles & Chambaz (2024), https://arxiv.org/abs/2107.07575

Examples

n <- 10
x <- MASS::mvrnorm(2 * n, mu = c(0, 0), Sigma = diag(c(1, 1)))
delta <- matrix(stats::runif(4 * n, min = -3, max = 3), ncol = 2)
epsilon <- stats::rbinom(n, 1, 1/2)
delta <- delta * cbind(c(epsilon, rep(1, n)),
                       c(1 - epsilon, rep(1, n)))
x <- x + delta
(mt_01_0.05 <- mediation_test_Bayes(x, map = map_01_0.05))
#> Testing the composite null 'delta_x * delta_y = 0' against its alternative 'delta_x * delta_y != 0':
#> * method:
#> Bayes 
#> * test statictic:
#>            [,1]         [,2]
#> [1,] -0.3006522 -1.400043517
#> [2,]  0.2408739  0.255317055
#> [3,]  1.3045435 -3.013797599
#> [4,] -1.9974754 -0.005571287
#> [5,] -2.0080539  0.621552721
#> [6,]  0.0974451  2.161636093
#> ...
#> * wished type-I error:
#> [1] 0.05
#> * loss function:
#> [1] "0-1"
#> * user-supplied truncation parameter:
#> [1] 0
#> * decision [1 rejection(s) overall]: 
#> cannot reject the null for its alternative with confidence 0.050
#>  cannot reject the null for its alternative with confidence 0.050
#>  cannot reject the null for its alternative with confidence 0.050
#>  cannot reject the null for its alternative with confidence 0.050
#>  cannot reject the null for its alternative with confidence 0.050
#>  cannot reject the null for its alternative with confidence 0.050
#> ...
#> * (conservative) p-value:
#> [1] NA
#> ...
plot(mt_01_0.05)


(mt_quad_0.05_0.1 <- mediation_test_Bayes(x, map = map_quad_0.05_0.1))
#> Testing the composite null 'delta_x * delta_y = 0' against its alternative 'delta_x * delta_y != 0':
#> * method:
#> Bayes 
#> * test statictic:
#>            [,1]         [,2]
#> [1,] -0.3006522 -1.400043517
#> [2,]  0.2408739  0.255317055
#> [3,]  1.3045435 -3.013797599
#> [4,] -1.9974754 -0.005571287
#> [5,] -2.0080539  0.621552721
#> [6,]  0.0974451  2.161636093
#> ...
#> * wished type-I error:
#> [1] 0.05
#> * loss function:
#> [1] "quadratic"
#> * user-supplied truncation parameter:
#> [1] 0
#> warning: used a truncation parameter (0.000) different from the map's truncation parameter (0.100)
#> * decision [2 rejection(s) overall]: 
#> cannot reject the null for its alternative with confidence 0.050
#>  can reject the null for its alternative with confidence 0.050
#>  cannot reject the null for its alternative with confidence 0.050
#>  cannot reject the null for its alternative with confidence 0.050
#>  cannot reject the null for its alternative with confidence 0.050
#>  cannot reject the null for its alternative with confidence 0.050
#> ...
#> * (conservative) p-value:
#> [1] NA
#> ...
plot(mt_quad_0.05_0.1)