Conteúdo do Curso
A Arte do Teste A/B
A Arte do Teste A/B
Violino e Gráficos de Enxame
Sobre gráficos de violino
Vamos falar sobre variâncias amostrais. A medida de dispersão é bem visualizada pelo gráfico de violino.
Ele é similar em uso ao boxplot. Considere um exemplo da vida real. Vamos comparar os dados sobre rendas anuais nos EUA e no Canadá em 2020:
O gráfico nos mostra que eles estão bastante próximos.
O ponto branco no centro do gráfico indica a mediana da distribuição.
A parte mais espessa da linha representa o primeiro quantil (inferior) e o terceiro quantil (superior). Qualquer coisa fora da linha horizontal é um valor discrepante. Agora, vamos comparar os dados sobre rendimentos anuais nos EUA e no Brasil em 2020:
O gráfico nos mostra que eles são bastante próximos. Neste gráfico, as distribuições são claramente diferentes. Abaixo está o gráfico de violino para a renda no Brasil.
Vamos construir um gráfico de violino das colunas 'Impressão'
para os grupos de teste e controle:
# 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='Impression', palette=colors_list) # Sign the axes plt.xlabel('') plt.ylabel('Impression') plt.title('Comparison of Impressions') # Show the results plt.show()
Sobre gráficos de enxame
O swarm plot combina bem com o violin plot. Vamos observar a combinação deles:
# 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='Impression', palette=colors_list) # Plotting swarm plots sns.swarmplot(data=df_combined, x='group', y='Impression', color="r", alpha=0.8) # Sign the axes plt.xlabel('') plt.ylabel('Impression') plt.title('Comparison of Impressions') # Show the results plt.show()
Agora temos uma representação visual da dispersão dos dados. Mas será que essas variações são iguais? Infelizmente, não podemos chegar a tal conclusão apenas observando os gráficos. Como você deve ter adivinhado, a estatística possui uma ferramenta para verificar. Mas antes, hora da prática!
Obrigado pelo seu feedback!