Como realizar um teste f em python
Um teste F é usado para testar se duas variâncias populacionais são iguais. As hipóteses nula e alternativa do teste são as seguintes:
H 0 : σ 1 2 = σ 2 2 (as variações populacionais são iguais)
H 1 : σ 1 2 ≠ σ 2 2 (as variações populacionais não são iguais)
Este tutorial explica como realizar um teste F em Python.
Exemplo: teste F em Python
Suponha que tenhamos os dois exemplos a seguir:
x = [18, 19, 22, 25, 27, 28, 41, 45, 51, 55] y = [14, 15, 15, 17, 18, 22, 25, 25, 27, 34]
Podemos usar a seguinte função para realizar um teste F para determinar se as duas populações das quais essas amostras vêm têm variâncias iguais:
import numpy as np #define F-test function def f_test(x, y): x = np.array(x) y = np.array(y) f = np.var(x, ddof=1)/np.var(y, ddof=1) #calculate F test statistic dfn = x.size-1 #define degrees of freedom numerator dfd = y.size-1 #define degrees of freedom denominator p = 1-scipy.stats.f.cdf(f, dfn, dfd) #find p-value of F test statistic return f,p #perform F-test f_test(x, y) (4.38712, 0.019127)
A estatística do teste F é 4,38712 e o valor p correspondente é 0,019127 . Como esse valor p é inferior a 0,05, rejeitaríamos a hipótese nula. Isto significa que temos evidências suficientes para dizer que as duas variâncias populacionais não são iguais.
Comentários
- A estatística do teste F é calculada como s 1 2 / s 2 2 . Por padrão, numpy.var calcula a variação da população. Para calcular a variância da amostra, precisamos especificar ddof=1 .
- O valor p corresponde a 1 – cdf da distribuição F com graus de liberdade no numerador = n 1 -1 e graus de liberdade no denominador = n 2 -1.
- Esta função só funciona quando a variância da primeira amostra é maior que a variância da segunda amostra. Portanto, defina ambos os exemplos para trabalhar com a função.
Quando usar o teste F
O teste F é normalmente usado para responder a uma das seguintes perguntas:
1. Duas amostras vêm de populações com variâncias iguais?
2. Um novo tratamento ou processo reduz a variabilidade de um tratamento ou processo atual?
Relacionado: Como realizar um teste F em R