Want to make creations as awesome as this one?

Transcript

Scatter plot

plt.scatter(x=countries['SurfaceArea'], y=countries['Population'])

Los diagramas de dispersión son un conjunto de puntos que muestran cómo dos variables se relacionan; es decir, a través de ellos es posible distinguir el grado de correlación entre dichas variables. Utiliza este tipo de diagrama cuando desees identificar si hay correlación positiva, negativa o nula entre las columnas del dataframe.

Cuando se ocupa la función scatter de matplotlib se especifican las columnas del dataframe a relacionar. Del dataframe countries que hemos estado ocupando, dos que seguramente tendrán correlación son la superficie territorial y la población.

Para obtener los mismos resultados usando la función de Pandas, ocupa el siguiente código:countries.plot.scatter(x='SurfaceArea', y='Population',logx=True, logy=True)

Boxplot con Pandas

Seaborn ocupa en su lugar scatterplot: sns.scatterplot(x=np.log(countries['SurfaceArea']), y=np.log(countries['Population']))

Boxplot con Seaborn

plt.scatter(x=countries['SurfaceArea'], y=countries['Population']) Sin embargo, de la figura anterior podemos notar que el rango que abarcan ambos ejes es muy grande. Cuando esto ocurre, una escala logarítmica puede reducirlos a un rango más manejable. plt.scatter(x=np.log(countries['SurfaceArea']), y=np.log(countries['Population'])) Lo anterior muestra una correlación positiva entre ambas variables, esto quiere decir que a medida que la superficie aumenta, aumenta también la población. Este análisis te será de utilidad especialmente cuando construyas los modelos de aprendizaje automático en los siguientes bloque de aprendizajes del diplomado.

Los scatter plot te ayudarán a encontrar relaciones entre las variables o columnas que poseen tus bases de datos. Muchas veces estas relaciones no son perceptibles o evidentes al revisar información tabular. Aunque el análisis de correlación es un primer paso en los modelos de aprendizaje automático, los descubrimientos podrían sorprenderte. Repasa nuevamente tus fuentes de información, considerando incluso el resultado de vincularlas:¿Qué pares de variables o columnas tienen una relación indiscutible para ti?¿La correlación entre dicha información es positiva o negativa?¿Qué ventajas podría sacar tu organización de un análisis con scatter plot?

¡Ahora es tu turno!

Para culminar este subtema, completa lo siguiente: Con el dataframe countries genera un scatter plot, utilizando la plataforma de trazado que desees, para mostrar la relación entre el GNP y la expectativa de vida (LifeExpectancy) y responde los siguientes cuestionamientos: ¿Los resultados obtenidos coinciden con lo que esperabas?¿Tuviste que modificar la escala de tus ejes?Puedes calcular con exactitud el coeficiente de correlación entre estas dos variables con la función corr, como se indica a continuación: countries['GNP'].corr(countries['LifeExpectancy'])

Reflexiona

Scatter matrix con Pandas

Scatter matrix con Seaborn

Scatter plot matrix

Una scatter matrix plot es un conjunto de scatter plots presentados en un formato de matriz. Normalmente se combinan con heatmaps (mapas de calor) para mostrar el valor exacto del índice de correlación en cada intersección. Utiliza este tipo de diagrama cuando desees analizar la relación entre todos los posibles pares de columnas en el dataframe. En términos generales, matplotlib no suele contener funciones de trazado que operen en más de un objeto. Por tanto, para hacer una matriz de dispersión tendrías que construirla con subplots e ir añadiendo una a la vez. Sin embargo, Pandas y Seaborn sí la pueden construir con una sola llamada a una función.

Las scatter matrix plots son un excelente punto de partida cuando no tengas pistas ni sospechas sobre las relaciones que hay en tus datos; pues verifican entre todos los posibles pares de variables o columnas numéricas. Combínalas con heatmaps para validar, con resultados numéricos, el índice de correlación. Durante esta semana realiza este análisis con tus fuentes de información. Puedes hacerlo empleando un único archivo o combinando aquellos que puedan ser vinculados a través de una o más de sus columnas. Los resultados podrían impresionarte.

Reflexiona

Comencemos eliminando de nuestro dataframe las columnas numéricas que no serán relevantes en el análisis countries.drop(['IndepYear','Capital','GNPOld'], axis=1, inplace=True) pd.plotting.scatter_matrix(countries, figsize=(10,10))

Un resultado similar se obtiene con la función pairplot de Seaborn sns.pairplot(countries) Seaborn complementa las matrices de dispersión con los mapas de calor, incluyendo en estos últimos la correlación numérica entre el par de variables. sns.heatmap(round(countries.corr(),2), annot=True) Puesto que en la diagonal se encuentra relacionada una columna con ella misma, el coeficiente de correlación es 1. La más alta relación positiva que encontramos en el mapa coincide con la que graficamos anteriormente en el scatterplot: SurfaceArea y Population con un coeficiente de correlación de 0.42