Кластеризация распределений

10

У меня есть несколько распределений (10 распределений на рисунке ниже). распределения

Фактически это гистограммы: на оси x имеется 70 значений, которые представляют собой размеры некоторых частиц в растворе, и для каждого значения x соответствующее значение y представляет собой долю частиц, размер которых составляет около значения x.

Я хотел бы сгруппировать эти распределения. В настоящее время я использую иерархическую кластеризацию с евклидовым расстоянием, например. Я не удовлетворен выбором расстояния. Я пробовал теоретико-информационное расстояние, такое как Кульбака-Лейблера, но в данных много нулей, и это вызывает трудности. Есть ли у вас предложение подходящего расстояния и / или другого метода кластеризации?

Стефан Лоран
источник

Ответы:

16

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

Итак, подготовьте данные в виде (A, B, ... и т. Д. Являются распределениями)

Value CumProp_A CumProp_B ...
1       .01       .05
2       .12       .14
...     ...       ...
70      1.00      1.00

и вычислить матрицу расстояний между распределениями. Отправить в иерархическую кластеризацию (я бы порекомендовал полный метод связи). Какое расстояние? Что ж, если вы думаете, что две кумулятивные кривые сильно различаются, если они находятся далеко друг от друга только по одному значению ( b ), используйте расстояние Чебышева. Если вы считаете, что две кумулятивные кривые сильно отличаются друг от друга, только если одна из них стабильно находится над другой в широком диапазоне значений ( c ), используйте автокорреляционное расстояние. В случае, если важны какие-либо локальные различия между кривыми ( a ), используйте расстояние по Манхэттену.

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

PS Автокорреляционное расстояние - это просто ненормированный коэффициент автокорреляции разностей между накопительными кривыми X и Y:

i=2N(XY)i(XY)i1

ttnphns
источник
Отлично - большое спасибо! Я сделаю это завтра
Стефан Лоран
Автокорреляционное расстояние возможно отрицательное. Это действительно хорошее определение?
Стефан Лоран
Я забыл задать еще один вопрос: почему вы бы порекомендовали полную связь?
Стефан Лоран
Вы можете установить на ноль отрицательные условия продукта, если таковые имеются. Я не настаиваю на полной связи, скорее, я бы предостерег от «геометрических» методов, таких как Уорд или центроид, потому что расстояния не являются евклидовыми. Я также подумал, что такой «дилатационный» метод, как полная связь, будет вам по душе
ttnphns
4

Если ваши данные представляют собой гистограммы, вы можете посмотреть соответствующие функции расстояния, например, «расстояние пересечения гистограммы».

Существует инструмент под названием ELKI, который имеет широкий спектр алгоритмов кластеризации (гораздо более современных, чем k-средства и иерархическая кластеризация), и даже включает версию пересечения гистограмм, которую вы можете использовать в большинстве алгоритмов. Возможно, вы захотите попробовать несколько алгоритмов, доступных в нем. Из сюжета, который вы дали выше, мне неясно, что вы хотите сделать. Группируйте отдельные гистограммы, верно? Судя по 10, которые вы показали выше, кластеров может не быть.

ВЫЙТИ - Anony-Mousse
источник
Спасибо. Но я ищу инструмент, доступный в R или SAS. Тогда десять вышеприведенных дистрибутивов - всего лишь один пример, у меня есть много серий распределений по кластерам.
Стефан Лоран
2

Возможно, вы захотите использовать некоторую технику извлечения признаков для получения дескрипторов для k-средних или другого типа кластеризации.

Основной подход заключается в том, чтобы подогнать определенное распределение к вашим гистограммам и использовать его параметры в качестве дескрипторов. Например, у вас, кажется, есть бимодальные распределения, которые вы можете описать с помощью 2 средних и 2 стандартных отклонений.

Другой возможностью является кластеризация по первым двум или трем основным компонентам подсчетов гистограмм.

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

На этой странице объясняется, как это сделать при работе с внеклеточными шипами. Данные разные, но идея должна быть применима к вашему случаю. Вы также найдете много ссылок внизу.

http://www.scholarpedia.org/article/Spike_sorting

В R вы можете рассчитать основные компоненты ваших пиков, используя либо функцию, princompлибо prcomp. Здесь вы найдете учебник по PCA в R.

Для вейвлетов вы можете посмотреть на waveletsпакет.

Кластеризация k-средних может быть достигнута с помощью kmeansфункции.

Nico
источник
Спасибо, я посмотрю на ваше предложение, когда это возможно.
Стефан Лоран