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


9

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

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

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

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

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


Ответы:


3

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

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

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


Спасибо, я не знал о Левенберге-Марквардте! Эти кластеры не являются гауссовыми; Вы все еще думаете, что гауссовские функции были бы лучшим PDF, чтобы соответствовать им?
Николаус

+1 к этому и Грегу Сноу. Я полностью согласен с этим советом. @Nikolaus Я думаю, что это выглядит "достаточно гауссовски", чтобы соответствовать смеси гауссовских распределений. Вам не нужна идеальная подгонка, просто способ проверить, сколько существует кластеров. В этом случае хорошей идеей может быть ограничение всех компонентов одним и тем же стандартным отклонением (по причинам, объясненным Anony-Mousse).
Элвис

Они явно выглядят достаточно хорошо для меня. К-среднее моделирует данные с помощью клеток Вороного. Мне не кажется разумным предполагать, что лучшая точка разделения находится точно в середине двух соседних средних.
ВЫЙТИ - Anony-Mousse

6

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


4

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


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.