In [1]:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.mlab as pylab
from math import sqrt
import scipy.stats
#matplotlib inline
def stats(x):
print('min/max: {0} {1}'.format(min(x), max(x)))
print('moy +- ecart-type: {0} {1}'.format(np.mean(x), np.std(x)))# ddof=1
print('skewness / kurtosis: {0} {1}'.format(scipy.stats.skew(x), scipy.stats.kurtosis(x)))
In [2]:
vitesses = 3.6*np.loadtxt('donnees/vitesses-bt-b-a.txt') # en km/h
plt.figure()
plt.plot(vitesses,'.')
plt.ylabel('Vitesse (km/h)')
plt.figure()
plt.boxplot(vitesses)
plt.ylabel('Vitesse (km/h)')
plt.figure()
plt.hist(vitesses,20)
plt.xlabel('Vitesse (km/h)')
#plt.show()
stats(vitesses)
In [3]:
# distribution avec une valeur aberrante (ou atypique)
x = [100]*100
x[99]=10
plt.boxplot(x)
plt.ylim((0,110))
Out[3]:
In [4]:
# observation que les intervalles de confiance contiennent la vraie moyenne que dans un certains pourcentage des cas
normal = scipy.stats.norm()
n = 10
plt.figure()
means = []
meanStd = []
for i in range(20):
x=normal.rvs(n)
means.append(x.mean())
meanStd.append(1.96*x.std()/sqrt(n))
plt.errorbar(list(range(1,len(means)+1)),means, yerr=meanStd, fmt='o')
plt.title('20 intervalles de confiance à 95% pour la moyenne\n'
+'d\'un échantillon de 10 observations tirées de la loi normale centrée réduite')
plt.xticks(list(range(1,len(means)+1)))
plt.grid()
plt.show()