Potenza di un test

Fondamenti dell'inferenza in Python

Paul Savala

Assistant Professor of Mathematics

Cosa determina la potenza?

Dimensione campione Dimensione effetto Alfa
Un’immagine con un grande gruppo di persone. Un’immagine di un paziente che riceve un farmaco. Un’immagine di un intervallo di confidenza al 95%.
Fondamenti dell'inferenza in Python

Simulare dati di perdita di peso

from scipy.stats import norm


# Gruppo controllo: media 0 libbre, dev. std 1 libbra
controllo = norm.rvs(loc=0,
scale=1,
size=100)
# Gruppo trattamento: media -2 libbre, dev. std 1 libbra
trattamento = norm.rvs(loc=-2, scale=1, size=100)
Fondamenti dell'inferenza in Python

T-test

$H_0$: Nessuna differenza nella perdita di peso (sbagliato)

$H_a$: Il gruppo trattamento perde peso (corretto)

Conclusione: rifiuta correttamente $H_0$ a favore di $H_a$.

from scipy.stats import ttest_ind


# Esegui un t-test alpha = 0.05 t_test = ttest_ind(trattamento, controllo, alternative='less')
# Verifica la significatività print(t_test.pvalue < alpha)
TRUE
Fondamenti dell'inferenza in Python

Campione piccolo

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

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

Conclusione: non rifiuti H0 (sbagliato)

Fondamenti dell'inferenza in Python

Effetto piccolo

# Perdita di peso = 0,2 libbre, campione = 100

trattamento = norm.rvs(loc=-0.2, scale=1, size=100)
# Esegui un t-test t_test = ttest_ind(trattamento, controllo, alternative='less')
print(t_test.pvalue < 0.05)
FALSE
Fondamenti dell'inferenza in Python

Effetto piccolo? Grande campione!

Un piccolo gruppo di persone accanto a un grande gruppo.

Fondamenti dell'inferenza in Python

Definire la potenza di un test

Se c’è un effetto significativo, il test lo rileverà?

Una lente che mostra germi su una mano a cartone.

Potenza di un test: se l’ipotesi alternativa (Ha) è vera, con quale probabilità il test rifiuta l’ipotesi nulla (H0) con i dati forniti?

Calcola la potenza prima di raccogliere il campione

Fondamenti dell'inferenza in Python

Calcolare la potenza

from statsmodels.stats import power
# Funzione di potenza
tt_power = power.TTestIndPower()


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

Bassa probabilità di rilevarlo!

Fondamenti dell'inferenza in Python

Ricavare la potenza

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

print(nobs1)
13735.26
Fondamenti dell'inferenza in Python

Ayo berlatih!

Fondamenti dell'inferenza in Python

Preparing Video For Download...