¿Cómo calcular medidas de tendencia central con Python?
La programación en Python ofrece potentes herramientas para realizar análisis estadísticos. En esta clase se explorarán las medidas de tendencia central utilizando el lenguaje de programación Python y la librería Pandas. Se usará un dataset de catálogo de autos usados para poner en práctica estas técnicas.
¿Cómo calcular el promedio en Pandas?
El promedio o media es una de las principales medidas de tendencia central. Para calcularlo en Pandas, necesitas enfocarte en una columna específica del DataFrame.
import pandas as pd
# Lectura del datasetcars = pd.read_csv('path/to/cars.csv')# Cálculo del promedio en la columna 'price_USD'average_price = cars['price_USD'].mean()print(f"El precio promedio de los autos es: {average_price} USD")
En este ejemplo, se calcula el precio promedio de los autos en el dataset. Saber el precio promedio nos da una idea general del mercado, pero no evidencia si hay valores atípicos que desvirtúen la media.
¿Cómo usar la mediana para detectar sesgos?
La mediana es útil para identificar sesgos, ya que es menos sensible a los valores extremos. Para calcularla, se emplea la siguiente instrucción:
median_price = cars['price_USD'].median()print(f"La mediana de los precios es: {median_price} USD")
Comparando la media y la mediana, podemos inferir la existencia de autos con precios significativamente altos que afecten la media, llevando a un desplazamiento hacia la derecha en su distribución.
¿Cómo construir un histograma con Pandas?
Un histograma es una representación gráfica indispensable para visualizar distribuciones de datos y detectar tendencias o variaciones.
import matplotlib.pyplot as plt
# Construcción del histogramacars['price_USD'].plot(kind='hist', bins=20)plt.xlabel('Precio en USD')plt.ylabel('Frecuencia')plt.title('Distribución de Precios de Autos Usados')plt.show()
Este código genera un histograma que permite observar la distribución de precios de los autos, detectando la mayoría de observaciones entre ciertos rangos, y resaltando potenciales valores atípicos.
¿Cómo mejorar visualizaciones con Seaborn?
Seaborn es una librería poderosa para gráficos estadísticos, complementando el análisis visual con Pandas.
import seaborn as sns
# Displot con separación por marca de autossns.displot(data=cars, x='price_USD', hue='manufacturer_name', kind='kde')plt.title('Distribución por Fabricante')plt.show()
Esta visualización es sobrecargada si existen muchas marcas, por lo que es recomendable limitar las categorías o hacer análisis por subconjuntos más manejables.
¿Qué es un análisis estadístico descriptivo más detallado?
Además de las medidas de tendencia central, los estadísticos descriptivos incluyen la visualización de distribuciones y conteos de categorías:
# Conteo de tipos de motorengine_count = cars['engine_type'].value_counts()print(engine_count)
Esta observación cuantifica el número de autos por tipo de motor, proporcionando un contexto valioso sobre la diversidad del dataset.
Antes de continuar explorando las medidas de dispersión en la próxima clase, considerar estos elementos en tu análisis facilitará el entendimiento de las tendencias y patrones dentro de los datos. ¡Sigue practicando y expande tus habilidades en análisis de datos!
"Estadística Descriptiva con Pandas: Medidas de Tendencia Central"
"Estadística Descriptiva con Pandas: Medidas de Tendencia Central"
Recursos
Resumen
¿Cómo calcular medidas de tendencia central con Python?
La programación en Python ofrece potentes herramientas para realizar análisis estadísticos. En esta clase se explorarán las medidas de tendencia central utilizando el lenguaje de programación Python y la librería Pandas. Se usará un dataset de catálogo de autos usados para poner en práctica estas técnicas.
¿Cómo calcular el promedio en Pandas?
El promedio o media es una de las principales medidas de tendencia central. Para calcularlo en Pandas, necesitas enfocarte en una columna específica del DataFrame.
import pandas as pd
# Lectura del dataset
cars = pd.read_csv('path/to/cars.csv')
# Cálculo del promedio en la columna 'price_USD'
average_price = cars['price_USD'].mean()
print(f"El precio promedio de los autos es: {average_price} USD")
En este ejemplo, se calcula el precio promedio de los autos en el dataset. Saber el precio promedio nos da una idea general del mercado, pero no evidencia si hay valores atípicos que desvirtúen la media.
¿Cómo usar la mediana para detectar sesgos?
La mediana es útil para identificar sesgos, ya que es menos sensible a los valores extremos. Para calcularla, se emplea la siguiente instrucción:
median_price = cars['price_USD'].median()
print(f"La mediana de los precios es: {median_price} USD")
Comparando la media y la mediana, podemos inferir la existencia de autos con precios significativamente altos que afecten la media, llevando a un desplazamiento hacia la derecha en su distribución.
¿Cómo construir un histograma con Pandas?
Un histograma es una representación gráfica indispensable para visualizar distribuciones de datos y detectar tendencias o variaciones.
import matplotlib.pyplot as plt
# Construcción del histograma
cars['price_USD'].plot(kind='hist', bins=20)
plt.xlabel('Precio en USD')
plt.ylabel('Frecuencia')
plt.title('Distribución de Precios de Autos Usados')
plt.show()
Este código genera un histograma que permite observar la distribución de precios de los autos, detectando la mayoría de observaciones entre ciertos rangos, y resaltando potenciales valores atípicos.
¿Cómo mejorar visualizaciones con Seaborn?
Seaborn es una librería poderosa para gráficos estadísticos, complementando el análisis visual con Pandas.
import seaborn as sns
# Displot con separación por marca de autos
sns.displot(data=cars, x='price_USD', hue='manufacturer_name', kind='kde')
plt.title('Distribución por Fabricante')
plt.show()
Esta visualización es sobrecargada si existen muchas marcas, por lo que es recomendable limitar las categorías o hacer análisis por subconjuntos más manejables.
¿Qué es un análisis estadístico descriptivo más detallado?
Además de las medidas de tendencia central, los estadísticos descriptivos incluyen la visualización de distribuciones y conteos de categorías:
# Conteo de tipos de motor
engine_count = cars['engine_type'].value_counts()
print(engine_count)
Esta observación cuantifica el número de autos por tipo de motor, proporcionando un contexto valioso sobre la diversidad del dataset.
Antes de continuar explorando las medidas de dispersión en la próxima clase, considerar estos elementos en tu análisis facilitará el entendimiento de las tendencias y patrones dentro de los datos. ¡Sigue practicando y expande tus habilidades en análisis de datos!
Bueno, como a mí también me gustan los Audi, pero no las camionetas, ni los tope de gama, haré el filtro para el A5.
Aquí ya me muestra los Audi A5 y todos sus detalles:
!A51
Hacemos el un diagrama de frecuencias entre el precio por año del modelo
!Audi a5
Conclusión: El modelo del A5 ideal para mi sería entre el 2009 y 2011, por la relación precio utilidad que le daré (en un futuro no muy lejano, jejejeje)
También me llama la atención, cuántos modelos del a5 salieron con transmisión manual y vemos que...
!Mecanical
hay solo 2 jajajaja. Es una decepción.
Y para finalizar, vamos a hacer varios diagramas de frecuencias con sus respectivas conclusiones entre:
.
El precio en relación el tipo de motor:
!1
Los carros a diésel son más caros que los de gasolina.
.
Como influye el color en el precio del auto:
!2
Los colores más caros son los más feos, xd. Y claro, también los menos comúnes.
.
Y la ubicación con el precio del auto.
!3
¿Eso es Ruso? Creo que si, por lo tanto, comprarse un carro es muy caro en Rusia. Rusia descartada para emigrar, jejeje.
Dato curioso: ¿Cuál es la diferencia entre un diagrama de frecuencias (gráfica de barras) y un histograma
.
El diagrama de frecuencias (gráfica de barras) sirve para representar las variables cualitativas ordinales. En el eje horizontal se representan las diferentes categorías y sobre él se levantan unas columnas o barras cuya altura es proporcional a la frecuencia de cada categoría. También podríamos utilizar este tipo de gráfico para representar variables cuantitativas discretas, pero lo que no es correcto hacer es usarlo para las variables cualitativas nominales.
El gran mérito del diagrama de barras es expresar la magnitud de las diferencias entre las categorías de la variable. Pero ahí está precisamente, su punto débil, ya que son fácilmente manipulables si modificamos los ejes.
.
El es un gráfico con un significado mucho más profundo. Un histograma representa una distribución de frecuencias que se utiliza (o debe) para representar la frecuencia de las variables cuantitativas continuas. Aquí no es la altura, sino el área de la barra lo que es proporcional a la frecuencia de ese intervalo, y está en relación con la probabilidad con la que cada intervalo puede presentarse.
Otra diferencia muy importante entre el diagrama de barras y el histograma es que en el primero solo se representan los valores de las variables que hemos observado al hacer el estudio. Sin embargo, el histograma va mucho más allá, ya que representa todos los valores posibles que existen dentro de los intervalos, aunque no hayamos observado ninguno de forma directa. Permite así calcular la probabilidad de que se represente cualquier valor de la distribución, lo que es de gran importancia si queremos hacer inferencia y estimar valores de la población a partir de los resultados de nuestra muestra.
No tenia un modelo especifico en mente, así que lo primero que hize fue ver cuales eran las marcas de autos con mas datos.
Elegí a Nissan, tenia una noción de los modelos de esta marca pero lo que hize fue volver a listar el dataset de Nissan por marcas
Me incline por "Primera" y realize el filtrado además incluí únicamente a los modelos a partir del 2000, les dejo un tip también se puede hacer el condicional usando la función query de pandas a mi criterio es mas fácil.
nissan_df=df.query('manufacturer_name=="Nissan" and model_name=="Primera" and year_produced>=2000')
💡 Si es de las primeras veces que trabajas con Pandas, te comparto un tutorial para que aprendas desde cero y paso a paso todo lo fundamental que necesitas:
Sinceramente Pandas era todo lo que necesitaba para mejorar mi productividad con el análisis de Datos y ahora con Deepnote todo será más organizado, estoy que lloro de la alegría <3
Otra función muy útil de Seaborn, pairplot entrega mucha información contrastada de variables que escojamos.
Acá se puede ver que el kilometraje es también relevante respecto del precio, entre otras cosas.
Analice como se han producido los autos con los años y encontré que antes se fabricaban más autos mecánicos! pero la tendencia ahora es la producción de automáticos.
Y luego revise los precios de vehículos de acuerdo por su transmisión y los autos automatices son más costosos que los mecánicos.
Conclusión
Ahora se fabrican más autos automáticos que antes y el valor de estos es más alto.