> Modules non standards > SciPy > Statistiques avec SciPy
Statistiques avec SciPy
Test t de Student :
- scipy.stats.ttest_ind([3, 5, 7], [6, 9, 10, 11]) : test t standard pour comparer les valeurs de 2 échantillons et renvoie une paire (statistique t, p-value), ici (-2.4967511357294372, 0.054707113913075575) (en fait, objet de la classe scipy.stats.stats.Ttest_indResult. Le test fait l'hypothèse d'une variance égale, sinon, rajouter equal_var = False.
- scipy.stats.ttest_rel([3, 5, 7], [6, 9, 10]) : test t apparié (il doit y avoir autant de valeurs dans les 2 vecteurs). Renvoie une paire (statistique t, p-value), ici (-10.0, 0.0098524570233256923).
- Si on veut comparer certaines colonnes d'un dataframe df avec d'autres colonnes faire :
- scipy.stats.ttest_ind(df.loc[:,myCols1].T, df.loc[:,myCols2].T)
- ca renvoie un objet Ttest_indResult (une paire) dont le premier élément est une array test statistiques, et le 2ème une array des p-values.
Test de Wilcoxon rank-sum non apparié (non paramétrique) :
- res = scipy.stats.ranksums(range(1, 20), range(21, 40))
- renvoie un tuple nommé de 2 valeurs : statistic et pvalue.
Test de Wilcoxon Mann-whitney non apparié (non paramétrique) qui corrige pour les égalités de rang :
- res = scipy.stats.mannwhitneyu(range(1, 20), range(21, 40))
- renvoie un tuple nommé de 2 valeurs : statistic et pvalue.
Test de Wilcoxon apparié (non paramétrique) :
- res = scipy.stats.wilcoxon(range(1, 20), range(21, 40))
- renvoie un tuple nommé de 2 valeurs : statistic et pvalue.
Test de Fisher exact :
- import scipy.stats; ar = numpy.array([[1, 26], [8, 30]]); oddsRatio, pVal = scipy.stats.fisher_exact(ar) (test sur une matrice est identique au test sur sa transposée).
- par défaut, le test est two-sided.
- on peut le faire one-sided par : scipy.stats.fisher_exact(ar, alternative = 'less') : l'hypothèse alternative est que la 1ère colonne est a une valeur relative sur la 1ère ligne plus petite que la 2ème colonne.
Corrélations :
- faire import scipy.stats
- corrélation de Pearson : scipy.stats.pearsonr([2, 4, 6, 2, 9], [3, 5, 9, 4, 7]) : renvoie une tuple avec le coefficient de corrélation de Pearson et la p-value (probabilité sur des données non corrélées d'avoir un coefficient de corrélation au moins aussi bon), ici (0.77685085895124795, 0.12221580875381219).
- corrélation de Spearman : scipy.stats.spearmanr([2, 4, 6, 2, 9], [3, 5, 9, 4, 7]) : renvoie une tuple avec le coefficient de corrélation de Spearman et la p-value (probabilité sur des données non corrélées d'avoir un coefficient de corrélation au moins aussi bon), ici SpearmanrResult(correlation=0.87208159927238094, pvalue=0.053854217727542113).
Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert