Fundamentos · Tema 03

Error absoluto, relativo y porcentual

Cómo convertir la diferencia entre un valor de referencia y una aproximación en una medida que permita evaluar, comparar y comunicar resultados.

01 · Punto de partida

Una aproximación necesita una medida de calidad

Decir que un algoritmo obtuvo 3.14 no permite evaluar el resultado sin más información. ¿Qué cantidad intentaba aproximar? ¿Cuál es el valor de referencia? ¿La diferencia es importante para la aplicación?

Si aproximamos π mediante 3.14, la diferencia es cercana a 0.00159. Ese dato ya resulta más informativo, pero todavía debemos interpretarlo según la escala del problema. Un error de un milímetro puede ser despreciable al medir una carretera y grave al fabricar un componente electrónico.

Por eso utilizamos varias medidas complementarias:

  • El error con signo indica dirección: exceso o defecto.
  • El error absoluto indica la distancia en las unidades originales.
  • El error relativo compara esa distancia con el tamaño del valor.
  • El error porcentual expresa el error relativo como porcentaje.

02 · Lenguaje común

Valor de referencia y valor aproximado

Usaremos la siguiente notación durante la lección:

x*
Valor exacto o valor de referencia aceptado.
x̃
Valor aproximado producido por una medición o algoritmo.
e
Error con signo, definido aquí como x̃ − x*.
|e|
Magnitud del error, sin importar su dirección.

Algunos textos definen el error con el signo opuesto, x* − x̃. Ambas convenciones son posibles. Lo importante es declararla y mantenerla. Los errores absoluto y relativo no cambian porque utilizan valores absolutos.

Error negativo

La aproximación queda por debajo

Si x* = 10 y x̃ = 9.7, entonces e = −0.3: se subestima.

Error positivo

La aproximación queda por encima

Si x* = 10 y x̃ = 10.3, entonces e = 0.3: se sobrestima.

03 · Distancia en las unidades originales

Error absoluto

El error absoluto es la distancia entre el valor aproximado y el valor de referencia:

Siempre es mayor o igual que cero y conserva las unidades de la cantidad medida.

Ejemplo: longitud de una pieza

Una pieza debería medir exactamente 80 mm, pero una medición informa 79.6 mm.

Ea = |79.6 mm − 80 mm| = 0.4 mm

La medida subestima la longitud en 0.4 mm. Para decidir si es aceptable necesitamos conocer la tolerancia de fabricación.

function errorAbsoluto(referencia, aproximacion) {
  return Math.abs(aproximacion - referencia);
}

console.log(errorAbsoluto(80, 79.6)); // 0.4000000000000057

El resultado visible contiene una pequeña diferencia de punto flotante. Podemos formatearlo para comunicarlo, pero la validación debe hacerse con una tolerancia y no comparando el texto.

04 · Error respecto de la escala

Error relativo

El error relativo divide el error absoluto por la magnitud del valor de referencia:

No tiene unidades. Esto permite comparar aproximaciones de magnitudes diferentes.

Para la pieza de 80 mm:

Er = 0.4 / 80 = 0.005

La diferencia representa cinco milésimas del valor de referencia.

La escala cambia la interpretación

El mismo error absoluto puede tener impactos muy diferentes.
Valor de referenciaAproximaciónError absolutoError relativo
1.0 m0.9 m0.1 m0.1
100 m99.9 m0.1 m0.001
10 000 m9 999.9 m0.1 m0.00001

05 · Una escala familiar

Error porcentual

El error porcentual es el error relativo multiplicado por 100:

En el ejemplo anterior:

E% = 0.005 × 100 % = 0.5 %

La medición difiere del valor esperado en un 0.5 %. El porcentaje facilita la comunicación, aunque no reemplaza las unidades del error absoluto.

function medirErrores(referencia, aproximacion) {
  const errorConSigno = aproximacion - referencia;
  const absoluto = Math.abs(errorConSigno);

  if (referencia === 0) {
    return { errorConSigno, absoluto, relativo: null, porcentual: null };
  }

  const relativo = absoluto / Math.abs(referencia);
  return {
    errorConSigno,
    absoluto,
    relativo,
    porcentual: relativo * 100
  };
}

console.log(medirErrores(80, 79.6));

06 · Elegir la medida adecuada

¿Cuándo utilizar cada error?

Ventajas y limitaciones de las medidas de error.
MedidaRespondeVentajaLimitación
Error con signo¿Por encima o por debajo?Conserva la direcciónErrores opuestos pueden cancelarse al promediar
Error absoluto¿A qué distancia?Conserva las unidadesNo considera la escala
Error relativo¿Qué fracción del valor?Permite comparar escalasNo se define si la referencia es cero
Error porcentual¿Qué porcentaje representa?Es fácil de comunicarHereda los problemas del error relativo

07 · Aplicaciones

Tres ejemplos con escalas diferentes

Aproximación de π

Si usamos 22/7 como aproximación y Math.PI como referencia:

Ea ≈ 0.00126449    E% ≈ 0.04025 %

Tiempo de respuesta

Un sistema debería responder en 200 ms, pero demora 230 ms. El error absoluto es 30 ms y el porcentual es 15 %. Aquí una diferencia numéricamente pequeña puede ser relevante para la experiencia del usuario.

Distancia astronómica

Una estimación de 149 500 000 km frente a una referencia de 149 597 870.7 km tiene un error absoluto cercano a 97 870.7 km. Parece enorme, pero representa aproximadamente 0.0654 %.

const casos = [
  { nombre: "Pi", referencia: Math.PI, aproximacion: 22 / 7 },
  { nombre: "Latencia", referencia: 200, aproximacion: 230 },
  { nombre: "Distancia", referencia: 149_597_870.7, aproximacion: 149_500_000 }
];

for (const caso of casos) {
  const absoluto = Math.abs(caso.aproximacion - caso.referencia);
  const porcentaje = absoluto / Math.abs(caso.referencia) * 100;
  console.log(caso.nombre, { absoluto, porcentaje });
}

08 · Caso especial

¿Qué sucede cuando el valor de referencia es cero?

Si x* = 0, la fórmula del error relativo requiere dividir por cero. Por lo tanto, el error relativo tradicional y el porcentual no están definidos.

Por ejemplo, si una balanza debería marcar 0 g y muestra 0.01 g, el error absoluto es claro: 0.01 g. No tiene sentido afirmar que el error es un porcentaje infinito del valor esperado.

Incluso cuando la referencia es muy pequeña pero distinta de cero, el error relativo puede crecer mucho. Eso no implica que el cálculo sea inútil: señala que la evaluación relativa no es adecuada por sí sola en esa región.

09 · Cuando no conocemos la solución

Error verdadero y error estimado

Las fórmulas anteriores suponen que conocemos x*. En un problema numérico real, normalmente buscamos ese valor y no podemos calcular el error verdadero de forma directa.

Podemos entonces utilizar información indirecta:

xₙ−xₙ₋₁

Cambio entre iteraciones

Comparamos aproximaciones sucesivas y observamos si se estabilizan.

|f(xₙ)|

Residuo

Medimos cuánto incumple la aproximación la ecuación original.

B

Cota teórica

Utilizamos una propiedad del método que garantiza un error máximo.

El cambio aproximado entre iteraciones puede definirse como:

Ea,aprox = |xn − xn−1|

Y, si xₙ ≠ 0, una versión relativa frecuente es:

Er,aprox = |xn − xn−1| / |xn|

Que dos iteraciones consecutivas sean parecidas no demuestra por sí solo que estén cerca de la solución. El método podría haberse estancado. Por eso combinaremos criterios y estudiaremos la convergencia de cada algoritmo.

10 · Criterios de aceptación

Tolerancia absoluta y relativa

Una tolerancia expresa cuánto error aceptamos. Para cubrir valores cercanos a cero y magnitudes grandes, es habitual combinar dos criterios:

|x̃ − x*| ≤ max(tolabs, tolrel × |x*|)

La tolerancia absoluta domina cerca de cero. La relativa escala con el tamaño de la referencia.

function dentroDeTolerancia(
  referencia,
  aproximacion,
  toleranciaAbsoluta,
  toleranciaRelativa
) {
  const error = Math.abs(aproximacion - referencia);
  const limite = Math.max(
    toleranciaAbsoluta,
    toleranciaRelativa * Math.abs(referencia)
  );
  return { aceptada: error <= limite, error, limite };
}

console.log(dentroDeTolerancia(0, 1e-11, 1e-10, 1e-8));
console.log(dentroDeTolerancia(1e8, 1e8 + 0.5, 1e-10, 1e-8));

Las tolerancias no deben copiarse sin contexto. Dependen de las unidades, la precisión de los datos, la sensibilidad de la aplicación y el costo de continuar calculando.

11 · Lectura del resultado

Error y cifras significativas

El error relativo ayuda a estimar cuántas cifras resultan confiables. Si un valor de referencia es 1234.5 y la aproximación es 1234.4, el error absoluto es 0.1, pero el relativo es cercano a 0.000081, es decir, 0.0081 %. Las primeras cifras coinciden y la diferencia aparece hacia el final.

Sin embargo, no debemos mostrar más cifras de las justificadas por los datos y el método:

Cálculo interno

Conservar precisión

Evitá redondear en cada paso salvo que el método lo requiera.

Presentación

Comunicar lo significativo

Redondeá al final según la incertidumbre y las necesidades del usuario.

Mostrar 12.3456789012 m a partir de un sensor con resolución de un centímetro crea una falsa sensación de precisión.

12 · Exploración interactiva

Laboratorio: medir e interpretar el error

Elegí un caso o ingresá tus propios valores. La recta muestra el valor de referencia, la aproximación y la distancia entre ambos.

EXPERIMENTO 03

Comparador de aproximaciones

Eₐ = |x̃ − x*|

Los resultados numéricos aparecen debajo.
Error con signo−0,4
Error absoluto0,4
Error relativo0,005
Error porcentual0,5 %

La aproximación subestima el valor de referencia en 0,4.

Preguntas para explorar

  1. Compará los casos “Pieza mecánica” y “Latencia”. ¿Qué aporta el porcentaje?
  2. Seleccioná “Referencia cero”. ¿Qué medidas siguen teniendo sentido?
  3. Usá el mismo error absoluto con referencias 1, 100 y 10 000.
  4. Intercambiá referencia y aproximación. ¿Qué medidas cambian y por qué?

13 · Implementación reutilizable

Diseñar un informe de error

Una función robusta debe validar entradas y representar explícitamente la ausencia de error relativo cuando la referencia es cero.

function informeDeError(referencia, aproximacion) {
  if (!Number.isFinite(referencia) || !Number.isFinite(aproximacion)) {
    throw new Error("Los valores deben ser números finitos");
  }

  const conSigno = aproximacion - referencia;
  const absoluto = Math.abs(conSigno);
  const relativo = referencia === 0
    ? null
    : absoluto / Math.abs(referencia);

  return {
    referencia,
    aproximacion,
    direccion: conSigno < 0 ? "subestima"
      : conSigno > 0 ? "sobrestima"
      : "exacta",
    errorConSigno: conSigno,
    errorAbsoluto: absoluto,
    errorRelativo: relativo,
    errorPorcentual: relativo === null ? null : relativo * 100
  };
}

console.table([
  informeDeError(Math.PI, 3.14),
  informeDeError(200, 230),
  informeDeError(0, 0.01)
]);

Utilizar null evita confundir “no definido” con cero, infinito o un dato faltante accidentalmente. La capa de presentación puede convertirlo en el texto apropiado.

14 · Resultados reproducibles

Cómo informar una aproximación

Un reporte numérico debería responder qué se calculó, cómo se evaluó y con qué criterio se aceptó. Por ejemplo:

Cuando la solución exacta no está disponible, debemos decirlo y nombrar la medida utilizada: diferencia entre iteraciones, residuo, cota teórica o comparación con una solución de mayor precisión.

También conviene registrar:

  • unidades y escala de los valores;
  • tolerancias absoluta y relativa;
  • cantidad de iteraciones o evaluaciones;
  • precisión de los datos de entrada;
  • versión del método y criterio de parada.

15 · Comprensión

Confusiones frecuentes

«Un error absoluto pequeño siempre es bueno»

Depende de la escala y del requisito. Un error de 0.01 puede ser insignificante para una distancia de kilómetros y enorme para una señal del orden de 0.001.

«Error relativo y porcentual son dos medidas independientes»

Expresan la misma proporción en escalas diferentes. El porcentual es el relativo multiplicado por 100.

«Si el valor exacto es cero, el error porcentual es infinito»

La fórmula no está definida porque el denominador es cero. Conviene informar el error absoluto o utilizar un criterio específico del dominio.

«La aproximación debe utilizarse como denominador»

En la definición de error relativo verdadero usamos la magnitud del valor de referencia. Otras medidas simétricas existen, pero deben nombrarse y no confundirse con esta.

«Redondear el error mejora la aproximación»

El redondeo solo cambia cómo comunicamos el resultado. No modifica el valor calculado ni recupera información.

16 · Práctica guiada

Ejercicios

Ejercicio 1: calcular los tres errores

Una temperatura de referencia es 37.0 °C y el sensor informa 36.8 °C. Calculá el error con signo, absoluto, relativo y porcentual.

Ver solución

Error con signo: 36.8 − 37 = −0.2 °C. Error absoluto: 0.2 °C. Error relativo: 0.2/37 ≈ 0.005405. Error porcentual: aproximadamente 0.5405 %. El sensor subestima la referencia.

Ejercicio 2: comparar aproximaciones

El método A produce un error absoluto de 0.5 al aproximar 1000. El método B produce un error absoluto de 0.01 al aproximar 0.1. ¿Cuál tiene menor error relativo?

Ver solución razonada

Para A, Eᵣ = 0.5/1000 = 0.0005, es decir, 0.05 %. Para B, Eᵣ = 0.01/0.1 = 0.1, es decir, 10 %. B tiene menor error absoluto, pero A tiene mucho menor error relativo.

Ejercicio 3: referencia igual a cero

Un instrumento ajustado en cero marca −0.003 V. Indicá qué errores pueden informarse correctamente.

Ver solución

El error con signo es −0.003 V y el absoluto es 0.003 V. Los errores relativo y porcentual tradicionales no están definidos porque la referencia es cero.

Ejercicio 4: programar una tabla

Escribí una función que reciba una referencia y un arreglo de aproximaciones, y devuelva un informe para cada una ordenado por menor error absoluto.

Ver una posible solución
function compararAproximaciones(referencia, aproximaciones) {
  return aproximaciones
    .map(valor => {
      const absoluto = Math.abs(valor - referencia);
      const relativo = referencia === 0
        ? null
        : absoluto / Math.abs(referencia);
      return { valor, absoluto, relativo };
    })
    .sort((a, b) => a.absoluto - b.absoluto);
}

console.table(compararAproximaciones(Math.PI, [
  3.1, 3.14, 22 / 7, 3.1416
]));

Ejercicio 5: definir una tolerancia

Un sistema acepta una diferencia absoluta máxima de 0.01 cerca de cero y un error relativo máximo de 0.1 % para valores mayores. Escribí la condición combinada.

Ver solución
function esAceptable(referencia, aproximacion) {
  const toleranciaAbsoluta = 0.01;
  const toleranciaRelativa = 0.001; // 0.1 %
  const error = Math.abs(aproximacion - referencia);
  const limite = Math.max(
    toleranciaAbsoluta,
    toleranciaRelativa * Math.abs(referencia)
  );
  return error <= limite;
}

17 · Síntesis

Ideas para recordar

  • El error con signo indica si la aproximación subestima o sobrestima.
  • El error absoluto mide una distancia y conserva las unidades originales.
  • El error relativo divide esa distancia por la magnitud de la referencia.
  • El error porcentual es el error relativo expresado como porcentaje.
  • Si la referencia es cero, el error relativo tradicional no está definido.
  • Cuando desconocemos la solución usamos errores estimados, residuos o cotas.
  • Combinar tolerancias absolutas y relativas permite trabajar con distintas escalas.
  • La medida elegida y el criterio de aceptación siempre deben comunicarse.

En el próximo tema diferenciaremos redondeo y truncamiento, estudiaremos cifras significativas y analizaremos cómo estas decisiones introducen error en los cálculos.