Configurarea experimentelor

Design experimental în Python

James Chapman

Curriculum Manager, DataCamp

Definiția designului experimental

 

  • Un proces
  • O metodă obiectivă și controlată
  • Formularea unor concluzii specifice
    • În raport cu o ipoteză

experimental-design.png

1 https://www.sciencedirect.com/topics/earth-and-planetary-sciences/experimental-design
Design experimental în Python

Formularea unor afirmații solide

X probabil a avut un efect asupra Y. Există probabil un risc mic de eroare

 

  • Limbaj precis și cuantificat

Analiza p-value indică că X a avut efect asupra Y cu un risc de 10% de eroare de tip I

  • Eroare de tip I: respingerea incorectă a ipotezei nule

 

  • Obiectiv: design experimental și analiză statistică
Design experimental în Python

De ce design experimental?

 

Util în multe domenii:

  • Cercetare medicală
  • Marketing
  • Analitică de produs
  • Agricultură
  • Politici publice

why.png

Design experimental în Python

Câteva concepte...

     

  • Subiecți = _ce_ experimentăm (persoane, angajați, utilizatori etc.)

Un subiect: în acest caz, o persoană.

Design experimental în Python

Câteva concepte...

     

  • Subiecți = _ce_ experimentăm (persoane, angajați, utilizatori etc.)
  • Tratament = o schimbare aplicată unui grup

Un tratament aplicat unui grup de subiecți.

Design experimental în Python

Câteva concepte...

     

  • Subiecți = _ce_ experimentăm (persoane, angajați, utilizatori etc.)
  • Tratament = o schimbare aplicată unui grup

Un tratament aplicat grupului experimental.

Design experimental în Python

Câteva concepte...

     

  • Subiecți = _ce_ experimentăm (persoane, angajați, utilizatori etc.)
  • Tratament = o schimbare aplicată unui grup
  • Control = grupul fără nicio schimbare

Subiecți împărțiți în grupuri experimental și de control.

Design experimental în Python

Repartizarea subiecților în grupuri

     

  • Cum se repartizează subiecții în grupuri?
    • Opțiunea 1 - nerandom (împărțire a DataFrame-ului)
    • Opțiunea 2 - repartizare aleatorie

     

  • Exemplu: înălțimile a 200 de subiecți în DataFrame-ul heights
    id  height
0    0  177.98
1    1  174.17
2    2  178.89
Design experimental în Python

Repartizare nerandomizată

 

Repartizare prin tăierea DataFrame-ului

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)
  • Diferențe mari! (Medie la 9cm distanță)

 

 

       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
Design experimental în Python

Repartizare aleatorie

     

  • Utilizați .sample()
    • n sau frac (fracție 0-1)
group1 = heights.sample(frac=0.5,
                        replace=False,
                        random_state=42)

group2 = heights.drop(group1.index)
print(compare_df)
  • Mult mai apropiate! (<1cm)

 

       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
Design experimental în Python

Rezumat repartizare

 

  • Subiecții trebuie repartizați aleatoriu în grupuri
    • Schimbările observate sunt atribuite corect

 

  • Repartizare aleatorie: .sample()
  • Verificarea diferențelor: .describe()

Subiecți repartizați aleatoriu în grupuri experimental și de control.

Design experimental în Python

Să exersăm!

Design experimental în Python

Preparing Video For Download...