msk {mvnormalTest} | R Documentation |
Bowman and Shenton Test for Multivariate Normality
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
msk(X, B = 1000)
Arguments
X |
an |
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 \sqrt 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
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)