Desviación típica (o estándar) y varianza: qué son y cómo calcularlas en R
Dos grupos pueden tener exactamente la misma media y no parecerse en nada. La desviación típica es la medida que revela esa diferencia.
Una aclaración que genera muchas dudas: desviación típica y desviación estándar son exactamente lo mismo. "Típica" es la traducción habitual en España y "estándar" la más extendida en Latinoamérica, las dos de standard deviation. Da igual cuál uses.
Mira estos dos conjuntos de notas:
grupo_a <- c(5, 5, 5, 5, 5)
grupo_b <- c(0, 2, 5, 8, 10)
mean(grupo_a)
mean(grupo_b)
Los dos dan 5 de media. Realidades opuestas. En el grupo A todos sacaron un 5; en el B hay desde suspensos hasta sobresalientes. La media sola no lo cuenta.
Qué mide exactamente
La desviación típica indica cuánto se alejan los datos de su media, en promedio. Se expresa en las mismas unidades que los datos originales, lo que la hace fácil de interpretar: si mides alturas en centímetros, la desviación típica está en centímetros.
- Desviación típica pequeña: los datos se agrupan cerca de la media. El promedio es representativo.
- Desviación típica grande: los datos están muy dispersos. La media dice poco.
Cómo calcularla en R
Con la función sd():
grupo_b <- c(0, 2, 5, 8, 10)
sd(grupo_b)
Y si tienes valores ausentes:
notas <- c(4, 7, NA, 9, 6)
sd(notas)
sd(notas, na.rm = TRUE) # ahora sí
Ese na.rm = TRUE es uno de los argumentos que más vas a usar en R: sin él, un solo NA convierte todo el resultado en NA.
Varianza y desviación típica
La varianza es la desviación típica al cuadrado. En R se calcula con var():
var(grupo_b)
sd(grupo_b)
sqrt(var(grupo_b)) # lo mismo que sd()
¿Por qué existen las dos? La varianza tiene mejores propiedades matemáticas y aparece en casi todas las fórmulas estadísticas. Pero está en unidades al cuadrado (euros al cuadrado, centímetros al cuadrado), lo cual no significa nada intuitivo. Por eso, para comunicar resultados, se usa la desviación típica.
Un detalle que confunde a mucha gente
sd() en R calcula la desviación típica muestral, dividiendo entre n − 1 y no entre n. Es lo correcto cuando tus datos son una muestra de una población mayor, que es el caso habitual.
Si necesitas la desviación típica poblacional (cuando tienes absolutamente todos los datos del grupo que estudias):
sd_poblacional <- function(x) {
n <- length(x)
sqrt(sum((x - mean(x))^2) / n)
}
sd_poblacional(grupo_b)
sd(grupo_b)
Con muestras grandes la diferencia es mínima; con pocos datos, se nota.
Cómo interpretarla en la práctica
Un número suelto dice poco. Lo útil es compararlo con la media mediante el coeficiente de variación, que expresa la dispersión en porcentaje:
cv <- function(x) sd(x) / mean(x) * 100
cv(grupo_b)
Ese cv() devuelve un 81 %, una dispersión enorme. Como referencia orientativa, por debajo del 15-20 % se suele considerar que los datos son homogéneos.
Esto además permite comparar variables con unidades distintas: no puedes comparar directamente la desviación típica de unos precios en euros con la de unas alturas en centímetros, pero sí sus coeficientes de variación.
Ojo con los valores extremos
Como la media, la desviación típica es muy sensible a los outliers, porque las diferencias se elevan al cuadrado:
sueldos <- c(1300, 1350, 1400, 1450, 1500)
sd(sueldos)
sueldos_con_extremo <- c(sueldos, 25000)
sd(sueldos_con_extremo)
La desviación típica pasa de 79 a más de 9.600: un solo valor multiplica la dispersión por más de cien. Si sospechas que tienes datos atípicos, conviene detectarlos primero y, si procede, usar el rango intercuartílico como medida alternativa de dispersión.
En resumen
La desviación típica mide la dispersión de tus datos en sus mismas unidades. En R se calcula con sd(), la varianza con var(), y conviene acompañarla del coeficiente de variación para saber si esa dispersión es mucha o poca. Y recuerda: igual que la media, se descontrola con los valores extremos.