Como realizar testes t no pandas (3 exemplos)


Os exemplos a seguir mostram como realizar três testes t diferentes usando um DataFrame do pandas:

  • Teste t independente de duas amostras
  • Teste t de duas amostras de Welch
  • Teste t de amostras pareadas

Exemplo 1: teste t independente de duas amostras em pandas

Um teste t independente de duas amostras é usado para determinar se as médias de duas populações são iguais.

Por exemplo, suponha que um professor queira saber se dois métodos de estudo diferentes levam a notas médias diferentes nos exames.

Para testar isso, ele recruta 10 alunos para usar o método A e 10 alunos para usar o método B.

O código a seguir mostra como inserir as pontuações de cada aluno em um DataFrame do pandas e, em seguida, usar a função ttest_ind() da biblioteca SciPy para realizar um teste t independente de duas amostras:

 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)

Pelo resultado podemos ver:

  • estatística do teste t: – 2,6034
  • valor p: 0,0179

Como o valor p é inferior a 0,05, rejeitamos a hipótese nula do teste t e concluímos que há evidências suficientes para afirmar que os dois métodos levam a notas médias diferentes nos exames.

Exemplo 2: teste t de Welch em pandas

O teste t de Welch é semelhante ao teste t independente para duas amostras, exceto que não pressupõe que as duas populações das quais as amostras são extraídas tenham variância igual .

Para realizar o teste t de Welch exatamente no mesmo conjunto de dados do exemplo anterior, precisamos simplesmente especificar equal_var=False na função ttest_ind () da seguinte forma:

 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)

Pelo resultado podemos ver:

  • estatística do teste t: – 2,6034
  • valor p: 0,0201

Como o valor p é inferior a 0,05, rejeitamos a hipótese nula do teste t de Welch e concluímos que há evidências suficientes para afirmar que os dois métodos levam a notas médias diferentes nos exames.

Exemplo 3: teste t de amostras pareadas no Pandas

Um teste t de amostras pareadas é usado para determinar se duas médias populacionais são iguais, em que cada observação em uma amostra pode ser associada a uma observação na outra amostra.

Por exemplo, suponha que um professor queira saber se dois métodos de estudo diferentes levam a notas médias diferentes nos exames.

Para testar isso, ele recruta 10 alunos para usar o Método A e depois fazer um teste. Depois ele permite que os mesmos 10 alunos que usaram o Método B se preparem e façam outro teste de dificuldade semelhante.

Como todos os alunos aparecem em ambas as amostras, podemos realizar um teste t de amostras pareadas neste cenário.

O código a seguir mostra como inserir as pontuações de cada aluno em um DataFrame do pandas e, em seguida, usar a função ttest_rel() da biblioteca SciPy para realizar um teste t de amostras emparelhadas:

 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)

Pelo resultado podemos ver:

  • estatística do teste t: – 6,1620
  • valor p: 0,0001

Como o valor p é inferior a 0,05, rejeitamos a hipótese nula do teste t de amostras pareadas e concluímos que há evidências suficientes para afirmar que os dois métodos levam a notas médias diferentes nos exames.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em Python:

Como realizar um teste de independência qui-quadrado em Python
Como realizar ANOVA unidirecional em Python
Como realizar o teste exato de Fisher em Python

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *