Полная версия этой страницы:
группировка наблюдений
Нужно проверсти кластерный анализ. У меня 20 наблюдений, но каждое из них делится на 2. То есть
наблюдение 1
a=0,8765
b=0,645
наблюдение 2
a=0,297
b=0,397
Итак далее. эти a и b не отделимы, их в одном наблюдении надо учитывать.
Но программа не может так работать. Она их воспринимает как разные наблюдения. Как же мне провести кластерный анализ по 20 наблюдениям не разделяя поднаблюдения?
У меня было предположение для каждого наблюдения вывести среднее, но я не знаю насколько это будет точно. Просто не вдаваясь в подробности, 0,87 консистенция раствора. 0,6 и выше это хорошо. ниже плохо. Может быть у одного под 0,9, а у второго раствора 0,3. Среднее тут некорретно.
Тут как бы вещество и ко-вещество.
Цитата(drZub @ 12.03.2015 - 18:01)

Нужно проверсти кластерный анализ. У меня 20 наблюдений, но каждое из них делится на 2. То есть
наблюдение 1
a=0,8765
b=0,645
наблюдение 2
a=0,297
b=0,397
Итак далее. эти a и b не отделимы, их в одном наблюдении надо учитывать.
Но программа не может так работать. Она их воспринимает как разные наблюдения. Как же мне провести кластерный анализ по 20 наблюдениям не разделяя поднаблюдения?
У меня было предположение для каждого наблюдения вывести среднее, но я не знаю насколько это будет точно. Просто не вдаваясь в подробности, 0,87 консистенция раствора. 0,6 и выше это хорошо. ниже плохо. Может быть у одного под 0,9, а у второго раствора 0,3. Среднее тут некорретно.
Тут как бы вещество и ко-вещество.
Пока не понятно: у вас 20 наблюдений (случаев, строк), допустим каждое делится на 2, а сколько признаков (атрибутов, колонок)? Есть ли они вообще или у вас 20 строк и 2 колонки (а и b)? Опишите структуру данных и цель анализа подробнее (но не вдаваясь в специальные предметные подробности).
nokh, лучший способ оисать структуру данных, это её показать их.
тут пример в экселе
Цитата(drZub @ 12.03.2015 - 20:39)

nokh, лучший способ оисать структуру данных, это её показать их.
тут пример в экселе
Плохо что цель не написали, возможно вам и не кластерный анализ нужен...
Но если исходить из того, что нужно найти наиболее похожие объекты из 20 и/или определделиться с числом групп (кластеров), то у меня 2 варианта.
1) Механистический. Раз нельзя усреднить сами данные по а и б, то нужно усреднить расстояния. Т.е. рассчитать расстояния между 20 объектами отдельно по а, и отдельно по б. Затем эти расстояния усреднить и по усреднённым расстояниям построить дендрограмму.
2) Редукция данных с обобщением. Организовать данные иначе: только 20 строк, а в колонках - 1) а, 2) б, 3) v1, 4) v2 и т.д. Далее эту матрицу обработать каким нибудь неограниченным (unconstrained) многомерным методом (главные компоненты или или факторный анализ) или, если предполагается не корреляция, а зависимость (например, v1, v2 и т.д. от а и б) - лучше ограниченным (PLS или анализ избыточности RDA). Выделить и интерпретировать по-существу процессов новые оси. Далее рассчитать значения по этим осям (типа факторные метки) для 20 объектов и провести кластеризацию по ним. Выгода здесь двойная. Во-первых, происходит обобщение данных и лучше понимается суть стоящих за ними процессов. Во-вторых, снижается влияние случайности выбора показателей для кластеризации на результат. Т.е. может оказаться что 3 показателя скоррелированы и отражают один процесс, а четвёрный - другой. При кластеризации исходных данных этот четвёртый будет заглушен тремя. Т.е. вы будете думать, что провели кластеризацию по всем данным, а реально - только по показателям, "работавшим" скоррелированно на какой-то один фактор. В случае кластеризации на факторных метках три скоррелированных показателя войдут в один фактор, а четвёртый даст второй и не потеряется.
Метод лучше брать Уорда, а с расстояними возможны варианты в зависимости от того что более желательно вычленить.
anserovtv
13.03.2015 - 14:42
Мне также Ваша задача кажется странной: для кластеризации слишком мало наблюдений.
1. Если я правильно понимаю структуру данных , то , строго говоря, корректно только применение сложного интегративного метода - кластерного анализа последовательностей. Метод основан на вычислении расстояний между переходами. Программные реализации есть, но возникнут другие проблемы. Вероятно, есть код R или SAS, не знаю.
2. Я бы попробовал применить совсем простые методы: сделать анализ отдельно для а и b, а полученные модели сравнить: если они похожи, то это и есть решение задачи. Если отличаются существенно, то это тоже результат. При этом для выявления групп можно использовать не только стандартный кластерный анализ, но и многомерное шкалирование , EM -кластеризацию, карты Кохонена.
3. Для выполнения кластерного анализа лучше использовать двухэтапный кластерный анализ: автоматически определяется число кластеров, указывается качество кластеризации и важность переменных.
Как вариант можно попробовать преобразовать данные: случаи с b задать как новые переменные к тем же наблюдениям. Считаю, что это корректно, так как переход всего в один шаг.
P.S. Я посчитал что-то по этим данным и для а и для b - программа не видит кластеры. Что произойдет при переходе от 6 к 20 наблюдениям - не знаю .
Спасибо за Ваши подробные ответы. А как мне правильно расчитать расстояния?
В SPSS есть этот кластерного анализа последовательностей? Какой Вы имеете ввиду анализ провести отдельно для a и b? Если двухэтапный кластерный анализ, то есть ли в SPSS его реализация. Метод Уорда я точно знаю есть.
anserovtv
13.03.2015 - 19:23
Двухэтапный кластерный анализ есть в SPSS.
КА последовательностей есть в SQL Server, но это очень сложно, не советую.
Вроде бы можно использовать и специальный модуль MATLAB. Это тоже сложно.
Я применял двухэтапный КА для а и b. Метрику для вычисления расстояний нужно выбрать исходя из содержания данных.
Очень много различных метрик для КА в пакете PAST.
Я бы начал с многомерного шкалирования для предварительного определения числа групп (нужно предварительно вычислить расстояния!!)
Вы плохо описали структуру данных, я не все понимаю.
Цитата(drZub @ 13.03.2015 - 20:40)

А как мне правильно расчитать расстояния?
В SPSS есть этот кластерного анализа последовательностей? Какой Вы имеете ввиду анализ провести отдельно для a и b? Если двухэтапный кластерный анализ, то есть ли в SPSS его реализация. Метод Уорда я точно знаю есть.
Я не знаю, ковыряться в SPSS нет времени. Но любые программы сначала считают расстояния, а потом уже по ним кластеризуют. Расстояния можно посмотреть где-то в результатах. Я бы пошёл по пути 2) с использованием анализа главных компонент для простоты.
p2004r
16.03.2015 - 11:28
Цитата(drZub @ 12.03.2015 - 16:01)

Нужно проверсти кластерный анализ. У меня 20 наблюдений, но каждое из них делится на 2. То есть
наблюдение 1
a=0,8765
b=0,645
наблюдение 2
a=0,297
b=0,397
Итак далее. эти a и b не отделимы, их в одном наблюдении надо учитывать.
Но программа не может так работать. Она их воспринимает как разные наблюдения. Как же мне провести кластерный анализ по 20 наблюдениям не разделяя поднаблюдения?
У меня было предположение для каждого наблюдения вывести среднее, но я не знаю насколько это будет точно. Просто не вдаваясь в подробности, 0,87 консистенция раствора. 0,6 и выше это хорошо. ниже плохо. Может быть у одного под 0,9, а у второго раствора 0,3. Среднее тут некорретно.
Тут как бы вещество и ко-вещество.
Тут можно трансформировать данные в пригодный вид для анализа "не структурными" методами ML. Просто оставьте "a" неизменным, а вместо "b" (в отдельную переменную) пишите a-b или a/b (или обе величины сразу).
Конечно это немного затруднит логику анализа, но всё имеет свою цену.
anserovtv
17.03.2015 - 17:39
Кластерный анализ последовательностей
Sequence Clustering широко применяется в биоинформатике (и в бизнес-аналитике).
Существует скрипт R
http://www.r-bloggers.com/a-sequence-clustering-model-in-r/
p2004r
17.03.2015 - 20:55
Цитата(anserovtv @ 17.03.2015 - 17:39)

Кластерный анализ последовательностей
Sequence Clustering широко применяется в биоинформатике (и в бизнес-аналитике).
Существует скрипт R
http://www.r-bloggers.com/a-sequence-clustering-model-in-r/Какое отношение имеет последовательность в которой возможны перестановки к данным топикстартера?
anserovtv
17.03.2015 - 21:30
Цитата(p2004r @ 17.03.2015 - 20:55)

Какое отношение имеет последовательность в которой возможны перестановки к данным топикстартера?
Слово
перестановка здесь не используется и я
не использовал.
Кластерный анализ последовательностей - это интегративный метод , сочетающий в себе анализ последовательностей и кластерный анализ.
Читайте Д. Макленнен и др. SQL Server 2008 Data mining ИАД 2009. стр 373 и далее.
Да , чтобы его использовать, эти данные нужно несколько преобразовать.
В общем случае метод использует и цепи Маркова.
Диаграмма кластеров в SQL будет похожа на диаграмму в Deductor со связями между кластерами. но и с вероятностями перехода (алгоритм Microsoft Sequence Cluctering).
Считаю, что в этом случае данный метод наиболее применим из того, что известно мне. Остальные подходы ( в том числе и мои) можно считать наивными.
Следующий по сложности метод в этом ряду - кластерный анализ временных рядов (здесь применять нельзя).
В Россси , по моим сведениям, этими методами почти никто не занимается.
p2004r
17.03.2015 - 21:47
Здесь нет никакой последовательности (а есть два значения, назвать это последовательностью как то слишком круто, это просто а и b), а указанный вами линк на R пакет ведет именно на модель данных с перестановками, которая применяется в случае множественного ранжирования (типа анализа данных выдачи поисковиков и последовательностей у биоинформатиков).
anserovtv
18.03.2015 - 07:08
Определение последовательности на стр. 374.
В математике последовательность может состоять из двух чисел, здесь аналогично: начальное состояние - конечное состояние.
Судя по описанию алгоритма в этой книге, метод применим и в этом случае.
/ Цепи Маркова - первого порядка . Рисунок на стр.391./
В алгоритме применяется EM-кластеризация.
p2004r
18.03.2015 - 12:42
Цитата(anserovtv @ 18.03.2015 - 07:08)

Определение последовательности на стр. 374.
В математике последовательность может состоять из двух чисел, здесь аналогично: начальное состояние - конечное состояние.
Судя по описанию алгоритма в этой книге, метод применим и в этом случае.
/ Цепи Маркова - первого порядка . Рисунок на стр.391./
В алгоритме применяется EM-кластеризация.
ну тогда это подходит и под определение временной серии

которую почему то "нельзя использовать"

цепь Маркова в данном случае это простая регрессия, частный случай которой (без интерцепта) я и предложил для преобразования данных
anserovtv
18.03.2015 - 13:02
Если я правильно понимаю структуру этих данных, то определяю эти данные как панельные, а не как перекрестные. В этом и основная проблема топикстартера.
Вроде бы панельные данные обычно отличают от временных рядов.
p2004r
18.03.2015 - 19:25
Цитата(anserovtv @ 18.03.2015 - 13:02)

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

там просто надо для a и b размножить (на двоих) строчку точку всех остальных параметров

такие данные можно спокойно вставлять в любой метод
anserovtv
18.03.2015 - 19:46
Нет , не шучу. Возможно, это просто многозначность терминов в разных подходах. Единого дискурса в матстатистике в нашей стране нет.
Во временных рядах ориентируюсь плохо.
Вы меня не убедили в преобразованиях данных (я и сам предлагал упростить структуру).
Топикстартер так и не пояснил структуру данных, возможно, это военная тайна.
Преобразовать можно любые данные и к ним применять разные методы, только вот как это потом интерпретировать.
Скорее всего, алгоритм существует в простой реализации и применяется где-нибудь в биоинформатике или в химии.
Какую структуру имеют эти данные на Ваш взгляд?
p2004r
18.03.2015 - 22:18
Цитата(anserovtv @ 18.03.2015 - 19:46)

Нет , не шучу. Возможно, это просто многозначность терминов в разных подходах. Единого дискурса в матстатистике в нашей стране нет.
Во временных рядах ориентируюсь плохо.
Вы меня не убедили в преобразованиях данных (я и сам предлагал упростить структуру).
Топикстартер так и не пояснил структуру данных, возможно, это военная тайна.
Преобразовать можно любые данные и к ним применять разные методы, только вот как это потом интерпретировать.
Скорее всего, алгоритм существует в простой реализации и применяется где-нибудь в биоинформатике или в химии.
Какую структуру имеют эти данные на Ваш взгляд?
1. И русскоязычное и англоязычное определение панельных данных практически совпадает.
2. Топикстартер вообще то привел даже кусок своих реальных данных.
PS ещё раз посмотрел, ничего сложного на самом деле, просто посчитать PCA для a, пометить в это же пространство b с помощью predict(); и нарисовать стрелочки от a к b... на получившуюся картину надо помедитировать и выдвинутые гипотезы потом подоказывать
anserovtv
18.03.2015 - 22:45
Да, возможно и так. Данные я видел. Полагаю. что многомерное шкалирование будет работать лучше чем PCA - больше исходной информации сохранится и можно пытаться интерпретировать шкалы.Опять же можно оценивать качество моделей: RSQ обычно больше 0,9. а стресс маленький. Вычислить расстояния между строками и по ним построить модели МШ.
Где-то читал о том, что можно вручную (в графическом виде) накладывать, поворачивать (!) и вычислять расстояния-отклонения для двух моделей
многомерного шкалирования для одних и тех же объектов на разных этапах.
Полагаю, что если и сравнивать, то по таблицам координат.
Я об этом подходе писал выше.
Если бы были полные данные, можно было бы построить модели для а и b разными методами и выбрать метод, при котором модели наиболее похожи.
Если принять, что в двумерном (R2) пространстве Фактор-Кофактор определены две последовательности a и b, то каждому наблюдению вместо двух векторов можно (?) поставить в соответствие их свертку, затем 20 полученных сверток кластеризовать, пока не надоест.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.