Learn R Programming

mvnTest (version 1.1-0)

S2.test: Chi-squared type tests for Multivariate Normality

Description

This function implements three chi-squared type goodness-of-fit tests for multivariate normality, namely, the McCulloch S2 test, Nikulin-Rao-Robson Y2 and Dzhaparidze-Nikulin U2 tests.

Usage

S2.test(data, M=5, qqplot = FALSE)

Arguments

data
A numeric matrix or data frame
M
A number of equiprobable intervals
qqplot
if TRUE it creates a chi-square Q-Q plot

Value

s2
the value of the McCulloch test S2
p.value.s2
the p-value of S2 test
y2
the value of the Nikulin-Rao-Robson test Y2
p.value.y2
the p-value of Y2 test
u2
the value of the Dzhaparidze-Nikulin test U2
p.value.u2
the p-value of U2 test
data.name
a character string giving the name of the data

Details

Calculates the values of the three chi-squared type test statistics, the McCulloch S2, Nikulin-Rao-Robson Y2 and Dzhaparidze-Nikulin U2 tests, and the corresponding p-values. The construction of all three tests is based on the Wald's type chi-squared goodness-of-fit tests. The vector of unknown parameters is estimated by the maximum likelihood method.The Karhunen-Loeve transformation is applied to a multi-dimensional sample data in order to diagonalize a sample covariance matrix. The null asymptotic distributions of the S2, Y2 and U2 tests are chi-squared distributions with 1, M-1 and M-2 degrees of freedom correspondingly.

References

Voinov, V., Pya, N., Makarov, R., and Voinov, Y. (2015) New invariant and consistent chi-squared type goodness-of-fit tests for multivariate normality and a related comparative simulation study. Communications in Statistics - Theory and Methods. doi link: http://www.tandfonline.com/doi/full/10.1080/03610926.2014.901370

Voinov, V., Nikulin, M. and Balakrishnan, N., Chi-squared goodness of fit tests with applications. New York: Academic Press, Elsevier, 2013

See Also

AD.test, DH.test, R.test, CM.test, HZ.test

Examples

Run this code
## generating n bivariate normal random variables...       
dat <- rmvnorm(n=200,mean=rep(0,2),sigma=matrix(c(4,2,2,4),2,2)) 
res <- S2.test(dat, qqplot = FALSE)
res
## generating n bivariate t distributed with 10df random variables...       
dat <- rmvt(n=200,sigma=matrix(c(4,2,2,4),2,2)*.8,df=10,delta=rep(0,2)) 
res1 <- S2.test(dat, qqplot = TRUE)
res1

data(iris)
setosa = iris[1:50, 1:4] # Iris data only for setosa
res2 <- S2.test(setosa, qqplot = TRUE)
res2

Run the code above in your browser using DataLab