To cite, please use: Cain, M. K., Zhang, Z., & Yuan, K. (2017). Univariate and multivariate skewness and kurtosis for measuring nonnormality: Prevalence, influence and estimation. Behavior Research Methods, 49(5), 1716–1735. https://doi.org/10.3758/s13428-016-0814-1
This introduces the online tool to calculate univariate/multivariate skewness and kurtosis at http://webpower.psychstat.org/models/kurtosis/
The interface of the tool looks like
The data file can be chosen by clicking the Choose File button (it might appear differently for different browsers). We DO NOT save your data file and it is deleted immediately after calculation.
The following types of data are allowed:
A subset of variables can be used. To use the whole data set, leave this field blank. To select a subset of variables, provide the column numbers that separated by comma (,). For example
1, 2-5, 7-9, 11
will select variables 1, 2, 3, 4, 5, 7, 8, 9, 11
Missing data values can be provided. If multiple values are used to denote missing data, they can be separated by comma (,). For example,
-999, -888, NA
will replace all three values above to missing data.
The output of the Web application looks like
Sample size: 563 Number of variables: 4 Univariate skewness and kurtosis Skewness SE_skew Kurtosis SE_kurt V1 0.69321372 0.1029601 0.2295460 0.2055599 V2 0.03685117 0.1029601 -0.4178298 0.2055599 V3 -0.22527112 0.1029601 -0.2521029 0.2055599 V4 -1.00006618 0.1029601 1.2898344 0.2055599 Mardia's multivariate skewness and kurtosis b z p-value Skewness 2.261878 212.239506 0.00000000 Kurtosis 25.468192 2.514123 0.01193288
To use R, first download our R function here.
The input of the R code looks like
eclsk <- read.table('eclsk563.txt') names(eclsk)<-c("y1", "y2", "y3", "y4") source("mardia.r") mardia(eclsk)
The output looks like
Sample size: 563 Number of variables: 4 Univariate skewness and kurtosis Skewness SE_skew Kurtosis SE_kurt y1 0.69321372 0.1029601 0.2295460 0.2055599 y2 0.03685117 0.1029601 -0.4178298 0.2055599 y3 -0.22527112 0.1029601 -0.2521029 0.2055599 y4 -1.00006618 0.1029601 1.2898344 0.2055599 Mardia's multivariate skewness and kurtosis b z p-value Skewness 2.261878 212.239506 0.00000000 Kurtosis 25.468192 2.514123 0.01193288
A SAS macro can be used to calculate multivariate skewness and kurtosis. We have edited this macro to get the skewness and kurtosis only.
First, download the macro to your computer, e.g., to C:\Users\johnny\. right click here to download the macro
Second, in the sas script editor, type
%inc "C:\Users\johnny\mardia.sas"; %mardia(data=testdataset, var=V2 V3)
The first line provides the sas macro file location. In the second, one needs to specify the data and variables to use.
An example is shown below
DATA eclsk; INFILE "eclsk563.txt"; INPUT y1 y2 y3 y4; RUN; %INCLUDE "mardia.sas"; %mardia(data=eclsk, var=y1 y2 y3 y4)
The sample output looks like this
### Univariate Skewness and Kurtosis ### Skewness SE_skew Kurtosis SE_kurt y1 0.6932137 0.1029601 0.229546 0.2055599 y2 0.0368512 0.1029601 -0.41783 0.2055599 y3 -0.225271 0.1029601 -0.252103 0.2055599 y4 -1.000066 0.1029601 1.2898344 0.2055599 ### Mardia's multivariate skewness and kurtosis ### Sample size = 563 Number of variables = 4 Multivariate skewness b1p = 2.2618775 z1 = 212.23951 p-value = 0 Multivariate kurtosis b2p = 25.468192 z2 = 2.514123 p-value = 0.0119329
An SPSS macro developed by Dr. Lawrence T. DeCarlo needs to be used. We have edited this macro to get the skewness and kurtosis only.
First, download the macro (right click here to download) to your computer under a folder such as c:\Users\johnny\.
Second, open a script editor within SPSS
Third, in the script editor, type the following
get data /type = txt /file = "C:\nonnormal\eclsk563.txt" /delimiters = " " /firstcase = 1 /variables = y1 f2.0 y2 f2.0 y3 f2.0 y4 f2.0. execute. INCLUDE file="C:\nonnormal\mardia.sps". mardia vars=y1 y2 y3 y4 /. execute.
Note that you will need to change the folder to the SPSS macro file you just downloaded. Also, the vars to use to calculate the skewness and kurtosis should be changed to your variables.
Finally, the output is shown like
Sample size: 563 Number of variables: 4 Univariate Skewness y1 y2 y3 y4 SE_skew .6932 .0369 -.2253 -1.0001 .1030 Univariate Kurtosis y1 y2 y3 y4 SE_kurt .2295 -.4178 -.2521 1.2898 .2056 Mardia's multivariate skewness b1p z1 p-value 2.2619 212.2395 .0000 Mardia's multivariate kurtosis b2p z2 p-value 25.4682 2.5141 .0119
Disclaimer: The information regarding skewness and kurtosis might be used for summary purpose in publications.