Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Histogramas y Diagramas de Caja | Verificación de Normalidad
El Arte del A/B Testing
course content

Contenido del Curso

El Arte del A/B Testing

El Arte del A/B Testing

1. ¿Qué es la prueba A/B?
2. Verificación de Normalidad
3. Variaciones en las Pruebas A/B
4. Prueba T
5. U-Test

bookHistogramas y Diagramas de Caja

Acerca de Histograms

Para evaluar visualmente la distribución, necesitas construir histogramas. Si las distribuciones se alejan de la normal, deberíamos notarlo de inmediato.

¡Hora de graficar! Construyamos distribuciones para dos grupos en un mismo 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

En este código, utilizamos la función sns.histplot de la biblioteca seaborn. La aplicamos a la columna deseada df_control['Impression'] para compararla con df_test['Impression'].

¿Son estas distribuciones normales? Difícil de decir...

Echemos un vistazo a los diagramas de caja:

Acerca de Diagramas de caja

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

Aun después de los boxplots, no está claro si las distribuciones son normales.

Para mostrar dos boxplots en el mismo gráfico, combinamos los data frames utilizando la función pd.concat.

Después, utilizamos la función sns.boxplot, pasando el data frame combinado df_combined a ella. En el eje x están los valores de la columna 'Impression', y en el eje y están los Grupo de Control y Grupo de Prueba. Con la ayuda de la biblioteca matplotlib, firmamos el gráfico y los ejes.

Aun después de los boxplots, no está claro si las distribuciones son normales. Pero en la normalidad, necesitamos estar seguros.

¿Cómo hacerlo? Los tests estadísticos vienen al rescate, los cuales discutiremos en el próximo capítulo.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 4
some-alt