In statistics, the Jarque–Bera test is a goodness-of-fit test of whether sample data have the skewness and kurtosis matching a normal distribution. The test is named after Carlos Jarque and Anil K. Bera. The test statistic is always nonnegative. If it is far from zero, it signals the data do not have a normal distribution.
The test statistic JB is defined as
If the data comes from a normal distribution, the JB statistic asymptotically has a chi-squared distribution with two degrees of freedom, so the statistic can be used to test the hypothesis that the data are from a normal distribution. The null hypothesis is a joint hypothesis of the skewness being zero and the excess kurtosis being zero. Samples from a normal distribution have an expected skewness of 0 and an expected excess kurtosis of 0 (which is the same as a kurtosis of 3). As the definition of JB shows, any deviation from this increases the JB statistic.
For small samples the chi-squared approximation is overly sensitive, often rejecting the null hypothesis when it is true. Furthermore, the distribution of p-values departs from a uniform distribution and becomes a right-skewed unimodal distribution, especially for small p-values. This leads to a large Type I error rate. The table below shows some p-values approximated by a chi-squared distribution that differ from their true alpha levels for small samples.
Calculated p-values equivalents to true alpha levels at given sample sizes True α level 20 30 50 70 100 0.1 0.307 0.252 0.201 0.183 0.1560 0.05 0.1461 0.109 0.079 0.067 0.062 0.025 0.051 0.0303 0.020 0.016 0.0168 0.01 0.0064 0.0033 0.0015 0.0012 0.002
In MATLAB's implementation, the chi-squared approximation for the JB statistic's distribution is only used for large sample sizes (> 2000). For smaller samples, it uses a table derived from Monte Carlo simulations in order to interpolate p-values.
The statistic was derived by Carlos M. Jarque and Anil K. Bera while working on their Ph.D. Thesis at the Australian National University.
Jarque–Bera test in regression analysis
According to Robert Hall, David Lilien, et al. (1995) when using this test along with multiple regression analysis the right estimate is:
where n is the number of observations and k is the number of regressors when examining residuals to an equation.
- ALGLIB includes an implementation of the Jarque–Bera test in C++, C#, Delphi, Visual Basic, etc.
- gretl includes an implementation of the Jarque–Bera test
- R includes implementations of the Jarque–Bera test: jarque.bera.test in the package tseries, for example, and jarque.test in the package moments.
- MATLAB includes an implementation of the Jarque–Bera test, the function "jbtest".
- Python statsmodels includes an implementation of the Jarque–Bera test, "statsmodels.stats.stattools.py".
- Wolfram includes a built in function called, JarqueBeraALMTest and is not limited to testing against a Gaussian distribution.
- "Analysis of the JB-Test in MATLAB". MathWorks. Retrieved May 24, 2009.
- "tseries: Time Series Analysis and Computational Finance". R Project.
- "moments: Moments, cumulants, skewness, kurtosis and related tests". R Project.
- "JarqueBeraALMTest—Wolfram Language Documentation". reference.wolfram.com. Retrieved 2017-10-26.
- Jarque, Carlos M.; Bera, Anil K. (1980). "Efficient tests for normality, homoscedasticity and serial independence of regression residuals". Economics Letters. 6 (3): 255–259. doi:10.1016/0165-1765(80)90024-5.
- Jarque, Carlos M.; Bera, Anil K. (1981). "Efficient tests for normality, homoscedasticity and serial independence of regression residuals: Monte Carlo evidence". Economics Letters. 7 (4): 313–318. doi:10.1016/0165-1765(81)90035-5.
- Jarque, Carlos M.; Bera, Anil K. (1987). "A test for normality of observations and regression residuals". International Statistical Review. 55 (2): 163–172. JSTOR 1403192.
- Judge; et al. (1988). Introduction and the theory and practice of econometrics (3rd ed.). pp. 890–892.
- Hall, Robert E.; Lilien, David M.; et al. (1995). EViews User Guide. p. 141.