Как количественно определить, сгруппированы ли данные 1D вокруг 1 или 3 значений?

9

У меня есть некоторые данные о времени между ударами сердца человека. Одним из признаков эктопических (дополнительных) ударов является то, что эти интервалы сгруппированы вокруг трех значений вместо одного. Как я могу получить количественную меру этого?

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

введите описание изображения здесь

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

Это для обработки в автономном режиме, так что есть много вычислительной мощности, если это необходимо.

Николаус
источник
1
Связанный : stats.stackexchange.com/questions/5960/…
кардинал

Ответы:

3

Я настоятельно советую против использования K-средств здесь. Результаты для разных значений k не очень хорошо сопоставимы. Метод просто грубая эвристика. Если вы действительно хотите использовать кластеризацию, используйте EM-кластеризацию, поскольку ваши данные, похоже, содержат нормальные распределения. И подтвердите свои результаты!

Вместо этого очевидный подход состоит в том, чтобы попытаться подобрать одну гауссову функцию и (например, используя метод Левенберга-Маркварда) подобрать три гауссовские функции, которые могут быть ограничены одной высотой (чтобы избежать вырождения).

Затем проверьте, какой из двух дистрибутивов подходит лучше.

ВЫЙТИ - Anony-Mousse
источник
Спасибо, я не знал о Левенберге-Марквардте! Эти кластеры не являются гауссовыми; Вы все еще думаете, что гауссовские функции были бы лучшим PDF, чтобы соответствовать им?
Николаус
+1 к этому и Грегу Сноу. Я полностью согласен с этим советом. @Nikolaus Я думаю, что это выглядит "достаточно гауссовски", чтобы соответствовать смеси гауссовских распределений. Вам не нужна идеальная подгонка, просто способ проверить, сколько существует кластеров. В этом случае хорошей идеей может быть ограничение всех компонентов одним и тем же стандартным отклонением (по причинам, объясненным Anony-Mousse).
Элвис
Они явно выглядят достаточно хорошо для меня. К-среднее моделирует данные с помощью клеток Вороного. Мне не кажется разумным предполагать, что лучшая точка разделения находится точно в середине двух соседних средних.
ВЫЙТИ - Anony-Mousse
6

Подберите смешанное распределение к данным, что-то вроде смеси из 3 нормальных распределений, затем сравните вероятность того, что это соответствие, с соответствием одного нормального распределения (с помощью теста отношения правдоподобия или AIC / BIC). flexmixПакет Rможет помочь.

Грег Сноу
источник
4

Кзнак равно1Кзнак равно3ККзнак равно1,2,3Кзнак равно1Кзнак равно3

bnaul
источник
2

Используйте алгоритм кластеризации K-средних для определения различных средств

Ищите функцию KNN в R-seek, чтобы найти соответствующую функцию

Рам Ахлувалия
источник
1
ааа, я как раз собирался опубликовать это! Вы также можете обратиться к этой ссылке для кодов и тому подобного: statmethods.net/advstats/cluster.html
King
Я пытался с kmeansфункцией Matlab . Получающиеся средства сильно различаются от попытки попробовать. (Плохая эвристика в этой реализации?) Для набора из 1 кластера я иногда получаю средства (270 293 693), иногда (260 285 308). Для набора из 3 кластеров некоторые ответы (196,324,468) и (290,459,478).
Николаус
Есть ли место, куда я могу вставить данные?
Николаус
О, это примерно 693 значения: есть два очевидных выброса, 532 и 855, из общих 755 значений. Все остальные значения можно увидеть на гистограмме.
Николаус
Вы должны смотреть за пределы средств, которые вы получаете от k-means, и видеть, насколько хорошо они на самом деле описывают ваши данные!
ВЫЙТИ - Anony-Mousse