Вычисление взвешенного геометрического среднего большого списка чисел

Я пытаюсь вычислить средневзвешенное геометрическое значение большого списка чисел (около 115 тысяч).

Каждому числу присваивается значение веса 1, 2 или 3.

Кажется, есть масса способов вычислить среднее геометрическое (невзвешенное), и одна вещь, с которой я столкнулся раньше, это то, что метод:

  1. EXP (AVERAGE (LN (<список значений>)))

это гораздо лучший метод для больших списков, чем любой из них:

  1. PRODUCT (nTH_ROOT ()), где n - количество значений в списке

  2. nTH_ROOT ( PRODUCT ()), где n - количество значений в списке

Все ссылки, которые я мог найти для расчета средневзвешенного геометрического, использовали последние два метода. По моему ограниченному опыту, эти методы почти всегда приводят к ошибке при попытке запустить их по очень длинному списку. Для списка из 115 тыс., Метод номер 2 вычисляет промежуточное число, которое является нечестиво большим. Excel не способен получить 115000-й корень числа, я не уверен, что что-то вроде python или R может это сделать.

В любом случае, моя цель состоит в том, чтобы придумать формулу взвешенного геометрического среднего, основанную на методе 1 выше.

Мое предлагаемое решение ниже. Одно замечание: в основном я делаю это в excel, хотя сначала я вычислял журнал каждого значения в списке в python. Мой вопрос не о программировании в Excel, а о математике за взвешенным геометрическим средним. Я использую Excel, потому что предложенное ниже решение основано на использовании вывода сводной таблицы Excel для группировки значений списка по весу. Мой конечный результат должен быть в Excel, поэтому предпочтение отдается решениям для Excel. Его тестирование прошло хорошо в Excel, но я хотел попросить подтверждения.

взвешенное геометрическое среднее =

EXP(
 AVERAGE ( LN ( <list values where weight is 1> ) )  *  ( 1 / 6  ) 
 + AVERAGE ( LN ( <list values where weight is 2> ) )  *  ( 2 / 6 )
 + AVERAGE ( LN ( <list values where weight is 3> ) )  *  ( 3 / 6 ) 
)

Огромное спасибо!

Павел

Некоторые ссылки, которые были почти полезны:

https://www.quora.com/How-do-I-calculate-a-weighted-geometric-mean

http://www.dummies.com/education/math/business-statistics/how-to-find-the-weighted-geometric-mean-of-a-data-set/

1 ответ

Средневзвешенное геометрическое среднее можно рассчитать по следующей формуле:

Так что в Excel это было бы

=EXP(SUMPRODUCT(weights, LN(x)) / SUM(weights))
Другие вопросы по тегам