Appliquer des tests non paramétriques en analyse expérimentale

Conception d'expériences en Python

James Chapman

Curriculum Manager, DataCamp

Quand utiliser des tests non paramétriques

 

  • Hypothèses des tests paramétriques non respectées
  • Données à échelle ordinale ou non normales
  • Robustesse aux valeurs aberrantes et aux données non linéaires

Distribution asymétrique

Conception d'expériences en Python

Explorer les méthodes non paramétriques

 

  • Méthodes non paramétriques pour des données ne respectant pas les hypothèses classiques
  • Test U de Mann-Whitney : comparer deux groupes indépendants
  • Test de Kruskal-Wallis : comparer plus de deux groupes

Distribution non normale

Conception d'expériences en Python

Visualiser des données non paramétriques

  • Diagrammes en violon : visualiser les distributions par groupe
condensed_data = mineral_rocks[mineral_rocks['RockType'].isin(['Igneous', 'Metamorphic'])]

sns.violinplot(x='RockType', y='MineralHardness', data=condensed_data)

Diagramme en violon de la dureté minérale selon le type de roche (igneuse vs métamorphique)

Conception d'expériences en Python

Visualiser des données non paramétriques

  • Boxen plot : meilleure lecture de la forme de distribution
sns.boxenplot(x='RockType', y='MineralHardness', data=mineral_rocks)

Boxen plot de la distribution de la dureté minérale selon les types de roches

Conception d'expériences en Python

Appliquer des tests non paramétriques – Mann-Whitney U

from scipy.stats import mannwhitneyu, kruskal
u_stat, u_pval = mannwhitneyu(
    mineral_rocks[mineral_rocks['RockType'] == 'Igneous']['MineralHardness'],
    mineral_rocks[mineral_rocks['RockType'] == 'Sedimentary']['MineralHardness']
)

print(f"Mann-Whitney U test p-value: {u_pval:.4f}")
Mann-Whitney U test p-value: 0.9724
Conception d'expériences en Python

Appliquer des tests non paramétriques – Kruskal-Wallis

k_stat, k_pval = kruskal(
    mineral_rocks[mineral_rocks['RockType'] == 'Igneous']['MineralHardness'],
    mineral_rocks[mineral_rocks['RockType'] == 'Sedimentary']['MineralHardness'],
    mineral_rocks[mineral_rocks['RockType'] == 'Metamorphic']['MineralHardness']
)

print(f"Kruskal-Wallis test p-value: {k_pval:.4f}")
Kruskal-Wallis test p-value: 0.0630
Conception d'expériences en Python

Passons à la pratique !

Conception d'expériences en Python

Preparing Video For Download...