Jak grupować zmienne podłużne?

10

Mam kilka zmiennych, które zawierają dane podłużne od dnia 0 do dnia 7. Poszukuję odpowiedniego podejścia grupującego, które może grupować te zmienne podłużne (nie przypadki) w różne grupy. Próbowałem analizować ten zestaw danych osobno według czasu, ale wynik był dość trudny do racjonalnego wyjaśnienia.

Zbadałem dostępność procedury SAS, PROC SIMILARITYponieważ istnieje na jej stronie internetowej przykład ; myślę jednak, że nie jest to właściwy sposób. Niektóre wcześniejsze badania wykorzystywały eksploracyjną analizę czynników w każdym punkcie czasowym, ale nie jest to również opcja w moim badaniu z powodu nieuzasadnionych wyników.

Mamy nadzieję, że można tu podać kilka pomysłów, a skompilowany program, taki jak SAS lub R, może być dostępny do przetworzenia. Wszelkie sugestie są mile widziane !!


Oto krótki przykład (przepraszam za niespójną pozycję między danymi a nazwami zmiennych):

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
Cchien
źródło
Czy możesz wyjaśnić dane nieco bardziej, a może podać skróconą próbkę? Kiedy mówisz, że „zmienne zawierają dane podłużne”, masz na myśli, że wszystkie są powtarzanymi pomiarami tej samej osoby lub rzeczy przez 7 dni (a zatem prawdopodobnie są skorelowane).
rosser
Do rosser: dołączyłem część danych. Jak wspomniałeś, są to powtarzane pomiary: każdy pacjent (ID) ma 10 pomiarów (V1 ~ V10) trwających kilka dni (dzień 0 ~ dzień 7).
cchien

Odpowiedzi:

5

W Hmiscpakiecie R patrz plik pomocy dla curveRepfunkcji, która oznacza „reprezentatywne krzywe”. curveRepklastry na kształtach krzywych, lokalizacjach i wzorach brakujących punktów czasowych.

Frank Harrell
źródło
Dzięki za radę. Brzmi wykonalnie. Przeczytam jego instrukcję od razu.
cchien
Szczery. Przykład w podręczniku wydaje się nie działać. Czy jest literówka? Chciałem dać przykład, żeby się przekonać. Oto kod: set.seed (1) N <- 200 nc <- sample (1:10, N, TRUE) id <- rep (1: N, nc) x <- y <- id dla (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
Ups Zapomniałem, że znak ucieczki w pliku pomocy R. musiał zostać zastąpiony znakiem ucieczki. Spowodowało to obcięcie linii w przykładzie. Zamień niekompletną linię na: x[id==i] <- if(i %% 2) runif(nc[i]) else runif(nc[i], c(.25, .75))
Frank Harrell,
Nie jestem pewien, co oznacza „p: liczba punktów, w których należy ocenić każdą krzywą do grupowania” w curveRep (x, y, id, kxdist = 2, p = 10)
greg121
1
p>3)p=10p
5

Nie jestem pewien, czy tego właśnie szukasz, ale pakiet kmlw R używa k-średnich do grupowania sekwencji powtarzanych miar. Tu jest link do paczki stronie i na papierze (niestety, to jest ogrodzony). Działa to dobrze tylko wtedy, gdy masz dość mały zestaw danych (kilkaset sekwencji).

tutaj jest nie bramkowana wersja artykułu (bez problemów z odniesieniem): http://christophe.genolini.free.fr/recherche/aTelecharger/genolini2011.pdf

Antoine Vernet
źródło
Właściwie sprawdziłem tę metodę przed opublikowaniem tego pytania. Założyłem, że podejście kml jest klastrowym sposobem grupowania osób na podstawie niektórych przykładów jego oryginalnej pracy. Spojrzę na to jeszcze raz. Dzięki!!
cchien
@ccchien tak, używają go do grupowania pojedynczych trajektorii razem, ale można założyć, że masz dziesięć trajektorii na osobę (po jednej dla każdej zmiennej). Prawdopodobnie trzeba by znormalizować zmienne, aby procedura kml działała poprawnie. Problem polega na tym, że o ile mi wiadomo, nie można powiedzieć kml, że wasze trajektorie są zagnieżdżone w osobnikach. Może to nie być dokładnie dopasowane do tego, co próbujesz osiągnąć.
Antoine Vernet
@ greg121, dziękuję za link do ogólnodostępnej wersji artykułu. Wygląda na to, że odniesienia do tekstu zostały usunięte, być może plik Latex powinien zostać ponownie skompilowany (lista odnośników już tam jest).
Antoine Vernet
@AntoineVernet tak, masz rację. Ale nie mogłem znaleźć żadnej innej wersji
greg121
4

Tak więc masz p zmiennych mierzonych za każdym razem t na tych samych n osobnikach. Jednym ze sposobów jest obliczenie macierzy podobieństwa pXp (dis) i zastosowanie skalowania wielowymiarowego modelu INDSCAL. Otrzymasz dwie mapy o małych wymiarach (powiedzmy o 2 wymiarach). Pierwsza mapa pokazuje współrzędne z p zmiennych w przestrzeni o wymiarach i odzwierciedla ugrupowania wśród nich, jeśli takie istnieją. Druga mapa pokazuje wagi (tj. Ważność lub istotność) wymiarów w każdej macierzy t .

wprowadź opis zdjęcia tutaj

ttnphns
źródło
Mam również pomysł przekształcenia n-wymiaru w 2-wymiarowy, ale po prostu nie mam pojęcia o konkretnej metodzie, która mogłaby to osiągnąć. Teraz odkryłem, że SAS może mieć procedurę, która może to zaimplementować. Nauczę się, aby zobaczyć jego dostępność podczas korzystania z moich danych.
cchien
Jaki jest najlepszy sposób interpretowania wag?
Ming K,
Waga pokazuje, jak bardzo wymiar jest istotny lub dyskryminujący dla tego konkretnego źródła (źródłami są jednostki lub, jak w tym przykładzie, czasy). Na zdjęciu dla czasu1 na przykład wymiar II jest silny lub istotny, a wymiar I jest słaby.
ttnphns,