Teste Qui-Quadrado: Uma Ferramenta Essencial para Análise de Dados Categóricos

Exemplos e aplicações em Python

A distribuição χ² (distribuição qui-quadrado ou chi-squared distribution) é uma das mais utilizadas em teste de hipóteses para dados categóricos ou discretos. É um caso especial da distribuição gamma e utilizada em probabilidade em inferência estatística.

As primeiras publicações do qui-quadrado são por volta de 1900 por Karl Pearson e suas principais finalidades para testes de hipóteses são:

  • verificar as distribuições de probabilidades de cada categoria de uma variável em relação a um valor teórico esperado (aderência ou goodness of fit)
  • verificar se as distribuições das categorias são as mesmas para diferentes subpopulações de interesse (homogeneidade)
  • verificar se duas variáveis categóricas são independentes (independência ou independence in contingency tables)

De modo geral, o qui-quadrado é uma medida da extensão da qual um conjunto de valores observados são ajustados a certa distribuição. Sendo útil para determinar se os efeitos de múltiplos tratamentos (testes A/B/n) diferem entre si.

Apesar de diferentes finalidades o cálculo realizado é o mesmo para todas, e tem o objetivo de padronizar o resultado estatístico para que possa ser comparado com uma distribuição de referência.

Equação para cálculo do valor de qui-quadrado

onde: 
n
é a quantidade de categorias na variável
O
é o valor observado de uma determinada classe
E é o valor esperado desta classe
v é o grau de liberdade, número de determinações independentes menos o número de parâmetros estatísticos a serem avaliados

Um conceito muito importante em estatística é partir do esperado, principalmente para dados categóricos, onde entende-se esperado como “nada fora do comum ou digno de nota” ou mesmo que não há correlação entre variáveis ou padrões previsíveis. Que também é associado a hipótese nula ou modelo nulo. Enquanto o conceito complementar é associado a hipótese alternativa, e juntas, hipóteses nula e alternativa, formam o teste de hipótese, e a natureza da hipótese nula determina a estrutura do teste.

Assim, a distribuição de qui-quadrado é a distribuição desta estatística sobre repetidas amostragens retiradas do modelo nulo. Analisando a fórmula deduzimos que quanto maior a diferença entre as frequências observadas e esperadas, maior será a estatística do teste.

Comparações com Teste Qui-Quadrado

Por ser um teste não-paramétrico, não assume normalidade dos dados nem variância homogênea entre as amostras, mas os seguintes pressupostos:

  1. Os dados são aleatórios e representativos da população
  2. As variáveis analisadas são categóricas
  3. Todas as frequências esperadas são maiores ou iguais a 1
  4. Cada observação pertence somente a uma categoria

Para realizarmos um teste de hipóteses seguimos a seguinte sequência:

  • Definir a hipótese nula H₀, e hipótese alternativa H₁
  • Escolher o nível de significância, que é a probabilidade de falhar em rejeitar a hipótese nula. Normalmente escolhemos um valor de 5%, que será usado para encontrarmos o valor crítico da distribuição
  • Cálculo do teste estatístico
  • Comparação do valor estatístico do teste com o valor crítico

Teste de qualidade do ajuste

Também conhecido como Chi-Squared Test — goodness of fit, é usado para verificar se a distribuição de uma amostra pertence a uma distribuição esperada dos dados. Ou seja, quantifica se a diferença entre as distribuições aconteceu pela aleatoriedade ou significância estatística.

Quais são nossas hipóteses?

  • Hipótese nula H₀: Não existe diferença entre as frequências obtidas na amostra e as frequências esperadas.
  • Hipótese alternativa H₁: Existe diferença entre as frequências obtidas na amostra e as frequências esperadas.

Exemplo prático: Experimento com dado honesto

Lancemos um dado de 6 lados por 50 vezes, e anotando os resultados obtemos a frequência observada para cada lado.

Tabela com valores observados em 50 lançamentos de dado
Tabela 1: Frequência observada nos lançamentos do dado

Nossa hipótese nula (H₀) é de que o dado é honesto, as observações são devido a aleatoriedade, enquanto a hipótese alternativa (H₁) é de que o dado não é honesto, as observações não são aleatórias.
Considerando que o dado seja honesto, todos os lados têm a mesma probabilidade de acontecerem, assim a frequência esperada é igual para cada lado (50/6).

Tabela com os valores observados e os valores esperados em 50 lançamentos de dado
Tabela 2: Frequência esperada nos lançamentos do dado

Aplicando a equação apresentada acima computamos um qui-quadrado de 3,281. Esse valor é maior do que possivelmente poderia ocorrer em um modelo aleatório? Para isso buscamos na Tabela de Distribuição de Qui-Quadrado que apresenta os valores críticos de qui-quadrado para diferentes níveis de significância e graus de liberdade.

E como calculamos o grau de liberdade? Para o teste de qualidade de ajuste definimos o grau de liberdade (gl) como o número de categorias menos 1:

Equação para determinar o grau de liberdade para teste de qualidade de ajuste

Considerando as 6 categorias do experimento, temos 5 graus de liberdade, e para um nível de significância de 5% encontramos o valor de qui-quadrado crítico χ² de 11,07.

Como o valor crítico é maior do que o qui-quadrado estatístico (11,07 > 3,821), falhamos em rejeitar a hipótese nula, não há evidências suficientes para afirmar que os valores observados não ocorreram devido a aleatoriedade do modelo.

Mas de onde saiu essa Tabela de Distribuição?
Os valores na tabela de qui-quadrado foram encontrados por meio de cálculos matemáticos e simulações estatísticas, para as probabilidades associadas a diferentes valores da estatística qui-quadrado com diferentes graus de liberdade, que determinam a forma da distribuição, que é assimétrica e positiva. Essas probabilidades são encontradas a partir da função de densidade de probabilidade da distribuição de qui-quadrado, ou seja, relaciona um valor da estatística de qui-quadrado a probabilidade de observar esse valor ou valores mais extremos sob certas condições.

Gráfico comparando comparando densidade de probabilidade por valor de qui-quadrado para diferentes graus de liberdade
Função de densidade de probabilidade para diferentes graus de liberdade

Essas probabilidades são então arredondadas e tabuladas para facilitar a comparação com os valores de qui-quadrado dos dados.

Aplicação em Python

import numpy as np
from scipy.stats import chi2, chisquare

# Dados observados (resultados reais dos lançamentos do dado)
dados_observados = np.array([5, 10, 7, 11, 7, 10])

# Probabilidades esperadas para cada face do dado (assumindo um dado justo)
probabilidades_esperadas = np.array([50/6, 50/6, 50/6, 50/6, 50/6, 50/6])

# Calcular o qui-quadrado
qui_quadrado, p_valor = chisquare(f_obs=dados_observados, 
                                  f_exp=probabilidades_esperadas)

# Definir o nível de significância (alpha)
alpha = 0.05

# Calcular o valor crítico
graus_liberdade = len(dados_observados) - 1

# Buscando valor crítico na função densidade
valor_critico = chi2.ppf(1 - alpha, graus_liberdade)

# Imprimir os resultados
print("Qui-Quadrado:", qui_quadrado)
print("Valor-p:", p_valor)
print("Valor Crítico:", valor_critico)

# Testar a hipótese nula
if qui_quadrado > valor_critico:
    print("Rejeita a hipótese nula: Os resultados não se ajustam")
    print("à distribuição uniforme de um dado justo.")
else:
    print("Não rejeita a hipótese nula: Os resultados se ajustam")
    print("à distribuição uniforme de um dado justo.")
Qui-Quadrado: 3.28
Valor-p: 0.6569050367847694
Valor Crítico: 11.070497693516351
Não rejeita a hipótese nula: Os resultados se ajustam
à distribuição uniforme de um dado justo.

Entendendo o p-valor

Nos testes de qui-quadrado o p-valor mede a probabilidade de observar uma tabela de contingência (ou resultados) tão extremos quanto os observados, dado que as variáveis são independentes ou homogêneas.
Ao obtermos o p-valor do nosso teste, poderíamos compará-lo diretamente com o nível de significância que definimos. Observe que o p-valor é maior que 0,05 definido, o que também falha em rejeitar a hipótese nula.

Teste de Homogeneidade

No teste de homogeneidade, testamos se há diferença significativa nas distribuições de frequência de uma variável categórica em diferentes grupos (populações).

Tabela de contingência

Agora os dados geram uma tabela de contingência c x r, com contagem de indivíduos em c classes de uma variável aleatória categórica, ao longo de r populações diferentes.
Nesse caso, como encontramos as frequências esperadas? Precisamos calcular o valor para cada casela, multiplicando o total da categoria com o total da população, e dividindo pelo total de amostras.

Equação para calcular as frequências esperadas em cada caso

E similar a equação anterior, acrescentamos a somatória das populações.

Equação para calcular valor de qui-quadrado para Teste de Homogeneidade

onde:
r, c 
são o número de populações e categorias
Oᵢⱼ 
é a frequência observada na categoria da população i
Eᵢⱼ é a frequência esperada na categoria da população i

Agora nossas hipóteses são:

  • Hipótese nula (H₀): As probabilidades entre as populações são iguais
  • Hipótese alternativa (H₁): Pelo menos uma das probabilidades é diferente

Exemplo prático: Preferência por sorvete

Queremos saber se a preferência por diferentes sabores de sorvete varia entre três cidades. Coletamos dados de uma amostra aleatória de 300 pessoas em cada cidade e pedimos a elas que escolhessem seu sabor favorito: baunilha, chocolate e morango.

Tabela com valores de frequência observados por cidade
Tabela 3: Frequência observada de preferências de sorvete

A preferência por sabores de sorvete é homogênea entre as cidades? A hipótese nula (H₀) é de que não há preferência de sorvete entre as populações, e a hipótese alternativa (H₁) considera que há preferência.
Primeiro, calculamos a tabela de frequências esperadas.

Tabela com valores de frequência esperada por cidade
Tabela 4: Frequências esperadas de preferências de sorvete

Aplicando a equação, obtemos um qui-quadrado de 14,03.

Para uma tabela de contingência, o cálculo de graus de liberdade é:

Equação para calculo do grau de liberdade em tabelas de contingência

Como é uma tabela 3×3, nesse caso o cálculo de graus de liberdade é (3–1)x(3–1) = 4. O valor crítico de qui-quadrado correspondente aos 4 graus e nível de significância de 5%, temos χ² de 9,49.

Como o valor crítico é menor do que o qui-quadrado estatístico (14,03 > 9,49), rejeitamos a hipótese nula, os valores observados não ocorreram devido a aleatoriedade do modelo, os grupos não são homogêneos.

Aplicação em Python

import numpy as np
from scipy.stats import chi2_contingency

# Dados organizados em uma matriz (tabela de contingência)
dados = np.array([
    [100, 80, 120],
    [90, 110, 100],
    [120, 90, 90]
])

# Executar o teste qui-quadrado de homogeneidade
qui_quadrado, p_valor, graus_liberdade, _ = chi2_contingency(dados)

# Imprimir os resultados
print("Qui-Quadrado:", qui_quadrado)
print("Valor-p:", p_valor)
print("Graus de Liberdade:", graus_liberdade)

# Definir o nível de significância (alpha)
alpha = 0.05

# Comparar o valor de qui-quadrado calculado com o valor crítico
valor_critico = chi2.ppf(1 - alpha, graus_liberdade)
print("Valor Crítico:", valor_critico)

# Testar a hipótese nula
if qui_quadrado > valor_critico:
    print("Rejeita a hipótese nula: Os grupos não são homogêneos.")
else:
    print("Não rejeita a hipótese nula: Os grupos são homogêneos.")
Qui-Quadrado: 14.032258064516128
Valor-p: 0.007192809797227371
Graus de Liberdade: 4
Valor Crítico: 9.487729036781154
Rejeita a hipótese nula: Os grupos não são homogêneos.

Teste de Independência

Já no teste de Independência o objetivo é determinar se duas variáveis categóricas são independentes, ou seja, se não há associação significativa entre elas.

Assim como no Teste de Homogeneidade, as combinações entre as duas variáveis também geram uma tabela de contingência c x r com contagem das combinações entre as duas variáveis.
E do mesmo modo, calculamos as frequências esperadas de cada casela e aplicamos na Equação de Qui-quadrado de contingência.

Nesse caso nossas hipóteses são:

  • Hipótese nula (H₀): As variáveis são independentes
  • Hipótese alternativa (H₁): Há associação entre as variáveis

E qual a diferença entre Homogeneidade e Independência?
Na prática, ambos os testes são realizados da mesma forma, a diferença está na pergunta de pesquisa em cada caso. No teste de homogeneidade estamos interessados em verificar se as proporções ou distribuições são semelhantes entre grupos de uma única variável categórica. Enquanto no teste de independência, queremos verificar se uma associação entre duas variáveis categóricas distintas.

Exemplo prático: Escolha de refrigerante

Estamos investigando se há associação na preferência de marcas de refrigerantes entre homens e mulheres, em um grupo de pessoas.

Tabela com frequência observado por gênero
Tabela 5: Frequência observada na preferência de refrigerante

A hipótese nula (H₀) é que o gênero e a preferência por marca são independentes, enquanto a hipótese alternativa (H₁) é que eles são dependentes (ou seja, há uma associação entre eles).

Do mesmo modo que no teste de homogeneidade, criamos a tabela de frequência esperada, determinamos os graus de liberdade e aplicamos a Equação.

Tabela com frequência esperada por gênero
Tabela 6: Frequência esperada na preferência de refrigerante

Chegamos a um valor estatístico de 5,49 e um valor qui-quadrado crítico de 3,84.

Como o valor crítico é menor do que o qui-quadrado estatístico (5,49 > 3,84), rejeitamos a hipótese nula, os valores observados não ocorreram devido a aleatoriedade do modelo, há associação significativa entre as variáveis.

Aplicação em Python

import numpy as np
from scipy.stats import chi2, chi2_contingency

# Dados observados
observed_data = np.array([[50, 34], [42, 60]])

# Realize o teste de independência
qui_quadrado, p, graus_liberdade, _ = chi2_contingency(observed_data)

alpha = 0.05
# Determinando o valor crítico 
valor_critico = chi2.ppf(1 - alpha, graus_liberdade)

# Imprima o valor do Qui-Quadrado, crítico e o valor p
print("Qui-Quadrado:", qui_quadrado)
print("Valor crítico:", valor_critico)
print("Valor p:", p)

# Avalie a significância estatística
if p < alpha:
    print("H0 rejeitada. Há uma associação significativa entre gênero e preferência por marca.")
else:
    print("H0 não rejeitada. Não há evidência suficiente para afirmar uma associação significativa.")
Qui-Quadrado: 5.491034260605262
Valor crítico: 3.841458820694124
Valor p: 0.019114232513214174
H0 rejeitada. Há uma associação significativa entre gênero e preferência por marca.

Limitações e considerações importantes

  • Quando as variáveis são ordinais, e a hipótese leva em consideração a ordem, o teste qui-quadrado não é a melhor opção pois não é sensível ao efeito de ordem. Um substituto seria o Teste de Cochran-Armitage.
  • É sensível ao tamanho da amostra, em grandes amostras é mais provável encontrar associações estaticamente significantes, mesmo sendo fracas na prática. Por isso é importante o conhecimento de um especialista na área de pesquisa, pois os resultados podem não ter relevância prática.
  • Não fornece indicação sobre a direção ou magnitude da associação.
  • Lembrando que CORRELAÇÃO NÃO É CAUSALIDADE, portanto é importante evitar inferências causais, a menos que haja evidências adicionais de causalidade.
  • Quando vários teste qui-quadrado são realizados em conjunto é necessário aplicar correções para controlar o erro do Tipo I (falsos positivos). Uma solução é aplicar o ajuste de Bonferroni, que reduz o nível de significância para compensar os múltiplos testes.

Conclusão

O teste qui-quadrado é uma ferramenta estatística valiosa para avaliar a associação entre variáveis categóricas e identificar padrões significativos em dados categóricos. Seja na pesquisa científica, na análise de dados de negócios ou em estudos de mercado, o qui-quadrado oferece insights importantes que podem influenciar decisões informadas. No entanto, é essencial usá-lo com sabedoria, considerando suas suposições e limitações.

Para explorar ainda mais os benefícios deste teste e aplicá-lo de maneira eficaz em sua própria pesquisa ou análise de dados, encorajo você a buscar mais recursos e praticar sua aplicação em casos do mundo real, como fiz em um estudo de caso de Teste A/B disponível no meu portfólio.

Aprofundar seu conhecimento sobre o qui-quadrado pode abrir portas para uma compreensão mais profunda dos relacionamentos entre variáveis categóricas e melhorar a qualidade de suas análises estatísticas. Não deixe de explorar e aplicar esta poderosa ferramenta em sua jornada analítica. Sucesso em suas futuras análises!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

1 comentário em “Teste Qui-Quadrado: Uma Ferramenta Essencial para Análise de Dados Categóricos”

  1. Pingback: Guia para Planejamento e Execução de Teste A/B - VenturaDataLab

Rolar para cima