Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Histogramas e Gráficos de Caixa | Verificação de Normalidade
A Arte do Teste A/B
course content

Conteúdo do Curso

A Arte do Teste A/B

A Arte do Teste A/B

1. O que é teste A/B?
2. Verificação de Normalidade
3. Variações em Testes A/B
4. Teste T
5. U-Test

bookHistogramas e Gráficos de Caixa

Sobre Histograms

Para avaliar visualmente a distribuição, é necessário construir histogramas. Se as distribuições estiverem distantes do normal, deveremos notá-lo imediatamente.

Hora da imagem! Vamos construir distribuições para dois grupos em um único gráfico.

123456789101112131415161718192021
# Import the libraries import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # Read .csv files df_control = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/c3b98ad3-420d-403f-908d-6ab8facc3e28/ab_control.csv', delimiter=';') df_test = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/c3b98ad3-420d-403f-908d-6ab8facc3e28/ab_test.csv', delimiter=';') # Plotting hists of Impression columns sns.histplot(df_control['Impression'], color='#1e2635', label='Group A') sns.histplot(df_test['Impression'], color='#ff8a00', label='Group B') # Add the legend to the graph plt.legend(title='Groups') plt.xlabel('Impression') plt.ylabel('Frequency') plt.title('Distribution of Impressions') # Show the graph plt.show()
copy

Neste código, utilizamos a função sns.histplot da biblioteca seaborn. Passamos a ela a coluna desejada df_control['Impression'] para comparar com df_test['Impression'].

Essas distribuições são normais? Difícil dizer...

Vamos olhar para box plots:

Sobre Boxplots

12345678910111213141516171819202122232425
# Import libraries import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # Read .csv files df_control = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/c3b98ad3-420d-403f-908d-6ab8facc3e28/ab_control.csv', delimiter=';') df_test = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/c3b98ad3-420d-403f-908d-6ab8facc3e28/ab_test.csv', delimiter=';') # Add to the dataframes columns-labels, which mean belonging to either the control or the test group df_control['group'] = 'Contol group' df_test['group'] = 'Test group' # Concat control and test dataframes df_combined = pd.concat([df_control, df_test]) sns.boxplot(data=df_combined, x='group', y='Impression', palette=['#1e2635', '#ff8a00'], medianprops={'color': 'red'}) # Sign the axes plt.xlabel('') plt.ylabel('Impression') plt.title('Comparison of Impressions') # Show the results plt.show()
copy

Mesmo após boxplots, não está claro se as distribuições são normais.

Para exibir dois boxplots no mesmo gráfico, combinamos os data frames usando a função pd.concat.

Em seguida, utilizamos a função sns.boxplot, passando o data frame combinado df_combined para ela. No eixo x estão os valores da coluna 'Impression' e, no eixo y, estão os Grupo de Controle e Grupo de Teste. Com a ajuda da biblioteca matplotlib, assinamos o gráfico e os eixos.

Mesmo após boxplots, não está claro se as distribuições são normais. Mas em normalidade, precisamos ter certeza.

Como fazer isso? Testes estatísticos vêm em nosso auxílio, os quais discutiremos no próximo capítulo.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 4
some-alt