A simple Python function to use whenever we are interested in assessing normality. It provides both visual tools and a hypothesis tests.

You can find the complete script here. This function provides:

## Visualisations

- Histogram of the returns compared with a normal density plot with parameters equal to the empirical mean and variance
- Quantile – Quantile (Q-Q) plot
- Cumulative Distribution Function (CDF) plot against the normal CDF with parameters given by the empirical mean and variance

## Hypothesis Test

- Shapiro Wilk
- D’ Angostino
- Kolmogorov-Smirnov
- Anderson-Darling

Let’s test the function with some normal data.

and now with a sample from a standard t-distribution with 3 degrees of freedom:

## Testing Normality: Returns and Log-Returns

It is well-known that many financial models assume that returns or log-returns follow a normal distribution. In these cases, it is a good practice to do some analysis in order to assess departures from normality. Modifying slightly our first function we get a new function which calculates the returns (standard or log-returns) first and then proceeds with the normality assessment.

We tested a number of returns for financial time series and none of them passed a single normality test… which is not surprising after looking at the visualisations. You can find more examples in the Python Notebook. In a future post I will discuss every test more in detail.