Skip to contents

Zhang et al. (2020)'s test for testing equality of two-sample high-dimensional mean vectors with assuming that two covariance matrices are the same.

Usage

ts_zgzc2020(y1, y2)

Arguments

y1

The data matrix (\(p\) by \(n_1\)) from the first population. Each column represents a \(p\)-dimensional observation.

y2

The data matrix (\(p\) by \(n_2\)) from the first population. Each column represents a \(p\)-dimensional observation.

Value

A (list) object of S3 class htest containing the following elements:

p.value

the p-value of the test proposed by Zhang et al. (2020).

statistic

the test statistic proposed by Zhang et al. (2020).

beta

parameter used in Zhang et al. (2020)'s test.

df

estimated approximate degrees of freedom of Zhang et al. (2020)'s test.

Details

Suppose we have two independent high-dimensional samples: $$ \boldsymbol{y}_{i1},\ldots,\boldsymbol{y}_{in_i}, \;\operatorname{are \; i.i.d. \; with}\; \operatorname{E}(\boldsymbol{y}_{i1})=\boldsymbol{\mu}_i,\; \operatorname{Cov}(\boldsymbol{y}_{i1})=\boldsymbol{\Sigma},i=1,2. $$ The primary object is to test $$H_{0}: \boldsymbol{\mu}_1 = \boldsymbol{\mu}_2\; \operatorname{versus}\; H_{1}: \boldsymbol{\mu}_1 \neq \boldsymbol{\mu}_2.$$ Zhang et al.(2020) proposed the following test statistic: $$T_{ZGZC} = \frac{n_1n_2}{n} \|\bar{\boldsymbol{y}}_1 - \bar{\boldsymbol{y}}_2\|^2,$$ where \(\bar{\boldsymbol{y}}_{i},i=1,2\) are the sample mean vectors. They showed that under the null hypothesis, \(T_{ZGZC}\) and a chi-squared-type mixture have the same normal or non-normal limiting distribution.

References

Zhang J, Guo J, Zhou B, Cheng M (2020). “A simple two-sample test in high dimensions based on L 2-norm.” Journal of the American Statistical Association, 115(530), 1011--1027. doi:10.1080/01621459.2019.1604366 .

Examples

set.seed(1234)
n1 <- 20
n2 <- 30
p <- 50
mu1 <- t(t(rep(0, p)))
mu2 <- mu1
rho <- 0.1
y <- (-2 * sqrt(1 - rho) + sqrt(4 * (1 - rho) + 4 * p * rho)) / (2 * p)
x <- y + sqrt((1 - rho))
Gamma <- matrix(rep(y, p * p), nrow = p)
diag(Gamma) <- rep(x, p)
Z1 <- matrix(rnorm(n1 * p, mean = 0, sd = 1), p, n1)
Z2 <- matrix(rnorm(n2 * p, mean = 0, sd = 1), p, n2)
y1 <- Gamma %*% Z1 + mu1 %*% (rep(1, n1))
y2 <- Gamma %*% Z2 + mu2 %*% (rep(1, n2))
ts_zgzc2020(y1, y2)
#> 
#> 
#> 
#> data:  
#> statistic = 50.938, df = 35.3345, beta = 1.4268, p-value = 0.4512
#>