
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 , sino sobre :
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.
Excelente articulo. Me ha gustado mucho
(Comentario ID #129587380471)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.
(Comentario ID #129586954487)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.
Hola Eugenia! Qué bien el nuevo blog! Felicitaciones y a la espera de más artículos.
(Comentario ID #129586397431)He visto que haces float(sum(datos)) / len(datos) y no me queda claro porqué es necesario float allí.
Muchas gracias!