Nastavení experimentů

Experimentální design v Pythonu

James Chapman

Curriculum Manager, DataCamp

Definice experimentálního designu

 

  • Proces
  • Objektivní a řízený způsob
  • Vyvozování konkrétních závěrů
    • Ve vztahu k hypotéze

experimental-design.png

1 https://www.sciencedirect.com/topics/earth-and-planetary-sciences/experimental-design
Experimentální design v Pythonu

Formulování robustních tvrzení

X pravděpodobně mělo vliv na Y. Existuje patrně určité malé riziko chyby

 

  • Přesný a kvantifikovaný jazyk

Analýza p-hodnoty ukazuje, že X mělo vliv na Y s 10% rizikem chyby I. typu

  • Chyba I. typu: nesprávné zamítnutí nulové hypotézy

 

  • Cíl: experimentální design a statistická analýza
Experimentální design v Pythonu

Proč experimentální design?

 

Uplatnění v mnoha oblastech:

  • Medicínský výzkum
  • Marketing
  • Produktová analytika
  • Zemědělství
  • Vládní politika

why.png

Experimentální design v Pythonu

Terminologie...

     

  • Subjekty = _co_ experimentujeme (lidé, zaměstnanci, uživatelé atd.)

Subjekt: v tomto případě osoba.

Experimentální design v Pythonu

Terminologie...

     

  • Subjekty = _co_ experimentujeme (lidé, zaměstnanci, uživatelé atd.)
  • Zásah = změna aplikovaná na jednu skupinu

Zásah aplikovaný na skupinu subjektů.

Experimentální design v Pythonu

Terminologie...

     

  • Subjekty = _co_ experimentujeme (lidé, zaměstnanci, uživatelé atd.)
  • Zásah = změna aplikovaná na jednu skupinu

Zásah aplikovaný na skupinu se zásahem.

Experimentální design v Pythonu

Terminologie...

     

  • Subjekty = _co_ experimentujeme (lidé, zaměstnanci, uživatelé atd.)
  • Zásah = změna aplikovaná na jednu skupinu
  • Kontrola = skupina bez jakékoli změny

Subjekty rozdělené do skupiny se zásahem a kontrolní skupiny.

Experimentální design v Pythonu

Přiřazování subjektů do skupin

     

  • Jak přiřadit subjekty do skupin?
    • Možnost 1 – náhodné (rozdělení DataFrame)
    • Možnost 2 – náhodné přiřazení

     

  • Příklad: výšky 200 subjektů v DataFrame heights
    id  height
0    0  177.98
1    1  174.17
2    2  178.89
Experimentální design v Pythonu

Nenáhodné přiřazení

 

Přiřazení rozdělením 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)
  • Velký rozdíl! (průměr se liší o 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
Experimentální design v Pythonu

Náhodné přiřazení

     

  • Použijte .sample()
    • n nebo frac (zlomek 0–1)
group1 = heights.sample(frac=0.5,
                        replace=False,
                        random_state=42)

group2 = heights.drop(group1.index)
print(compare_df)
  • Mnohem blíže! (<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
Experimentální design v Pythonu

Shrnutí přiřazení

 

  • Subjekty by měly být náhodně přiřazeny do skupin
    • Pozorované změny jsou správně přiřazeny

 

  • Náhodné přiřazení subjektů: .sample()
  • Ověření rozdílů: .describe()

Subjekty náhodně přiřazené do skupiny se zásahem a kontrolní skupiny.

Experimentální design v Pythonu

Lass uns üben!

Experimentální design v Pythonu

Preparing Video For Download...