Logotipo de Zephyrnet

Cálculo de la media, la mediana y la moda en Python

Fecha:

Introducción

Cuando intentamos describir y resumir una muestra de datos, probablemente comencemos por encontrar el personalizado (o promedio), el media, y la modo de los datos. Estos son tendencia central medidas y suelen ser nuestro primer vistazo a un conjunto de datos.

En este tutorial, aprenderemos cómo encontrar o calcular la media, la mediana y la moda en Python. Primero codificaremos una función de Python para cada medida y luego usaremos Python statistics módulo para realizar la misma tarea.

Con este conocimiento, podremos echar un vistazo rápido a nuestros conjuntos de datos y tener una idea de la tendencia general de los datos.

Índice del contenido

Calcular la media de una muestra

Si tenemos una muestra de valores numéricos, entonces su personalizado o de promedio es la suma total de los valores (u observaciones) dividida por el número de valores.

Digamos que tenemos la muestra [4, 8, 6, 5, 3, 2, 8, 9, 2, 5]. Podemos calcular su media realizando la operación:

(4 + 8 + 6 + 5 + 3 + 2 + 8 + 9 + 2 + 5) / 10 = 5.2

La media (media aritmética) es una descripción general de nuestros datos. Suponga que compra 10 libras de tomates. Cuando cuentas los tomates en casa, obtienes 25 tomates. En este caso, se puede decir que el peso promedio de un tomate es de 0.4 libras. Esa sería una buena descripción de tus tomates.

La media también puede ser una mala descripción de una muestra de datos. Digamos que estás analizando un grupo de perros. Si toma el peso acumulado de todos los perros y lo divide por la cantidad de perros, entonces probablemente sería una mala descripción del peso de un perro individual, ya que las diferentes razas de perros pueden tener tamaños y pesos muy diferentes.

Qué tan buena o qué tan mala describa la media una muestra depende de la extensión de los datos. En el caso de los tomates, cada uno tiene casi el mismo peso y la media es una buena descripción de ellos. En el caso de los perros, no existe un perro de actualidad. Pueden variar desde un pequeño chihuahua hasta un mastín alemán gigante. Entonces, la media en sí misma no es una buena descripción en este caso.

Ahora es el momento de entrar en acción y aprender cómo podemos calcular la media usando Python.

Calcular la media con Python

Para calcular la media de una muestra de datos numéricos, usaremos dos de las funciones integradas de Python. Uno para calcular la suma total de los valores y otro para calcular la longitud de la muestra.

La primera función es sum(). Esta función incorporada toma un iterable de valores numéricos y devuelve su suma total.

La segunda función es len(). Esta función incorporada devuelve la longitud de un objeto. len() puede tomar secuencias (cadena, bytes, tupla, lista o rango) o colecciones (diccionario, conjunto o conjunto congelado) como argumento.

Así es como podemos calcular la media:

>>> def my_mean(sample):
... return sum(sample) / len(sample)
... >>> my_mean([4, 8, 6, 5, 3, 2, 8, 9, 2, 5])
5.2

Primero sumamos los valores en sample usando sum(). Luego, dividimos esa suma por la longitud de sample, que es el valor resultante de len(sample).

Usando Python media()

Dado que calcular la media es una operación común, Python incluye esta funcionalidad en el statistics módulo. Proporciona algunas funciones para calcular estadísticas básicas sobre conjuntos de datos. los statistics.mean() La función toma una muestra de datos numéricos (cualquier iterable) y devuelve su media.

Así es como Python mean() obras:

>>> import statistics >>> statistics.mean([4, 8, 6, 5, 3, 2, 8, 9, 2, 5])
5.2

Solo necesitamos importar las statistics módulo y luego llamar mean() con nuestra muestra como argumento. Eso devolverá la media de la muestra. Esta es una forma rápida de encontrar la media usando Python.

Hallar la mediana de una muestra

El media de una muestra de datos numéricos es el valor que se encuentra en el medio cuando ordenamos los datos. Los datos se pueden clasificar en orden ascendente o descendente, la mediana sigue siendo la misma.

Para encontrar la mediana, necesitamos:

  1. Ordenar la muestra
  2. Localiza el valor en el medio de la muestra ordenada

Al ubicar el número en medio de una muestra ordenada, podemos enfrentar dos tipos de situaciones:

  1. Si la muestra tiene un número impar de observaciones, entonces el valor medio en la muestra ordenada es la mediana
  2. Si la muestra tiene un número par de observaciones, luego necesitaremos calcular la media de los dos valores medios en la muestra ordenada

Si tenemos la muestra [3, 5, 1, 4, 2] y queremos encontrar su mediana, primero clasificamos la muestra para [1, 2, 3, 4, 5]. La mediana sería 3 ya que ese es el valor en el medio.

Por otro lado, si tenemos la muestra [1, 2, 3, 4, 5, 6], entonces su mediana será (3 + 4) / 2 = 3.5.

Echemos un vistazo a cómo podemos usar Python para calcular la mediana.

Encontrar la mediana con Python

Para encontrar la mediana, primero necesitamos ordenar los valores en nuestra muestra. Podemos lograrlo usando el sorted() función. sorted() toma un iterable y devuelve un ordenado list que contiene los mismos valores del iterable original.

El segundo paso es ubicar el valor que se encuentra en el medio de la muestra clasificada. Para ubicar ese valor en una muestra con un número impar de observaciones, podemos dividir el número de observaciones por 2. El resultado será el índice del valor en el medio de la muestra ordenada.

Dado que un operador de división (/) devuelve un número flotante, necesitaremos usar un operador de división de piso,//) para obtener un número entero. Entonces, podemos usarlo como un índice en una operación de indexación ([]).

Si la muestra tiene un número par de observaciones, entonces necesitamos ubicar los dos valores medios. Digamos que tenemos la muestra [1, 2, 3, 4, 5, 6]. Si dividimos su longitud (6) por 2 usando una división de piso, obtenemos 3. Ese es el índice de nuestro valor medio superior (4). Para encontrar el índice de nuestro valor medio-bajo (3), podemos disminuir el índice del valor medio superior en 1.

Pongamos todos estos juntos en una función que calcule la mediana de una muestra. Aquí hay una posible implementación:

>>> def my_median(sample):
... n = len(sample)
... index = n // 2
... # Sample with an odd number of observations
... if n % 2:
... return sorted(sample)[index]
... # Sample with an even number of observations
... return sum(sorted(sample)[index - 1:index + 1]) / 2
... >>> my_median([3, 5, 1, 4, 2])
3 >>> my_median([3, 5, 1, 4, 2, 6])
3.5

Esta función toma una muestra de valores numéricos y devuelve su mediana. Primero encontramos la longitud de la muestra, n. Luego, calculamos el índice del valor medio (o valor medio superior) dividiendo n by 2.

El if declaración verifica si la muestra en cuestión tiene un número impar de observaciones. Si es así, entonces la mediana es el valor en index.

Las return se ejecuta si la muestra tiene un número par de observaciones. En ese caso, encontramos la mediana calculando la media de los dos valores medios.

Tenga en cuenta que operación de corte [index - 1:index + 1] obtiene dos valores. El valor en index - 1 y el valor en index porque las operaciones de corte excluyen el valor en el índice final (index + 1).

Usando Python mediana()

Python statistics.median() toma una muestra de datos y devuelve su mediana. Así es como funciona el método:

>>> import statistics >>> statistics.median([3, 5, 1, 4, 2])
3 >>> statistics.median([3, 5, 1, 4, 2, 6])
3.5

Tenga en cuenta que median() maneja automáticamente el cálculo de la mediana para muestras con un número par o impar de observaciones.

Encontrar la moda de una muestra

El modo es la observación (u observaciones) más frecuente en una muestra. Si tenemos la muestra [4, 1, 2, 2, 3, 5], entonces su modo es 2 porque 2 aparece dos veces en la muestra mientras que los otros elementos solo aparecen una vez.

El modo no tiene por qué ser único. Algunas muestras tienen más de un modo. Digamos que tenemos la muestra [4, 1, 2, 2, 3, 5, 4]. Esta muestra tiene dos modos: 2 y 4 porque son los valores que aparecen con más frecuencia y ambos aparecen el mismo número de veces.

El modo se usa comúnmente para datos categóricos. Los tipos de datos categóricos comunes son:

  • booleano - Solo puede tomar dos valores como en true or false, male or female
  • nominal - Puede tomar más de dos valores como en American - European - Asian - African
  • ordinal - Puede tomar más de dos valores pero los valores tienen un orden lógico como en few - some - many

Cuando analizamos un conjunto de datos de datos categóricos, podemos usar el modo para saber qué categoría es la más común en nuestros datos.

Podemos encontrar muestras que no tienen modo. Si todas las observaciones son únicas (no hay observaciones repetidas), entonces su muestra no tendrá un modo.

Ahora que conocemos los conceptos básicos sobre el modo, echemos un vistazo a cómo podemos encontrarlo usando Python.

Encontrar el modo con Python

Para encontrar el modo con Python, comenzaremos contando el número de ocurrencias de cada valor en la muestra en cuestión. Luego, obtendremos los valores con un mayor número de ocurrencias.

Dado que contar objetos es una operación común, Python proporciona la collections.Counter clase. Esta clase está especialmente diseñada para contar objetos.

El Counter La clase proporciona un método definido como .most_common([n]). Este método devuelve un list de tuplas de dos elementos con el n elementos más comunes y sus respectivos recuentos. Si n se omite o None, entonces .most_common() devuelve todos los elementos.

Vamos a usar Counter y .most_common() para codificar una función que toma una muestra de datos y devuelve su modo.

Aquí hay una posible implementación:

>>> from collections import Counter >>> def my_mode(sample):
... c = Counter(sample)
... return [k for k, v in c.items() if v == c.most_common(1)[0][1]]
... >>> my_mode(["male", "male", "female", "male"])
['male'] >>> my_mode(["few", "few", "many", "some", "many"])
['few', 'many'] >>> my_mode([4, 1, 2, 2, 3, 5])
[2] >>> my_mode([4, 1, 2, 2, 3, 5, 4])
[4, 2]

Primero contamos las observaciones en el sample utilización de un Counter objetoc). Entonces, usamos un lista de comprensión para crear un list que contiene las observaciones que aparecen el mismo número de veces en la muestra.

Como .most_common(1) devuelve un list con uno tuple de la forma (observation, count), necesitamos obtener la observación en el índice 0 existentes list y luego el elemento en el índice 1 en el anidado tuple. Esto se puede hacer con la expresión c.most_common(1)[0][1]. Ese valor es el primer modo de nuestra muestra.

Tenga en cuenta que la condición de comprensión compara el recuento de cada observación (v) con el recuento de la observación más común (c.most_common(1)[0][1]). Esto nos permitirá obtener múltiples observaciones (k) con el mismo recuento en el caso de una muestra multimodo.

Usando Python modo()

Python statistics.mode() toma un poco data y devuelve su (primer) modo. Veamos cómo podemos usarlo:

>>> import statistics >>> statistics.mode([4, 1, 2, 2, 3, 5])
2 >>> statistics.mode([4, 1, 2, 2, 3, 5, 4])
4 >>> st.mode(["few", "few", "many", "some", "many"]) 'few'

Con una muestra de modo único, Python mode() devuelve el valor más común, 2. Sin embargo, en los dos ejemplos del procedimiento, devolvió 4 y few. Estas muestras tenían otros elementos que aparecían el mismo número de veces, pero no se incluyeron.

Como 3.8 Python también podemos usar statistics.multimode() que acepta un iterable y devuelve un list de modos.

Aquí tienes un ejemplo de cómo usar multimode():

>>> import statistics >>> statistics.multimode([4, 1, 2, 2, 3, 5, 4])
[4, 2] >>> statistics.multimode(["few", "few", "many", "some", "many"])
['few', 'many'] >>> st.multimode([4, 1, 2, 2, 3, 5])
[2]

Nota: La función siempre devuelve un list, incluso si pasa una muestra monomodo.

Conclusión

La media (o promedio), la mediana y la moda son, por lo general, nuestra primera mirada a una muestra de datos cuando intentamos comprender la tendencia central de los datos.

En este tutorial, hemos aprendido cómo encontrar o calcular la media, la mediana y la moda usando Python. Primero cubrimos, paso a paso, cómo crear nuestras propias funciones para calcularlas, y luego cómo usar Python statistics módulo como una forma rápida de encontrar estas medidas.

Fuente: https://stackabuse.com/calculating-mean-median-and-mode-in-python/

punto_img

Información más reciente

punto_img