Как стать автором
Обновить

Комментарии 11

Проверка распределения на нормальный закон предполагает принятие нулевой гипотезы, которая либо принимается, либо отвергается на заданном уровне значимости. Уровень 0.03 говорит о том, что нулевая гипотеза отаергается, если был задан уровень 0.05.

Полностью с вами согласен. Я, действительно, не указал порог значимости. Добавил в текст пояснение на этот счет! Спасибо!

А если попробовать не разбирать распределения на части, а так и считать, что исходное распределение - сумма цензурированного нормального и экспоненциального? И, ради интереса, а результаты стат. тестов сильно зависят от количества интервалов?

Добрый вечер.

  1. Я правильно понимаю, что вы хотите график плотности для обоих частей данных сразу?

    В этом случае полученные в статье распределения войдут в общую картину с удельными весами, равными относительным размерам их выборок. (Примерно 3/4 для экспоненциального/степенного и 1/4 для нормального).

  2. Про результаты стат. тестов. Я правильно понимаю, что вы хотите проверить, что будет если взять случайную выборку (например, половинного размера) из каждой группы и фитануть распределения для неё?

    Попробовал сейчас повыбирать случайно выборки и для них попроводить тесты (несколько раз для нескольких выборок). Как оказалось, результаты могут отличаться друг от друга довольно сильно. Не знаю, как это можно интерпретировать, ведь, если много раз выбирать случайную выборку, то можно получить какие угодно результаты :) Может быть, вы знаете какую-нибудь метрику на этот счет?

По первому вопросу - да, по мне так, лучше записать общую формулу. По второму вопросу - я говорил конкретно про число столбцов на гистограмме. Обычно результат подгонки зависит от него. Но в любом случае, для вашей задачи, как мне кажется, можно и чуть иной подход попробовать. Посмотрите вот эту статью, метод, описанный в ней, должен работать и для смеси распределений, и должен давать относительно стабильные оценки https://tinyheero.github.io/2016/01/03/gmm-em.html

Добрый день. Спасибо за комментарий! Добавил итоговую формулу в статью!

По второму вопросу — конечно, результаты стат. тестов зависят от промежутка. Например временные интервалы в промежутке от 1 до 7 часов (без первого и восьмого часов) гораздо лучше фитятся экспоненциальным или степенным распределениями, чем если брать все наблюдения вместе (как я делал в статье).

Спасибо за наводку на чудесную статью!

Отличная статья. Как по задаче, так и по подаче материала. Добавлю 5 копеек. Примерно аналогичные задачи смотрели в продуктовом ритейле со вполне понятной целью -- сегментация пользователей и построение единого профиля покупателя.

Для моделирования использовались различные распределения. Экспоненциальное, степенное, а также гамма, логнормальное и вейбула (ноги из теории надежности). Формально распределения должны быть только для неотрицательных значений -- область определения ограничена.

Если смотреть просто на промежутки между покупками, то ничего не понятно, одна каша. Если построить физическую модель, то все становится прозрачным. Дело в том, что визиты никак не являются случайными событиями. Они лимитируются семейным месячным бюджетом (если трекинг по карте лояльности) и суточными нормами потребления. И каждый визит влияет на последующие.

Из временного представления переходим в частотный (вспоминаем спектроскопию, time-domain vs frequency-domain) и отчетливо видим 2-3 частотных пика, спектр отнюдь не непрерывный. Причем каждый пик несет разное энергетическое воздействие (занос денег). Раз в 2-3 дня -- чек небольшой, покупка скоропорта. Недельный или двухнедельный пик -- глобальная закупка.

Т.е. покупатель действует по двум несмешиваемым моделям поведения и их легко можно разделить (dsp processing). Т.е. каждый кусок во временном представлении отвечает за свою модель покупок и не надо делать никаких мультимоделей.

Никаких проверок тестами на нормальность или пр. и споров про p-value вообще не делали -- в чем смысл? Внутренней механики мы не знаем, можем взять то распределение, которое лучше фитится и с которым потом проще возиться, в т.ч. аналитически. Для оценки качества фиттинга смотрели на q-q график -- так становится более понятно, где идет расхождение и какова его разница между различными моделями фиттинга. Нас ведь интересует наилучшая аппроксимация на определенных частях, а не на всем интеграле. Еще эта штука хороша: fitdistrplus::descdist

Добрый день. Спасибо огромное за потрясающий комментарий. Я так проникся, что даже написал на Хабр статью про q-q plots. Я еще недостаточно прокачался, чтобы проводить частотный анализ, но спасибо за наводку. В следующем исследовании буду держать руку на револьвере пальцы на клавиатуре. Если у вас есть на примете крутые статьи/гайды о том, как понимать и применять вот эти frequency-domain (частотные интервалы, насколько я понял), а так же проводить dsp processing на Python или R, то будет здорово, если поделитесь :)

Владимир, time-domain и frequency-domain — это общепринятые термины в области обработки сигналов (вот первая ссылка в гугле: https://learnemc.com/time-frequency-domain).


По-русски, это временные ряды и спектральный анализ.
Чтобы с этим ознакомиться достаточно взять книги по мат.анализу или физику (можно оптику) или книги по цифровой обработке сигналов (dsp — digital signal processing).


Классический переход от шкалы времени к частоте и назад — преобразования Фурье.

Спасибо за кратчайшее ознакомпление!

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.