Análisis de potencia: tamaño muestral y del efecto

Diseño experimental en Python

James Chapman

Curriculum Manager, DataCamp

Introducción al tamaño del efecto

 

  • Tamaño del efecto: cuantifica la diferencia entre dos grupos

 

  • Cohen's d: medida estándar del tamaño del efecto

Dos plantas tratadas con fertilizantes distintos han crecido a diferentes alturas. Una flecha indica la diferencia de altura para representar el tamaño del efecto.

Diseño experimental en Python

El conjunto de datos: participación en videojuegos

  • 60 participantes
    • 30 asignados aleatoriamente a Action
    • 30 asignados aleatoriamente a Puzzle
video_game_data.head()
   Game_Genre  Engagement_Time
0      Action              5.1
1      Puzzle              4.4
2      Action              7.2
3      Action              5.3
4      Puzzle              2.7
Diseño experimental en Python

Resumen del cálculo de potencia

  • Potencia: probabilidad de rechazar correctamente una H0 falsa: ($1 - \beta$)

    • Va de 0 a 1 (certeza de detectar un efecto real)
  • Supón effect_size=1 según datos históricos

from statsmodels.stats.power import TTestIndPower
power_analysis = TTestIndPower()

power = power_analysis.solve_power(effect_size=1, nobs1=30, alpha=0.05) print(power)
0.9677082519951168
Diseño experimental en Python

Fórmula de Cohen's d

def cohens_d(group1, group2):

diff = group1.mean() - group2.mean() n1, n2 = len(group1), len(group2) var1, var2 = group1.var(), group2.var()
pooled_std = np.sqrt(((n1 - 1) * var1 + (n2 - 1) * var2) / (n1 + n2 - 2))
d = diff / pooled_std return d

Desviación estándar combinada: $\sigma_{p} = \sqrt{\frac{(n_1 - 1) \times \text{var}_1 + (n_2 - 1) \times \text{var}_2}{n_1 + n_2 - 2}}$

Diseño experimental en Python

Cohen's d en datos de videojuegos

action_times = video_game_data[video_game_data['Game_Genre'] == 'Action']['Engagement_Time']
puzzle_times = video_game_data[video_game_data['Game_Genre'] == 'Puzzle']['Engagement_Time']

d = cohens_d(action_times, puzzle_times) print(f"Cohen's d: {d}")
Cohen's d: 1.161524633221452
Diseño experimental en Python

Entender tamaño muestral y potencia

  • Compensación entre potencia y tamaño muestral
  • Muestras mayores aumentan la potencia

Tamaño muestral vs. potencia estadística.png

1 https://grabngoinfo.com/power-analysis-for-sample-size-using-python/
Diseño experimental en Python

Cálculo del tamaño muestral en contexto

  • Variable de respuesta: engagement_time
from statsmodels.stats.power import TTestIndPower
power_analysis = TTestIndPower()
required_n = power_analysis.solve_power(effect_size=d, alpha=0.05, 
                                        power=0.99, ratio=1)
print(required_n)
28.237827708942007
Diseño experimental en Python

Visualizar requisitos de tamaño muestral

import numpy as np
import matplotlib.pyplot as plt
effect_sizes = np.linspace(0.1, 0.8, 8)
sample_sizes = [power_analysis.solve_power(effect_size=es, alpha=0.05, power=0.99, 
                                           ratio=1) for es in effect_sizes]

plt.figure(figsize=(10, 6))
plt.plot(effect_sizes, sample_sizes, 'o-')
plt.title('Effect Size vs. Required Sample Size')
plt.xlabel('Effect Size (Cohen\'s d)')
plt.ylabel('Required Sample Size')
plt.grid(True)
plt.show()
Diseño experimental en Python

Visualizar requisitos de tamaño muestral

Tamaño del efecto vs. tamaño muestral requerido.png

Diseño experimental en Python

¡Vamos a practicar!

Diseño experimental en Python

Preparing Video For Download...