¿Para qué sirve la estadística descriptiva?

1

Fundamentos de Estadística Descriptiva y sus Aplicaciones Prácticas

2

Estadística Descriptiva en el Flujo de Ciencia de Datos

3

Estadística Descriptiva Aplicada a Ciencia de Datos

Estadística descriptiva para analítica

4

Uso de Deepnote para Jupyter Notebooks en Ciencia de Datos

5

Tipos de Datos en Ciencia de Datos: Categóricos y Numéricos

6

Medidas de Tendencia Central: Media, Mediana y Moda

7

Media vs. Mediana: Diferencias y Aplicaciones Prácticas

8

"Estadística Descriptiva con Pandas: Medidas de Tendencia Central"

9

Rango y Rango Intercuartil en Medidas de Dispersión

10

Desviación Estándar y Varianza en Estadística Descriptiva

11

Cálculo y Visualización de Medidas de Dispersión en Python

12

Visualización de Datos: Catálogo y Uso de Diagramas en Python

13

Diagramas de Dispersión y su Análisis con Seaborn

Estadística en la ingesta de datos

14

Escalamiento Lineal de Datos Numéricos para Machine Learning

15

Transformaciones No Lineales para Datos Sesgados en Machine Learning

16

Procesamiento y Escalamiento de Datos Numéricos en Python

17

Mapeo de Variables Categóricas en Python: Dumi y OneHot

18

Codificación de Variables Categóricas en Python con Pandas y Scikit-Learn

19

Correlación y covarianza en análisis de datos

20

Construcción y Análisis de la Matriz de Covarianza en Python

Proyecto de aplicación

21

Álgebra Lineal: Vectores y Valores Propios de una Matriz

22

Análisis de Componentes Principales (PCA) y Proyección de Vectores

23

Reducción de Dimensionalidad con PCA en Python

Despedida

24

Estadística Descriptiva: Claves para el Análisis de Datos

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Cálculo y Visualización de Medidas de Dispersión en Python

11/25
Recursos

¿Cómo calcular medidas de dispersión en Python?

La comprensión de las medidas de dispersión es clave para el análisis de datos. Este análisis no solo ayuda a resumir un conjunto de datos, sino que también permite identificar patrones y anomalías que pueden ser de gran valor. En esta clase, aprenderás a calcular estas medidas con Python, utilizando librerías de visualización y análisis de datos.

¿Cómo calcular la desviación estándar?

La desviación estándar es una medida que indica la cantidad de variación o dispersión de un conjunto de datos. En Python, calcularla es bastante sencillo con la librería Pandas.

import pandas as pd

# Suponiendo que el DataFrame 'df' ya ha sido importado
desviacion_estandar = df['Price'].std()
print(desviacion_estandar)  # Salida aproximada: 6428.0

Esta fórmula muestra cómo encontrar la desviación estándar de la columna 'Price' en un DataFrame.

¿Cómo calcular el rango de una serie de datos?

El rango proporciona una medida rápida y sencilla de la extensión de los datos. Se calcula restando el valor mínimo del máximo.

rango = df['Price'].max() - df['Price'].min()
print(rango)  # Salida aproximada: 50000

¿Cómo calcular cuartiles y percentiles?

Los cuartiles dividen los datos en cuatro partes iguales, mientras que los percentiles los dividen en cien. Puedes utilizar la función quantile de Pandas para obtener estos valores.

mediana = df['Price'].median()
q1 = df['Price'].quantile(0.25)
q3 = df['Price'].quantile(0.75)

print(mediana, q1, q3)  # Salida: 4800, 2100, 8990

¿Cómo interpretar el rango intercuartil?

El rango intercuartil (IQR) es la diferencia entre el tercer cuartil (Q3) y el primer cuartil (Q1). Proporciona una medida de dispersión que excluye los valores extremos.

iqr = q3 - q1
print(iqr)  # Salida: 6890

¿Cómo identificar outliers?

Los outliers pueden distorsionar los resultados del análisis. Usando el IQR, se pueden definir límites para identificar posibles datos anómalos.

min_limit = q1 - 1.5 * iqr
max_limit = q3 + 1.5 * iqr

print(min_limit, max_limit)  # Salida: valores límite

¿Cómo visualizar la distribución de datos con Seaborn?

Visualizar tus datos puede proporcionar insights valiosos. En Python, el uso de la librería Seaborn permite generar gráficos como histogramas y diagramas de caja.

import seaborn as sns
import matplotlib.pyplot as plt

sns.histplot(df['Price'], kde=False)
plt.show()

sns.boxplot(x=df['Price'])
plt.show()

¿Cómo manejar variables categóricas?

El diagrama de caja es especialmente útil para visualizar la distribución de datos categóricos, permitiendo comparar varias categorías de un vistazo.

# Diagrama de caja para variables categóricas
sns.boxplot(x='EngineType', y='Price', data=df)
plt.show()

Este marco conceptual es crucial para aquellos interesados en análisis de datos y busca combinar cálculos numéricos con representaciones gráficas claras. Las herramientas y métodos presentados aquí son fundamentales para estudios estadísticos avanzados. ¡Continúa explorando y desarrollando tus habilidades!

Aportes 34

Preguntas 13

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Asimetría en distribuciones

Como vimos en la clase, el hecho de que nuestra distribución tenga una tendencia a la derecha o a izquierda nos representa un problema, ya que no a acorde con una distribución y eso puede afectar a nuestros análisis si no tomamos en cuenta ese sesgo. No siempre hay que confiar en nuestra intuición o lo que vemos a simple vista, hay métodos como:

  • Primer coeficiente de asimetría de Pearson (asimetría de modo)
  • Segundo coeficiente de asimetría de Pearson (asimetría mediana)
  • Coeficiente de Groeneveld y Meeden
  • Coeficiente de Fisher

Por mencionar algunos.
.

Y por último, no hay que olvidar la curtosis:

Una curtosis grande implica una mayor concentración de valores de la variable tanto muy cerca de la media de la distribución (pico) como muy lejos de ella (colas), al tiempo que existe una relativamente menor frecuencia de valores intermedios. Esto explica una forma de la distribución de frecuencias/probabilidad con colas más gruesas, con un centro más apuntado y una menor proporción de valores intermedios entre el pico y colas.
Una mayor curtosis no implica una mayor varianza, ni viceversa.

Otra cosa que pueden hacer si quieren tener un vistaso rápido de las medidtas de dispersión es usar la función y les regresa los valores vistos en la clase, se puede aplicar sobre una columna o toda la tabla:

df['price_usd'].describe()

count    38531.000000
mean      6639.971021
std       6428.152018
min          1.000000
25%       2100.000000
50%       4800.000000
75%       8990.000000
max      50000.000000
Name: price_usd, dtype: float64

Usando plotly.

Si se van directamente a la base de datos, en cada columna es fácil visualizar el tipo de distribución que continete.
En este dataset no hay ninguna que sea normal xd

df['price_usd'].std(ddof=1) # muestral
df['price_usd'].std(ddof=0) # poblacional

En mi caso, he estado trabajando con la variable odometer_value, así qué analicemos lo siguiente:

  • Haciendo una descripción general de la variable observamos los valores de los siguientes estadísticos:
df['odometer_value'].describe()

count      38531.000000
mean      248864.638447
std       136072.376530
min            0.000000
25%       158000.000000
50%       250000.000000
75%       325000.000000
max      1000000.000000
  • Ahora bien, observemos si esta variable presenta una distribución simétrica:

De la gráfica podemos notar que no representa una districuión simétrica

  • Ahora podemos observar con un boxplot cómo están disperso los datos:

  • De la caja, podemos observar que si bien los datos no son una representación simétrica, los valores mínimos, máximos y cuartiles no están muy alejados o al menos no los cuartiles.


Pero si comparamos de forma categórica las variables engine_fuel y odometer_value obtenemos el siguiente gráfico:

  • De éste boxplot podemos observar, por ejemplo, que los autos que son híbridos-diesel y los de diesel, tienden a ser los más usados o con más kilometrajes de recorrido.
    Y a diferencia del análisis con la variable price_usd, podemos observar qué los carros eléctricos son los que menos kilómetros recorridos tienen, esto puede deberse a su 1) costo superior en comparación con los otros autos y 2) a su autonomía en carretera.

***(Si consideras que algo d elo dicho aquí está mal, por favor hazmelo saber)

En el momento de realizar el calculo de la desviación estándar hay que tener en cuenta que al momento de llamar la función .std(), la libreria realiza la operacion con la formula de muestra
N-1, si desean realizar la operacion con todos los datos usen:
df['price_usd].std(ddof=0)
Referencia:
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.std.html

Decir que el Cuantil es tomar el x% de los datos no me parece conceptualmente correcto.
El cuantil solo toma un solo dato ubicado en el punto x%.
No se está tomando x área de la distribución sino un solo punto(dato) de ella.

el grafico BOXPLOT me salia vertical y busque para colocarlo horizontal
sns.boxplot(df[“price_usd”],orient=“h”)

Curtosis la distribución se desplaza entre el eje Y, (muy achatada o apuntalada) mientras que la asimetría el gráfico se desplaza en el eje X (izquierda o derecha).

los quartiles permiten comparar los datos de la distribución. ejemplo si mi sueldo es 500 $. es poco o es mucho ?. si estoy debajo de la media. la mitad de la población gana más que yo. si estoy en el primer quartil. el 75 % gana más que yo. y si estoy en el tercer Qualtil soy del 75% que más gana


Diagrama de cajas por fabricante

Otra de las librerías de visualización de datos en Python es matplotlib.

Un diagrama que se usa muchísimo con los cuartiles son los diagramas de caja o en inglés Box Plot.

Por cierto, una forma más sencilla de escribir el código para ‘Límites para detección de outliers’ es:

minlimit = Q1 - 1.5*iqr
maxlimit = Q3 + 1.5*iqr
print(f'rango para detección de outliers: {minlimit}, {maxlimit}')

Vídeo sobre Diagrama de cajas y bigotes | Boxplot

Si quieren aumentar el tamaño de las figuras pueden usar este código:

sns.boxplot(x = "engine_fuel",
            y = "price_usd", 
            data = df)
plt.rcParams["figure.figsize"] = (7.5, 7.5)
# Rango = valor max -valor min
rango = df['price_usd'].max()-df['price_usd'].min()
rango
# quartiles
median = df['price_usd'].median()
Q1 = df['price_usd'].quantile(q=0.25)
Q3 =df['price_usd'].quantile(q=0.75)
min_val =df['price_usd'].quantile(q=0)
max_val = df['price_usd'].quantile(q=1.0)
print(min_val , Q1, median, Q3, max_val)

de vez en cuando en platzi te cruzas con cursos que valen oro, este es uno de ellos, entra fácil en mi top5 cursos de platzi, y eso que llevo como 70 creo.

El rango se calcula como la diferencia entre el valor máximo y el mínimo de un conjunto de datos, lo que refleja la extensión total de los valores en ese conjunto. En este caso, `rango = df['price_usd'].max() - df['price_usd'].min()` captura esta diferencia, mostrando cuánto varían los precios de los autos en dólares. Aunque el término "rango" pueda sugerir una posición a otra, en estadística se refiere a esta medida de dispersión que indica la amplitud de los datos.
La clase se centró en las medidas de dispersión en Python, utilizando un conjunto de datos sobre precios de autos. Se calcularon la desviación estándar, el rango, los cuartiles, la mediana y el rango intercuartil (IQR). Se discutió la detección de valores atípicos y se mostraron visualizaciones como diagramas de caja e histogramas para ilustrar la distribución de los datos. Además, se destacó la importancia de combinar medidas numéricas con visualizaciones en el análisis estadístico.
Tengo dos dudas: 1. ¿Por qué en los apuntes de Deepnote, para visibilizar el Hisplot y Boxplot se incluye esto: ax=ax\_hist; ax=ax\_box? 2. ¿ Por qué en el Boxplot del final se debe incluir el "data=df"? Muchas gracias
me parece que esta imagen en la que se plotea un histograma con precio en el eje Y kilometraje en el eje x, y se agrupa por colores segun el año del modelo daria informacion util para entender en donde buscar una buena compra. se pueden observar la existencia de autos economicos con poco kilometraje y un modelo relativamente reciente, debido a que la distribucion de cantidad de autos segun el kilometraje estaba completamente sesgada a la izquierda me parece que sacar rango intercuartil o demas medidas de dispercion no aportaria informacion.![](https://static.platzi.com/media/user_upload/image-e20f1c11-f4ee-402e-9a39-fb1a9953e845.jpg)
ya encontraron trabajo ? : C
**¿Sabías que en Python puedes medir qué tan dispersos están tus datos en solo unas líneas de código?** 🧑‍💻 Con librerías como `NumPy` y `Pandas`, puedes calcular el rango, la varianza, y la desviación estándar fácilmente. ¡Analiza tus datos como un pro y descubre patrones ocultos! 🚀📊
A los que les haya pasado que al realizar la gráfica de caja con el código ```js sns.boxplot(df['price_usd']) ``` y les muestra la gráfica verticalmente y no horizontalmente como se ve en el video ![](https://static.platzi.com/media/user_upload/image-6d6b2c2e-b69d-43b0-96a7-815e280736b4.jpg) Esto pasó posiblemente porque la orientación de la gráfica de caja (boxplot) esté siendo afectada por el tamaño de la figura en la que se está mostrando la gráfica. Cuando la figura es más ancha que alta, la orientación de la gráfica de caja suele ser horizontal, y cuando es más alta que ancha, la orientación suele ser vertical. Entonces para corregir esto simplemente agregas al código el parámetro para que la orientación sea horizontal ```js sns.boxplot(x=df['price_usd'], orient='h') ``` y ahora si puedo ver la gráfica tal cual como en el video. ![](https://static.platzi.com/media/user_upload/image-6cffa565-01d6-46b4-9315-f93c41ca852a.jpg)

Me sorprende lo que se puede hacer en este ejercicio. Si que aprendi mucho en usar valores estadisticos con python y como estos nos pueden ayudar a ser los mejores.

Escribiendo mal sin quere hice el siguiente diagrama: sns.boxenplot(df\['price\_usd'])![](https://static.platzi.com/media/user_upload/image-741b36e4-f3da-4728-b6b5-edee102964f6.jpg)
Para generar el boxplot no me funciono como se indica en la clase, pero funciono de esta forma: sns.boxplot(x='price\_usd', data=df) espero ahorrarle estrés a alguien :P

Una buena manera de sacar toda la información de la base de datos puede ser:
df.describe()
Te imprime todos los datos, los cuartiles, máximos y mínimos, etc. Pruébenla con el dataset que tengan!

Creo que seria mejor llamar a la funcion “sesgada a la izquierda”

Buena clase.

Medidas de Desviación Estandar en Python

  • Como ejemplo podemos extraer datos estadisticos con el siguiente código:
df.std() #desviación estandar
rango = df.max() - df.min()
df.median() #mediana
Q1 = df.quantile(q=0.25) #Primer cuartil; cuantil es la division general de datos q es un número entre 0 y 1
IQR = Q3-Q1 #rango intercuatil

sns.distplot(df) #histograma o diagrama de distribucion
sns.boxplor(x='col1', y='col2', data=df)

Información resumida de esta clase
#EstudiantesDePlatzi

  • Con el comando std puedo obtener la desviación estándar de alguna columna que desee

  • Para obtener los cuartiles debo utilizar el comando quantile y especificar que tipo de cuartile decido hallar

  • Cuartiles es lo que obtengo cuando divido mis datos en 4 partes iguales

  • Percentiles es lo que obtengo cuando divido mis datos en 100 partes iguales

  • El diagrama de caja nos permite trabajar con variables categóricas y poder ver mucho mejor estos estadísticos

MEDIDAS DE DISPERSIÓN: RANGO, VARIANZA Y DESVIACIÓN ESTÁNDAR

  • Recopilar los datos y representarlos en forma de tablas, gráficos y otras distribuciones es esencial para nosotros. Pero también es esencial que tengamos una idea clara de cómo se distribuyen los datos, qué tan dispersos están y cuál es la media de los datos. Las medidas de la media no son suficientes para describir los datos y su naturaleza. También necesitamos medir la dispersión en los datos con respecto a diferentes estadísticas de los datos. Por ejemplo, necesitamos poder responder preguntas como, ¿Cuál es la dispersión de la media de los datos circundantes o su mediana? Estos valores nos permiten describir los datos de una mejor manera.