Calcular la media en R

Estadística con R Medidas de tendencia central
Cómo calcular la media en R

La media, también llamada valor esperado en Estadística, es una medida de tendencia central. Generalmente, representa la suma de todas las observaciones divididas entre el número de observaciones de los datos (media aritmética). En este tutorial vamos a revisar cómo calcular la media aritmética así como la media truncada, ponderada y geométrica en R.

Media aritmética con la función mean

Para calcular la media aritmética de un vector podemos utilizar la función mean. Considera el siguiente ejemplo que representa las notas de un examen de un estudiante en el año en curso:

x <- c(2, 4, 3, 6, 3, 7, 5, 8)

Usando la función mean podemos calcular la media aritmética de las calificaciones del estudiante:

mean(x) # 4.75

# Equivalente a:
sum(x)/lenght(x) # 4.75

Ten en cuenta que, si por alguna razón algunos elementos del vector están ausentes (el vector contiene algún NA) deberías establecer el argumento na.rm de la función como TRUE. En otro caso, la salida será NA.

# Vector con NA
x <- c(2, 4, 3, 6, 3, 7, 5, 8, NA)

# Si el vector contiene algún valor NA, el resultado será NA
mean(x) # NA

# Eliminar los valores NA
mean(x, na.rm = TRUE) # 4.75

Media truncada en R

La media truncada elimina una fracción de las observaciones de cada lado del vector antes de que se calcule la media. Esto es especialmente interesante cuando el vector contiene datos atípicos que no queremos que sean usados cuando se calcula la media. Por ejemplo, si truncamos nuestros datos al 10% solo el 80% de los datos centrados serán usados para calcular la media.

# Vector de muestra
y <- c(1, rep(5, 8),  50)

# Media aritmética
mean(y) # 9.1

# Media aritmética truncada al 10%
# (elimina el primer y último elemento en este ejemplo)
mean(y, trim = 0.1) # 5

Media ponderada con la función weighted.mean

La media aritmética considera que cada observación tiene la misma relevancia que las otras. Si queremos asignar una relevancia diferente para cada observación podemos asignar un peso o ponderación diferente a cada observación (la media aritmética considera el mismo peso para todos los elementos del vector).

Para asignar ponderaciones o pesos podemos utilizar la función weighted.mean de la siguiente manera:

# Vector de muestra
z <- c(5, 7, 8)

# Pesos (deberían sumar 1)
wts <- c(0.2, 0.2, 0.6)

# Media ponderada
weighted.mean(z, w = wts) # 7.2

Ten en cuenta que lo anterior es equivalente a:

sum(z * wts) # 7.2

Si tus datos contienen algún NA puedes utilizar el argumento na.rm de la función.

Media geométrica en R

La media geométrica es la raíz n-ésima del producto de los elementos del vector. Para calcularla puedes usar las funciones exp, mean y log o usar la función geometric.mean del paquete psych, que incluye el argumento na.rm en caso de ser necesario.

# Vector de muestra
w <- c(10, 20, 15, 40)

# Media geométrica
exp(mean(log(w))) # 18.6121

 # Alternativa (incluye el argumento na.rm)
 # install.packages("psych")
 library(psych)
 geometric.mean(w) # 18.6121