How to Conduct a Jarque-Bera Test in R

Spread the love

In statistical data analysis, the Jarque-Bera test is a goodness-of-fit measure used to test the null hypothesis that the data are normally distributed. It is based on the skewness and kurtosis of the data, and offers an alternative to tests such as the Shapiro-Wilk or Anderson-Darling tests.

This article will offer a comprehensive guide on how to conduct a Jarque-Bera test in R, starting with an overview of the theoretical basis for the test, and then providing a detailed, step-by-step guide on how to perform the test in R, including interpretation of the results.

Theoretical Overview of the Jarque-Bera Test

The Jarque-Bera test is named after Carlos Jarque and Anil K. Bera. The test statistic, JB, is calculated from the skewness and excess kurtosis of the data:

JB = n/6 * (S^2 + 1/4*(K – 3)^2)Here:

  • n is the number of observations,
  • S is the skewness,
  • K is the kurtosis,
  • JB is the Jarque-Bera statistic.

If the data are normally distributed, then the skewness should be close to 0 and the kurtosis close to 3. Hence, the null hypothesis for the Jarque-Bera test is that the skewness and kurtosis are those expected from a normal distribution, and any deviation from these values will lead to a large JB value, indicating a departure from normality.

Performing a Jarque-Bera Test in R

The Jarque-Bera test is not built into the base R functions, but it is available in several R packages, including “tseries”, “normtest” and “moments”. We’ll demonstrate how to perform the Jarque-Bera test using the “tseries” package.

Step-by-Step Guide

Step 1: Install and Load the Necessary Package

First, you need to install the “tseries” package. You can do this with the install.packages function:


Once the package is installed, you need to load it into your workspace using the library function:


Step 2: Load Your Data

Next, you need to load your data into R. For this guide, we will use the built-in mtcars dataset:

data <- mtcars$mpg

Step 3: Perform the Jarque-Bera Test

You can perform the Jarque-Bera test with the jarque.bera.test function:

jb_test <- jarque.bera.test(data)

Step 4: View the Test Results

To view the results of the test, you simply print the test object:


The output will include the Jarque-Bera test statistic, degrees of freedom, and the p-value.

Step 5: Interpret the Test Results

If the p-value is less than your significance level (commonly 0.05), you reject the null hypothesis and conclude that your data do not come from a normal distribution. If the p-value is greater than your significance level, you do not reject the null hypothesis, and your data could come from a normal distribution.

Additional Considerations

While the Jarque-Bera test is a useful tool for assessing normality, it has its limitations. The test is sensitive to large sample sizes, where even small deviations from normality can lead to rejection of the null hypothesis. Therefore, it’s important to also consider graphical methods (such as Q-Q plots or histograms) and other normality tests as part of your exploratory data analysis.

Also, keep in mind that the Jarque-Bera test, like other normality tests, is a test of the null hypothesis that the data are normally distributed. It cannot confirm the null hypothesis; it can only fail to reject it. Therefore, a non-significant result does not guarantee that your data are normally distributed, only that the test did not find strong evidence that they are not.


The Jarque-Bera test is a powerful tool for testing whether a dataset is normally distributed, an assumption that underpins many statistical tests and models. By understanding its theoretical basis and how to apply it in R, you can make informed decisions about the appropriateness of statistical techniques for your data.

However, as with all statistical tests, it is essential to remember that the Jarque-Bera test is just one part of the exploratory data analysis process. It’s important to use this test alongside other graphical and statistical tools to understand your data and validate your assumptions fully.

In conclusion, R provides a comprehensive suite of tools for conducting and interpreting the Jarque-Bera test, helping analysts to understand the properties of their data and choose the most appropriate modelling strategies.

Posted in RTagged

Leave a Reply