Mettre en place des expériences

Conception d'expériences en Python

James Chapman

Curriculum Manager, DataCamp

Définition de la conception expérimentale

 

  • Un processus
  • Une méthode objective et contrôlée
  • Tirer des conclusions précises
    • Par rapport à une hypothèse

schéma de la conception expérimentale

1 https://www.sciencedirect.com/topics/earth-and-planetary-sciences/experimental-design
Conception d'expériences en Python

Formuler des énoncés robustes

X a probablement eu un effet sur Y. Il y a vraisemblablement un petit risque d'erreur

 

  • Langage précis et quantifié

L'analyse de la valeur p indique que X a eu un effet sur Y avec un risque de 10 % d'erreur de type I

  • Erreur de type I : rejet à tort de l'hypothèse nulle

 

  • Objectif : conception expérimentale et analyse statistique
Conception d'expériences en Python

Pourquoi la conception expérimentale ?

 

Utile dans de nombreux domaines :

  • Recherche médicale
  • Marketing
  • Analyse de produit
  • Agriculture
  • Politiques publiques

pourquoi

Conception d'expériences en Python

Un peu de terminologie…

     

  • Sujets = _ce_ sur quoi porte l'expérience (personnes, employés, utilisatrices et utilisateurs, etc.)

Un sujet : ici, une personne.

Conception d'expériences en Python

Un peu de terminologie…

     

  • Sujets = _ce_ sur quoi porte l'expérience (personnes, employés, utilisatrices et utilisateurs, etc.)
  • Traitement = un changement appliqué à un groupe

Un traitement appliqué à un groupe de sujets.

Conception d'expériences en Python

Un peu de terminologie…

     

  • Sujets = _ce_ sur quoi porte l'expérience (personnes, employés, utilisatrices et utilisateurs, etc.)
  • Traitement = un changement appliqué à un groupe

Un traitement appliqué à un groupe traité.

Conception d'expériences en Python

Un peu de terminologie…

     

  • Sujets = _ce_ sur quoi porte l'expérience (personnes, employés, utilisatrices et utilisateurs, etc.)
  • Traitement = un changement appliqué à un groupe
  • Témoin = le groupe sans changement

Sujets répartis entre groupes traité et témoin.

Conception d'expériences en Python

Attribuer des sujets aux groupes

     

  • Comment répartir les sujets en groupes ?
    • Option 1 – non aléatoire (« scinder » le DataFrame)
    • Option 2 – attribution aléatoire

     

  • Exemple : taille de 200 sujets dans le DataFrame heights
    id  height
0    0  177.98
1    1  174.17
2    2  178.89
Conception d'expériences en Python

Attribution non aléatoire

 

Attribution par découpage du DataFrame

group1_nonrandom = heights.iloc[0:100,:]
group2_nonrandom = heights.iloc[100:,:]

compare_df = pd.concat( [group1_nonrandom['height'].describe(), group2_nonrandom['height'].describe()], axis=1) compare_df.columns = ['group1', 'group2'] print(compare_df)
  • Très différent ! (moyenne écartée de 9 cm)

 

 

       group1  group2
count  100.00  100.00
mean   170.32  179.19 <--
std      3.28    3.50
min    159.28  175.03
25%    168.06  176.57
50%    170.75  178.03
75%    173.09  180.79
max    174.92  191.32
Conception d'expériences en Python

Attribution aléatoire

     

  • Utiliser .sample()
    • n ou frac (fraction 0–1)
group1 = heights.sample(frac=0.5,
                        replace=False,
                        random_state=42)

group2 = heights.drop(group1.index)
print(compare_df)
  • Bien plus proche ! (< 1 cm)

 

       group1  group2
count  100.00  100.00
mean   175.10  174.41 <--
std      5.39    5.78
min    163.07  159.28
25%    171.32  170.17
50%    175.22  174.86
75%    178.32  177.85
max    189.78  191.32
Conception d'expériences en Python

Résumé de l'attribution

 

  • Les sujets doivent être répartis de façon aléatoire entre les groupes
    • Changements observés correctement attribués

 

  • Attribution aléatoire des sujets : .sample()
  • Vérifier les écarts : .describe()

Sujets répartis aléatoirement entre groupes traité et témoin.

Conception d'expériences en Python

Passons à la pratique !

Conception d'expériences en Python

Preparing Video For Download...