Нахождение стандартного отклонения с использованием только среднего, минимального, максимального?

Я хочу найти стандартное отклонение:

Minimum = 5
Mean = 24
Maximum = 84

Overall score = 90

Я просто хочу узнать свою оценку, используя стандартное отклонение

Спасибо,


person Community    schedule 21.08.2012    source источник
comment
Возможно, вы думаете об эмпирическом правиле диапазона (std=range/4). Это недействительно. Мой эксперимент (stackoverflow.com/a/38934817/309334) показывает, что он не работает даже для обычных популяций.   -  person Eponymous    schedule 13.08.2016


Ответы (4)


Обычно стандартное отклонение не может быть вычислено только по минимальному, максимальному и среднему значениям. Это можно продемонстрировать с помощью двух наборов оценок, которые имеют одинаковые минимальные и максимальные значения, а также средние значения, но разные стандартные отклонения:

  • 1 2 4 5 : мин=1 макс=5 среднее=3 стандартное отклонение≈1,5811
  • 1 3 3 5 : мин=1 макс=5 среднее=3 стандартное отклонение≈0,7071

Кроме того, что означает «общий балл» 90, если максимальное значение равно 84?

person bames53    schedule 21.08.2012

На самом деле я сделал быстрый и грязный расчет типа, который упоминает M Rad. Это включает в себя предположение, что распределение является гауссовским или «нормальным». Это не относится к вашей ситуации, но может помочь другим, задающим тот же вопрос. (Вы можете сказать, что ваше распределение не является нормальным, потому что расстояние от среднего до максимального и среднего до минимального не близко). Даже если бы это было нормально, вам нужно было бы что-то, о чем вы не упоминаете: количество образцов (количество тестов, проведенных в вашем случае).

Те читатели, которые ДЕЙСТВИТЕЛЬНО имеют нормальную совокупность, могут использовать приведенную ниже таблицу, чтобы дать приблизительную оценку, разделив разницу между вашим измеренным минимумом и рассчитанным средним значением на ожидаемое значение для вашего размера выборки. В среднем он будет отличаться на заданное число стандартных отклонений. (Я понятия не имею, является ли он предвзятым — измените приведенный ниже код и рассчитайте ошибку без abs, чтобы получить предположение.)

    Num Samples   Expected distance      Expected error
             10                1.55                0.25
             20                1.88                0.20
             30                2.05                0.18
             40                2.16                0.17
             50                2.26                0.15
             60                2.33                0.15
             70                2.38                0.14
             80                2.43                0.14
             90                2.47                0.13
            100                2.52                0.13

Этот эксперимент показывает, что «эмпирическое правило» деления диапазона на 4 для получения стандартного отклонения в целом неверно — даже для нормальных популяций. В моем эксперименте это верно только для размеров выборки от 20 до 40 (и то неточно). Это правило могло быть тем, о чем думал ОП.

Вы можете изменить следующий код python, чтобы сгенерировать таблицу для разных значений (изменить max_sample_size) или повысить точность (изменить num_simulations) или избавиться от ограничения на кратность 10 (изменить параметры на xrange в цикле for для idx)

#!/usr/bin/python
import random

# Return the distance of the minimum of samples from its mean
#
# Samples must have at least one entry
def min_dist_from_estd_mean(samples):
    total = 0
    sample_min = samples[0]
    for sample in samples:
        total += sample
        sample_min = min(sample, sample_min)
    estd_mean = total / len(samples)
    return estd_mean - sample_min # Pos bec min cannot be greater than mean


num_simulations = 4095
max_sample_size = 100

# Calculate expected distances
sum_of_dists=[0]*(max_sample_size+1) # +1 so can index by sample size
for iternum in xrange(num_simulations):
    samples=[random.normalvariate(0,1)]
    while len(samples) <= max_sample_size:
        sum_of_dists[len(samples)] += min_dist_from_estd_mean(samples)
        samples.append(random.normalvariate(0,1))
expected_dist = [total/num_simulations for total in sum_of_dists]

# Calculate average error using that distance
sum_of_errors=[0]*len(sum_of_dists)
for iternum in xrange(num_simulations):
    samples=[random.normalvariate(0,1)]
    while len(samples) <= max_sample_size:
        ave_dist = expected_dist[len(samples)]
        if ave_dist > 0:
            sum_of_errors[len(samples)] += \
                abs(1 - (min_dist_from_estd_mean(samples)/ave_dist))
        samples.append(random.normalvariate(0,1))
expected_error = [total/num_simulations for total in sum_of_errors]

cols="    {0:>15}{1:>20}{2:>20}"
print(cols.format("Num Samples","Expected distance","Expected error"))
cols="    {0:>15}{1:>20.2f}{2:>20.2f}"
for idx in xrange(10,len(expected_dist),10):
    print(cols.format(idx, expected_dist[idx], expected_error[idx]))
person Eponymous    schedule 13.08.2016
comment
Стоит отметить, что это не так. Когда мы говорим о минимуме и максимуме в выборке, это концепции, которые имеют смысл только для конечного количества выборок, поскольку гауссиана бесконечна, поэтому ее нельзя содержать. Тем не менее, расчет с использованием правила / 4 или / 6 дает вам точную оценку отклонения, вам просто нужно хорошо знать свои данные. Для больших выборок справедливо ожидать, что 99,7% данных находятся между минимумом и максимумом, поэтому это хорошая приблизительная оценка. - person rdnobrega; 23.07.2021

В принципе, вы можете сделать оценку стандартного отклонения от среднего/минимального/максимального и количества элементов в выборке. Минимум и максимум выборки, если вы предполагаете нормальность, являются случайными величинами, статистика которых следует из среднего/стандартного отклонения/количества выборок. Таким образом, учитывая последнее, можно вычислить (после долгих математических вычислений или запуска нескольких сценариев Монте-Карло) доверительный интервал для первого (например, вероятность 80%, что стандартное отклонение находится между 20 и 40 или что-то в этом роде).

Тем не менее, это, вероятно, не стоит делать, кроме как в экстремальных ситуациях.

person M Rad    schedule 29.05.2014

Вы можете получить оценку среднего геометрического, иногда называемого средним геометрическим экстремумов или GME, используя Min и Max, вычислив GME= $\sqrt{ Min*Max }$. Затем SD можно рассчитать, используя среднее арифметическое (AM) и GME, как:

SD= $$\frac{AM}{GME} * \sqrt{(AM)^2-(GME)^2 }$$

Этот подход хорошо работает для логнормальных распределений или до тех пор, пока GME, GM или медиана меньше, чем AM.

person javivr    schedule 22.04.2020