Configuración de experimentos

Diseño experimental en Python

James Chapman

Curriculum Manager, DataCamp

Definición de diseño experimental

 

  • Un proceso
  • De forma objetiva y controlada
  • Para extraer conclusiones específicas
    • Respecto a una hipótesis

experimental-design.png

1 https://www.sciencedirect.com/topics/earth-and-planetary-sciences/experimental-design
Diseño experimental en Python

Formular afirmaciones sólidas

X probablemente tuvo un efecto en Y. Hay probablemente un pequeño riesgo de error

 

  • Lenguaje preciso y cuantificado

El análisis del valor p indica que X tuvo efecto en Y con un 10% de riesgo de error de tipo I

  • Error de tipo I: rechazar incorrectamente la hipótesis nula

 

  • Objetivo: diseño experimental y análisis estadístico
Diseño experimental en Python

¿Por qué diseño experimental?

 

Útil en muchos campos:

  • Investigación médica
  • Marketing
  • Analítica de producto
  • Agricultura
  • Políticas públicas

why.png

Diseño experimental en Python

Algo de terminología...

     

  • Sujetos = sobre qué experimentamos (personas, empleados, usuarios, etc.)

Un sujeto: en este caso, una persona.

Diseño experimental en Python

Algo de terminología...

     

  • Sujetos = sobre qué experimentamos (personas, empleados, usuarios, etc.)
  • Tratamiento = un cambio aplicado a un grupo

Un tratamiento aplicado a un grupo de sujetos.

Diseño experimental en Python

Algo de terminología...

     

  • Sujetos = sobre qué experimentamos (personas, empleados, usuarios, etc.)
  • Tratamiento = un cambio aplicado a un grupo

Un tratamiento aplicado a un grupo de tratamiento.

Diseño experimental en Python

Algo de terminología...

     

  • Sujetos = sobre qué experimentamos (personas, empleados, usuarios, etc.)
  • Tratamiento = un cambio aplicado a un grupo
  • Control = el grupo sin cambio

Sujetos divididos en grupos de tratamiento y control.

Diseño experimental en Python

Asignar sujetos a grupos

     

  • ¿Cómo asignar sujetos a grupos?
    • Opción 1: no aleatoria («dividir» el DataFrame)
    • Opción 2: asignación aleatoria

     

  • Ejemplo: alturas de 200 sujetos en el DataFrame heights
    id  height
0    0  177.98
1    1  174.17
2    2  178.89
Diseño experimental en Python

Asignación no aleatoria

 

Asignación cortando el 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)
  • ¡Muy diferentes! (media separada 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
Diseño experimental en Python

Asignación aleatoria

     

  • Usa .sample()
    • n o frac (fracción 0-1)
group1 = heights.sample(frac=0.5,
                        replace=False,
                        random_state=42)

group2 = heights.drop(group1.index)
print(compare_df)
  • ¡Mucho más cerca! (<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
Diseño experimental en Python

Resumen de asignación

 

  • Los sujetos deben asignarse aleatoriamente a grupos
    • Cambios observados bien atribuidos

 

  • Asignación aleatoria: .sample()
  • Verificar diferencias: .describe()

Sujetos asignados aleatoriamente a tratamiento y control.

Diseño experimental en Python

¡Vamos a practicar!

Diseño experimental en Python

Preparing Video For Download...