Como realizar um teste F em Python
Os estatísticos usam o teste F para verificar se os dois conjuntos de dados têm a mesma variação ou não. O teste F recebeu o nome de Sir Ronald Fisher. Para usar o Teste F, fazemos duas hipóteses, uma hipótese nula e uma hipótese alternativa. Em seguida, selecionamos qualquer uma dessas duas hipóteses aprovadas pelo Teste F.
Variância é uma métrica de distribuição de dados para informar o desvio dos dados da média. Os valores mais altos mostram mais dispersão do que os valores menores.
Neste artigo, você aprenderá como realizar um teste F na linguagem de programação Python com seus casos de uso.
Processo de teste F
O processo para realizar o Teste F é o seguinte -
Para começar, defina as hipóteses nula e alternativa.
-
Hipótese Nula ou H0: σ12=σ22 (as variâncias da população são iguais)
Hipótese Alternativa ou H1: σ12 ≠ σ22 (as variâncias das populações são desiguais)
Escolha a estatística para teste.
Calcule os graus de liberdade para as populações. Por exemplo, se m e n são formas populacionais, o grau de liberdade é denotado como (df1)=m–1 e (df2)=n – 1 respectivamente.
Agora encontre o valor F na tabela F.
Por fim, divida o valor de alfa por 2 para testes bicaudais para calcular o valor crítico.
Assim, definimos o valor F utilizando os graus de liberdade das populações. Lemos df1 na primeira linha enquanto df2 na primeira coluna.
Existem várias tabelas F para tipos únicos de graus de liberdade. Comparamos a estatística F da etapa 2 com o valor crítico calculado na etapa 4. Então podemos rejeitar a hipótese nula se o valor crítico for menor que a estatística F. Pelo contrário, podemos aceitar a hipótese nula quando o valor crítico for maior que a estatística F em algum nível significativo.
Premissas
Fazemos algumas suposições antes de realizar o Teste F com base no conjunto de dados.
-
A população de dados segue a distribuição normal, ou seja, ajusta-se à curva em sino.
As amostras não são correlacionadas entre si, ou seja, não há multicolinearidade na população.
Além dessas suposições, devemos também considerar os seguintes pontos-chave ao realizar o Teste F -
O valor máximo de variância deve estar no numerador para realizar o teste de cauda direita.
Determine o valor crítico após dividir alfa por 2 no caso do teste bicaudal.
Verifique se você tem variação ou desvio padrão.
Se você não tiver graus de liberdade na Tabela F, escolha o valor máximo como valor crítico.
Teste F em Python
Sintaxe
scipy stats.f()
Parâmetros
x : quantiles
q : lower or upper tail probability
dfn, dfd shape parameters
loc :location parameter
scale : scale parameter (default=1)
size : random variate shape
moments : [‘mvsk’] letters, specifying which moments to compute
Explicação
Neste método, o usuário deve passar o f_value e o comprimento iterável de cada array para scipy.stats.f.cdf() e subtraí-lo com 1 para realizar o teste F.
Algoritmo
Primeiro, importe as bibliotecas NumPy e Scipy.stats para a operação.
Em seguida, crie duas listas de valores escolhidos aleatoriamente com dois nomes de variáveis diferentes e converta-os em arrays NumPy e calcule a variação de cada array usando Numpy.
-
Defina uma função para calcular o escore F onde inicialmente dividimos as variâncias dos arrays com grau de liberdade como 1.
Em seguida, calculou o comprimento iterável de cada matriz e passou o valor f (proporção de variâncias) e os comprimentos para a função CDF e subtraiu isso de 1 para calcular o valor p.
Finalmente, p_value e f_value são retornados pela função.
Exemplo
import numpy as np
import scipy.stats
# Create data
group1 = [0.28, 0.2, 0.26, 0.28, 0.5]
group2 = [0.2, 0.23, 0.26, 0.21, 0.23]
# Converting the list to an array
x = np.array(group1)
y = np.array(group2)
# Calculate the variance of each group
print(np.var(group1), np.var(group2))
def f_test(group1, group2):
f = np.var(group1, ddof=1)/np.var(group2, ddof=1)
nun = x.size-1
dun = y.size-1
p_value = 1-scipy.stats.f.cdf(f, nun, dun)
return f, p_value
# perform F-test
f_test(x, y)
Saída
Variances: 0.010464 0.00042400000000000017
Você pode observar que o valor do teste F é 4,38712, e o respectivo valor p é igual a 0,019127.
Abandonaremos a hipótese nula, pois o valor p é inferior a 0,05. Assim, podemos dizer que essas duas populações não possuem variâncias iguais.
Conclusão
Depois de ler este artigo, você agora sabe como usar o Teste F para verificar se as duas amostras pertencem a populações com as mesmas variâncias. Você aprendeu sobre o processo do teste F, suposições e implementação do Python. Vamos resumir o artigo com algumas conclusões -
O teste F informa se as duas populações têm variâncias iguais.
Calcule os graus de liberdade e calcule o valor crítico.
Encontre a estatística F da Tabela F e compare-a com o valor crucial calculado na etapa anterior.
Aceite ou rejeite a hipótese nula com base no valor crítico e na comparação da estatística F.