Learn R Programming

psych (version 2.4.1)

mardia: Calculate univariate or multivariate (Mardia's test) skew and kurtosis for a vector, matrix, or data.frame

Description

Find the skew and kurtosis for each variable in a data.frame or matrix. Unlike skew and kurtosis in e1071, this calculates a different skew for each variable or column of a data.frame/matrix. mardia applies Mardia's tests for multivariate skew and kurtosis

Usage

skew(x, na.rm = TRUE,type=3)
kurtosi(x, na.rm = TRUE,type=3)
mardia(x,na.rm = TRUE,plot=TRUE)

Value

skew

if input is a matrix or data.frame, skew is a vector of skews

kurtosi

if input is a matrix or data.frame, kurtosi is a vector of kurtosi

bp1

Mardia's bp1 estimate of multivariate skew

bp2

Mardia's bp2 estimate of multivariate kurtosis

skew

Mardia's skew statistic

small.skew

Mardia's small sample skew statistic

p.skew

Probability of skew

p.small

Probability of small.skew

kurtosis

Mardia's multivariate kurtosis statistic

p.kurtosis

Probability of kurtosis statistic

D

Mahalanobis distance of cases from centroid

Arguments

x

A data.frame or matrix

na.rm

how to treat missing data

type

See the discussion in describe

.

plot

Plot the expected normal distribution values versus the Mahalanobis distance of the subjects.

Author

William Revelle

Details

given a matrix or data.frame x, find the skew or kurtosis for each column (for skew and kurtosis) or the multivariate skew and kurtosis in the case of mardia.

As of version 1.2.3,when finding the skew and the kurtosis, there are three different options available. These match the choices available in skewness and kurtosis found in the e1071 package (see Joanes and Gill (1998) for the advantages of each one).

If we define \(m_r = [\sum(X- mx)^r]/n\) then

Type 1 finds skewness and kurtosis by \(g_1 = m_3/(m_2)^{3/2} \) and \(g_2 = m_4/(m_2)^2 -3\).

Type 2 is \(G1 = g1 * \sqrt{n *(n-1)}/(n-2)\) and \(G2 = (n-1)*[(n+1)g2 +6]/((n-2)(n-3))\).

Type 3 is \(b1 = [(n-1)/n]^{3/2} m_3/m_2^{3/2}\) and \(b2 = [(n-1)/n]^{3/2} m_4/m_2^2)\).

For consistency with e1071 and with the Joanes and Gill, the types are now defined as above.

However, from revision 1.0.93 to 1.2.3, kurtosi by default gives an unbiased estimate of the kurtosis (DeCarlo, 1997). Prior versions used a different equation which produced a biased estimate. (See the kurtosis function in the e1071 package for the distinction between these two formulae. The default, type 1 gave what is called type 2 in e1071. The other is their type 3.) For comparison with previous releases, specifying type = 2 will give the old estimate. These type numbers are now changed.

References

Joanes, D.N. and Gill, C.A (1998). Comparing measures of sample skewness and kurtosis. The Statistician, 47, 183-189.

L.DeCarlo. 1997) On the meaning and use of kurtosis, Psychological Methods, 2(3):292-307,

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

See Also

describe, describe.by, mult.norm in QuantPsyc, Kurt in QuantPsyc

Examples

Run this code
round(skew(attitude),2)   #type 3 (default)
round(kurtosi(attitude),2)  #type 3 (default)
#for the differences between the three types of skew and kurtosis:
round(skew(attitude,type=1),2)  #type 1
round(skew(attitude,type=2),2)  #type 2 
mardia(attitude)
x <- matrix(rnorm(1000),ncol=10)
describe(x)
mardia(x)

Run the code above in your browser using DataLab