Configurando experimentos

Projeto experimental em Python

James Chapman

Curriculum Manager, DataCamp

Definição de delineamento experimental

 

  • Um processo
  • Um modo objetivo e controlado
  • Tirar conclusões específicas
    • Com base em uma hipótese

experimental-design.png

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

Formando afirmações robustas

X provavelmente teve efeito em Y. Há provável pequeno risco de erro

 

  • Linguagem precisa e quantificada

A análise de p-valor indica que X teve efeito em Y com 10% de risco de erro do Tipo I

  • Erro do Tipo I: rejeitar incorretamente a hipótese nula

 

  • Objetivo: delineamento experimental e análise estatística
Projeto experimental em Python

Por que delineamento experimental?

 

Útil em muitas áreas:

  • Pesquisa médica
  • Marketing
  • Analytics de produto
  • Agricultura
  • Políticas públicas

why.png

Projeto experimental em Python

Alguma terminologia...

     

  • Sujeitos = o que estamos testando (pessoas, funcionários, usuários etc.)

Um sujeito: uma pessoa, neste caso.

Projeto experimental em Python

Alguma terminologia...

     

  • Sujeitos = o que estamos testando (pessoas, funcionários, usuários etc.)
  • Tratamento = alguma mudança dada a um grupo

Um tratamento sendo aplicado a um grupo de sujeitos.

Projeto experimental em Python

Alguma terminologia...

     

  • Sujeitos = o que estamos testando (pessoas, funcionários, usuários etc.)
  • Tratamento = alguma mudança dada a um grupo

Um tratamento sendo aplicado a um grupo de tratamento.

Projeto experimental em Python

Alguma terminologia...

     

  • Sujeitos = o que estamos testando (pessoas, funcionários, usuários etc.)
  • Tratamento = alguma mudança dada a um grupo
  • Controle = grupo sem nenhuma mudança

Sujeitos divididos em grupos de tratamento e controle.

Projeto experimental em Python

Atribuindo sujeitos aos grupos

     

  • Como atribuir sujeitos aos grupos?
    • Opção 1 - não aleatória ('dividir' o DataFrame)
    • Opção 2 - atribuição aleatória

     

  • Exemplo: alturas de 200 sujeitos no DataFrame heights
    id  height
0    0  177.98
1    1  174.17
2    2  178.89
Projeto experimental em Python

Atribuição não aleatória

 

Atribuição fatiando o 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)
  • Muito diferente! (médias a 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
Projeto experimental em Python

Atribuição aleatória

     

  • Use .sample()
    • n ou frac (fração 0-1)
group1 = heights.sample(frac=0.5,
                        replace=False,
                        random_state=42)

group2 = heights.drop(group1.index)
print(compare_df)
  • Muito mais próximo! (<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
Projeto experimental em Python

Resumo da atribuição

 

  • Sujeitos devem ser atribuídos aleatoriamente aos grupos
    • Mudanças observadas são atribuídas corretamente

 

  • Atribuição aleatória: .sample()
  • Verificar diferenças: .describe()

Sujeitos atribuídos aleatoriamente aos grupos de tratamento e controle.

Projeto experimental em Python

Vamos praticar!

Projeto experimental em Python

Preparing Video For Download...