Calculadora de error porcentual absoluto medio (MAPE)
La calculadora de error porcentual absoluto medio compara una serie ordenada de valores observados con otra serie de predicciones del mismo tamaño y devuelve el promedio de sus diferencias porcentuales absolutas.
Ejecutar — gratis
MAPE expresa los errores como un porcentaje fácil de comunicar entre pronósticos de escalas distintas. Introduzca los valores correspondientes en el mismo orden y obtendrá el porcentaje junto con el número de pares evaluados. La herramienta rechaza cualquier valor observado igual a cero, ya que el error porcentual no está definido cuando el denominador es cero y produciría un indicador engañoso.
Prepare valores observados y predichos alineados
Prepare dos matrices que describan los mismos sucesos y mantengan idéntico orden. El primer dato observado debe corresponder a la primera predicción, y así sucesivamente. Ambas matrices deben tener la misma longitud, incluir al menos un número finito y no superar el límite publicado. Ningún valor observado puede ser cero, pues sirve como denominador. Las predicciones sí pueden ser cero o negativas cuando el contexto lo permita. No use marcadores como null, cadenas vacías, números escritos como texto, Infinity o NaN: se aceptan únicamente números JSON finitos. Compruebe también que las unidades coincidan; comparar ingresos en euros con predicciones expresadas en miles de euros invalida la interpretación. Envíe las matrices en los campos observed y predicted. La respuesta presenta mape como porcentaje y count como cantidad de pares analizados.
Comprenda cómo se obtiene el porcentaje
Para cada pareja, la calculadora resta la predicción del valor observado, toma el valor absoluto de la diferencia y lo divide por el valor observado según la expresión estándar del error porcentual absoluto. Después promedia todas las razones y multiplica el resultado por 100. Por tanto, un mape de 8.5 indica que las predicciones difieren de las observaciones un 8.5 por ciento en promedio, sin conservar si cada estimación quedó por encima o por debajo. El valor absoluto evita que los errores positivos y negativos se cancelen. Cada par pesa lo mismo, con independencia de su magnitud, por lo que una observación pequeña puede aportar un porcentaje enorme. El cálculo es determinista, utiliza aritmética de coma flotante y no redondea; usted puede elegir la precisión de presentación. El campo count permite confirmar cuántas parejas participaron.
Interprete MAPE con cautela
MAPE resulta más útil cuando las observaciones son distintas de cero, comparten una escala de razón significativa y las diferencias porcentuales responden a la pregunta del análisis. Es habitual en pronósticos de demanda, tráfico, ventas o inventario. Compare resultados solo entre conjuntos preparados de manera uniforme, ya que cambiar el periodo o la mezcla de productos puede alterar mucho el indicador. Extreme la cautela con valores cercanos a cero: una desviación absoluta modesta puede dominar el promedio. Los valores negativos se admiten matemáticamente, aunque su lectura porcentual puede resultar poco intuitiva. MAPE tampoco muestra sesgo, patrones temporales ni la distribución de errores. Combínelo con una medida con signo si importa la sobreestimación sistemática, o considere MAE, RMSE, WAPE u otra métrica cuando abundan ceros. La API cuesta $0.002 por solicitud y rechaza entradas inválidas sin filtrar datos silenciosamente.
Qué puede hacer con ella
Evaluar pronósticos de demanda
Compare la demanda semanal prevista con ventas observadas distintas de cero y comunique el error medio como porcentaje.
Supervisar versiones de modelos
Calcule la misma métrica para modelos candidatos y compruebe si mejora la precisión porcentual.
Revisar estimaciones de planificación
Mida cuánto se aproximaron presupuestos, tráfico o capacidad previstos a sus valores finales.
Preguntas frecuentes
¿Qué significa el valor MAPE devuelto?
Es el error porcentual absoluto medio expresado como porcentaje. Un valor de 7 representa un error absoluto medio del 7 por ciento.
¿Por qué se rechazan observaciones iguales a cero?
Cada error porcentual divide por el valor observado. Dividir entre cero no está definido, por lo que se rechaza toda la entrada.
¿Deben tener ambas matrices la misma longitud?
Sí. Cada observación necesita exactamente una predicción correspondiente; las longitudes distintas son una entrada inválida.
¿La calculadora redondea el resultado?
No. Devuelve el resultado determinista de coma flotante para que usted elija la precisión adecuada.
¿Pueden ser negativos los valores observados?
Sí, se aceptan valores negativos finitos, aunque MAPE puede ser más difícil de interpretar cuando el signo tiene un significado propio.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/stat/mape-error \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"observed":[100,200,50,400],"predicted":[110,190,55,360]}'const res = await fetch("https://api.kit.forhosting.com/stat/mape-error", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"observed": [
100,
200,
50,
400
],
"predicted": [
110,
190,
55,
360
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/mape-error",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"observed": [
100,
200,
50,
400
],
"predicted": [
110,
190,
55,
360
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/mape-error", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"observed":[100,200,50,400],"predicted":[110,190,55,360]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"observed":[100,200,50,400],"predicted":[110,190,55,360]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/mape-error", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"observed": [
100,
200,
50,
400
],
"predicted": [
110,
190,
55,
360
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.mape_error",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_items | 100000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |