La moda es el valor o categoría que aparece con mayor frecuencia. Es la medida de tendencia central más relacionada con la repetición y puede existir una moda, varias o ninguna.
La moda identifica la observación más frecuente de un conjunto. Mientras la media calcula un equilibrio y la mediana usa una posición ordenada, la moda cuenta apariciones.
Es la única de las tres medidas de tendencia central que se aplica directamente a variables nominales, como navegador, color, país o tipo de error.
En la lista siguiente:
El valor 3 aparece tres veces, más que cualquier otro. No es necesario ordenar los datos para contar frecuencias, aunque ordenarlos puede facilitar la revisión.
Una tabla permite organizar el conteo:
| Valor | Frecuencia | Porcentaje |
|---|---|---|
| 2 | 2 | 25 % |
| 3 | 3 | 37,5 % |
| 4 | 1 | 12,5 % |
| 5 | 1 | 12,5 % |
| 6 | 1 | 12,5 % |
| Total | 8 | 100 % |
La moda se obtiene buscando la frecuencia máxima. El porcentaje no es necesario para encontrarla, pero ayuda a comunicar su importancia.
Si dos valores empatan en la frecuencia máxima, no se debe elegir uno arbitrariamente: ambos forman parte del resultado modal.
Explora una distribución unimodal, una bimodal y una lista en la que cada valor aparece una sola vez. Las barras muestran las frecuencias y la línea indica la frecuencia máxima.
La lista 1, 2, 3, 4, 5 no tiene una moda única porque todos los valores aparecen una vez. No debe decirse que la moda es 1 solo porque es el mínimo o el primer valor.
En una variable continua, que dos observaciones tengan exactamente el mismo valor puede ser poco frecuente. En ese caso la moda puede ser poco informativa, salvo que se agrupen los valores en intervalos.
Supongamos estas preferencias de navegador:
No se puede calcular una media de nombres de navegador. La moda, en cambio, responde directamente cuál es la categoría más frecuente.
| Medida | Pregunta | Tipo de información |
|---|---|---|
| Media | ¿Cuál es el equilibrio numérico? | Magnitud de todos los valores. |
| Mediana | ¿Cuál es la posición central? | Orden relativo. |
| Moda | ¿Qué se repite más? | Frecuencia de valores o categorías. |
Las tres pueden ser diferentes y no existe una medida universalmente mejor.
En un histograma, la clase modal es el intervalo con mayor frecuencia. En una distribución discreta, la moda es el valor o los valores con mayor conteo.
Una clase modal no identifica el valor exacto más frecuente dentro del intervalo. Solo indica que allí se concentra el mayor número de observaciones.
Si los datos están agrupados en intervalos, se identifica primero la clase modal:
| Intervalo | Frecuencia |
|---|---|
| [0, 10) | 4 |
| [10, 20) | 9 |
| [20, 30) | 6 |
| [30, 40) | 3 |
La clase modal es [10, 20). Si se necesita una estimación dentro del intervalo, puede interpolarse usando las frecuencias vecinas, pero el resultado dependerá de supuestos adicionales.
Una fórmula habitual para una clase de igual amplitud es:
La fórmula supone una forma regular dentro y alrededor de la clase. Si las amplitudes son distintas, hay que trabajar con densidades, no solo con frecuencias.
El redondeo puede crear o eliminar repeticiones. Por ejemplo, 1,04 y 1,05 pueden convertirse ambos en 1,0 si se redondea a una decimal.
Por eso hay que decidir la precisión antes de contar frecuencias y documentar si la moda se calculó sobre datos originales o redondeados.
Para categorías, la frecuencia debe contarse con igualdad exacta o con una normalización documentada. “Chrome”, “chrome” y “ Chrome ” pueden representar la misma categoría si el sistema permite esas variantes.
Antes de calcular la moda conviene limpiar espacios, mayúsculas, códigos y valores desconocidos. Cambiar las reglas de agrupación puede cambiar la categoría modal.
Una moda basada en una muestra pequeña puede ser inestable. Si una categoría aparece 3 veces en una muestra de 5, eso no garantiza que sea la más frecuente en toda la población.
Informar el conteo y el porcentaje permite valorar la fuerza del resultado: “Chrome, 12 de 30 sesiones (40 %)” es más útil que “Chrome” sin contexto.
El siguiente ejemplo cuenta frecuencias con un Map, detecta todas las modas y dibuja las barras correspondientes.
const datos = ['Chrome', 'Firefox', 'Chrome', 'Edge', 'Chrome', 'Safari', 'Firefox'];
const frecuencias = new Map();
datos.forEach(valor => {
frecuencias.set(valor, (frecuencias.get(valor) || 0) + 1);
});
const frecuenciaMaxima = Math.max(...frecuencias.values());
const modas = [...frecuencias.entries()]
.filter(par => par[1] === frecuenciaMaxima)
.map(par => par[0]);
console.log('Frecuencias:', Object.fromEntries(frecuencias));
console.log('Moda:', modas.length ? modas : 'No hay moda única');
if (typeof document !== 'undefined') {
const canvas = document.getElementById('canvasModaCodigo');
const contexto = canvas.getContext('2d');
const nombres = [...frecuencias.keys()];
const area = { izquierda: 80, derecha: 770, arriba: 65, base: 350 };
const escalaY = valor => area.base - valor / frecuenciaMaxima * (area.base - area.arriba);
const ancho = (area.derecha - area.izquierda) / nombres.length * 0.65;
contexto.clearRect(0, 0, canvas.width, canvas.height);
contexto.fillStyle = '#fffdfb'; contexto.fillRect(0, 0, canvas.width, canvas.height);
contexto.fillStyle = '#4b2a1d'; contexto.font = 'bold 18px Segoe UI, Arial'; contexto.fillText('Frecuencia por categoría', 22, 30);
contexto.strokeStyle = '#f0d8c5'; contexto.lineWidth = 1;
for (let valor = 0; valor <= frecuenciaMaxima; valor++) { const y = escalaY(valor); contexto.beginPath(); contexto.moveTo(area.izquierda, y); contexto.lineTo(area.derecha, y); contexto.stroke(); contexto.fillStyle = '#7c3f24'; contexto.font = '11px Segoe UI, Arial'; contexto.textAlign = 'right'; contexto.fillText(valor, area.izquierda - 8, y + 4); }
nombres.forEach((nombre, indice) => {
const frecuencia = frecuencias.get(nombre); const centro = area.izquierda + (indice + .5) / nombres.length * (area.derecha - area.izquierda); const x = centro - ancho / 2;
contexto.fillStyle = modas.includes(nombre) ? '#c2410c' : '#e9a77f'; contexto.fillRect(x, escalaY(frecuencia), ancho, area.base - escalaY(frecuencia));
contexto.fillStyle = '#7c3f24'; contexto.textAlign = 'center'; contexto.font = '12px Segoe UI, Arial'; contexto.fillText(nombre, centro, area.base + 20); contexto.fillText(frecuencia, centro, escalaY(frecuencia) - 8);
});
}Una moda debe acompañarse de su frecuencia, porcentaje, tamaño de muestra y definición de las categorías. Si hay varias modas, todas deben informarse.
Las barras modales no deben distinguirse solo por color: deben tener etiquetas directas o un resumen textual.
La moda resume la frecuencia máxima y permite describir tanto números como categorías. Su cálculo es simple, pero la interpretación exige reconocer empates, ausencia de repeticiones, agrupamientos y reglas de limpieza.
En el próximo tema compararemos media, mediana y moda para decidir cuál resulta más adecuada en distintas distribuciones.