En esta oportunidad vamos a desarrollar ejemplos de aplicación de listas como vectores, aplicados a cálculos estadísticos
Ante todo veamos un ejemplo recordando lo visto anterirmente, pero aplicado a vectores.
Ejemplo 1
Vamos a ingresar hacia una lista "a", las notas del examen tomado a 24 alumnos
>>>a = [12,17,10,11,6,13,9,2,14,13,12,11,13,16,10,12,14,15]
Le pedimos la longitud
>>>len(a)
18
Tenemos sólo 18 notas registradas. Vamos a añadir tres notas al final.
>>> a.append(12)
>>> a.append(11)
>>> a.append(15)
Le pedimos el número de notas:
>>> len(a)
21
Vamos a remover la última pues no es correcto.
>>> a.pop(-1)
15
>>> a
[12, 17, 10, 11, 6, 13, 9, 2, 14, 13, 12, 11, 13, 16, 10, 12, 14, 15, 12, 11]
Ahora observamos que, como tercera nota debe ser 14, por lo que debemos insertarlo antes del 11; e decir, en la posición 2
>>> a[2]=14
Mostramos las notas
>>> a
[12, 17, 14, 11, 6, 13, 9, 2, 14, 13, 12, 11, 13, 16, 10, 12, 14, 15, 12, 11]
Debido al desorden con el que trabajamos, hallamos que una nueva prueba con 14 debe estar antes de la serie 14, 13, 12; es decir, debemos insertar en la poición 8
>>> a.insert(8,14)
Las notas
>>> a
[12, 17, 14, 11, 6, 13, 9, 2, 14, 14, 13, 12, 11, 13, 16, 10, 12, 14, 15, 12, 11]
¿Cuántas hay?
>>> len(a)
21
Qué fastidio !. Ahora encontramos que 15 debe estar en la posición 12
>>> a.insert(12,15)
Bueno, ahora terminemos con añadir las dos últimas notas
>>> a.append(18)
>>> a.append(12)
Ahora, ¿cuántas notas tenemos?
>>> len(a)
24
Mostremos las notas
>>> a
[12, 17, 14, 11, 6, 13, 9, 2, 14, 14, 13, 12, 15, 11, 13, 16, 10, 12, 14, 15, 12, 11, 18, 12]
¿Cuál es el tipo de datos de la variable "a"?
>>> print(type(a))
Siendo "a", una lista, no podemos realizar operaciones matemáticas, por lo que debemos convertirla en un vector
En consecuencia importemos numpy para trabajar con vectores.
>>> import numpy as np
Convertimos en vector a la lista "a" y lo dejamos en el vector "x"
>>> x = np.array(a)
Veamos los tipos de ambas variables
>>> print(type(a))
>>> print(type(x))
>>> n = len(x)
Bien, hagamos los cálculos
La media
>>> xmed = sum(x)/n
Calculemos el vector "x2" como el cuadrado de "x"
>>> x2 = x*x
Continuemos con los cálculos
La varianza
>>> xvar = (sum(x2)-n*xmed**2)/(n-1)
La desviación estándar
>>> xdesv = np.std(x)
La varianza poblacional o para muestras con tamaño menor a 10, como lo calcula Python
>>> xv = np.var(x)
La mínima nota
>>> xmin = np.amax(x)
Error, debemos usar amin
>>> xmin = np.amin(x)
La máxima nota
>>> xmax = np.amax(x)
Finalmente procedemos a imprimir los resultados en un formato elegante:
>>> print("Resultados del examen:",x,"\n\nNro de alumnos:",n,"\nPromedio del aula:",xmed,"\nMinima nota:",xmin,"\nMaxima nota:",xmin,"\nVarianza:",xvar,"\nDesv estándar:",xdesv)
Añadiremos el cálculo de la mediana:
>>>xmediana = np.median(x)
>>>xmediana
12.5
El primer cuartil o percentil 25
>>>Q1 = np.percentile(x,25)
Visto como Cuantil, pero con el segundo argumento en decimales:
>>>cuant25 = np.quantile(x,0.25)
¿Cuál será la mínima nota del 25% de las mayores notas?
>>>min = np.quantile(x,0.75)
Del mismo modo, el coeficiente de variación:
>>>cvar = xdesv/xmed
>>>cvar
0.268575769112862
Interpretación de los resultados:
El promedio general del grupo es 12.33, con una desviación de 3.31 puntos.
Por otro lado se observa que, el 50% de alumnos tienen una máxima nota de 12.5
Comparando el promedio y la mediana, podemos afirmar que las notas están distribuídas simétricamente.
Esto lo podemos corroborar con el coeficiente de variación que nos dice que las notas presentan una variabilidad del 26.86%; es decir, son bastante homgéneas.
Y siendo la nota mínima = 2 y la máxima = 18, podemos afirmar que las notas están más sesgadas (más dispersas) hacia la derecha (las mayores notas).
La siguiente imagen contiene las operaciones realizadas, aunque por su tamaño, hemos eliminado las órdenes que nos permiten ver lo que estamos haciendo.