Correlación de concordancia (CCC de Lin)
Dos series idénticas del 1 al 5 dan un coeficiente de concordancia de 1, pero si desplaza o reescala una de ellas baja de 1 aunque la r de Pearson siga en 1. Sirve para comprobar si dos instrumentos coinciden de verdad. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- X
- 1, 2, 3, 4, 5
- Y
- 1, 2, 3, 4, 5
- N
- 5
- Ccc
- 1
- Media de x
- 3
- Media de y
- 3
Esta calculadora del coeficiente de correlación de concordancia obtiene el CCC de Lin entre dos listas de números de la misma longitud. A diferencia de la r de Pearson, que solo valora la asociación lineal, el CCC pregunta si los puntos se sitúan cerca de la recta y igual a x: precisión y exactitud a la vez. Usted recibe el tamaño muestral emparejado n, el coeficiente CCC, la r de Pearson cuando ambas series varían, las medias de x e y, las varianzas y la covarianza con divisor 1/n, el factor de corrección de sesgo de Lin y la diferencia de medias. Comprobaciones clásicas: series idénticas del uno al cinco en ambos ejes, con concordancia perfecta CCC igual a uno; e y perfectamente correlacionada pero escalada o desplazada, que mantiene r cerca de uno mientras el CCC baja de uno. El motor usa solo un algoritmo determinista de dos pasadas: sin red, sin muestreo aleatorio y sin atajos dependientes de la fecha.
Qué mide el CCC de Lin y qué contiene la respuesta
El coeficiente de correlación de concordancia de Lin combina precisión y exactitud en un solo número que responde a una pregunta práctica: hasta qué punto coinciden dos mediciones emparejadas si el acuerdo perfecto significa que cada par cae en la recta identidad y igual a x.
La correlación producto-momento de Pearson puede dar r igual a uno cuando y es una versión escalada o desplazada de x, y aun así esos pares se alejan sistemáticamente de la recta identidad; el CCC penaliza ese sesgo de ubicación o de escala mediante el cuadrado de la diferencia de medias y los términos de varianza en el denominador.
Conocidas las medias de x e y, el motor forma los momentos de varianza y covarianza con 1/n y devuelve el CCC como el doble de la covarianza sobre la suma de las dos varianzas más el cuadrado de la diferencia de medias. Un valor cercano a más uno indica que las series se mueven juntas y se sitúan cerca de la recta identidad; cerca de cero o negativo, el desacuerdo es grande respecto a la dispersión conjunta.
Se rechazan un campo x o y ausente, listas vacías, menos de dos pares, entradas no finitas como Infinity o NaN, tokens no numéricos, longitudes distintas y arrays más largos que el máximo publicado. La regla de igual longitud es intencional: listas de distinta longitud inventarían emparejamientos que no están en los datos.
Dónde encaja la correlación de concordancia en laboratorio, estudio y producto
Los estudiantes encuentran el CCC cuando una unidad de bioestadística contrasta correlación y acuerdo, cuando un laboratorio de métodos compara dos ensayos o dos instrumentos sobre las mismas muestras, o cuando necesitan una comprobación limpia frente a una calculadora que solo imprime la r de Pearson y oculta el sesgo sistemático. Los docentes pueden pregenerar claves de respuesta para series emparejadas modestas sin confiar en aplicaciones opacas que descartan pares con celdas faltantes o cambian en silencio entre convenciones de momentos n y n menos uno.
Los desarrolladores invocan el mismo contrato desde scripts para sembrar vectores de prueba deterministas, validar pipelines de fusión de sensores que exigen mediciones cerca de la recta identidad, o satisfacer puertas de calidad de datos que marcan pares cuyo CCC se derrumba cuando un canal gana un factor de escala. Los analistas usan el CCC junto a gráficos de Bland–Altman y resúmenes residuales: una r de Pearson alta con un CCC modesto es la señal clásica de asociación fuerte pero acuerdo insuficiente.
Los equipos de producto y operaciones vigilan la concordancia entre dos sondas de latencia, dos motores de precios o dos puntuaciones de recomendación para detectar deriva silenciosa que un panel de solo correlación pasaría por alto. Combínelo con la herramienta de correlación de Pearson cuando solo necesite asociación lineal, y con regresión lineal cuando necesite pendiente e intercepto en lugar de una puntuación de acuerdo con la recta identidad.
Qué puede hacer con ella
Acuerdo entre ensayos e instrumentos
Compare dos métodos de laboratorio o sensores en muestras emparejadas e informe el CCC de Lin junto a medias, varianzas y diferencia de medias.
Deberes y laboratorios de comparación de métodos
Verifique ejemplos de CCC de libro donde la r de Pearson se mantiene alta pero el sesgo de escala o de desplazamiento baja la concordancia por debajo de uno.
Preguntas frecuentes
¿Cuánto cuesta la calculadora del coeficiente de correlación de concordancia?
Es gratuita en su navegador en esta página.
¿En qué se diferencia el CCC de Lin de la r de Pearson?
La r de Pearson solo mide asociación lineal. El CCC de Lin también penaliza el sesgo de ubicación y de escala respecto a la recta identidad y = x, de modo que el acuerdo puede ser bajo aunque r esté cerca de 1.
¿Qué divisor de momentos usa la calculadora?
La forma original de Lin con divisor n para varianzas y covarianza (no el n − 1 de Bessel). La cadena de fórmula de la respuesta documenta esa convención.
¿Qué ocurre cuando ambas series son constantes idénticas?
Si cada par comparte el mismo valor constante, el CCC se define como 1 (acuerdo perfecto). Si ambas series son constantes pero en niveles distintos, el CCC es 0.
¿Por qué las dos listas deben tener la misma longitud?
Porque cada posición empareja una medición de la primera lista con una de la segunda. Con longitudes distintas habría que inventar parejas que no están en los datos, así que la calculadora las rechaza en lugar de rellenarlas o recortarlas.
Herramientas relacionadas
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/concordance-correlation \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x":[1,2,3,4,5],"y":[1.1,2,2.9,4.2,5]}'const res = await fetch("https://api.kit.forhosting.com/stat/concordance-correlation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x": [
1,
2,
3,
4,
5
],
"y": [
1.1,
2,
2.9,
4.2,
5
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/concordance-correlation",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x": [
1,
2,
3,
4,
5
],
"y": [
1.1,
2,
2.9,
4.2,
5
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/concordance-correlation", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x":[1,2,3,4,5],"y":[1.1,2,2.9,4.2,5]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x":[1,2,3,4,5],"y":[1.1,2,2.9,4.2,5]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/concordance-correlation", 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
{
"x": [
1,
2,
3,
4,
5
],
"y": [
1.1,
2,
2.9,
4.2,
5
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.concordance_correlation",
"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_n | 10000 |
max_abs | 1000000000000000 |
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. |
Notas técnicas
Qué mide el CCC de Lin y qué contiene la respuesta
Esta calculadora siempre devuelve una forma fija: n, ccc, pearson_r cuando está definido, mean_x, mean_y, var_x, var_y, cov, bias_correction cuando está definido, mean_diff, una cadena de fórmula breve y la longitud máxima publicada para que los clientes validen antes de enviar un lote. No hay un camino Monte Carlo aproximado presentado como verdad ni relleno silencioso cuando las listas difieren: el motor termina la aritmética de dos pasadas dentro de los límites de longitud y magnitud o rechaza la entrada con invalid_input.
Cómo se leen x e y y cómo el algoritmo de dos pasadas se mantiene estable
Cada elemento se interpreta como decimal finito; se permiten signos opcionales y notación científica, mientras que tokens vacíos, letras sueltas y objetos no numéricos fallan con un índice de campo en el mensaje para que una celda errónea no se convierta en un cero silencioso. Cuando ambas series son constantes y las medias coinciden, numerador y denominador son cero y el motor devuelve CCC igual a uno por acuerdo perfecto sobre una constante compartida. Devolver los momentos intermedios facilita auditar un ejercicio o llevar los mismos números a una hoja que use la fórmula de Lin. Los campos preferidos son x e y, cada uno un array de números finitos de igual longitud, pero se aceptan los alias a, values_x y series_x para la primera serie y b, values_y y series_y para la segunda, de modo que hojas de cálculo, cadenas de consulta y formularios tipados reutilicen el mismo contrato. También se admite una sola cadena de números separados por comas o espacios en cada campo cuando un formulario envía texto plano en lugar de arrays JSON. El motor impone un máximo duro de diez mil pares y un techo de magnitud por valor para que memoria y latencia queden en un presupuesto predecible en el camino gratuito del navegador y en el Worker de borde. El cálculo es el método clásico de Lin en dos pasadas: primero las medias de x e y, luego las sumas residuales 1/n para var_x, var_y y cov, y el CCC como el doble de la covarianza sobre var_x más var_y más el cuadrado de la diferencia de medias. Cuando ambas series varían, se devuelven la r de Pearson y el factor de exactitud bias_correction de Lin junto al CCC, para que usted vea cuánto de la caída desde uno se debe a la precisión frente al sesgo de ubicación o de escala. Combine la ejecución gratuita en el navegador en esta página con la API de pago cuando necesite el mismo resultado de concordancia dentro de un pipeline automatizado sin reimplementar usted mismo la fórmula de Lin.
Dónde encaja la correlación de concordancia en laboratorio, estudio y producto
En esta página el trabajo se ejecuta por completo en su navegador; a través de la API cada consulta correcta cuesta $0.002, la validación fallida no se cobra y nada se almacena tras la respuesta. Esa división — exploración interactiva gratuita y una API de precio idéntica en resultado — encaja con el resto del catálogo KIT de nivel A y le permite pasar de una demo de aula a un pipeline automatizado sin cambiar el resultado matemático.
Casos de integración
Fixtures deterministas de CI
Genere valores de CCC reproducibles para pruebas unitarias y puertas de calidad de datos sin mantener a mano tablas bivariadas.
Preguntas técnicas
¿Por qué x e y deben tener la misma longitud?
El CCC se define sobre observaciones emparejadas. Longitudes distintas inventarían o eliminarían pares, por lo que la herramienta las rechaza con invalid_input.