R/mean2.2011LJW.R
mean2.2011LJW.Rd
Given two multivariate data \(X\) and \(Y\) of same dimension, it tests $$H_0 : \mu_x = \mu_y\quad vs\quad H_1 : \mu_x \neq \mu_y$$ using the procedure by Lopes, Jacob, and Wainwright (2011) using random projection. Due to solving system of linear equations, we suggest you to opt for asymptotic-based \(p\)-value computation unless truly necessary for random permutation tests.
mean2.2011LJW(X, Y, method = c("asymptotic", "MC"), nreps = 1000)
an \((n_x \times p)\) data matrix of 1st sample.
an \((n_y \times p)\) data matrix of 2nd sample.
method to compute \(p\)-value. "asymptotic"
for using approximating null distribution,
and "MC"
for random permutation tests. Using initials is possible, "a"
for asymptotic for example.
the number of permutation iterations to be run when method="MC"
.
a (list) object of S3
class htest
containing:
a test statistic.
\(p\)-value under \(H_0\).
alternative hypothesis.
name of the test.
name(s) of provided sample data.
Lopes ME, Jacob L, Wainwright MJ (2011). “A More Powerful Two-sample Test in High Dimensions Using Random Projection.” In Proceedings of the 24th International Conference on Neural Information Processing Systems, NIPS'11, 1206--1214. ISBN 978-1-61839-599-3.
## CRAN-purpose small example
smallX = matrix(rnorm(10*3),ncol=10)
smallY = matrix(rnorm(10*3),ncol=10)
mean2.2011LJW(smallX, smallY) # run the test
#>
#> Two-sample Test for Multivariate Means by Lopes, Jacob, and Wainwright
#> (2011)
#>
#> data: smallX and smallY
#> T2 = 2.1292, p-value = 0.5272
#> alternative hypothesis: true means are different.
#>
# \donttest{
## empirical Type 1 error
niter = 1000
counter = rep(0,niter) # record p-values
for (i in 1:niter){
X = matrix(rnorm(10*20), ncol=20)
Y = matrix(rnorm(10*20), ncol=20)
counter[i] = ifelse(mean2.2011LJW(X,Y)$p.value < 0.05, 1, 0)
}
## print the result
cat(paste("\n* Example for 'mean2.2011LJW'\n","*\n",
"* number of rejections : ", sum(counter),"\n",
"* total number of trials : ", niter,"\n",
"* empirical Type 1 error : ",round(sum(counter/niter),5),"\n",sep=""))
#>
#> * Example for 'mean2.2011LJW'
#> *
#> * number of rejections : 46
#> * total number of trials : 1000
#> * empirical Type 1 error : 0.046
# }