16. Diagramas de dispersión

Un diagrama de dispersión representa pares de valores para explorar la relación entre dos variables cuantitativas. La nube de puntos permite observar dirección, forma, fuerza, grupos y valores atípicos.

16.1 Introducción

Cuando cada observación tiene dos medidas relacionadas, podemos representarla como un punto (x, y). La primera variable se coloca en el eje horizontal y la segunda en el eje vertical.

La colección de puntos se denomina nube de dispersión. Su forma puede sugerir una relación positiva, negativa, inexistente, lineal, curva o formada por varios grupos.

16.2 Cuándo utilizarlo

Se utiliza cuando interesa estudiar si dos variables cuantitativas cambian juntas:

RendimientoTiempo de ejecución y tamaño de entrada.
OperaciónUsuarios concurrentes y latencia.
NegocioInversión publicitaria y ventas.
MediciónTemperatura y consumo energético.

No es el gráfico principal para una única variable, categorías nominales o una serie temporal en la que solo interesa el orden cronológico.

16.3 Pares ordenados

Consideremos el tamaño de una solicitud en kilobytes y el tiempo necesario para procesarla:

ObservaciónTamaño x (KB)Tiempo y (ms)Punto
11042(10, 42)
22048(20, 48)
33053(30, 53)
44061(40, 61)
55065(50, 65)
66072(60, 72)
77078(70, 78)

Cada fila debe conservar la correspondencia entre x e y. Mezclar el orden de una columna destruiría la relación entre las variables.

16.4 Construcción del gráfico

  1. Identificar las dos variables y sus unidades.
  2. Decidir cuál se ubica en x y cuál en y.
  3. Elegir escalas que cubran los datos sin distorsionar la comparación.
  4. Representar cada par como un punto.
  5. Observar dirección, forma, concentración, grupos y atípicos.
  6. Agregar una recta de tendencia solo si ayuda a responder la pregunta.
  7. Documentar el tamaño de muestra y el contexto temporal.

16.5 Dirección de la relación

DirecciónPatrónLectura
PositivaLos puntos tienden a subir hacia la derecha.Valores altos de x suelen acompañarse de valores altos de y.
NegativaLos puntos tienden a bajar hacia la derecha.Valores altos de x suelen acompañarse de valores bajos de y.
NulaNo se observa una orientación definida.No hay evidencia visual de relación lineal.

16.6 Forma y fuerza

La forma describe si la nube es aproximadamente lineal, curva, escalonada o tiene varios grupos. La fuerza indica cuánto se concentran los puntos alrededor de ese patrón.

Una relación fuerte no exige que todos los puntos estén exactamente sobre una línea. Una relación débil puede conservar una dirección general, aunque con mucha dispersión vertical.

16.7 Laboratorio interactivo

Cambia el conjunto de datos, muestra una recta de tendencia y observa cómo varían la pendiente y el coeficiente de correlación de Pearson.

Explorador de diagramas de dispersión

Tu navegador no puede mostrar el gráfico. El resumen textual aparece debajo.

16.8 Correlación

El coeficiente de correlación de Pearson, representado por r, resume la dirección y la intensidad de una relación lineal:

−1 ≤ r ≤ 1

r cercano a 1 → relación lineal positiva fuerte
r cercano a −1 → relación lineal negativa fuerte
r cercano a 0 → poca relación lineal

Un valor cercano a cero no descarta una relación curva. Correlación mide asociación lineal, no cualquier patrón posible.

16.9 Cálculo conceptual de r

La correlación compara cómo se alejan x e y de sus respectivas medias:

r = covarianza(x, y) / (desvío de x × desvío de y)

Si las observaciones que están por encima de la media de x también suelen estar por encima de la media de y, la covarianza es positiva. Si una variable queda arriba cuando la otra queda abajo, la relación tiende a ser negativa.

El valor de r no tiene unidades y no cambia si se convierten metros a centímetros, aunque sí puede cambiar la lectura del gráfico si las escalas se eligen mal.

16.10 Recta de regresión

Una recta de regresión lineal puede resumir la tendencia media:

ŷ = a + b × x

b = cambio promedio estimado en y por cada unidad adicional de x
a = valor estimado de y cuando x vale 0

La recta no tiene que pasar por todos los puntos. Describe una tendencia promedio y permite estimar dentro del rango observado.

16.11 Pendiente e intercepto

En el ejemplo de tamaño y latencia, una pendiente positiva indica que las solicitudes mayores tienden a tardar más. El intercepto puede no tener una interpretación práctica si x = 0 queda fuera del rango de datos.

La pendiente no debe interpretarse como una ley exacta para cada caso individual. Es un cambio promedio dentro del contexto y del rango estudiado.

16.12 Coeficiente de determinación

En una regresión lineal simple, R² = r² indica qué proporción de la variabilidad de y queda asociada con el modelo lineal de x.

Por ejemplo, R² = 0,64 puede describirse como un 64 % de variabilidad explicada por el modelo lineal en esa muestra. No significa que el 64 % de cada observación sea causado por x.

16.13 Valores atípicos e influencia

Un punto alejado puede cambiar mucho la pendiente y la correlación, especialmente si también está lejos en el eje x. Por eso conviene observar el gráfico antes de confiar en un único número.

Un atípico puede ser un error, un caso excepcional o una señal importante. Nunca se elimina automáticamente: primero se revisan los datos y el contexto.

16.14 Grupos ocultos

Una nube general puede esconder varios grupos. Por ejemplo, dos tipos de dispositivo pueden tener relaciones diferentes entre tamaño y latencia aunque el gráfico combinado parezca débil.

El color o la forma de los puntos puede representar una tercera variable categórica. Si se usa, debe incluirse una leyenda y no debe depender solo del color.

16.15 Correlación no implica causalidad

Que dos variables se muevan juntas no demuestra que una provoque la otra. Puede existir una causa común, una relación inversa, una coincidencia temporal o un sesgo de selección.

Por ejemplo, ventas y temperatura pueden aumentar juntas durante una temporada, pero eso no prueba que una variable cause directamente la otra. Para hablar de causalidad se necesitan diseño, contexto y análisis adicionales.

16.16 Escalas y transformaciones

Una escala truncada puede hacer que una relación parezca más fuerte; una escala excesivamente amplia puede ocultarla. Los ejes deben mostrar límites razonables y estar claramente etiquetados.

En algunas variables, como tiempos o ingresos, una escala logarítmica puede facilitar la lectura. La transformación debe informarse porque cambia la interpretación de distancias y pendientes.

16.17 Diagrama de dispersión con JavaScript

Este ejemplo calcula una recta de regresión, imprime sus parámetros y dibuja los puntos con ejes, escala y línea de tendencia.

const datos = [
  { x: 10, y: 42 }, { x: 20, y: 48 }, { x: 30, y: 53 },
  { x: 40, y: 61 }, { x: 50, y: 65 }, { x: 60, y: 72 },
  { x: 70, y: 78 }
];

const mediaX = datos.reduce((suma, dato) => suma + dato.x, 0) / datos.length;
const mediaY = datos.reduce((suma, dato) => suma + dato.y, 0) / datos.length;
const numerador = datos.reduce((suma, dato) => suma + (dato.x - mediaX) * (dato.y - mediaY), 0);
const denominador = datos.reduce((suma, dato) => suma + (dato.x - mediaX) ** 2, 0);
const pendiente = numerador / denominador;
const intercepto = mediaY - pendiente * mediaX;
const correlacion = numerador / Math.sqrt(
  denominador * datos.reduce((suma, dato) => suma + (dato.y - mediaY) ** 2, 0)
);

console.log('Recta: y =', intercepto.toFixed(2), '+', pendiente.toFixed(2), 'x');
console.log('Correlación r:', correlacion.toFixed(3));

if (typeof document !== 'undefined') {
  const canvas = document.getElementById('canvasDispersionCodigo');
  const contexto = canvas.getContext('2d');
  const area = { izquierda: 70, derecha: 770, arriba: 60, base: 360 };
  const escalaX = valor => area.izquierda + (valor - 0) / 80 * (area.derecha - area.izquierda);
  const escalaY = valor => area.base - (valor - 30) / 60 * (area.base - area.arriba);

  contexto.clearRect(0, 0, canvas.width, canvas.height);
  contexto.fillStyle = '#fbfdff';
  contexto.fillRect(0, 0, canvas.width, canvas.height);
  contexto.fillStyle = '#17324d';
  contexto.font = 'bold 18px Segoe UI, Arial';
  contexto.fillText('Diagrama de dispersión', 22, 29);

  contexto.strokeStyle = '#d8e8f7';
  contexto.lineWidth = 1;
  contexto.font = '11px Segoe UI, Arial';
  contexto.fillStyle = '#28587d';
  contexto.textAlign = 'center';
  for (let valor = 0; valor <= 80; valor += 10) {
    const x = escalaX(valor);
    contexto.beginPath(); contexto.moveTo(x, area.arriba); contexto.lineTo(x, area.base); contexto.stroke();
    contexto.fillText(valor, x, area.base + 18);
  }
  contexto.textAlign = 'right';
  for (let valor = 30; valor <= 90; valor += 10) {
    const y = escalaY(valor);
    contexto.beginPath(); contexto.moveTo(area.izquierda, y); contexto.lineTo(area.derecha, y); contexto.stroke();
    contexto.fillText(valor, area.izquierda - 8, y + 4);
  }

  contexto.strokeStyle = '#28587d';
  contexto.lineWidth = 2;
  contexto.beginPath(); contexto.moveTo(area.izquierda, area.arriba); contexto.lineTo(area.izquierda, area.base); contexto.lineTo(area.derecha, area.base); contexto.stroke();
  contexto.fillStyle = '#28587d';
  contexto.textAlign = 'center';
  contexto.font = '13px Segoe UI, Arial';
  contexto.fillText('Tamaño de entrada (KB)', (area.izquierda + area.derecha) / 2, area.base + 42);
  contexto.save(); contexto.translate(18, (area.arriba + area.base) / 2); contexto.rotate(-Math.PI / 2); contexto.fillText('Tiempo (ms)', 0, 0); contexto.restore();

  contexto.fillStyle = '#e76f51';
  datos.forEach(dato => {
    contexto.beginPath(); contexto.arc(escalaX(dato.x), escalaY(dato.y), 6, 0, Math.PI * 2); contexto.fill();
  });
  contexto.strokeStyle = '#245b7c';
  contexto.lineWidth = 3;
  contexto.beginPath(); contexto.moveTo(escalaX(0), escalaY(intercepto)); contexto.lineTo(escalaX(80), escalaY(intercepto + pendiente * 80)); contexto.stroke();
}
Tu navegador no puede mostrar el diagrama de dispersión.

16.18 Accesibilidad

El gráfico debe indicar qué representa cada eje, sus unidades, el tamaño de muestra y el significado de la línea de tendencia. El resumen textual debe incluir dirección, correlación y posibles atípicos.

Si se codifica una tercera variable con color, también deben utilizarse formas, etiquetas o una tabla. El gráfico no debe depender exclusivamente de la visión del color.

16.19 Errores frecuentes

  • Intercambiar o mezclar los pares x e y.
  • Usar una línea que conecte puntos como si fueran una serie temporal.
  • Confundir correlación con causalidad.
  • Informar solo r sin mostrar la nube de puntos.
  • Ignorar grupos, curvas o valores atípicos.
  • Truncar ejes para exagerar una diferencia.
  • Extrapolar mucho más allá del rango observado.

16.20 Qué debes recordar de este tema

  • Cada observación se representa como un par (x, y).
  • La nube permite explorar dirección, forma y fuerza.
  • La correlación de Pearson resume solo la relación lineal.
  • Una recta de regresión describe una tendencia promedio.
  • Los atípicos y grupos pueden cambiar la interpretación.
  • Correlación no demuestra causalidad.
  • Los ejes, unidades, muestra y contexto son parte del gráfico.

16.21 Conclusión

El diagrama de dispersión es una herramienta fundamental para estudiar relaciones entre dos variables cuantitativas. Antes de calcular un coeficiente, conviene mirar la nube: la forma de los datos puede revelar patrones que un único número oculta.

La recta de regresión y la correlación ayudan a resumir una relación, pero deben interpretarse con cuidado, dentro del rango observado y sin convertir automáticamente una asociación en una explicación causal. En el próximo tema estudiaremos las medidas de tendencia central.