Conteúdo do Curso
A Arte do Teste A/B
A Arte do Teste A/B
Histogramas 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.
# 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()
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
# 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()
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.
Obrigado pelo seu feedback!