Estatística com Python: Teste Bicaudal e compreendendo o Valor-P (Pt.II/VI)

Calcularemos estatísticas de comparação e detalhes que envolvem testes de hipóteses, testes paramétricos e não paramétricos. Neste capítulo veremos especificamente Teste Bicaudal e compreensão do Valor-P.

No capítulo anterior vimos Testes de Nomalidade e definição das etapas de um Testes de Hipóteses.

Nos próximos capítulos veremos:

3. Distribuição t de student e teste unicaudal;
4. Teste para duas amostras;
5. Distribuição qui-quadrado;
6. Teste de Wilcoxon e Mann-Whitney;

Para nossas análises usamos as bibliotecas Scipy 1.2.1, Statsmodel 0.9.0, Pandas 0.24.2, Numpy 1.16.3, Seaborn 0.9.0 e o Matplotlib 3.0.3.

O que são testes paramétricos?

É quando um teste assume determinadas premissas sobre como os parâmetros de uma população se distribuem, estamos trabalhando com Testes Paramétricos.

Exemplo de Teste bicaudal

A empresa Suco Bom produz sucos de frutas em embalagens de 500 ml. Seu processo de produção é quase todo automatizado e as embalagens de sucos são preenchidas por uma máquina que às vezes apresenta um certo desajuste, levando a erros no preenchimento das embalagens para mais ou menos conteúdo. Quando o volume médio cai abaixo de 500 ml, a empresa se preocupa em perder vendas e ter problemas com os orgãos fiscalizadores. Quando o volume passa de 500 ml, a empresa começa a se preocupar com prejuízos no processo de produção.

O setor de controle de qualidade da empresa Suco Bom extrai, periodicamente, amostras de 50 embalagens para monitorar o processo de produção. Para cada amostra, é realizado um Teste de Hipóteses para avaliar se o maquinário se desajustou. A equipe de controle de qualidade assume um nível de significância de 5%.

Suponha agora que uma amostra de 50 embalagens foi selecionada e que a média amostral observada foi de 503,24 ml.

Questão

Esse valor de média amostral é suficientemente maior que 500 ml para nos fazer rejeitar a hipótese de que a média do processo é de 500 ml ao nível de significância de 5%? Ou seja, podemos rejeitar a hipótese de a média ser igual a 500ml.

O teste bicaudal é muito utilizado em testes de qualidade, como o apresentado em nosso problema acima. Outro exemplo é a avaliação de peças que devem ter um encaixe perfeito (porcas e parafusos, chaves e fechaduras).

amostra = pd.DataFrame(amostra, columns=['Amostra'])
amostra.head()
media_amostra = amostra.mean()[0]
media_amostra
# 503.24
dessvio_padrao_amostra = amostra.std()[0]
desvio_padrao_amostra
# 4.48
media = 500 # A média que estamos testando
significancia = 0.05
confianca = 1 - significancia
n = 50 # Amostra de tamanho 50

1° passo: Formular Hipóteses

  • 𝐻0:𝜇=500
  • 𝐻1:𝜇≠500

2° passo: Escolher Distribuição Amostral

  • O tamanho da amostra é maior que 30?
    Resposta: Sim
  • O desvio padrão populacional é conhecido?
    Resposta: Não

3³ passo: Fixação da significância do teste (𝛼α)

https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.norm.html

probabilidade **=** (0.5 **+** (confianca **/** 2))
probabilidade
# 0.975 é o 95% de nível de confiança + 2.5 (significância/2)
z_alpha_2 = norm.ppf(probabilidade)
z_alpha_2
# 1.96

4° Passo: Calcular a estatística-teste e verificação desse valor com as áreas de aceitação e rejeição do teste

5° Passo: Aceitação ou rejeição da hipótese nula

Critério do valor crítico

  • Teste Bicaudal Rejeitar 𝐻0 se 𝑧≤−𝑧𝛼/2z≤−zα/2 ou se 𝑧≥𝑧𝛼/2

Ou seja, quando temos como verdadeiro z ≥ z alpha 2, precisamos rejeitar a hipótese nula.

Conclusão: Como a média amostral é significativamente maior que 500 ml, rejeitamos H0. Neste caso, devem ser tomadas providências para ajustar o maquinário que preenche as embalagens.

Pesando embalagens

Um fabricante de farinha afirma que a quantidade média de farinha nas embalagens de seu principal produto é de 500g.

Um teste de pesagem em 30 embalagens amostradas ao acaso mostrou um peso médio igual à 485g. Estudos anteriores afirmam que a distribuição dos pesos segue uma normal e que o Desvio Padrão populacional é igual a 20g. Considerando um nível de significância igual a 5%, responda as seguintes questões:

media_amostra = 485
desvio_padrao = 20
media = 500
significancia = 0.05
confianca = 1 - significancia
n = 30
probabilidade = (0.5 + (confianca / 2))
z_alpha_2 = norm.ppf(probabilidade)
z = (media_amostra - media) / (desvio_padrao / np.sqrt(n))print('z =', round(z, 4))
if(z <= -z_alpha_2 or z >= z_alpha_2):
print('Rejeitar H0')
else:
print('Aceitar H0')

1) Qual a hipótese nula a ser testada?
H0: µ = 500

2) Qual o valor da estatística de teste?
z = -4,1079

3) Qual a conclusão do teste?
Rejeitar H0

Compreendendo o Valor-P

Valores-P avaliam quão bem os dados da amostra apoiam o argumentode que a hipótese nula é verdadeira, a hipótese já estabelica, o status quo.

O valor-P mede quão compatíveis os dados são com a Hipótese nula. Qual é a probabilidade do efeito observado nos dados amostrais se a hipótese nula for verdadeira?

  • Valores-P altos: dados são prováveis com uma hipótese nula verdadeira.
  • Valores-P baixos: dados não são prováveis com uma hipótese nula verdadeira.

Um valor-P baixo sugere que sua amostra fornece evidências suficientes de que você pode rejeitar a Hipótese nula para toda a população.

Como calcular Valor-P com Scipy

Considere novamente os dados do exercício anterior. Um fabricante de farinha afirma que a quantidade média de farinha nas embalagens de seu produto principal é de 500 g. Um teste de pesagem em 30 embalagens amostradas ao acaso mostrou um peso médio igual à 485 g.

Estudos anteriores afirmam que a distribuição dos pesos segue uma normal e que o desvio padrão populacional é igual a 20 g. Com um nível de significância igual a 5%, teste a hipótese nula de que a média do processo é igual a 500 g.

Temos duas formas de obter o p-valor utilizando a função norm de scipy:

# ep_valor = norm.sf(z)# 0,99998

Até aqui…

  • Aplicamos um teste paramétrico bicaudal
  • Vimos os passos de um teste de hipóteses
  • As regras de rejeição da hipótese nula de um teste
  • Vimos como calcular o p-valor de um teste
  • A aplicação de um teste z com as ferramentas do Python

Composing a repository of books (i bought), authors (i follow) & blogs (direct ones) for my own understanding.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store