Come eseguire test di ipotesi in python (con esempi)
Un test di ipotesi è un test statistico formale che utilizziamo per rifiutare o non riuscire a rifiutare un’ipotesi statistica.
Questo tutorial spiega come eseguire i seguenti test di ipotesi in Python:
- Un test t del campione
- Test T a due campioni
- Test t per campioni accoppiati
Andiamo!
Esempio 1: un esempio di test t in Python
Un test t su un campione viene utilizzato per verificare se la media di una popolazione è uguale o meno a un determinato valore.
Ad esempio, supponiamo di voler sapere se il peso medio di una determinata specie di tartaruga è o meno di 310 libbre.
Per verificarlo, raccogliamo un semplice campione casuale di tartarughe con i seguenti pesi:
Peso : 300, 315, 320, 311, 314, 309, 300, 308, 305, 303, 305, 301, 303
Il codice seguente mostra come utilizzare la funzione ttest_1samp() nella libreria scipy.stats per eseguire un t-test a un campione:
import scipy.stats as stats #define data data = [300, 315, 320, 311, 314, 309, 300, 308, 305, 303, 305, 301, 303] #perform one sample t-test stats. ttest_1samp (a=data, popmean= 310 ) Ttest_1sampResult(statistic=-1.5848116313861254, pvalue=0.1389944275158753)
La statistica del test t è -1,5848 e il corrispondente valore p a due code è 0,1389 .
Le due ipotesi per questo t-test su un particolare campione sono le seguenti:
- H 0 : µ = 310 (il peso medio di questa specie di tartaruga è di 310 libbre)
- H A : µ ≠310 (il peso medio non è 310 libbre)
Poiché il valore p del nostro test (0,1389) è maggiore di alfa = 0,05, non riusciamo a rifiutare l’ipotesi nulla del test.
Non abbiamo prove sufficienti per affermare che il peso medio di questa particolare specie di tartaruga sia diverso da 310 libbre.
Esempio 2: test t a due campioni in Python
Un t-test a due campioni viene utilizzato per verificare se le medie di due popolazioni sono uguali o meno.
Ad esempio, supponiamo di voler sapere se il peso medio di due diverse specie di tartarughe è uguale o meno.
Per verificarlo, raccogliamo un semplice campione casuale di tartarughe di ciascuna specie con i seguenti pesi:
Campione 1 : 300, 315, 320, 311, 314, 309, 300, 308, 305, 303, 305, 301, 303
Campione 2 : 335, 329, 322, 321, 324, 319, 304, 308, 305, 311, 307, 300, 305
Il codice seguente mostra come utilizzare la funzione ttest_ind() nella libreria scipy.stats per eseguire questi due esempi di t-test:
import scipy. stats as stats #define array of turtle weights for each sample sample1 = [300, 315, 320, 311, 314, 309, 300, 308, 305, 303, 305, 301, 303] sample2 = [335, 329, 322, 321, 324, 319, 304, 308, 305, 311, 307, 300, 305] #perform two sample t-tests stats. ttest_ind (a=sample1, b=sample2) Ttest_indResult(statistic=-2.1009029257555696, pvalue=0.04633501389516516)
La statistica del test t è –2,1009 e il corrispondente valore p a due code è 0,0463 .
Le due ipotesi per questo particolare t-test a due campioni sono:
- H 0 : µ 1 = µ 2 (il peso medio tra le due specie è uguale)
- H A : µ 1 ≠ µ 2 (il peso medio tra le due specie non è uguale)
Poiché il valore p del test (0,0463) è inferiore a 0,05, rifiutiamo l’ipotesi nulla.
Ciò significa che abbiamo prove sufficienti per affermare che il peso medio tra le due specie non è uguale.
Esempio 3: test t di campioni accoppiati in Python
Un test t per campioni accoppiati viene utilizzato per confrontare le medie di due campioni quando ciascuna osservazione in un campione può essere associata a un’osservazione nell’altro campione.
Ad esempio, supponiamo di voler sapere se un determinato programma di allenamento è in grado o meno di aumentare il salto verticale massimo (in pollici) dei giocatori di basket.
Per verificarlo, possiamo reclutare un semplice campione casuale di 12 giocatori di basket universitari e misurare ciascuno dei loro salti verticali massimi. Successivamente possiamo far utilizzare a ciascun giocatore il programma di allenamento per un mese e poi misurare nuovamente il salto verticale massimo alla fine del mese.
I seguenti dati mostrano l’altezza massima del salto (in pollici) prima e dopo l’utilizzo del programma di allenamento per ciascun giocatore:
Anteriore : 22, 24, 20, 19, 19, 20, 22, 25, 24, 23, 22, 21
Dopo : 23, 25, 20, 24, 18, 22, 23, 28, 24, 25, 24, 20
Il codice seguente mostra come utilizzare la funzione ttest_rel() nella libreria scipy.stats per eseguire questo t-test con campioni accoppiati:
import scipy. stats as stats #define before and after max jump heights before = [22, 24, 20, 19, 19, 20, 22, 25, 24, 23, 22, 21] after = [23, 25, 20, 24, 18, 22, 23, 28, 24, 25, 24, 20] #perform paired samples t-test stats. ttest_rel (a=before, b=after) Ttest_relResult(statistic=-2.5289026942943655, pvalue=0.02802807458682508)
La statistica del test t è –2,5289 e il corrispondente valore p a due code è 0,0280 .
Le due ipotesi per questo particolare t-test per campioni accoppiati sono:
- H 0 : µ 1 = µ 2 (l’altezza media del salto prima e dopo l’utilizzo del programma è uguale)
- H A : µ 1 ≠ µ 2 (l’altezza media del salto prima e dopo l’utilizzo del programma non è uguale)
Poiché il valore p del test (0,0280) è inferiore a 0,05, rifiutiamo l’ipotesi nulla.
Ciò significa che abbiamo prove sufficienti per affermare che l’altezza media del salto prima e dopo l’utilizzo del programma di allenamento non è uguale.
Risorse addizionali
È possibile utilizzare i seguenti calcolatori online per eseguire automaticamente vari test t:
Un esempio di calcolatore del test t
Calcolatore del test t a due campioni
Calcolatore t-Test per campioni accoppiati