Fazendo testes t

Testes de Hipóteses em Python

James Chapman

Curriculum Manager, DataCamp

Problemas de duas amostras

  • Compare estatísticas amostrais entre grupos
  • converted_comp é uma variável numérica
  • age_first_code_cut é categórica com níveis ("child" e "adult")
  • Quem começou a programar na infância recebe mais do que quem começou adulto?
Testes de Hipóteses em Python

Hipóteses

$H_{0}$: A média de remuneração (USD) é a mesma para quem começou a programar na infância e na vida adulta.

$H_{0}$: $\mu_{child} = \mu_{adult}$

$H_{0}$: $\mu_{child} - \mu_{adult} = 0$

$H_{A}$: A média de remuneração (USD) é maior para quem começou a programar na infância do que na vida adulta.

$H_{A}$: $\mu_{child} > \mu_{adult}$

$H_{A}$: $\mu_{child} - \mu_{adult} > 0$

Testes de Hipóteses em Python

Calculando estatísticas-resumo por grupo

stack_overflow.groupby('age_first_code_cut')['converted_comp'].mean()
age_first_code_cut
adult    111313.311047
child    132419.570621
Name: converted_comp, dtype: float64
Testes de Hipóteses em Python

Estatísticas de teste

  • A média amostral estima a média populacional
  • $\bar{x}$ - média amostral
  • $\bar{x}_{child}$ - média amostral de remuneração para quem começou na infância
  • $\bar{x}_{adult}$ - média amostral de remuneração para quem começou adulto
  • $\bar{x}_{child} - \bar{x}_{adult}$ - uma estatística de teste
  • escore z - uma estatística de teste (padronizada)
Testes de Hipóteses em Python

Padronizando a estatística de teste

$z = \dfrac{\text{estat. amostral} - \text{parâmetro pop.}}{\text{erro-padrão}}$

$t = \dfrac{\text{dif. nas estat. amostrais} - \text{dif. nos parâmetros pop.}}{\text{erro-padrão}}$

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) - (\mu_{\text{child}} - \mu_{\text{adult}})}{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

Testes de Hipóteses em Python

Erro-padrão

$SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) \approx \sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}$

$s$ é o desvio padrão da variável

$n$ é o tamanho da amostra (nº de observações/linhas)

Testes de Hipóteses em Python

Assumindo a hipótese nula verdadeira

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) - (\mu_{\text{child}} - \mu_{\text{adult}})}{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

$H_{0}$: $\mu_{\text{child}} - \mu_{\text{adult}} = 0$    $\rightarrow$     $t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}}) }{SE(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}$

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}{\sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}}$

Testes de Hipóteses em Python

Cálculos assumindo a hipótese nula verdadeira

xbar = stack_overflow.groupby('age_first_code_cut')['converted_comp'].mean()
adult    111313.311047
child    132419.570621
Name: converted_comp, dtype: float64 age_first_code_cut
s = stack_overflow.groupby('age_first_code_cut')['converted_comp'].std()
adult    271546.521729
child    255585.240115
Name: converted_comp, dtype: float64 age_first_code_cut
n = stack_overflow.groupby('age_first_code_cut')['converted_comp'].count()
adult    1376
child     885
Name: converted_comp, dtype: int64
Testes de Hipóteses em Python

Calculando a estatística de teste

$t = \dfrac{(\bar{x}_{\text{child}} - \bar{x}_{\text{adult}})}{\sqrt{\dfrac{s_{\text{child}}^2}{n_{\text{child}}} + \dfrac{s_{\text{adult}}^2}{n_{\text{adult}}}}}$

import numpy as np
numerator = xbar_child - xbar_adult
denominator = np.sqrt(s_child ** 2 / n_child + s_adult ** 2 / n_adult)
t_stat = numerator / denominator
1.8699313316221844
Testes de Hipóteses em Python

Vamos praticar!

Testes de Hipóteses em Python

Preparing Video For Download...