Learn R Programming

SHT (version 0.1.9)

unif.2017YMq: Multivariate Test of Uniformity based on Normal Quantiles by Yang and Modarres (2017)

Description

Given a multivariate sample \(X\), it tests $$H_0 : \Sigma_x = \textrm{ uniform on } \otimes_{i=1}^p [a_i,b_i] \quad vs\quad H_1 : \textrm{ not } H_0$$ using the procedure by Yang and Modarres (2017). Originally, it tests the goodness of fit on the unit hypercube \([0,1]^p\) and modified for arbitrary rectangular domain. Since this method depends on quantile information, every observation should strictly reside within the boundary so that it becomes valid after transformation.

Usage

unif.2017YMq(X, lower = rep(0, ncol(X)), upper = rep(1, ncol(X)))

Value

a (list) object of S3 class htest containing:

statistic

a test statistic.

p.value

\(p\)-value under \(H_0\).

alternative

alternative hypothesis.

method

name of the test.

data.name

name(s) of provided sample data.

Arguments

X

an \((n\times p)\) data matrix where each row is an observation.

lower

length-\(p\) vector of lower bounds of the test domain.

upper

length-\(p\) vector of upper bounds of the test domain.

References

yang_multivariate_2017SHT

Examples

Run this code
## CRAN-purpose small example
smallX = matrix(runif(10*3),ncol=3)
unif.2017YMq(smallX) # run the test

# \donttest{
## empirical Type 1 error 
niter   = 1234
counter = rep(0,niter)  # record p-values
for (i in 1:niter){
  X = matrix(runif(50*5), ncol=25)
  counter[i] = ifelse(unif.2017YMq(X)$p.value < 0.05, 1, 0)
}

## print the result
cat(paste("\n* Example for 'unif.2017YMq'\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=""))
# }

Run the code above in your browser using DataLab