La desviación estándar es una técnica estadística que muestra hasta qué punto los valores de una característica estudiada se desvían, en promedio, de la media aritmética. Se utiliza para determinar si las unidades de una muestra o población son similares con respecto a la característica estudiada o si difieren significativamente entre sí. Si deseas aprender qué es la desviación estándar o cómo calcularla en R, sigue leyendo.
Esta guía ofrece una explicación detallada sobre cómo calcular la desviación estándar en R, abordando distintos métodos y ejemplos prácticos para ayudarte a analizar datos de manera eficiente.
La desviación estándar mide el grado promedio en que los valores individuales de una variable se desvían de la media. Es una medida intuitiva de la variabilidad de una distribución. Si simplemente sumáramos las distancias respecto a la media, el resultado siempre sería 0, lo cual no sería útil.
La fórmula matemática de la desviación estándar es:
=∑(xi−μ)2N
Donde:
Σ representa la suma,
xix_ixi es cada observación,
μ\muμ es la media de los datos,
NNN es el número total de observaciones.
La desviación estándar suele abreviarse como DE (Standard Deviation). Cuanto menor sea la desviación estándar, más próximos estarán los valores a la media, lo que indica una mayor consistencia en los datos. Para interpretar correctamente si una DE es grande o pequeña, es importante conocer el rango de la escala utilizada.
La desviación estándar es especialmente útil para comparar la variabilidad entre dos conjuntos de datos de tamaño y media similares. La media por sí sola no siempre refleja la realidad.
Por ejemplo: De poco sirve conocer el salario promedio de una empresa si no sabemos cuánto varían los salarios. ¿Todos los empleados ganan lo mismo? ¿O un directivo con un sueldo elevado está aumentando artificialmente la media? Para responder estas preguntas, debemos calcular la desviación estándar.
De manera similar, la desviación estándar ayuda a evaluar el riesgo en decisiones de inversión. Si una acción tiene un rendimiento promedio anual del 4% y otra del 5%, no necesariamente significa que la segunda sea mejor.
Si la primera acción presenta fluctuaciones pequeñas a lo largo del año, mientras que la segunda varía en decenas de puntos porcentuales, la primera será mucho menos arriesgada. Por ello, el desvío estándar es una herramienta clave para comparar diferentes rendimientos y su nivel de riesgo.
Para realizar cualquier análisis, primero debemos contar con datos. En R, puedes introducirlos manualmente creando un vector o importarlos desde fuentes externas como archivos CSV o Excel.
data <- c(4, 8, 6, 5, 3, 7)
También puedes importar datos con la función read.csv():
# Read a CSV file into a data frame
data <-read.csv("datafile.csv")
# Install the 'readxl' package
install.packages("readxl")
# Load the library
library(readxl)
# Read an Excel file into a data frame
data_excel <- read_excel("datafile.xlsx", sheet = 1)
La forma más sencilla de calcular la desviación estándar de una muestra es con la función integrada sd().
sd(data)
Resultado:
[1] 1.870829
Si tu muestra contiene valores faltantes, puedes excluirlos usando el parámetro na.rm = TRUE:
standard_deviation <- sd(data, na.rm = TRUE)
Para calcular la desviación estándar poblacional, sigue estos pasos:
Calcula la media.
Resta la media de cada valor.
Eleva las diferencias al cuadrado.
Calcula la media de los valores cuadrados (varianza).
Calcula la raíz cuadrada de la varianza.
Ejemplo:
mean_data <- mean(data)
squared_differences <- (data - mean_data)^2
mean_squared_diff <- mean(squared_differences)
standard_deviation_manual <- sqrt(mean_squared_diff)
print(standard_deviation_manual)
Supongamos que queremos analizar las calificaciones de estudiantes en distintas asignaturas. La variable categórica es “Asignatura”, y queremos calcular la desviación estándar para cada grupo.
Podemos hacerlo con el paquete dplyr:
install.packages("dplyr")
Siguiendo nuestro ejemplo anterior, tomemos un conjunto de datos que contiene las calificaciones de los estudiantes en diferentes materias:
library(dplyr)
# Example data frame with class and grades
data <- data.frame(
Subject = c('Math', 'Math', 'Math', 'History', 'History', 'History'),
grade = c(85, 90, 78, 88, 92, 85)
)
# Calculate standard deviation for each class
grouped_sd <- data %>%
group_by(Subject) %>%
summarise(Standard_Deviation = sd(grade))
print(grouped_sd)
Resultado:
# A tibble: 2 × 2
Subject Standard_Deviation
<chr> <dbl>
1 History 3.511885
2 Math 6.027714
En R, hay varias maneras de calcular la desviación estándar por columna:
data_frame <- data.frame(A = c(1, 2, 3), B = c(4, 5, 6))
apply(data_frame, 2, sd)
O con dplyr:
library(dplyr)
data_frame %>%
summarise(across(everything(), sd))
En algunos casos, es necesario calcular una desviación estándar ponderada, por ejemplo, cuando los grupos tienen tamaños diferentes (como un equipo con 5 jugadores y otro con 50). Si no aplicamos ponderaciones, ambos equipos influirán por igual en el cálculo, lo que generará un resultado erróneo.
La fórmula es la siguiente:
Dw=∑wi(xi−μw)2∑wi
Donde:
μw=∑wixi∑wi
R no cuenta con una función incorporada para este cálculo, pero se puede hacer manualmente:
# Example data with grades and weights
grades <- c(85, 90, 78, 88, 92, 85)
weights <- c(0.2, 0.3, 0.1, 0.15, 0.1, 0.15)
# Calculate the weighted mean
weighted_mean <- sum(grades * weights) / sum(weights)
# Calculate the squared differences from the weighted mean
squared_differences <- (grades - weighted_mean)^2
# Calculate the weighted variance
weighted_variance <- sum(weights * squared_differences) / sum(weights)
# Calculate the weighted standard deviation
weighted_sd <- sqrt(weighted_variance)
print(weighted_sd)
Risultado:
[1] 3.853245
La desviación estándar es fácil de calcular, incluso si su fórmula parece compleja al principio. Es una de las herramientas fundamentales de la estadística, y R facilita enormemente su aplicación. Si quieres adentrarte en el mundo de la ciencia de datos o el análisis estadístico, aprender a calcular e interpretar la desviación estándar es esencial — te ayudará a comprender mejor la consistencia y la dispersión de tus datos.