msk: Bowman and Shenton Test for Multivariate Normality

Description Usage Arguments Value References See Also Examples

Description

It computes Bowman and Shenton (1975)'s test statistic (MSK) and its corresponding p-value for multivariate normality. The statistic is calculated based on a combination of multivariate skewness (MS) and kurtosis (MK) such that MSK=MS+|MK|^2. For formulas of MS and MK, please refer to Mardia (1970). The corresponding p-value of the statistic is computed based on a simulated null distribution of MSK. The skewness statistic (MS) will be adjusted for sample size n < 20.

Usage

1
msk(X, B = 1000)

Arguments

X

an n*p numeric matrix or data frame.

B

number of Monte Carlo simulations for null distribution, default is 1000 (increase B to increase the precision of p-value).

Value

Returns a list with two objects:

mv.test

results of the Bowman and Shenton test, i.e., test statistic, p-value, and multivariate normality summary (YES, if p-value>0.05).

uv.shapiro

a dataframe with p rows detailing univariate Shapiro-Wilk tests. Columns in the dataframe contain test statistics W, p-value,and univariate normality summary (YES, if p-value>0.05).

References

Bowman, K. O., & Shenton, L. R. (1975). Omnibus test contours for departures from normality based on √ b_1 and b_2. Biometrika, 62(2), 243-250.

Shapiro, S. S., & Wilk, M. B. (1965). An analysis of variance test for normality (complete samples). Biometrika, 52(3/4), 591-611.

Mardia, K. V. (1970). Measures of multivariate skewness and kurtosis with applications. Biometrika, 57(3), 519-530.

Doornik, J. A., & Hansen, H. (2008). An omnibus test for univariate and multivariate normality. Oxford Bulletin of Economics and Statistics, 70, 927-939.

Zhou, M., & Shao, Y. (2014). A powerful test for multivariate normality. Journal of applied statistics, 41(2), 351-363.

See Also

power.msk, mvnTest, faTest, msw, mardia, mhz, mvn

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
set.seed(12345)

## Data from gamma distribution
X = matrix(rgamma(50*4,shape =  2),50)
msk(X, B=100)

## load the ubiquitous multivariate iris data ##
## (first 50 observations of columns 1:4) ##
iris.df = iris[1:50, 1:4]
msk(iris.df, B=100)

mvnormalTest documentation built on April 28, 2020, 5:06 p.m.