No tienes acceso a esta clase

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

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15 Días
4 Hrs
56 Min
42 Seg

Medidas de dispersión en Python

11/25
Recursos

Aportes 30

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.

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.