Pesquisa de site

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.

Artigos relacionados: