Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Mão na massa: executando teste t com p-valor

import pandas as pd
from scipy.stats import ttest_1samp

# Conjunto de dados Techsafe
df_techsafe = pd.DataFrame({'porcentagem_compressao': [21.99342831, 20.7234714 , 22.29537708, 24.04605971, 
                                                       20.53169325, 20.53172609, 24.15842563, 22.53486946, 
                                                       20.06105123, 22.08512009, 20.07316461, 20.06854049, 
                                                       21.48392454, 17.17343951, 17.55016433, 19.87542494, 
                                                       18.97433776, 21.62849467, 19.18395185, 18.1753926, 
                                                       23.93129754, 20.5484474 , 21.13505641, 18.15050363, 
                                                       19.91123455]})
                                                       
#Formule uma hipótese para o caso da Techsafe.

hipotese_nula = 20
#hipótese alternativa > 20

#Calcule a média amostral dos dados

media_amostral = df_techsafe['porcentagem_compressao'].mean()
print(f'A média amostral é: {media_amostral}')

A média amostral é: 20.6729838832

#Estabeleça um nível de confiança para o problema e calcule o nível de significância.

nivel_confianca = 0.95
nivel_significancia = 1 - nivel_confianca

#Utilize o Teste t para calcular o valor da estatística t e o p-valor
# para o problema da Techsasfe, mostre os dados.

stats, p_valor = ttest_1samp(
    df_techsafe['porcentagem_compressao'],
    hipotese_nula,
    alternative = 'greater'
)

print(f'Stats: {stats}, p_valor: {p_valor}')

Stats: 1.7588775656761988, p_valor: 0.04567200091129675

#Pelos resultados anteriores, a hipótese nula formulada é rejeitada ou não rejeitada? 
# Explique o que justifica sua decisão.

if p_valor < nivel_significancia:
    conclusao = "Rejeitar a hipótese nula"
else:
    conclusao = "Não rejeita a hipótese nula"

print(conclusao)

'Rejeitar a hipótese nula'

1 resposta

Olá, Vinicius. Como vai?

Parabéns pela execução precisa do teste de hipóteses! Você seguiu o rigor estatístico necessário para transformar dados brutos em uma decisão de negócio fundamentada. O uso da biblioteca scipy.stats com a função ttest_1samp é o padrão ouro para esse tipo de análise em Python.

Gostaria de destacar alguns pontos técnicos fundamentais que você aplicou corretamente e que são cruciais para um Cientista de Dados:

1. A Escolha do Teste Unicaudal (alternative = 'greater')

Muitos analistas cometem o erro de usar o teste bicaudal por padrão. Ao definir greater, você alinhou o código à sua hipótese alternativa ($H_1 > 20$). Isso aumenta o poder estatístico do teste para detectar se a compressão é realmente superior ao esperado, que era o foco do problema da Techsafe.

2. A Regra de Decisão do P-valor

Sua lógica de comparação foi perfeita:

  • P-valor (0,0457) < Nível de Significância (0,05).

Como o p-valor ficou abaixo do limite estabelecido, temos evidências estatísticas suficientes para afirmar que o resultado não foi por acaso. Em termos práticos para a Techsafe, isso significa que a média de compressão é significativamente maior que 20.

Dica de Especialista: O Tamanho do Efeito

Embora você tenha rejeitado a hipótese nula, note que a média amostral ($20,67$) está bem próxima do valor hipotético ($20$).

  • No mundo real, além da significância estatística, sempre olhamos para a significância prática.
  • Uma diferença de $0,67%$ é relevante para os custos ou para a segurança da Techsafe? Esse é o tipo de questionamento que diferencia um analista técnico de um parceiro estratégico de negócios.

Organizando os resultados

Para um relatório executivo, você poderia resumir sua estatística $t$ desta forma:

MétricaValor
Estatística T$1,758$
P-valor$0,0457$
DecisãoRejeitar $H_0$

Sua estrutura de código está limpa e muito bem comentada, o que facilita demais a reprodutibilidade do teste.

Espero que possa ter lhe ajudado!

Vinicius, se o seu nível de confiança fosse de $99%$ ($\alpha = 0,01$), a sua conclusão sobre a Techsafe mudaria? Por quê?