The Shapiro-Wilk test is a normality test. The following Python program verifies whether IBM's returns are following a normal distribution. The last five-year daily data from Yahoo! Finance is used for the test. The null hypothesis is that IBM's daily returns are drawn from a normal distribution:
import numpy as np from scipy import stats from matplotlib.finance import quotes_historical_yahoo_ochl as getData # ticker='IBM' begdate=(2009,1,1) enddate=(2013,12,31) p =getData(ticker, begdate, enddate,asobject=True, adjusted=True) ret = p.aclose[1:]/p.aclose[:-1]-1 # print('ticker=',ticker,'W-test, and P-value') print(stats.shapiro(ret)) ('ticker=', 'IBM', 'W-test, and P-value') (0.9295020699501038, 7.266549629954468e-24)
The first value of the result is the test statistic, and the second one is its corresponding P-value. Since this P-value is so close to zero, we reject the null hypothesis. In other words, we conclude that IBM's daily returns do not follow a normal distribution...