Як кластеризувати поздовжні змінні?


10

У мене є купа змінних, які містять поздовжні дані від 0 до 7 дня. Я шукаю відповідний підхід кластеризації, який може класифікувати ці поздовжні змінні (а не випадки) у різні групи. Я спробував проаналізувати цей набір даних окремо за часом, але результат був досить важко пояснити.

Я досліджував наявність процедури SAS, PROC SIMILARITYоскільки на її веб-сайті є приклад ; однак, я думаю, що це не правильний шлях. Деякі попередні дослідження використовували дослідницький аналіз факторів у кожній часовій точці, але це не є варіантом у моєму дослідженні, а також через необґрунтовані результати.

Сподіваємось, тут можуть бути надані деякі ідеї, і складена програма, наприклад SAS або R, може бути доступна для обробки. Будь-яка пропозиція цінується !!


Ось короткий приклад (вибачте за непослідовне положення між даними та іменами змінних):

id time   V1  V2   V3   V4   V5   V6   V7   V8   V9   V10
2    0    8    7    3    7    6    6    0    0    5    2
2    1    3    5    2    6    5    5    1    1    4    2
2    2    2    3    2    4    4    2    0    0    2    2
2    3    6    4    2    5    3    2    1    2    3    3
2    4    5    3    4    4    3    3    4    3    3    3   
2    5    6    4    5    5    6    3    3    2    2    2
2    6    7    5    2    4    4    3    3    4    4    5
2    7    7    7    2    6    4    4    0    0    4    3
4    0   10    7    0    2    2    6    7    7    0    9
4    1    8    7    0    0    0    9    3    3    7    8
4    2    8    7    0    0    0    9    3    3    7    8
4    3    8    7    0    0    0    9    3    3    7    8
4    4    5    7    0    0    0    9    3    3    7    8
4    5    5    7    0    0    0    9    3    3    7    8
4    6    5    7    0    0    0    9    3    3    7    8
4    7    5    7    0    0    0    9    3    3    7    8
5    0    9    6    1    3    2    2    2    3    3    5
5    1    7    3    1    3    1    3    2    2    1    3
5    2    6    4    0    4    2    4    2    1    2    4
5    3    6    3    2    3    2    3    3    1    3    4
5    4    8    6    0    5    3    3    2    2    3    4
5    5    9    6    0    4    3    3    2    3    2    5
5    6    8    6    0    4    3    3    2    3    2    5
5    7    8    6    0    4    3    3    2    3    2    5

Чи можете ви пояснити дані трохи більше чи, можливо, надати скорочений зразок? Якщо ви говорите, що "змінні містять поздовжні дані", ви маєте на увазі, що це всі повторні вимірювання на одній особі чи речі протягом 7 днів (і, таким чином, можливо, вони співвідносяться).
rosser

До розмаху: я додав частину даних. Як ви вже згадували, це повторні вимірювання: у кожного пацієнта (ІД) проводиться 10 вимірювань (V1 ~ V10) тривалістю кілька днів (день0 ~ день7).
cchien

Відповіді:


5

У Hmiscпакеті R див. Файл довідки для curveRepфункції, яка означає "представницькі криві". curveRepкластери на кривих формах, місцях розташування та шаблонах пропущених часових точок.


Дякую за вашу пораду. Це звучить виконано. Я одразу прочитаю його посібник.
cchien

Френк. Приклад у посібнику, здається, не функціонує. Чи є друкарська помилка? Я хотів запустити приклад, щоб відчути це. Ось код: set.seed (1) N <- 200 nc <- зразок (1:10, N, ІСТИНА) id <- rep (1: N, nc) x <- y <- id for (i in 1: N) {x [id == i] <- if (iy [id == i] <- i + 10 * (x [id == i] - .5) + runif (nc [i], - 10, 10)}
B_Miner

1
Уопс. Я забув, що потрібно уникнути знака відсотків у файлі довідки R. Це призвело до обрізання рядка в прикладі. Замініть неповний рядок на: x[id==i] <- if(i %% 2) runif(nc[i]) else runif(nc[i], c(.25, .75))
Френк Харрелл

Я не впевнений, що означає "p: кількість точок, за якими оцінювати кожну криву для кластеризації" у curveRep (x, y, id, kxdist = 2, p = 10)
greg121

1
p>3p=10p

5

Я не впевнений, що це те, що ви шукаєте, але пакет kmlв R використовує k-засоби для кластеризації послідовностей повторних заходів. Ось посилання на пакеті сторінку і на папір (на жаль, він закритий). Він добре працює, лише якщо у вас досить невеликий набір даних (кілька сотень послідовностей).

ось версія документа (без проблем з посиланням), яка не є захищеною: http://christophe.genolini.free.fr/recherche/aTelecharger/genolini2011.pdf


Я фактично переглянув цей метод, перш ніж публікувати це питання. Я припустив, що підхід kml є кластерним способом згрупувати людей з деяких прикладів його оригінальної статті. Я ще раз погляну на це. Дякую!!
cchien

@ccchien так, вони використовують його для об'єднання окремих траєкторій разом, але ви можете припустити, що у вас є десять траєкторій на кожного (одна для кожної зі змінних). Вам, можливо, потрібно нормалізувати свої змінні, щоб процедура kml працювала належним чином. Проблема полягає в тому, що, наскільки я знаю, немає способу сказати kml, що ваші траєкторії вкладені в людей. Таким чином, це може бути не точно підходити до того, що ви намагаєтесь досягти.
Антуан Вернет

@ greg121, дякую за посилання на вільно доступну версію статті. Здається, текстові посилання були скинуті, можливо, файл Latex слід ще раз перекомпілювати (хоча список посилань є).
Антуан Вернет

@AntoineVernet так, ти маєш рацію. Але я не зміг знайти жодної іншої версії
greg121

4

Отже, у вас є p змінних, виміряних щоразу t разів на одних і тих же n осіб. Один із способів продовжити - обчислити матриці подібності t pXp (dis) та застосувати багатовимірне масштабування моделі INDSCAL. Це дасть вам дві низькомірні карти (скажімо, двох вимірів). Перша карта показує координати з р змінних в просторі розмірів і відображає угруповання серед них, якщо такі є. Друга карта показує ваги (тобто важливість чи виразність) розмірів у кожній матриці t .

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


У мене також є ідея перетворення n-вимірності у двовимірну, але просто не маю уявлення про конкретний метод, який би міг це досягти. Тепер я виявив, що SAS може мати процедуру, яка може її реалізувати. Я вивчу це, щоб побачити його наявність під час використання моїх даних.
cchien

Який найкращий спосіб інтерпретувати ваги?
Ming K

Вага показує, який розмір є релевантним або дискримінаційним для цього конкретного джерела (джерелами є особи, або, як у цьому прикладі, часи). Наприклад, на зображенні за часом1, наприклад, розмірність II є сильною або відповідною, а розмірність I - слабкою.
ttnphns
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.