#qliksense
#qliksense
Вопрос:
Я столкнулся с проблемой в QlikSense, пытаясь вычислить некоторые статистические показатели (процентили, квартили, StdDev, медиану и т.д.) В наборе данных, Который уже сгруппирован по источнику.
Я имею в виду, что мой набор данных чем-то похож на следующий, в котором у меня есть для каждой комбинации недели и возраста клиента общее количество покупок:
Я хочу показать медиану возраста клиента, и из-за структуры набора данных я не могу использовать встроенные функции fractile или median, поскольку они выдали бы что-то другое.
Предположим, я хочу вычислить средний возраст людей за все 3 недели, так что я хочу знать, каков возраст людей, которые совершили 50% моих покупок.
Чтобы вы лучше поняли вопрос, я показываю вам гистограмму:
В этом случае медиана, которую я хочу получить, составляет 24-26 лет, поскольку 50% от общей численности населения подпадает под этот диапазон.
Я нашел здесь полезную ссылку, но у меня возникли проблемы с написанием этой формулы в QlikSense
https://mba-lectures.com/statistics/descriptive-statistics/603/relationship-between-quartiles-decile…
Заранее большое спасибо.
[РЕДАКТИРОВАТЬ]: Это мое представление модели данных:
[РЕДАКТИРОВАТЬ 2]: Вот мой qvf с набором данных, более похожим на исходный, который я использую. Как вы можете видеть, я не могу получить правильный результат, используя вашу формулу. Кроме того, я хотел бы использовать его для построения графика тенденции медианы по неделям, но, похоже, это невозможно (даже если я использую модифицированную версию формулы, которую я указал в комментариях).
Ответ №1:
Если вы хотите вычислить медиану в таком сценарии, вам нужно взвесить медиану и в основном проверить, какое значение измерения находится посередине:
Aggr(
If(
(Rangesum(
Above([# Purchases],0,RowNo())
)
/Sum(TOTAL [# Purchases]))>=0.5
and
(Rangesum(
Above([# Purchases],1,RowNo()-1))
/Sum(TOTAL [# Purchases]))<0.5
,[Customer Age])
,[Customer Age])
Комментарии:
1. Спасибо Хьюберту. К сожалению, ваш скрипт, похоже, не работает, возвращая нулевое значение как в таблице, так и в диаграмме ключевых показателей эффективности. Мне это кажется правильным, но не возвращает ожидаемое значение.
2. Привет @FVerg Я поместил свой qvf-файл с примером в свой onedrive 1drv.ms/u/s!Am4ZTQ8qcLwRs35Ms4wM8cEnIBxP
3. Чао Хьюберт. Ваш qvf-файл работает просто великолепно. Если я попытаюсь воспроизвести вашу формулу в наборе данных, который я показал в первом сообщении, я не получу тот же результат. Помещая значения диапазонов в таблицу (с указанием CustomerAge и # Purchases), он возвращает мне 0 для каждой строки. Я думаю, что в этом проблема, но я не понимаю, почему это происходит. Вы знаете почему?
4. Пожалуйста, пришлите скриншот программы просмотра модели данных, чтобы, возможно, я что-нибудь придумал.
5. Выполнено. Если я использую Sum ([# Покупки]) в RangeSums, кажется, это работает, но я все еще не понимаю, почему.