Как рассчитать среднее геометрическое в R (с примерами)


Вы можете использовать следующий синтаксис для вычисления среднего геометрического набора чисел в R:

exp(mean(log(x)))

В следующих примерах показано, как использовать эту функцию на практике.

Пример 1. Вычисление среднего геометрического вектора

Следующий код показывает, как вычислить среднее геометрическое для одного вектора в R:

#define vector
x <- c(4, 8, 9, 9, 12, 14, 17)

#calculate geometric mean of values in vector
exp(mean(log(x)))

[1] 9.579479

Пример 2. Вычисление среднего геометрического вектора с нулями

Если ваш вектор содержит нули или отрицательные числа, приведенная выше формула вернет 0 или NaN.

Чтобы игнорировать нули и отрицательные числа при вычислении среднего геометрического, вы можете использовать следующую формулу:

#define vector with some zeros and negative numbers
x <- c(4, 8, 9, 9, 12, 14, 17, 0, -4)

#calculate geometric mean of values in vector
exp(mean(log(x[x > 0])))

[1] 9.579479

Пример 3: вычисление среднего геометрического столбцов во фрейме данных

Следующий код показывает, как вычислить среднее геометрическое столбца во фрейме данных:

#define data frame
df <- data.frame(a=c(1, 3, 4, 6, 8, 8, 9),
 b=c(7, 8, 8, 7, 13, 14, 16),
 c=c(11, 13, 13, 18, 19, 19, 22),
 d=c(4, 8, 9, 9, 12, 14, 17))

#calculate geometric mean of values in column 'a'
exp(mean(log(df$a)))

[1] 4.567508

А следующий код показывает, как вычислить среднее геометрическое нескольких столбцов во фрейме данных:

#define data frame
df <- data.frame(a=c(1, 3, 4, 6, 8, 8, 9),
 b=c(7, 8, 8, 7, 13, 14, 16),
 c=c(11, 13, 13, 18, 19, 19, 22),
 d=c(4, 8, 9, 9, 12, 14, 17))

#calculate geometric mean of values in column 'a', 'b', and 'd'
apply(df[ , c('a', 'b', 'd')], 2, function (x) exp(mean(log(x))))

 a b d 
4.567508 9.871128 9.579479 

Дополнительные ресурсы

Как рассчитать среднее значение по группе в R
Как рассчитать средневзвешенное значение в R
Как рассчитать стандартную ошибку среднего в R