Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Функция для определения среднеквадратического значения в Power Query
 
В PQ есть функция List.StandardDeviation, но она рассчитывает именно стандартное отклонение, когда расчет производится по выборке из большого массива данных. Мне же нужно сделать расчет на основе конкретного числа элементов (среднеквадратическое отклонение), но функции подобной я не нашел. Писать огромную формулу в несколько шагов можно, но это будет долго работать.
 
Ничего не понятно, покажите в Экселе на списке из 5 элементов что конкретно надо получить.
Вот горшок пустой, он предмет простой...
 
Владимир Колотиев,

если как в Excel STDEV.P (), то никакой длинной формулы не надо писать
Я разбил на шаги для понимания но можно и в одну
Код
let
    Source = {1..10}, 
    #"∑ (Xi - Xavr)^2" = List.Transform(Source, each Number.Power(_ - List.Average(Source), 2)),
    #"∑ (Xi - Xavr)^2 / n" = List.Sum(#"∑ (Xi - Xavr)^2") / List.Count(Source),
    σ = Number.Sqrt (#"∑ (Xi - Xavr)^2 / n")
in
    σ
Для списока {1..10}
STDEV.P({1,2,3,4,5,6,7,8,9,10}) = 2.87228132326901
PQ = 2.8722813232690143

Если разделить на List.Count(Source) - 1, то получим результат который возращает List.StandardDeviation или STDEV.S()
Изменено: DrillPipe - 20 фев 2021 15:10:33
 
Доброе время суток
Цитата
DrillPipe написал:
о никакой длинной формулы не надо писать
Можно и ещё короче :)
Код
let
    Source = {1..10}, 
    n = List.Count(Source),
    generalSTD = Number.Sqrt((n - 1) / n) * List.StandardDeviation(Source)
in
Изменено: Андрей VG - 20 фев 2021 16:34:26
 
Цитата
Андрей VG написал:
Number.Sqrt((n - 1) / n) * List.StandardDeviation(Source)
Вот! Я про это же и подумал, откуда там взяться
Цитата
Владимир Колотиев написал:
огромную формулу в несколько шагов
Вот горшок пустой, он предмет простой...
 
Offtop
Цитата
PooHkrd написал:
откуда там взяться
Привет, Алексей.
Ну, если со всем усердием забыть то, чему учили чуть ли не в школе... то и не такое может получиться. :)
 
Цитата
Андрей VG написал:
забыть то, чему учили чуть ли не в школе
Блин, я честно забыл - зашел на педивикию и за пару минут все вспомнил. Странно в общем.
Вот горшок пустой, он предмет простой...
 
Цитата
Андрей VG написал:
Можно и ещё короче
Не ищем легких путей :)
Подумал только после вашего сообщения, что расчеты отличаются только в изменении объём выборки
 
Цитата
PooHkrd написал:
Вот! Я про это же и подумал, откуда там взяться Цитата Владимир Колотиев  написал:огромную формулу в несколько шагов
Ну вот пост№3 от DrillPipe, как раз и есть большая формула на несколько шагов, я бы как раз решал таким образом, но в общем-то суть вопроса заключалась в том, если ли втроенная функция в pq. Ответ на этот вопрос я успешно получил :)
 
Цитата
Андрей VG написал:
Можно и ещё короче
Ну если уж на то пошло, то можно и еще короче: среднеквадратическое отклонение множества N меньше стандартного отклонения множетства N в x раз (вне зависимости от значений множества). Поэтому можно просто значения функции List.StandardDeviation() разделить на x, предварительно вычислив значение х эмпирическим путем, при этом способ наиболее быстродействующий :)
Страницы: 1
Читают тему (гостей: 1)
Наверх