Introduction to Statistics in Python
Run the hidden code cell below to import the data used in this course.
1 hidden cell
Take Notes
Add notes about the concepts you've learned and code cells with code you want to keep.
Introduction to statistics
Variance : np.var() avec l'argument ddof=1 (on enlève cet argument quand on est sur une pop complète, pas un échantillon) np.sqrt = racine carrée np.std = standard deviation (racine de la variance) encore avec ddof=1
Mean absolute deviation : on part des valeurs absolues np.mean(np.abs(df))
Quantiles : split entre plusieurs parts égales
np.quantile, avec un argument chiffré
np.quantile(df['colonne'], [0, 0.25, 0.5, 0.75, 1])
si on fait ça : np.quantile(df['colonne'], 0,5) on obtient la médiane
np.linspace(start, stop, num) pour créer des quantiles comme on veut, avec nombre de départ, nombre d'arrêt, et intervalles de nombres) --> remplace la liste de chiffres déterminant les quantiles dans np.quantiles
Intervalle interquartile IQR distance entre 25e et 75e percentile iqr(df['col'])
Valeurs aberrantes (Outliers) Data < Q1 - 1,5xIQR Data > Q3 + 1,5xIQR
Describe method reprend toutes les mesures de spread
df.sample() choisit une ligne du df au hasard
pour obtenir les mêmes résultats au hasard np.random.seed(10) pour que la génération aléatoire soit toujours la même
df.sample(2) --> sort 2 lignes du df (sampling without replacement)
sampling with replacement : df.sample(5, replace = True) le même échantillon peut-être choisi plusieurs fois
Distributions continues
from scipy.stats import uniform uniform.cdf(valeur dont calculer la proba, limite inférieure, limite supérieure)
proba inverse : 1 - uniform.cdf(val1, val2, val3)
generate random numbers according to uniform distribution : uniform.rvs(val min, val max, size=10) (size pour le nb de valeurs à sortir)
10 valeurs aléatoires générées entre val min et val max
binomial distribution (succession d'essais indépendants à deux issues)
from scipy.stats import binom
binom.rvs(# of coins, probability of heads / success, size = number of trials) génère # essais indépendants
binom.pmf(nb de succès, nb d'essais, proba de succès) binom.cdf(nb de succès, nb d'essais, proba de succès) = proba nb de succès inférieur ou égal au premier argument
Normal distribution Described by mean and standard deviation
Si mean = 0 et std = 1, standard normal distribution norm.cdf(valeur recherchée, mean, std) pour le % de personnes <= à la valeur recherchée sur une courbe normale 1 - norm.cdf pour l'opposé Soustraction pour avoir un intervalle entre 2 valeurs
norm.ppf(%, mean, std) pour obtenir la valeur englobant le % de l'échantillon retenu norm.ppf((1-%), mean, std) pour l'opposé
norm.rvs(mean, std, size=taille échantillon) pour générer random numbers
Central limit theorem : distribution d'un échantillonnage se rapproche de la distribution normale à mesure qu'on fait plus d'essais
Poisson distribution from scipy.stats import poisson
lambda : nb moyen d'evts par période
poisson.pmf(valeur dont on recherche la proba, lambda) poisson.cdf(mêmes arguments) : proba que la valeur soit inférieure ou égale à la valeur inscrite en premier argument poisson.rvs(lambda, size=taille d'échantillon) pour générer un échantillon suivant la loi de poisson
Other distributions Exponential : proba of time between poisson events utilise aussi la valeur lambda
from scipy.stats import expon expon.cdf(durée dont on veut la proba, scale = rate ) rate : 1/lambda t-distribution (ressemble à normal, en plus dispersé)
log-normal distribution
Correlation
import seaborn as sns
sns.scatterplot(x='name', y='name', data=df) pour faire un scatter en affichant la droite de corrélation, sns.lmplot(x='name', y='name', data=df, ci=Nhaone) dernier argu : pas de marge d'intervalle de confiance autour de la ligne
coeff de corrélation entre 2 séries : df['col1'].corr(df['col2'])
il s'agit du Pearson product-moment correlation
Correlation caveats ne concerne que les relations linéaires
Log transformation appliquée à des data très "skewed" (non symétrique) np.log appliqué à une colonne
autres transfo : square root transfo : sqrt(x) reciprocal transfo : 1/x on peut transformer différemment x et y
correlation does not imply causation !
Design of experiments
exemples...
# Add your code snippets here