Tienda internacional de EBRC Publisher UK - ¡Envíos a todo el mundo!



Estadística aplicada con Python: media, mediana, moda, varianza y desvío estándar

Publicado por Eugenia Bahit en

En los últimos años, ha ido creciendo el interés de profesionales de diversas disciplinas científicas, en sumarse a Python con la intención de aplicar la ciencia de datos mediante la programación en este lenguaje.

Uno de los pilares de la ciencia de datos es la estadística descriptiva, y con ella aparecen operaciones básicas como el cálculo de la media, moda, mediana, varianza, y el desvío estándar.

En la rama 3 del lenguaje, media, moda, mediana, varianza y desvío estándar, pueden obtenerse con funciones de la biblioteca estándar de Python. Pero en Python 2, es un poco más complejo. De allí, la importancia de poder obtener estos valores mediante un procedimiento matemático.

Por ejemplo, en Python 3, la varianza muestral se obtiene de forma muy sencilla:

from statistics import variance
datos = [20, 15, 18, 11, 12, 9, 32, 75, 44]
varianza = variance(datos)
# Salida: 461.44...

Sin embargo, en Python 2, la varianza muestral se obtiene en un proceso matemático paso a paso:

datos = [20, 15, 18, 11, 12, 9, 32, 75, 44]
media = float(sum(datos)) / len(datos)
diferencias = [xi - media for xi in datos]
potencias = [x ** 2 for x in diferencias]
suma = sum(potencias)
varianza = suma / (len(datos)-1)
# Salida: 461.44...
La varianza poblacion, en Python 3, se obtiene simplemente agregando una "p" delante del nombre de la función anterior:
from statistics import pvariance
datos = [20, 15, 18, 11, 12, 9, 32, 75, 44]
varianza = pvariance(datos)
# Salida: 410.172..
En Python 2, la varianza poblacional, requiere exactamente los mimsmos pasos que la varianza muestral, pero la división final no se hace sobre n-1, sino sobre n:
varianza = suma / len(datos)

Otros datos que pueden obtenerse mediante la biblioteca statistics en Python 3 además de la varianza, son: media, mediana, moda, y desvío estándar.

Aprende más sobre estadística descriptiva y matemáticas con Python

3 comentarios


  • Alfredo De Jesús Gutiérrez Gómez en

    Excelente articulo. Me ha gustado mucho

    (Comentario ID #129587380471)

  • Eugenia Bahit en

    Hola Jordi, ¡muchas gracias por tu comentario!

    En Python 2 la división entre enteros retorna un entero. Así, 3 / 2 = 1 en vez 1.5.
    Sin embargo, 3.0 / 2 = 1.5 y 3 / 2.0 = 1.5. Es decir que para obtener un número real a partir de una división, en Python 2, conviene que uno de los dos (dividendo o divisor) sean números de coma flotante.

    (Comentario ID #129586954487)

  • Jordi en

    Hola Eugenia! Qué bien el nuevo blog! Felicitaciones y a la espera de más artículos.
    He visto que haces float(sum(datos)) / len(datos) y no me queda claro porqué es necesario float allí.
    Muchas gracias!

    (Comentario ID #129586397431)

Dejar un comentario