Làm thế nào để giải thích chiều cao dendrogram để phân cụm theo tương quan


8

Cho khung dữ liệu sau:

df <- data.frame(x1 = c(26, 28, 19, 27, 23, 31, 22, 1, 2, 1, 1, 1),
                 x2 = c(5, 5, 7, 5, 7, 4, 2, 0, 0, 0, 0, 1),
                 x3 = c(8, 6, 5, 7, 5, 9, 5, 1, 0, 1, 0, 1),
                 x4 = c(8, 5, 3, 8, 1, 3, 4, 0, 0, 1, 0, 0),
                 x5 = c(1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0),
                 x6 = c(2, 3, 1, 0, 1, 1, 3, 37, 49, 39, 28, 30))

Như vậy mà

> df
   x1 x2 x3 x4 x5 x6
1  26  5  8  8  1  2
2  28  5  6  5  1  3
3  19  7  5  3  1  1
4  27  5  7  8  1  0
5  23  7  5  1  1  1
6  31  4  9  3  0  1
7  22  2  5  4  1  3
8   1  0  1  0  0 37
9   2  0  0  0  0 49
10  1  0  1  1  0 39
11  1  0  0  0  0 28
12  1  1  1  0  0 30

Tôi muốn nhóm 12 cá nhân này bằng cách sử dụng các cụm phân cấp và sử dụng mối tương quan làm thước đo khoảng cách. Vì vậy, đây là những gì tôi đã làm:

clus <- hcluster(df, method = 'corr')

Và đây là cốt truyện của clus:

bản thảo

Đây dfthực sự là một trong 69 trường hợp tôi đang phân tích cụm. Để đưa ra một điểm cắt, tôi đã xem xét một số bản thảo và chơi xung quanh với htham số cutreecho đến khi tôi hài lòng với kết quả có ý nghĩa đối với hầu hết các trường hợp. Con số đó là k = .5. Vì vậy, đây là nhóm chúng tôi đã kết thúc sau đó:

> data.frame(df, cluster = cutree(clus, h = .5))
   x1 x2 x3 x4 x5 x6 cluster
1  26  5  8  8  1  2       1
2  28  5  6  5  1  3       1
3  19  7  5  3  1  1       1
4  27  5  7  8  1  0       1
5  23  7  5  1  1  1       1
6  31  4  9  3  0  1       1
7  22  2  5  4  1  3       1
8   1  0  1  0  0 37       2
9   2  0  0  0  0 49       2
10  1  0  1  1  0 39       2
11  1  0  0  0  0 28       2
12  1  1  1  0  0 30       2

Tuy nhiên, tôi gặp khó khăn trong việc diễn giải điểm cắt .5 trong trường hợp này. Tôi đã lấy một cái nhìn xung quanh Internet, bao gồm các trang trợ giúp ?hcluster, ?hclust?cutree, nhưng không thành công. Điều xa nhất tôi trở nên hiểu được quá trình là bằng cách này:

Đầu tiên, tôi xem cách hợp nhất được thực hiện:

> clus$merge
      [,1] [,2]
 [1,]   -9  -11
 [2,]   -8  -10
 [3,]    1    2
 [4,]  -12    3
 [5,]   -1   -4
 [6,]   -3   -5
 [7,]   -2   -7
 [8,]   -6    7
 [9,]    5    8
[10,]    6    9
[11,]    4   10

Có nghĩa là mọi thứ bắt đầu bằng cách tham gia các quan sát 9 và 11, sau đó quan sát 8 và 10, sau đó bước 1 và 2 (nghĩa là tham gia 9, 11, 8 và 10), v.v. Đọc về mergegiá trị của việc hclustergiúp hiểu ma trận ở trên.

Bây giờ tôi hãy xem chiều cao của mỗi bước:

> clus$height
[1] 1.284794e-05 3.423587e-04 7.856873e-04 1.107160e-03 3.186764e-03 6.463286e-03 
6.746793e-03 1.539053e-02 3.060367e-02 6.125852e-02 1.381041e+00
> clus$height > .5
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE

Điều đó có nghĩa là việc phân cụm chỉ dừng lại ở bước cuối cùng, khi chiều cao cuối cùng vượt lên trên 0,5 (vì Dendogram đã chỉ, BTW).

Bây giờ, đây là câu hỏi của tôi: làm thế nào để tôi giải thích độ cao? Đây có phải là "phần còn lại của hệ số tương quan" (xin vui lòng không bị đau tim)? Tôi có thể tái tạo chiều cao của bước đầu tiên (tham gia các quan sát 9 và 11) như vậy:

> 1 - cor(as.numeric(df[9, ]), as.numeric(df[11, ]))
[1] 1.284794e-05

Và cũng cho bước tiếp theo, tham gia các quan sát 8 và 10:

> 1 - cor(as.numeric(df[8, ]), as.numeric(df[10, ]))
[1] 0.0003423587

Nhưng bước tiếp theo liên quan đến việc tham gia 4 quan sát đó và tôi không biết:

  1. Cách tính chiều cao chính xác của bước này
  2. Những gì mỗi chiều cao thực sự có nghĩa là.

1
Bạn có thể nhận được một số thông tin từ câu trả lời của tôi ở đây: Xác định người dùng tương tự từ phân cụm theo phân cấp .
gung - Phục hồi Monica

Câu trả lời:


5

Hãy nhớ lại rằng trong phân cụm theo phân cấp, bạn phải xác định một số liệu khoảng cách giữa các cụm. Ví dụ, trong phân cụm liên kết trung bình phân cấp (có thể là tùy chọn phổ biến nhất), khoảng cách giữa các cụm được xác định là khoảng cách trung bình giữa tất cả các cặp liên cụm. Khoảng cách giữa các cặp cũng phải được xác định và có thể là, ví dụ, khoảng cách euclide (hoặc khoảng cách tương quan trong trường hợp của bạn). Vì vậy, khoảng cách giữa các cụm là một cách tổng quát hóa khoảng cách giữa các cặp.

Trong dendrogram, trục y chỉ đơn giản là giá trị của số liệu khoảng cách này giữa các cụm. Ví dụ: nếu bạn thấy hai cụm được hợp nhất ở độ cao , điều đó có nghĩa là khoảng cách giữa các cụm đó là .xxx


Hấp dẫn. Làm thế nào tôi có thể tính khoảng cách tương quan giữa các cụm {9, 11} và {8, 10}, trong trường hợp của tôi?
Waldir Leoncio

2
Nếu bạn đang sử dụng liên kết trung bình, thì đó sẽ là , trong đó là khoảng cách (khoảng cách tương quan) giữa các trường hợp và . d ( a , b ) a b0.25(d(9,8)+d(9,10)+d(11,8)+d(11,10))d(a,b)ab
Bitwise
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.