Come eseguire i test t su panda (3 esempi)


I seguenti esempi mostrano come eseguire tre diversi t-test utilizzando un DataFrame panda:

  • T-test indipendente a due campioni
  • Test t di Welch a due campioni
  • Test t per campioni accoppiati

Esempio 1: test t indipendente a due campioni nei panda

Un t-test indipendente a due campioni viene utilizzato per determinare se le medie di due popolazioni sono uguali.

Ad esempio, supponiamo che un professore voglia sapere se due diversi metodi di studio portano a voti medi diversi agli esami.

Per testarlo, recluta 10 studenti per utilizzare il metodo A e 10 studenti per utilizzare il metodo B.

Il codice seguente mostra come inserire i punteggi di ogni studente in un DataFrame panda, quindi utilizzare la funzione ttest_ind() della libreria SciPy per eseguire un t-test indipendente a due campioni:

 import pandas as pd
from scipy. stats import ttest_ind

#create pandas DataFrame
df = pd. DataFrame ({'method': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                              'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   'score': [71, 72, 72, 75, 78, 81, 82, 83, 89, 91, 80, 81, 81,
                             84, 88, 88, 89, 90, 90, 91]})

#view first five rows of DataFrame
df. head ()

  method score
0 to 71
1 To 72
2 To 72
3 to 75
4 to 78

#define samples
group1 = df[df[' method ']==' A ']
group2 = df[df[' method ']==' B ']

#perform independent two sample t-test
ttest_ind(group1[' score '], group2[' score '])

Ttest_indResult(statistic=-2.6034304605397938, pvalue=0.017969284594810425)

Dal risultato possiamo vedere:

  • Statistica del test t: – 2,6034
  • valore p: 0,0179

Poiché il valore p è inferiore a 0,05, rifiutiamo l’ipotesi nulla del t-test e concludiamo che esistono prove sufficienti per affermare che i due metodi portano a punteggi medi degli esami diversi.

Esempio 2: test t di Welch nei panda

Il test t di Welch è simile al test t indipendente a due campioni, tranne per il fatto che non presuppone che le due popolazioni da cui vengono estratti i campioni abbiano la stessa varianza .

Per eseguire il test t di Welch esattamente sullo stesso set di dati dell’esempio precedente, dobbiamo semplicemente specificare equal_var=False nella funzione ttest_ind () come segue:

 import pandas as pd
from scipy. stats import ttest_ind

#create pandas DataFrame
df = pd. DataFrame ({'method': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                              'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   'score': [71, 72, 72, 75, 78, 81, 82, 83, 89, 91, 80, 81, 81,
                             84, 88, 88, 89, 90, 90, 91]})

#define samples
group1 = df[df[' method ']==' A ']
group2 = df[df[' method ']==' B ']

#perform Welch's t-test
ttest_ind(group1[' score '], group2[' score '], equal_var= False )

Ttest_indResult(statistic=-2.603430460539794, pvalue=0.02014688617423973)

Dal risultato possiamo vedere:

  • Statistica del test t: – 2,6034
  • Valore p: 0,0201

Poiché il valore p è inferiore a 0,05, rifiutiamo l’ipotesi nulla del test t di Welch e concludiamo che esistono prove sufficienti per affermare che i due metodi portano a punteggi medi degli esami diversi.

Esempio 3: test t per campioni accoppiati su Pandas

Un test t per campioni accoppiati viene utilizzato per determinare se due medie di popolazione sono uguali in cui ciascuna osservazione in un campione può essere associata a un’osservazione nell’altro campione.

Ad esempio, supponiamo che un professore voglia sapere se due diversi metodi di studio portano a voti medi diversi agli esami.

Per testarlo, recluta 10 studenti affinché utilizzino il Metodo A e poi sostengano un test. Quindi lascia che gli stessi 10 studenti che hanno utilizzato il Metodo B si preparino e sostengano un altro test di difficoltà simile.

Poiché tutti gli studenti compaiono in entrambi i campioni, in questo scenario possiamo eseguire un t-test per campioni accoppiati.

Il codice seguente mostra come inserire i punteggi di ogni studente in un DataFrame panda, quindi utilizzare la funzione ttest_rel() della libreria SciPy per eseguire un t-test di campioni accoppiati:

 import pandas as pd
from scipy. stats import ttest_rel

#create pandas DataFrame
df = pd. DataFrame ({'method': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                              'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   'score': [71, 72, 72, 75, 78, 81, 82, 83, 89, 91, 80, 81, 81,
                             84, 88, 88, 89, 90, 90, 91]})

#view first five rows of DataFrame
df. head ()

  method score
0 to 71
1 To 72
2 To 72
3 to 75
4 to 78

#define samples
group1 = df[df[' method ']==' A ']
group2 = df[df[' method ']==' B ']

#perform independent two sample t-test
ttest_rel(group1[' score '], group2[' score '])

Ttest_relResult(statistic=-6.162045351967805, pvalue=0.0001662872100210469)

Dal risultato possiamo vedere:

  • Statistica del test t: – 6,1620
  • Valore p: 0,0001

Poiché il valore p è inferiore a 0,05, rifiutiamo l’ipotesi nulla del t-test per campioni accoppiati e concludiamo che esistono prove sufficienti per affermare che i due metodi portano a punteggi medi degli esami diversi.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in Python:

Come eseguire un test di indipendenza del chi quadrato in Python
Come eseguire ANOVA unidirezionale in Python
Come eseguire il test esatto di Fisher in Python

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *