fBasics (version 3011.87)

NormalityTests: Normality Tests

Description

A collection and description of functions of one sample tests for testing normality of financial return series. The functions for testing normality are:

ll{ ksnormTest Kolmogorov-Smirnov normality test, shapiroTest Shapiro-Wilk's test for normality, jarqueberaTest Jarque--Bera test for normality, dagoTest D'Agostino normality test. }

Functions for high precision Jarque Bera LM and ALM tests:

ll{ jbTest Performs finite sample adjusted JB LM and ALM test. }

Additional functions for testing normality from the 'nortest' package:

ll{ adTest Anderson--Darling normality test, cvmTest Cramer--von Mises normality test, lillieTest Lilliefors (Kolmogorov-Smirnov) normality test, pchiTest Pearson chi--square normality test, sfTest Shapiro--Francia normality test. }

For SPlus/Finmetrics Compatibility:

ll{ normalTest test suite for some normality tests. }

Usage

ksnormTest(x, title = NULL, description = NULL)

jbTest(x, title = NULL, description = NULL) shapiroTest(x, title = NULL, description = NULL) normalTest(x, method = c("sw", "jb"), na.rm = FALSE)

jarqueberaTest(x, title = NULL, description = NULL) dagoTest(x, title = NULL, description = NULL)

adTest(x, title = NULL, description = NULL) cvmTest(x, title = NULL, description = NULL) lillieTest(x, title = NULL, description = NULL) pchiTest(x, title = NULL, description = NULL) sfTest(x, title = NULL, description = NULL)

Arguments

description
optional description string, or a vector of character strings.
method
[normalTest] - indicates four different methods for the normality test, "ks" for the Kolmogorov-Smirnov one--sample test, "sw" for the Shapiro-Wilk test, "jb" for the Jarque-Bera Test, and
na.rm
[normalTest] - a logical value. Should missing values removed before computing the tests? The default value is FALSE.
title
an optional title string, if not specified the inputs data name is deparsed.
x
a numeric vector of data values or a S4 object of class timeSeries.

Value

  • In contrast to R's output report from S3 objects of class "htest" a different output report is produced. The tests here return an S4 object of class "fHTEST". The object contains the following slots:
  • @callthe function call.
  • @datathe data as specified by the input argument(s).
  • @testa list whose elements contain the results from the statistical test. The information provided is similar to a list object of class "htest".
  • @titlea character string with the name of the test. This can be overwritten specifying a user defined input argument.
  • @descriptiona character string with an optional user defined description. By default just the current date when the test was applied will be returned.
  • The slot @test returns an object of class "list" containing the following (otionally empty) elements:
  • statisticthe value(s) of the test statistic.
  • p.valuethe p-value(s) of the test.
  • parametersa numeric value or vector of parameters.
  • estimatea numeric value or vector of sample estimates.
  • conf.inta numeric two row vector or matrix of 95
  • methoda character string indicating what type of test was performed.
  • data.namea character string giving the name(s) of the data.
  • The meaning of the elements of the @test slot is the following:

    ksnormTest returns the values for the 'D' statistic and p-values for the three alternatives 'two-sided, 'less' and 'greater'.

    shapiroTest returns the values for the 'W' statistic and the p-value.

    jarqueberaTest jbTest returns the values for the 'Chi-squared' statistic with 2 degrees of freedom, and the asymptotic p-value. jbTest is the finite sample version of the Jarque Bera Lagrange multiplier, LM, and adjusted Lagrange multiplier test, ALM.

    dagoTest returns the values for the 'Chi-squared', the 'Z3' (Skewness) and 'Z4' (Kurtosis) statistic together with the corresponding p values.

    adTest returns the value for the 'A' statistic and the p-value.

    cvmTest returns the value for the 'W' statistic and the p-value.

    lillieTest returns the value for the 'D' statistic and the p-value.

    pchiTest returns the value for the 'P' statistic and the p-values for the adjusted and not adjusted test cases. In addition the number of classes is printed, taking the default value due to Moore (1986) computed from the expression n.classes = ceiling(2 * (n^(2/5))), where n is the number of observations.

    sfTest returns the value for the 'W' statistic and the p-value.

Details

The hypothesis tests may be of interest for many financial and economic applications, especially for the investigation of univariate time series returns. Normal Tests: Several tests for testing if the records from a data set are normally distributed are available. The input to all these functions may be just a vector x or a univariate time series object x of class timeSeries.

First there exists a wrapper function which allows to call one from two normal tests either the Shapiro--Wilks test or the Jarque--Bera test. This wrapper was introduced for compatibility with S-Plus' FinMetrics package.

Also available are the Kolmogorov--Smirnov one sample test and the D'Agostino normality test.

The remaining five normal tests are the Anderson--Darling test, the Cramer--von Mises test, the Lilliefors (Kolmogorov--Smirnov) test, the Pearson chi--square test, and the Shapiro--Francia test. They are calling functions from R's contributed package nortest. The difference to the original test functions implemented in R and from contributed R packages is that the Rmetrics functions accept time series objects as input and give a more detailed output report.

The Anderson-Darling test is used to test if a sample of data came from a population with a specific distribution, here the normal distribution. The adTest goodness-of-fit test can be considered as a modification of the Kolmogorov--Smirnov test which gives more weight to the tails than does the ksnormTest.

References

Anderson T.W., Darling D.A. (1954); A Test of Goodness of Fit, JASA 49:765--69.

Conover, W. J. (1971); Practical nonparametric statistics, New York: John Wiley & Sons.

D'Agostino R.B., Pearson E.S. (1973); Tests for Departure from Normality, Biometrika 60, 613--22.

D'Agostino R.B., Rosman B. (1974); The Power of Geary's Test of Normality, Biometrika 61, 181--84.

Durbin J. (1961); Some Methods of Constructing Exact Tests, Biometrika 48, 41--55.

Durbin,J. (1973); Distribution Theory Based on the Sample Distribution Function, SIAM, Philadelphia.

Geary R.C. (1947); Testing for Normality; Biometrika 36, 68--97.

Lehmann E.L. (1986); Testing Statistical Hypotheses, John Wiley and Sons, New York.

Linnet K. (1988); Testing Normality of Transformed Data, Applied Statistics 32, 180--186.

Moore, D.S. (1986); Tests of the chi-squared type, In: D'Agostino, R.B. and Stephens, M.A., eds., Goodness-of-Fit Techniques, Marcel Dekker, New York.

Shapiro S.S., Francia R.S. (1972); An Approximate Analysis of Variance Test for Normality, JASA 67, 215--216.

Shapiro S.S., Wilk M.B., Chen V. (1968); A Comparative Study of Various Tests for Normality, JASA 63, 1343--72.

Thode H.C. (2002); Testing for Normality, Marcel Dekker, New York.

Weiss M.S. (1978); Modification of the Kolmogorov-Smirnov Statistic for Use with Correlated Data, JASA 73, 872--75.

Wuertz D., Katzgraber H.G. (2005); Precise finite-sample quantiles of the Jarque-Bera adjusted Lagrange multiplier test, ETHZ Preprint.

Examples

Run this code
## Series:
   x = rnorm(100)

## ksnormTests -
   # Kolmogorov - Smirnov One-Sampel Test
   ksnormTest(x)

## shapiroTest - Shapiro-Wilk Test
   shapiroTest(x)

## jarqueberaTest -
   # Jarque - Bera Test
   # jarqueberaTest(x)
   # jbTest(x)

Run the code above in your browser using DataCamp Workspace