Conteúdo do Curso
A Arte do Teste A/B
A Arte do Teste A/B
Teste de Levene
Após a visualização, nosso próximo passo será a verificação estatística da igualdade das variâncias para os grupos de controle e teste.
Para isso, precisamos do teste de Levene. Ele é utilizado para testar a hipótese nula de que as variâncias são iguais. Ao comparar as variâncias em ambos os grupos, o teste utiliza uma estatística baseada no desvio padrão.
É chamada de estatística F. Se o valor obtido da estatística F exceder o valor crítico, isso indica diferenças significativas nas variâncias dos grupos.
Vamos realizar um teste de Levene para os alto-falantes de 'Impressão'
. Comecemos com as hipóteses:
H₀: As variâncias em ambos os grupos são as mesmas;
Hₐ: As variâncias diferem entre os grupos.
Vamos dar uma olhada no código. A sintaxe é muito simples:
# Import libraries import pandas as pd from scipy.stats import levene # Read 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=';') # Do Levene's test statistic, p_value = levene(df_control['Impression'], df_test['Impression']) # Print result of Levene's test print('Statistic:', statistic) print('p-value:', p_value) # Determine whether the variances are similar if p_value > 0.05: print('The variances of the two groups are NOT statistically different') else: print('The variances of the two groups are statistically different')
Como você pode ver, o valor-p é muito maior que 0,05. Isso significa que não temos evidências estatísticas suficientes para rejeitar a hipótese nula de igualdade de variâncias. Não há uma diferença estatisticamente significativa entre as variâncias das duas amostras.
Agora vamos desenhar um gráfico de violino e um swarm plot para as colunas 'Click'
de ambos os conjuntos de dados:
# Import libraries import matplotlib.pyplot as plt import pandas as pd 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=';') # Define colors for graphs colors_list = ['#ff8a00', '#33435c'] # 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 the dataframes df_combined = pd.concat([df_control, df_test]) # Plotting violin plots sns.violinplot(data=df_combined, x='group', y='Click', palette=colors_list) # Plotting swarm plots sns.swarmplot(data=df_combined, x='group', y='Click', color="r", alpha=0.8) # Sign the axes plt.xlabel('') plt.ylabel('Clicks') plt.title('Comparison of Click') # Show the results plt.show()
As variações são iguais? Vamos realizar um teste de Levene para as colunas 'Click'
de ambos os conjuntos de dados:
# Import libraries import pandas as pd from scipy.stats import levene # 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=';') # Levene's test statistic, p_value = levene(df_control['Click'], df_test['Click']) # Results of the Levene's test print('Statistic:', statistic) print('p-value:', p_value) # Determine whether the variances are similar if p_value > 0.05: print('The variances of the two groups are NOT statistically different') else: print('The variances of the two groups are statistically different')
Precisamos entender se as variações são iguais para realizar um teste T. Em caso de desigualdade das variações, utilizaremos uma modificação do teste T. Portanto, o teste de Levene é uma parte importante do teste A/B. Como você pode ver, as variações para essas duas colunas são estatisticamente diferentes. Agora é a sua vez!
Obrigado pelo seu feedback!