Не смог найти в Excel-2003 или нагуглить вычисление оценки дисперсии по выборке объёма
при известном математическом ожидании
:
.
Сочинил функцию.
Код:
Function VarM(R As Range, M As Double) As Double
' VarM - вычисляет значение оценки дисперсии по выборке (размещённой в диапазоне R)
' при известном математическом ожидании M
' VarM = Sum( R(i) - M)^2)/R.Count
' Пример вызова из ячейки листа.
' Пусть выборка в ячейках A1:A100, математическое ожидание равно 0.
' Вызов =VarM(A1:A100, 0)
Dim S As Double
S = 0
For Each X In R
S = S + (X - M) ^ 2
Next
VarM = S / R.Count
End Function
Функция вроде работает. Но может быть есть более простое решение, без использования VBA? Если без VBA нельзя, то может быть на VBA можно проще?
Upd 21.10.20 (утро). Первоначально много глупых лишних действий было. Отредактировал исходный текст. Заодно и имена сделал немного более понятными.Upd2 21.10.20 (вечер). Без VBA можно так. В старых версиях Excel функция
ДИСПР возвращает
, а функция
СРЗНАЧ возвращает
. Искомая оценка выражается через
и
:
. Таким образом, можно использовать формулу
=ДИСПР(диапазон)+(СРЗНАЧ(диапазон)-M)^2,
если макросы не нравятся (не хочется понижать уровень безопасности макросов). Возможно, использование встроенных функций будет работать быстрее, несмотря на повторное вычисление
.
В новых версиях Excel есть функция
ДИСП.Г, которая вычисляет то же, что и
ДИСПР в старых версиях.