Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Medidas de dispersión en Python

11/25
Recursos

Aportes 11

Preguntas 8

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

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

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

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)

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

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)

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.

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

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).

Usando plotly.