-
Promedio o media truncada.
-
Este promedio elimina entre 5% al 25% de los elementos de mi lista según sea el requerimiento, y la eliminación se hace en ambos entremos.
Entonces el uso mas practico es eliminar esos valores atípicos en los extremos que tienden a estar muy distantes de la media real.
Como en el ejemplo de los salarios, podemos eliminar los salarios de los extremos (como el de Bill Gates).
-
Necesitamos una lista de valores y el % de elementos a eliminar de mi lista:
Ejemplo: lista [2,3,5,1,4,25] 10% de eliminación es decir 0.6, redondeamos a 1.
Vamos a eliminar eliminar entonces el 1er elemento y el ultimo, PERO primero debemos organizar la lista y luego los elementos que quedan le aplicamos una media aritmética como ya la vimos en clases pasada, y esa seria una media truncada.
Media Truncada = 3.5
Vamos al código.
// Calcular media truncada
// De una lista de valores, vamos a eliminar entre el 5% al 25% (tanto del extremo mas alto como del mas bajo)
// y se calcula una media aritmetica de los valores que queden.
const score = [90,40,70,50,60,80]
function calcularMediaTruncada (array, recorte){
/* Vamos a calcular segun el recorte requerido, cuantos
elementos vamos a retirar de nuestro array, desde ambos extremos */
let lengthFinal = Math.round(array.length * (recorte/100));
// Condicional por si length es < 1 sea 1
if(lengthFinal >= 1){
lengthFinal=lengthFinal
} else (
lengthFinal = 1
)
// Ordenar array
array.sort((a , b) => {
if(a > b) return 1;
if(a < b) return -1;
return 0;
});
// Ciclo para aplicar metodo segun la cantidad de veces requeridas por el recorte
for(let i=0; i < lengthFinal; i++){
array.shift();
array.pop();
}
// A los elementos que quedaron en mi array, aplico media aritmetica
let sumaArray = array.reduce( (valorAcumulado, valorNuevo) => valorAcumulado + valorNuevo)
let promedio = sumaArray / array.length;
console.log(promedio);
return promedio.toFixed(2);
}
// Colocar como argumento array y porcentaje de recorte segun la norma entre 5% - 25%
calcularMediaTruncada(score, 25);
// 65
// Vamos a calcular la media truncada de la siguiente lista y eliminando primero el 10% de la lista
calcularMediaTruncada([20,2,10,5,22,20,100,43,45,33,95,3], 10);
// 29.60
Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.