Робохомячок

Как сделать проверку на отрицательное значение среднего геометрического

Среднее геометрическое - это среднее арифметическое логарифмируемых значений. Оно используется для подсчёта средней степени изменения, например, в росте населения или в финансовых расчётах. Но что делать, если среднее геометрическое равно отрицательному числу? В данной статье мы рассмотрим несколько способов проверки на отрицательное значение среднего геометрического.

Способ №1: Проверка знака каждого элемента

Для начала необходимо понимать, что отрицательное среднее геометрическое произойдёт только в том случае, если все элементы выборки будут отрицательными. Следовательно, первым шагом нужно проверить знак каждого элемента.

import numpy as np

arr = np.array([-2, -3, -4, -5]) # пример выборки

positive = all(i > 0 for i in arr) # функция проверки на положительный знак каждого элемента

if positive:
  # рассчёт среднего геометрического
  geometric_mean = np.exp(np.mean(np.log(arr)))
else:
  print("Невозможно посчитать среднее геометрическое. В выборке есть отрицательные элементы.")

В данном примере мы использовали библиотеку NumPy и написали функцию, которая проверяет каждый элемент выборки на положительный знак. Если результат такой проверки положительный, то мы можем рассчитать среднее геометрическое. Если же есть хотя бы один отрицательный элемент, то посчитать его невозможно и мы получаем соответствующее сообщение.

Способ №2: Изменение выборки

Если в выборке присутствуют отрицательные элементы, то в некоторых случаях можно изменить выборку таким образом, чтобы она стала подходящей для рассчёта среднего геометрического. Для этого можно возвести каждый элемент в степень, делитель которой будет равен количеству отрицательных элементов плюс один. Например, для выборки [-2, 3, -4, 5] мы можем сделать следующее:

arr = np.array([-2, 3, -4, 5]) # пример выборки

neg_count = len([i for i in arr if i < 0]) # количество отрицательных элементов
new_arr = np.power(arr, neg_count+1) # возводим каждый элемент в степень

# рассчёт среднего геометрического
geometric_mean = np.exp(np.mean(np.log(new_arr)))

# возврат исходной средней в исходной масштабе
result = round(np.power(geometric_mean, 1/(neg_count+1)), 2)

Здесь мы находим количество отрицательных элементов в выборке и возводим каждый элемент в степень, делитель которой равен этому количеству плюс один. Вычисляем среднее геометрическое и затем возводим его в степень, обратную количеству отрицательных элементов плюс один, чтобы получить исходную среднюю величину.

Вывод

Среднее геометрическое является полезным инструментом для рассчёта средней степени изменения. При этом возможны ситуации, когда его значение может быть отрицательным. Чтобы избежать таких ситуаций, надо всегда проверять знак каждого элемента выборки. Если есть отрицательные элементы, то можно изменить выборку таким образом, чтобы она стала подходящей для рассчёта среднего геометрического.

© Copyright 2023 by DevOps. Built with ♥

Ответит на любые вопросы, напишет доклад, решит домашнее задание, можно просто поболтать :)

Абсолютно бесплатно и без рекламы.