Puissance d'un test

Fondements de l’inférence en Python

Paul Savala

Assistant Professor of Mathematics

Qu'est-ce qui détermine la puissance ?

Taille d'échantillon Taille d'effet Alpha
Une image montrant un grand groupe de personnes. Une image montrant un patient recevant un traitement. Une image d'un intervalle de confiance à quatre-vingt-quinze pour cent.
Fondements de l’inférence en Python

Simuler des données de perte de poids

from scipy.stats import norm


# Groupe contrôle : moyenne 0 livre, écart-type 1 livre
control = norm.rvs(loc=0,
scale=1,
size=100)
# Groupe traité : moyenne -2 livres, écart-type 1 livre
treatment = norm.rvs(loc=-2, scale=1, size=100)
Fondements de l’inférence en Python

Test t

$H_0$ : Pas de différence de perte de poids (faux)

$H_a$ : Le groupe traité perd du poids (vrai)

Conclusion : rejeter correctement $H_0$ en faveur de $H_a$.

from scipy.stats import ttest_ind


# Effectuer un test t alpha = 0.05 t_test = ttest_ind(treatment, control, alternative='less')
# Vérifier la significativité print(t_test.pvalue < alpha)
TRUE
Fondements de l’inférence en Python

Petit échantillon

control = norm.rvs(loc=0, scale=1, size=5)
treatment = norm.rvs(loc=-2, scale=1, size=5)

# Effectuer un test t tt = ttest_ind(treatment, control, alternative='less')
print(tt.pvalue < 0.05)
FALSE

Conclusion : ne pas rejeter H0 (faux)

Fondements de l’inférence en Python

Petite taille d'effet

# Perte de poids = 0,2 livre, taille d'échantillon = 100

treatment = norm.rvs(loc=-0.2, scale=1, size=100)
# Effectuer un test t t_test = ttest_ind(treatment, control, alternative='less')
print(t_test.pvalue < 0.05)
FALSE
Fondements de l’inférence en Python

Petit effet ? Grand échantillon !

Un petit groupe de personnes à côté d'un grand groupe.

Fondements de l’inférence en Python

Définir la puissance d'un test

S'il y a un effet significatif, notre test le détectera-t-il ?

Une loupe montrant des germes sur une main dessinée.

Puissance d'un test : si l'hypothèse alternative (Ha) est vraie, quelle est la probabilité que notre test rejette la nulle (H0) avec les données fournies ?

Calculer la puissance avant de collecter l'échantillon

Fondements de l’inférence en Python

Calculer la puissance

from statsmodels.stats import power
# Fonction de puissance
tt_power = power.TTestIndPower()


# Calculer la puissance pwr = tt_power.power(effect_size=0.2,
nobs1=100,
alpha=0.05)
print(pwr)
0.291

Faible probabilité de détection !

Fondements de l’inférence en Python

Résoudre pour la puissance

nobs1 = TTestIndPower().solve_power(effect_size=-0.2, 
                                    nobs1=None, # Solve for
                                    alpha=0.05,
                                    power=0.8)

print(nobs1)
13735.26
Fondements de l’inférence en Python

Passons à la pratique !

Fondements de l’inférence en Python

Preparing Video For Download...