Testes de hipótese e escores z

Testes de Hipóteses em Python

James Chapman

Curriculum Manager, DataCamp

Teste A/B

  • Em 2013, a Electronic Arts (EA) lançou o SimCity 5
  • Eles queriam aumentar as pré-vendas do jogo
  • Usaram teste A/B para avaliar cenários de anúncio
  • Isso envolve dividir usuários em grupos de controle e tratamento

Prédio da Electronic Arts

1 Crédito da imagem: "Electronic Arts" por majaX1 CC BY-NC-SA 2.0
Testes de Hipóteses em Python

Teste A/B em página de varejo

Controle:

Página do SimCity com banner "faça a pré-venda e ganhe US$ 20 de desconto na próxima compra"

Tratamento:

Página do SimCity sem banner

Testes de Hipóteses em Python

Resultados do teste A/B

  • O grupo de tratamento (sem anúncio) teve 43,4% mais compras que o controle (com anúncio)
  • A intuição de que "mostrar anúncio aumenta vendas" era falsa
  • Foi significante estatisticamente ou só acaso?
  • Precisamos dos dados da EA pra decidir
  • Técnicas de Amostragem em Python + este curso ajudam nisso
Testes de Hipóteses em Python

Pesquisa Stack Overflow 2020

import pandas as pd
print(stack_overflow)
      respondent  age_1st_code  ...   age  hobbyist
0           36.0          30.0  ...  34.0       Yes
1           47.0          10.0  ...  53.0       Yes
2           69.0          12.0  ...  25.0       Yes
3          125.0          30.0  ...  41.0       Yes
4          147.0          15.0  ...  28.0        No
...          ...           ...  ...   ...       ...
2259     62867.0          13.0  ...  33.0       Yes
2260     62882.0          13.0  ...  28.0       Yes

[2261 rows x 8 columns]
Testes de Hipóteses em Python

Hipotetizando sobre a média

Uma hipótese:

A média anual da remuneração da população de cientistas de dados é US$ 110.000

A estimativa pontual (estatística amostral):

mean_comp_samp = stack_overflow['converted_comp'].mean()
119574.71738168952
Testes de Hipóteses em Python

Gerando uma distribuição bootstrap

import numpy as np

# Etapa 3. Repetir etapas 1 e 2 várias vezes, adicionando a uma lista so_boot_distn = [] for i in range(5000): so_boot_distn.append(
# Etapa 2. Calcular a estimativa pontual np.mean(
# Etapa 1. Reamostrar stack_overflow.sample(frac=1, replace=True)['converted_comp']
)
)
1 Distribuições bootstrap são ensinadas no Capítulo 4 de Amostragem em Python
Testes de Hipóteses em Python

Visualizando a distribuição bootstrap

import matplotlib.pyplot as plt
plt.hist(so_boot_distn, bins=50)
plt.show()

Histograma da distribuição bootstrap – em forma de sino, variando aprox. entre 110000 e 140000

Testes de Hipóteses em Python

Erro padrão

std_error = np.std(so_boot_distn, ddof=1)
5607.997577378606
Testes de Hipóteses em Python

Escores z

$\text{valor padronizado} = \dfrac{\text{valor} - \text{média}}{\text{desvio-padrão}}$

$z = \dfrac{\text{estatística amostral} - \text{valor hipotet. do parâmetro}}{\text{erro padrão}}$

Testes de Hipóteses em Python

$z = \dfrac{\text{estatística amostral} - \text{valor hipotet. do parâmetro}}{\text{erro padrão}}$

stack_overflow['converted_comp'].mean()
119574.71738168952
mean_comp_hyp = 110000
std_error
5607.997577378606
z_score = (mean_comp_samp - mean_comp_hyp) / std_error
1.7073326529796957
Testes de Hipóteses em Python

Testando a hipótese

  • 1,707 é alto ou baixo?
  • Esse é o objetivo do curso!
Testes de Hipóteses em Python

Testando a hipótese

  • 1,707 é alto ou baixo?
  • Esse é o objetivo do curso!

 

Caso de uso de teste de hipótese:

 

Ver se estatísticas amostrais ficam perto ou longe dos valores esperados (ou "hipotetizados")

Testes de Hipóteses em Python

Distribuição normal (z) padrão

Distribuição normal padrão: normal com média = 0 e desvio-padrão = 1

Gráfico de densidade da PDF da normal padrão

Testes de Hipóteses em Python

Vamos praticar!

Testes de Hipóteses em Python

Preparing Video For Download...