Experimenten opzetten

Experimenteel ontwerpen in Python

James Chapman

Curriculum Manager, DataCamp

Definitie experimenteel ontwerp

 

  • Een proces
  • Een objectieve en gecontroleerde manier
  • Trek specifieke conclusies
    • Ten opzichte van een hypothese

experimenteel-ontwerp.png

1 https://www.sciencedirect.com/topics/earth-and-planetary-sciences/experimental-design
Experimenteel ontwerpen in Python

Sterke uitspraken formuleren

X had waarschijnlijk effect op Y. Er is waarschijnlijk een klein risico op fout

 

  • Precieze, gekwantificeerde taal

P-waardeanalyse geeft aan dat X effect had op Y met 10% risico op Type I-fout

  • Type I-fout: nulhypothese ten onrechte verwerpen

 

  • Doel: experimenteel ontwerp en statistische analyse
Experimenteel ontwerpen in Python

Waarom experimenteel ontwerp?

 

Nuttig in veel domeinen:

  • Medisch onderzoek
  • Marketing
  • Productanalyse
  • Landbouw
  • Overheidsbeleid

waarom.png

Experimenteel ontwerpen in Python

Wat termen...

     

  • Proefpersonen = waarop we experimenteren (mensen, werknemers, gebruikers, enz.)

Een proefpersoon: hier een persoon.

Experimenteel ontwerpen in Python

Wat termen...

     

  • Proefpersonen = waarop we experimenteren (mensen, werknemers, gebruikers, enz.)
  • Behandeling = een aanpassing voor één groep

Een behandeling toegepast op een groep proefpersonen.

Experimenteel ontwerpen in Python

Wat termen...

     

  • Proefpersonen = waarop we experimenteren (mensen, werknemers, gebruikers, enz.)
  • Behandeling = een aanpassing voor één groep

Een behandeling toegepast op een behandelingsgroep.

Experimenteel ontwerpen in Python

Wat termen...

     

  • Proefpersonen = waarop we experimenteren (mensen, werknemers, gebruikers, enz.)
  • Behandeling = een aanpassing voor één groep
  • Controle = de groep zonder aanpassing

Proefpersonen verdeeld in behandel- en controlegroep.

Experimenteel ontwerpen in Python

Proefpersonen aan groepen toewijzen

     

  • Hoe wijs je proefpersonen toe aan groepen?
    • Optie 1 - niet willekeurig ('split' de DataFrame)
    • Optie 2 - willekeurige toewijzing

     

  • Voorbeeld: 200 lengtes in DataFrame heights
    id  height
0    0  177.98
1    1  174.17
2    2  178.89
Experimenteel ontwerpen in Python

Niet-willekeurige toewijzing

 

Toewijzing door de DataFrame te slicen

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)
  • Heel verschillend! (gemiddelde 9 cm uiteen)

 

 

       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
Experimenteel ontwerpen in Python

Willekeurige toewijzing

     

  • Gebruik .sample()
    • n of frac (fractie 0-1)
group1 = heights.sample(frac=0.5,
                        replace=False,
                        random_state=42)

group2 = heights.drop(group1.index)
print(compare_df)
  • Veel dichterbij! (<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
Experimenteel ontwerpen in Python

Samenvatting toewijzing

 

  • Wijs proefpersonen willekeurig toe aan groepen
    • Toegeschreven veranderingen kloppen dan

 

  • Willekeurige toewijzing: .sample()
  • Verschillen controleren: .describe()

Proefpersonen willekeurig toegewezen aan behandel- en controlegroep.

Experimenteel ontwerpen in Python

Laten we oefenen!

Experimenteel ontwerpen in Python

Preparing Video For Download...