Erros de Modelo e Aleatoriedade

Introdução à Modelagem Linear em Python

Jason Vestuto

Data Scientist

Tipos de erros

  1. Erro de medição
    • ex.: sensor com defeito, medições registradas incorretamente
  2. Viés de amostragem
    • ex.: temperaturas só de agosto, quando os dias são mais quentes
  3. Acaso
Introdução à Modelagem Linear em Python

Hipótese Nula

Pergunta: nosso efeito ocorre por relação ou por acaso?

Resposta: verifique a Hipótese Nula.

Introdução à Modelagem Linear em Python

Dados Ordenados

Gráfico de dispersão de trilhas, com distância percorrida (milhas) no eixo x e duração (horas) no eixo y

Introdução à Modelagem Linear em Python

Agrupando Dados

Gráfico de dispersão de trilhas, com distância (milhas) vs. duração (horas), tempos < 5 h em vermelho e > 5 h em azul

Introdução à Modelagem Linear em Python

Agrupando Dados

Dois histogramas, ambos aproximadamente em forma de sino: um vermelho para viagens curtas, centrado perto de 5 milhas; e um azul para viagens longas, centrado perto de 15 milhas

  • Grupo de curta duração, média = 5
  • Grupo de longa duração, média = 15
Introdução à Modelagem Linear em Python

Estatística de Teste

# Group into early and late times
group_short = sample_distances[times < 5]
group_long = sample_distances[times > 5]
# Resample distributions
resample_short = np.random.choice(group_short, size=500, replace=True)
resample_long = np.random.choice(group_long, size=500, replace=True)
# Test Statistic
test_statistic = resample_long - resample_short
# Effect size as mean of test statistic distribution
effect_size = np.mean(test_statistic)
Introdução à Modelagem Linear em Python

Embaralhar e Reagrupar

Gráfico de dispersão de trilhas, com distância (milhas) vs. duração (horas), com pontos vermelhos e azuis intercalados em todos os tempos

Introdução à Modelagem Linear em Python

Embaralhar e Reagrupar

2 histogramas quase totalmente sobrepostos, de 0 a 25 milhas, com formas semelhantes

Introdução à Modelagem Linear em Python

Embaralhar e Dividir

# Concatenate and Shuffle
shuffle_bucket = np.concatenate((group_short, group_long))
np.random.shuffle(shuffle_bucket)
# Split in the middle
slice_index = len(shuffle_bucket)//2
shuffled_half1 = shuffle_bucket[0:slice_index]
shuffled_half2 = shuffle_bucket[slice_index+1:]
Introdução à Modelagem Linear em Python

Reamostrar e Testar de Novo

# Resample shuffled populations
shuffled_sample1 = np.random.choice(shuffled_half1, size=500, replace=True)
shuffled_sample2 = np.random.choice(shuffled_half2, size=500, replace=True)
# Recompute effect size
shuffled_test_statistic = shuffled_sample2 - shuffled_sample1
effect_size = np.mean(shuffled_test_statistic)
Introdução à Modelagem Linear em Python

Valor-p

Em eixos de contagem por faixa vs. valores da estatística de teste, dois histogramas: azul centrado em x=0 com grande dispersão; vermelho centrado em x=10 com dispersão menor; e uma linha vertical preta em x=10

Introdução à Modelagem Linear em Python

Vamos praticar!

Introdução à Modelagem Linear em Python

Preparing Video For Download...