Att sätta upp experiment

Experimentell design i Python

James Chapman

Curriculum Manager, DataCamp

Definition av experimentell design

 

  • En process
  • Ett objektivt och kontrollerat sätt
  • Dra specifika slutsatser
    • I förhållande till en hypotes

experimental-design.png

1 https://www.sciencedirect.com/topics/earth-and-planetary-sciences/experimental-design
Experimentell design i Python

Formulera robusta påståenden

X hade troligen en effekt på Y. Det finns sannolikt en liten risk för fel

 

  • Precist och kvantifierat språk

P-värdesanalys indikerar att X hade en effekt på Y med 10% risk för Typ I-fel

  • Typ I-fel: förkastar nollhypotesen felaktigt

 

  • Mål: experimentell design och statistisk analys
Experimentell design i Python

Varför experimentell design?

 

Användbart inom många områden:

  • Medicinsk forskning
  • Marknadsföring
  • Produktanalys
  • Jordbruk
  • Offentlig politik

why.png

Experimentell design i Python

Lite terminologi...

     

  • Försökspersoner = vad vi experimenterar på (personer, anställda, användare, etc.)

En försöksperson: i det här fallet en person.

Experimentell design i Python

Lite terminologi...

     

  • Försökspersoner = vad vi experimenterar på (personer, anställda, användare, etc.)
  • Behandling = en förändring som ges till en grupp

En behandling som ges till en grupp försökspersoner.

Experimentell design i Python

Lite terminologi...

     

  • Försökspersoner = vad vi experimenterar på (personer, anställda, användare, etc.)
  • Behandling = en förändring som ges till en grupp

En behandling som ges till en behandlingsgrupp.

Experimentell design i Python

Lite terminologi...

     

  • Försökspersoner = vad vi experimenterar på (personer, anställda, användare, etc.)
  • Behandling = en förändring som ges till en grupp
  • Kontroll = gruppen som inte får någon förändring

Försökspersoner uppdelade i behandlings- och kontrollgrupper.

Experimentell design i Python

Tilldela försökspersoner till grupper

     

  • Hur tilldelar man försökspersoner till grupper?
    • Alternativ 1 – icke-slumpmässigt (dela upp DataFrame)
    • Alternativ 2 – slumpmässig tilldelning

     

  • Exempel: 200 försökspersoners längder i DataFrame:n heights
    id  height
0    0  177.98
1    1  174.17
2    2  178.89
Experimentell design i Python

Icke-slumpmässig tilldelning

 

Tilldelning genom att skiva DataFrame:n

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)
  • Stora skillnader! (Medelvärde 9 cm isär)

 

 

       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
Experimentell design i Python

Slumpmässig tilldelning

     

  • Använd .sample()
    • n eller frac (andel 0–1)
group1 = heights.sample(frac=0.5,
                        replace=False,
                        random_state=42)

group2 = heights.drop(group1.index)
print(compare_df)
  • Mycket närmare! (<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
Experimentell design i Python

Sammanfattning av tilldelning

 

  • Försökspersoner bör tilldelas grupper slumpmässigt
    • Observerade förändringar tillskrivs rätt orsak

 

  • Slumpmässig tilldelning: .sample()
  • Verifiera skillnader: .describe()

Försökspersoner slumpmässigt tilldelade till behandlings- och kontrollgrupper.

Experimentell design i Python

Nu kör vi en övning!

Experimentell design i Python

Preparing Video For Download...