Làm thế nào để phân cụm các biến dọc?


10

Tôi có một loạt các biến chứa dữ liệu theo chiều dọc từ ngày 0 đến ngày 7. Tôi đang tìm kiếm một cách tiếp cận phân cụm thích hợp có thể phân cụm các biến dọc này (không phải trường hợp) thành các nhóm khác nhau. Tôi đã cố gắng phân tích dữ liệu này được đặt riêng theo thời gian, nhưng kết quả khá khó để được giải thích một cách hợp lý.

Tôi đã điều tra sự sẵn có của một thủ tục SAS PROC SIMILARITYvì có một ví dụ trên trang web của nó ; tuy nhiên, tôi nghĩ rằng nó không phải là một cách đúng đắn. Một số nghiên cứu trước đây đã sử dụng phân tích nhân tố khám phá trong từng thời điểm, nhưng đây không phải là một lựa chọn trong nghiên cứu của tôi vì kết quả không hợp lý.

Hy vọng rằng một số ý tưởng có thể được cung cấp ở đây, và một chương trình được biên dịch, chẳng hạn như SAS hoặc R, có thể có sẵn để xử lý. Bất kỳ đề nghị được đánh giá cao !!


Dưới đây là một ví dụ ngắn (xin lỗi cho vị trí không nhất quán giữa dữ liệu và tên biến):

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

Bạn có thể giải thích dữ liệu nhiều hơn một chút hoặc có thể cung cấp một mẫu rút ngắn? Khi bạn nói "các biến chứa dữ liệu theo chiều dọc", bạn có nghĩa là tất cả chúng đều được đo lặp lại trên cùng một người hoặc vật trong 7 ngày (và do đó có khả năng tương quan).
rosser

To rosser: Tôi đã thêm một phần dữ liệu. Như bạn đã đề cập, chúng là các phép đo lặp đi lặp lại: mỗi bệnh nhân (ID) có 10 phép đo (V1 ~ V10) kéo dài vài ngày (day0 ~ day7).
cchien

Câu trả lời:


5

Trong Hmiscgói R, xem tệp trợ giúp cho curveRephàm, viết tắt của "đường cong đại diện". curveRepcụm trên hình dạng đường cong, vị trí và mô hình của các điểm thời gian bị thiếu.


Cảm ơn lời khuyên của bạn. Nghe có vẻ khả thi. Tôi sẽ đọc hướng dẫn của nó ngay lập tức.
cchien

Frank. Ví dụ trong hướng dẫn dường như không hoạt động. Có một lỗi đánh máy? Tôi muốn chạy ví dụ để cảm nhận về nó. Đây là mã: set.seed (1) N <- 200 nc <- sample (1:10, N, TRUE) 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ất tiếc. Tôi quên rằng một dấu phần trăm trong tệp trợ giúp R ​​cần phải được thoát. Điều này gây ra một dòng trong ví dụ bị cắt ngắn. Thay thế dòng không đầy đủ bằng: x[id==i] <- if(i %% 2) runif(nc[i]) else runif(nc[i], c(.25, .75))
Frank Harrell

Tôi không chắc chắn "p: số điểm để đánh giá mỗi đường cong để phân cụm" là viết tắt của đường congRep (x, y, id, kxdist = 2, p = 10)
greg121 22/03/13

1
Mỗi đối tượng (đường cong) được định hình bằng cách khớp độ mịn cho nó và đánh giá độ mịn qua lưới điểm cố định, trong trường hợp các đường cong khác nhau có thời gian lấy mẫu khác nhau. Hai điểm sẽ đặc trưng cho một mối quan hệ tuyến tính, ba điểm bậc hai. thường được khuyến nghị và không phải là lựa chọn tồi. Các tọa độ nội suy tại lưới các điểm được đưa vào thuật toán phân cụm cùng với khoảng cách thời gian tối đa, số lượng giá trị bị thiếu và những thứ khác. có thể lớn hơn mức cần thiết mà không gây hại nhiều; một số đặc điểm là không cần thiết. p = 10 pp>3p=10p
Frank Harrell

5

Tôi không chắc chắn đó là những gì bạn đang tìm kiếm, nhưng gói kmltrong R sử dụng phương tiện k để phân cụm các biện pháp lặp đi lặp lại. Đây là một liên kết đến trang gói và giấy (không may, nó được kiểm soát). Nó chỉ hoạt động tốt nếu bạn có một bộ dữ liệu khá nhỏ (vài trăm trình tự).

đây là phiên bản không kiểm soát của bài báo (không có vấn đề tham khảo): http://christophe.genolini.free.fr/recherche/aTelecharger/genolini2011.pdf


Tôi thực sự đã xem xét phương pháp này trước khi đăng câu hỏi này. Tôi giả định cách tiếp cận kml là một cách nhóm để nhóm các cá nhân từ một số ví dụ của bài báo gốc. Tôi sẽ xem xét nó một lần nữa. Cảm ơn!!
cchien

@ccchien có, họ sử dụng nó để phân cụm các quỹ đạo riêng lẻ lại với nhau, nhưng bạn có thể giả sử rằng bạn có mười quỹ đạo cho mỗi cá nhân (một cho mỗi biến số của bạn). Bạn có thể sẽ cần bình thường hóa các biến của mình để thủ tục kml hoạt động bình thường. Vấn đề là, theo như tôi biết, không có cách nào để nói với kml rằng quỹ đạo của bạn được lồng trong các cá nhân. Vì vậy, nó có thể không phù hợp chính xác với những gì bạn đang cố gắng đạt được.
Antoine Vernet

@ greg121, cảm ơn vì liên kết đến phiên bản miễn phí của bài báo. Có vẻ như các tham chiếu trong văn bản đã bị loại bỏ, có lẽ tệp latex nên được biên dịch lại một lần nữa (danh sách tham chiếu là có).
Antoine Vernet

@AntoineVernet vâng, bạn đúng. Nhưng tôi không thể tìm thấy bất kỳ phiên bản nào khác
greg121

4

Vì vậy, bạn có các biến p được đo mỗi lần t trên cùng một n cá nhân. Một cách để tiến hành là tính toán các ma trận tương tự t pXp (dis) và áp dụng quy mô đa chiều theo mô hình INDSCAL. Nó sẽ cung cấp cho bạn hai bản đồ chiều thấp (giả sử có 2 chiều). Bản đồ đầu tiên hiển thị tọa độ của các biến p trong không gian của các kích thước và phản ánh các nhóm giữa chúng, nếu có. Bản đồ thứ hai cho thấy các trọng số (nghĩa là tầm quan trọng hoặc độ mặn) của các kích thước trong mỗi ma trận của t .

nhập mô tả hình ảnh ở đây


Tôi cũng có ý tưởng chuyển đổi n chiều thành 2 chiều, nhưng không có ý tưởng nào về phương pháp cụ thể có thể thực hiện được điều này. Bây giờ tôi thấy SAS có thể có một thủ tục có thể thực hiện nó. Tôi sẽ tìm hiểu nó để xem tính khả dụng của nó khi sử dụng dữ liệu của tôi.
cchien

Cách tốt nhất để giải thích các trọng số là gì?
Ming K

Trọng số cho thấy mức độ có liên quan hoặc phân biệt đối xử đối với nguồn cụ thể này (nguồn là cá nhân hoặc, như trong ví dụ này, lần). Trên ảnh cho time1, ví dụ, chiều II mạnh hoặc có liên quan và chiều I yếu.
ttnphns
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.