Solución
Aquí tienes el código en Python que realiza todos los cálculos solicitados:
import numpy as np from scipy.stats import skew series = [[78, 85, 91, 76, 84, 90, 72, 88, 95, 80, 89, 83, 77, 82, 74], [55, 60, 58, 62, 65, 59, 54, 61, 67, 63, 57, 66, 64, 68, 69], [82, 90, 78, 88, 95, 85, 87, 92, 91, 89, 84, 93, 80, 81, 94], [45, 50, 52, 55, 53, 48, 49, 51, 47, 54, 56, 58, 59, 60, 62], [90, 92, 88, 87, 95, 94, 93, 91, 96, 89, 85, 91, 90, 88, 92]] mayor_media = [0, 0] mayor_desviacion = [0, 0] mayor_asimetria = [0, 0] for i in range(len(series)): media = np.mean(series[i]) desviacion = np.std(series[i]) asimetria = skew(series[i]) print(f"Serie {i}") print(f"Media {media}") print(f"Desviación típica {desviacion}") print(f"Asimetría {asimetria}") if media > mayor_media[1]: mayor_media = [i, media] if desviacion > mayor_desviacion[1]: mayor_desviacion = [i, desviacion] if abs(asimetria) > abs(mayor_asimetria[1]): mayor_asimetria = [i, asimetria] print(f"La mayor media la tiene la serie {mayor_media[0]} y vale {mayor_media[1]}") print(f"La mayor desviacion la tiene la serie {mayor_desviacion[0]} y vale {mayor_desviacion[1]}") print(f"La mayor asimetria la tiene la serie {mayor_asimetria[0]} y vale {mayor_asimetria[1]}")
Resultados Esperados
Al ejecutar el código anterior, obtendrás:
- La media de cada serie.
- La desviación estándar de cada serie.
- La asimetría de cada serie.
- Comparaciones que indicarán cuál serie tiene la media más alta, mayor dispersión y mayor asimetría.
Análisis
Con base en los resultados:
- Media: Te permitirá saber cuál serie tiene calificaciones más altas en promedio.
- Desviación estándar: Te permitirá evaluar qué serie es más variada o dispersa.
- Asimetría: Te ayudará a entender si las calificaciones en una serie son más propensas a tener valores extremos hacia un lado.
EL código optimizado:
import numpy as np from scipy.stats import skew # Definir las series de datos series = { "Serie A": np.array([78, 85, 91, 76, 84, 90, 72, 88, 95, 80, 89, 83, 77, 82, 74]), "Serie B": np.array([55, 60, 58, 62, 65, 59, 54, 61, 67, 63, 57, 66, 64, 68, 69]), "Serie C": np.array([82, 90, 78, 88, 95, 85, 87, 92, 91, 89, 84, 93, 80, 81, 94]), "Serie D": np.array([45, 50, 52, 55, 53, 48, 49, 51, 47, 54, 56, 58, 59, 60, 62]), "Serie E": np.array([90, 92, 88, 87, 95, 94, 93, 91, 96, 89, 85, 91, 90, 88, 92]), } # Almacenar resultados en un diccionario resultados = {} # Calcular medidas estadísticas para cada serie for nombre, serie in series.items(): media = np.mean(serie) desviacion_estandar = np.std(serie, ddof=1) # Muestra asimetria = skew(serie) resultados[nombre] = { "media": media, "desviacion_estandar": desviacion_estandar, "asimetria": asimetria } # Función para encontrar la serie con el valor máximo de una clave específica def encontrar_maximo(clave): max_nombre = max(resultados, key=lambda x: abs(resultados[x][clave])) return max_nombre, resultados[max_nombre][clave] # Comparar medias serie_media_maxima, media_maxima = encontrar_maximo("media") print(f"\nLa {serie_media_maxima} tiene la media más alta: {media_maxima:.2f}") # Comparar desviaciones estándar serie_desviacion_maxima, desviacion_maxima = encontrar_maximo("desviacion_estandar") print(f"La {serie_desviacion_maxima} tiene la mayor dispersión: {desviacion_maxima:.2f}") # Comparar asimetrías serie_asimetria_maxima, asimetria_maxima = encontrar_maximo("asimetria") print(f"La {serie_asimetria_maxima} tiene más asimetría: {asimetria_maxima:.2f}")