01 · Punto de partida
La misma diferencia puede tener distinta importancia
Dos aplicaciones reducen su consumo de memoria en 50 MB. La primera utilizaba 100 MB y la segunda 2000 MB. El ahorro absoluto es igual, pero su importancia no: para la primera representa la mitad del consumo; para la segunda, apenas una pequeña fracción.
Para describir correctamente una variación necesitamos responder dos preguntas diferentes:
Cambio absoluto
¿Cuánto cambió?
Compara directamente el valor final con el inicial y conserva la unidad de la cantidad.
Cambio relativo
¿Cuánto cambió respecto de qué?
Compara la diferencia con un valor de referencia y no conserva unidades.
02 · Diferencia directa
Cambio absoluto
Si una cantidad pasa de un valor inicial q₀ a un valor final q₁, su cambio absoluto es:
El resultado tiene la misma unidad que los valores comparados. Si el tiempo de ejecución baja de 850 ms a 680 ms:
El signo negativo indica una disminución. La magnitud del cambio es |−170 ms| = 170 ms. Decir solamente «mejoró 170» sería incompleto: necesitamos la unidad y el sentido.
| Inicial | Final | Cambio | Lectura |
|---|---|---|---|
| 40 usuarios | 55 usuarios | +15 usuarios | Aumento de 15. |
| 850 ms | 680 ms | −170 ms | Disminución de 170 ms. |
| 12 GB | 12 GB | 0 GB | Sin cambio neto. |
03 · Cambio y referencia
Cambio relativo
El cambio relativo compara la diferencia con un valor de referencia. Cuando estudiamos la evolución desde un estado inicial, usamos habitualmente ese estado como referencia:
Para el tiempo que pasó de 850 ms a 680 ms:
El resultado −0.20 no lleva milisegundos: las unidades se cancelan al dividir una cantidad por otra de la misma clase. Significa que la disminución equivale a 0.20 veces el valor inicial.
Por qué es adimensional
Al no depender de la unidad, el cambio relativo permite comparar variaciones en escalas diferentes. El resultado será el mismo si expresamos ambos tiempos en milisegundos o segundos, siempre que usemos una unidad coherente.
04 · Una forma de comunicar
Variación porcentual
La variación porcentual es el cambio relativo multiplicado por 100:
En el ejemplo anterior, −0.20 · 100 % = −20 %. Podemos comunicar que el tiempo de ejecución disminuyó un 20 % respecto del valor inicial.
| Medida | Resultado | Interpretación |
|---|---|---|
| Cambio absoluto | −170 ms | Se redujeron 170 milisegundos. |
| Cambio relativo | −0.20 | La reducción equivale a 0.20 del valor inicial. |
| Variación porcentual | −20 % | Se redujo un 20 % respecto del valor inicial. |
05 · El denominador importa
Elegir la referencia
El cambio absoluto entre 80 y 100 tiene magnitud 20 en ambos sentidos. El cambio relativo no es simétrico:
- De 80 a 100:
(100 − 80) / 80 = 0.25, aumento del 25 %. - De 100 a 80:
(80 − 100) / 100 = −0.20, disminución del 20 %.
La diferencia se debe al denominador. En el primer recorrido comparamos 20 con 80; en el segundo, 20 con 100. Por eso no podemos invertir el sentido cambiando únicamente el signo del porcentaje.
¿Qué sucede si la referencia es cero?
La fórmula habitual requiere dividir por el valor inicial. Si q₀ = 0, el cambio relativo no está definido. Podemos informar el cambio absoluto —por ejemplo, «aumentó de 0 a 15 usuarios»—, pero no afirmar mediante esta fórmula que el aumento fue de cierto porcentaje.
06 · Comparaciones justas
Comparar cambios en escalas diferentes
Supongamos dos optimizaciones:
- Proceso A: pasa de 120 ms a 90 ms. Cambio absoluto: −30 ms.
- Proceso B: pasa de 1030 ms a 980 ms. Cambio absoluto: −50 ms.
El proceso B ahorra más milisegundos. Sin embargo:
- A:
−30 / 120 = −0.25, reducción del 25 %. - B:
−50 / 1030 ≈ −0.0485, reducción aproximada del 4.85 %.
A tiene la mejora proporcional mayor; B tiene el ahorro absoluto mayor. La elección de la medida depende de la pregunta. Si importa el tiempo ahorrado por petición, puede ser útil el cambio absoluto. Si queremos comparar la eficacia de optimizaciones sobre bases distintas, el relativo ofrece contexto.
function compararCambio(inicial, final) {
const absoluto = final - inicial;
const relativo = inicial === 0 ? null : absoluto / inicial;
return {
inicial,
final,
absoluto,
relativo,
porcentaje: relativo === null ? null : relativo * 100
};
}
console.log(compararCambio(120, 90));
console.log(compararCambio(1030, 980));
07 · Porcentajes como valores
Porcentaje y puntos porcentuales
Cuando los valores comparados ya son porcentajes, aparecen dos medidas diferentes. Si la tasa de éxito pasa del 40 % al 50 %:
- El cambio es de 10 puntos porcentuales:
50 % − 40 %. - El cambio relativo es del 25 %:
(50 − 40) / 40 = 0.25.
Decir que aumentó «10 %» es ambiguo. Puede interpretarse como llegar al 50 % sumando 10 puntos, o como aumentar un 10 % del valor inicial y llegar al 44 %.
Puntos porcentuales
Resta directa
Compara dos porcentajes como valores: 50 % − 40 % = 10 pp.
Variación porcentual
Cambio respecto de la base
Compara la diferencia con el porcentaje inicial: 10 / 40 = 25 %.
08 · Otra lectura del cambio
Factor multiplicativo
También podemos comparar el valor final directamente con el inicial:
Existe una relación sencilla entre factor y cambio relativo:
Un aumento del 25 % corresponde a un factor 1.25; una reducción del 20 %, a un factor 0.80. Esto permite reconstruir el valor final:
Subir y bajar el mismo porcentaje no cancela el cambio
Si un valor de 100 aumenta 10 %, llega a 110. Si luego disminuye 10 % respecto de 110, queda en 99. Los factores son 1.10 y 0.90; su producto es 0.99, no 1.
const inicial = 100;
const despuesDelAumento = inicial * 1.10;
const despuesDeLaDisminucion = despuesDelAumento * 0.90;
console.log(despuesDelAumento); // 110
console.log(despuesDeLaDisminucion); // 99
09 · Aproximaciones
Error absoluto y error relativo
Las mismas ideas sirven para describir la calidad de una aproximación. Si conocemos un valor de referencia v y obtenemos una aproximación a:
El valor absoluto elimina el signo porque aquí interesa la distancia al valor de referencia. Una aproximación de 999 para un valor real de 1000 tiene error absoluto 1 y relativo 0.001, es decir 0.1 %. El mismo error absoluto 1 respecto de un valor real de 2 equivale al 50 %.
function medirError(valorReferencia, aproximacion) {
const errorAbsoluto = Math.abs(aproximacion - valorReferencia);
const errorRelativo = valorReferencia === 0
? null
: errorAbsoluto / Math.abs(valorReferencia);
return { errorAbsoluto, errorRelativo };
}
console.log(medirError(1000, 999));
console.log(medirError(2, 1));
Una tolerancia absoluta es útil cerca de cero; una tolerancia relativa se adapta mejor a magnitudes de escalas muy diferentes. En aplicaciones robustas suele combinarse ambas.
10 · Exploración
Laboratorio: una diferencia, dos escalas
Elegí dos valores e invertí el sentido de comparación. El laboratorio calcula cambio absoluto, cambio relativo, porcentaje y factor multiplicativo. Probá utilizar cero como referencia para observar qué resultados dejan de estar definidos.
Comparación orientada de valores
de 100,00 a 125,00
De 100,00 a 125,00: aumento absoluto de 25,00, equivalente al 25,00 % del valor inicial.
Las barras representan los valores de referencia y comparación sobre una escala común. El color violeta indica el estado inicial y el coral, el final.
Preguntas para explorar
- Compará 100 con 125 en ambos sentidos. ¿Qué resultados cambian solo de signo y cuáles cambian también de magnitud?
- Compará 10 con 20 y luego 100 con 110. Ambos cambios absolutos son 10: ¿qué ocurre con los relativos?
- Elegí A = 0 y B = 50. ¿Qué medidas siguen disponibles?
- Buscá dos valores cuyo cambio porcentual sea −50 %. Después invertí la comparación.
11 · Implementación segura
Calcular variaciones en JavaScript
Una función reutilizable debe representar explícitamente el caso en que el cambio relativo no está definido. Utilizar null evita confundirlo con cero:
function analizarVariacion(inicial, final) {
if (!Number.isFinite(inicial) || !Number.isFinite(final)) {
throw new TypeError("Los valores deben ser números finitos");
}
const cambioAbsoluto = final - inicial;
const tieneReferencia = inicial !== 0;
const cambioRelativo = tieneReferencia
? cambioAbsoluto / inicial
: null;
return {
cambioAbsoluto,
magnitud: Math.abs(cambioAbsoluto),
cambioRelativo,
porcentaje: cambioRelativo === null ? null : cambioRelativo * 100,
factor: tieneReferencia ? final / inicial : null
};
}
console.log(analizarVariacion(80, 100));
console.log(analizarVariacion(0, 15));
Formatear no es calcular
Conviene conservar los resultados numéricos y aplicar formato únicamente al mostrarlos:
const formatoPorcentaje = new Intl.NumberFormat("es-AR", {
style: "percent",
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
const cambioRelativo = -0.0485436893;
console.log(formatoPorcentaje.format(cambioRelativo)); // -4,85 %
toFixed devuelve texto. Si redondeamos demasiado pronto y reutilizamos ese texto como número, podemos introducir errores innecesarios en cálculos posteriores.
12 · Comprensión
Confusiones frecuentes
«El cambio absoluto y el relativo dicen lo mismo»
El absoluto mide una diferencia con unidades. El relativo mide esa diferencia respecto de una referencia y permite interpretar la escala.
«Aumentar 20 % y disminuir 20 % devuelve al inicio»
Cada porcentaje se aplica a una base diferente. Los factores 1.20 y 0.80 producen 0.96, una disminución neta del 4 %.
«Pasar de cero a un valor positivo es aumentar 100 %»
La variación porcentual respecto de cero no está definida. Debe informarse el cambio absoluto u otra referencia justificada.
«Diez puntos porcentuales equivalen a un aumento del 10 %»
Solo coinciden en situaciones particulares. Pasar de 40 % a 50 % suma 10 puntos, pero representa un aumento relativo del 25 %.
«El porcentaje no necesita una referencia explícita»
Todo cambio relativo depende de una base. Omitirla puede volver ambigua o engañosa la comparación.
13 · Práctica guiada
Ejercicios de comprensión
Ejercicio 1: dos medidas del cambio
Una optimización reduce el uso de memoria de 640 MB a 480 MB.
- Calculá el cambio absoluto y su magnitud.
- Calculá el cambio relativo y la variación porcentual.
- Calculá el factor final/inicial.
- Expresá el resultado en una oración completa.
Ver solución razonada
El cambio absoluto es 480 − 640 = −160 MB y su magnitud es 160 MB. El cambio relativo es −160 / 640 = −0.25, es decir −25 %. El factor es 480 / 640 = 0.75. El uso de memoria disminuyó 160 MB, equivalente al 25 % del consumo inicial, y quedó en 0.75 veces ese valor.
Ejercicio 2: comparar optimizaciones
El algoritmo A pasa de 50 s a 35 s. El algoritmo B pasa de 200 s a 170 s. Determiná cuál tiene mayor reducción absoluta y cuál mayor reducción relativa.
Ver solución
A reduce 15 s y B reduce 30 s, por lo que B tiene mayor reducción absoluta. A reduce 15/50 = 30 %; B reduce 30/200 = 15 %. A tiene mayor reducción relativa.
Ejercicio 3: porcentajes sucesivos
Una cantidad comienza en 250, aumenta 12 % y después disminuye 12 %. Calculá los estados intermedios y el cambio neto absoluto y porcentual.
Ver solución y código
Después del aumento vale 250·1.12 = 280. Luego vale 280·0.88 = 246.4. El cambio neto es −3.6, equivalente a −3.6/250 = −1.44 %.
const inicial = 250;
const despuesDeSubir = inicial * (1 + 12 / 100);
const final = despuesDeSubir * (1 - 12 / 100);
const cambio = final - inicial;
const porcentaje = cambio / inicial * 100;
console.log({ inicial, despuesDeSubir, final, cambio, porcentaje });
14 · Síntesis
Ideas para recordar
- El cambio absoluto es la diferencia
final − inicialy conserva unidades. - El cambio relativo divide esa diferencia por un valor de referencia.
- La variación porcentual es el cambio relativo multiplicado por 100 %.
- Invertir el sentido modifica la referencia; los porcentajes no son simétricos.
- El cambio relativo respecto de cero no está definido.
- Los puntos porcentuales y la variación porcentual son medidas diferentes.
- Los factores multiplicativos permiten aplicar y combinar cambios relativos.
- Informar cambio absoluto y relativo ofrece una descripción más completa.
En el próximo tema estudiaremos la razón de cambio promedio: cómo relacionar el cambio de una salida con el cambio de una entrada a lo largo de un intervalo.